diff options
399 files changed, 41874 insertions, 37616 deletions
diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 19cc12a..0000000 --- a/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -# build directories -build/ -build_client/ -build_server/ - -# documentation build -doc/ - -# temporary folder -tmp/ - -# core dumps -core -core.* - -# backup files -*~ diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index 1f2ccf4..0000000 --- a/AUTHORS +++ /dev/null @@ -1,33 +0,0 @@ -Dušan Ďurech (Oroborus) <dusan.d@centrum.sk> -Jabber ID: oroborus@jabbim.sk -Main developer - -Michal Zima (xHire) <xhire@mujmalysvet.cz> -Jabber ID: xhire@jabbim.cz -Project manager & coordinator of the development; website maintainer - -Jiří Helebrant (helb) <helb@helb.cz> -Jabber ID: helb@helb.cz -Main graphic designer & creator of arenas - -Tomáš Jedrzejek (ZeXx86) <zexx86@gmail.com> -Jabber ID: zexx86@zexos.org -Programmer of Master Server, much of the network stuff & other significant optimizations - -Tomáš Chvátal (scarabeus) <tomas.chvatal@gmail.com> -Jabber ID: scarabeus_iv@blesmrt.net -Programmer of CMake build-installation system; Gentoo ebuild maintainer - -Petr Sýkora (Glubo) <petr.sykora@gmail.com> -Jabber ID: petrsykora@jabber.cz -Occasional programmer - OpenGL rendering - -Karel Podvolecký (kapo) <karel.podvolecky@gmail.com> -Jabber ID: kapo@jabber.ok.cvut.cz -Occasional programmer - keyboard improvements (buffer, pressing etc.) - -Petr L. (Timoo) <daac@post.cz> -Mac OS X and Windows porting - -Roman Kabelka (CJ Neti) <neti@cjneti.net> -Author of the music diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index 4c7a9e5..0000000 --- a/CHANGELOG +++ /dev/null @@ -1,30 +0,0 @@ -* from 0.21.0 to 0.2.2 -- the download server is integrated in game server -- support for OpenGL in master branch -- ESC closes the chat window -- not the game -- game is quitable through ESC from each section of game menu -- switched from libzzip to libzip -- big code cleaning - -* from 0.20.0 to 0.21.0 -- implemented gettext -> automatic selection of right language -- possibility to save game (key F2) and to load it -- possibility to pause game (key P) -- restructuralization of arenas - from now on in ZIP archive for easier distribution (requires libzzip now) -- download server for transportation new arenas to client -- improved build system -- under the key TAB is hidden list of players with detail (experimental implementation for now) -- change of game port to 6800 -- when playing 2 player in Big Arena, the screen is splitted -- it is possible to change the orientation with key F3 -- various little improvements (suicide takes off points, Tuxánci remembers last played arena and others) and fixes - -* from 0.18 to 0.20.0 -- completely rewritten engine, moreover modular -- new network protocol and multiplayer -- support for MasterServer (makes it possible to show list of game servers (and choose some) directly from the game) -- new type of arenas -- Big Arenas -- chat in the network game -- IPv6 support -- possibility to configure game keys -- implementation of cmake instead of autotools -- and many little improvements, cool features and so on diff --git a/CMakeLists.txt b/CMakeLists.txt index b825a06..f952426 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,241 +1,158 @@ -# Created by Tomas Chvatal (Scarabeus IV) -############################################################################### -# tuxanci/CMakeLists.txt -############################################################################### -# ALL CONDITIONAL OPTIONS -############################################################################### -# -DCMAKE_C_FLAGS=-Wall # modification for CFLAGS -# -DCMAKE_INSTALL_PREFIX=/bla/ # install prefix -# -DCMAKE_DATA_PATH=/other/bla/ # install path for data -# -DCMAKE_CONF_PATH=/etc # install path for conf -# -DLIB_INSTALL_DIR=/other/bla # install path for lib -# -DCMAKE_DOC_PATH=/other/bla/doc/tuxanci-version/ # install path for doc -# -DCMAKE_LOCALE_PATH=/other/bla # install path for locale -############################################################################### -# DEFAULT OPTIONS -############################################################################### -OPTION (BUILD_SERVER "Build the server instead of client" OFF) -OPTION (ENABLE_IPV6 "Build with the ipv6 support" ON) -OPTION (WITH_AUDIO "Build with audio enabled" ON) -OPTION (ENABLE_DEBUG "Build debug features" ON) -OPTION (DEVELOPER "Modify stuff to please tuxanci devs" OFF) -MARK_AS_ADVANCED ( DEVELOPER ) -OPTION (WITH_NLS "Build the translations" ON) -OPTION (WITH_PHYSFS "Use physfs engine for unpacking (instead of libzip)" OFF) -OPTION (Apple "Build some apple quirks. USE ONLY ON MAC!" OFF) -MARK_AS_ADVANCED ( Apple ) -OPTION (WITH_OPENGL "Use opengl as renderer instead of SW" ON) -OPTION (CROSSCOMPILE "Crosscompile tuxanci defined by ENV{TARGET}" OFF) -MARK_AS_ADVANCED ( CROSSCOMPILE ) -############################################################################### -# IMPORTANT DEFINITIONS [PREFIX,...] -############################################################################### -SET ( WORKDIR ${CMAKE_SOURCE_DIR}/src ) -# data because some distributions want different data placement -SET ( CMAKE_CONF_PATH "/etc" CACHE PATH "Config path prefix" ) -IF ( WIN32 ) - SET ( CMAKE_INSTALL_PREFIX "/" CACHE PATH "Install path prefix" ) - SET ( CMAKE_LOCALE_PATH "locale" CACHE PATH "Locale path prefix" ) -ELSE ( WIN32 ) - SET ( CMAKE_INSTALL_PREFIX "/usr/local/" CACHE PATH "Install path prefix" ) - SET ( CMAKE_LOCALE_PATH "${CMAKE_INSTALL_PREFIX}/share/locale" CACHE PATH "Locale path prefix" ) -ENDIF ( WIN32 ) -SET ( CMAKE_DATA_PATH "${CMAKE_INSTALL_PREFIX}/share/" CACHE PATH "Data path prefix" ) -############################################################################### -# BASIC PROJECT VALUES -############################################################################### -PROJECT ( tuxanci C ) -IF ( BUILD_SERVER ) - SET ( APPNAME "tuxanci-server") -ELSE ( BUILD_SERVER ) - SET ( APPNAME "tuxanci" ) -ENDIF ( BUILD_SERVER ) -CMAKE_MINIMUM_REQUIRED ( VERSION 2.6.0 ) -CMAKE_MINIMUM_REQUIRED ( VERSION 2.6.0 FATAL_ERROR ) -INCLUDE (cmake/MacroAddSources.cmake) -IF ( COMMAND cmake_policy ) - cmake_policy( SET CMP0003 NEW ) -ENDIF ( COMMAND cmake_policy ) -SET ( CMAKE_COLOR_MAKEFILE ON ) -SET ( CMAKE_BUILD_TYPE_SHARED_LIBS ON ) -SET ( CMAKE_C_FLAGS $ENV{CFLAGS} ) -SET ( CMAKE_CXX_FLAGS $ENV{CXXFLAGS} ) -SET ( CMAKE_LINK_FLAGS $ENV{LDFLAGS} ) -IF ( CROSSCOMPILE ) - SET ( CMAKE_C_COMPILER "$ENV{TARGET}-gcc" ) - SET ( CMAKE_CXX_COMPILER "$ENV{TARGET}-g++" ) - MESSAGE ( "CROSSCOMPILE with gcc to target: $ENV{TARGET}" ) -ENDIF ( CROSSCOMPILE ) -# this specify location of additional cmake sources -SET ( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ) -#various variables -SET ( CMAKE_INSTALL_ETCDIR ${CMAKE_CONF_PATH} ) -IF ( WIN32 ) - SET ( CMAKE_DOC_PATH "doc/" CACHE PATH "Doc path prefix" ) - SET ( CMAKE_INSTALL_LOCALEDIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_LOCALE_PATH} ) - SET ( CMAKE_INSTALL_DOCDIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_DOC_PATH} ) -ELSE ( WIN32 ) - SET ( CMAKE_DOC_PATH "${CMAKE_INSTALL_PREFIX}/share/doc/${APPNAME}" CACHE PATH "Doc path prefix" ) - SET ( CMAKE_INSTALL_LOCALEDIR ${CMAKE_LOCALE_PATH} ) - SET ( CMAKE_INSTALL_DOCDIR ${CMAKE_DOC_PATH} ) -ENDIF ( WIN32 ) -SET ( CMAKE_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Binary path prefix" ) -SET ( CMAKE_INSTALL_ICONDIR "${CMAKE_INSTALL_PREFIX}/share/pixmaps" CACHE PATH "Icon path prefix" ) -SET ( CMAKE_INSTALL_DESKTOPDIR "share/applications" CACHE PATH "Desktop file path prefix") -SET ( CMAKE_INSTALL_DATADIR ${CMAKE_DATA_PATH} ) -# defines to determine if we build package or not -IF ( PACKAGE ) - ADD_DEFINITIONS ( -DBUILD_PACKAGE ) -ENDIF ( PACKAGE ) -# uninstall -CONFIGURE_FILE ( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE @ONLY ) -ADD_CUSTOM_TARGET ( uninstall "${CMAKE_COMMAND}" - -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" ) -############################################################################### -# CPACK -############################################################################### -INCLUDE ( InstallRequiredSystemLibraries ) -SET ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Tuxanci is first tux shooter inspired by game Bulanci." ) -SET ( CPACK_PACKAGE_VENDOR "Tuxanci team <team@tuxanci.org>" ) -SET ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENCE" ) -SET ( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README" ) -SET ( CPACK_GENERATOR "TGZ" ) -SET ( CPACK_SOURCE_GENERATOR "TGZ" ) -SET ( CPACK_PACKAGE_VERSION_MAJOR "0" ) -SET ( CPACK_PACKAGE_VERSION_MINOR "2" ) -SET ( CPACK_PACKAGE_VERSION_PATCH "99" ) -SET ( TUXANCI_VERSION - "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}" +# Tuxanci 2 - A first person shooter +# Copyright (C) 2007-2011 Tuxánci Development Team +# Copyright (C) 2025-2026 Connor Thomson +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +cmake_minimum_required(VERSION 3.12) + +project(tuxanci2 VERSION 0.29.0 LANGUAGES C) + +option(UNIX_LIKE "Enable features exclusive to UNIX-like systems" ${CMAKE_HOST_UNIX}) +option(ENABLE_AUDIO "Enable audio" ON) + +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + +set(CMAKE_C_STANDARD 11) +set(CMAKE_C_STANDARD_REQUIRED ON) +set(CMAKE_C_EXTENSIONS OFF) + +include(CompileShaders) + +configure_file(${CMAKE_SOURCE_DIR}/include/version.h.in + ${CMAKE_BINARY_DIR}/include/version.h + @ONLY) + +file(GLOB_RECURSE C_SRC_FILES CONFIGURE_DEPENDS "src/*.c") +file(GLOB_RECURSE SLANG_SRC_FILES CONFIGURE_DEPENDS "shaders/*.slang") + +set(DATA_FILES + "${CMAKE_SOURCE_DIR}/data/images/background.png" + "${CMAKE_SOURCE_DIR}/data/fonts/DejaVuSans.ttf" + "${CMAKE_SOURCE_DIR}/data/music/theme.it" + "${CMAKE_SOURCE_DIR}/data/models/teapot.obj" + "${CMAKE_SOURCE_DIR}/data/models/dounut.obj" ) -MARK_AS_ADVANCED ( TUXANCI_VERSION ) -SET ( CPACK_STRIP_FILES "src/tuxanci" ) -SET ( CPACK_SET_DESTDIR "ON" ) -SET ( CPACK_SOURCE_PACKAGE_FILE_NAME "tuxanci-${TUXANCI_VERSION}" ) -SET ( CPACK_SOURCE_IGNORE_FILES - "~$" - ".git" - "build/" - "packaging/" - "scripts/" - "tuxanci.1" +foreach(DATA_FILE ${DATA_FILES}) + if(NOT EXISTS "${DATA_FILE}") + message(FATAL_ERROR "Required data file not found: ${DATA_FILE}") + endif() +endforeach() + +add_executable(${PROJECT_NAME} ${C_SRC_FILES}) + +target_include_directories(${PROJECT_NAME} PRIVATE + include + ${CMAKE_BINARY_DIR}/include ) -SET ( CPACK_SOURCE_STRIP_FILES "" ) -INCLUDE ( CPack ) -############################################################################### -# DEBUG/DEVELOPER STUFF -############################################################################### -IF ( ENABLE_DEBUG ) - SET ( CMAKE_C_FLAGS "-g -O0 -Wall -pipe -ggdb") - ADD_DEFINITIONS ( -DDEBUG ) - # SET ( CMAKE_VERBOSE_MAKEFILE on ) -ENDIF ( ENABLE_DEBUG ) -IF ( DEVELOPER ) - ADD_DEFINITIONS ( -DDEBUG ) - # if somebody asks yes i am insane - SET ( CMAKE_C_FLAGS "-g -ggdb -O0 -pipe -Wall -Wshadow -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wold-style-definition -Wdeclaration-after-statement -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Winline -Wformat-nonliteral -Wformat-security -Wswitch-enum -Wswitch-default -Winit-self -Wmissing-include-dirs -Wundef -Waggregate-return -Wmissing-format-attribute -Wnested-externs -Wunsafe-loop-optimizations" ) -ENDIF ( DEVELOPER ) -############################################################################### -# BASIC DIRECTORIES FOR INCLUSION -############################################################################### -INCLUDE_DIRECTORIES ( ${WORKDIR}/base ) -INCLUDE_DIRECTORIES ( ${WORKDIR}/net ) -############################################################################### -# CLIENT STUFF -############################################################################### -IF ( NOT BUILD_SERVER ) - INCLUDE_DIRECTORIES ( ${WORKDIR}/client ) - INCLUDE_DIRECTORIES ( ${WORKDIR}/screen ) - INCLUDE_DIRECTORIES ( ${WORKDIR}/widget ) -ENDIF ( NOT BUILD_SERVER ) -############################################################################### -# SERVER STUFF (Basicly overriding default client values) -############################################################################### -IF ( BUILD_SERVER ) - ADD_DEFINITIONS ( -DPUBLIC_SERVER ) - ADD_DEFINITIONS ( -DNO_SOUND ) - INCLUDE_DIRECTORIES ( ${WORKDIR}/server ) -ENDIF ( BUILD_SERVER ) -############################################################################### -# APPLE QUIRKS -############################################################################### -IF ( Apple ) - SET ( CMAKE_OSX_ARCHITECTURES "ppc;i386" ) - SET ( CACHE_INTERNAL "OSX Architectures" FORCE ) - ADD_DEFINITIONS ( -DAPPLE ) -ENDIF ( Apple ) -############################################################################### -# LIBS SEARCH -############################################################################### -MESSAGE ( STATUS "<Loading PkgConfig>" ) -FIND_PACKAGE ( PkgConfig REQUIRED ) -IF ( WITH_PHYSFS ) - FIND_PACKAGE ( PhysFS REQUIRED ) - INCLUDE_DIRECTORIES( ${PHYSFS_INCLUDE_DIR} ) -ELSE ( WITH_PHYSFS ) - pkg_check_modules(ZIP REQUIRED libzip) - INCLUDE_DIRECTORIES( ${ZIP_INCLUDE_DIRS} ) -ENDIF ( WITH_PHYSFS ) - -IF ( NOT BUILD_SERVER ) - # cairo not needed until we start actually using the svg files - #pkg_check_modules(CAIRO REQUIRED cairo>=1.8.8) - #pkg_check_modules(CAIRO_SVG REQUIRED cairo-svg>=1.8.8) - INCLUDE_DIRECTORIES( ${CAIRO_INCLUDE_DIRS} ) - pkg_check_modules(FONTCONFIG REQUIRED fontconfig) - INCLUDE_DIRECTORIES ( ${FONTCONFIG_INCLUDE_DIRS} ) - IF ( WITH_OPENGL ) - pkg_check_modules(OPENGL REQUIRED gl>=7.5) - INCLUDE_DIRECTORIES ( ${OPENGL_INCLUDE_DIRS} ) - ENDIF ( WITH_OPENGL ) - pkg_check_modules(SDL REQUIRED sdl) - INCLUDE_DIRECTORIES ( ${SDL_INCLUDE_DIRS} ) - pkg_check_modules(SDLIMAGE REQUIRED SDL_image) - INCLUDE_DIRECTORIES ( ${SDLIMAGE_INCLUDE_DIRS} ) - #pkg_check_modules(SDLTTF REQUIRED SDL_ttf) # WTF NO PkgConfig module?! - FIND_PACKAGE ( SDL_ttf REQUIRED ) - INCLUDE_DIRECTORIES ( ${SDLTTF_INCLUDE_DIR} ) - IF ( WITH_AUDIO ) - pkg_check_modules(SDLMIXER REQUIRED SDL_mixer) - INCLUDE_DIRECTORIES ( ${SDLMIXER_INCLUDE_DIRS} ) - ENDIF ( WITH_AUDIO ) -ENDIF ( NOT BUILD_SERVER ) -############################################################################### -# GETTEXT SUPPORT -############################################################################### -IF ( WITH_NLS ) - MESSAGE ( STATUS "<Building with NLS as requested>" ) - ADD_DEFINITIONS ( -DNLS ) - ADD_SUBDIRECTORY ( po ) -ENDIF ( WITH_NLS ) -############################################################################### -# COMPILATION ITSELF -############################################################################### -CONFIGURE_FILE ( ${WORKDIR}/base/path.h.in ${CMAKE_BINARY_DIR}/src/base/path.h ) -ADD_SUBDIRECTORY ( src ) -############################################################################### -# DATA INSTALLATION -############################################################################### -ADD_SUBDIRECTORY ( data ) -SET ( tuxanci_docs - ${CMAKE_CURRENT_SOURCE_DIR}/LICENCE - ${CMAKE_CURRENT_SOURCE_DIR}/AUTHORS - ${CMAKE_CURRENT_SOURCE_DIR}/README + +target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -pedantic) + +target_compile_options(${PROJECT_NAME} PRIVATE + -g + $<$<COMPILE_LANG_AND_ID:C,GNU,Clang>:-fdebug-prefix-map=${CMAKE_SOURCE_DIR}/src=> ) -INSTALL ( FILES ${tuxanci_docs} DESTINATION ${CMAKE_INSTALL_DOCDIR}/ ) -############################################################################### -# GOODBYE INFORMATIONS (VARIABLES SETTINGS) -############################################################################### -MESSAGE ( STATUS "<Printing out environment settings>" ) -MESSAGE ( STATUS "<******************************>" ) -MESSAGE ( STATUS "CFlags: ${CMAKE_C_FLAGS}" ) -MESSAGE ( STATUS "LDFLAGS: ${CMAKE_LINK_FLAGS}" ) -MESSAGE ( STATUS "PREFIX: ${CMAKE_INSTALL_PREFIX}" ) -MESSAGE ( STATUS "ETC directory: ${CMAKE_CONF_PATH}" ) -MESSAGE ( STATUS "DOC directory: ${CMAKE_DOC_PATH}" ) -MESSAGE ( STATUS "LOCALE directory: ${CMAKE_INSTALL_LOCALEDIR}" ) -MESSAGE ( STATUS "DATA directory: ${CMAKE_INSTALL_DATADIR}" ) -############################################################################### +if(EMSCRIPTEN) + set(UNIX_LIKE OFF) + set(ENABLE_AUDIO OFF) + set_target_properties(${PROJECT_NAME} PROPERTIES SUFFIX ".html") + target_compile_options(${PROJECT_NAME} PRIVATE -sUSE_SDL=3 -sUSE_SDL_TTF=3) + target_link_options(${PROJECT_NAME} PRIVATE + -sUSE_SDL=3 + -sUSE_SDL_TTF=3 + -sENVIRONMENT=web + -sWASM=1 + ) + set_target_properties(${PROJECT_NAME} PROPERTIES + LINK_FLAGS "--shell-file ${CMAKE_SOURCE_DIR}/em/${PROJECT_NAME}.html" + ) + + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/em/${PROJECT_NAME}.css + ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.css + ) +else() + if(UNIX_LIKE) + message(STATUS "UNIX_LIKE: ON") + target_compile_definitions(${PROJECT_NAME} PRIVATE UNIX_LIKE) + + find_package(Threads REQUIRED) + find_package(PkgConfig REQUIRED) + + pkg_check_modules(UNWIND REQUIRED libunwind) + target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads ${UNWIND_LIBRARIES}) + target_include_directories(${PROJECT_NAME} PRIVATE ${UNWIND_INCLUDE_DIRS}) + target_compile_options(${PROJECT_NAME} PRIVATE ${UNWIND_CFLAGS_OTHER}) + + pkg_check_modules(DW REQUIRED libdw) + target_link_libraries(${PROJECT_NAME} PRIVATE ${DW_LIBRARIES}) + target_include_directories(${PROJECT_NAME} PRIVATE ${DW_INCLUDE_DIRS}) + target_compile_options(${PROJECT_NAME} PRIVATE ${DW_CFLAGS_OTHER}) + else() + message(STATUS "UNIX_LIKE: OFF") + endif() + + if(WIN32) + set(ENABLE_AUDIO OFF) + + find_package(SDL3 CONFIG REQUIRED) + find_package(SDL3_ttf CONFIG REQUIRED) + + target_link_libraries(${PROJECT_NAME} PRIVATE + SDL3::SDL3 + SDL3_ttf::SDL3_ttf + ) + + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "$<TARGET_FILE:SDL3::SDL3>" + "$<TARGET_FILE_DIR:${PROJECT_NAME}>" + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "$<TARGET_FILE:SDL3_ttf::SDL3_ttf>" + "$<TARGET_FILE_DIR:${PROJECT_NAME}>" + ) + else() + pkg_check_modules(SDL REQUIRED sdl3) + target_link_libraries(${PROJECT_NAME} PRIVATE ${SDL_LIBRARIES} m) + target_include_directories(${PROJECT_NAME} PRIVATE ${SDL_INCLUDE_DIRS}) + target_compile_options(${PROJECT_NAME} PRIVATE ${SDL_CFLAGS_OTHER}) + + pkg_check_modules(SDL_TTF REQUIRED sdl3-ttf) + target_link_libraries(${PROJECT_NAME} PRIVATE ${SDL_TTF_LIBRARIES}) + target_include_directories(${PROJECT_NAME} PRIVATE ${SDL_TTF_INCLUDE_DIRS}) + target_compile_options(${PROJECT_NAME} PRIVATE ${SDL_TTF_CFLAGS_OTHER}) + endif() + + if(ENABLE_AUDIO) + message(STATUS "ENABLE_AUDIO: ON") + target_compile_definitions(${PROJECT_NAME} PRIVATE ENABLE_AUDIO) + + pkg_check_modules(OPENAL REQUIRED openal) + target_link_libraries(${PROJECT_NAME} PRIVATE ${OPENAL_LIBRARIES}) + target_include_directories(${PROJECT_NAME} PRIVATE ${OPENAL_INCLUDE_DIRS}) + target_compile_options(${PROJECT_NAME} PRIVATE ${OPENAL_CFLAGS_OTHER}) + + pkg_check_modules(OPENMPT REQUIRED libopenmpt) + target_link_libraries(${PROJECT_NAME} PRIVATE ${OPENMPT_LIBRARIES}) + target_include_directories(${PROJECT_NAME} PRIVATE ${OPENMPT_INCLUDE_DIRS}) + target_compile_options(${PROJECT_NAME} PRIVATE ${OPENMPT_CFLAGS_OTHER}) + else() + message(STATUS "ENABLE_AUDIO: OFF") + endif() +endif() + +target_compile_shaders(${PROJECT_NAME} SHADERS ${SLANG_SRC_FILES}) +target_embed_files(${PROJECT_NAME} FILES ${DATA_FILES})
\ No newline at end of file diff --git a/Doxyfile b/Doxyfile deleted file mode 100644 index 63f0b6f..0000000 --- a/Doxyfile +++ /dev/null @@ -1,1510 +0,0 @@ -# Doxyfile 1.5.8 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# http://www.gnu.org/software/libiconv for the list of possible encodings. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = Tuxánci - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = 0.2.99 - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = doc - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = YES - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, -# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, -# Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene, -# Spanish, Swedish, and Ukrainian. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like regular Qt-style comments -# (thus requiring an explicit @brief command for a brief description.) - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring -# an explicit \brief command for a brief description.) - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for -# Java. For instance, namespaces will be presented as packages, qualified -# scopes will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources only. Doxygen will then generate output that is more tailored for -# Fortran. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for -# VHDL. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it parses. -# With this tag you can assign which parser to use for a given extension. -# Doxygen has a built-in mapping, but you can override or extend it using this tag. -# The format is ext=language, where ext is a file extension, and language is one of -# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, -# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat -# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), -# use: inc=Fortran f=C - -EXTENSION_MAPPING = - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. -# Doxygen will parse them like normal C++ but will assume all classes use public -# instead of private inheritance when no explicit protection keyword is present. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate getter -# and setter methods for a property. Setting this option to YES (the default) -# will make doxygen to replace the get and set methods by a property in the -# documentation. This will only work if the methods are indeed getting or -# setting a simple type. If this is not the case, or you want to show the -# methods anyway, you should set this option to NO. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum -# is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically -# be useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. - -TYPEDEF_HIDES_STRUCT = NO - -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to -# determine which symbols to keep in memory and which to flush to disk. -# When the cache is full, less often used symbols will be written to disk. -# For small to medium size projects (<1000 input files) the default value is -# probably good enough. For larger projects a too small cache size can cause -# doxygen to be busy swapping symbols to and from disk most of the time -# causing a significant performance penality. -# If the system has enough physical memory increasing the cache will improve the -# performance by keeping more symbols in memory. Note that the value works on -# a logarithmic scale so increasing the size by one will rougly double the -# memory usage. The cache size is given by this formula: -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols - -SYMBOL_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = YES - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base -# name of the file that contains the anonymous namespace. By default -# anonymous namespace are hidden. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the -# hierarchy of group names into alphabetical order. If set to NO (the default) -# the group names will appear in their defined order. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is NO. - -SHOW_DIRECTORIES = NO - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. -# This will remove the Files entry from the Quick Index and from the -# Folder Tree View (if specified). The default is YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the -# Namespaces page. -# This will remove the Namespaces entry from the Quick Index -# and from the Folder Tree View (if specified). The default is YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command <command> <input-file>, where <command> is the value of -# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by -# doxygen. The layout file controls the global structure of the generated output files -# in an output format independent way. The create the layout file that represents -# doxygen's defaults, run doxygen with the -l option. You can optionally specify a -# file name after the option, if omitted DoxygenLayout.xml will be used as the name -# of the layout file. - -LAYOUT_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = YES - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = NO - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be abled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = src - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is -# also the default input encoding. Doxygen uses libiconv (or the iconv built -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for -# the list of possible encodings. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx -# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 - -FILE_PATTERNS = *.c *.h - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or -# directories that are symbolic links (a Unix filesystem feature) are excluded -# from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command <filter> <input-file>, where <filter> -# is the value of the INPUT_FILTER tag, and <input-file> is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. -# If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. -# Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. -# The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER -# is applied to all files. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = NO - -# If the REFERENCED_BY_RELATION tag is set to YES -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. -# Otherwise they will link to the documentation. - -REFERENCES_LINK_SOURCE = YES - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = YES - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = . - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. For this to work a browser that supports -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). - -HTML_DYNAMIC_SECTIONS = NO - -# If the GENERATE_DOCSET tag is set to YES, additional index files -# will be generated that can be used as input for Apple's Xcode 3 -# integrated development environment, introduced with OSX 10.5 (Leopard). -# To create a documentation set, doxygen will generate a Makefile in the -# HTML output directory. Running make will produce the docset in that -# directory and running "make install" will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find -# it at startup. -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. - -GENERATE_DOCSET = NO - -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the -# feed. A documentation feed provides an umbrella under which multiple -# documentation sets from a single provider (such as a company or product suite) -# can be grouped. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that -# should uniquely identify the documentation set bundle. This should be a -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen -# will append .docset to the name. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING -# is used to encode HtmlHelp index (hhk), content (hhc) and project file -# content. - -CHM_INDEX_ENCODING = - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER -# are set, an additional index file will be generated that can be used as input for -# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated -# HTML documentation. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can -# be used to specify the file name of the resulting .qch file. -# The path specified is relative to the HTML output folder. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#namespace - -QHP_NAMESPACE = - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#virtual-folders - -QHP_VIRTUAL_FOLDER = doc - -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. -# For more information please see -# http://doc.trolltech.com/qthelpproject.html#custom-filters - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see -# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's -# filter section matches. -# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>. - -QHP_SECT_FILTER_ATTRS = - -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can -# be used to specify the location of Qt's qhelpgenerator. -# If non-empty doxygen will try to run qhelpgenerator on the generated -# .qhp file. - -QHG_LOCATION = - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# This tag can be used to set the number of enum values (range [1..20]) -# that doxygen will group on one line in the generated HTML documentation. - -ENUM_VALUES_PER_LINE = 4 - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. -# If the tag value is set to FRAME, a side panel will be generated -# containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are -# probably better off using the HTML help feature. Other possible values -# for this tag are: HIERARCHIES, which will generate the Groups, Directories, -# and Class Hierarchy pages using a tree view instead of an ordered list; -# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which -# disables this behavior completely. For backwards compatibility with previous -# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE -# respectively. - -GENERATE_TREEVIEW = NONE - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -# Use this tag to change the font size of Latex formulas included -# as images in the HTML documentation. The default is 10. Note that -# when you change the font size after a successful doxygen run you need -# to manually remove any form_*.png images from the HTML output directory -# to force them to be regenerated. - -FORMULA_FONTSIZE = 10 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = NO - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = YES - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = YES - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. -# This is useful -# if you want to understand what is going on. -# On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_DEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all function-like macros that are alone -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse -# the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option is superseded by the HAVE_DOT option below. This is only a -# fallback. It is recommended to install and use dot, since it yields more -# powerful graphs. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH = - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = NO - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = YES - -# By default doxygen will write a font called FreeSans.ttf to the output -# directory and reference it in all dot files that doxygen generates. This -# font does not include all possible unicode characters however, so when you need -# these (or just want a differently looking font) you can specify the font name -# using DOT_FONTNAME. You need need to make sure dot is able to find the font, -# which can be done by putting it in a standard location or by setting the -# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory -# containing the font. - -DOT_FONTNAME = FreeSans - -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. -# The default size is 10pt. - -DOT_FONTSIZE = 10 - -# By default doxygen will tell dot to use the output directory to look for the -# FreeSans.ttf font (which doxygen will put there itself). If you specify a -# different font using DOT_FONTNAME you can set the path where dot -# can find it using this tag. - -DOT_FONTPATH = - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT options are set to YES then -# doxygen will generate a call dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable call graphs -# for selected functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then -# doxygen will generate a caller dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable caller -# graphs for selected functions only using the \callergraph command. - -CALLER_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found in the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the -# number of direct children of the root node in a graph is already larger than -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. - -DOT_GRAPH_MAX_NODES = 50 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that the size of a graph can be further restricted by -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. - -MAX_DOT_GRAPH_DEPTH = 0 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not -# seem to support this out of the box. Warning: Depending on the platform used, -# enabling this option may lead to badly anti-aliased labels on the edges of -# a graph (i.e. they become hard to read). - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = YES - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Options related to the search engine -#--------------------------------------------------------------------------- - -# The SEARCHENGINE tag specifies whether or not a search engine should be -# used. If set to NO the values of all tags below this one will be ignored. - -SEARCHENGINE = NO diff --git a/INSTALL b/INSTALL deleted file mode 100644 index 87cccda..0000000 --- a/INSTALL +++ /dev/null @@ -1,100 +0,0 @@ -HOW TO INSTALL TUXANCI -====================== - -Client ------- -Requirements: cmake >= 2.6.0, SDL, SDL_image, SDL_ttf, (SDL_mixer), (OpenGL), - (Gettext), libzip -(Those in brackets are optional and can be omitted if you choose appropriate -switches while building the game. But we recommend to have all of them.) - -Note: you'll also need "-devel" versions of library packages. - -The following how-to is written for GNU/Linux, but we are working on ports and -how-tos for other platforms too. If you want to help us, feel free to contact -us! We will really appreciate it. - -Note: if you don't know all available cmake switches which can be used, you can -run `ccmake` command (it seems to be ncurses based) instead of `cmake`. And -please do enable the debug -- it helps us when you find a bug. - -$ mkdir build -$ cmake .. -DENABLE_DEBUG=1 -$ make -# make install - -Now it is installed in your system. And that's all. :c) You can run the game -simply by running `tuxanci` command in the console (you'll see much of debug -output, but that's ok). - -Tip: please think about running this command too (before the game itself): - -$ ulimit -c unlimited - -It enables generating of coredumps which are very helpful when the game crashes -as it contains much information about the crash which happend. You also need to -have debug enabled when compiling -- otherwise the coredump won't contain any -useful information for us. - -Note: if you want to uninstall the game, run this command: - -# make uninstall - - -Server ------- -Requirements: cmake >= 2.6.0, libzip - -Note: you'll also need "-devel" version of libzip library package. - -The server is written for GNU/Linux and is not planned to be ported to other -platforms (may be to BSD yes, but surely not to Windows ;c)). - -Note: if you don't know all available cmake switches which can be used, you can -run `ccmake` command (it seems to be ncurses based) instead of `cmake`. And -please do enable the debug -- it helps us when you find a bug. - -$ mkdir build -$ cmake .. -DBUILD_SERVER=1 -DENABLE_DEBUG=1 -$ make -# make install - -Now it is installed in your system. You should configure it before running. The -configuration file is situated in /etc/tuxanci-server/server.conf. It contains -some kind of example configuration which is usable but you'll probably prefer -your own one. Have a look to /etc/tuxanci-server/arena.conf -- there are listed -all available arenas and at the end of each line is "network name" of each -arena. This network name is to be used in server.conf file within "ARENA" -property. - -When you set IP6 property to ::, it will also accept IPv4 connections and IP4 -property won't be taken into account. LAN_ONLY means that the server will not -register at MasterServer. You can let be the SUPPORT_CLIENTS property as it is -going to be removed soon (default value is OK). - -If you want to run more than one Tuxanci game server, you need to have more -configuration files (one for each game server). Specify which one to use by ---config-file switch (e.g. --config-file=/etc/tuxanci-server/server-2.conf) -when running the server. - -Note: RC script is not prepared yet. You have to write your own one. - -The game server itself can be started with following: - -$ tuxanci-server - -(If you have set appropriate paths and port, you don't need to have root -privileges to start the server. Note: droping privileges is not implemented -yet.) - -Tip: if you have enabled debug when compiling, please think about running this -command before starting the game server: - -$ ulimit -c unlimited - -It enables generating of coredumps which are very helpful when the game server -crashes as it contains much information about the crash which happend. - -Note: if you want to uninstall the game server, run this command: - -# make uninstall diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md new file mode 100644 index 0000000..a3be1df --- /dev/null +++ b/KNOWN_ISSUES.md @@ -0,0 +1,6 @@ +# Known issues +## Windows 10 build 22H2 amd64 nvidia +vkQueueSubmit returns VK_ERROR_DEVICE_LOST + +## Debian 13 amd64 mesa +Unknown, needs backtrace from gdb on that machine
\ No newline at end of file diff --git a/LICENCE b/LICENCE deleted file mode 100644 index 553e45a..0000000 --- a/LICENCE +++ /dev/null @@ -1,345 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License.
\ No newline at end of file @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<https://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<https://www.gnu.org/licenses/why-not-lgpl.html>. @@ -1,113 +0,0 @@ -ABOUT TUXANCI -============= -Tuxanci is first tux shooter. In the absolute beginning it was inspired by -a well-known Czech game Bulanci. Today Tuxanci goes its own way and is much -better then Bulanci (except the graphics though). - -Game supports 1 player and 2 players game on one computer and also supports -gameplay over network (LAN/Internet [IPv4 and IPv6]). - -Goal in this game is to shoot enemy Tux before he does so. Tux can shoot only -in X and Y axes so no diagonal shooting is available yet (in fact it is even -not being planned at the moment). - - Weapon list - ----------- - Pistol - ~~~~~~ - Basic gun - one shot at the time - Two Pistols - ~~~~~~~~~~~ - 2x Basic gun - two shots at once - Machine gun - ~~~~~~~~~~ - Few shots per fire, small intervals - Shot gun - ~~~~~~~~ - 5 shots per fire, high dispersion - Laser - ~~~~~ - Shoots fast and long coherent light - Mine - ~~~~ - Put them around, step on them *KABOOM* - Bomb ball - ~~~~~~~~~ - Fires bomb which mirrors any obstacles and explodes only if it - hits penguin. - - Bonus list - ---------- - Speedy tux: tux move faster - Infinite ammo: you have really big backpack of ammo (fire at will) - 4way shoot: tux fire on shoot in every direction (cost only 1 ammo) - Teleport: if somebody shoots at Tux he teleport himself away - Ghost: Tux can move and shoot through obstacles. - Note - ~~~~ - Bonuses last only few seconds and if tux take another bonus then - first one looses its effects. - -GAME USAGE -========== - Starting game is simple tuxanci-VERSION or tuxanci-server-V. based on what we - compiled (based on presumption user installed into directories where path - is set). - - If you are using bundled binary and tuxanci are reporting "File not found!" - error, you need to launch it directly from BIN directory - (eg.: "$ cd tuxanci/bin && ./tuxanci-VERSION"). - - For client we create some configuration files in $HOME. There is created - ".tuxanci" directory and in there are pretty selfexplaining .conf files. - - For server we create directory /etc/tuxanci-server/server.conf where you could - do some changes for it (again pretty selfexplaining). - - Controls - -------- - Player one - ~~~~~~~~~~ - movement: cursor arows - fire: zero [ 0 ] NumPad - change weapon: one [ 1 ] NumPad - Player two - ~~~~~~~~~~ - movement: W(u) S(d) A(l) D(r) - fire: Q - change weapon: tab - Common - ~~~~~~ - Fullscreen/window mode: F1 (dangerous with multiple monitors) - Save game: F2 - Change splitting of screen: F3 (just in local - multiplayer game in a big arena) - Pause: P - Quit: Esc - -HAVE PROBLEM/FOUND BUG/ETC... -============================= - If you found some bug or have feature request please fill it into: - http://www.tuxanci.org/buglist (you need account for that). - - You need some help with install/etc... feel free to join us on our irc - channel which is #tuxanci on server irc.freenode.net. - -INFORMATIONS FOR TRANSLATORS -============================ - So you want to help us translating our perfect game :] What should you - do is question you are asking i guess. It is pretty simple. We are using - gettext so you only have to download our .pot file from git - <http://repo.or.cz/w/tuxanci.git?a=blob_plain;f=po/tuxanci.pot;hb=HEAD> - and translate every line into your desired language. MSGID is orginal - message and MSGSTR is translated one. When you are done you rename - tuxanci.pot to langcode.po (cs_CZ.po). For translating is needed only - some text editor (advanced are kbabel, lokalize...) and some skills - in your and english language. Final product of your effort mail onto our - mail (team<-at->tuxanci.org). Ah and before I forget update some - relevant informations into header of your .po file, examples can be - found in our git too <http://repo.or.cz/w/tuxanci.git?a=tree;f=po;hb=HEAD>. - -MORE -==== - More informations you can find on our website: http://www.tuxanci.org/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..74f7471 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# Tuxánci 2 +Tuxánci 2 is a free (as in freedom & free beer) first person shooter featuring [Tux](https://en.wikipedia.org/wiki/Tux_(mascot)) & other [free software & open source](https://en.wikipedia.org/wiki/Free_and_open-source_software) figures. + +Tuxánci 2 is **pre-release** software and everything is subject to change.
\ No newline at end of file diff --git a/cmake/CompileShaders.cmake b/cmake/CompileShaders.cmake new file mode 100644 index 0000000..75ee602 --- /dev/null +++ b/cmake/CompileShaders.cmake @@ -0,0 +1,142 @@ +# Tuxanci 2 - A first person shooter +# Copyright (C) 2007-2011 Tuxánci Development Team +# Copyright (C) 2025-2026 Connor Thomson +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +set(SHADER_SLANG_PROFILE "spirv_1_5") +set(SHADER_SLANG_TARGET "spirv") + +find_program(SLANGC_EXECUTABLE slangc) + +if(NOT SLANGC_EXECUTABLE) + message(FATAL_ERROR "slangc is not found. Download it from https://github.com/shader-slang/slang and make sure it is in your PATH.") +endif() + +find_program(XXD_EXECUTABLE NAMES xxd) +if(NOT XXD_EXECUTABLE) + message(FATAL_ERROR "xxd is not found. Make sure it is in your PATH.") +endif() + +set(SHADER_EMBED_SCRIPT "${CMAKE_CURRENT_LIST_DIR}/EmbedFile.cmake") + +function(target_compile_shaders TARGET_NAME) + cmake_parse_arguments(PARSE_ARGV 1 ARG "" "PROFILE;ENTRY" "SHADERS") + + if(NOT ARG_PROFILE) + set(ARG_PROFILE "${SHADER_SLANG_PROFILE}") + endif() + if(NOT ARG_ENTRY) + set(ARG_ENTRY "main") + endif() + + set(SPIRV_OUTPUTS "") + + foreach(SHADER ${ARG_SHADERS}) + get_filename_component(SHADER_ABS "${SHADER}" ABSOLUTE) + get_filename_component(SHADER_NAME "${SHADER}" NAME) + + set(_stage "") + if(SHADER_NAME MATCHES "\\.vert\\.slang$") + set(_stage "vertex") + elseif(SHADER_NAME MATCHES "\\.frag\\.slang$") + set(_stage "fragment") + elseif(SHADER_NAME MATCHES "\\.comp\\.slang$") + set(_stage "compute") + elseif(SHADER_NAME MATCHES "\\.geom\\.slang$") + set(_stage "geometry") + elseif(SHADER_NAME MATCHES "\\.tesc\\.slang$") + set(_stage "hull") + elseif(SHADER_NAME MATCHES "\\.tese\\.slang$") + set(_stage "domain") + elseif(SHADER_NAME MATCHES "\\.rgen\\.slang$") + set(_stage "raygeneration") + elseif(SHADER_NAME MATCHES "\\.rchit\\.slang$") + set(_stage "closesthit") + elseif(SHADER_NAME MATCHES "\\.rmiss\\.slang$") + set(_stage "miss") + else() + message(FATAL_ERROR "'${SHADER_NAME}' must end with .<vert|frag|comp|geom|tesc|tese|rgen|rchit|rmiss>.slang") + endif() + + set(SPIRV_OUT "${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.spv") + set(SPIRV_EMBED_C_OUT "${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.xxd.c") + + string(REGEX REPLACE "[^A-Za-z0-9]" "_" SHADER_SYMBASE "${SHADER_NAME}.spv") + set(SHADER_SYMBASE "file_${SHADER_SYMBASE}") + + add_custom_command( + OUTPUT ${SPIRV_OUT} + COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/shaders" + COMMAND "${SLANGC_EXECUTABLE}" "${SHADER_ABS}" + -target ${SHADER_SLANG_TARGET} + -profile ${ARG_PROFILE} + -entry ${ARG_ENTRY} + -stage ${_stage} + -o ${SPIRV_OUT} + MAIN_DEPENDENCY "${SHADER_ABS}" + COMMENT "Building SPIR-V ${SHADER_NAME}.spv" + VERBATIM + ) + + add_custom_command( + OUTPUT ${SPIRV_EMBED_C_OUT} + COMMAND ${CMAKE_COMMAND} + -D IN_FILE=${SPIRV_OUT} + -D OUT_C=${SPIRV_EMBED_C_OUT} + -D SYMBASE=${SHADER_SYMBASE} + -D XXD_EXE=${XXD_EXECUTABLE} + -P "${SHADER_EMBED_SCRIPT}" + DEPENDS ${SPIRV_OUT} "${SHADER_EMBED_SCRIPT}" + COMMENT "Building C object ${SHADER_NAME}.spv.o" + VERBATIM + ) + + list(APPEND SPIRV_OUTPUTS ${SPIRV_EMBED_C_OUT}) + endforeach() + + target_sources(${TARGET_NAME} PRIVATE ${SPIRV_OUTPUTS}) +endfunction() + +function(target_embed_files TARGET_NAME) + cmake_parse_arguments(PARSE_ARGV 1 ARG "" "" "FILES") + + set(EMBEDDED_OUTPUTS "") + foreach(ASSET ${ARG_FILES}) + get_filename_component(ASSET_ABS "${ASSET}" ABSOLUTE) + file(RELATIVE_PATH ASSET_RELATIVE "${CMAKE_SOURCE_DIR}" "${ASSET_ABS}") + string(REGEX REPLACE "[^A-Za-z0-9]" "_" ASSET_SYMBASE "${ASSET_RELATIVE}") + set(ASSET_SYMBASE "file_${ASSET_SYMBASE}") + get_filename_component(ASSET_NAME "${ASSET_RELATIVE}" NAME) + set(ASSET_EMBED_C_OUT "${CMAKE_CURRENT_BINARY_DIR}/data/${ASSET_NAME}.xxd.c") + + add_custom_command( + OUTPUT ${ASSET_EMBED_C_OUT} + COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/data" + COMMAND ${CMAKE_COMMAND} + -D IN_FILE=${ASSET_ABS} + -D OUT_C=${ASSET_EMBED_C_OUT} + -D SYMBASE=${ASSET_SYMBASE} + -D XXD_EXE=${XXD_EXECUTABLE} + -P "${SHADER_EMBED_SCRIPT}" + DEPENDS "${ASSET_ABS}" "${SHADER_EMBED_SCRIPT}" + COMMENT "Building C object ${ASSET_RELATIVE}.o" + VERBATIM + ) + + list(APPEND EMBEDDED_OUTPUTS ${ASSET_EMBED_C_OUT}) + endforeach() + + target_sources(${TARGET_NAME} PRIVATE ${EMBEDDED_OUTPUTS}) +endfunction()
\ No newline at end of file diff --git a/cmake/EmbedFile.cmake b/cmake/EmbedFile.cmake new file mode 100644 index 0000000..19e5dbe --- /dev/null +++ b/cmake/EmbedFile.cmake @@ -0,0 +1,37 @@ +# Tuxanci 2 - A first person shooter +# Copyright (C) 2007-2011 Tuxánci Development Team +# Copyright (C) 2025-2026 Connor Thomson +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +foreach(_required IN_FILE OUT_C SYMBASE XXD_EXE) + if(NOT DEFINED ${_required}) + message(FATAL_ERROR "EmbedFile.cmake: missing required -D ${_required}") + endif() +endforeach() + +execute_process( + COMMAND "${XXD_EXE}" -i -n "${SYMBASE}" "${IN_FILE}" + OUTPUT_VARIABLE _xxd_output + RESULT_VARIABLE _xxd_result + ERROR_VARIABLE _xxd_error +) +if(NOT _xxd_result EQUAL 0) + message(FATAL_ERROR "xxd failed embedding ${IN_FILE}: ${_xxd_error}") +endif() + +file(WRITE "${OUT_C}" "${_xxd_output}\n") +file(APPEND "${OUT_C}" "\nunsigned int ${SYMBASE}_size = sizeof(${SYMBASE});\n") +file(APPEND "${OUT_C}" "unsigned char *${SYMBASE}_start = ${SYMBASE};\n") +file(APPEND "${OUT_C}" "unsigned char *${SYMBASE}_end = ${SYMBASE} + sizeof(${SYMBASE});\n")
\ No newline at end of file diff --git a/cmake/FindGettext.cmake b/cmake/FindGettext.cmake deleted file mode 100644 index c293e26..0000000 --- a/cmake/FindGettext.cmake +++ /dev/null @@ -1,70 +0,0 @@ -# - Find GNU gettext tools -# This module looks for the GNU gettext tools. This module defines the -# following values: -# GETTEXT_MSGMERGE_EXECUTABLE: the full path to the msgmerge tool. -# GETTEXT_MSGFMT_EXECUTABLE: the full path to the msgfmt tool. -# GETTEXT_INCLUDES: just for including on windows, on POSIX it works just fine. -# GETTEXT_FOUND: True if gettext has been found. -# -# Additionally it provides the following macros: -# GETTEXT_CREATE_TRANSLATIONS ( outputFile [ALL] file1 ... fileN ) -# This will create a target "translations" which will convert the -# given input po files into the binary output mo file. If the -# ALL option is used, the translations will also be created when -# building the default target. - - -FIND_PATH(GETTEXT_INCLUDE_DIR libintl.h - PATHS - /usr/local/include - /usr/include - /usr/i686-pc-mingw32/sys-root/mingw/include -) - -FIND_PROGRAM(GETTEXT_MSGMERGE_EXECUTABLE msgmerge) - -FIND_PROGRAM(GETTEXT_MSGFMT_EXECUTABLE msgfmt) - -MACRO(GETTEXT_CREATE_TRANSLATIONS _potFile _firstPoFile) - - SET(_gmoFiles) - GET_FILENAME_COMPONENT(_potBasename ${_potFile} NAME_WE) - GET_FILENAME_COMPONENT(_absPotFile ${_potFile} ABSOLUTE) - - SET(_addToAll) - IF(${_firstPoFile} STREQUAL "ALL") - SET(_addToAll "ALL") - SET(_firstPoFile) - ENDIF(${_firstPoFile} STREQUAL "ALL") - - FOREACH (_currentPoFile ${ARGN}) - GET_FILENAME_COMPONENT(_absFile ${_currentPoFile} ABSOLUTE) - GET_FILENAME_COMPONENT(_abs_PATH ${_absFile} PATH) - GET_FILENAME_COMPONENT(_lang ${_absFile} NAME_WE) - SET(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo) - - ADD_CUSTOM_COMMAND( - OUTPUT ${_gmoFile} - COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_absFile} ${_absPotFile} - COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_absFile} - DEPENDS ${_absPotFile} ${_absFile} - ) - - INSTALL(FILES ${_gmoFile} DESTINATION share/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo) - SET(_gmoFiles ${_gmoFiles} ${_gmoFile}) - - ENDFOREACH (_currentPoFile ) - - ADD_CUSTOM_TARGET(translations ${_addToAll} DEPENDS ${_gmoFiles}) - -ENDMACRO(GETTEXT_CREATE_TRANSLATIONS ) - -IF (GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGFMT_EXECUTABLE ) - SET(GETTEXT_FOUND TRUE) -ELSE (GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGFMT_EXECUTABLE ) - SET(GETTEXT_FOUND FALSE) - IF (GetText_REQUIRED) - MESSAGE(FATAL_ERROR "GetText not found") - ENDIF (GetText_REQUIRED) -ENDIF (GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGFMT_EXECUTABLE ) - diff --git a/cmake/MacroAddSources.cmake b/cmake/MacroAddSources.cmake deleted file mode 100644 index 62c1381..0000000 --- a/cmake/MacroAddSources.cmake +++ /dev/null @@ -1,9 +0,0 @@ -# This macro is for generating the sources list from in-folder files. -MACRO(MacroAddSources) - FILE ( GLOB src ${fn}/*.c ) - FOREACH ( fle ${src} ) - GET_FILENAME_COMPONENT ( fnp ${fle} NAME_WE ) - GET_FILENAME_COMPONENT ( pth ${fle} PATH ) - SET ( SRC_${fn} ${SRC_${fn}} ${pth}/${fnp} ) - ENDFOREACH ( fle ) -ENDMACRO(MacroAddSources) diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in deleted file mode 100644 index cd4c9d8..0000000 --- a/cmake/cmake_uninstall.cmake.in +++ /dev/null @@ -1,21 +0,0 @@ -IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") - MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") -ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") - -FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) -STRING(REGEX REPLACE "\n" ";" files "${files}") -FOREACH(file ${files}) - MESSAGE(STATUS "Uninstalling: \"$ENV{DESTDIR}${file}\"") - IF(EXISTS "$ENV{DESTDIR}${file}") - EXEC_PROGRAM( - "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" - OUTPUT_VARIABLE rm_out - RETURN_VALUE rm_retval - ) - IF(NOT "${rm_retval}" STREQUAL 0) - MESSAGE(FATAL_ERROR "Problem when removing: \"$ENV{DESTDIR}${file}\"") - ENDIF(NOT "${rm_retval}" STREQUAL 0) - ELSE(EXISTS "$ENV{DESTDIR}${file}") - MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") - ENDIF(EXISTS "$ENV{DESTDIR}${file}") -ENDFOREACH(file) diff --git a/cmake/mingw-toolchain.cmake b/cmake/mingw-toolchain.cmake new file mode 100644 index 0000000..7847e9b --- /dev/null +++ b/cmake/mingw-toolchain.cmake @@ -0,0 +1,29 @@ +# Tuxanci 2 - A first person shooter +# Copyright (C) 2007-2011 Tuxánci Development Team +# Copyright (C) 2025-2026 Connor Thomson +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +set(CMAKE_SYSTEM_NAME Windows) +set(TOOLCHAIN_PREFIX x86_64-w64-mingw32) + +set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc) +set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres) + +set(CMAKE_FIND_ROOT_PATH "/usr/${TOOLCHAIN_PREFIX}") + +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
\ No newline at end of file diff --git a/configure b/configure deleted file mode 100755 index d7eb863..0000000 --- a/configure +++ /dev/null @@ -1,268 +0,0 @@ -#!/bin/sh - -# Go to the root -cd ${0%%/*} -ROOTDIR=`pwd` - -### -# Defaults -### -VERSION=0.2.99 -PREFIX=/usr/local -PREFIX_BIN=${PREFIX}/bin -PREFIX_LIB=${PREFIX}/lib/tuxanci -PREFIX_DATA=${PREFIX}/share/tuxanci -PREFIX_DOC=${PREFIX}/share/doc/tuxanci-${VERSION} -PREFIX_CONF=/etc -PREFIX_LOCALE=${PREFIX}/share/locale -PREFIX_FONT=${PREFIX_DATA}/font -DESTDIR= -DEBUG=1 -SERVER=0 -CLIENT=1 -AUDIO=1 -OPENGL=1 -GETTEXT=1 - -### -# Predefined functions -### -help() { - echo "Supported options are:" - echo "--help print this help and exit" - echo "--prefix=<path> final path for the game [/usr/local]" - echo "--prefix-bin=<path> path for binaries [\$prefix/bin]" - echo "--prefix-lib=<path> path for the modules [\$prefix/lib/tuxanci]" - echo "--prefix-data=<path> data path [\$prefix/share/tuxanci]" - echo "--prefix-doc=<path> documentation path [\$prefix/share/doc/tuxanci-${VERSION}]" - echo "--prefix-conf=<path> configuration files path [/etc]" - echo "--prefix-locale=<path> locale path [\$prefix/share/locale]" - echo "--prefix-font=<path> fonts path [\$prefix/share/tuxanci/font]" - echo "--destdir=<path> useful option for packagers" - echo "" - echo "--disable-debug enables optimization and quiet output [default: no]" - echo "--enable-server build server [default: no]" - echo "--enable-client build client [default: yes]" - echo "--enable-audio build with audio facility [default: yes]" - echo "--enable-opengl build with 3D acceleration [default: yes]" - echo "" - echo "--without-gettext English-only version [default: no]" -} - -check_pkg() { - lib="$1" - [ "$2" ] && lib="${lib} $2" - [ "$3" ] && lib="${lib} $3" - if [ "`pkg-config --exists --print-errors "${lib}" | grep "No package '$1' found"`" != "" ]; then - echo "no" - echo "Error: Cannot find ${lib}" - exit 1 - else - echo "yes" - fi -} - -cmpver() { - ## - # 0: equal - # 1: newer - # 2: older - ## - - v1=`echo $1 | sed -e "s/\./ /g"` - v2=`echo $2 | sed -e "s/\./ /g"` - - # major - j1=`echo $v1 | awk '{ print $1 }'` - j2=`echo $v2 | awk '{ print $1 }'` - if [ $j1 -lt $j2 ]; then - echo 1 && exit - elif [ $j1 -gt $j2 ]; then - echo 2 && exit - fi - - # minor - n1=`echo $v1 | awk '{ print $2 }'` - n2=`echo $v2 | awk '{ print $2 }'` - if [ $n1 -lt $n2 ]; then - echo 1 && exit - elif [ $n1 -gt $n2 ]; then - echo 2 && exit - fi - - # patch - p1=`echo $v1 | awk '{ print $3 }'` - p2=`echo $v2 | awk '{ print $3 }'` - if [ $p1 -lt $p2 ]; then - echo 1 && exit - elif [ $p1 -gt $p2 ]; then - echo 2 && exit - fi - - # default - echo 0 && exit -} - -### -# Parse options -### -echo "==> Parsing options" - -while [ $# -gt 0 ]; do - case $1 in - --help) - help - exit 0 - ;; - --prefix=*) - PREFIX=`echo $1 | sed 's/--prefix=//'` - ;; - --prefix-bin=*) - PREFIX_BIN=`echo $1 | sed 's/--prefix-bin=//'` - ;; - --prefix-data=*) - PREFIX=`echo $1 | sed 's/--prefix-data=//'` - ;; - --prefix-doc=*) - PREFIX=`echo $1 | sed 's/--prefix-doc=//'` - ;; - --destdir=*) - DESTDIR=`echo $1 | sed 's/--destdir=//'` - ;; - --enable-*) - case ${1#--enable-} in - debug) - DEBUG=1 - ;; - server) - SERVER=1 - ;; - client) - CLIENT=1 - ;; - audio) - AUDIO=1 - ;; - opengl) - OPENGL=1 - ;; - *) - echo "Error: unknown option --enable-$1" - help - exit 1 - ;; - esac - ;; - --disable-*) - case ${1#--disable-} in - debug) - DEBUG=0 - ;; - server) - SERVER=0 - ;; - client) - CLIENT=0 - ;; - audio) - AUDIO=0 - ;; - opengl) - OPENGL=0 - ;; - *) - echo "Error: unknown option --disable-$1" - help - exit 1 - ;; - esac - ;; - --with-*) - case ${1#--with-} in - gettext) - GETTEXT=1 - ;; - *) - echo "Error: unknown option --with-$1" - help - exit 1 - ;; - esac - ;; - --without-*) - case ${1#--with-} in - gettext) - GETTEXT=0 - ;; - *) - echo "Error: unknown option --without-$1" - help - exit 1 - ;; - esac - ;; - *) - echo "Error: unknown option $1" - help - exit 1 - ;; - esac - shift -done - - -### -# Check for cmake dependency -### -printf "==> Checking for cmake >= 2.6.0... " -cmakebin=`which cmake` -if [ "${cmakebin}" == "" ]; then - echo "no" - echo "Error: Cannot find cmake" - exit 1 -else - cmakeversion=`${cmakebin} --version | sed -e "s/-patch//" | awk '{ print $3, $4 }' | sed -e "s/ /./"` - cmakestatus=`cmpver "2.6.0" ${cmakeversion}` - if [ ${cmakestatus} == 1 ] || [ ${cmakestatus} == 0 ]; then - echo "yes" - else - echo "no" - echo "Error: Cannot find cmake" - exit 1 - fi -fi - - -### -# Run cmake for client -### -if [ ${CLIENT} == 1 ]; then - echo "==> Running cmake stage for client and creating subMakefile" - rm -rf build_client/ - mkdir build_client/ - cd build_client/ - cmakeopts="-DBUILD_SERVER=0" - # debug - if [ ${DEBUG} == 1 ]; then cmakeopts="${cmakeopts} -DENABLE_DEBUG=1" - else cmakeopts="${cmakeopts} -DENABLE_DEBUG=0"; fi - # audio - if [ ${AUDIO} == 1 ]; then cmakeopts="${cmakeopts} -DWITH_AUDIO=1" - else cmakeopts="${cmakeopts} -DWITH_AUDIO=0"; fi - # opengl - if [ ${OPENGL} == 1 ]; then cmakeopts="${cmakeopts} -DWITH_OPENGL=1" - else cmakeopts="${cmakeopts} -DWITH_OPENGL=0"; fi - # gettext - if [ ${GETTEXT} == 1 ]; then cmakeopts="${cmakeopts} -DWITH_NLS=1" - else cmakeopts="${cmakeopts} -DWITH_NLS=0"; fi - - cmakecmd="cmake .. ${cmakeopts}" - echo "Executing: ${cmakecmd}" - ${cmakecmd} > cmake.log -fi - - -echo "==> Creating main Makefile" -cat > Makefile <<EOF -EOF - -echo "==> Configuring successfully finished!" diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt deleted file mode 100644 index f52b660..0000000 --- a/data/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -############################################################################### -# tuxanci/data/CMakeLists.txt -############################################################################### -# DIRECTORIES -############################################################################### -ADD_SUBDIRECTORY ( arena ) -ADD_SUBDIRECTORY ( conf ) -IF ( NOT BUILD_SERVER ) - ADD_SUBDIRECTORY ( images ) - ADD_SUBDIRECTORY ( music ) - ADD_SUBDIRECTORY ( sound ) -ENDIF ( NOT BUILD_SERVER ) -############################################################################### -# CURRENT DIRECTORY FILES -############################################################################### -IF ( NOT BUILD_SERVER ) - INSTALL ( FILES tuxanci.svg - DESTINATION ${CMAKE_INSTALL_ICONDIR}/ ) - INSTALL ( FILES tuxanci.desktop - DESTINATION ${CMAKE_INSTALL_DESKTOPDIR}/ ) -ENDIF ( NOT BUILD_SERVER ) -############################################################################### diff --git a/data/LICENSE b/data/LICENSE new file mode 100644 index 0000000..7d4f96c --- /dev/null +++ b/data/LICENSE @@ -0,0 +1,427 @@ +Attribution-ShareAlike 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-ShareAlike 4.0 International Public +License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-ShareAlike 4.0 International Public License ("Public +License"). To the extent this Public License may be interpreted as a +contract, You are granted the Licensed Rights in consideration of Your +acceptance of these terms and conditions, and the Licensor grants You +such rights in consideration of benefits the Licensor receives from +making the Licensed Material available under these terms and +conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. BY-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + k. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + l. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + m. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + including for purposes of Section 3(b); and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/data/arena/CMakeLists.txt b/data/arena/CMakeLists.txt deleted file mode 100644 index 9a7fdd1..0000000 --- a/data/arena/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# tuxanci/data/arena/CMakeLists.txt -############################################################################### -# DIRECTORIES -############################################################################### -# nada :P -############################################################################### -# CURRENT DIRECTORY FILES -############################################################################### -FILE ( GLOB files "*.zip" ) -INSTALL ( FILES ${files} - DESTINATION ${CMAKE_INSTALL_DATADIR}/${APPNAME}/arena/ ) -###############################################################################
\ No newline at end of file diff --git a/data/arena/ba_in_a_captivity_of_8-bit.zip b/data/arena/ba_in_a_captivity_of_8-bit.zip Binary files differdeleted file mode 100644 index 2a7fbc4..0000000 --- a/data/arena/ba_in_a_captivity_of_8-bit.zip +++ /dev/null diff --git a/data/arena/construction_site.zip b/data/arena/construction_site.zip Binary files differdeleted file mode 100644 index db22e84..0000000 --- a/data/arena/construction_site.zip +++ /dev/null diff --git a/data/arena/for_a_good_night.zip b/data/arena/for_a_good_night.zip Binary files differdeleted file mode 100644 index 3ee3207..0000000 --- a/data/arena/for_a_good_night.zip +++ /dev/null diff --git a/data/arena/in_a_captivity_of_8-bit.zip b/data/arena/in_a_captivity_of_8-bit.zip Binary files differdeleted file mode 100644 index cbefbb8..0000000 --- a/data/arena/in_a_captivity_of_8-bit.zip +++ /dev/null diff --git a/data/arena/night_workshift.zip b/data/arena/night_workshift.zip Binary files differdeleted file mode 100644 index f69e8ec..0000000 --- a/data/arena/night_workshift.zip +++ /dev/null diff --git a/data/conf/CMakeLists.txt b/data/conf/CMakeLists.txt deleted file mode 100644 index 00922c5..0000000 --- a/data/conf/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -############################################################################### -# tuxanci/data/conf/CMakeLists.txt -############################################################################### -# DIRECTORIES -############################################################################### -# nada :P -############################################################################### -# CURRENT DIRECTORY FILES -############################################################################### -IF ( BUILD_SERVER ) - CONFIGURE_FILE ( - ${CMAKE_SOURCE_DIR}/data/conf/arena.conf.in - ${CMAKE_BINARY_DIR}/data/conf/arena.conf - ) - INSTALL ( FILES ${CMAKE_BINARY_DIR}/data/conf/arena.conf - DESTINATION ${CMAKE_INSTALL_ETCDIR}/${APPNAME} ) - FILE ( GLOB files "*.conf" ) - INSTALL ( FILES ${files} - DESTINATION ${CMAKE_INSTALL_ETCDIR}/${APPNAME} ) -ENDIF ( BUILD_SERVER ) -############################################################################### diff --git a/data/conf/arena.conf.in b/data/conf/arena.conf.in deleted file mode 100644 index cf0aa9c..0000000 --- a/data/conf/arena.conf.in +++ /dev/null @@ -1,6 +0,0 @@ -@CMAKE_INSTALL_DATADIR@/@APPNAME@/arena/for_a_good_night.zip FAGN -@CMAKE_INSTALL_DATADIR@/@APPNAME@/arena/night_workshift.zip NW -@CMAKE_INSTALL_DATADIR@/@APPNAME@/arena/in_a_captivity_of_8-bit.zip IACO8B -@CMAKE_INSTALL_DATADIR@/@APPNAME@/arena/construction_site.zip CS -@CMAKE_INSTALL_DATADIR@/@APPNAME@/arena/ba_in_a_captivity_of_8-bit.zip BAIACO8B - diff --git a/data/conf/server.conf b/data/conf/server.conf deleted file mode 100644 index c9f2cc1..0000000 --- a/data/conf/server.conf +++ /dev/null @@ -1,20 +0,0 @@ -NAME defalt gameserver - -DAEMON 1 - -#IP4 0.0.0.0 -IP6 :: -PORT 6800 -LAN_ONLY 0 - -MAX_CLIENTS 32 -ARENA BAIACO8B - -ITEM 10 -MAX_ITEM 20 - -PID_FILE tuxanci-server.pid -LOG_FILE tuxanci-server.log -SCORE_FILE highscore.txt - -SUPPORT_CLIENTS 0.20.0 0.21.0 0.2.99 diff --git a/data/fonts/DejaVuSans.ttf b/data/fonts/DejaVuSans.ttf Binary files differnew file mode 100644 index 0000000..e5f7eec --- /dev/null +++ b/data/fonts/DejaVuSans.ttf diff --git a/data/fonts/LICENSE b/data/fonts/LICENSE new file mode 100644 index 0000000..df52c17 --- /dev/null +++ b/data/fonts/LICENSE @@ -0,0 +1,187 @@ +Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. +Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below) + + +Bitstream Vera Fonts Copyright +------------------------------ + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is +a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute the +Font Software, including without limitation the rights to use, copy, merge, +publish, distribute, and/or sell copies of the Font Software, and to permit +persons to whom the Font Software is furnished to do so, subject to the +following conditions: + +The above copyright and trademark notices and this permission notice shall +be included in all copies of one or more of the Font Software typefaces. + +The Font Software may be modified, altered, or added to, and in particular +the designs of glyphs or characters in the Fonts may be modified and +additional glyphs or characters may be added to the Fonts, only if the fonts +are renamed to names not containing either the words "Bitstream" or the word +"Vera". + +This License becomes null and void to the extent applicable to Fonts or Font +Software that has been modified and is distributed under the "Bitstream +Vera" names. + +The Font Software may be sold as part of a larger software package but no +copy of one or more of the Font Software typefaces may be sold by itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME +FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING +ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE +FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font Software +without prior written authorization from the Gnome Foundation or Bitstream +Inc., respectively. For further information, contact: fonts at gnome dot +org. + +Arev Fonts Copyright +------------------------------ + +Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and +associated documentation files (the "Font Software"), to reproduce +and distribute the modifications to the Bitstream Vera Font Software, +including without limitation the rights to use, copy, merge, publish, +distribute, and/or sell copies of the Font Software, and to permit +persons to whom the Font Software is furnished to do so, subject to +the following conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. + +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Tavmjong Bah" or the word "Arev". + +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Tavmjong Bah Arev" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the name of Tavmjong Bah shall not +be used in advertising or otherwise to promote the sale, use or other +dealings in this Font Software without prior written authorization +from Tavmjong Bah. For further information, contact: tavmjong @ free +. fr. + +TeX Gyre DJV Math +----------------- +Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. + +Math extensions done by B. Jackowski, P. Strzelczyk and P. Pianowski +(on behalf of TeX users groups) are in public domain. + +Letters imported from Euler Fraktur from AMSfonts are (c) American +Mathematical Society (see below). +Bitstream Vera Fonts Copyright +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera +is a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the fonts accompanying this license (“Fonts”) and associated +documentation +files (the “Font Software”), to reproduce and distribute the Font Software, +including without limitation the rights to use, copy, merge, publish, +distribute, +and/or sell copies of the Font Software, and to permit persons to whom +the Font Software is furnished to do so, subject to the following +conditions: + +The above copyright and trademark notices and this permission notice +shall be +included in all copies of one or more of the Font Software typefaces. + +The Font Software may be modified, altered, or added to, and in particular +the designs of glyphs or characters in the Fonts may be modified and +additional +glyphs or characters may be added to the Fonts, only if the fonts are +renamed +to names not containing either the words “Bitstream” or the word “Vera”. + +This License becomes null and void to the extent applicable to Fonts or +Font Software +that has been modified and is distributed under the “Bitstream Vera” +names. + +The Font Software may be sold as part of a larger software package but +no copy +of one or more of the Font Software typefaces may be sold by itself. + +THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME +FOUNDATION +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, +SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN +ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR +INABILITY TO USE +THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. +Except as contained in this notice, the names of GNOME, the GNOME +Foundation, +and Bitstream Inc., shall not be used in advertising or otherwise to promote +the sale, use or other dealings in this Font Software without prior written +authorization from the GNOME Foundation or Bitstream Inc., respectively. +For further information, contact: fonts at gnome dot org. + +AMSFonts (v. 2.2) copyright + +The PostScript Type 1 implementation of the AMSFonts produced by and +previously distributed by Blue Sky Research and Y&Y, Inc. are now freely +available for general use. This has been accomplished through the +cooperation +of a consortium of scientific publishers with Blue Sky Research and Y&Y. +Members of this consortium include: + +Elsevier Science IBM Corporation Society for Industrial and Applied +Mathematics (SIAM) Springer-Verlag American Mathematical Society (AMS) + +In order to assure the authenticity of these fonts, copyright will be +held by +the American Mathematical Society. This is not meant to restrict in any way +the legitimate use of the fonts, such as (but not limited to) electronic +distribution of documents containing these fonts, inclusion of these fonts +into other public domain or commercial font collections or computer +applications, use of the outline data to create derivative fonts and/or +faces, etc. However, the AMS does require that the AMS copyright notice be +removed from any derivative versions of the fonts which have been altered in +any way. In addition, to ensure the fidelity of TeX documents using Computer +Modern fonts, Professor Donald Knuth, creator of the Computer Modern faces, +has requested that any alterations which yield different font metrics be +given a different name. + +$Id$ diff --git a/data/images/CMakeLists.txt b/data/images/CMakeLists.txt deleted file mode 100644 index 48a7e27..0000000 --- a/data/images/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################### -# tuxanci/data/images/CMakeLists.txt -############################################################################### -# DIRECTORIES -############################################################################### -# nada :P -############################################################################### -# CURRENT DIRECTORY FILES -############################################################################### -IF ( NOT Server ) - FILE ( GLOB files "*.png" ) - INSTALL ( FILES ${files} - DESTINATION ${CMAKE_INSTALL_DATADIR}/${APPNAME}/images/ ) -ENDIF ( NOT Server ) -###############################################################################
\ No newline at end of file diff --git a/data/images/big-explosion.png b/data/images/big-explosion.png Binary files differdeleted file mode 100644 index a8d0586..0000000 --- a/data/images/big-explosion.png +++ /dev/null diff --git a/data/images/bombball.png b/data/images/bombball.png Binary files differdeleted file mode 100644 index bb3cda7..0000000 --- a/data/images/bombball.png +++ /dev/null diff --git a/data/images/button0.png b/data/images/button0.png Binary files differdeleted file mode 100644 index 6dde5c6..0000000 --- a/data/images/button0.png +++ /dev/null diff --git a/data/images/button1.png b/data/images/button1.png Binary files differdeleted file mode 100644 index a60f343..0000000 --- a/data/images/button1.png +++ /dev/null diff --git a/data/images/chat.png b/data/images/chat.png Binary files differdeleted file mode 100644 index bb7d94f..0000000 --- a/data/images/chat.png +++ /dev/null diff --git a/data/images/check.png b/data/images/check.png Binary files differdeleted file mode 100644 index 1d905c5..0000000 --- a/data/images/check.png +++ /dev/null diff --git a/data/images/choice.png b/data/images/choice.png Binary files differdeleted file mode 100644 index b76ae41..0000000 --- a/data/images/choice.png +++ /dev/null diff --git a/data/images/cross.png b/data/images/cross.png Binary files differdeleted file mode 100644 index 52636ef..0000000 --- a/data/images/cross.png +++ /dev/null diff --git a/data/images/crosshair.rgba b/data/images/crosshair.rgba new file mode 100644 index 0000000..ae2defc --- /dev/null +++ b/data/images/crosshair.rgba @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/data/images/explosion.png b/data/images/explosion.png Binary files differdeleted file mode 100644 index 6b71c36..0000000 --- a/data/images/explosion.png +++ /dev/null diff --git a/data/images/frame.png b/data/images/frame.png Binary files differdeleted file mode 100644 index 96d8b02..0000000 --- a/data/images/frame.png +++ /dev/null diff --git a/data/images/graf.bonus.png b/data/images/graf.bonus.png Binary files differdeleted file mode 100644 index 6f195b1..0000000 --- a/data/images/graf.bonus.png +++ /dev/null diff --git a/data/images/icon.bonus.4x.png b/data/images/icon.bonus.4x.png Binary files differdeleted file mode 100644 index cd08e3f..0000000 --- a/data/images/icon.bonus.4x.png +++ /dev/null diff --git a/data/images/icon.bonus.ghost.png b/data/images/icon.bonus.ghost.png Binary files differdeleted file mode 100644 index ff483f3..0000000 --- a/data/images/icon.bonus.ghost.png +++ /dev/null diff --git a/data/images/icon.bonus.hidden.png b/data/images/icon.bonus.hidden.png Binary files differdeleted file mode 100644 index dfee367..0000000 --- a/data/images/icon.bonus.hidden.png +++ /dev/null diff --git a/data/images/icon.bonus.shot.png b/data/images/icon.bonus.shot.png Binary files differdeleted file mode 100644 index d10c84f..0000000 --- a/data/images/icon.bonus.shot.png +++ /dev/null diff --git a/data/images/icon.bonus.speed.png b/data/images/icon.bonus.speed.png Binary files differdeleted file mode 100644 index 1179ad6..0000000 --- a/data/images/icon.bonus.speed.png +++ /dev/null diff --git a/data/images/icon.bonus.teleport.png b/data/images/icon.bonus.teleport.png Binary files differdeleted file mode 100644 index 21c1f25..0000000 --- a/data/images/icon.bonus.teleport.png +++ /dev/null diff --git a/data/images/icon.gun.bombball.png b/data/images/icon.gun.bombball.png Binary files differdeleted file mode 100644 index 65eb972..0000000 --- a/data/images/icon.gun.bombball.png +++ /dev/null diff --git a/data/images/icon.gun.dual.simple.png b/data/images/icon.gun.dual.simple.png Binary files differdeleted file mode 100644 index 257c600..0000000 --- a/data/images/icon.gun.dual.simple.png +++ /dev/null diff --git a/data/images/icon.gun.lasser.png b/data/images/icon.gun.lasser.png Binary files differdeleted file mode 100644 index 5942665..0000000 --- a/data/images/icon.gun.lasser.png +++ /dev/null diff --git a/data/images/icon.gun.mine.png b/data/images/icon.gun.mine.png Binary files differdeleted file mode 100644 index 6af9154..0000000 --- a/data/images/icon.gun.mine.png +++ /dev/null diff --git a/data/images/icon.gun.scatter.png b/data/images/icon.gun.scatter.png Binary files differdeleted file mode 100644 index 30eb363..0000000 --- a/data/images/icon.gun.scatter.png +++ /dev/null diff --git a/data/images/icon.gun.simple.png b/data/images/icon.gun.simple.png Binary files differdeleted file mode 100644 index 0b7b491..0000000 --- a/data/images/icon.gun.simple.png +++ /dev/null diff --git a/data/images/icon.gun.tommy.png b/data/images/icon.gun.tommy.png Binary files differdeleted file mode 100644 index dafc7a5..0000000 --- a/data/images/icon.gun.tommy.png +++ /dev/null diff --git a/data/images/in_a_captivity_of_8-bit.png b/data/images/in_a_captivity_of_8-bit.png Binary files differdeleted file mode 100644 index 922786e..0000000 --- a/data/images/in_a_captivity_of_8-bit.png +++ /dev/null diff --git a/data/images/interface/cloud01.svg b/data/images/interface/cloud01.svg deleted file mode 100644 index 8fad071..0000000 --- a/data/images/interface/cloud01.svg +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - version="1.0" - width="368.47278" - height="228.29573" - id="svg3002"> - <defs - id="defs3004" /> - <g - transform="translate(92.807813,56.07139)" - id="layer1"> - <g - transform="translate(-148.68521,-107.32034)" - id="g7748"> - <path - d="M 291.13106,51.258577 C 271.54487,51.198747 252.32343,60.986967 240.51204,76.550947 C 224.45784,69.358327 209.17634,86.314797 196.17547,83.194037 C 178.2677,75.860407 156.50692,79.801927 141.94898,92.429407 C 125.58234,96.027517 109.14604,95.006917 92.902282,99.123037 C 73.256811,106.43705 62.569488,130.41983 71.406463,149.70472 C 73.486006,159.63403 54.971975,168.32935 56.585906,182.08679 C 52.428734,202.89454 67.078377,223.52543 87.09456,229.02532 C 87.04556,251.48261 110.96301,271.17819 132.98091,265.00049 C 148.62531,282.58851 179.22557,284.76464 196.92343,268.56715 C 215.8439,271.08447 228.19102,251.51491 241.73848,247.11102 C 258.58838,251.25702 272.26957,230.84611 286.28212,244.37039 C 302.24312,250.16638 318.10689,244.3073 331.42033,256.42572 C 356.20864,265.98879 388.86335,253.30091 396.048,226.53964 C 403.70706,214.57801 420.66981,208.51619 422.72723,192.03668 C 427.23847,176.98406 422.12724,159.95367 410.09948,149.83879 C 417.6269,129.61119 399.84724,113.46795 389.2749,101.1886 C 383.51047,78.843447 358.56285,63.149767 335.95427,68.628857 C 324.06112,57.255507 307.55942,50.968257 291.13106,51.258577 z" - id="path4718" - style="opacity:1;fill:#000000;fill-opacity:0.33333333;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 286.86267,57.295317 C 266.70848,57.295317 249.07045,68.102747 239.41591,84.233827 C 235.18277,82.536807 230.56954,81.593137 225.73231,81.593137 C 214.49326,81.593137 204.42157,86.648067 197.66208,94.590837 C 190.50893,88.918287 181.46405,85.519887 171.63238,85.519887 C 159.14562,85.519887 147.93748,90.997827 140.2527,99.666457 C 137.85685,98.883297 135.29563,98.448997 132.63927,98.448997 C 125.90442,98.448997 119.80155,101.17863 115.37187,105.5823 C 111.38074,103.53383 106.85739,102.37575 102.06551,102.37575 C 85.947382,102.37575 72.863552,115.45958 72.863552,131.57771 C 72.863552,140.68835 77.052846,148.82176 83.597803,154.17794 C 70.166867,158.03105 60.328826,170.41342 60.328828,185.07749 C 60.328828,202.81825 74.722229,217.21165 92.462991,217.21165 C 92.554402,217.21165 92.64612,217.21242 92.737349,217.21165 C 92.058001,219.64544 91.69136,222.20984 91.69136,224.85938 C 91.69136,240.54481 104.41911,253.27257 120.10454,253.27256 C 124.25462,253.27256 128.19233,252.37032 131.7476,250.76905 C 138.20213,260.53073 149.27078,266.99046 161.84123,266.99046 C 172.24455,266.99046 181.61342,262.57383 188.19673,255.51887 C 189.0734,255.57695 189.94613,255.62175 190.83742,255.62175 C 207.09771,255.62175 221.06564,245.7989 227.15555,231.76977 C 231.37407,233.48958 235.98761,234.4619 240.822,234.4619 C 252.12315,234.4619 262.20742,229.26857 268.85794,221.15555 C 276.54137,229.79243 287.74288,235.23354 300.20332,235.23353 C 304.99864,235.23353 309.59413,234.41992 313.88692,232.93579 C 321.29217,241.54066 332.24326,246.99663 344.47782,246.99663 C 365.72051,246.99663 383.15731,230.55794 384.73984,209.71825 C 399.1689,206.38964 409.94647,193.44827 409.94646,178.01278 C 409.94646,165.91239 403.31327,155.35776 393.50214,149.75392 C 395.73622,145.76615 397.00021,141.16914 397.0002,136.27609 C 397.0002,123.39365 388.16894,112.54756 376.23474,109.4919 C 376.16065,89.758877 360.11276,73.756787 340.36245,73.756787 C 336.08362,73.756787 331.99358,74.506437 328.18782,75.883067 C 318.06233,64.488107 303.29382,57.295317 286.86267,57.295317 z M 122.64235,196.13754 C 122.89783,196.30492 123.15399,196.47391 123.41398,196.63481 C 123.10693,196.59907 122.79798,196.57494 122.48803,196.54908 C 122.54042,196.41224 122.59178,196.27526 122.64235,196.13754 z" - id="path4671" - style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </g> - </g> -</svg> diff --git a/data/images/interface/cloud02.svg b/data/images/interface/cloud02.svg deleted file mode 100644 index d89eece..0000000 --- a/data/images/interface/cloud02.svg +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - version="1.0" - width="351.52148" - height="235.52995" - id="svg3035"> - <defs - id="defs3037" /> - <g - transform="translate(230.04646,-197.45435)" - id="layer1"> - <g - transform="translate(-855.80577,50.944919)" - id="g7752"> - <path - d="M 880.70898,146.70033 C 863.67522,144.54482 853.89505,161.09136 846.62874,173.7051 C 837.59024,192.37766 809.9722,178.9434 798.2925,195.79909 C 783.85587,199.87394 767.47974,186.06199 754.37681,199.16279 C 737.6267,197.38016 718.48885,203.62834 704.91832,191.61294 C 691.25691,179.61159 671.11925,177.93607 654.84017,185.13579 C 636.30736,193.35181 625.08741,213.43672 625.79053,233.38629 C 625.39456,250.02611 644.1545,261.81373 638.23586,279.24927 C 638.33002,297.301 651.75583,315.36065 670.08094,318.05466 C 668.7157,347.42723 703.97802,371.52683 730.58831,358.15492 C 740.7736,368.2071 750.06527,381.67434 766.10778,381.57019 C 784.64451,385.21703 795.20946,366.41019 812.73282,366.33078 C 828.15358,362.74894 838.48639,349.31578 854.78003,358.51231 C 872.90561,362.72793 891.8185,354.90531 902.65966,340.04688 C 913.04008,332.20548 928.78998,337.4222 938.43041,326.50513 C 947.35446,319.32983 953.5651,308.40692 953.82897,296.82563 C 984.37788,284.04735 985.60317,232.89518 954.43357,220.12664 C 943.21761,208.18004 940.42962,190.49196 926.59842,180.27723 C 915.17596,165.54058 901.65944,146.01191 880.70898,146.70033 z" - id="path5702" - style="opacity:1;fill:#000000;fill-opacity:0.33333333;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 876.45459,152.07053 C 862.33905,152.07053 850.87961,163.52997 850.87962,177.64551 C 850.87962,179.31925 851.0528,180.9479 851.36027,182.53219 C 850.99187,182.50982 850.61273,182.49213 850.23874,182.49213 C 843.4109,182.49213 837.46795,186.28355 834.37705,191.86495 C 830.66466,190.41845 826.62286,189.62188 822.40067,189.62188 C 808.63979,189.62188 796.83572,198.05357 791.87893,210.02979 C 786.36169,203.11491 777.8741,198.67426 768.34675,198.67426 C 758.77324,198.67426 750.24936,203.15742 744.73446,210.12993 C 739.78833,205.82533 733.33609,203.22048 726.26921,203.22048 C 718.89147,203.22048 712.18577,206.06273 707.16308,210.71072 C 701.02405,196.40381 686.81912,186.37744 670.27264,186.37745 C 648.1166,186.37745 630.13775,204.3563 630.13775,226.51233 C 630.13775,240.17376 636.96504,252.247 647.40136,259.49744 C 644.26758,264.24703 642.43456,269.92805 642.43457,276.04006 C 642.43457,292.65708 655.91871,306.14122 672.53573,306.14122 C 673.41237,306.14122 674.28159,306.0946 675.13929,306.02106 C 674.49763,308.65521 674.15795,311.40153 674.15795,314.23229 C 674.15795,333.35079 689.66679,348.87967 708.7853,348.87967 C 718.85513,348.87967 727.92977,344.57259 734.26014,337.70438 C 734.30748,337.71839 734.35284,337.73078 734.40033,337.74444 C 734.37842,338.21275 734.36028,338.69269 734.36028,339.16638 C 734.36028,355.60473 747.70266,368.94711 764.141,368.94711 C 774.80218,368.94711 784.15439,363.33663 789.41556,354.90791 C 791.41893,355.18524 793.46468,355.34851 795.54395,355.34851 C 810.39207,355.34851 823.52331,348.01778 831.57322,336.80315 C 838.7077,343.10315 848.07082,346.93702 858.3298,346.93701 C 875.63577,346.93701 890.42357,336.0522 896.20159,320.76121 C 899.81302,322.19152 903.73913,322.98425 907.85753,322.98425 C 925.36795,322.98425 939.58091,308.77129 939.58091,291.26087 C 939.58091,289.86901 939.49466,288.49995 939.32056,287.15526 C 953.33763,282.84093 963.53367,269.77666 963.53367,254.3504 C 963.53367,236.71115 950.203,222.17807 933.07201,220.26378 C 933.51395,218.31951 933.75294,216.29294 933.75294,214.21551 C 933.75294,202.13244 925.85658,191.89739 914.94723,188.36016 C 914.45413,178.80131 908.35009,170.72472 899.8666,167.35143 C 895.90352,158.35709 886.90896,152.07053 876.45459,152.07053 z" - id="path5643" - style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </g> - </g> -</svg> diff --git a/data/images/interface/doc/menu.svg b/data/images/interface/doc/menu.svg deleted file mode 100644 index b3df88d..0000000 --- a/data/images/interface/doc/menu.svg +++ /dev/null @@ -1,3757 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.0" - width="1024" - height="768" - id="svg2" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docname="menu.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <metadata - id="metadata2645"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <sodipodi:namedview - inkscape:window-height="1070" - inkscape:window-width="1544" - inkscape:pageshadow="2" - inkscape:pageopacity="0.0" - guidetolerance="10.0" - gridtolerance="10.0" - objecttolerance="10.0" - borderopacity="1.0" - bordercolor="#666666" - pagecolor="#ffffff" - id="base" - showgrid="false" - inkscape:zoom="0.97888745" - inkscape:cx="604.2345" - inkscape:cy="471.47547" - inkscape:window-x="24" - inkscape:window-y="16" - inkscape:current-layer="svg2" - showguides="false" - inkscape:guide-bbox="true"> - <sodipodi:guide - orientation="1,0" - position="1010.3307,25.028414" - id="guide14272" /> - <sodipodi:guide - orientation="0,1" - position="1009.8199,34.733309" - id="guide14274" /> - </sodipodi:namedview> - <defs - id="defs4"> - <linearGradient - id="linearGradient9248"> - <stop - offset="0" - style="stop-color:#ffcc00;stop-opacity:1" - id="stop9250" /> - <stop - offset="1" - style="stop-color:#cc7a00;stop-opacity:1" - id="stop9252" /> - </linearGradient> - <linearGradient - id="linearGradient9242"> - <stop - offset="0" - style="stop-color:#355a14;stop-opacity:1" - id="stop9244" /> - <stop - offset="1" - style="stop-color:#183300;stop-opacity:1" - id="stop9246" /> - </linearGradient> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0.0" - refX="0.0" - id="Arrow2Lend" - style="overflow:visible;"> - <path - id="path3909" - style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " - transform="scale(1.1) rotate(180) translate(1,0)" /> - </marker> - <marker - inkscape:stockid="Arrow1Lstart" - orient="auto" - refY="0.0" - refX="0.0" - id="Arrow1Lstart" - style="overflow:visible"> - <path - id="path4147" - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" - transform="scale(0.8) translate(12.5,0)" /> - </marker> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 384 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="1024 : 384 : 1" - inkscape:persp3d-origin="512 : 256 : 1" - id="perspective2647" /> - <linearGradient - id="linearGradient7825"> - <stop - id="stop7827" - style="stop-color:#57663b;stop-opacity:1" - offset="0" /> - <stop - id="stop7829" - style="stop-color:#303a26;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient7798"> - <stop - id="stop7800" - style="stop-color:#666666;stop-opacity:1" - offset="0" /> - <stop - id="stop7802" - style="stop-color:#000000;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient7756"> - <stop - id="stop7758" - style="stop-color:#7fa43c;stop-opacity:1" - offset="0" /> - <stop - id="stop7760" - style="stop-color:#303a26;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient7618"> - <stop - id="stop7620" - style="stop-color:#000000;stop-opacity:1" - offset="0" /> - <stop - id="stop7622" - style="stop-color:#ab8858;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient7610"> - <stop - id="stop7612" - style="stop-color:#355a14;stop-opacity:1" - offset="0" /> - <stop - id="stop7614" - style="stop-color:#183300;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient6103"> - <stop - id="stop6105" - style="stop-color:#ffffff;stop-opacity:0.39072847" - offset="0" /> - <stop - id="stop6107" - style="stop-color:#ffffff;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4785"> - <stop - id="stop4787" - style="stop-color:#a6c0e0;stop-opacity:1" - offset="0" /> - <stop - id="stop4789" - style="stop-color:#35526f;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient2389"> - <stop - id="stop2391" - style="stop-color:#1c1c1c;stop-opacity:1" - offset="0" /> - <stop - id="stop2393" - style="stop-color:#41372b;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3260"> - <stop - id="stop3262" - style="stop-color:#666666;stop-opacity:1" - offset="0" /> - <stop - id="stop3264" - style="stop-color:#000000;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3346"> - <stop - id="stop3348" - style="stop-color:#000000;stop-opacity:1" - offset="0" /> - <stop - id="stop3350" - style="stop-color:#ffffff;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3278"> - <stop - id="stop3280" - style="stop-color:#ffcc00;stop-opacity:1" - offset="0" /> - <stop - id="stop3282" - style="stop-color:#cc7a00;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient2454"> - <stop - id="stop2456" - style="stop-color:#ffcc00;stop-opacity:1" - offset="0" /> - <stop - id="stop2458" - style="stop-color:#ffcc00;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3382"> - <stop - id="stop3384" - style="stop-color:#ffffff;stop-opacity:0.55000001" - offset="0" /> - <stop - id="stop3386" - style="stop-color:#ffdd55;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3412"> - <stop - id="stop3414" - style="stop-color:#ffffff;stop-opacity:0.19285715" - offset="0" /> - <stop - id="stop3416" - style="stop-color:#ffdd55;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3444"> - <stop - id="stop3446" - style="stop-color:#7a7a7a;stop-opacity:1" - offset="0" /> - <stop - id="stop3448" - style="stop-color:#2a2a2a;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3490"> - <stop - id="stop3492" - style="stop-color:#808080;stop-opacity:1" - offset="0" /> - <stop - id="stop3494" - style="stop-color:#808080;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4483"> - <stop - id="stop4485" - style="stop-color:#000000;stop-opacity:1" - offset="0" /> - <stop - id="stop4487" - style="stop-color:#000000;stop-opacity:0" - offset="1" /> - </linearGradient> - <radialGradient - cx="309.25818" - cy="253.70972" - r="26.521585" - fx="309.25818" - fy="253.70972" - id="radialGradient4237" - xlink:href="#linearGradient3490" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" /> - <linearGradient - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" - id="linearGradient4235" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" /> - <linearGradient - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" - id="linearGradient4233" - xlink:href="#linearGradient3444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4231" - xlink:href="#linearGradient3412" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4229" - xlink:href="#linearGradient3382" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" /> - <radialGradient - cx="314.18878" - cy="307.83929" - r="34.697639" - fx="314.18878" - fy="307.83929" - id="radialGradient4227" - xlink:href="#linearGradient2454" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" /> - <linearGradient - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" - id="linearGradient4225" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4223" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4221" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="300.21915" - cy="330.18991" - r="16.087479" - fx="300.21915" - fy="330.18991" - id="radialGradient4219" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" /> - <radialGradient - cx="306.686" - cy="329.11215" - r="16.087479" - fx="306.686" - fy="329.11215" - id="radialGradient4217" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" /> - <radialGradient - cx="268.75073" - cy="281.56763" - r="47.562981" - fx="268.75073" - fy="281.56763" - id="radialGradient4215" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" /> - <radialGradient - cx="309.25818" - cy="253.70972" - r="26.521585" - fx="309.25818" - fy="253.70972" - id="radialGradient4213" - xlink:href="#linearGradient3490" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" /> - <linearGradient - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" - id="linearGradient4211" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" /> - <linearGradient - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" - id="linearGradient4209" - xlink:href="#linearGradient3444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4207" - xlink:href="#linearGradient3412" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4205" - xlink:href="#linearGradient3382" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" /> - <radialGradient - cx="314.18878" - cy="307.83929" - r="34.697639" - fx="314.18878" - fy="307.83929" - id="radialGradient4203" - xlink:href="#linearGradient2454" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" /> - <linearGradient - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" - id="linearGradient4201" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4199" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4197" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="300.21915" - cy="330.18991" - r="16.087479" - fx="300.21915" - fy="330.18991" - id="radialGradient4195" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" /> - <radialGradient - cx="306.686" - cy="329.11215" - r="16.087479" - fx="306.686" - fy="329.11215" - id="radialGradient4193" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" /> - <radialGradient - cx="268.75073" - cy="281.56763" - r="47.562981" - fx="268.75073" - fy="281.56763" - id="radialGradient4191" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" /> - <radialGradient - cx="309.25818" - cy="253.70972" - r="26.521585" - fx="309.25818" - fy="253.70972" - id="radialGradient4189" - xlink:href="#linearGradient3490" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" /> - <linearGradient - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" - id="linearGradient4187" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" /> - <linearGradient - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" - id="linearGradient4185" - xlink:href="#linearGradient3444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4183" - xlink:href="#linearGradient3412" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4181" - xlink:href="#linearGradient3382" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" /> - <radialGradient - cx="314.18878" - cy="307.83929" - r="34.697639" - fx="314.18878" - fy="307.83929" - id="radialGradient4179" - xlink:href="#linearGradient2454" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" /> - <linearGradient - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" - id="linearGradient4177" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4175" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4173" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="300.21915" - cy="330.18991" - r="16.087479" - fx="300.21915" - fy="330.18991" - id="radialGradient4171" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" /> - <radialGradient - cx="306.686" - cy="329.11215" - r="16.087479" - fx="306.686" - fy="329.11215" - id="radialGradient4169" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" /> - <radialGradient - cx="268.75073" - cy="281.56763" - r="47.562981" - fx="268.75073" - fy="281.56763" - id="radialGradient4167" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" /> - <linearGradient - x1="380.58182" - y1="575.62482" - x2="380.58182" - y2="499.3468" - id="linearGradient3813" - xlink:href="#linearGradient2384" - gradientUnits="userSpaceOnUse" /> - <linearGradient - id="linearGradient2384"> - <stop - id="stop2386" - style="stop-color:#7f7f7f;stop-opacity:1" - offset="0" /> - <stop - id="stop2388" - style="stop-color:#ffffff;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4154"> - <stop - id="stop4156" - style="stop-color:#ffcc00;stop-opacity:1" - offset="0" /> - <stop - id="stop4158" - style="stop-color:#ffcc00;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3240"> - <stop - id="stop3242" - style="stop-color:#ffffff;stop-opacity:1" - offset="0" /> - <stop - id="stop3244" - style="stop-color:#b3b3b3;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4145"> - <stop - id="stop4147" - style="stop-color:#666666;stop-opacity:1" - offset="0" /> - <stop - id="stop4149" - style="stop-color:#000000;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4139"> - <stop - id="stop4141" - style="stop-color:#ffcc00;stop-opacity:1" - offset="0" /> - <stop - id="stop4143" - style="stop-color:#cc7a00;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4133"> - <stop - id="stop4135" - style="stop-color:#000000;stop-opacity:1" - offset="0" /> - <stop - id="stop4137" - style="stop-color:#ffffff;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4127"> - <stop - id="stop4129" - style="stop-color:#ffffff;stop-opacity:0.55000001" - offset="0" /> - <stop - id="stop4131" - style="stop-color:#ffdd55;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4121"> - <stop - id="stop4123" - style="stop-color:#ffffff;stop-opacity:0.19285715" - offset="0" /> - <stop - id="stop4125" - style="stop-color:#ffdd55;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4115"> - <stop - id="stop4117" - style="stop-color:#7a7a7a;stop-opacity:1" - offset="0" /> - <stop - id="stop4119" - style="stop-color:#2a2a2a;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="392.90366" - y1="474.98315" - x2="392.77127" - y2="542.93073" - id="linearGradient4593" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(292.29878,-242.96749)" /> - <radialGradient - cx="268.75073" - cy="281.56763" - r="47.562981" - fx="268.75073" - fy="281.56763" - id="radialGradient4595" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" /> - <radialGradient - cx="306.686" - cy="329.11215" - r="16.087479" - fx="306.686" - fy="329.11215" - id="radialGradient4597" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" /> - <radialGradient - cx="300.21915" - cy="330.18991" - r="16.087479" - fx="300.21915" - fy="330.18991" - id="radialGradient4599" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4601" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4603" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <linearGradient - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" - id="linearGradient4605" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="314.18878" - cy="307.83929" - r="34.697639" - fx="314.18878" - fy="307.83929" - id="radialGradient4607" - xlink:href="#linearGradient2454" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4609" - xlink:href="#linearGradient3382" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4611" - xlink:href="#linearGradient3412" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" /> - <linearGradient - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" - id="linearGradient4613" - xlink:href="#linearGradient3444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" /> - <linearGradient - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" - id="linearGradient4615" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="309.25818" - cy="253.70972" - r="26.521585" - fx="309.25818" - fy="253.70972" - id="radialGradient4617" - xlink:href="#linearGradient3490" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" /> - <radialGradient - cx="559.03674" - cy="482.57309" - r="65.12442" - fx="559.03674" - fy="482.57309" - id="radialGradient4619" - xlink:href="#linearGradient4483" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.3066153,4.3845595e-2,-0.1162824,0.5601066,593.41239,-100.65496)" /> - <radialGradient - cx="268.75073" - cy="281.56763" - r="47.562981" - fx="268.75073" - fy="281.56763" - id="radialGradient4621" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" /> - <radialGradient - cx="306.686" - cy="329.11215" - r="16.087479" - fx="306.686" - fy="329.11215" - id="radialGradient4623" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" /> - <radialGradient - cx="300.21915" - cy="330.18991" - r="16.087479" - fx="300.21915" - fy="330.18991" - id="radialGradient4625" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4627" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4629" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <linearGradient - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" - id="linearGradient4631" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="314.18878" - cy="307.83929" - r="34.697639" - fx="314.18878" - fy="307.83929" - id="radialGradient4633" - xlink:href="#linearGradient2454" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4635" - xlink:href="#linearGradient3382" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4637" - xlink:href="#linearGradient3412" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" /> - <linearGradient - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" - id="linearGradient4639" - xlink:href="#linearGradient3444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" /> - <linearGradient - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" - id="linearGradient4641" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="309.25818" - cy="253.70972" - r="26.521585" - fx="309.25818" - fy="253.70972" - id="radialGradient4643" - xlink:href="#linearGradient3490" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" /> - <radialGradient - cx="301.08719" - cy="515.88568" - r="65.12442" - fx="301.08719" - fy="515.88568" - id="radialGradient4645" - xlink:href="#linearGradient4483" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.2703757,-0.2226346,0.262486,0.4036686,420.78034,51.424117)" /> - <radialGradient - cx="268.75073" - cy="281.56763" - r="47.562981" - fx="268.75073" - fy="281.56763" - id="radialGradient4647" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" /> - <radialGradient - cx="306.686" - cy="329.11215" - r="16.087479" - fx="306.686" - fy="329.11215" - id="radialGradient4649" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" /> - <radialGradient - cx="300.21915" - cy="330.18991" - r="16.087479" - fx="300.21915" - fy="330.18991" - id="radialGradient4651" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4653" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4655" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <linearGradient - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" - id="linearGradient4657" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="314.18878" - cy="307.83929" - r="34.697639" - fx="314.18878" - fy="307.83929" - id="radialGradient4659" - xlink:href="#linearGradient2454" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4661" - xlink:href="#linearGradient3382" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4663" - xlink:href="#linearGradient3412" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" /> - <linearGradient - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" - id="linearGradient4665" - xlink:href="#linearGradient3444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" /> - <linearGradient - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" - id="linearGradient4667" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="309.25818" - cy="253.70972" - r="26.521585" - fx="309.25818" - fy="253.70972" - id="radialGradient4669" - xlink:href="#linearGradient3490" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" /> - <linearGradient - x1="513.15747" - y1="56.695404" - x2="513.15747" - y2="887.60516" - id="linearGradient4791" - xlink:href="#linearGradient4785" - gradientUnits="userSpaceOnUse" /> - <filter - height="1.3209751" - y="-0.16048753" - width="1.2181267" - x="-0.10906329" - id="filter7556"> - <feGaussianBlur - id="feGaussianBlur7558" - stdDeviation="3.7122331" - inkscape:collect="always" /> - </filter> - <linearGradient - x1="538.11664" - y1="707.9931" - x2="538.11664" - y2="789.8609" - id="linearGradient7624" - xlink:href="#linearGradient7618" - gradientUnits="userSpaceOnUse" /> - <filter - height="1.3726645" - y="-0.18633226" - width="1.1248273" - x="-0.062413666" - id="filter7738"> - <feGaussianBlur - id="feGaussianBlur7740" - stdDeviation="1.0592616" - inkscape:collect="always" /> - </filter> - <linearGradient - x1="688.78198" - y1="535.625" - x2="703.93427" - y2="746.07819" - id="linearGradient7742" - xlink:href="#linearGradient7756" - gradientUnits="userSpaceOnUse" /> - <linearGradient - x1="368.57141" - y1="79.610039" - x2="368.57141" - y2="731.86987" - id="linearGradient7823" - xlink:href="#linearGradient7825" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7825" - id="linearGradient2887" - gradientUnits="userSpaceOnUse" - x1="368.57141" - y1="79.610039" - x2="368.57141" - y2="731.86987" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7618" - id="linearGradient2889" - gradientUnits="userSpaceOnUse" - x1="538.11664" - y1="707.9931" - x2="538.11664" - y2="789.8609" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7756" - id="linearGradient2891" - gradientUnits="userSpaceOnUse" - x1="688.78198" - y1="535.625" - x2="703.93427" - y2="746.07819" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4785" - id="linearGradient2895" - gradientUnits="userSpaceOnUse" - x1="513.15747" - y1="56.695404" - x2="513.15747" - y2="887.60516" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient8951" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(292.29878,-242.96749)" - x1="392.90366" - y1="474.98315" - x2="392.77127" - y2="542.93073" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient8953" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - cx="268.75073" - cy="281.56763" - fx="268.75073" - fy="281.56763" - r="47.562981" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient8955" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - cx="306.686" - cy="329.11215" - fx="306.686" - fy="329.11215" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient8957" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - cx="300.21915" - cy="330.18991" - fx="300.21915" - fy="330.18991" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient8959" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient8961" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient8963" - gradientUnits="userSpaceOnUse" - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2454" - id="radialGradient8965" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - cx="314.18878" - cy="307.83929" - fx="314.18878" - fy="307.83929" - r="34.697639" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3382" - id="radialGradient8967" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3412" - id="radialGradient8969" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3444" - id="linearGradient8971" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="linearGradient8973" - gradientUnits="userSpaceOnUse" - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3490" - id="radialGradient8975" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - cx="309.25818" - cy="253.70972" - fx="309.25818" - fy="253.70972" - r="26.521585" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4483" - id="radialGradient8977" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.3066153,4.3845595e-2,-0.1162824,0.5601066,593.41239,-100.65496)" - cx="559.03674" - cy="482.57309" - fx="559.03674" - fy="482.57309" - r="65.12442" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient8979" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - cx="268.75073" - cy="281.56763" - fx="268.75073" - fy="281.56763" - r="47.562981" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient8981" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - cx="306.686" - cy="329.11215" - fx="306.686" - fy="329.11215" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient8983" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - cx="300.21915" - cy="330.18991" - fx="300.21915" - fy="330.18991" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient8985" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient8987" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient8989" - gradientUnits="userSpaceOnUse" - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2454" - id="radialGradient8991" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - cx="314.18878" - cy="307.83929" - fx="314.18878" - fy="307.83929" - r="34.697639" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3382" - id="radialGradient8993" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3412" - id="radialGradient8995" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3444" - id="linearGradient8997" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="linearGradient8999" - gradientUnits="userSpaceOnUse" - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3490" - id="radialGradient9001" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - cx="309.25818" - cy="253.70972" - fx="309.25818" - fy="253.70972" - r="26.521585" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4483" - id="radialGradient9003" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.2703757,-0.2226346,0.262486,0.4036686,420.78034,51.424117)" - cx="301.08719" - cy="515.88568" - fx="301.08719" - fy="515.88568" - r="65.12442" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient9005" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - cx="268.75073" - cy="281.56763" - fx="268.75073" - fy="281.56763" - r="47.562981" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient9007" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - cx="306.686" - cy="329.11215" - fx="306.686" - fy="329.11215" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient9009" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - cx="300.21915" - cy="330.18991" - fx="300.21915" - fy="330.18991" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient9011" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient9013" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient9015" - gradientUnits="userSpaceOnUse" - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2454" - id="radialGradient9017" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - cx="314.18878" - cy="307.83929" - fx="314.18878" - fy="307.83929" - r="34.697639" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3382" - id="radialGradient9019" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3412" - id="radialGradient9021" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3444" - id="linearGradient9023" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="linearGradient9025" - gradientUnits="userSpaceOnUse" - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3490" - id="radialGradient9027" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - cx="309.25818" - cy="253.70972" - fx="309.25818" - fy="253.70972" - r="26.521585" /> - <filter - inkscape:collect="always" - id="filter9225" - x="-0.024952863" - width="1.0499057" - y="-0.37006666" - height="1.7401333"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="10.284362" - id="feGaussianBlur9227" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4139" - id="linearGradient11353" - x1="637.83551" - y1="248.00143" - x2="637.83551" - y2="313.09811" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16,-36)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4139" - id="linearGradient11441" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16,14)" - x1="637.83551" - y1="248.00143" - x2="637.83551" - y2="313.09811" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4139" - id="linearGradient11472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-249.90542,-136.32766)" - x1="637.83551" - y1="248.00143" - x2="637.83551" - y2="313.09811" /> - <linearGradient - y2="887.60516" - x2="513.15747" - y1="56.695404" - x1="513.15747" - gradientUnits="userSpaceOnUse" - id="linearGradient13035" - xlink:href="#linearGradient4785" - inkscape:collect="always" /> - <linearGradient - y2="746.07819" - x2="703.93427" - y1="535.625" - x1="688.78198" - gradientUnits="userSpaceOnUse" - id="linearGradient13033" - xlink:href="#linearGradient7756" - inkscape:collect="always" /> - <linearGradient - y2="789.8609" - x2="538.11664" - y1="707.9931" - x1="538.11664" - gradientUnits="userSpaceOnUse" - id="linearGradient13031" - xlink:href="#linearGradient7618" - inkscape:collect="always" /> - <linearGradient - y2="731.86987" - x2="368.57141" - y1="79.610039" - x1="368.57141" - gradientUnits="userSpaceOnUse" - id="linearGradient13029" - xlink:href="#linearGradient7825" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient7825" - id="linearGradient12988" - y2="731.86987" - x2="368.57141" - y1="79.610039" - x1="368.57141" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient7756" - id="linearGradient12986" - y2="746.07819" - x2="703.93427" - y1="535.625" - x1="688.78198" /> - <filter - id="filter12982" - x="-0.062413666" - width="1.1248273" - y="-0.18633226" - height="1.3726645"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="1.0592616" - id="feGaussianBlur12984" /> - </filter> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient7618" - id="linearGradient12980" - y2="789.8609" - x2="538.11664" - y1="707.9931" - x1="538.11664" /> - <filter - id="filter12976" - x="-0.10906329" - width="1.2181267" - y="-0.16048753" - height="1.3209751"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="3.7122331" - id="feGaussianBlur12978" /> - </filter> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient4785" - id="linearGradient12974" - y2="887.60516" - x2="513.15747" - y1="56.695404" - x1="513.15747" /> - <radialGradient - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3490" - id="radialGradient12972" - fy="253.70972" - fx="309.25818" - r="26.521585" - cy="253.70972" - cx="309.25818" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="linearGradient12970" - y2="294.39261" - x2="321.8956" - y1="266.90137" - x1="319.82306" /> - <linearGradient - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3444" - id="linearGradient12968" - y2="284.1427" - x2="323.14963" - y1="270.74054" - x1="322.00742" /> - <radialGradient - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3412" - id="radialGradient12966" - fy="383.21033" - fx="314.9783" - r="25.671762" - cy="383.21033" - cx="314.9783" /> - <radialGradient - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3382" - id="radialGradient12964" - fy="383.21033" - fx="314.9783" - r="25.671762" - cy="383.21033" - cx="314.9783" /> - <radialGradient - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient2454" - id="radialGradient12962" - fy="307.83929" - fx="314.18878" - r="34.697639" - cy="307.83929" - cx="314.18878" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3278" - id="linearGradient12960" - y2="378.64795" - x2="325.83279" - y1="327.61322" - x1="324.98563" /> - <radialGradient - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12958" - fy="309.07062" - fx="310.80884" - r="7.2399807" - cy="309.07062" - cx="310.80884" /> - <radialGradient - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12956" - fy="309.07062" - fx="310.80884" - r="7.2399807" - cy="309.07062" - cx="310.80884" /> - <radialGradient - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3346" - id="radialGradient12954" - fy="330.18991" - fx="300.21915" - r="16.087479" - cy="330.18991" - cx="300.21915" /> - <radialGradient - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3346" - id="radialGradient12952" - fy="329.11215" - fx="306.686" - r="16.087479" - cy="329.11215" - cx="306.686" /> - <radialGradient - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12950" - fy="281.56763" - fx="268.75073" - r="47.562981" - cy="281.56763" - cx="268.75073" /> - <radialGradient - gradientTransform="matrix(0.2703757,-0.2226346,0.262486,0.4036686,420.78034,51.424117)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient4483" - id="radialGradient12948" - fy="515.88568" - fx="301.08719" - r="65.12442" - cy="515.88568" - cx="301.08719" /> - <radialGradient - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3490" - id="radialGradient12946" - fy="253.70972" - fx="309.25818" - r="26.521585" - cy="253.70972" - cx="309.25818" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="linearGradient12944" - y2="294.39261" - x2="321.8956" - y1="266.90137" - x1="319.82306" /> - <linearGradient - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3444" - id="linearGradient12942" - y2="284.1427" - x2="323.14963" - y1="270.74054" - x1="322.00742" /> - <radialGradient - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3412" - id="radialGradient12940" - fy="383.21033" - fx="314.9783" - r="25.671762" - cy="383.21033" - cx="314.9783" /> - <radialGradient - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3382" - id="radialGradient12938" - fy="383.21033" - fx="314.9783" - r="25.671762" - cy="383.21033" - cx="314.9783" /> - <radialGradient - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient2454" - id="radialGradient12936" - fy="307.83929" - fx="314.18878" - r="34.697639" - cy="307.83929" - cx="314.18878" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3278" - id="linearGradient12934" - y2="378.64795" - x2="325.83279" - y1="327.61322" - x1="324.98563" /> - <radialGradient - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12932" - fy="309.07062" - fx="310.80884" - r="7.2399807" - cy="309.07062" - cx="310.80884" /> - <radialGradient - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12930" - fy="309.07062" - fx="310.80884" - r="7.2399807" - cy="309.07062" - cx="310.80884" /> - <radialGradient - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3346" - id="radialGradient12928" - fy="330.18991" - fx="300.21915" - r="16.087479" - cy="330.18991" - cx="300.21915" /> - <radialGradient - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3346" - id="radialGradient12926" - fy="329.11215" - fx="306.686" - r="16.087479" - cy="329.11215" - cx="306.686" /> - <radialGradient - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12924" - fy="281.56763" - fx="268.75073" - r="47.562981" - cy="281.56763" - cx="268.75073" /> - <radialGradient - gradientTransform="matrix(0.3066153,4.3845595e-2,-0.1162824,0.5601066,593.41239,-100.65496)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient4483" - id="radialGradient12922" - fy="482.57309" - fx="559.03674" - r="65.12442" - cy="482.57309" - cx="559.03674" /> - <radialGradient - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3490" - id="radialGradient12920" - fy="253.70972" - fx="309.25818" - r="26.521585" - cy="253.70972" - cx="309.25818" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="linearGradient12918" - y2="294.39261" - x2="321.8956" - y1="266.90137" - x1="319.82306" /> - <linearGradient - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3444" - id="linearGradient12916" - y2="284.1427" - x2="323.14963" - y1="270.74054" - x1="322.00742" /> - <radialGradient - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3412" - id="radialGradient12914" - fy="383.21033" - fx="314.9783" - r="25.671762" - cy="383.21033" - cx="314.9783" /> - <radialGradient - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3382" - id="radialGradient12912" - fy="383.21033" - fx="314.9783" - r="25.671762" - cy="383.21033" - cx="314.9783" /> - <radialGradient - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient2454" - id="radialGradient12910" - fy="307.83929" - fx="314.18878" - r="34.697639" - cy="307.83929" - cx="314.18878" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3278" - id="linearGradient12908" - y2="378.64795" - x2="325.83279" - y1="327.61322" - x1="324.98563" /> - <radialGradient - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12906" - fy="309.07062" - fx="310.80884" - r="7.2399807" - cy="309.07062" - cx="310.80884" /> - <radialGradient - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12904" - fy="309.07062" - fx="310.80884" - r="7.2399807" - cy="309.07062" - cx="310.80884" /> - <radialGradient - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3346" - id="radialGradient12902" - fy="330.18991" - fx="300.21915" - r="16.087479" - cy="330.18991" - cx="300.21915" /> - <radialGradient - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3346" - id="radialGradient12900" - fy="329.11215" - fx="306.686" - r="16.087479" - cy="329.11215" - cx="306.686" /> - <radialGradient - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12898" - fy="281.56763" - fx="268.75073" - r="47.562981" - cy="281.56763" - cx="268.75073" /> - <linearGradient - gradientTransform="translate(292.29878,-242.96749)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3278" - id="linearGradient12896" - y2="542.93073" - x2="392.77127" - y1="474.98315" - x1="392.90366" /> - <linearGradient - id="linearGradient12890"> - <stop - offset="0" - style="stop-color:#7a7a7a;stop-opacity:1" - id="stop12892" /> - <stop - offset="1" - style="stop-color:#2a2a2a;stop-opacity:1" - id="stop12894" /> - </linearGradient> - <linearGradient - id="linearGradient12884"> - <stop - offset="0" - style="stop-color:#ffffff;stop-opacity:0.19285715" - id="stop12886" /> - <stop - offset="1" - style="stop-color:#ffdd55;stop-opacity:0" - id="stop12888" /> - </linearGradient> - <linearGradient - id="linearGradient12878"> - <stop - offset="0" - style="stop-color:#ffffff;stop-opacity:0.55000001" - id="stop12880" /> - <stop - offset="1" - style="stop-color:#ffdd55;stop-opacity:0" - id="stop12882" /> - </linearGradient> - <linearGradient - id="linearGradient12872"> - <stop - offset="0" - style="stop-color:#000000;stop-opacity:1" - id="stop12874" /> - <stop - offset="1" - style="stop-color:#ffffff;stop-opacity:1" - id="stop12876" /> - </linearGradient> - <linearGradient - id="linearGradient12866"> - <stop - offset="0" - style="stop-color:#ffcc00;stop-opacity:1" - id="stop12868" /> - <stop - offset="1" - style="stop-color:#cc7a00;stop-opacity:1" - id="stop12870" /> - </linearGradient> - <linearGradient - id="linearGradient12860"> - <stop - offset="0" - style="stop-color:#666666;stop-opacity:1" - id="stop12862" /> - <stop - offset="1" - style="stop-color:#000000;stop-opacity:1" - id="stop12864" /> - </linearGradient> - <linearGradient - id="linearGradient12854"> - <stop - offset="0" - style="stop-color:#ffffff;stop-opacity:1" - id="stop12856" /> - <stop - offset="1" - style="stop-color:#b3b3b3;stop-opacity:1" - id="stop12858" /> - </linearGradient> - <linearGradient - id="linearGradient12848"> - <stop - offset="0" - style="stop-color:#ffcc00;stop-opacity:1" - id="stop12850" /> - <stop - offset="1" - style="stop-color:#ffcc00;stop-opacity:0" - id="stop12852" /> - </linearGradient> - <linearGradient - id="linearGradient12842"> - <stop - offset="0" - style="stop-color:#7f7f7f;stop-opacity:1" - id="stop12844" /> - <stop - offset="1" - style="stop-color:#ffffff;stop-opacity:1" - id="stop12846" /> - </linearGradient> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient2384" - id="linearGradient12840" - y2="499.3468" - x2="380.58182" - y1="575.62482" - x1="380.58182" /> - <radialGradient - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12838" - fy="281.56763" - fx="268.75073" - r="47.562981" - cy="281.56763" - cx="268.75073" /> - <radialGradient - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3346" - id="radialGradient12836" - fy="329.11215" - fx="306.686" - r="16.087479" - cy="329.11215" - cx="306.686" /> - <radialGradient - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3346" - id="radialGradient12834" - fy="330.18991" - fx="300.21915" - r="16.087479" - cy="330.18991" - cx="300.21915" /> - <radialGradient - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12832" - fy="309.07062" - fx="310.80884" - r="7.2399807" - cy="309.07062" - cx="310.80884" /> - <radialGradient - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12830" - fy="309.07062" - fx="310.80884" - r="7.2399807" - cy="309.07062" - cx="310.80884" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3278" - id="linearGradient12828" - y2="378.64795" - x2="325.83279" - y1="327.61322" - x1="324.98563" /> - <radialGradient - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient2454" - id="radialGradient12826" - fy="307.83929" - fx="314.18878" - r="34.697639" - cy="307.83929" - cx="314.18878" /> - <radialGradient - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3382" - id="radialGradient12824" - fy="383.21033" - fx="314.9783" - r="25.671762" - cy="383.21033" - cx="314.9783" /> - <radialGradient - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3412" - id="radialGradient12822" - fy="383.21033" - fx="314.9783" - r="25.671762" - cy="383.21033" - cx="314.9783" /> - <linearGradient - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3444" - id="linearGradient12820" - y2="284.1427" - x2="323.14963" - y1="270.74054" - x1="322.00742" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="linearGradient12818" - y2="294.39261" - x2="321.8956" - y1="266.90137" - x1="319.82306" /> - <radialGradient - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3490" - id="radialGradient12816" - fy="253.70972" - fx="309.25818" - r="26.521585" - cy="253.70972" - cx="309.25818" /> - <radialGradient - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12814" - fy="281.56763" - fx="268.75073" - r="47.562981" - cy="281.56763" - cx="268.75073" /> - <radialGradient - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3346" - id="radialGradient12812" - fy="329.11215" - fx="306.686" - r="16.087479" - cy="329.11215" - cx="306.686" /> - <radialGradient - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3346" - id="radialGradient12810" - fy="330.18991" - fx="300.21915" - r="16.087479" - cy="330.18991" - cx="300.21915" /> - <radialGradient - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12808" - fy="309.07062" - fx="310.80884" - r="7.2399807" - cy="309.07062" - cx="310.80884" /> - <radialGradient - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12806" - fy="309.07062" - fx="310.80884" - r="7.2399807" - cy="309.07062" - cx="310.80884" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3278" - id="linearGradient12804" - y2="378.64795" - x2="325.83279" - y1="327.61322" - x1="324.98563" /> - <radialGradient - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient2454" - id="radialGradient12802" - fy="307.83929" - fx="314.18878" - r="34.697639" - cy="307.83929" - cx="314.18878" /> - <radialGradient - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3382" - id="radialGradient12800" - fy="383.21033" - fx="314.9783" - r="25.671762" - cy="383.21033" - cx="314.9783" /> - <radialGradient - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3412" - id="radialGradient12798" - fy="383.21033" - fx="314.9783" - r="25.671762" - cy="383.21033" - cx="314.9783" /> - <linearGradient - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3444" - id="linearGradient12796" - y2="284.1427" - x2="323.14963" - y1="270.74054" - x1="322.00742" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="linearGradient12794" - y2="294.39261" - x2="321.8956" - y1="266.90137" - x1="319.82306" /> - <radialGradient - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3490" - id="radialGradient12792" - fy="253.70972" - fx="309.25818" - r="26.521585" - cy="253.70972" - cx="309.25818" /> - <radialGradient - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12790" - fy="281.56763" - fx="268.75073" - r="47.562981" - cy="281.56763" - cx="268.75073" /> - <radialGradient - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3346" - id="radialGradient12788" - fy="329.11215" - fx="306.686" - r="16.087479" - cy="329.11215" - cx="306.686" /> - <radialGradient - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3346" - id="radialGradient12786" - fy="330.18991" - fx="300.21915" - r="16.087479" - cy="330.18991" - cx="300.21915" /> - <radialGradient - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12784" - fy="309.07062" - fx="310.80884" - r="7.2399807" - cy="309.07062" - cx="310.80884" /> - <radialGradient - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="radialGradient12782" - fy="309.07062" - fx="310.80884" - r="7.2399807" - cy="309.07062" - cx="310.80884" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3278" - id="linearGradient12780" - y2="378.64795" - x2="325.83279" - y1="327.61322" - x1="324.98563" /> - <radialGradient - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient2454" - id="radialGradient12778" - fy="307.83929" - fx="314.18878" - r="34.697639" - cy="307.83929" - cx="314.18878" /> - <radialGradient - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3382" - id="radialGradient12776" - fy="383.21033" - fx="314.9783" - r="25.671762" - cy="383.21033" - cx="314.9783" /> - <radialGradient - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3412" - id="radialGradient12774" - fy="383.21033" - fx="314.9783" - r="25.671762" - cy="383.21033" - cx="314.9783" /> - <linearGradient - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3444" - id="linearGradient12772" - y2="284.1427" - x2="323.14963" - y1="270.74054" - x1="322.00742" /> - <linearGradient - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3260" - id="linearGradient12770" - y2="294.39261" - x2="321.8956" - y1="266.90137" - x1="319.82306" /> - <radialGradient - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - gradientUnits="userSpaceOnUse" - xlink:href="#linearGradient3490" - id="radialGradient12768" - fy="253.70972" - fx="309.25818" - r="26.521585" - cy="253.70972" - cx="309.25818" /> - <linearGradient - id="linearGradient12762"> - <stop - offset="0" - style="stop-color:#000000;stop-opacity:1" - id="stop12764" /> - <stop - offset="1" - style="stop-color:#000000;stop-opacity:0" - id="stop12766" /> - </linearGradient> - <linearGradient - id="linearGradient12756"> - <stop - offset="0" - style="stop-color:#808080;stop-opacity:1" - id="stop12758" /> - <stop - offset="1" - style="stop-color:#808080;stop-opacity:0" - id="stop12760" /> - </linearGradient> - <linearGradient - id="linearGradient12750"> - <stop - offset="0" - style="stop-color:#7a7a7a;stop-opacity:1" - id="stop12752" /> - <stop - offset="1" - style="stop-color:#2a2a2a;stop-opacity:1" - id="stop12754" /> - </linearGradient> - <linearGradient - id="linearGradient12744"> - <stop - offset="0" - style="stop-color:#ffffff;stop-opacity:0.19285715" - id="stop12746" /> - <stop - offset="1" - style="stop-color:#ffdd55;stop-opacity:0" - id="stop12748" /> - </linearGradient> - <linearGradient - id="linearGradient12738"> - <stop - offset="0" - style="stop-color:#ffffff;stop-opacity:0.55000001" - id="stop12740" /> - <stop - offset="1" - style="stop-color:#ffdd55;stop-opacity:0" - id="stop12742" /> - </linearGradient> - <linearGradient - id="linearGradient12732"> - <stop - offset="0" - style="stop-color:#ffcc00;stop-opacity:1" - id="stop12734" /> - <stop - offset="1" - style="stop-color:#ffcc00;stop-opacity:0" - id="stop12736" /> - </linearGradient> - <linearGradient - id="linearGradient12726"> - <stop - offset="0" - style="stop-color:#ffcc00;stop-opacity:1" - id="stop12728" /> - <stop - offset="1" - style="stop-color:#cc7a00;stop-opacity:1" - id="stop12730" /> - </linearGradient> - <linearGradient - id="linearGradient12720"> - <stop - offset="0" - style="stop-color:#000000;stop-opacity:1" - id="stop12722" /> - <stop - offset="1" - style="stop-color:#ffffff;stop-opacity:1" - id="stop12724" /> - </linearGradient> - <linearGradient - id="linearGradient12714"> - <stop - offset="0" - style="stop-color:#666666;stop-opacity:1" - id="stop12716" /> - <stop - offset="1" - style="stop-color:#000000;stop-opacity:1" - id="stop12718" /> - </linearGradient> - <linearGradient - id="linearGradient12708"> - <stop - offset="0" - style="stop-color:#1c1c1c;stop-opacity:1" - id="stop12710" /> - <stop - offset="1" - style="stop-color:#41372b;stop-opacity:1" - id="stop12712" /> - </linearGradient> - <linearGradient - id="linearGradient12702"> - <stop - offset="0" - style="stop-color:#a6c0e0;stop-opacity:1" - id="stop12704" /> - <stop - offset="1" - style="stop-color:#35526f;stop-opacity:1" - id="stop12706" /> - </linearGradient> - <linearGradient - id="linearGradient12696"> - <stop - offset="0" - style="stop-color:#ffffff;stop-opacity:0.39072847" - id="stop12698" /> - <stop - offset="1" - style="stop-color:#ffffff;stop-opacity:0" - id="stop12700" /> - </linearGradient> - <linearGradient - id="linearGradient12690"> - <stop - offset="0" - style="stop-color:#355a14;stop-opacity:1" - id="stop12692" /> - <stop - offset="1" - style="stop-color:#183300;stop-opacity:1" - id="stop12694" /> - </linearGradient> - <linearGradient - id="linearGradient12684"> - <stop - offset="0" - style="stop-color:#000000;stop-opacity:1" - id="stop12686" /> - <stop - offset="1" - style="stop-color:#ab8858;stop-opacity:1" - id="stop12688" /> - </linearGradient> - <linearGradient - id="linearGradient12678"> - <stop - offset="0" - style="stop-color:#7fa43c;stop-opacity:1" - id="stop12680" /> - <stop - offset="1" - style="stop-color:#303a26;stop-opacity:1" - id="stop12682" /> - </linearGradient> - <linearGradient - id="linearGradient12672"> - <stop - offset="0" - style="stop-color:#666666;stop-opacity:1" - id="stop12674" /> - <stop - offset="1" - style="stop-color:#000000;stop-opacity:1" - id="stop12676" /> - </linearGradient> - <linearGradient - id="linearGradient12666"> - <stop - offset="0" - style="stop-color:#57663b;stop-opacity:1" - id="stop12668" /> - <stop - offset="1" - style="stop-color:#303a26;stop-opacity:1" - id="stop12670" /> - </linearGradient> - <inkscape:perspective - id="perspective12664" - inkscape:persp3d-origin="512 : 256 : 1" - inkscape:vp_z="1024 : 384 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 384 : 1" - sodipodi:type="inkscape:persp3d" /> - <marker - style="overflow:visible" - id="marker12660" - refX="0.0" - refY="0.0" - orient="auto" - inkscape:stockid="Arrow1Lstart"> - <path - transform="scale(0.8) translate(12.5,0)" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " - id="path12662" /> - </marker> - <marker - style="overflow:visible;" - id="marker12656" - refX="0.0" - refY="0.0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - transform="scale(1.1) rotate(180) translate(1,0)" - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " - style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" - id="path12658" /> - </marker> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4139" - id="linearGradient14142" - gradientUnits="userSpaceOnUse" - x1="528.28619" - y1="355.22632" - x2="528.28619" - y2="404.55829" - gradientTransform="translate(0,-8)" /> - </defs> - <g - id="g2901"> - <rect - width="1024" - height="768" - x="0" - y="0" - id="rect4783" - style="fill:url(#linearGradient2895);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - id="rect5744" - d="M 0,0 L 0,23.5 L 446.75,225.0625 L 133.5625,0 L 0,0 z M 204.15625,0 L 457.78125,207.46875 L 288.0625,0 L 204.15625,0 z M 330.125,0 L 471.28125,196.4375 L 382.65625,0 L 330.125,0 z M 422.25,0 L 493.34375,188.09375 L 462.59375,0 L 422.25,0 z M 497.71875,0 L 516.4375,187.1875 L 535.15625,0 L 497.71875,0 z M 564.75,0 L 533.875,188.78125 L 605.21875,0 L 564.75,0 z M 644.84375,0 L 555.21875,198.5625 L 697.96875,0 L 644.84375,0 z M 744.5,0 L 572.8125,209.78125 L 829.125,0 L 744.5,0 z M 894.625,0 L 584,223.28125 L 1024,24.6875 L 1024,0 L 894.625,0 z M 0,81.28125 L 0,175.125 L 436.96875,246.59375 L 0,81.28125 z M 1024,81.96875 L 592.1875,245.34375 L 1024,174.71875 L 1024,81.96875 z M 0,220.46875 L 0,307.53125 L 435.1875,264 L 0,220.46875 z M 1024,222.75 L 590.0625,266.125 L 1024,309.53125 L 1024,222.75 z M 588.46875,283.5625 L 1024,448.1875 L 1024,354.8125 L 588.46875,283.5625 z M 433.0625,284.8125 L 0,355.625 L 0,448.5 L 433.0625,284.8125 z M 578.6875,304.90625 L 1024,625.21875 L 1024,505.90625 L 578.6875,304.90625 z M 441.40625,306.84375 L 0,506.03125 L 0,624.03125 L 441.40625,306.84375 z M 452.4375,320.375 L 0,680.71875 L 0,768 L 82.90625,768 L 452.4375,320.375 z M 567.46875,322.6875 L 930.625,768 L 1024,768 L 1024,686.21875 L 567.46875,322.6875 z M 470.03125,331.5625 L 156.28125,768 L 273.03125,768 L 470.03125,331.5625 z M 553.96875,333.6875 L 750,768 L 866.15625,768 L 553.96875,333.6875 z M 491.5625,341.15625 L 330.0625,768 L 421.75,768 L 491.5625,341.15625 z M 531.90625,342.0625 L 601.59375,768 L 692.90625,768 L 531.90625,342.0625 z M 508.96875,342.9375 L 466.46875,768 L 551.46875,768 L 508.96875,342.9375 z" - style="fill:#ffffff;fill-opacity:0.07843137;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" /> - </g> - <g - id="g2859" - transform="translate(0,-2.625)"> - <path - d="M 253.46875,640.34375 C 216.73952,640.47975 224.72406,662.10305 0,687 L 0,768 L 1024,768 L 1024,679.15625 C 924.26288,696.95458 741.22186,688.24844 734.28125,691.71875 C 725.70983,696.00446 504.29911,680.29017 337.15625,651.71875 C 290.14732,643.68304 268.19789,640.28921 253.46875,640.34375 z" - id="path7812" - style="fill:url(#linearGradient2887);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <rect - width="1024" - height="62.624355" - x="0" - y="708" - id="rect6150" - style="fill:url(#linearGradient2889);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 33.53125,730.5625 C 31.384951,730.70263 27.426368,732.41909 24.25,731.625 C 21.82413,731.13982 11.941508,752.98246 4.4375,770.625 L 107.84375,770.625 C 108.01953,762.99059 107.0625,754.55613 107.0625,751.84375 C 107.0625,736.44119 79.57883,747.69869 72.71875,752.84375 C 69.788927,755.04111 56.25003,737.72658 53.53125,735.6875 C 48.576212,731.97123 40.489153,732.16135 34.34375,730.625 C 34.119618,730.56896 33.837864,730.54248 33.53125,730.5625 z M 972.4375,736.5 C 963.97938,736.32887 944.29367,755.03771 938.3125,770.625 L 1024,770.625 L 1024,752.5625 C 1015.1211,748.73109 1001.2462,752.64351 992.28125,754.34375 C 979.36093,756.79415 978.12838,750.17125 976.1875,739.9375 C 975.74553,737.60712 974.39351,736.53958 972.4375,736.5 z M 330.8125,745.75 C 319.31883,745.86454 317.92556,760.9702 332.46875,768.53125 C 333.59079,769.11461 335.00212,769.83864 336.5,770.625 L 383.5,770.625 C 383.75283,770.22885 383.99218,769.84444 384.1875,769.46875 C 390.80243,756.74536 365.42929,754.57957 358.03125,752.8125 C 348.85858,750.62154 347.48331,749.25948 339.59375,747.375 C 337.95623,746.98388 336.32502,746.60988 334.6875,746.21875 C 333.28846,745.88458 332.0015,745.73815 330.8125,745.75 z M 158.84375,748.3125 C 153.12637,748.32789 145.1794,751.5062 139.09375,749.28125 C 135.35924,747.9159 125.1018,757.33602 122.84375,758.96875 C 119.01753,761.73538 117.08957,766.48409 115.46875,770.625 L 171.65625,770.625 C 174.81467,768.65666 177.52545,766.88994 178.5625,765.75 C 182.65847,761.24762 164.0232,749.11244 161.15625,748.5 C 160.44244,748.34752 159.66052,748.3103 158.84375,748.3125 z M 651.78125,750.3125 C 648.07403,750.26978 638.16274,751.59245 638,751.625 C 637.60123,751.62502 631.0566,768.4776 630.03125,770.625 L 670.375,770.625 C 673.7856,766.60959 669.8261,767.40184 659.21875,764.75 C 651.21234,762.74838 653.15625,758.75253 653.15625,750.59375 C 653.15625,750.40936 652.63676,750.32236 651.78125,750.3125 z M 920.9375,750.78125 C 919.75087,750.85285 918.25324,751.28252 916.375,752.15625 C 905.96675,756.99801 899.25942,761.56224 893.9375,770.625 L 924.65625,770.625 C 924.58904,769.13244 924.5198,767.71789 924.53125,767.3125 C 924.725,760.45401 927.34531,750.39463 920.9375,750.78125 z M 417.90625,750.8125 C 416.76441,750.8892 415.13135,751.55869 412.15625,753.34375 C 410.15021,756.1751 398.23696,760.05253 392.9375,764.46875 C 391.20908,765.90909 391.04464,768.19759 391.5625,770.625 L 448,770.625 C 453.29231,765.85111 459.23586,759.76135 464.65625,758.40625 C 466.07382,758.05185 449.25311,755.47624 446.5,754.375 C 441.28078,752.28733 433.232,753.34375 427.28125,753.34375 C 420.51886,753.34375 420.41831,750.64376 417.90625,750.8125 z" - id="path7762" - style="fill:#878787;fill-opacity:0.80476188;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 22.5,535.625 C 21.6669,537.87898 20.97295,540.86098 20.34375,544.84375 C 19.69805,548.82653 18.9927,554.95148 18.75,559.21875 C 18.5018,563.3985 18.8548,565.95473 18.9375,569.9375 C 19.0258,573.8984 19.2668,578.6866 19.25,582.625 C 19.184001,586.47647 18.9356,589.7581 18.6875,593.0625 C 18.6311,593.7427 18.5743,594.35564 18.5,594.9375 C 18.3645,594.04974 18.2032,593.20131 18.0625,592.40625 C 16.892799,585.92878 15.6883,582.62302 14.375,579.625 C 13.0728,576.62699 11.70495,574.91579 10.28125,574.5 C 10.75025,578.57093 11.20925,582.32988 11.65625,585.875 C 12.10865,589.4432 12.8381,592.95584 12.9375,595.625 C 13.0092,598.16467 12.20055,599.31548 12.15625,601.21875 C 12.10665,603.10073 12.33615,604.72415 12.65625,607 C 12.95965,609.25461 13.85465,612.31789 14.03125,614.59375 C 14.19685,616.7383 13.94865,616.99252 13.65625,620.1875 C 13.49135,621.88044 13.2109,624.20685 12.9375,626.75 C 12.6395,627.88512 12.3818,629.03698 12.125,630.15625 C 11.1693,634.30819 10.49885,637.78162 9.71875,643.09375 C 9.6450499,639.53265 9.44805,635.51134 9.09375,630.875 C 8.5475503,623.80725 7.59795,614.48062 6.59375,606.40625 C 5.5728501,598.28808 4.4605,590.52115 3.125,582.6875 C 2.954,584.00048 2.86025,588.32147 2.84375,595.9375 C 2.8326499,603.55231 2.8307,618.16999 3.0625,628.0625 C 3.0842,628.99992 3.0997,629.84252 3.125,630.75 C 2.9102,630.52999 2.69455,630.40625 2.46875,630.40625 C 1.5187707,630.40624 0.6590894,632.46412 0,635.8125 L 0,699.0625 C 0.048239524,701.35273 0.098863465,703.65585 0.125,706 L 0,706 L 0,723.375 L 0,733.25 C 1.6436059,735.31905 3.8682696,737.04866 7.0625,737.6875 C 13.389822,738.95296 19.716131,738.71875 26.25,738.71875 C 33.376647,738.71876 37.727035,736.83456 42.4375,738.71875 C 48.160861,741.0081 50.241822,742.75 57.59375,742.75 C 63.747088,742.74997 71.11755,742.90812 75.75,741.75 C 76.631004,741.52976 86.753512,741.75 91.9375,741.75 C 100.58142,741.75001 103.1829,741.75 111.125,741.75 C 118.61861,741.75001 122.0342,741.75 130.3125,741.75 C 138.44791,741.75001 143.94375,742.23625 151.53125,740.71875 C 154.48688,740.12762 161.91742,738.71875 166.6875,738.71875 C 172.08004,738.71876 177.81483,739.46152 182.84375,740.71875 C 195.20025,743.80787 209.77063,745.78125 222.21875,745.78125 C 233.86088,745.78128 240.00717,748.41228 250.53125,745.78125 C 262.85337,742.70075 272.47612,738.5294 283.84375,735.6875 C 289.71449,734.21982 298.48623,734.55124 303.03125,735.6875 C 309.09309,737.20296 315.97167,736.11792 322.25,737.6875 C 328.08321,739.14579 336.36302,737.6875 342.4375,737.6875 C 350.04837,737.68749 358.40543,737.6875 365.6875,737.6875 C 372.4714,737.68749 376.89878,737.42374 383.84375,735.6875 C 391.89738,733.6741 392.21733,734.65625 400.03125,734.65625 C 406.62116,734.65624 412.50983,734.65625 419.21875,734.65625 C 425.35693,734.65624 433.14979,734.37338 438.40625,735.6875 C 442.92043,736.81605 448.16707,736.34183 451.53125,737.6875 C 456.37803,739.6262 466.27616,739.71875 468.71875,739.71875 C 474.89479,739.71872 481.34163,739.83167 486.90625,738.71875 C 492.55533,737.58894 499.04411,737.6875 502.03125,737.6875 C 508.72902,737.68749 514.21132,738.21689 520.21875,739.71875 C 525.85459,741.12768 531.22444,738.71875 537.40625,738.71875 C 543.14037,738.71876 548.67633,738.71875 555.59375,738.71875 C 560.51979,738.71876 567.97126,740.71875 574.78125,740.71875 C 579.99256,740.71874 587.03955,738.91199 591.9375,737.6875 C 599.27203,735.85386 604.82376,737.39344 610.125,738.71875 C 615.43724,740.04682 621.76884,742.36408 627.3125,743.75 C 635.20236,745.72246 640.60647,742.36338 642.46875,749.8125 C 645.27218,761.02626 650.92233,756.51517 655.59375,751.84375 C 660.3616,747.07588 665.12404,745.00038 670.75,742.75 C 674.35082,741.30965 679.38104,747.8125 684.875,747.8125 C 691.11616,747.81251 694.15666,746.43758 701.03125,747.8125 C 707.08924,749.02411 714.72433,744.13142 720.25,742.75 C 726.3027,741.23679 731.80886,741.75 738.40625,741.75 C 746.67377,741.75001 751.93916,738.53948 760.65625,740.71875 C 766.85899,742.26943 775.46713,740.71875 781.84375,740.71875 C 788.59466,740.71874 794.72159,739.71875 801.0625,739.71875 C 806.47381,739.71872 813.92077,739.39426 819.21875,740.71875 C 822.77635,741.60814 834.09042,740.38191 837.40625,739.71875 C 843.88698,738.42258 850.41387,738.23247 856.59375,736.6875 C 861.95901,735.34621 869.15084,738.31115 874.78125,739.71875 C 878.11444,740.55202 887.5606,738.71875 891.96875,738.71875 C 898.40821,738.71876 905.35045,738.2673 911.15625,739.71875 C 917.79503,741.37841 924.3962,739.71875 930.34375,739.71875 C 935.91597,739.71872 941.5577,739.71875 948.53125,739.71875 C 954.78112,739.71872 962.79106,739.71875 967.71875,739.71875 C 973.98437,739.71872 980.44688,741.75 986.90625,741.75 C 993.61031,741.75001 998.7446,742.6416 1004.0938,744.78125 C 1008.5448,746.56174 1018.7827,745.39809 1021.25,744.78125 C 1022.2407,744.53357 1023.1374,744.32085 1024,744.09375 L 1024,590.6875 C 1023.0205,593.21549 1022.0842,596.31569 1021.1875,601.28125 C 1020.3388,606.07725 1019.6075,612.76174 1018.8438,619.65625 C 1018.6439,616.68557 1018.4211,613.83578 1018.1562,610.84375 C 1017.5661,604.13899 1016.9529,597.86527 1015.9375,591.90625 C 1014.8945,585.85497 1013.4127,579.47224 1012,575.4375 C 1010.5653,571.52778 1008.9292,569.77142 1007.5,568.34375 C 1006.2592,567.01307 1005.0972,566.35872 1004,566.40625 C 1003.8433,566.41305 1003.6852,566.43383 1003.5312,566.46875 C 1004.8172,570.31814 1006.0966,575.80102 1007.4375,583.21875 C 1008.7839,590.57615 1010.549,599.79348 1011.5312,610.53125 C 1012.4749,621.27074 1012.8288,634.02676 1013.1875,647.125 C 1013.2417,649.18898 1013.2679,651.25935 1013.3125,653.34375 C 1013.0684,649.77914 1012.8488,645.91536 1012.5,643.21875 C 1011.9852,639.24668 1011.2736,637.61473 1010.6562,634.46875 C 1010.044,631.21216 1009.3987,627.97673 1008.9062,624.15625 C 1008.4539,620.24392 1008.1633,615.47755 1007.8125,611.53125 C 1007.4536,607.5638 1007.5219,604.97031 1006.8125,600.84375 C 1006.0987,596.62958 1004.739,590.63678 1003.6562,586.75 C 1002.5902,582.86137 1001.5462,579.96038 1000.4688,577.8125 C 1000.8676,580.69655 1001.3531,584.33252 1001.9375,588.78125 C 1002.533,593.22879 1003.3232,598.41734 1003.9688,604.3125 C 1004.6209,610.11882 1005.5448,618.24547 1005.75,623.375 C 1005.9289,628.41939 1005.243,630.4999 1005.1562,634.40625 C 1005.1038,638.22201 1005.1904,641.38234 1005.4062,646.3125 C 1005.6139,651.26501 1005.9665,658.20623 1006.4062,663.75 C 1006.8624,669.13845 1007.0599,673.10192 1008.0938,678.84375 C 1009.1549,684.5825 1011.1427,691.93671 1012.6562,698 C 1013.3571,700.79996 1014.0357,703.43009 1014.7188,706 L 990.875,706 C 991.25185,700.80373 991.79719,696.20905 992.3125,690.9375 C 992.88077,685.16027 993.7203,678.76523 994.0625,673.25 C 994.39909,667.71413 994.5553,663.46139 994.3125,658.1875 C 994.08067,652.82605 993.24845,646.84569 992.71875,641.8125 C 992.21654,636.75741 991.59035,631.48499 991.28125,628.3125 C 990.98888,625.1175 990.74075,624.83207 990.90625,622.6875 C 991.08288,620.41162 991.97785,617.37959 992.28125,615.125 C 992.60138,612.84911 992.83085,611.19447 992.78125,609.3125 C 992.73703,607.40926 991.9282,606.25844 992,603.71875 C 992.0992,601.04959 992.82875,597.56821 993.28125,594 C 993.72828,590.45493 994.18715,586.69592 994.65625,582.625 C 993.23256,583.04075 991.89605,584.72072 990.59375,587.71875 C 989.28054,590.71675 988.0448,594.02252 986.875,600.5 C 985.73272,606.95498 984.78395,616.70076 983.71875,626 C 982.65933,635.23542 981.13275,646.80039 980.53125,655.53125 C 979.94085,664.13143 980.022,668.36954 980.1875,677.625 C 980.35327,685.41013 980.8848,697.4684 981.34375,706 L 977.65625,706 C 977.96846,702.03008 978.13654,698.12115 978.15625,694.1875 C 978.19486,686.46326 976.9451,677.47339 976.625,671.9375 C 976.34931,666.40038 976.3365,665.64227 976.375,661.375 C 976.42473,657.02019 976.91535,650.42344 976.84375,646.375 C 976.77182,642.37037 976.2025,640.63248 975.9375,637.4375 C 975.68933,634.13308 975.4411,630.85148 975.375,627 C 975.35843,623.0616 975.5993,618.27339 975.6875,614.3125 C 975.7702,610.32973 976.1231,607.77348 975.875,603.59375 C 975.63208,599.32646 974.92705,593.20153 974.28125,589.21875 C 973.65213,585.23599 972.9581,582.25399 972.125,580 C 972.2023,582.91051 972.2867,586.54516 972.375,591.03125 C 972.47428,595.51735 972.66735,600.78834 972.65625,606.71875 C 972.66164,612.5616 972.70785,620.75429 972.34375,625.875 C 971.96307,630.90817 971.0186,632.87726 970.5,636.75 C 970.02511,640.53645 969.7688,643.70123 969.4375,648.625 C 969.09543,653.57007 968.6768,660.50412 968.5,666.0625 C 968.35652,671.46835 968.1084,675.42902 968.5,681.25 C 968.91942,687.071 970.07315,694.61889 970.90625,700.8125 C 971.1506,702.62198 971.40927,704.28116 971.65625,706 L 964.71875,706 C 964.72878,705.48041 964.74141,704.92168 964.75,704.40625 C 964.8492,697.71051 964.87145,691.57711 964.65625,686.0625 C 964.41345,680.50348 963.9599,676.28616 963.375,671.625 C 962.78462,666.8976 962.2029,662.48285 961.1875,658.28125 C 960.14461,654.0146 958.69385,649.50109 957.28125,646.65625 C 955.84657,643.89953 954.14795,642.66289 952.71875,641.65625 C 951.47783,640.71799 950.3472,640.27899 949.25,640.3125 C 949.09333,640.31728 948.93505,640.31913 948.78125,640.34375 C 948.94428,640.6878 949.0868,641.05645 949.25,641.4375 C 949.25738,641.44769 949.27385,641.45835 949.28125,641.46875 C 950.40045,644.08977 951.5223,647.61117 952.6875,652.15625 C 954.03392,657.34382 955.79895,663.83523 956.78125,671.40625 C 957.72484,678.9785 958.0788,687.95211 958.4375,697.1875 C 958.54525,700.08246 958.61994,703.03805 958.6875,706 L 949.03125,706 C 949.02075,697.71887 949.00206,686.84149 948.71875,678.8125 C 948.39494,668.95736 947.70985,660.03312 947.09375,653.1875 C 946.50194,646.29809 945.94625,642.57052 945.09375,637.75 C 944.22926,632.84122 942.86325,627.44795 941.96875,624.3125 C 941.10066,621.20092 940.4564,619.42711 939.9375,619.09375 C 939.91758,618.983 939.8918,618.93628 939.875,618.9375 C 939.7576,618.94605 939.7142,621.71996 939.75,627.53125 C 939.79629,634.17299 939.84885,649.98621 940.15625,658.4375 C 940.48026,666.78008 940.9465,671.48585 941.625,677.4375 C 942.34002,683.32407 943.5855,687.68084 944.3125,693.65625 C 944.78108,697.36468 945.15187,701.8238 945.46875,706 L 934.03125,706 C 934.25862,704.1973 934.49094,702.39579 934.71875,700.59375 C 934.92063,698.76455 935.0653,696.68269 935.125,694.40625 C 935.15609,695.69094 935.1653,696.81122 935.125,697.5625 C 935.25189,696.97104 935.3676,696.39399 935.5,695.78125 C 935.57731,691.14138 935.4103,685.44141 934.875,678.4375 C 934.32871,671.36977 933.34805,662.01187 932.34375,653.9375 C 931.32293,645.81938 930.2104,638.05239 928.875,630.21875 C 928.70388,631.53171 928.61025,635.88397 928.59375,643.5 C 928.58263,651.11481 928.5807,665.73249 928.8125,675.625 C 929.03869,685.42815 929.47205,693.45918 929.96875,702.125 C 930.04176,703.45168 930.14119,704.69844 930.21875,706 L 923.65625,706 C 923.97628,702.90169 924.3309,700.48178 924.53125,697.375 C 924.79655,693.17559 925.16125,689.43374 924.90625,684.53125 C 924.60826,679.57128 923.91035,674.09016 922.78125,667.875 C 922.10475,669.55965 921.33335,670.85403 920.46875,672 C 919.59296,673.12509 918.60425,674.23396 917.59375,674.46875 C 916.55586,674.59638 914.9574,672.59844 914.375,673.0625 C 913.78189,673.57445 913.9789,675.59863 914.0625,677.40625 C 914.1138,679.13113 914.75825,681.78265 914.71875,683.53125 C 914.63064,685.22444 914.12865,686.5673 913.71875,687.6875 C 913.31954,688.80561 912.87265,689.57617 912.34375,690.09375 C 912.45373,690.63016 912.5728,691.19456 912.6875,691.75 C 912.51079,692.3387 912.3387,692.91814 912.25,693.53125 C 911.79529,696.64912 911.80965,699.71848 912.28125,703.03125 C 912.50197,704.01919 912.71695,705.01183 912.9375,706 L 908.65625,706 C 908.42442,704.09234 908.19602,702.22281 907.9375,700.4375 C 906.79897,692.4937 905.48805,686.16259 903.90625,681.0625 C 902.81317,688.13457 901.98345,695.36007 901.40625,703.28125 C 901.34192,704.18043 901.30731,705.09636 901.25,706 L 713.40625,706 C 713.48067,701.07834 713.57455,696.27633 713.75,691.5625 C 714.10873,682.32712 714.494,673.35352 715.4375,665.78125 C 716.41978,658.2102 718.1536,651.71883 719.5,646.53125 C 720.84091,641.30112 722.12065,637.4329 723.40625,634.71875 C 722.17575,634.52179 720.8557,634.95896 719.4375,636.03125 C 718.00827,637.03792 716.3722,638.27455 714.9375,641.03125 C 713.95521,643.00941 712.90375,645.81015 712.03125,648.75 C 711.57757,645.0426 711.11195,641.34766 710.84375,639.03125 C 710.55132,636.34248 710.30325,636.1173 710.46875,634.3125 C 710.64542,632.39721 711.54035,629.83489 711.84375,627.9375 C 712.16382,626.02222 712.39345,624.64631 712.34375,623.0625 C 712.29963,621.46078 711.4908,620.48108 711.5625,618.34375 C 711.66182,616.09751 712.39125,613.15914 712.84375,610.15625 C 713.29077,607.17277 713.74975,603.98847 714.21875,600.5625 C 712.79512,600.91244 711.4273,602.38321 710.125,604.90625 C 708.81168,607.42931 707.6072,610.20501 706.4375,615.65625 C 705.55611,619.84752 704.7949,625.73884 704,631.78125 C 703.72407,628.11749 703.4304,624.39914 703.1875,621.09375 C 702.50538,611.79454 701.88785,602.04874 701.15625,595.59375 C 700.40722,589.11627 699.62245,585.81053 698.78125,582.8125 C 697.94722,579.81447 697.0992,578.10327 696.1875,577.6875 C 696.4879,581.7584 696.7762,585.51741 697.0625,589.0625 C 697.35227,592.63074 697.8115,596.14336 697.875,598.8125 C 697.92088,601.35221 697.4033,602.503 697.375,604.40625 C 697.34321,606.28819 697.4826,607.91161 697.6875,610.1875 C 697.88187,612.44209 698.4495,615.50537 698.5625,617.78125 C 698.66851,619.92583 698.53105,620.18003 698.34375,623.375 C 698.17433,626.09035 697.8498,630.62456 697.5625,634.96875 C 697.4626,634.19202 697.36435,633.3944 697.28125,632.5625 C 696.98926,629.12826 696.90775,624.93215 696.71875,621.46875 C 696.52255,617.98681 696.69555,615.71742 696.15625,612.09375 C 695.61603,608.39322 694.4839,603.13441 693.5625,599.71875 C 692.65772,596.30159 691.7371,593.73421 690.75,591.84375 C 691.03048,594.37574 691.37965,597.56326 691.78125,601.46875 C 692.19374,605.37327 692.75245,609.91925 693.15625,615.09375 C 693.57026,620.19037 694.1919,627.34346 694.1875,631.84375 C 694.17061,634.59989 693.854,636.34648 693.5625,638.09375 C 693.53082,638.03643 693.50045,637.96134 693.46875,637.90625 C 692.90957,633.34771 692.4159,630.12395 691.75,626.21875 C 690.85883,620.97753 689.58985,615.20979 688.78125,611.875 C 687.99236,608.56481 687.4449,606.71345 687.0625,606.375 C 686.89961,605.42926 686.99005,608.27206 687.40625,615.40625 C 687.63736,619.33227 688.04065,626.22089 688.46875,633.15625 C 688.23092,634.39091 687.9416,635.47515 687.625,636.4375 C 687.16483,637.78582 686.6117,639.12259 686,639.4375 C 685.87878,639.47387 685.74315,639.38554 685.59375,639.28125 C 684.57457,633.67601 683.505,628.20186 682.3125,622.6875 C 682.19943,624.00676 682.33685,628.32816 682.65625,635.9375 C 682.89436,641.51484 683.29513,650.83255 683.75,659.3125 C 683.31725,660.53438 682.82592,661.58916 682.25,662.53125 C 681.99844,662.92886 681.71751,663.32389 681.4375,663.6875 C 681.24181,659.66922 680.96994,656.11654 680.375,652 C 679.62215,646.68663 678.17362,640.86392 677.15625,635.90625 C 676.16423,630.92411 675.0541,625.68981 674.4375,622.5625 C 673.83533,619.4112 673.5754,619.18175 673.53125,617.03125 C 673.48534,614.749 674.07377,611.61718 674.15625,609.34375 C 674.25319,607.04755 674.3264,605.39944 674.09375,603.53125 C 673.86441,601.64131 672.92599,600.5971 672.75,598.0625 C 672.58894,595.39634 672.99101,591.81406 673.09375,588.21875 C 673.19336,584.64697 673.27346,580.84725 673.34375,576.75 C 671.96744,577.30242 670.78538,579.13938 669.78125,582.25 C 668.76616,585.36169 667.87704,588.78315 667.34375,595.34375 C 666.91435,600.86617 666.85389,608.77352 666.75,616.71875 C 666.3499,612.80067 666.14163,607.98191 665.84375,604.03125 C 665.53799,600.05936 665.59149,597.5107 664.9375,593.375 C 664.28017,589.15166 662.99937,583.11971 661.96875,579.21875 C 660.95485,575.31618 659.95491,572.41214 658.90625,570.25 C 659.26665,573.13912 659.72521,576.76257 660.25,581.21875 C 660.78573,585.67383 661.49598,590.87796 662.0625,596.78125 C 662.63691,602.59579 663.45741,610.74317 663.59375,615.875 C 663.61,616.60994 663.57761,617.28339 663.5625,617.90625 C 662.73642,613.8294 661.87259,609.62862 661,605.75 C 659.19342,597.7699 657.34198,590.1351 655.25,582.46875 C 655.20767,583.79218 655.55603,588.1373 656.28125,595.71875 C 656.82001,601.30771 657.71035,610.67706 658.625,619.15625 C 657.65734,616.75202 656.9241,615.3431 656.4375,615.09375 C 656.19287,614.2276 656.40623,616.89409 657.09375,623.5 C 657.78666,630.10566 659.40233,645.83754 660.53125,654.21875 C 661.6662,662.49014 662.55759,667.11146 663.8125,672.96875 C 664.81707,677.49441 666.05076,681.07018 667.15625,685.21875 C 664.86901,680.7009 662.67645,676.917 660.5625,673.78125 C 661.55445,680.86823 662.86321,688.02991 664.59375,695.78125 C 665.35324,699.1616 666.17862,702.55153 667.0625,706 L 286.65625,706 C 287.04492,699.92213 287.32627,694.29101 287.5,689.09375 C 287.83319,679.39835 287.8009,671.6165 287.375,665.3125 C 286.216,670.51139 285.13905,675.83462 284.09375,681.34375 C 284.17255,677.70202 284.14185,673.57641 283.96875,668.78125 C 283.70673,661.69726 283.1166,652.2957 282.4375,644.1875 C 281.7436,636.03493 280.9571,628.22473 279.9375,620.34375 C 279.71381,621.64882 279.4475,625.98453 279.125,633.59375 C 278.99251,636.77433 278.8071,641.54183 278.625,646.3125 C 278.59208,645.94096 278.56365,645.51652 278.53125,645.15625 C 277.93946,638.26679 277.38375,634.53926 276.53125,629.71875 C 275.66665,624.80999 274.3321,619.38545 273.4375,616.25 C 272.5694,613.13841 271.92515,611.36463 271.40625,611.03125 C 271.38635,610.9205 271.36045,610.87378 271.34375,610.875 C 271.22634,610.88358 271.18295,613.65748 271.21875,619.46875 C 271.25206,624.25776 271.27045,633.80664 271.40625,641.9375 C 270.91784,639.70397 270.408,637.6657 269.8125,635.40625 C 268.5457,630.58557 266.7753,625.30091 265.625,622.25 C 264.50299,619.22068 263.70085,617.5394 263.15625,617.25 C 262.92454,616.38028 263.06725,619.04084 263.65625,625.65625 C 264.11585,630.77101 265.04755,641.33027 265.90625,649.75 C 265.75825,649.56181 265.61285,649.35863 265.46875,649.1875 C 263.89486,647.27424 262.2761,645.93891 260.5,645.0625 C 260.9402,646.62612 261.47225,648.57667 262.09375,651 C 262.73565,653.41853 263.6657,656.24122 264.25,659.5 C 264.85609,662.70366 265.74705,667.18905 265.59375,670.15625 C 265.40045,673.08262 263.84855,674.55697 263.28125,676.90625 C 262.78614,679.18925 262.6125,681.03004 262.5,683.875 C 262.36941,686.73633 262.3235,690.71742 262.5625,693.84375 C 262.8476,696.872 262.8043,699.16293 264.125,702.1875 C 264.67031,703.38468 265.4505,704.68218 266.34375,706 L 28,706 C 28.732207,703.82502 29.463657,701.6894 30.125,699.78125 C 31.7692,694.94442 32.98435,692.25467 34.28125,688.25 C 35.572449,684.24531 36.8525,680.68935 37.8125,675.875 C 38.745,670.9944 39.40765,665.52056 39.84375,659.21875 C 38.773251,660.68493 37.745,661.75842 36.625,662.65625 C 35.498998,663.53097 34.2248,664.36502 33.1875,664.34375 C 32.150101,664.21182 31.08495,661.88113 30.40625,662.1875 C 29.705449,662.53765 29.45775,664.53994 29.09375,666.3125 C 28.71865,667.99693 28.68765,670.72123 28.21875,672.40625 C 27.71645,674.02562 26.89185,675.20274 26.21875,676.1875 C 25.63555,677.05534 25.0661,677.64786 24.5,678.03125 C 24.6181,674.91943 24.6974,672.00064 24.75,669.53125 C 24.896201,661.35882 24.9569,657.05721 24.5625,650.25 C 25.2058,645.60905 25.8357,640.89001 26.125,636.875 C 26.5166,631.05399 26.2684,627.09332 26.125,621.6875 C 25.9483,616.12912 25.56085,609.19502 25.21875,604.25 C 24.88755,599.32625 24.5998,596.16143 24.125,592.375 C 23.606401,588.50224 22.6933,586.50193 22.3125,581.46875 C 21.9484,576.34801 21.96335,568.18662 21.96875,562.34375 C 21.957751,556.41333 22.1506,551.14234 22.25,546.65625 C 22.3382,542.17015 22.4228,538.5355 22.5,535.625 z" - id="rect6153" - style="fill:url(#linearGradient2891);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 739.03125,681.78125 C 728.29875,681.80091 719.89724,685.02021 719.03125,685.625 C 708.47153,697.26333 711.70837,714.71043 712.15625,715.03125 C 712.71883,715.43424 716.15788,717.45499 720.375,719.84375 C 720.43328,721.56959 720.53126,723.28124 720.53125,723.28125 C 720.53125,723.28125 725.29885,730.47134 742.1875,736 C 757.04266,740.86299 776.09377,730.46877 776.09375,730.46875 L 781.46875,731.59375 L 786.5,728.5625 L 792.1875,715.875 L 793.03125,705.65625 L 792.84375,706.0625 C 792.57113,705.95409 790.14599,705.00705 789.59375,705.1875 C 789.01004,705.37825 786.625,707.6875 786.625,707.6875 L 780.4375,705.90625 L 780.3125,706.1875 C 779.05952,705.32221 778.08272,705.41849 777.125,705.59375 C 776.26,703.46355 772.2416,696.04146 771.6875,695.40625 C 771.06357,694.69097 763.57658,687.41947 754.625,684.28125 C 749.27979,682.41033 743.90966,681.77232 739.03125,681.78125 z" - transform="matrix(1,0,0,0.568966,0,309.22805)" - id="path7397" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7556)" /> - <g - transform="matrix(-8.1871328e-2,0.2695512,-0.2695512,-8.1871328e-2,1133.7993,567.72515)" - id="g7375"> - <path - d="M 826.25,1088.1786 C 826.25,1088.1786 808.39286,1084.6071 806.07143,1085.1429 C 803.75,1085.6786 777.14286,1112.4643 775.35714,1115.3214 C 773.57143,1118.1786 756.60285,1151.1439 755.17858,1184.7857 C 752.48959,1249.0584 792.17924,1300.9225 796.46664,1304.2933 C 846.89032,1328.1532 902.76523,1299.1379 903.39286,1297.2857 C 905.40525,1291.347 924.28571,1211.2143 923.39286,1195.1429 C 922.85971,1185.5462 928.57143,1141.2143 874.10714,1083.8929 C 846.25001,1090.1428 826.96429,1088.8929 826.25,1088.1786 z" - id="path7361" - style="fill:#303030;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 819.64286,1126.9286 L 857.85714,1126.9286 C 857.85714,1126.9286 867.5,1164.4286 866.25,1172.4643 C 858.75,1175.5 811.07143,1172.2857 811.07143,1172.2857 C 811.07143,1172.2857 814.82143,1136.0357 819.64286,1126.9286 z" - id="path7335" - style="fill:#5d5d5d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 870.89286,1125.6786 L 879.28572,1166.5714 C 879.28572,1166.5714 880,1170.8571 882.85714,1170.1429 C 885.71429,1169.4286 910.17857,1162.2857 910.35714,1161.2143 C 910.53572,1160.1429 910.35714,1158.5357 910.35714,1157.8214 C 910.35714,1157.1071 908.90457,1142.4254 891.25,1117.4643 C 880.13761,1116.3372 870.0927,1128.0791 870.89286,1125.6786 z" - id="path7337" - style="fill:#484848;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 809.28572,1184.25 C 809.28572,1184.25 808.75,1233.8929 812.32143,1236.0357 C 815.89286,1238.1786 862.85714,1236.9286 863.57143,1236.2143 C 864.28572,1235.5 867.85714,1186.5714 867.32143,1185.1429 C 866.78572,1183.7143 831.07143,1189.6071 809.28572,1184.25 z" - id="path7339" - style="fill:#5d5d5d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 795.71429,1183 L 765.35714,1173.1786 C 765.35714,1173.1786 761.96429,1169.9643 761.60714,1175.5 C 761.25,1181.0357 762.5,1221.9286 762.5,1221.9286 C 762.5,1221.9286 764.28572,1227.4643 769.28572,1228.5357 C 774.28572,1229.6071 792.5,1234.7857 797.14286,1234.0714 C 797.50001,1227.6428 794.82143,1182.2857 794.82143,1182.2857 L 795.71429,1183 z" - id="path7341" - style="fill:#757575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 782.97919,1120.2907 C 782.97919,1120.2907 765.93286,1156.4037 766.43794,1157.035 C 766.94301,1157.6663 764.1651,1159.5604 768.83705,1161.8332 C 773.50901,1164.1061 792.57564,1169.5356 792.57564,1169.5356 C 792.57564,1169.5356 795.60609,1171.1771 796.74251,1167.6416 C 797.87894,1164.1061 807.22285,1126.6042 806.71777,1126.4779 C 806.2127,1126.3516 793.58579,1117.2602 782.97919,1120.2907 z" - id="path7343" - style="fill:#757575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 880.53572,1182.6429 L 877.32143,1232.1071 C 877.32143,1232.1071 879.10714,1234.6071 881.96429,1234.4286 C 884.82143,1234.25 911.25,1228.3571 912.14286,1227.2857 C 913.03572,1226.2143 917.5,1176.2143 915.53572,1172.4643 C 913.57143,1168.7143 885.89286,1184.25 880.53572,1182.6429 z" - id="path7345" - style="fill:#484848;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 769.82143,1241.5714 C 769.82143,1241.5714 780.89286,1270.3214 783.03572,1271.5714 C 785.17857,1272.8214 805.89286,1280.6786 808.03572,1278.8929 C 810.17857,1277.1071 801.78572,1249.0714 800.53572,1248 C 799.28572,1246.9286 770,1242.1071 769.82143,1241.5714 z" - id="path7347" - style="fill:#757575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 814.82143,1250.5 L 820.35714,1279.4286 C 820.35714,1279.4286 822.67857,1281.5714 823.92857,1281.2143 C 825.17857,1280.8571 859.82143,1282.1071 861.96429,1280.3214 C 864.10714,1278.5357 863.21429,1252.1071 862.85714,1250.3214 C 862.5,1248.5357 816.07143,1249.25 814.82143,1250.5 z" - id="path7349" - style="fill:#5d5d5d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 875.17857,1247.1072 L 871.96428,1278.8929 C 871.96428,1278.8929 900.71429,1272.1072 903.92857,1268.8929 C 907.14286,1265.6786 910,1238.7143 910,1238.7143 L 875.17857,1247.1072 z" - id="path7351" - style="fill:#484848;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 791.25,1284.875 C 791.25,1284.875 799.82143,1302.4643 801.96429,1302.4643 C 804.10714,1302.4643 813.21429,1306.125 813.92857,1305.2321 C 814.64286,1304.3393 811.51786,1289.9643 811.51786,1289.9643 C 811.51786,1289.9643 796.42857,1284.1607 791.25,1284.875 z" - id="path7353" - style="fill:#757575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 824.19643,1291.2143 C 824.19643,1291.2143 826.78572,1305.5893 829.19643,1306.3036 C 831.60714,1307.0179 854.73214,1308.0893 855.625,1307.0179 C 856.51786,1305.9464 859.10714,1292.1964 857.94643,1291.0357 C 856.78572,1289.875 829.64286,1287.0179 824.19643,1291.2143 z" - id="path7355" - style="fill:#5d5d5d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 869.28571,1288.9822 C 869.28571,1288.9822 864.64286,1303.5357 866.78572,1304.3393 C 868.92857,1305.1429 896.25,1295.1429 897.14286,1293.7143 C 898.03572,1292.2857 902.05358,1282.6429 900.71429,1281.5714 C 899.37501,1280.4999 869.82143,1288.9822 869.28571,1288.9822 z" - id="path7357" - style="fill:#484848;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 807.98046,1091.8802 L 790.17652,1108.2951 L 813.78884,1118.1441 L 860.00332,1117.8916 L 885.88848,1106.6536 L 864.92781,1088.8497 C 864.92781,1088.8497 850.02806,1103.7495 807.98046,1091.8802 z" - id="path7359" - style="fill:#4b4b4b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 815.53572,1049.6071 L 814.82143,1078 L 861.07143,1081.5714 L 858.92857,1055.5 L 815.53572,1049.6071 z" - id="path7373" - style="fill:#191919;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 805.41296,1069.6329 C 800.59394,1078.0602 802.22322,1082.3421 804.28629,1086.3451 C 804.28629,1086.3451 856.113,1095.5462 877.70746,1086.3451 C 881.46302,1075.0784 876.58079,1070.5718 876.58079,1070.5718 C 876.58079,1070.5718 839.9641,1083.3406 805.41296,1069.6329 z" - id="path7363" - style="fill:#2b2b2b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05155635px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 789.77221,1031.8571 C 789.77221,1031.8571 788.83477,1042.5714 790.08469,1044.3571 C 791.33461,1046.1429 801.64639,1051.8571 801.64639,1051.8571 L 801.95886,1074.7143 L 818.20773,1076.5 L 818.83269,1051.6786 L 841.17489,1054 L 855.23641,1070.4285 L 856.64256,1082.2143 C 856.64256,1082.2143 891.3948,1118.7775 905.38918,1146.8571 C 919.4507,1175.0714 912.41994,1234 900.702,1267.9286 C 906.79533,1255.6071 926.49774,1214.045 918.66951,1177.0357 C 912.79472,1149.2616 903.20183,1121.4107 861.9547,1078.1965 C 859.61111,1068.6429 859.92359,1058.6429 859.92359,1058.6429 L 846.64326,1041.1429 L 789.77221,1031.8571 z" - id="path7367" - style="fill:#686868;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 788.17857,1032.2143 L 823.64486,1024.5357 L 872.70395,1030.7857 L 888.17163,1044.7143 L 889.89025,1064.1786 C 889.89025,1064.1786 944.8287,1118.1701 943.63652,1173.6429 C 942.28113,1236.7093 922.76709,1260.2763 922.76709,1260.2763 C 922.76709,1260.2763 900.65045,1268.4113 899.40054,1267.697 C 898.15062,1266.9827 921.07361,1234.3698 918.89388,1193.2857 C 917.00289,1157.6439 893.36773,1109.9488 860.28294,1078.1964 C 858.56431,1067.9285 858.17372,1059.0893 858.17372,1059.0893 L 844.58091,1040.7857 L 788.17857,1032.2143 z" - id="path7371" - style="fill:#434343;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <path - d="M 663.35258,719.43749 C 655.48977,719.43749 649.10714,722.49124 649.10714,726.25755 C 649.10714,730.02386 655.48977,733.08101 663.35258,733.08101 C 671.21539,733.08099 677.59525,730.02386 677.59525,726.25755 C 677.59525,725.65449 677.43182,725.07053 677.12477,724.51351 L 689.83905,722.63036 L 689.51611,720.99152 L 675.87477,723.00699 C 673.46196,720.88032 668.75827,719.43749 663.35258,719.43749 z M 664.06806,720.80151 C 670.2656,720.80149 675.29294,723.00812 675.29294,725.72823 C 675.29294,728.44836 670.2656,730.65496 664.06806,730.65496 C 657.87052,730.65496 652.84042,728.44836 652.84042,725.72823 C 652.84042,723.00812 657.87052,720.80151 664.06806,720.80151 z" - id="path7648" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter7738)" /> - <path - d="M 662.45972,718.77678 C 654.59691,718.77678 648.21428,721.83053 648.21428,725.59684 C 648.21428,729.36315 654.59691,732.4203 662.45972,732.4203 C 670.32253,732.42028 676.70239,729.36315 676.70239,725.59684 C 676.70239,724.99378 676.53896,724.40982 676.23191,723.8528 L 688.94619,721.96965 L 688.62325,720.33081 L 674.98191,722.34628 C 672.5691,720.21961 667.86541,718.77678 662.45972,718.77678 z M 663.1752,720.1408 C 669.37274,720.14078 674.40008,722.34741 674.40008,725.06752 C 674.40008,727.78765 669.37274,729.99425 663.1752,729.99425 C 656.97766,729.99425 651.94756,727.78765 651.94756,725.06752 C 651.94756,722.34741 656.97766,720.1408 663.1752,720.1408 z" - id="path7639" - style="fill:#7d7d7d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </g> - <text - xml:space="preserve" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - x="44.383423" - y="365.84381" - id="text3948" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="44.383423" - y="365.84381" - id="tspan3950">sky.svg</tspan><tspan - sodipodi:role="line" - x="44.383423" - y="383.34381" - id="tspan3952">X 0</tspan><tspan - sodipodi:role="line" - x="44.383423" - y="400.84381" - id="tspan3954">Y 0</tspan><tspan - sodipodi:role="line" - x="44.383423" - y="418.34381" - id="tspan3956">W 100%</tspan><tspan - sodipodi:role="line" - x="44.383423" - y="435.84381" - id="tspan3958">H 100%</tspan></text> - <path - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart);fill-opacity:1;marker-mid:none;stroke-miterlimit:4;stroke-dasharray:none" - d="M 7.5359569,9.066336 L 45.137242,46.667621" - id="path3883" /> - <path - style="fill:#000000;fill-opacity:0.78431374;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 163.73531,28.547766 L 334.75714,28.857659 L 333.72028,87.62683 L 166.45554,91.65863 L 163.73531,28.547766 z" - id="path11281" - sodipodi:nodetypes="ccccc" /> - <path - sodipodi:nodetypes="ccccc" - id="path11206" - d="M 166.85601,28.701506 L 330.16375,29.011399 L 329.72028,83.626828 L 170.16963,87.658634 L 166.85601,28.701506 z" - style="fill:#bea13a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;stroke-dasharray:none" /> - <path - sodipodi:nodetypes="ccccc" - id="path11279" - d="M 28.595544,26.140303 L 191.90328,26.450195 L 189.67964,83.439189 L 30.128996,87.470995 L 28.595544,26.140303 z" - style="fill:#000000;fill-opacity:0.78431374;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - style="fill:#beb13a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;stroke-dasharray:none" - d="M 23.408761,28.667608 L 186.7165,28.9775 L 185.67964,79.439189 L 26.128996,83.470995 L 23.408761,28.667608 z" - id="rect11203" - sodipodi:nodetypes="ccccc" /> - <path - sodipodi:nodetypes="ccccc" - id="path11299" - d="M 317.50312,29.381495 L 489.07406,29.700917 L 487.98473,89.053947 L 320.36102,85.870074 L 317.50312,29.381495 z" - style="fill:#000000;fill-opacity:0.78431374;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - style="fill:#be913a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;stroke-dasharray:none" - d="M 321.33802,27.161669 L 484.64577,27.471562 L 483.6089,85.053947 L 324.05827,81.965056 L 321.33802,27.161669 z" - id="path11208" - sodipodi:nodetypes="ccccc" /> - <path - style="fill:#000000;fill-opacity:0.78431374;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 463.7098,27.196155 L 630.5779,27.52618 L 629.51842,81.266154 L 466.48935,85.55989 L 463.7098,27.196155 z" - id="path11301" - sodipodi:nodetypes="ccccc" /> - <path - sodipodi:nodetypes="ccccc" - id="path11210" - d="M 467.27015,27.196155 L 630.5779,27.506048 L 629.54103,77.967736 L 469.99039,81.999542 L 467.27015,27.196155 z" - style="fill:#babe3a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;stroke-dasharray:none" /> - <path - sodipodi:nodetypes="ccccc" - id="path11303" - d="M 611.48916,27.231077 L 778.35727,27.560266 L 777.29778,81.164151 L 613.66239,87.968377 L 611.48916,27.231077 z" - style="fill:#000000;fill-opacity:0.78431374;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - style="fill:#bea93a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;stroke-dasharray:none" - d="M 615.04951,27.231077 L 778.35727,27.54097 L 777.32039,78.002659 L 617.17637,84.408029 L 615.04951,27.231077 z" - id="path11212" - sodipodi:nodetypes="ccccc" /> - <g - id="g13834"> - <path - sodipodi:nodetypes="ccccc" - id="path9051" - d="M 21.207875,667.11618 L 1010.3717,666.32512 L 981.02503,732.79646 L 44.009774,733.02248 L 21.207875,667.11618 z" - style="fill:#000000;fill-opacity:0.64761909;fill-rule:evenodd;stroke:#ff0000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter9225)" /> - <path - sodipodi:nodetypes="ccccccc" - id="rect8879" - d="M 31.88892,29.198097 L 770.35469,37.505576 L 780.13585,169.23846 L 981.45698,161.64313 L 966.78364,690.47361 L 55.877601,703.52822 L 31.88892,29.198097 z" - style="fill:#c5ae77;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" /> - <path - id="path9029" - d="M 1010.375 12.59375 L 21.21875 20.875 L 44 713.03125 L 981.03125 710.65625 L 1010.375 12.59375 z M 31.875 29.1875 L 770.34375 37.5 L 780.125 169.25 L 981.46875 161.65625 L 966.78125 690.46875 L 55.875 703.53125 L 31.875 29.1875 z " - style="fill:#120b00;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" /> - </g> - <rect - y="388.9422" - x="83.242653" - height="32.786705" - width="847.51306" - id="rect11475" - style="fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <rect - style="fill:#ffffff;fill-opacity:0.70588235;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - id="rect11477" - width="847.51306" - height="32.786705" - x="83.242653" - y="420.9422" /> - <rect - y="452.9422" - x="83.242653" - height="32.786705" - width="847.51306" - id="rect11479" - style="fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <rect - style="fill:#ffffff;fill-opacity:0.70588235;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - id="rect11481" - width="847.51306" - height="32.786705" - x="83.242653" - y="484.9422" /> - <rect - y="516.9422" - x="83.242653" - height="32.786705" - width="847.51306" - id="rect11483" - style="fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <rect - y="548.9422" - x="83.242653" - height="32.786705" - width="847.51306" - id="rect11487" - style="fill:#ffffff;fill-opacity:0.70588235;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <rect - style="fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - id="rect11489" - width="847.51306" - height="32.786705" - x="83.242653" - y="580.9422" /> - <rect - y="356.9422" - x="83.242653" - height="32.786705" - width="847.51306" - id="rect11491" - style="fill:url(#linearGradient14142);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <path - style="fill:none;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - d="M 83.25,356.9375 L 83.25,388.9375 L 83.25,389.71875 L 83.25,421.71875 L 83.25,453.71875 L 83.25,485.71875 L 83.25,517.71875 L 83.25,549.71875 L 83.25,581.71875 L 83.25,613.71875 L 930.75,613.71875 L 930.75,580.9375 L 930.75,548.9375 L 930.75,516.9375 L 930.75,484.9375 L 930.75,452.9375 L 930.75,420.9375 L 930.75,389.71875 L 930.75,388.9375 L 930.75,356.9375 L 83.25,356.9375 z" - id="rect11501" /> - <g - id="g4530" - transform="matrix(0.4999148,0,0,0.4999148,618.29337,-211.54208)" - style="opacity:1"> - <g - id="g4888" - transform="matrix(1.4283064,0,0,1.4283064,-415.23892,312.26291)"> - <path - style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" - id="path3944" - d="M 789.51449,233.47341 C 788.44719,233.50548 787.33905,233.62844 786.13949,233.91091 C 785.10756,234.15391 783.90918,234.72332 782.76449,235.50466 C 781.85778,234.76481 780.75907,234.12153 779.35824,233.87966 C 779.02816,233.8202 778.69362,233.78883 778.35824,233.78591 C 768.14193,233.78592 759.91831,233.78591 749.70199,233.78591 C 748.51973,233.79189 747.36622,234.151 746.38949,234.81716 C 746.37907,234.81713 746.36866,234.81713 746.35824,234.81716 C 745.15108,234.21054 743.77302,234.03415 742.45199,234.31716 C 741.81399,234.45634 737.93196,234.1968 734.04574,233.97341 C 732.11059,233.86217 730.08022,233.75272 727.73324,234.28591 C 726.52119,234.56127 725.08969,235.1546 723.79574,236.09841 C 721.77259,234.60927 719.53544,234.2043 717.79574,234.06716 C 713.47129,233.72627 709.66181,234.39268 708.32699,234.22341 C 707.64956,234.13752 706.96238,234.16923 706.29574,234.31716 C 707.73278,233.99817 706.78632,233.98719 704.26449,234.06716 C 703.4332,234.09352 701.8475,234.39588 700.38949,235.34841 C 699.97111,235.17425 699.54824,234.93169 699.13949,234.81716 C 698.62064,234.67221 698.08446,234.59862 697.54574,234.59841 C 691.6408,234.59842 687.96671,234.59841 684.29574,234.59841 C 683.73461,234.60299 683.17697,234.68716 682.63949,234.84841 C 682.09197,234.68421 681.5236,234.60001 680.95199,234.59841 C 677.9586,234.59842 675.15382,234.59841 670.48324,234.59841 C 669.856,234.60444 669.23369,234.70992 668.63949,234.91091 C 666.80488,235.51089 665.20757,236.32935 663.76449,237.25466 C 663.61843,237.06342 663.56466,236.83907 663.38949,236.66091 C 661.25281,234.48782 659.11275,234.47341 657.57699,234.47341 C 651.75049,234.47341 645.90349,234.47341 640.07699,234.47341 C 638.09018,234.47612 636.23665,235.47327 635.13949,237.12966 C 633.06828,235.44311 630.37222,234.23122 627.48324,234.50466 C 627.44157,234.50422 627.39991,234.50422 627.35824,234.50466 C 626.36759,234.61907 623.49753,234.47627 620.63949,234.37966 C 619.1926,234.33075 617.73872,234.33188 616.17074,234.50466 C 615.36452,234.5935 614.46335,234.67764 613.51449,234.97341 C 612.33848,234.44411 611.02202,234.31247 609.76449,234.59841 C 609.20187,234.72473 606.22102,234.41079 602.79574,234.09841 C 601.08016,233.94195 599.18125,233.80213 596.85824,234.41091 C 595.58398,234.74485 594.16036,235.53602 592.92074,236.62966 C 590.64262,234.52585 587.0155,233.99596 584.42074,234.59841 C 584.26285,234.63367 584.10647,234.67537 583.95199,234.72341 C 584.81595,234.44684 584.14046,234.67174 583.17074,234.59841 C 582.20102,234.52508 580.86413,234.34194 579.35824,234.25466 C 577.85235,234.16738 576.20545,233.97284 573.76449,234.94216 C 573.32011,235.11863 572.81016,235.43999 572.32699,235.75466 C 569.87667,234.19536 567.53431,234.14234 565.63949,234.16091 C 563.49868,234.18189 561.58931,234.46562 560.01449,234.59841 C 558.43967,234.7312 557.17284,234.59814 557.29574,234.62966 C 556.81591,234.50606 556.32248,234.44307 555.82699,234.44216 C 549.17022,234.44213 542.51496,234.44216 535.85824,234.44216 C 534.28308,234.44073 532.77202,235.06583 531.65821,236.17963 C 530.54441,237.29344 529.91931,238.8045 529.92074,240.37966 L 529.92074,241.37966 L 529.92074,242.37966 C 529.919,242.84252 529.97144,243.30399 530.07699,243.75466 C 530.06137,243.68987 530.17467,244.91861 530.04574,246.44216 C 529.91685,247.95961 529.63949,249.83618 529.67074,252.00466 C 529.68677,253.08212 529.7747,254.23183 530.13949,255.56716 C 530.52942,256.99772 531.33372,258.54822 532.57699,259.75466 C 533.9189,261.05561 535.77874,261.90118 537.60824,262.12966 C 537.62907,262.12977 537.64991,262.12977 537.67074,262.12966 C 538.21937,262.19487 538.71385,262.17508 539.23324,262.16091 C 539.13993,263.14297 539.01948,264.0975 538.88949,265.37966 C 538.83714,265.89821 538.84247,266.08397 538.85824,265.91091 C 538.75632,267.01793 538.75938,267.02641 538.85824,265.94216 C 538.76456,266.97992 538.77335,267.00337 538.85824,266.03591 C 538.73187,267.46313 538.71435,269.11575 539.01449,270.97341 C 538.92889,273.49626 538.21338,276.8868 539.35824,281.16091 C 539.393,281.29069 539.38237,281.40451 539.42074,281.53591 C 539.42918,281.56519 539.41184,281.56843 539.42074,281.59841 C 539.81367,282.91106 540.45948,284.12437 541.26449,285.12966 C 542.16319,286.26589 543.51843,287.33625 545.07699,287.94216 C 547.48868,288.87974 549.86277,288.66435 552.23324,288.12966 C 554.18736,288.47004 556.09197,288.65788 557.98324,288.44216 C 559.18518,288.30079 560.32384,287.99411 561.42074,287.53591 C 562.53311,287.07048 563.69622,286.35957 564.67074,285.41091 C 565.63088,284.48961 566.37553,283.41615 566.88949,282.28591 C 566.88952,282.27549 566.88952,282.26508 566.88949,282.25466 C 567.43435,281.05271 567.68941,279.88304 567.82699,278.78591 C 568.08415,276.74939 567.86873,274.73977 567.45199,272.66091 C 567.56511,271.21359 567.66251,269.76734 567.60824,268.44216 C 567.54005,266.75286 567.4293,265.12941 567.35824,263.62966 C 567.32946,263.02224 567.39712,262.70172 567.42074,262.19216 C 568.13049,262.10297 568.82986,262.1498 569.54574,261.91091 C 569.55169,262.28793 569.57507,262.7544 569.57699,263.12966 C 569.59607,266.85883 569.09169,271.27806 569.04574,276.31716 C 569.04367,276.54415 569.01449,276.68102 569.01449,276.91091 C 568.83224,278.90948 568.77596,281.09818 570.20199,283.66091 C 571.76292,286.46607 575.52878,288.12966 578.35824,288.12966 C 580.71316,288.12964 583.54232,288.65138 587.29574,288.06716 C 590.69861,287.5375 593.68267,288.12966 598.35824,288.12966 C 601.30799,288.12964 604.25216,288.12966 607.20199,288.12966 L 607.20199,288.06716 C 608.49456,288.14191 609.92475,288.05832 611.32699,287.41091 C 611.92534,287.13465 612.39972,286.71268 612.88949,286.31716 C 614.98992,287.51895 616.53862,287.53591 618.13949,287.53591 C 623.35201,287.53589 628.58316,287.53591 633.79574,287.53591 C 635.15252,287.52646 636.46506,287.05218 637.51449,286.19216 C 638.16157,286.61513 638.84562,286.95591 639.51449,287.16091 C 642.52647,288.08406 644.72413,287.66228 646.38949,287.50466 C 646.43116,287.5051 646.47282,287.5051 646.51449,287.50466 C 647.51967,287.38857 650.38572,287.50833 653.23324,287.59841 C 654.657,287.64345 656.11209,287.6711 657.67074,287.50466 C 658.38306,287.4286 659.1538,287.31909 659.98324,287.09841 C 661.34291,288.00463 663.01616,288.30989 664.60824,287.94216 C 665.28894,287.78933 667.7245,288.11367 670.85824,288.44216 C 672.42511,288.60641 674.26417,288.78789 676.57699,288.12966 C 678.19945,287.66791 679.96297,286.42702 681.26449,284.84841 C 682.30709,286.04494 683.565,287.00649 684.79574,287.47341 C 687.14028,288.36289 689.01278,288.27502 690.63949,288.19216 C 693.89291,288.02645 696.60567,287.7959 697.07699,287.91091 C 698.36074,288.22793 699.71361,288.10694 700.92074,287.56716 C 702.12255,288.15605 703.48818,288.32125 704.79574,288.03591 C 705.43486,287.89648 709.31131,288.16087 713.20199,288.37966 C 715.14733,288.48906 717.16774,288.57897 719.51449,288.03591 C 720.66028,287.77076 722.00006,287.20485 723.23324,286.34841 C 726.04204,288.57894 728.60402,288.46571 730.60824,288.44216 C 734.61668,288.39506 738.59543,288.10471 738.20199,288.00466 C 738.38735,288.05541 738.57508,288.09713 738.76449,288.12966 C 740.37888,288.37865 742.12499,288.39443 743.92074,287.78591 C 744.6972,287.52279 745.42333,287.06218 746.10824,286.56716 C 746.14386,286.59124 746.16607,286.6377 746.20199,286.66091 C 748.46237,288.12161 750.62913,288.27064 752.45199,288.16091 C 761.40473,287.62197 770.73832,288.19216 780.42074,288.19216 C 781.19205,288.19399 781.95631,288.04538 782.67074,287.75466 C 783.78229,288.19945 785.00242,288.2975 786.17074,288.03591 C 786.78795,287.90004 790.65192,288.18488 794.54574,288.41091 C 796.49265,288.52393 798.5335,288.61423 800.8895,288.06716 C 803.2455,287.52009 806.4054,285.73389 807.7645,282.59841 C 808.0889,281.85931 808.259,281.06179 808.2645,280.25466 C 808.2645,266.74627 808.2645,253.23178 808.2645,239.72341 C 808.2609,237.90366 807.4223,236.18624 805.9895,235.06439 C 804.5567,233.94253 802.6882,233.54037 800.9207,233.97341 C 800.8068,234.00107 796.61815,233.80519 792.60824,233.56716 C 791.60594,233.50766 790.58179,233.44134 789.51449,233.47341 z M 616.35824,255.19216 C 617.58379,257.10998 618.78862,259.05792 620.01449,260.97341 C 619.00233,262.54468 617.93167,264.24734 616.98324,265.72341 C 616.97489,264.10003 617.04811,262.59037 616.98324,260.94216 C 616.86539,257.94922 616.29574,256.46311 616.29574,256.28591 C 616.29574,255.95765 616.3519,255.52536 616.35824,255.19216 z M 657.54574,255.72341 L 657.79574,260.50466 L 657.79574,260.81716 C 657.79219,264.42463 657.72325,265.40706 657.67074,267.00466 C 656.4211,265.03826 655.18078,263.06874 653.92074,261.09841 C 655.1064,259.34775 656.35687,257.43144 657.54574,255.72341 z M 778.95199,260.00466 C 778.95199,260.64012 778.95199,261.27545 778.95199,261.91091 C 777.82636,261.75317 776.74257,261.75546 775.70199,261.91091 L 775.70199,261.87966 C 772.97909,262.15378 771.59577,261.98544 770.76449,261.94216 C 770.81392,261.67292 770.73725,261.90352 770.85824,261.50466 C 770.98983,261.03628 771.0633,260.55348 771.07699,260.06716 C 772.98767,260.25714 775.59486,260.48558 778.95199,260.00466 z" /> - <path - style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" - id="path3948" - d="M 792.38949,237.16091 C 790.52,237.04994 788.71647,237.03402 786.98324,237.44216 C 785.25001,237.8503 783.33936,239.01213 782.70199,241.03591 C 782.62566,241.2574 782.58351,241.48923 782.57699,241.72341 C 782.57699,241.86922 782.57699,242.0151 782.57699,242.16091 C 782.51862,241.93443 782.55243,241.6613 782.48324,241.44216 C 782.21851,240.6037 781.88185,239.82817 781.32699,239.09841 C 780.77213,238.36865 779.90466,237.63902 778.76449,237.44216 C 778.63026,237.41978 778.49431,237.40932 778.35824,237.41091 C 768.14192,237.41092 759.91831,237.41091 749.70199,237.41091 C 748.95726,237.41224 748.25898,237.77302 747.82699,238.37966 L 746.01449,240.91091 C 746.01449,240.64008 746.01449,240.36924 746.01449,240.09841 C 746.01425,239.3979 745.69571,238.73544 745.1487,238.29783 C 744.60169,237.86023 743.88547,237.69488 743.20199,237.84841 C 741.33404,238.25592 737.45294,237.77559 733.82699,237.56716 C 732.01711,237.46312 730.25693,237.42841 728.54574,237.81716 C 726.83455,238.20591 724.96539,239.24128 724.13949,241.12966 C 723.98893,241.47356 723.92456,241.849 723.95199,242.22341 C 724.04177,243.44307 724.07737,244.39799 724.10824,245.41091 C 723.97657,245.18977 723.9364,245.19044 723.79574,244.94216 C 723.97739,242.9141 723.70368,241.04524 722.54574,239.75466 C 721.16836,238.2195 719.25425,237.79805 717.51449,237.66091 C 714.03497,237.38662 710.17501,238.11094 707.85824,237.81716 C 707.59794,237.78305 707.33373,237.79362 707.07699,237.84841 C 707.05806,237.85261 705.92223,237.64355 704.38949,237.69216 C 703.62312,237.71646 702.22912,237.9922 701.48324,239.25466 C 701.23863,239.66868 701.23025,240.04863 701.17074,240.44216 C 701.10235,240.32815 701.09882,240.20904 701.01449,240.09841 C 700.34631,239.22175 699.34911,238.64735 698.17074,238.31716 C 697.96769,238.25739 697.75739,238.22584 697.54574,238.22341 C 691.64079,238.22342 687.9667,238.22341 684.29574,238.22341 C 683.70399,238.21962 683.13341,238.44337 682.70199,238.84841 C 682.67996,238.86918 682.63094,238.88979 682.60824,238.91091 C 682.17147,238.46776 681.5742,238.21984 680.95199,238.22341 C 677.95858,238.22342 675.15381,238.22341 670.48324,238.22341 C 670.23854,238.22669 669.99593,238.26888 669.76449,238.34841 C 665.87496,239.62042 663.36936,241.61228 661.82699,243.87966 C 661.59502,244.21242 661.45489,244.60047 661.42074,245.00466 L 660.95199,251.09841 C 660.94493,251.20246 660.94493,251.30686 660.95199,251.41091 L 661.42074,260.50466 L 661.42074,260.62966 C 661.41649,271.70643 661.13696,271.52392 661.04574,279.06716 C 657.20165,273.06677 653.40734,267.05013 649.54574,261.03591 C 652.89087,255.95273 655.96953,251.86184 659.45199,246.41091 C 659.47358,246.38017 659.49442,246.34891 659.51449,246.31716 C 660.12747,245.25609 661.04151,244.18958 661.51449,242.53591 C 661.75098,241.70907 661.78271,240.19594 660.79574,239.19216 C 659.80877,238.18838 658.67612,238.09841 657.57699,238.09841 C 651.75049,238.09841 645.90349,238.09841 640.07699,238.09841 C 639.08834,238.09669 638.20851,238.72514 637.88949,239.66091 C 637.31162,241.35286 637.09989,242.80358 636.48324,244.91091 C 635.8239,243.63 635.14583,242.44022 634.38949,241.47341 C 632.72369,239.34407 630.40174,237.88596 627.82699,238.12966 C 627.81657,238.12959 627.80616,238.12959 627.79574,238.12966 C 626.14523,238.32027 623.23895,238.09675 620.51449,238.00466 C 619.14531,237.95838 617.83328,237.95997 616.57699,238.09841 C 615.3861,238.22964 614.21736,238.44898 613.10824,239.28591 C 612.61812,238.37768 611.58439,237.90548 610.57699,238.12966 C 608.77098,238.53514 605.58625,237.97514 602.48324,237.69216 C 600.9306,237.55057 599.36805,237.49886 597.79574,237.91091 C 596.22343,238.32296 594.58242,239.48396 593.85824,241.25466 C 593.73923,241.53129 593.67553,241.82855 593.67074,242.12966 C 593.67074,246.98603 594.64083,253.98268 594.76449,259.56716 C 594.82632,262.3594 594.64538,264.81578 594.23324,266.09841 C 594.02717,266.73973 593.77648,267.00009 593.73324,267.03591 C 593.69,267.07173 593.86045,267.08633 593.54574,267.03591 C 592.56641,266.87902 592.49139,266.75186 592.23324,266.16091 C 591.97509,265.56996 591.82459,264.34557 591.88949,262.84841 C 592.01624,259.92445 592.89946,256.24745 592.20199,252.81716 L 592.23324,252.81716 C 591.9903,250.573 592.51445,247.052 592.29574,243.94216 C 592.18639,242.38724 591.93038,240.77269 590.67074,239.41091 C 589.4111,238.04913 587.25786,237.65959 585.23324,238.12966 C 585.16988,238.14781 585.10732,238.16866 585.04574,238.19216 C 584.91793,238.23307 583.99876,238.3073 582.88949,238.22341 C 581.78022,238.13952 580.45953,237.95617 579.13949,237.87966 C 577.81945,237.80315 576.52805,237.75334 575.10824,238.31716 C 574.39834,238.59907 573.61293,239.10198 573.10824,239.91091 C 572.72633,240.52305 572.69963,241.25004 572.67074,241.94216 C 572.43042,240.83004 571.80271,239.84507 571.04574,239.22341 C 569.41506,237.88539 567.49784,237.76801 565.67074,237.78591 C 563.85064,237.80374 561.97674,238.05041 560.29574,238.19216 C 558.61474,238.33391 557.1146,238.34688 556.38949,238.16091 C 556.20659,238.10652 556.01765,238.07503 555.82699,238.06716 C 549.17025,238.06713 542.51497,238.06716 535.85824,238.06716 C 535.24447,238.06567 534.65541,238.30883 534.22141,238.74283 C 533.78741,239.17683 533.54425,239.76589 533.54574,240.37966 L 533.54574,241.37966 L 533.54574,242.37966 C 533.5459,242.55857 533.56688,242.73685 533.60824,242.91091 C 533.78722,243.65326 533.7769,245.13088 533.63949,246.75466 C 533.50177,248.37618 533.27014,250.16539 533.29574,251.94216 C 533.30892,252.82783 533.39537,253.70478 533.63949,254.59841 C 533.89318,255.52915 534.38065,256.45487 535.10824,257.16091 C 535.87435,257.90364 536.93257,258.39299 538.07699,258.53591 C 539.10302,258.65786 540.19884,258.50412 541.35824,258.22341 L 541.35824,258.25466 C 542.04755,258.15114 542.4168,258.24005 542.54574,258.28591 C 542.67411,258.33158 542.59822,258.26248 542.67074,258.37966 C 542.79197,258.57554 543.03945,259.56279 542.98324,260.94216 C 542.92703,262.32153 542.68917,264.03167 542.51449,265.75466 C 542.48448,266.05191 542.45448,266.19612 542.45199,266.22341 C 542.41178,266.66015 542.41411,266.67007 542.45199,266.25466 C 542.41376,266.67813 542.42072,266.73604 542.45199,266.37966 C 542.31838,267.88871 542.3052,269.38403 542.63949,270.91091 C 542.56919,273.79504 541.97945,277.28736 542.88949,280.47341 C 542.89523,280.4935 542.88363,280.51585 542.88949,280.53591 C 542.89585,280.55873 542.88238,280.54322 542.88949,280.56716 C 543.14783,281.43018 543.55884,282.20134 544.07699,282.84841 C 544.63725,283.55675 545.43678,284.19678 546.38949,284.56716 C 548.11499,285.23797 550.10189,285.0844 552.42074,284.44216 C 554.27029,284.78771 556.01496,284.99177 557.54574,284.81716 C 557.55616,284.81723 557.56657,284.81723 557.57699,284.81716 C 558.46117,284.71317 559.26139,284.50675 560.01449,284.19216 C 560.78352,283.87039 561.52025,283.41997 562.13949,282.81716 C 562.75139,282.23002 563.23194,281.54469 563.57699,280.78591 C 563.57706,280.77549 563.57706,280.76508 563.57699,280.75466 C 563.93362,279.96794 564.12835,279.1536 564.23324,278.31716 C 564.44013,276.67874 564.29176,274.90205 563.85824,272.91091 C 564.01457,271.49443 564.04319,270.06247 563.98324,268.59841 C 563.91789,266.97936 563.80678,265.36934 563.73324,263.81716 C 563.62661,261.56635 563.82762,259.83916 564.13949,258.59841 C 565.69184,258.8397 567.12935,258.89391 568.38949,258.47341 C 570.24377,257.85464 571.57139,256.31889 572.17074,254.72341 C 572.62603,253.50873 572.74847,252.26403 572.79574,251.00466 C 572.9846,255.04054 573.18225,259.23871 573.20199,263.09841 C 573.22362,267.32668 572.63949,271.86887 572.63949,276.91091 L 572.67074,276.91091 C 572.50822,278.6614 572.4791,280.331 573.35824,281.91091 C 574.27511,283.55863 576.31563,284.50466 578.35824,284.50466 C 581.04603,284.50464 583.7056,284.94467 586.73324,284.47341 C 590.78493,283.84275 594.10396,284.50466 598.35824,284.50466 C 601.30802,284.50464 604.25218,284.50466 607.20199,284.50466 L 607.20199,284.44216 C 608.08056,284.52127 608.99564,284.48224 609.82699,284.09841 C 610.75692,283.66907 611.4634,282.93819 611.92074,282.16091 C 612.83542,280.60635 613.07456,278.90029 613.35824,276.87966 C 613.37574,276.77632 613.38618,276.67192 613.38949,276.56716 C 613.38949,271.52186 613.56327,266.2763 613.35824,261.06716 C 613.27247,258.88906 612.67074,257.36903 612.67074,256.28591 C 612.67075,252.22929 613.04728,247.94635 613.23324,243.62966 C 613.42669,243.92072 613.64985,244.22797 613.82699,244.50466 C 617.3093,250.03991 620.81704,255.51403 624.32699,261.00466 C 621.28195,265.73124 619.03707,269.22503 615.82699,274.25466 C 614.56708,276.1347 613.31759,277.3851 612.95199,279.59841 C 612.76919,280.70507 613.40971,282.47773 614.54574,283.16091 C 615.68177,283.84409 616.78032,283.91091 618.13949,283.91091 C 623.35203,283.91089 628.58317,283.91091 633.79574,283.91091 C 634.78439,283.91263 635.66422,283.28418 635.98324,282.34841 C 636.21859,281.65929 636.45065,280.74736 636.76449,279.72341 C 637.555,281.68206 638.93738,283.22088 640.57699,283.72341 C 642.54905,284.32783 644.38393,284.03694 646.04574,283.87966 C 646.05616,283.87973 646.06657,283.87973 646.07699,283.87966 C 647.73315,283.68838 650.64171,283.88747 653.35824,283.97341 C 654.71651,284.01638 656.04815,284.04413 657.29574,283.91091 C 658.54333,283.77769 659.75787,283.5902 660.92074,282.62966 C 660.96399,282.58961 661.00569,282.54791 661.04574,282.50466 C 661.14233,283.12986 661.49144,283.68797 662.01136,284.04837 C 662.53128,284.40877 663.1764,284.53984 663.79574,284.41091 C 665.64767,283.99513 668.43502,284.52384 671.23324,284.81716 C 672.63235,284.96382 674.08043,285.05558 675.57699,284.62966 C 677.07355,284.20374 678.57405,283.00535 679.26449,281.31716 C 679.43153,280.92306 679.48563,280.49025 679.42074,280.06716 C 678.81124,276.21195 680.4318,275.34703 681.17074,275.28591 C 681.54021,275.25535 681.84351,275.34232 682.20199,275.84841 C 682.56047,276.3545 682.93943,277.45258 682.67074,279.41091 C 682.6252,279.7019 682.63581,279.99891 682.70199,280.28591 C 683.16226,282.08618 684.58857,283.53373 686.07699,284.09841 C 687.56541,284.66309 689.01881,284.64016 690.45199,284.56716 C 693.31835,284.42116 696.27525,284.00177 697.95199,284.41091 C 698.92761,284.63693 699.93762,284.20768 700.45199,283.34841 C 700.79374,282.77394 701.02136,282.15036 701.23324,281.53591 C 701.23324,281.77541 701.23324,282.01518 701.23324,282.25466 C 701.23348,282.95517 701.55202,283.61763 702.09903,284.05524 C 702.64604,284.49284 703.36226,284.65819 704.04574,284.50466 C 705.91412,284.09706 709.76429,284.58205 713.38949,284.78591 C 715.20209,284.88784 716.98834,284.90121 718.70199,284.50466 C 720.41564,284.10811 722.28136,283.0828 723.10824,281.19216 C 723.26397,280.81699 723.31787,280.40735 723.26449,280.00466 C 723.15643,278.9468 723.20994,278.42023 723.17074,277.59841 C 723.45009,278.04829 723.6012,278.25328 723.92074,278.81716 C 723.85001,279.49906 723.71821,280.19791 723.85824,280.84841 C 724.08451,281.89951 724.68944,282.87429 725.48324,283.50466 C 727.07084,284.76541 728.85076,284.83708 730.54574,284.81716 C 733.93569,284.77733 737.83026,284.17966 739.10824,284.50466 C 739.18062,284.51856 739.25362,284.52899 739.32699,284.53591 C 740.54696,284.72407 741.66746,284.70957 742.73324,284.34841 C 743.79902,283.98725 744.73646,283.21686 745.29574,282.34841 C 745.76893,281.61363 745.95829,280.86408 746.10824,280.09841 C 746.37144,281.56557 747.07526,282.92175 748.17074,283.62966 C 749.49733,284.48692 750.93074,284.64557 752.23324,284.56716 C 761.47558,284.01078 770.88352,284.56716 780.42074,284.56716 C 781.47287,284.55807 782.38553,283.83822 782.63949,282.81716 C 782.94493,284.03376 784.16649,284.78335 785.38949,284.50466 C 787.24936,284.09525 791.10682,284.5754 794.73324,284.78591 C 796.54645,284.89117 798.3285,284.93466 800.0457,284.53591 C 801.763,284.13716 803.6296,283.05829 804.452,281.16091 C 804.5751,280.87459 804.6389,280.56631 804.6395,280.25466 C 804.6395,266.74626 804.6395,253.23178 804.6395,239.72341 C 804.6415,239.016 804.3188,238.34679 803.764,237.90785 C 803.2092,237.46891 802.4837,237.30878 801.7957,237.47341 C 800.2367,237.85193 796.12875,237.38287 792.38949,237.16091 z M 572.57699,244.59841 C 572.57832,244.67615 572.6068,244.73961 572.60824,244.81716 L 572.57699,244.81716 C 572.59053,244.74199 572.56527,244.67297 572.57699,244.59841 z M 782.57699,251.53591 C 782.57699,257.411 782.57699,263.28564 782.57699,269.16091 C 782.40398,268.59779 782.29372,268.01353 781.92074,267.47341 C 781.33377,266.6234 780.36445,265.91736 779.29574,265.59841 C 778.28582,265.29701 777.21482,265.32312 776.07699,265.50466 C 776.01076,265.51523 775.95621,265.49284 775.88949,265.50466 C 772.41729,265.84175 769.21664,265.84689 767.95199,265.28591 C 767.30737,264.99997 767.15293,264.8102 766.98324,264.22341 C 766.81355,263.63662 766.79299,262.40866 767.38949,260.44216 C 767.51269,260.00107 767.50181,259.5333 767.35824,259.09841 C 766.77229,257.24021 767.07154,256.77033 767.10824,256.72341 C 767.14494,256.67649 767.61624,256.36418 768.82699,256.28591 C 771.24849,256.12937 775.23022,257.01325 778.73324,256.44216 C 778.74366,256.44223 778.75407,256.44223 778.76449,256.44216 C 779.91136,256.24266 780.75107,255.51022 781.29574,254.78591 C 781.84041,254.0616 782.18654,253.2754 782.45199,252.44216 C 782.53949,252.16751 782.50592,251.82238 782.57699,251.53591 z M 681.95199,253.72341 C 682.38574,255.20497 682.39573,256.3322 682.17074,256.78591 C 681.88036,257.37149 681.87488,257.25376 681.70199,257.19216 C 680.96074,256.92807 679.53705,255.29057 679.42074,254.59841 C 679.36258,254.25233 679.32192,254.37014 679.45199,254.25466 C 679.58206,254.13918 680.29222,253.74336 681.95199,253.72341 z M 782.57699,277.66091 C 782.57699,278.1713 782.57699,278.68179 782.57699,279.19216 C 782.58566,278.7287 782.49767,278.53726 782.54574,278.00466 C 782.5553,277.89878 782.56644,277.76862 782.57699,277.66091 z" /> - <path - style="font-size:40px;font-style:normal;font-weight:normal;fill:url(#linearGradient8951);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" - id="path3950" - d="M 670.46898,240.52481 C 666.95168,241.67508 665.01016,243.32682 663.73526,245.201 L 663.24894,251.29875 L 663.73526,260.50149 C 663.73528,273.77032 663.28635,268.89279 663.28635,282.1616 C 668.4808,280.99536 675.31249,284.87958 677.12787,280.44077 C 675.64154,271.03941 686.2481,270.24318 684.94646,279.72999 C 686.16089,284.48001 693.6011,280.96898 698.48871,282.1616 C 700.87878,278.14399 698.862,269.84706 699.53618,264.16762 C 699.53618,257.8024 699.53618,251.45399 699.53618,245.08877 C 695.53399,247.05669 690.87265,248.87756 684.83423,248.08153 C 682.50639,248.35842 681.07687,248.48405 679.63431,248.00671 C 678.89051,247.7606 677.86184,247.06901 677.57679,245.94919 C 677.29173,244.82937 677.69809,244.01457 678.0257,243.48016 C 678.68092,242.41134 679.51489,241.7648 680.3825,241.01113 C 680.585,240.83522 680.74187,240.69805 680.94364,240.52481 C 677.95021,240.52481 675.13955,240.52481 670.46898,240.52481 z M 681.91629,251.41098 C 682.44515,251.40462 683.04132,251.43043 683.67454,251.4858 C 686.28418,256.96928 683.44528,260.28379 680.90623,259.37921 C 677.42726,258.13976 673.98345,251.50633 681.91629,251.41098 z M 684.31051,240.52481 C 681.40303,243.26496 675.38283,247.00344 684.75943,245.87437 C 690.90473,246.80367 695.26753,244.78797 699.53619,242.61974 C 699.52066,241.8603 699.29756,241.01351 697.55348,240.52481 C 691.64854,240.52481 687.98147,240.52481 684.31051,240.52481 z M 565.70199,240.09841 C 562.46997,240.13008 558.35648,241.02839 555.82699,240.37966 C 549.17026,240.37963 542.51498,240.37966 535.85824,240.37966 L 535.85824,241.37966 L 535.85824,242.37966 C 537.06951,247.40353 532.26538,258.2498 541.01449,255.97341 C 548.67653,254.82273 543.39517,266.21127 544.95199,270.97341 C 544.80093,277.17085 543.13984,284.85503 552.20199,282.12966 C 560.19785,283.85358 563.31888,280.86683 561.54574,273.12966 C 562.30472,267.81355 560.06932,259.59593 562.57699,255.97341 C 571.6538,258.60881 570.72208,251.54162 570.29574,244.97341 C 571.2999,240.90241 568.93401,240.06674 565.70199,240.09841 z M 535.86746,242.37378 C 537.07873,247.39767 532.28028,258.24186 541.02939,255.96547 C 548.69142,254.8148 543.40854,266.20105 544.96536,270.96319 C 544.8143,277.16066 543.12992,284.84312 552.19207,282.11775 C 560.18793,283.84168 563.32121,280.85629 561.54807,273.11912 C 562.30704,267.80299 560.07279,259.58799 562.58046,255.96547 C 571.65728,258.60088 570.71743,251.53535 570.29109,244.96714 C 572.29943,236.82512 560.89666,241.67154 555.83768,240.37408 C 549.18094,240.37408 542.5242,240.37408 535.86746,240.37408 L 535.86746,241.37394 L 535.86746,242.37378 z M 574.84004,242.37378 C 574.84004,249.76255 575.48152,256.35017 575.51606,263.10345 C 575.53876,267.54248 574.95963,272.0531 574.95963,276.90985 C 574.63208,280.18292 575.28914,282.18024 578.37296,282.18024 C 581.27256,282.18024 583.81943,282.57961 586.38523,282.18024 C 590.84978,281.48534 594.35764,282.18024 598.34384,282.18024 C 601.29364,282.18024 604.24342,282.18024 607.19322,282.18024 C 609.85511,282.54639 610.52301,280.46117 611.07037,276.5624 C 611.07037,271.466 611.25999,266.25378 611.0594,261.15739 C 610.99406,259.49778 610.35285,257.95401 610.35285,256.29441 C 610.35285,250.98763 611.07037,245.68086 611.07037,240.37408 C 605.87591,241.54034 597.78912,237.68065 595.97375,242.11947 C 595.97375,251.1806 599.82827,270.36851 593.17625,269.30284 C 586.77204,268.27688 591.11048,258.23267 589.93666,253.06837 C 589.34274,247.58199 592.05671,238.91604 585.7769,240.37408 C 582.7413,241.34584 574.45114,238.23102 574.84004,242.37378 z M 703.53734,242.08248 C 701.67713,244.83045 704.68998,251.64536 703.53734,257.19386 C 703.53734,265.54433 703.53734,273.89482 703.53734,282.24529 C 708.83859,281.08877 719.06746,284.66189 720.99112,280.26348 C 720.07143,271.26048 721.44824,269.37679 726.24134,278.08393 C 724.46213,285.48715 734.98771,281.05434 739.67086,282.24529 C 747.42267,283.44085 742.17293,272.15726 743.70362,267.38165 C 743.70362,258.28799 743.70362,249.19431 743.70362,240.10066 C 738.40236,241.25717 728.1735,237.68407 726.24983,242.08248 C 726.81525,249.76322 726.58028,255.03139 721.47432,245.61673 C 723.0799,237.1555 713.45335,240.8467 707.57009,240.10066 C 705.67924,240.52039 702.48224,238.79387 703.53734,242.08248 z M 784.88071,241.71763 C 784.88071,255.22601 784.88071,268.73436 784.88071,282.24273 C 790.18197,281.07579 800.4108,284.68113 802.3345,280.24304 C 802.3345,266.73466 802.3345,253.2263 802.3345,239.71793 C 797.37711,240.9215 786.29468,237.22793 784.88071,241.71763 z M 748.51044,254.432 C 748.51044,267.94037 748.19778,265.69385 748.19778,279.20222 C 748.20856,281.65802 750.15129,282.35968 752.09404,282.24273 C 761.52067,281.67529 770.98371,282.24273 780.42854,282.24273 C 778.96106,277.50864 784.07741,266.39824 776.29899,267.77618 C 769.08606,268.5023 762.48008,268.64062 765.16857,259.77739 C 762.38367,250.94576 772.94226,255.0371 778.36377,254.15325 C 781.6993,253.573 781.80349,240.31183 778.36377,239.71793 C 768.14744,239.71793 759.92022,239.71793 749.7039,239.71793 L 747.31697,243.0295 L 748.51044,254.432 z M 615.7507,243.251 C 619.48957,249.19407 623.30782,255.08693 627.08746,261.00612 C 623.5538,266.49207 621.26489,270.00306 617.75355,275.5047 C 615.1981,279.31798 613.45889,281.58972 618.14763,281.58972 C 623.36019,281.58972 628.57276,281.58972 633.78532,281.58972 C 634.46165,279.60946 636.67723,269.74355 638.49862,278.0891 C 639.38456,282.1904 642.49755,281.90386 645.81665,281.58972 C 649.95747,281.1115 657.42301,282.55156 659.46677,280.8634 C 655.22468,274.24897 651.0366,267.60918 646.78412,261.00612 C 650.51883,255.20801 653.80401,250.98164 657.51798,245.16834 C 658.89045,242.79258 660.85088,240.42251 657.56576,240.42251 C 651.73926,240.42251 645.91277,240.42251 640.08627,240.42251 C 639.40993,242.40278 639.99184,243.96812 636.64453,250.966 C 633.97837,243.84635 631.37404,240.10836 628.05491,240.42251 C 623.9141,240.90071 616.44855,239.46064 614.40481,241.14881 C 614.85345,241.84955 615.30207,242.55026 615.7507,243.251 z" /> - </g> - <g - id="g4830" - transform="matrix(1.4283064,0,0,1.4283064,-418.89,315.91401)"> - <g - id="g3872" - transform="matrix(0.6406817,0.2844042,-0.2998221,0.5938165,638.31986,-89.896313)"> - <path - style="opacity:1;fill:#000000;fill-opacity:1" - id="path3874" - transform="matrix(0.6882369,-7.5302481e-3,-1.0406728e-2,0.7876371,51.619489,30.132613)" - d="M 472.13252,390.32748 C 472.13939,418.33732 437.53354,441.04617 394.84268,441.04617 C 352.15182,441.04617 317.54597,418.33732 317.55284,390.32748 C 317.54597,362.31764 352.15182,339.60879 394.84268,339.60879 C 437.53354,339.60879 472.13939,362.31764 472.13252,390.32748 L 472.13252,390.32748 z" /> - <path - style="fill:url(#radialGradient8953);fill-opacity:1" - id="path3876" - d="M 365.74864,327.91006 C 365.74864,349.91773 345.27315,372.35905 319.01839,372.35905 C 292.76362,372.35905 270.62268,349.91773 270.62268,327.91006 C 270.62268,305.90239 289.84906,273.88467 316.10383,273.88467 C 342.35859,273.88467 365.74864,305.90239 365.74864,327.91006 z" /> - <path - style="opacity:1;fill:url(#radialGradient8955);fill-opacity:1" - id="path3878" - transform="matrix(1.0138481,0,0,0.7208741,-7.2445917,80.839045)" - d="M 321.74956,317.23438 C 321.74956,326.89185 314.54695,334.72077 305.66208,334.72077 C 296.77721,334.72077 289.5746,326.89185 289.5746,317.23438 C 289.5746,307.57691 296.77721,299.74799 305.66208,299.74799 C 314.54695,299.74799 321.74956,307.57691 321.74956,317.23438 L 321.74956,317.23438 z" /> - <path - style="opacity:1;fill:url(#radialGradient8957);fill-opacity:1" - id="path3880" - transform="matrix(1.0708886,0,0,0.7930302,1.8438299,56.686911)" - d="M 321.74956,317.23438 C 321.74956,326.89185 314.54695,334.72077 305.66208,334.72077 C 296.77721,334.72077 289.5746,326.89185 289.5746,317.23438 C 289.5746,307.57691 296.77721,299.74799 305.66208,299.74799 C 314.54695,299.74799 321.74956,307.57691 321.74956,317.23438 L 321.74956,317.23438 z" /> - <path - style="opacity:1;fill:url(#radialGradient8959);fill-opacity:1" - id="path3882" - transform="matrix(1.122449,0,0,1.2909313,-27.988686,-94.598747)" - d="M 320.62771,313.14539 C 320.62947,316.49214 317.3875,319.206 313.38773,319.206 C 309.38796,319.206 306.14599,316.49214 306.14775,313.14539 C 306.14599,309.79864 309.38796,307.08478 313.38773,307.08478 C 317.3875,307.08478 320.62947,309.79864 320.62771,313.14539 L 320.62771,313.14539 z" /> - <path - style="opacity:1;fill:url(#radialGradient8961);fill-opacity:1" - id="path3884" - transform="matrix(1.0115466,0,0,1.1015857,-6.488929,-32.560137)" - d="M 320.62771,313.14539 C 320.62947,316.49214 317.3875,319.206 313.38773,319.206 C 309.38796,319.206 306.14599,316.49214 306.14775,313.14539 C 306.14599,309.79864 309.38796,307.08478 313.38773,307.08478 C 317.3875,307.08478 320.62947,309.79864 320.62771,313.14539 L 320.62771,313.14539 z" /> - <path - style="fill:url(#linearGradient8963);fill-opacity:1" - id="path3886" - d="M 318.25,314.4375 C 301.26162,314.4375 287.46874,321.0169 287.46875,329.125 C 287.46875,329.23072 287.49534,329.33231 287.5,329.4375 C 282.65487,331.8884 279.78125,334.92483 279.78125,338.21875 C 279.78125,346.32683 297.44648,367.59375 318.875,367.59375 C 340.30352,367.59375 357.40625,346.32682 357.40625,338.21875 C 357.40625,334.77607 354.27973,331.63008 349.03125,329.125 C 349.03125,329.11446 349.0313,329.10428 349.03125,329.09375 C 348.99547,321.00017 335.2163,314.43749 318.25,314.4375 z" /> - <path - style="fill:url(#radialGradient8965);fill-opacity:1" - id="path3888" - d="M 318.42834,314.4375 C 303.24105,314.4375 290.91047,320.56027 290.91048,328.10565 C 290.91048,328.20403 290.93425,328.29857 290.93842,328.39646 C 286.60696,330.67726 284.038,333.50295 284.038,336.56827 C 284.038,344.11362 299.83039,363.90456 318.98707,363.90456 C 338.14376,363.90456 353.43328,344.11362 353.43328,336.56827 C 353.43328,333.36452 350.63823,330.43687 345.94619,328.10565 C 345.94619,328.09584 345.94623,328.08637 345.94619,328.07657 C 345.91421,320.5447 333.59589,314.43749 318.42834,314.4375 z" /> - <path - style="fill:#550000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path3890" - d="M 294.05132,354.01593 C 307.36599,369.76095 337.0072,370.0159 354.40443,342.62485 C 338.45347,356.99755 319.48216,365.53902 294.05132,354.01593 z" /> - <path - style="fill:url(#radialGradient8967);fill-opacity:1;fill-rule:evenodd" - id="path3892" - d="M 320.76534,314.59948 C 312.27548,316.59648 295.1791,322.79901 293.50338,329.35126 L 287.31924,329.55535 C 289.12411,317.43899 307.93285,314.44494 320.76534,314.59948 z" /> - <path - style="fill:url(#radialGradient8969);fill-opacity:1;fill-rule:evenodd" - id="path3894" - d="M 324.75905,353.90986 C 334.15313,349.79484 346.82934,337.43442 345.25604,328.50485 L 348.80588,330.12792 C 344.78242,342.35681 336.27221,350.73257 324.75905,353.90986 z" /> - <g - id="g3896" - transform="translate(-0.4163651,-1.1672698)"> - <path - style="fill:url(#linearGradient8971);fill-opacity:1;fill-rule:evenodd" - id="path3898" - d="M 303.21875,254.71875 C 303.21875,254.71875 309.89223,266.08819 306.84774,277.74085 C 311.50005,277.57887 313.37082,281.96078 314.81931,284.73471 L 317.59375,277 C 312.25674,265.87773 303.21875,254.71875 303.21875,254.71875 z" /> - <path - style="fill:url(#linearGradient8973);fill-opacity:1;fill-rule:evenodd" - id="path3900" - d="M 325.7701,276.40799 C 323.65892,268.1652 326.27146,262.28979 326.27146,262.28979 C 326.27146,262.28979 314.23393,278.42053 314.5979,285.59697 C 319.79451,279.64452 321.95345,278.447 325.7701,276.40799 z" /> - <path - style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path3902" - d="M 303.125,254.625 C 309.05735,263.07821 313.99391,270.21536 317,278 L 317.75,276.0625 C 313.75103,267.31147 306.92126,259.02887 303.125,254.625 z" /> - <path - style="fill:#999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path3904" - d="M 326.29146,262.15155 C 322.61088,266.72622 314.74014,277.09575 314.53648,285.75261 L 315.61414,284.45639 C 316.94182,276.57666 321.04509,270.18387 326.29146,262.15155 z" /> - </g> - <path - style="opacity:1;fill:url(#radialGradient8975);fill-opacity:1" - id="path3906" - d="M 326.02107,293.2888 C 321.17749,293.48314 316.9971,294.68774 314.07825,297.57845 C 311.23669,295.73698 307.47443,295.4091 303.51192,295.56811 C 294.85564,295.91545 288.0553,301.85966 288.33427,308.81228 C 288.34787,309.15117 288.38838,309.47822 288.43446,309.80907 C 288.81365,303.30094 295.25365,297.16827 303.48802,296.83786 C 307.08372,296.69357 310.51437,298.29989 313.22307,299.83843 L 314.5276,300.84944 C 317.43644,297.49222 322.78423,294.60605 328.08304,294.39343 C 333.65922,294.16966 337.93502,296.8998 341.0792,300.31571 C 338.16715,295.90972 332.4804,293.0296 326.02107,293.2888 z" /> - </g> - <path - style="fill:url(#radialGradient8977);fill-opacity:1" - id="path4472" - d="M 663.9539,126.69155 C 640.34888,130.43455 622.03964,146.2761 612.27361,162.76082 C 606.56173,167.98558 602.17727,174.29389 600.18822,181.35183 C 596.4241,194.70856 601.72759,207.84099 611.88797,217.52268 C 622.04837,227.20438 637.05594,234.02616 654.74486,236.52761 C 672.43344,239.02901 689.88444,236.80847 704.33535,230.71451 C 718.78626,224.62053 730.62237,214.19014 734.38795,200.82828 C 737.38053,190.2093 734.43654,179.75059 728.11712,171.11983 C 722.87975,151.28111 707.33464,130.59277 680.93001,126.60235 C 675.203,125.73685 669.45405,125.8194 663.9539,126.69155 z" /> - <g - id="g3908" - transform="matrix(0.7819066,-0.1766324,0.1789383,0.7721718,293.51105,-7.1580194)"> - <path - style="opacity:1;fill:#000000;fill-opacity:1" - id="path3910" - transform="matrix(0.6882369,-7.5302481e-3,-1.0406728e-2,0.7876371,51.619489,30.132613)" - d="M 472.13252,390.32748 C 472.13939,418.33732 437.53354,441.04617 394.84268,441.04617 C 352.15182,441.04617 317.54597,418.33732 317.55284,390.32748 C 317.54597,362.31764 352.15182,339.60879 394.84268,339.60879 C 437.53354,339.60879 472.13939,362.31764 472.13252,390.32748 L 472.13252,390.32748 z" /> - <path - style="fill:url(#radialGradient8979);fill-opacity:1" - id="path3912" - d="M 365.74864,327.91006 C 365.74864,349.91773 345.27315,372.35905 319.01839,372.35905 C 292.76362,372.35905 270.62268,349.91773 270.62268,327.91006 C 270.62268,305.90239 289.84906,273.88467 316.10383,273.88467 C 342.35859,273.88467 365.74864,305.90239 365.74864,327.91006 z" /> - <path - style="opacity:1;fill:url(#radialGradient8981);fill-opacity:1" - id="path3914" - transform="matrix(1.0138481,0,0,0.7208741,-7.2445917,80.839045)" - d="M 321.74956,317.23438 C 321.74956,326.89185 314.54695,334.72077 305.66208,334.72077 C 296.77721,334.72077 289.5746,326.89185 289.5746,317.23438 C 289.5746,307.57691 296.77721,299.74799 305.66208,299.74799 C 314.54695,299.74799 321.74956,307.57691 321.74956,317.23438 L 321.74956,317.23438 z" /> - <path - style="opacity:1;fill:url(#radialGradient8983);fill-opacity:1" - id="path3916" - transform="matrix(1.0708886,0,0,0.7930302,1.8438299,56.686911)" - d="M 321.74956,317.23438 C 321.74956,326.89185 314.54695,334.72077 305.66208,334.72077 C 296.77721,334.72077 289.5746,326.89185 289.5746,317.23438 C 289.5746,307.57691 296.77721,299.74799 305.66208,299.74799 C 314.54695,299.74799 321.74956,307.57691 321.74956,317.23438 L 321.74956,317.23438 z" /> - <path - style="opacity:1;fill:url(#radialGradient8985);fill-opacity:1" - id="path3918" - transform="matrix(1.122449,0,0,1.2909313,-27.988686,-94.598747)" - d="M 320.62771,313.14539 C 320.62947,316.49214 317.3875,319.206 313.38773,319.206 C 309.38796,319.206 306.14599,316.49214 306.14775,313.14539 C 306.14599,309.79864 309.38796,307.08478 313.38773,307.08478 C 317.3875,307.08478 320.62947,309.79864 320.62771,313.14539 L 320.62771,313.14539 z" /> - <path - style="opacity:1;fill:url(#radialGradient8987);fill-opacity:1" - id="path3920" - transform="matrix(1.0115466,0,0,1.1015857,-6.488929,-32.560137)" - d="M 320.62771,313.14539 C 320.62947,316.49214 317.3875,319.206 313.38773,319.206 C 309.38796,319.206 306.14599,316.49214 306.14775,313.14539 C 306.14599,309.79864 309.38796,307.08478 313.38773,307.08478 C 317.3875,307.08478 320.62947,309.79864 320.62771,313.14539 L 320.62771,313.14539 z" /> - <path - style="fill:url(#linearGradient8989);fill-opacity:1" - id="path3922" - d="M 318.25,314.4375 C 301.26162,314.4375 287.46874,321.0169 287.46875,329.125 C 287.46875,329.23072 287.49534,329.33231 287.5,329.4375 C 282.65487,331.8884 279.78125,334.92483 279.78125,338.21875 C 279.78125,346.32683 297.44648,367.59375 318.875,367.59375 C 340.30352,367.59375 357.40625,346.32682 357.40625,338.21875 C 357.40625,334.77607 354.27973,331.63008 349.03125,329.125 C 349.03125,329.11446 349.0313,329.10428 349.03125,329.09375 C 348.99547,321.00017 335.2163,314.43749 318.25,314.4375 z" /> - <path - style="fill:url(#radialGradient8991);fill-opacity:1" - id="path3924" - d="M 318.42834,314.4375 C 303.24105,314.4375 290.91047,320.56027 290.91048,328.10565 C 290.91048,328.20403 290.93425,328.29857 290.93842,328.39646 C 286.60696,330.67726 284.038,333.50295 284.038,336.56827 C 284.038,344.11362 299.83039,363.90456 318.98707,363.90456 C 338.14376,363.90456 353.43328,344.11362 353.43328,336.56827 C 353.43328,333.36452 350.63823,330.43687 345.94619,328.10565 C 345.94619,328.09584 345.94623,328.08637 345.94619,328.07657 C 345.91421,320.5447 333.59589,314.43749 318.42834,314.4375 z" /> - <path - style="fill:#550000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path3926" - d="M 294.05132,354.01593 C 307.36599,369.76095 337.0072,370.0159 354.40443,342.62485 C 338.45347,356.99755 319.48216,365.53902 294.05132,354.01593 z" /> - <path - style="fill:url(#radialGradient8993);fill-opacity:1;fill-rule:evenodd" - id="path3928" - d="M 320.76534,314.59948 C 312.27548,316.59648 295.1791,322.79901 293.50338,329.35126 L 287.31924,329.55535 C 289.12411,317.43899 307.93285,314.44494 320.76534,314.59948 z" /> - <path - style="fill:url(#radialGradient8995);fill-opacity:1;fill-rule:evenodd" - id="path3930" - d="M 324.75905,353.90986 C 334.15313,349.79484 346.82934,337.43442 345.25604,328.50485 L 348.80588,330.12792 C 344.78242,342.35681 336.27221,350.73257 324.75905,353.90986 z" /> - <g - id="g3932" - transform="translate(-0.4163651,-1.1672698)"> - <path - style="fill:url(#linearGradient8997);fill-opacity:1;fill-rule:evenodd" - id="path3934" - d="M 303.21875,254.71875 C 303.21875,254.71875 309.89223,266.08819 306.84774,277.74085 C 311.50005,277.57887 313.37082,281.96078 314.81931,284.73471 L 317.59375,277 C 312.25674,265.87773 303.21875,254.71875 303.21875,254.71875 z" /> - <path - style="fill:url(#linearGradient8999);fill-opacity:1;fill-rule:evenodd" - id="path3936" - d="M 325.7701,276.40799 C 323.65892,268.1652 326.27146,262.28979 326.27146,262.28979 C 326.27146,262.28979 314.23393,278.42053 314.5979,285.59697 C 319.79451,279.64452 321.95345,278.447 325.7701,276.40799 z" /> - <path - style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path3938" - d="M 303.125,254.625 C 309.05735,263.07821 313.99391,270.21536 317,278 L 317.75,276.0625 C 313.75103,267.31147 306.92126,259.02887 303.125,254.625 z" /> - <path - style="fill:#999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path3940" - d="M 326.29146,262.15155 C 322.61088,266.72622 314.74014,277.09575 314.53648,285.75261 L 315.61414,284.45639 C 316.94182,276.57666 321.04509,270.18387 326.29146,262.15155 z" /> - </g> - <path - style="opacity:1;fill:url(#radialGradient9001);fill-opacity:1" - id="path3942" - d="M 326.02107,293.2888 C 321.17749,293.48314 316.9971,294.68774 314.07825,297.57845 C 311.23669,295.73698 307.47443,295.4091 303.51192,295.56811 C 294.85564,295.91545 288.0553,301.85966 288.33427,308.81228 C 288.34787,309.15117 288.38838,309.47822 288.43446,309.80907 C 288.81365,303.30094 295.25365,297.16827 303.48802,296.83786 C 307.08372,296.69357 310.51437,298.29989 313.22307,299.83843 L 314.5276,300.84944 C 317.43644,297.49222 322.78423,294.60605 328.08304,294.39343 C 333.65922,294.16966 337.93502,296.8998 341.0792,300.31571 C 338.16715,295.90972 332.4804,293.0296 326.02107,293.2888 z" /> - </g> - <path - style="fill:url(#radialGradient9003);fill-opacity:1" - id="path4491" - d="M 675.59159,114.34628 C 651.98657,118.31794 633.67733,135.12725 623.9113,152.61904 C 618.19942,158.16298 613.81496,164.85667 611.82591,172.34577 C 608.06179,186.51847 613.36528,200.45317 623.52566,210.72633 C 633.68606,220.99949 648.69363,228.238 666.38255,230.89228 C 684.07113,233.54649 701.52213,231.19029 715.97304,224.72405 C 730.42395,218.25778 742.26006,207.19019 746.02564,193.01205 C 749.01822,181.74436 746.07423,170.64672 739.75481,161.4887 C 734.51744,140.43802 718.97233,118.48582 692.5677,114.25163 C 686.84069,113.33326 681.09174,113.42086 675.59159,114.34628 z" /> - <g - id="g3952" - transform="matrix(0.960492,0.3835501,-0.3835501,0.960492,492.23862,-257.38924)"> - <path - style="opacity:1;fill:#000000;fill-opacity:1" - id="path3954" - transform="matrix(0.6882369,-7.5302481e-3,-1.0406728e-2,0.7876371,51.619489,30.132613)" - d="M 472.13252,390.32748 C 472.13939,418.33732 437.53354,441.04617 394.84268,441.04617 C 352.15182,441.04617 317.54597,418.33732 317.55284,390.32748 C 317.54597,362.31764 352.15182,339.60879 394.84268,339.60879 C 437.53354,339.60879 472.13939,362.31764 472.13252,390.32748 L 472.13252,390.32748 z" /> - <path - style="fill:url(#radialGradient9005);fill-opacity:1" - id="path3956" - d="M 365.74864,327.91006 C 365.74864,349.91773 345.27315,372.35905 319.01839,372.35905 C 292.76362,372.35905 270.62268,349.91773 270.62268,327.91006 C 270.62268,305.90239 289.84906,273.88467 316.10383,273.88467 C 342.35859,273.88467 365.74864,305.90239 365.74864,327.91006 z" /> - <path - style="opacity:1;fill:url(#radialGradient9007);fill-opacity:1" - id="path3958" - transform="matrix(1.0138481,0,0,0.7208741,-7.2445917,80.839045)" - d="M 321.74956,317.23438 C 321.74956,326.89185 314.54695,334.72077 305.66208,334.72077 C 296.77721,334.72077 289.5746,326.89185 289.5746,317.23438 C 289.5746,307.57691 296.77721,299.74799 305.66208,299.74799 C 314.54695,299.74799 321.74956,307.57691 321.74956,317.23438 L 321.74956,317.23438 z" /> - <path - style="opacity:1;fill:url(#radialGradient9009);fill-opacity:1" - id="path3960" - transform="matrix(1.0708886,0,0,0.7930302,1.8438299,56.686911)" - d="M 321.74956,317.23438 C 321.74956,326.89185 314.54695,334.72077 305.66208,334.72077 C 296.77721,334.72077 289.5746,326.89185 289.5746,317.23438 C 289.5746,307.57691 296.77721,299.74799 305.66208,299.74799 C 314.54695,299.74799 321.74956,307.57691 321.74956,317.23438 L 321.74956,317.23438 z" /> - <path - style="opacity:1;fill:url(#radialGradient9011);fill-opacity:1" - id="path3962" - transform="matrix(1.122449,0,0,1.2909313,-27.988686,-94.598747)" - d="M 320.62771,313.14539 C 320.62947,316.49214 317.3875,319.206 313.38773,319.206 C 309.38796,319.206 306.14599,316.49214 306.14775,313.14539 C 306.14599,309.79864 309.38796,307.08478 313.38773,307.08478 C 317.3875,307.08478 320.62947,309.79864 320.62771,313.14539 L 320.62771,313.14539 z" /> - <path - style="opacity:1;fill:url(#radialGradient9013);fill-opacity:1" - id="path3964" - transform="matrix(1.0115466,0,0,1.1015857,-6.488929,-32.560137)" - d="M 320.62771,313.14539 C 320.62947,316.49214 317.3875,319.206 313.38773,319.206 C 309.38796,319.206 306.14599,316.49214 306.14775,313.14539 C 306.14599,309.79864 309.38796,307.08478 313.38773,307.08478 C 317.3875,307.08478 320.62947,309.79864 320.62771,313.14539 L 320.62771,313.14539 z" /> - <path - style="fill:url(#linearGradient9015);fill-opacity:1" - id="path3966" - d="M 318.25,314.4375 C 301.26162,314.4375 287.46874,321.0169 287.46875,329.125 C 287.46875,329.23072 287.49534,329.33231 287.5,329.4375 C 282.65487,331.8884 279.78125,334.92483 279.78125,338.21875 C 279.78125,346.32683 297.44648,367.59375 318.875,367.59375 C 340.30352,367.59375 357.40625,346.32682 357.40625,338.21875 C 357.40625,334.77607 354.27973,331.63008 349.03125,329.125 C 349.03125,329.11446 349.0313,329.10428 349.03125,329.09375 C 348.99547,321.00017 335.2163,314.43749 318.25,314.4375 z" /> - <path - style="fill:url(#radialGradient9017);fill-opacity:1" - id="path3968" - d="M 318.42834,314.4375 C 303.24105,314.4375 290.91047,320.56027 290.91048,328.10565 C 290.91048,328.20403 290.93425,328.29857 290.93842,328.39646 C 286.60696,330.67726 284.038,333.50295 284.038,336.56827 C 284.038,344.11362 299.83039,363.90456 318.98707,363.90456 C 338.14376,363.90456 353.43328,344.11362 353.43328,336.56827 C 353.43328,333.36452 350.63823,330.43687 345.94619,328.10565 C 345.94619,328.09584 345.94623,328.08637 345.94619,328.07657 C 345.91421,320.5447 333.59589,314.43749 318.42834,314.4375 z" /> - <path - style="fill:#550000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path3970" - d="M 294.05132,354.01593 C 307.36599,369.76095 337.0072,370.0159 354.40443,342.62485 C 338.45347,356.99755 319.48216,365.53902 294.05132,354.01593 z" /> - <path - style="fill:url(#radialGradient9019);fill-opacity:1;fill-rule:evenodd" - id="path3972" - d="M 320.76534,314.59948 C 312.27548,316.59648 295.1791,322.79901 293.50338,329.35126 L 287.31924,329.55535 C 289.12411,317.43899 307.93285,314.44494 320.76534,314.59948 z" /> - <path - style="fill:url(#radialGradient9021);fill-opacity:1;fill-rule:evenodd" - id="path3974" - d="M 324.75905,353.90986 C 334.15313,349.79484 346.82934,337.43442 345.25604,328.50485 L 348.80588,330.12792 C 344.78242,342.35681 336.27221,350.73257 324.75905,353.90986 z" /> - <g - id="g3976" - transform="translate(-0.4163651,-1.1672698)"> - <path - style="fill:url(#linearGradient9023);fill-opacity:1;fill-rule:evenodd" - id="path3978" - d="M 303.21875,254.71875 C 303.21875,254.71875 309.89223,266.08819 306.84774,277.74085 C 311.50005,277.57887 313.37082,281.96078 314.81931,284.73471 L 317.59375,277 C 312.25674,265.87773 303.21875,254.71875 303.21875,254.71875 z" /> - <path - style="fill:url(#linearGradient9025);fill-opacity:1;fill-rule:evenodd" - id="path3980" - d="M 325.7701,276.40799 C 323.65892,268.1652 326.27146,262.28979 326.27146,262.28979 C 326.27146,262.28979 314.23393,278.42053 314.5979,285.59697 C 319.79451,279.64452 321.95345,278.447 325.7701,276.40799 z" /> - <path - style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path3982" - d="M 303.125,254.625 C 309.05735,263.07821 313.99391,270.21536 317,278 L 317.75,276.0625 C 313.75103,267.31147 306.92126,259.02887 303.125,254.625 z" /> - <path - style="fill:#999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path3984" - d="M 326.29146,262.15155 C 322.61088,266.72622 314.74014,277.09575 314.53648,285.75261 L 315.61414,284.45639 C 316.94182,276.57666 321.04509,270.18387 326.29146,262.15155 z" /> - </g> - <path - style="opacity:1;fill:url(#radialGradient9027);fill-opacity:1" - id="path3986" - d="M 326.02107,293.2888 C 321.17749,293.48314 316.9971,294.68774 314.07825,297.57845 C 311.23669,295.73698 307.47443,295.4091 303.51192,295.56811 C 294.85564,295.91545 288.0553,301.85966 288.33427,308.81228 C 288.34787,309.15117 288.38838,309.47822 288.43446,309.80907 C 288.81365,303.30094 295.25365,297.16827 303.48802,296.83786 C 307.08372,296.69357 310.51437,298.29989 313.22307,299.83843 L 314.5276,300.84944 C 317.43644,297.49222 322.78423,294.60605 328.08304,294.39343 C 333.65922,294.16966 337.93502,296.8998 341.0792,300.31571 C 338.16715,295.90972 332.4804,293.0296 326.02107,293.2888 z" /> - </g> - </g> - </g> - <rect - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - id="rect11318" - width="23.885832" - height="23.885832" - x="143.14807" - y="150.0831" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:5.40071535;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path11306" - sodipodi:cx="306.30148" - sodipodi:cy="255.25972" - sodipodi:rx="20.140371" - sodipodi:ry="20.140371" - d="M 326.44185,255.25972 A 20.140371,20.140371 0 1 1 286.16111,255.25972 A 20.140371,20.140371 0 1 1 326.44185,255.25972 z" - transform="matrix(0.595847,0,0,0.595847,-87.43836,9.932965)" /> - <path - transform="matrix(0.595847,0,0,0.595847,-87.43836,49.93296)" - d="M 326.44185,255.25972 A 20.140371,20.140371 0 1 1 286.16111,255.25972 A 20.140371,20.140371 0 1 1 326.44185,255.25972 z" - sodipodi:ry="20.140371" - sodipodi:rx="20.140371" - sodipodi:cy="255.25972" - sodipodi:cx="306.30148" - id="path11310" - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:5.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#000000;fill-opacity:0.78431373;fill-rule:evenodd;stroke:none;stroke-width:5.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path11312" - sodipodi:cx="306.30148" - sodipodi:cy="255.25972" - sodipodi:rx="20.140371" - sodipodi:ry="20.140371" - d="M 326.44185,255.25972 A 20.140371,20.140371 0 1 1 286.16111,255.25972 A 20.140371,20.140371 0 1 1 326.44185,255.25972 z" - transform="matrix(0.3937705,0,0,0.3937705,-25.54204,101.51495)" /> - <path - transform="matrix(0.595847,0,0,0.595847,-87.43836,89.93296)" - d="M 326.44185,255.25972 A 20.140371,20.140371 0 1 1 286.16111,255.25972 A 20.140371,20.140371 0 1 1 326.44185,255.25972 z" - sodipodi:ry="20.140371" - sodipodi:rx="20.140371" - sodipodi:cy="255.25972" - sodipodi:cx="306.30148" - id="path11314" - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:5.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:5.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path11316" - sodipodi:cx="306.30148" - sodipodi:cy="255.25972" - sodipodi:rx="20.140371" - sodipodi:ry="20.140371" - d="M 326.44185,255.25972 A 20.140371,20.140371 0 1 1 286.16111,255.25972 A 20.140371,20.140371 0 1 1 326.44185,255.25972 z" - transform="matrix(0.595847,0,0,0.595847,-87.43836,129.93296)" /> - <rect - y="190.0831" - x="143.14807" - height="23.885832" - width="23.885832" - id="rect11324" - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <rect - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - id="rect11326" - width="23.885832" - height="23.885832" - x="143.14807" - y="230.0831" /> - <rect - y="270.0831" - x="143.14807" - height="23.885832" - width="23.885832" - id="rect11328" - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <path - style="opacity:1;fill:#bea93a;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:2.91894221;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - d="M 149.93205,235.50647 L 147.8628,236.81038 C 148.51995,237.39655 149.07469,238.07228 149.64859,238.7379 C 150.24605,239.41482 150.8794,240.06596 151.43438,240.7788 C 151.97745,241.43966 152.52185,242.08221 153.10678,242.70632 C 153.09778,242.71358 153.08724,242.72758 153.07843,242.73467 C 151.75609,243.8264 150.53248,245.02322 149.30844,246.22121 C 148.74193,246.79718 149.00137,246.51232 148.51475,247.07158 L 150.69738,246.16451 C 151.15873,245.6341 150.89949,245.89872 151.43438,245.34248 C 152.14592,244.62544 152.87453,243.92975 153.61701,243.24489 C 154.24162,243.88371 154.87114,244.52574 155.51618,245.14406 C 156.02024,245.68284 156.53616,246.22717 157.04685,246.75978 C 157.61711,247.35304 158.16054,247.94144 158.71926,248.54557 L 160.76016,247.32669 C 160.16872,246.75003 159.59646,246.14282 159.03106,245.54091 C 158.60303,245.07998 158.73515,245.2187 158.35076,244.74722 C 158.20984,244.57437 158.07497,244.40258 157.92558,244.237 C 157.81372,244.11301 157.66263,243.99889 157.55708,243.8685 C 156.80118,243.23254 156.09898,242.55578 155.40279,241.85594 C 155.37588,241.8266 155.34451,241.8004 155.31776,241.77091 C 156.64449,240.71397 158.026,239.70696 159.45625,238.79459 C 159.6446,238.67214 159.59401,238.70065 159.71136,238.62452 C 159.697,238.63029 159.63919,238.6468 159.62633,238.65286 C 159.97713,238.45215 160.01852,238.42527 159.71136,238.62452 C 159.77318,238.59971 159.84076,238.59834 160.07986,238.51113 C 160.19526,238.46905 160.30469,238.41168 160.42001,238.36941 L 162.31918,236.86708 C 162.0602,236.99868 161.79026,237.09005 161.5255,237.20723 C 161.25404,237.32736 160.75146,237.57495 160.50505,237.71745 C 157.93364,239.20445 158.71726,238.70461 157.33031,239.64497 C 157.10037,239.79193 156.87581,239.91684 156.65001,240.07016 C 156.41208,240.23171 156.17663,240.415 155.94137,240.58038 C 155.57613,240.83713 155.25299,241.05562 154.92091,241.28903 C 154.42904,240.71929 153.95583,240.13947 153.47528,239.55993 C 153.21115,239.2344 152.93769,238.90408 152.65325,238.59617 C 152.32463,238.24044 151.96544,237.89827 151.66114,237.51903 C 151.09482,236.83721 150.51484,236.17332 149.93205,235.50647 z" - id="path11332" /> - <rect - y="139.28067" - x="470.17419" - height="32.786705" - width="229.79263" - id="rect11337" - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <rect - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - id="rect11339" - width="229.79263" - height="32.786705" - x="470.17419" - y="184.45667" /> - <rect - style="opacity:1;fill:url(#linearGradient11353);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - id="rect11345" - width="121.05184" - height="40.350613" - x="577.34821" - y="224.05698" /> - <rect - y="123.75543" - x="203.24265" - height="32.786705" - width="229.79263" - id="rect11355" - style="fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <rect - y="123.72931" - x="398.92752" - height="33.007782" - width="33.567081" - id="rect11357" - style="fill:url(#linearGradient11472);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <path - id="path11368" - d="M 408.30508,135.14124 L 405.49841,137.07572 C 406.44715,137.85427 407.25841,138.76341 408.09578,139.65737 C 408.9666,140.56572 409.88592,141.43611 410.69965,142.39691 C 411.49381,143.28602 412.28877,144.14955 413.13912,144.98508 C 413.127,144.9957 413.11312,145.01581 413.10126,145.02618 C 413.06782,145.08514 413.88088,145.6505 413.88053,145.70578 C 413.84882,145.66577 416.68745,144.1791 416.28758,143.66915 C 416.24842,143.62984 416.20323,143.59516 416.16429,143.55563 C 417.95116,142.00768 419.81716,140.52612 421.75648,139.17355 C 422.01173,138.99222 421.94292,139.03482 422.10197,138.92208 C 422.0823,138.93094 422.00274,138.95724 421.98518,138.96642 C 422.46216,138.6668 422.51826,138.62699 422.10197,138.92208 C 422.18663,138.88398 422.28065,138.87819 422.60861,138.74304 C 422.76689,138.67782 422.91598,138.59164 423.07414,138.52617 L 425.63258,136.32516 C 425.2795,136.52327 424.90884,136.66599 424.54688,136.84437 C 424.17575,137.02723 423.4901,137.40084 423.15515,137.61342 C 419.65972,139.83166 420.72225,139.09065 418.84484,140.47971 C 418.53307,140.69755 418.22753,140.88438 417.9219,141.11083 C 417.59985,141.34945 417.28249,141.6182 416.96437,141.86199 C 416.4705,142.24049 416.03305,142.56328 415.58402,142.90737 C 414.86638,142.14221 414.17416,141.36194 413.47172,140.58249 C 413.08523,140.14434 412.68547,139.70005 412.27172,139.2876 C 411.7937,138.81109 411.27388,138.35522 410.82837,137.84458 C 410.00063,136.92762 409.15489,136.03642 408.30508,135.14124 z" - style="fill:#bea93a;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:4.0681591;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - sodipodi:nodetypes="ccscsccccsssssccsscsscsssc" /> - <rect - style="fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - id="rect11414" - width="229.79263" - height="32.786705" - x="203.24265" - y="156.9422" /> - <rect - y="188.9422" - x="203.24265" - height="32.786705" - width="229.79263" - id="rect11416" - style="fill:#ffffff;fill-opacity:0.70588235;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <rect - style="fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - id="rect11418" - width="229.79263" - height="32.786705" - x="203.24265" - y="220.9422" /> - <rect - y="252.9422" - x="203.24265" - height="32.786705" - width="229.79263" - id="rect11420" - style="fill:#ffffff;fill-opacity:0.70588235;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <rect - style="fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - id="rect11422" - width="229.79263" - height="32.786705" - x="203.24265" - y="284.9422" /> - <path - style="fill:none;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - d="M 203.25083,156.95359 L 203.25083,189.73484 L 203.25083,221.73484 L 203.25083,253.73484 L 203.25083,284.95359 L 203.25083,285.73484 L 203.25083,317.73484 L 433.03208,317.73484 L 433.03208,285.73484 L 433.03208,284.95359 L 433.03208,252.95359 L 433.03208,220.95359 L 433.03208,188.95359 L 433.03208,156.95359 L 203.25083,156.95359 z" - id="rect11424" /> - <rect - y="274.05698" - x="577.34821" - height="40.350613" - width="121.05184" - id="rect11439" - style="opacity:1;fill:url(#linearGradient11441);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <rect - style="opacity:1;fill:none;fill-opacity:0.62745098;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - id="rect14270" - width="989.19702" - height="720.65228" - x="21.133686" - y="12.614386" /> - <text - xml:space="preserve" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - x="41.204948" - y="43.935749" - id="text3960" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="41.204948" - y="43.935749" - id="tspan3962">menuframe.svg</tspan><tspan - sodipodi:role="line" - x="41.204948" - y="61.435749" - id="tspan3964">X 2%</tspan><tspan - sodipodi:role="line" - x="41.204948" - y="78.935745" - id="tspan3966">Y 2%</tspan><tspan - sodipodi:role="line" - x="41.204948" - y="96.435745" - id="tspan3968">W 96.6%</tspan><tspan - sodipodi:role="line" - x="41.204948" - y="113.93575" - id="tspan3970">H 94%</tspan></text> - <text - sodipodi:linespacing="125%" - id="text15456" - y="49.935745" - x="801.20496" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - xml:space="preserve"><tspan - id="tspan15458" - y="49.935745" - x="801.20496" - sodipodi:role="line">logo.svg</tspan><tspan - id="tspan15460" - y="67.435745" - x="801.20496" - sodipodi:role="line">X 77%</tspan><tspan - id="tspan15462" - y="84.935745" - x="801.20496" - sodipodi:role="line">Y 2.7%</tspan><tspan - id="tspan15464" - y="102.43575" - x="801.20496" - sodipodi:role="line">W 19.5%</tspan><tspan - id="tspan15466" - y="119.93575" - x="801.20496" - sodipodi:role="line">H 17%</tspan></text> - <rect - style="opacity:1;fill:none;fill-opacity:0.62745098;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" - id="rect15468" - width="199.00952" - height="132.19144" - x="789.17566" - y="18.554001" /> - <text - sodipodi:linespacing="125%" - id="text15470" - y="347.54547" - x="86.82357" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - xml:space="preserve"><tspan - id="tspan15480" - y="347.54547" - x="86.82357" - sodipodi:role="line">widget_radiobutton_off.svg</tspan></text> - <text - xml:space="preserve" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - x="166.82358" - y="331.54547" - id="text15490" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="166.82358" - y="331.54547" - id="tspan15492">widget_checkbox_off.svg</tspan></text> - <path - style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 89.897975,337.40913 L 92.451895,281.2229" - id="path15494" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 169.06949,320.04248 L 156.29989,282.75525" - id="path15496" /> - <text - xml:space="preserve" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - x="-355.09702" - y="59.405403" - id="text15498" - sodipodi:linespacing="125%" - transform="matrix(0,-1,1,0,0,0)"><tspan - sodipodi:role="line" - x="-355.09702" - y="59.405403" - id="tspan15500">widget_radiobutton_on.svg</tspan></text> - <text - sodipodi:linespacing="125%" - id="text15502" - y="186.53432" - x="-254.44366" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - xml:space="preserve" - transform="matrix(0,-1,1,0,0,0)"><tspan - id="tspan15504" - y="186.53432" - x="-254.44366" - sodipodi:role="line">widget_checkbox_on.svg</tspan></text> - <path - style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 175.19889,250.06508 L 157.83224,248.02194" - id="path15506" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 66.401913,200.51903 L 95.516599,200.00825" - id="path15508" /> - <text - sodipodi:linespacing="125%" - id="text15510" - y="141.54547" - x="218.82358" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - xml:space="preserve"><tspan - id="tspan15512" - y="141.54547" - x="218.82358" - sodipodi:role="line">widget_combobox.svg</tspan></text> - <text - xml:space="preserve" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - x="498.82358" - y="161.54547" - id="text15514" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="498.82358" - y="161.54547" - id="tspan15516">widget_input.svg</tspan></text> - <text - sodipodi:linespacing="125%" - id="text15518" - y="241.54547" - x="584.82361" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - xml:space="preserve"><tspan - id="tspan15520" - y="241.54547" - x="584.82361" - sodipodi:role="line">widget_button.svg</tspan></text> - <text - xml:space="preserve" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - x="556.82361" - y="377.54547" - id="text15522" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="556.82361" - y="377.54547" - id="tspan15524">widget_table_header.svg</tspan></text> - <text - sodipodi:linespacing="125%" - id="text15526" - y="409.54547" - x="556.82361" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - xml:space="preserve"><tspan - id="tspan15528" - y="409.54547" - x="556.82361" - sodipodi:role="line">widget_table_oddline.svg</tspan></text> - <text - xml:space="preserve" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - x="556.82361" - y="439.54547" - id="text15530" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="556.82361" - y="439.54547" - id="tspan15532">widget_table_evenline.svg</tspan></text> - <text - xml:space="preserve" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - x="216.82361" - y="175.54547" - id="text15534" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="216.82361" - y="175.54547" - id="tspan15536">widget_table_oddline.svg</tspan></text> - <text - sodipodi:linespacing="125%" - id="text15538" - y="205.54547" - x="216.82361" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - xml:space="preserve"><tspan - id="tspan15540" - y="205.54547" - x="216.82361" - sodipodi:role="line">widget_table_evenline.svg</tspan></text> -</svg> diff --git a/data/images/interface/doc/splash.svg b/data/images/interface/doc/splash.svg deleted file mode 100644 index 45b37dc..0000000 --- a/data/images/interface/doc/splash.svg +++ /dev/null @@ -1,2213 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.0" - width="1024" - height="768" - id="svg2" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docname="splash.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <metadata - id="metadata2645"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <sodipodi:namedview - inkscape:window-height="1070" - inkscape:window-width="1544" - inkscape:pageshadow="2" - inkscape:pageopacity="0.0" - guidetolerance="10.0" - gridtolerance="10.0" - objecttolerance="10.0" - borderopacity="1.0" - bordercolor="#666666" - pagecolor="#ffffff" - id="base" - showgrid="false" - inkscape:zoom="0.59581822" - inkscape:cx="573.64217" - inkscape:cy="369.86474" - inkscape:window-x="19" - inkscape:window-y="21" - inkscape:current-layer="svg2" /> - <defs - id="defs4"> - <marker - inkscape:stockid="Arrow2Lend" - orient="auto" - refY="0.0" - refX="0.0" - id="Arrow2Lend" - style="overflow:visible;"> - <path - id="path3909" - style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " - transform="scale(1.1) rotate(180) translate(1,0)" /> - </marker> - <marker - inkscape:stockid="Arrow1Lstart" - orient="auto" - refY="0.0" - refX="0.0" - id="Arrow1Lstart" - style="overflow:visible"> - <path - id="path4147" - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" - transform="scale(0.8) translate(12.5,0)" /> - </marker> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 384 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="1024 : 384 : 1" - inkscape:persp3d-origin="512 : 256 : 1" - id="perspective2647" /> - <linearGradient - id="linearGradient7825"> - <stop - id="stop7827" - style="stop-color:#57663b;stop-opacity:1" - offset="0" /> - <stop - id="stop7829" - style="stop-color:#303a26;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient7798"> - <stop - id="stop7800" - style="stop-color:#666666;stop-opacity:1" - offset="0" /> - <stop - id="stop7802" - style="stop-color:#000000;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient7756"> - <stop - id="stop7758" - style="stop-color:#7fa43c;stop-opacity:1" - offset="0" /> - <stop - id="stop7760" - style="stop-color:#303a26;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient7618"> - <stop - id="stop7620" - style="stop-color:#000000;stop-opacity:1" - offset="0" /> - <stop - id="stop7622" - style="stop-color:#ab8858;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient7610"> - <stop - id="stop7612" - style="stop-color:#355a14;stop-opacity:1" - offset="0" /> - <stop - id="stop7614" - style="stop-color:#183300;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient6103"> - <stop - id="stop6105" - style="stop-color:#ffffff;stop-opacity:0.39072847" - offset="0" /> - <stop - id="stop6107" - style="stop-color:#ffffff;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4785"> - <stop - id="stop4787" - style="stop-color:#a6c0e0;stop-opacity:1" - offset="0" /> - <stop - id="stop4789" - style="stop-color:#35526f;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient2389"> - <stop - id="stop2391" - style="stop-color:#1c1c1c;stop-opacity:1" - offset="0" /> - <stop - id="stop2393" - style="stop-color:#41372b;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3260"> - <stop - id="stop3262" - style="stop-color:#666666;stop-opacity:1" - offset="0" /> - <stop - id="stop3264" - style="stop-color:#000000;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3346"> - <stop - id="stop3348" - style="stop-color:#000000;stop-opacity:1" - offset="0" /> - <stop - id="stop3350" - style="stop-color:#ffffff;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3278"> - <stop - id="stop3280" - style="stop-color:#ffcc00;stop-opacity:1" - offset="0" /> - <stop - id="stop3282" - style="stop-color:#cc7a00;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient2454"> - <stop - id="stop2456" - style="stop-color:#ffcc00;stop-opacity:1" - offset="0" /> - <stop - id="stop2458" - style="stop-color:#ffcc00;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3382"> - <stop - id="stop3384" - style="stop-color:#ffffff;stop-opacity:0.55000001" - offset="0" /> - <stop - id="stop3386" - style="stop-color:#ffdd55;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3412"> - <stop - id="stop3414" - style="stop-color:#ffffff;stop-opacity:0.19285715" - offset="0" /> - <stop - id="stop3416" - style="stop-color:#ffdd55;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3444"> - <stop - id="stop3446" - style="stop-color:#7a7a7a;stop-opacity:1" - offset="0" /> - <stop - id="stop3448" - style="stop-color:#2a2a2a;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3490"> - <stop - id="stop3492" - style="stop-color:#808080;stop-opacity:1" - offset="0" /> - <stop - id="stop3494" - style="stop-color:#808080;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4483"> - <stop - id="stop4485" - style="stop-color:#000000;stop-opacity:1" - offset="0" /> - <stop - id="stop4487" - style="stop-color:#000000;stop-opacity:0" - offset="1" /> - </linearGradient> - <radialGradient - cx="309.25818" - cy="253.70972" - r="26.521585" - fx="309.25818" - fy="253.70972" - id="radialGradient4237" - xlink:href="#linearGradient3490" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" /> - <linearGradient - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" - id="linearGradient4235" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" /> - <linearGradient - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" - id="linearGradient4233" - xlink:href="#linearGradient3444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4231" - xlink:href="#linearGradient3412" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4229" - xlink:href="#linearGradient3382" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" /> - <radialGradient - cx="314.18878" - cy="307.83929" - r="34.697639" - fx="314.18878" - fy="307.83929" - id="radialGradient4227" - xlink:href="#linearGradient2454" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" /> - <linearGradient - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" - id="linearGradient4225" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4223" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4221" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="300.21915" - cy="330.18991" - r="16.087479" - fx="300.21915" - fy="330.18991" - id="radialGradient4219" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" /> - <radialGradient - cx="306.686" - cy="329.11215" - r="16.087479" - fx="306.686" - fy="329.11215" - id="radialGradient4217" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" /> - <radialGradient - cx="268.75073" - cy="281.56763" - r="47.562981" - fx="268.75073" - fy="281.56763" - id="radialGradient4215" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" /> - <radialGradient - cx="309.25818" - cy="253.70972" - r="26.521585" - fx="309.25818" - fy="253.70972" - id="radialGradient4213" - xlink:href="#linearGradient3490" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" /> - <linearGradient - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" - id="linearGradient4211" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" /> - <linearGradient - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" - id="linearGradient4209" - xlink:href="#linearGradient3444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4207" - xlink:href="#linearGradient3412" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4205" - xlink:href="#linearGradient3382" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" /> - <radialGradient - cx="314.18878" - cy="307.83929" - r="34.697639" - fx="314.18878" - fy="307.83929" - id="radialGradient4203" - xlink:href="#linearGradient2454" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" /> - <linearGradient - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" - id="linearGradient4201" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4199" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4197" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="300.21915" - cy="330.18991" - r="16.087479" - fx="300.21915" - fy="330.18991" - id="radialGradient4195" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" /> - <radialGradient - cx="306.686" - cy="329.11215" - r="16.087479" - fx="306.686" - fy="329.11215" - id="radialGradient4193" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" /> - <radialGradient - cx="268.75073" - cy="281.56763" - r="47.562981" - fx="268.75073" - fy="281.56763" - id="radialGradient4191" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" /> - <radialGradient - cx="309.25818" - cy="253.70972" - r="26.521585" - fx="309.25818" - fy="253.70972" - id="radialGradient4189" - xlink:href="#linearGradient3490" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" /> - <linearGradient - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" - id="linearGradient4187" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" /> - <linearGradient - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" - id="linearGradient4185" - xlink:href="#linearGradient3444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4183" - xlink:href="#linearGradient3412" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4181" - xlink:href="#linearGradient3382" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" /> - <radialGradient - cx="314.18878" - cy="307.83929" - r="34.697639" - fx="314.18878" - fy="307.83929" - id="radialGradient4179" - xlink:href="#linearGradient2454" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" /> - <linearGradient - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" - id="linearGradient4177" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4175" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4173" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="300.21915" - cy="330.18991" - r="16.087479" - fx="300.21915" - fy="330.18991" - id="radialGradient4171" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" /> - <radialGradient - cx="306.686" - cy="329.11215" - r="16.087479" - fx="306.686" - fy="329.11215" - id="radialGradient4169" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" /> - <radialGradient - cx="268.75073" - cy="281.56763" - r="47.562981" - fx="268.75073" - fy="281.56763" - id="radialGradient4167" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" /> - <linearGradient - x1="380.58182" - y1="575.62482" - x2="380.58182" - y2="499.3468" - id="linearGradient3813" - xlink:href="#linearGradient2384" - gradientUnits="userSpaceOnUse" /> - <linearGradient - id="linearGradient2384"> - <stop - id="stop2386" - style="stop-color:#7f7f7f;stop-opacity:1" - offset="0" /> - <stop - id="stop2388" - style="stop-color:#ffffff;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4154"> - <stop - id="stop4156" - style="stop-color:#ffcc00;stop-opacity:1" - offset="0" /> - <stop - id="stop4158" - style="stop-color:#ffcc00;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient3240"> - <stop - id="stop3242" - style="stop-color:#ffffff;stop-opacity:1" - offset="0" /> - <stop - id="stop3244" - style="stop-color:#b3b3b3;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4145"> - <stop - id="stop4147" - style="stop-color:#666666;stop-opacity:1" - offset="0" /> - <stop - id="stop4149" - style="stop-color:#000000;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4139"> - <stop - id="stop4141" - style="stop-color:#ffcc00;stop-opacity:1" - offset="0" /> - <stop - id="stop4143" - style="stop-color:#cc7a00;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4133"> - <stop - id="stop4135" - style="stop-color:#000000;stop-opacity:1" - offset="0" /> - <stop - id="stop4137" - style="stop-color:#ffffff;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4127"> - <stop - id="stop4129" - style="stop-color:#ffffff;stop-opacity:0.55000001" - offset="0" /> - <stop - id="stop4131" - style="stop-color:#ffdd55;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4121"> - <stop - id="stop4123" - style="stop-color:#ffffff;stop-opacity:0.19285715" - offset="0" /> - <stop - id="stop4125" - style="stop-color:#ffdd55;stop-opacity:0" - offset="1" /> - </linearGradient> - <linearGradient - id="linearGradient4115"> - <stop - id="stop4117" - style="stop-color:#7a7a7a;stop-opacity:1" - offset="0" /> - <stop - id="stop4119" - style="stop-color:#2a2a2a;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="392.90366" - y1="474.98315" - x2="392.77127" - y2="542.93073" - id="linearGradient4593" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(292.29878,-242.96749)" /> - <radialGradient - cx="268.75073" - cy="281.56763" - r="47.562981" - fx="268.75073" - fy="281.56763" - id="radialGradient4595" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" /> - <radialGradient - cx="306.686" - cy="329.11215" - r="16.087479" - fx="306.686" - fy="329.11215" - id="radialGradient4597" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" /> - <radialGradient - cx="300.21915" - cy="330.18991" - r="16.087479" - fx="300.21915" - fy="330.18991" - id="radialGradient4599" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4601" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4603" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <linearGradient - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" - id="linearGradient4605" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="314.18878" - cy="307.83929" - r="34.697639" - fx="314.18878" - fy="307.83929" - id="radialGradient4607" - xlink:href="#linearGradient2454" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4609" - xlink:href="#linearGradient3382" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4611" - xlink:href="#linearGradient3412" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" /> - <linearGradient - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" - id="linearGradient4613" - xlink:href="#linearGradient3444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" /> - <linearGradient - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" - id="linearGradient4615" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="309.25818" - cy="253.70972" - r="26.521585" - fx="309.25818" - fy="253.70972" - id="radialGradient4617" - xlink:href="#linearGradient3490" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" /> - <radialGradient - cx="559.03674" - cy="482.57309" - r="65.12442" - fx="559.03674" - fy="482.57309" - id="radialGradient4619" - xlink:href="#linearGradient4483" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.3066153,4.3845595e-2,-0.1162824,0.5601066,593.41239,-100.65496)" /> - <radialGradient - cx="268.75073" - cy="281.56763" - r="47.562981" - fx="268.75073" - fy="281.56763" - id="radialGradient4621" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" /> - <radialGradient - cx="306.686" - cy="329.11215" - r="16.087479" - fx="306.686" - fy="329.11215" - id="radialGradient4623" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" /> - <radialGradient - cx="300.21915" - cy="330.18991" - r="16.087479" - fx="300.21915" - fy="330.18991" - id="radialGradient4625" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4627" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4629" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <linearGradient - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" - id="linearGradient4631" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="314.18878" - cy="307.83929" - r="34.697639" - fx="314.18878" - fy="307.83929" - id="radialGradient4633" - xlink:href="#linearGradient2454" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4635" - xlink:href="#linearGradient3382" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4637" - xlink:href="#linearGradient3412" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" /> - <linearGradient - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" - id="linearGradient4639" - xlink:href="#linearGradient3444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" /> - <linearGradient - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" - id="linearGradient4641" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="309.25818" - cy="253.70972" - r="26.521585" - fx="309.25818" - fy="253.70972" - id="radialGradient4643" - xlink:href="#linearGradient3490" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" /> - <radialGradient - cx="301.08719" - cy="515.88568" - r="65.12442" - fx="301.08719" - fy="515.88568" - id="radialGradient4645" - xlink:href="#linearGradient4483" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.2703757,-0.2226346,0.262486,0.4036686,420.78034,51.424117)" /> - <radialGradient - cx="268.75073" - cy="281.56763" - r="47.562981" - fx="268.75073" - fy="281.56763" - id="radialGradient4647" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" /> - <radialGradient - cx="306.686" - cy="329.11215" - r="16.087479" - fx="306.686" - fy="329.11215" - id="radialGradient4649" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" /> - <radialGradient - cx="300.21915" - cy="330.18991" - r="16.087479" - fx="300.21915" - fy="330.18991" - id="radialGradient4651" - xlink:href="#linearGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4653" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <radialGradient - cx="310.80884" - cy="309.07062" - r="7.2399807" - fx="310.80884" - fy="309.07062" - id="radialGradient4655" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" /> - <linearGradient - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" - id="linearGradient4657" - xlink:href="#linearGradient3278" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="314.18878" - cy="307.83929" - r="34.697639" - fx="314.18878" - fy="307.83929" - id="radialGradient4659" - xlink:href="#linearGradient2454" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4661" - xlink:href="#linearGradient3382" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" /> - <radialGradient - cx="314.9783" - cy="383.21033" - r="25.671762" - fx="314.9783" - fy="383.21033" - id="radialGradient4663" - xlink:href="#linearGradient3412" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" /> - <linearGradient - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" - id="linearGradient4665" - xlink:href="#linearGradient3444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" /> - <linearGradient - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" - id="linearGradient4667" - xlink:href="#linearGradient3260" - gradientUnits="userSpaceOnUse" /> - <radialGradient - cx="309.25818" - cy="253.70972" - r="26.521585" - fx="309.25818" - fy="253.70972" - id="radialGradient4669" - xlink:href="#linearGradient3490" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" /> - <linearGradient - x1="513.15747" - y1="56.695404" - x2="513.15747" - y2="887.60516" - id="linearGradient4791" - xlink:href="#linearGradient4785" - gradientUnits="userSpaceOnUse" /> - <filter - height="1.3209751" - y="-0.16048753" - width="1.2181267" - x="-0.10906329" - id="filter7556"> - <feGaussianBlur - id="feGaussianBlur7558" - stdDeviation="3.7122331" - inkscape:collect="always" /> - </filter> - <linearGradient - x1="538.11664" - y1="707.9931" - x2="538.11664" - y2="789.8609" - id="linearGradient7624" - xlink:href="#linearGradient7618" - gradientUnits="userSpaceOnUse" /> - <filter - height="1.3726645" - y="-0.18633226" - width="1.1248273" - x="-0.062413666" - id="filter7738"> - <feGaussianBlur - id="feGaussianBlur7740" - stdDeviation="1.0592616" - inkscape:collect="always" /> - </filter> - <linearGradient - x1="688.78198" - y1="535.625" - x2="703.93427" - y2="746.07819" - id="linearGradient7742" - xlink:href="#linearGradient7756" - gradientUnits="userSpaceOnUse" /> - <linearGradient - x1="368.57141" - y1="79.610039" - x2="368.57141" - y2="731.86987" - id="linearGradient7823" - xlink:href="#linearGradient7825" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient2781" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(292.29878,-242.96749)" - x1="392.90366" - y1="474.98315" - x2="392.77127" - y2="542.93073" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient2783" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - cx="268.75073" - cy="281.56763" - fx="268.75073" - fy="281.56763" - r="47.562981" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient2785" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - cx="306.686" - cy="329.11215" - fx="306.686" - fy="329.11215" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient2787" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - cx="300.21915" - cy="330.18991" - fx="300.21915" - fy="330.18991" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient2789" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient2791" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient2793" - gradientUnits="userSpaceOnUse" - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2454" - id="radialGradient2795" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - cx="314.18878" - cy="307.83929" - fx="314.18878" - fy="307.83929" - r="34.697639" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3382" - id="radialGradient2797" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3412" - id="radialGradient2799" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3444" - id="linearGradient2801" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="linearGradient2803" - gradientUnits="userSpaceOnUse" - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3490" - id="radialGradient2805" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - cx="309.25818" - cy="253.70972" - fx="309.25818" - fy="253.70972" - r="26.521585" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4483" - id="radialGradient2807" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.3066153,4.3845595e-2,-0.1162824,0.5601066,593.41239,-100.65496)" - cx="559.03674" - cy="482.57309" - fx="559.03674" - fy="482.57309" - r="65.12442" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient2809" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - cx="268.75073" - cy="281.56763" - fx="268.75073" - fy="281.56763" - r="47.562981" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient2811" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - cx="306.686" - cy="329.11215" - fx="306.686" - fy="329.11215" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient2813" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - cx="300.21915" - cy="330.18991" - fx="300.21915" - fy="330.18991" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient2815" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient2817" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient2819" - gradientUnits="userSpaceOnUse" - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2454" - id="radialGradient2821" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - cx="314.18878" - cy="307.83929" - fx="314.18878" - fy="307.83929" - r="34.697639" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3382" - id="radialGradient2823" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3412" - id="radialGradient2825" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3444" - id="linearGradient2827" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="linearGradient2829" - gradientUnits="userSpaceOnUse" - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3490" - id="radialGradient2831" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - cx="309.25818" - cy="253.70972" - fx="309.25818" - fy="253.70972" - r="26.521585" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4483" - id="radialGradient2833" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.2703757,-0.2226346,0.262486,0.4036686,420.78034,51.424117)" - cx="301.08719" - cy="515.88568" - fx="301.08719" - fy="515.88568" - r="65.12442" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient2835" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - cx="268.75073" - cy="281.56763" - fx="268.75073" - fy="281.56763" - r="47.562981" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient2837" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - cx="306.686" - cy="329.11215" - fx="306.686" - fy="329.11215" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient2839" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - cx="300.21915" - cy="330.18991" - fx="300.21915" - fy="330.18991" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient2841" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient2843" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient2845" - gradientUnits="userSpaceOnUse" - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2454" - id="radialGradient2847" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - cx="314.18878" - cy="307.83929" - fx="314.18878" - fy="307.83929" - r="34.697639" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3382" - id="radialGradient2849" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3412" - id="radialGradient2851" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3444" - id="linearGradient2853" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="linearGradient2855" - gradientUnits="userSpaceOnUse" - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3490" - id="radialGradient2857" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - cx="309.25818" - cy="253.70972" - fx="309.25818" - fy="253.70972" - r="26.521585" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7825" - id="linearGradient2887" - gradientUnits="userSpaceOnUse" - x1="368.57141" - y1="79.610039" - x2="368.57141" - y2="731.86987" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7618" - id="linearGradient2889" - gradientUnits="userSpaceOnUse" - x1="538.11664" - y1="707.9931" - x2="538.11664" - y2="789.8609" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7756" - id="linearGradient2891" - gradientUnits="userSpaceOnUse" - x1="688.78198" - y1="535.625" - x2="703.93427" - y2="746.07819" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4785" - id="linearGradient2895" - gradientUnits="userSpaceOnUse" - x1="513.15747" - y1="56.695404" - x2="513.15747" - y2="887.60516" /> - </defs> - <g - id="g8470"> - <g - id="g2901"> - <rect - style="fill:url(#linearGradient2895);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4783" - y="0" - x="0" - height="768" - width="1024" /> - <path - style="fill:#ffffff;fill-opacity:0.07843137;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" - d="M 0,0 L 0,23.5 L 446.75,225.0625 L 133.5625,0 L 0,0 z M 204.15625,0 L 457.78125,207.46875 L 288.0625,0 L 204.15625,0 z M 330.125,0 L 471.28125,196.4375 L 382.65625,0 L 330.125,0 z M 422.25,0 L 493.34375,188.09375 L 462.59375,0 L 422.25,0 z M 497.71875,0 L 516.4375,187.1875 L 535.15625,0 L 497.71875,0 z M 564.75,0 L 533.875,188.78125 L 605.21875,0 L 564.75,0 z M 644.84375,0 L 555.21875,198.5625 L 697.96875,0 L 644.84375,0 z M 744.5,0 L 572.8125,209.78125 L 829.125,0 L 744.5,0 z M 894.625,0 L 584,223.28125 L 1024,24.6875 L 1024,0 L 894.625,0 z M 0,81.28125 L 0,175.125 L 436.96875,246.59375 L 0,81.28125 z M 1024,81.96875 L 592.1875,245.34375 L 1024,174.71875 L 1024,81.96875 z M 0,220.46875 L 0,307.53125 L 435.1875,264 L 0,220.46875 z M 1024,222.75 L 590.0625,266.125 L 1024,309.53125 L 1024,222.75 z M 588.46875,283.5625 L 1024,448.1875 L 1024,354.8125 L 588.46875,283.5625 z M 433.0625,284.8125 L 0,355.625 L 0,448.5 L 433.0625,284.8125 z M 578.6875,304.90625 L 1024,625.21875 L 1024,505.90625 L 578.6875,304.90625 z M 441.40625,306.84375 L 0,506.03125 L 0,624.03125 L 441.40625,306.84375 z M 452.4375,320.375 L 0,680.71875 L 0,768 L 82.90625,768 L 452.4375,320.375 z M 567.46875,322.6875 L 930.625,768 L 1024,768 L 1024,686.21875 L 567.46875,322.6875 z M 470.03125,331.5625 L 156.28125,768 L 273.03125,768 L 470.03125,331.5625 z M 553.96875,333.6875 L 750,768 L 866.15625,768 L 553.96875,333.6875 z M 491.5625,341.15625 L 330.0625,768 L 421.75,768 L 491.5625,341.15625 z M 531.90625,342.0625 L 601.59375,768 L 692.90625,768 L 531.90625,342.0625 z M 508.96875,342.9375 L 466.46875,768 L 551.46875,768 L 508.96875,342.9375 z" - id="rect5744" /> - </g> - <rect - y="-0.34119719" - x="0" - height="769.33215" - width="1023.9578" - id="rect3904" - style="opacity:1;fill:none;fill-opacity:0.07843137;fill-rule:evenodd;stroke:#ff0f0f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - sodipodi:linespacing="125%" - id="text3948" - y="365.84381" - x="44.383423" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - xml:space="preserve"><tspan - id="tspan3950" - y="365.84381" - x="44.383423" - sodipodi:role="line">sky.svg</tspan><tspan - id="tspan3952" - y="383.34381" - x="44.383423" - sodipodi:role="line">X 0</tspan><tspan - id="tspan3954" - y="400.84381" - x="44.383423" - sodipodi:role="line">Y 0</tspan><tspan - id="tspan3956" - y="418.34381" - x="44.383423" - sodipodi:role="line">W 100%</tspan><tspan - id="tspan3958" - y="435.84381" - x="44.383423" - sodipodi:role="line">H 100%</tspan></text> - </g> - <g - id="g8410"> - <g - id="g7748"> - <path - d="M 291.13106,51.258577 C 271.54487,51.198747 252.32343,60.986967 240.51204,76.550947 C 224.45784,69.358327 209.17634,86.314797 196.17547,83.194037 C 178.2677,75.860407 156.50692,79.801927 141.94898,92.429407 C 125.58234,96.027517 109.14604,95.006917 92.902282,99.123037 C 73.256811,106.43705 62.569488,130.41983 71.406463,149.70472 C 73.486006,159.63403 54.971975,168.32935 56.585906,182.08679 C 52.428734,202.89454 67.078377,223.52543 87.09456,229.02532 C 87.04556,251.48261 110.96301,271.17819 132.98091,265.00049 C 148.62531,282.58851 179.22557,284.76464 196.92343,268.56715 C 215.8439,271.08447 228.19102,251.51491 241.73848,247.11102 C 258.58838,251.25702 272.26957,230.84611 286.28212,244.37039 C 302.24312,250.16638 318.10689,244.3073 331.42033,256.42572 C 356.20864,265.98879 388.86335,253.30091 396.048,226.53964 C 403.70706,214.57801 420.66981,208.51619 422.72723,192.03668 C 427.23847,176.98406 422.12724,159.95367 410.09948,149.83879 C 417.6269,129.61119 399.84724,113.46795 389.2749,101.1886 C 383.51047,78.843447 358.56285,63.149767 335.95427,68.628857 C 324.06112,57.255507 307.55942,50.968257 291.13106,51.258577 z" - id="path4718" - style="opacity:1;fill:#000000;fill-opacity:0.33333333;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 286.86267,57.295317 C 266.70848,57.295317 249.07045,68.102747 239.41591,84.233827 C 235.18277,82.536807 230.56954,81.593137 225.73231,81.593137 C 214.49326,81.593137 204.42157,86.648067 197.66208,94.590837 C 190.50893,88.918287 181.46405,85.519887 171.63238,85.519887 C 159.14562,85.519887 147.93748,90.997827 140.2527,99.666457 C 137.85685,98.883297 135.29563,98.448997 132.63927,98.448997 C 125.90442,98.448997 119.80155,101.17863 115.37187,105.5823 C 111.38074,103.53383 106.85739,102.37575 102.06551,102.37575 C 85.947382,102.37575 72.863552,115.45958 72.863552,131.57771 C 72.863552,140.68835 77.052846,148.82176 83.597803,154.17794 C 70.166867,158.03105 60.328826,170.41342 60.328828,185.07749 C 60.328828,202.81825 74.722229,217.21165 92.462991,217.21165 C 92.554402,217.21165 92.64612,217.21242 92.737349,217.21165 C 92.058001,219.64544 91.69136,222.20984 91.69136,224.85938 C 91.69136,240.54481 104.41911,253.27257 120.10454,253.27256 C 124.25462,253.27256 128.19233,252.37032 131.7476,250.76905 C 138.20213,260.53073 149.27078,266.99046 161.84123,266.99046 C 172.24455,266.99046 181.61342,262.57383 188.19673,255.51887 C 189.0734,255.57695 189.94613,255.62175 190.83742,255.62175 C 207.09771,255.62175 221.06564,245.7989 227.15555,231.76977 C 231.37407,233.48958 235.98761,234.4619 240.822,234.4619 C 252.12315,234.4619 262.20742,229.26857 268.85794,221.15555 C 276.54137,229.79243 287.74288,235.23354 300.20332,235.23353 C 304.99864,235.23353 309.59413,234.41992 313.88692,232.93579 C 321.29217,241.54066 332.24326,246.99663 344.47782,246.99663 C 365.72051,246.99663 383.15731,230.55794 384.73984,209.71825 C 399.1689,206.38964 409.94647,193.44827 409.94646,178.01278 C 409.94646,165.91239 403.31327,155.35776 393.50214,149.75392 C 395.73622,145.76615 397.00021,141.16914 397.0002,136.27609 C 397.0002,123.39365 388.16894,112.54756 376.23474,109.4919 C 376.16065,89.758877 360.11276,73.756787 340.36245,73.756787 C 336.08362,73.756787 331.99358,74.506437 328.18782,75.883067 C 318.06233,64.488107 303.29382,57.295317 286.86267,57.295317 z M 122.64235,196.13754 C 122.89783,196.30492 123.15399,196.47391 123.41398,196.63481 C 123.10693,196.59907 122.79798,196.57494 122.48803,196.54908 C 122.54042,196.41224 122.59178,196.27526 122.64235,196.13754 z" - id="path4671" - style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </g> - <rect - y="50.529202" - x="56.155632" - height="228.58646" - width="367.98456" - id="rect3898" - style="opacity:1;fill:none;fill-opacity:0.07843137;fill-rule:evenodd;stroke:#ff0f0f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - sodipodi:linespacing="125%" - id="text3908" - y="125.84381" - x="104.38342" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - xml:space="preserve"><tspan - id="tspan3912" - y="125.84381" - x="104.38342" - sodipodi:role="line">cloud01.svg</tspan><tspan - id="tspan3916" - y="143.34381" - x="104.38342" - sodipodi:role="line">X 5.5%</tspan><tspan - id="tspan3918" - y="160.84381" - x="104.38342" - sodipodi:role="line">Y 7.5%</tspan><tspan - id="tspan3920" - y="178.34381" - x="104.38342" - sodipodi:role="line">W 36%</tspan><tspan - id="tspan3922" - y="195.84381" - x="104.38342" - sodipodi:role="line">H 29.5%</tspan></text> - </g> - <g - id="g8422"> - <g - id="g7752"> - <path - d="M 880.70898,146.70033 C 863.67522,144.54482 853.89505,161.09136 846.62874,173.7051 C 837.59024,192.37766 809.9722,178.9434 798.2925,195.79909 C 783.85587,199.87394 767.47974,186.06199 754.37681,199.16279 C 737.6267,197.38016 718.48885,203.62834 704.91832,191.61294 C 691.25691,179.61159 671.11925,177.93607 654.84017,185.13579 C 636.30736,193.35181 625.08741,213.43672 625.79053,233.38629 C 625.39456,250.02611 644.1545,261.81373 638.23586,279.24927 C 638.33002,297.301 651.75583,315.36065 670.08094,318.05466 C 668.7157,347.42723 703.97802,371.52683 730.58831,358.15492 C 740.7736,368.2071 750.06527,381.67434 766.10778,381.57019 C 784.64451,385.21703 795.20946,366.41019 812.73282,366.33078 C 828.15358,362.74894 838.48639,349.31578 854.78003,358.51231 C 872.90561,362.72793 891.8185,354.90531 902.65966,340.04688 C 913.04008,332.20548 928.78998,337.4222 938.43041,326.50513 C 947.35446,319.32983 953.5651,308.40692 953.82897,296.82563 C 984.37788,284.04735 985.60317,232.89518 954.43357,220.12664 C 943.21761,208.18004 940.42962,190.49196 926.59842,180.27723 C 915.17596,165.54058 901.65944,146.01191 880.70898,146.70033 z" - id="path5702" - style="opacity:1;fill:#000000;fill-opacity:0.33333333;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 876.45459,152.07053 C 862.33905,152.07053 850.87961,163.52997 850.87962,177.64551 C 850.87962,179.31925 851.0528,180.9479 851.36027,182.53219 C 850.99187,182.50982 850.61273,182.49213 850.23874,182.49213 C 843.4109,182.49213 837.46795,186.28355 834.37705,191.86495 C 830.66466,190.41845 826.62286,189.62188 822.40067,189.62188 C 808.63979,189.62188 796.83572,198.05357 791.87893,210.02979 C 786.36169,203.11491 777.8741,198.67426 768.34675,198.67426 C 758.77324,198.67426 750.24936,203.15742 744.73446,210.12993 C 739.78833,205.82533 733.33609,203.22048 726.26921,203.22048 C 718.89147,203.22048 712.18577,206.06273 707.16308,210.71072 C 701.02405,196.40381 686.81912,186.37744 670.27264,186.37745 C 648.1166,186.37745 630.13775,204.3563 630.13775,226.51233 C 630.13775,240.17376 636.96504,252.247 647.40136,259.49744 C 644.26758,264.24703 642.43456,269.92805 642.43457,276.04006 C 642.43457,292.65708 655.91871,306.14122 672.53573,306.14122 C 673.41237,306.14122 674.28159,306.0946 675.13929,306.02106 C 674.49763,308.65521 674.15795,311.40153 674.15795,314.23229 C 674.15795,333.35079 689.66679,348.87967 708.7853,348.87967 C 718.85513,348.87967 727.92977,344.57259 734.26014,337.70438 C 734.30748,337.71839 734.35284,337.73078 734.40033,337.74444 C 734.37842,338.21275 734.36028,338.69269 734.36028,339.16638 C 734.36028,355.60473 747.70266,368.94711 764.141,368.94711 C 774.80218,368.94711 784.15439,363.33663 789.41556,354.90791 C 791.41893,355.18524 793.46468,355.34851 795.54395,355.34851 C 810.39207,355.34851 823.52331,348.01778 831.57322,336.80315 C 838.7077,343.10315 848.07082,346.93702 858.3298,346.93701 C 875.63577,346.93701 890.42357,336.0522 896.20159,320.76121 C 899.81302,322.19152 903.73913,322.98425 907.85753,322.98425 C 925.36795,322.98425 939.58091,308.77129 939.58091,291.26087 C 939.58091,289.86901 939.49466,288.49995 939.32056,287.15526 C 953.33763,282.84093 963.53367,269.77666 963.53367,254.3504 C 963.53367,236.71115 950.203,222.17807 933.07201,220.26378 C 933.51395,218.31951 933.75294,216.29294 933.75294,214.21551 C 933.75294,202.13244 925.85658,191.89739 914.94723,188.36016 C 914.45413,178.80131 908.35009,170.72472 899.8666,167.35143 C 895.90352,158.35709 886.90896,152.07053 876.45459,152.07053 z" - id="path5643" - style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </g> - <rect - y="145.66345" - x="626.96112" - height="236.51431" - width="350.14688" - id="rect3900" - style="opacity:1;fill:none;fill-opacity:0.07843137;fill-rule:evenodd;stroke:#ff0f0f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - xml:space="preserve" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - x="784.38342" - y="225.84381" - id="text3924" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="784.38342" - y="225.84381" - id="tspan3926">cloud02.svg</tspan><tspan - sodipodi:role="line" - x="784.38342" - y="243.34381" - id="tspan3928">X 61%</tspan><tspan - sodipodi:role="line" - x="784.38342" - y="260.84381" - id="tspan3930">Y 19%</tspan><tspan - sodipodi:role="line" - x="784.38342" - y="278.34381" - id="tspan3932">W 34.5%</tspan><tspan - sodipodi:role="line" - x="784.38342" - y="295.84381" - id="tspan3934">H 30.6%</tspan></text> - </g> - <g - id="g8434"> - <g - transform="translate(0,-2.625)" - id="g2859"> - <path - style="fill:url(#linearGradient2887);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7812" - d="M 253.46875,640.34375 C 216.73952,640.47975 224.72406,662.10305 0,687 L 0,768 L 1024,768 L 1024,679.15625 C 924.26288,696.95458 741.22186,688.24844 734.28125,691.71875 C 725.70983,696.00446 504.29911,680.29017 337.15625,651.71875 C 290.14732,643.68304 268.19789,640.28921 253.46875,640.34375 z" /> - <rect - style="fill:url(#linearGradient2889);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect6150" - y="708" - x="0" - height="62.624355" - width="1024" /> - <path - style="fill:#878787;fill-opacity:0.80476188;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7762" - d="M 33.53125,730.5625 C 31.384951,730.70263 27.426368,732.41909 24.25,731.625 C 21.82413,731.13982 11.941508,752.98246 4.4375,770.625 L 107.84375,770.625 C 108.01953,762.99059 107.0625,754.55613 107.0625,751.84375 C 107.0625,736.44119 79.57883,747.69869 72.71875,752.84375 C 69.788927,755.04111 56.25003,737.72658 53.53125,735.6875 C 48.576212,731.97123 40.489153,732.16135 34.34375,730.625 C 34.119618,730.56896 33.837864,730.54248 33.53125,730.5625 z M 972.4375,736.5 C 963.97938,736.32887 944.29367,755.03771 938.3125,770.625 L 1024,770.625 L 1024,752.5625 C 1015.1211,748.73109 1001.2462,752.64351 992.28125,754.34375 C 979.36093,756.79415 978.12838,750.17125 976.1875,739.9375 C 975.74553,737.60712 974.39351,736.53958 972.4375,736.5 z M 330.8125,745.75 C 319.31883,745.86454 317.92556,760.9702 332.46875,768.53125 C 333.59079,769.11461 335.00212,769.83864 336.5,770.625 L 383.5,770.625 C 383.75283,770.22885 383.99218,769.84444 384.1875,769.46875 C 390.80243,756.74536 365.42929,754.57957 358.03125,752.8125 C 348.85858,750.62154 347.48331,749.25948 339.59375,747.375 C 337.95623,746.98388 336.32502,746.60988 334.6875,746.21875 C 333.28846,745.88458 332.0015,745.73815 330.8125,745.75 z M 158.84375,748.3125 C 153.12637,748.32789 145.1794,751.5062 139.09375,749.28125 C 135.35924,747.9159 125.1018,757.33602 122.84375,758.96875 C 119.01753,761.73538 117.08957,766.48409 115.46875,770.625 L 171.65625,770.625 C 174.81467,768.65666 177.52545,766.88994 178.5625,765.75 C 182.65847,761.24762 164.0232,749.11244 161.15625,748.5 C 160.44244,748.34752 159.66052,748.3103 158.84375,748.3125 z M 651.78125,750.3125 C 648.07403,750.26978 638.16274,751.59245 638,751.625 C 637.60123,751.62502 631.0566,768.4776 630.03125,770.625 L 670.375,770.625 C 673.7856,766.60959 669.8261,767.40184 659.21875,764.75 C 651.21234,762.74838 653.15625,758.75253 653.15625,750.59375 C 653.15625,750.40936 652.63676,750.32236 651.78125,750.3125 z M 920.9375,750.78125 C 919.75087,750.85285 918.25324,751.28252 916.375,752.15625 C 905.96675,756.99801 899.25942,761.56224 893.9375,770.625 L 924.65625,770.625 C 924.58904,769.13244 924.5198,767.71789 924.53125,767.3125 C 924.725,760.45401 927.34531,750.39463 920.9375,750.78125 z M 417.90625,750.8125 C 416.76441,750.8892 415.13135,751.55869 412.15625,753.34375 C 410.15021,756.1751 398.23696,760.05253 392.9375,764.46875 C 391.20908,765.90909 391.04464,768.19759 391.5625,770.625 L 448,770.625 C 453.29231,765.85111 459.23586,759.76135 464.65625,758.40625 C 466.07382,758.05185 449.25311,755.47624 446.5,754.375 C 441.28078,752.28733 433.232,753.34375 427.28125,753.34375 C 420.51886,753.34375 420.41831,750.64376 417.90625,750.8125 z" /> - <path - style="fill:url(#linearGradient2891);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect6153" - d="M 22.5,535.625 C 21.6669,537.87898 20.97295,540.86098 20.34375,544.84375 C 19.69805,548.82653 18.9927,554.95148 18.75,559.21875 C 18.5018,563.3985 18.8548,565.95473 18.9375,569.9375 C 19.0258,573.8984 19.2668,578.6866 19.25,582.625 C 19.184001,586.47647 18.9356,589.7581 18.6875,593.0625 C 18.6311,593.7427 18.5743,594.35564 18.5,594.9375 C 18.3645,594.04974 18.2032,593.20131 18.0625,592.40625 C 16.892799,585.92878 15.6883,582.62302 14.375,579.625 C 13.0728,576.62699 11.70495,574.91579 10.28125,574.5 C 10.75025,578.57093 11.20925,582.32988 11.65625,585.875 C 12.10865,589.4432 12.8381,592.95584 12.9375,595.625 C 13.0092,598.16467 12.20055,599.31548 12.15625,601.21875 C 12.10665,603.10073 12.33615,604.72415 12.65625,607 C 12.95965,609.25461 13.85465,612.31789 14.03125,614.59375 C 14.19685,616.7383 13.94865,616.99252 13.65625,620.1875 C 13.49135,621.88044 13.2109,624.20685 12.9375,626.75 C 12.6395,627.88512 12.3818,629.03698 12.125,630.15625 C 11.1693,634.30819 10.49885,637.78162 9.71875,643.09375 C 9.6450499,639.53265 9.44805,635.51134 9.09375,630.875 C 8.5475503,623.80725 7.59795,614.48062 6.59375,606.40625 C 5.5728501,598.28808 4.4605,590.52115 3.125,582.6875 C 2.954,584.00048 2.86025,588.32147 2.84375,595.9375 C 2.8326499,603.55231 2.8307,618.16999 3.0625,628.0625 C 3.0842,628.99992 3.0997,629.84252 3.125,630.75 C 2.9102,630.52999 2.69455,630.40625 2.46875,630.40625 C 1.5187707,630.40624 0.6590894,632.46412 0,635.8125 L 0,699.0625 C 0.048239524,701.35273 0.098863465,703.65585 0.125,706 L 0,706 L 0,723.375 L 0,733.25 C 1.6436059,735.31905 3.8682696,737.04866 7.0625,737.6875 C 13.389822,738.95296 19.716131,738.71875 26.25,738.71875 C 33.376647,738.71876 37.727035,736.83456 42.4375,738.71875 C 48.160861,741.0081 50.241822,742.75 57.59375,742.75 C 63.747088,742.74997 71.11755,742.90812 75.75,741.75 C 76.631004,741.52976 86.753512,741.75 91.9375,741.75 C 100.58142,741.75001 103.1829,741.75 111.125,741.75 C 118.61861,741.75001 122.0342,741.75 130.3125,741.75 C 138.44791,741.75001 143.94375,742.23625 151.53125,740.71875 C 154.48688,740.12762 161.91742,738.71875 166.6875,738.71875 C 172.08004,738.71876 177.81483,739.46152 182.84375,740.71875 C 195.20025,743.80787 209.77063,745.78125 222.21875,745.78125 C 233.86088,745.78128 240.00717,748.41228 250.53125,745.78125 C 262.85337,742.70075 272.47612,738.5294 283.84375,735.6875 C 289.71449,734.21982 298.48623,734.55124 303.03125,735.6875 C 309.09309,737.20296 315.97167,736.11792 322.25,737.6875 C 328.08321,739.14579 336.36302,737.6875 342.4375,737.6875 C 350.04837,737.68749 358.40543,737.6875 365.6875,737.6875 C 372.4714,737.68749 376.89878,737.42374 383.84375,735.6875 C 391.89738,733.6741 392.21733,734.65625 400.03125,734.65625 C 406.62116,734.65624 412.50983,734.65625 419.21875,734.65625 C 425.35693,734.65624 433.14979,734.37338 438.40625,735.6875 C 442.92043,736.81605 448.16707,736.34183 451.53125,737.6875 C 456.37803,739.6262 466.27616,739.71875 468.71875,739.71875 C 474.89479,739.71872 481.34163,739.83167 486.90625,738.71875 C 492.55533,737.58894 499.04411,737.6875 502.03125,737.6875 C 508.72902,737.68749 514.21132,738.21689 520.21875,739.71875 C 525.85459,741.12768 531.22444,738.71875 537.40625,738.71875 C 543.14037,738.71876 548.67633,738.71875 555.59375,738.71875 C 560.51979,738.71876 567.97126,740.71875 574.78125,740.71875 C 579.99256,740.71874 587.03955,738.91199 591.9375,737.6875 C 599.27203,735.85386 604.82376,737.39344 610.125,738.71875 C 615.43724,740.04682 621.76884,742.36408 627.3125,743.75 C 635.20236,745.72246 640.60647,742.36338 642.46875,749.8125 C 645.27218,761.02626 650.92233,756.51517 655.59375,751.84375 C 660.3616,747.07588 665.12404,745.00038 670.75,742.75 C 674.35082,741.30965 679.38104,747.8125 684.875,747.8125 C 691.11616,747.81251 694.15666,746.43758 701.03125,747.8125 C 707.08924,749.02411 714.72433,744.13142 720.25,742.75 C 726.3027,741.23679 731.80886,741.75 738.40625,741.75 C 746.67377,741.75001 751.93916,738.53948 760.65625,740.71875 C 766.85899,742.26943 775.46713,740.71875 781.84375,740.71875 C 788.59466,740.71874 794.72159,739.71875 801.0625,739.71875 C 806.47381,739.71872 813.92077,739.39426 819.21875,740.71875 C 822.77635,741.60814 834.09042,740.38191 837.40625,739.71875 C 843.88698,738.42258 850.41387,738.23247 856.59375,736.6875 C 861.95901,735.34621 869.15084,738.31115 874.78125,739.71875 C 878.11444,740.55202 887.5606,738.71875 891.96875,738.71875 C 898.40821,738.71876 905.35045,738.2673 911.15625,739.71875 C 917.79503,741.37841 924.3962,739.71875 930.34375,739.71875 C 935.91597,739.71872 941.5577,739.71875 948.53125,739.71875 C 954.78112,739.71872 962.79106,739.71875 967.71875,739.71875 C 973.98437,739.71872 980.44688,741.75 986.90625,741.75 C 993.61031,741.75001 998.7446,742.6416 1004.0938,744.78125 C 1008.5448,746.56174 1018.7827,745.39809 1021.25,744.78125 C 1022.2407,744.53357 1023.1374,744.32085 1024,744.09375 L 1024,590.6875 C 1023.0205,593.21549 1022.0842,596.31569 1021.1875,601.28125 C 1020.3388,606.07725 1019.6075,612.76174 1018.8438,619.65625 C 1018.6439,616.68557 1018.4211,613.83578 1018.1562,610.84375 C 1017.5661,604.13899 1016.9529,597.86527 1015.9375,591.90625 C 1014.8945,585.85497 1013.4127,579.47224 1012,575.4375 C 1010.5653,571.52778 1008.9292,569.77142 1007.5,568.34375 C 1006.2592,567.01307 1005.0972,566.35872 1004,566.40625 C 1003.8433,566.41305 1003.6852,566.43383 1003.5312,566.46875 C 1004.8172,570.31814 1006.0966,575.80102 1007.4375,583.21875 C 1008.7839,590.57615 1010.549,599.79348 1011.5312,610.53125 C 1012.4749,621.27074 1012.8288,634.02676 1013.1875,647.125 C 1013.2417,649.18898 1013.2679,651.25935 1013.3125,653.34375 C 1013.0684,649.77914 1012.8488,645.91536 1012.5,643.21875 C 1011.9852,639.24668 1011.2736,637.61473 1010.6562,634.46875 C 1010.044,631.21216 1009.3987,627.97673 1008.9062,624.15625 C 1008.4539,620.24392 1008.1633,615.47755 1007.8125,611.53125 C 1007.4536,607.5638 1007.5219,604.97031 1006.8125,600.84375 C 1006.0987,596.62958 1004.739,590.63678 1003.6562,586.75 C 1002.5902,582.86137 1001.5462,579.96038 1000.4688,577.8125 C 1000.8676,580.69655 1001.3531,584.33252 1001.9375,588.78125 C 1002.533,593.22879 1003.3232,598.41734 1003.9688,604.3125 C 1004.6209,610.11882 1005.5448,618.24547 1005.75,623.375 C 1005.9289,628.41939 1005.243,630.4999 1005.1562,634.40625 C 1005.1038,638.22201 1005.1904,641.38234 1005.4062,646.3125 C 1005.6139,651.26501 1005.9665,658.20623 1006.4062,663.75 C 1006.8624,669.13845 1007.0599,673.10192 1008.0938,678.84375 C 1009.1549,684.5825 1011.1427,691.93671 1012.6562,698 C 1013.3571,700.79996 1014.0357,703.43009 1014.7188,706 L 990.875,706 C 991.25185,700.80373 991.79719,696.20905 992.3125,690.9375 C 992.88077,685.16027 993.7203,678.76523 994.0625,673.25 C 994.39909,667.71413 994.5553,663.46139 994.3125,658.1875 C 994.08067,652.82605 993.24845,646.84569 992.71875,641.8125 C 992.21654,636.75741 991.59035,631.48499 991.28125,628.3125 C 990.98888,625.1175 990.74075,624.83207 990.90625,622.6875 C 991.08288,620.41162 991.97785,617.37959 992.28125,615.125 C 992.60138,612.84911 992.83085,611.19447 992.78125,609.3125 C 992.73703,607.40926 991.9282,606.25844 992,603.71875 C 992.0992,601.04959 992.82875,597.56821 993.28125,594 C 993.72828,590.45493 994.18715,586.69592 994.65625,582.625 C 993.23256,583.04075 991.89605,584.72072 990.59375,587.71875 C 989.28054,590.71675 988.0448,594.02252 986.875,600.5 C 985.73272,606.95498 984.78395,616.70076 983.71875,626 C 982.65933,635.23542 981.13275,646.80039 980.53125,655.53125 C 979.94085,664.13143 980.022,668.36954 980.1875,677.625 C 980.35327,685.41013 980.8848,697.4684 981.34375,706 L 977.65625,706 C 977.96846,702.03008 978.13654,698.12115 978.15625,694.1875 C 978.19486,686.46326 976.9451,677.47339 976.625,671.9375 C 976.34931,666.40038 976.3365,665.64227 976.375,661.375 C 976.42473,657.02019 976.91535,650.42344 976.84375,646.375 C 976.77182,642.37037 976.2025,640.63248 975.9375,637.4375 C 975.68933,634.13308 975.4411,630.85148 975.375,627 C 975.35843,623.0616 975.5993,618.27339 975.6875,614.3125 C 975.7702,610.32973 976.1231,607.77348 975.875,603.59375 C 975.63208,599.32646 974.92705,593.20153 974.28125,589.21875 C 973.65213,585.23599 972.9581,582.25399 972.125,580 C 972.2023,582.91051 972.2867,586.54516 972.375,591.03125 C 972.47428,595.51735 972.66735,600.78834 972.65625,606.71875 C 972.66164,612.5616 972.70785,620.75429 972.34375,625.875 C 971.96307,630.90817 971.0186,632.87726 970.5,636.75 C 970.02511,640.53645 969.7688,643.70123 969.4375,648.625 C 969.09543,653.57007 968.6768,660.50412 968.5,666.0625 C 968.35652,671.46835 968.1084,675.42902 968.5,681.25 C 968.91942,687.071 970.07315,694.61889 970.90625,700.8125 C 971.1506,702.62198 971.40927,704.28116 971.65625,706 L 964.71875,706 C 964.72878,705.48041 964.74141,704.92168 964.75,704.40625 C 964.8492,697.71051 964.87145,691.57711 964.65625,686.0625 C 964.41345,680.50348 963.9599,676.28616 963.375,671.625 C 962.78462,666.8976 962.2029,662.48285 961.1875,658.28125 C 960.14461,654.0146 958.69385,649.50109 957.28125,646.65625 C 955.84657,643.89953 954.14795,642.66289 952.71875,641.65625 C 951.47783,640.71799 950.3472,640.27899 949.25,640.3125 C 949.09333,640.31728 948.93505,640.31913 948.78125,640.34375 C 948.94428,640.6878 949.0868,641.05645 949.25,641.4375 C 949.25738,641.44769 949.27385,641.45835 949.28125,641.46875 C 950.40045,644.08977 951.5223,647.61117 952.6875,652.15625 C 954.03392,657.34382 955.79895,663.83523 956.78125,671.40625 C 957.72484,678.9785 958.0788,687.95211 958.4375,697.1875 C 958.54525,700.08246 958.61994,703.03805 958.6875,706 L 949.03125,706 C 949.02075,697.71887 949.00206,686.84149 948.71875,678.8125 C 948.39494,668.95736 947.70985,660.03312 947.09375,653.1875 C 946.50194,646.29809 945.94625,642.57052 945.09375,637.75 C 944.22926,632.84122 942.86325,627.44795 941.96875,624.3125 C 941.10066,621.20092 940.4564,619.42711 939.9375,619.09375 C 939.91758,618.983 939.8918,618.93628 939.875,618.9375 C 939.7576,618.94605 939.7142,621.71996 939.75,627.53125 C 939.79629,634.17299 939.84885,649.98621 940.15625,658.4375 C 940.48026,666.78008 940.9465,671.48585 941.625,677.4375 C 942.34002,683.32407 943.5855,687.68084 944.3125,693.65625 C 944.78108,697.36468 945.15187,701.8238 945.46875,706 L 934.03125,706 C 934.25862,704.1973 934.49094,702.39579 934.71875,700.59375 C 934.92063,698.76455 935.0653,696.68269 935.125,694.40625 C 935.15609,695.69094 935.1653,696.81122 935.125,697.5625 C 935.25189,696.97104 935.3676,696.39399 935.5,695.78125 C 935.57731,691.14138 935.4103,685.44141 934.875,678.4375 C 934.32871,671.36977 933.34805,662.01187 932.34375,653.9375 C 931.32293,645.81938 930.2104,638.05239 928.875,630.21875 C 928.70388,631.53171 928.61025,635.88397 928.59375,643.5 C 928.58263,651.11481 928.5807,665.73249 928.8125,675.625 C 929.03869,685.42815 929.47205,693.45918 929.96875,702.125 C 930.04176,703.45168 930.14119,704.69844 930.21875,706 L 923.65625,706 C 923.97628,702.90169 924.3309,700.48178 924.53125,697.375 C 924.79655,693.17559 925.16125,689.43374 924.90625,684.53125 C 924.60826,679.57128 923.91035,674.09016 922.78125,667.875 C 922.10475,669.55965 921.33335,670.85403 920.46875,672 C 919.59296,673.12509 918.60425,674.23396 917.59375,674.46875 C 916.55586,674.59638 914.9574,672.59844 914.375,673.0625 C 913.78189,673.57445 913.9789,675.59863 914.0625,677.40625 C 914.1138,679.13113 914.75825,681.78265 914.71875,683.53125 C 914.63064,685.22444 914.12865,686.5673 913.71875,687.6875 C 913.31954,688.80561 912.87265,689.57617 912.34375,690.09375 C 912.45373,690.63016 912.5728,691.19456 912.6875,691.75 C 912.51079,692.3387 912.3387,692.91814 912.25,693.53125 C 911.79529,696.64912 911.80965,699.71848 912.28125,703.03125 C 912.50197,704.01919 912.71695,705.01183 912.9375,706 L 908.65625,706 C 908.42442,704.09234 908.19602,702.22281 907.9375,700.4375 C 906.79897,692.4937 905.48805,686.16259 903.90625,681.0625 C 902.81317,688.13457 901.98345,695.36007 901.40625,703.28125 C 901.34192,704.18043 901.30731,705.09636 901.25,706 L 713.40625,706 C 713.48067,701.07834 713.57455,696.27633 713.75,691.5625 C 714.10873,682.32712 714.494,673.35352 715.4375,665.78125 C 716.41978,658.2102 718.1536,651.71883 719.5,646.53125 C 720.84091,641.30112 722.12065,637.4329 723.40625,634.71875 C 722.17575,634.52179 720.8557,634.95896 719.4375,636.03125 C 718.00827,637.03792 716.3722,638.27455 714.9375,641.03125 C 713.95521,643.00941 712.90375,645.81015 712.03125,648.75 C 711.57757,645.0426 711.11195,641.34766 710.84375,639.03125 C 710.55132,636.34248 710.30325,636.1173 710.46875,634.3125 C 710.64542,632.39721 711.54035,629.83489 711.84375,627.9375 C 712.16382,626.02222 712.39345,624.64631 712.34375,623.0625 C 712.29963,621.46078 711.4908,620.48108 711.5625,618.34375 C 711.66182,616.09751 712.39125,613.15914 712.84375,610.15625 C 713.29077,607.17277 713.74975,603.98847 714.21875,600.5625 C 712.79512,600.91244 711.4273,602.38321 710.125,604.90625 C 708.81168,607.42931 707.6072,610.20501 706.4375,615.65625 C 705.55611,619.84752 704.7949,625.73884 704,631.78125 C 703.72407,628.11749 703.4304,624.39914 703.1875,621.09375 C 702.50538,611.79454 701.88785,602.04874 701.15625,595.59375 C 700.40722,589.11627 699.62245,585.81053 698.78125,582.8125 C 697.94722,579.81447 697.0992,578.10327 696.1875,577.6875 C 696.4879,581.7584 696.7762,585.51741 697.0625,589.0625 C 697.35227,592.63074 697.8115,596.14336 697.875,598.8125 C 697.92088,601.35221 697.4033,602.503 697.375,604.40625 C 697.34321,606.28819 697.4826,607.91161 697.6875,610.1875 C 697.88187,612.44209 698.4495,615.50537 698.5625,617.78125 C 698.66851,619.92583 698.53105,620.18003 698.34375,623.375 C 698.17433,626.09035 697.8498,630.62456 697.5625,634.96875 C 697.4626,634.19202 697.36435,633.3944 697.28125,632.5625 C 696.98926,629.12826 696.90775,624.93215 696.71875,621.46875 C 696.52255,617.98681 696.69555,615.71742 696.15625,612.09375 C 695.61603,608.39322 694.4839,603.13441 693.5625,599.71875 C 692.65772,596.30159 691.7371,593.73421 690.75,591.84375 C 691.03048,594.37574 691.37965,597.56326 691.78125,601.46875 C 692.19374,605.37327 692.75245,609.91925 693.15625,615.09375 C 693.57026,620.19037 694.1919,627.34346 694.1875,631.84375 C 694.17061,634.59989 693.854,636.34648 693.5625,638.09375 C 693.53082,638.03643 693.50045,637.96134 693.46875,637.90625 C 692.90957,633.34771 692.4159,630.12395 691.75,626.21875 C 690.85883,620.97753 689.58985,615.20979 688.78125,611.875 C 687.99236,608.56481 687.4449,606.71345 687.0625,606.375 C 686.89961,605.42926 686.99005,608.27206 687.40625,615.40625 C 687.63736,619.33227 688.04065,626.22089 688.46875,633.15625 C 688.23092,634.39091 687.9416,635.47515 687.625,636.4375 C 687.16483,637.78582 686.6117,639.12259 686,639.4375 C 685.87878,639.47387 685.74315,639.38554 685.59375,639.28125 C 684.57457,633.67601 683.505,628.20186 682.3125,622.6875 C 682.19943,624.00676 682.33685,628.32816 682.65625,635.9375 C 682.89436,641.51484 683.29513,650.83255 683.75,659.3125 C 683.31725,660.53438 682.82592,661.58916 682.25,662.53125 C 681.99844,662.92886 681.71751,663.32389 681.4375,663.6875 C 681.24181,659.66922 680.96994,656.11654 680.375,652 C 679.62215,646.68663 678.17362,640.86392 677.15625,635.90625 C 676.16423,630.92411 675.0541,625.68981 674.4375,622.5625 C 673.83533,619.4112 673.5754,619.18175 673.53125,617.03125 C 673.48534,614.749 674.07377,611.61718 674.15625,609.34375 C 674.25319,607.04755 674.3264,605.39944 674.09375,603.53125 C 673.86441,601.64131 672.92599,600.5971 672.75,598.0625 C 672.58894,595.39634 672.99101,591.81406 673.09375,588.21875 C 673.19336,584.64697 673.27346,580.84725 673.34375,576.75 C 671.96744,577.30242 670.78538,579.13938 669.78125,582.25 C 668.76616,585.36169 667.87704,588.78315 667.34375,595.34375 C 666.91435,600.86617 666.85389,608.77352 666.75,616.71875 C 666.3499,612.80067 666.14163,607.98191 665.84375,604.03125 C 665.53799,600.05936 665.59149,597.5107 664.9375,593.375 C 664.28017,589.15166 662.99937,583.11971 661.96875,579.21875 C 660.95485,575.31618 659.95491,572.41214 658.90625,570.25 C 659.26665,573.13912 659.72521,576.76257 660.25,581.21875 C 660.78573,585.67383 661.49598,590.87796 662.0625,596.78125 C 662.63691,602.59579 663.45741,610.74317 663.59375,615.875 C 663.61,616.60994 663.57761,617.28339 663.5625,617.90625 C 662.73642,613.8294 661.87259,609.62862 661,605.75 C 659.19342,597.7699 657.34198,590.1351 655.25,582.46875 C 655.20767,583.79218 655.55603,588.1373 656.28125,595.71875 C 656.82001,601.30771 657.71035,610.67706 658.625,619.15625 C 657.65734,616.75202 656.9241,615.3431 656.4375,615.09375 C 656.19287,614.2276 656.40623,616.89409 657.09375,623.5 C 657.78666,630.10566 659.40233,645.83754 660.53125,654.21875 C 661.6662,662.49014 662.55759,667.11146 663.8125,672.96875 C 664.81707,677.49441 666.05076,681.07018 667.15625,685.21875 C 664.86901,680.7009 662.67645,676.917 660.5625,673.78125 C 661.55445,680.86823 662.86321,688.02991 664.59375,695.78125 C 665.35324,699.1616 666.17862,702.55153 667.0625,706 L 286.65625,706 C 287.04492,699.92213 287.32627,694.29101 287.5,689.09375 C 287.83319,679.39835 287.8009,671.6165 287.375,665.3125 C 286.216,670.51139 285.13905,675.83462 284.09375,681.34375 C 284.17255,677.70202 284.14185,673.57641 283.96875,668.78125 C 283.70673,661.69726 283.1166,652.2957 282.4375,644.1875 C 281.7436,636.03493 280.9571,628.22473 279.9375,620.34375 C 279.71381,621.64882 279.4475,625.98453 279.125,633.59375 C 278.99251,636.77433 278.8071,641.54183 278.625,646.3125 C 278.59208,645.94096 278.56365,645.51652 278.53125,645.15625 C 277.93946,638.26679 277.38375,634.53926 276.53125,629.71875 C 275.66665,624.80999 274.3321,619.38545 273.4375,616.25 C 272.5694,613.13841 271.92515,611.36463 271.40625,611.03125 C 271.38635,610.9205 271.36045,610.87378 271.34375,610.875 C 271.22634,610.88358 271.18295,613.65748 271.21875,619.46875 C 271.25206,624.25776 271.27045,633.80664 271.40625,641.9375 C 270.91784,639.70397 270.408,637.6657 269.8125,635.40625 C 268.5457,630.58557 266.7753,625.30091 265.625,622.25 C 264.50299,619.22068 263.70085,617.5394 263.15625,617.25 C 262.92454,616.38028 263.06725,619.04084 263.65625,625.65625 C 264.11585,630.77101 265.04755,641.33027 265.90625,649.75 C 265.75825,649.56181 265.61285,649.35863 265.46875,649.1875 C 263.89486,647.27424 262.2761,645.93891 260.5,645.0625 C 260.9402,646.62612 261.47225,648.57667 262.09375,651 C 262.73565,653.41853 263.6657,656.24122 264.25,659.5 C 264.85609,662.70366 265.74705,667.18905 265.59375,670.15625 C 265.40045,673.08262 263.84855,674.55697 263.28125,676.90625 C 262.78614,679.18925 262.6125,681.03004 262.5,683.875 C 262.36941,686.73633 262.3235,690.71742 262.5625,693.84375 C 262.8476,696.872 262.8043,699.16293 264.125,702.1875 C 264.67031,703.38468 265.4505,704.68218 266.34375,706 L 28,706 C 28.732207,703.82502 29.463657,701.6894 30.125,699.78125 C 31.7692,694.94442 32.98435,692.25467 34.28125,688.25 C 35.572449,684.24531 36.8525,680.68935 37.8125,675.875 C 38.745,670.9944 39.40765,665.52056 39.84375,659.21875 C 38.773251,660.68493 37.745,661.75842 36.625,662.65625 C 35.498998,663.53097 34.2248,664.36502 33.1875,664.34375 C 32.150101,664.21182 31.08495,661.88113 30.40625,662.1875 C 29.705449,662.53765 29.45775,664.53994 29.09375,666.3125 C 28.71865,667.99693 28.68765,670.72123 28.21875,672.40625 C 27.71645,674.02562 26.89185,675.20274 26.21875,676.1875 C 25.63555,677.05534 25.0661,677.64786 24.5,678.03125 C 24.6181,674.91943 24.6974,672.00064 24.75,669.53125 C 24.896201,661.35882 24.9569,657.05721 24.5625,650.25 C 25.2058,645.60905 25.8357,640.89001 26.125,636.875 C 26.5166,631.05399 26.2684,627.09332 26.125,621.6875 C 25.9483,616.12912 25.56085,609.19502 25.21875,604.25 C 24.88755,599.32625 24.5998,596.16143 24.125,592.375 C 23.606401,588.50224 22.6933,586.50193 22.3125,581.46875 C 21.9484,576.34801 21.96335,568.18662 21.96875,562.34375 C 21.957751,556.41333 22.1506,551.14234 22.25,546.65625 C 22.3382,542.17015 22.4228,538.5355 22.5,535.625 z" /> - <path - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7556)" - id="path7397" - transform="matrix(1,0,0,0.568966,0,309.22805)" - d="M 739.03125,681.78125 C 728.29875,681.80091 719.89724,685.02021 719.03125,685.625 C 708.47153,697.26333 711.70837,714.71043 712.15625,715.03125 C 712.71883,715.43424 716.15788,717.45499 720.375,719.84375 C 720.43328,721.56959 720.53126,723.28124 720.53125,723.28125 C 720.53125,723.28125 725.29885,730.47134 742.1875,736 C 757.04266,740.86299 776.09377,730.46877 776.09375,730.46875 L 781.46875,731.59375 L 786.5,728.5625 L 792.1875,715.875 L 793.03125,705.65625 L 792.84375,706.0625 C 792.57113,705.95409 790.14599,705.00705 789.59375,705.1875 C 789.01004,705.37825 786.625,707.6875 786.625,707.6875 L 780.4375,705.90625 L 780.3125,706.1875 C 779.05952,705.32221 778.08272,705.41849 777.125,705.59375 C 776.26,703.46355 772.2416,696.04146 771.6875,695.40625 C 771.06357,694.69097 763.57658,687.41947 754.625,684.28125 C 749.27979,682.41033 743.90966,681.77232 739.03125,681.78125 z" /> - <g - id="g7375" - transform="matrix(-8.1871328e-2,0.2695512,-0.2695512,-8.1871328e-2,1133.7993,567.72515)"> - <path - style="fill:#303030;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7361" - d="M 826.25,1088.1786 C 826.25,1088.1786 808.39286,1084.6071 806.07143,1085.1429 C 803.75,1085.6786 777.14286,1112.4643 775.35714,1115.3214 C 773.57143,1118.1786 756.60285,1151.1439 755.17858,1184.7857 C 752.48959,1249.0584 792.17924,1300.9225 796.46664,1304.2933 C 846.89032,1328.1532 902.76523,1299.1379 903.39286,1297.2857 C 905.40525,1291.347 924.28571,1211.2143 923.39286,1195.1429 C 922.85971,1185.5462 928.57143,1141.2143 874.10714,1083.8929 C 846.25001,1090.1428 826.96429,1088.8929 826.25,1088.1786 z" /> - <path - style="fill:#5d5d5d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7335" - d="M 819.64286,1126.9286 L 857.85714,1126.9286 C 857.85714,1126.9286 867.5,1164.4286 866.25,1172.4643 C 858.75,1175.5 811.07143,1172.2857 811.07143,1172.2857 C 811.07143,1172.2857 814.82143,1136.0357 819.64286,1126.9286 z" /> - <path - style="fill:#484848;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7337" - d="M 870.89286,1125.6786 L 879.28572,1166.5714 C 879.28572,1166.5714 880,1170.8571 882.85714,1170.1429 C 885.71429,1169.4286 910.17857,1162.2857 910.35714,1161.2143 C 910.53572,1160.1429 910.35714,1158.5357 910.35714,1157.8214 C 910.35714,1157.1071 908.90457,1142.4254 891.25,1117.4643 C 880.13761,1116.3372 870.0927,1128.0791 870.89286,1125.6786 z" /> - <path - style="fill:#5d5d5d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7339" - d="M 809.28572,1184.25 C 809.28572,1184.25 808.75,1233.8929 812.32143,1236.0357 C 815.89286,1238.1786 862.85714,1236.9286 863.57143,1236.2143 C 864.28572,1235.5 867.85714,1186.5714 867.32143,1185.1429 C 866.78572,1183.7143 831.07143,1189.6071 809.28572,1184.25 z" /> - <path - style="fill:#757575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7341" - d="M 795.71429,1183 L 765.35714,1173.1786 C 765.35714,1173.1786 761.96429,1169.9643 761.60714,1175.5 C 761.25,1181.0357 762.5,1221.9286 762.5,1221.9286 C 762.5,1221.9286 764.28572,1227.4643 769.28572,1228.5357 C 774.28572,1229.6071 792.5,1234.7857 797.14286,1234.0714 C 797.50001,1227.6428 794.82143,1182.2857 794.82143,1182.2857 L 795.71429,1183 z" /> - <path - style="fill:#757575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7343" - d="M 782.97919,1120.2907 C 782.97919,1120.2907 765.93286,1156.4037 766.43794,1157.035 C 766.94301,1157.6663 764.1651,1159.5604 768.83705,1161.8332 C 773.50901,1164.1061 792.57564,1169.5356 792.57564,1169.5356 C 792.57564,1169.5356 795.60609,1171.1771 796.74251,1167.6416 C 797.87894,1164.1061 807.22285,1126.6042 806.71777,1126.4779 C 806.2127,1126.3516 793.58579,1117.2602 782.97919,1120.2907 z" /> - <path - style="fill:#484848;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7345" - d="M 880.53572,1182.6429 L 877.32143,1232.1071 C 877.32143,1232.1071 879.10714,1234.6071 881.96429,1234.4286 C 884.82143,1234.25 911.25,1228.3571 912.14286,1227.2857 C 913.03572,1226.2143 917.5,1176.2143 915.53572,1172.4643 C 913.57143,1168.7143 885.89286,1184.25 880.53572,1182.6429 z" /> - <path - style="fill:#757575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7347" - d="M 769.82143,1241.5714 C 769.82143,1241.5714 780.89286,1270.3214 783.03572,1271.5714 C 785.17857,1272.8214 805.89286,1280.6786 808.03572,1278.8929 C 810.17857,1277.1071 801.78572,1249.0714 800.53572,1248 C 799.28572,1246.9286 770,1242.1071 769.82143,1241.5714 z" /> - <path - style="fill:#5d5d5d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7349" - d="M 814.82143,1250.5 L 820.35714,1279.4286 C 820.35714,1279.4286 822.67857,1281.5714 823.92857,1281.2143 C 825.17857,1280.8571 859.82143,1282.1071 861.96429,1280.3214 C 864.10714,1278.5357 863.21429,1252.1071 862.85714,1250.3214 C 862.5,1248.5357 816.07143,1249.25 814.82143,1250.5 z" /> - <path - style="fill:#484848;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7351" - d="M 875.17857,1247.1072 L 871.96428,1278.8929 C 871.96428,1278.8929 900.71429,1272.1072 903.92857,1268.8929 C 907.14286,1265.6786 910,1238.7143 910,1238.7143 L 875.17857,1247.1072 z" /> - <path - style="fill:#757575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7353" - d="M 791.25,1284.875 C 791.25,1284.875 799.82143,1302.4643 801.96429,1302.4643 C 804.10714,1302.4643 813.21429,1306.125 813.92857,1305.2321 C 814.64286,1304.3393 811.51786,1289.9643 811.51786,1289.9643 C 811.51786,1289.9643 796.42857,1284.1607 791.25,1284.875 z" /> - <path - style="fill:#5d5d5d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7355" - d="M 824.19643,1291.2143 C 824.19643,1291.2143 826.78572,1305.5893 829.19643,1306.3036 C 831.60714,1307.0179 854.73214,1308.0893 855.625,1307.0179 C 856.51786,1305.9464 859.10714,1292.1964 857.94643,1291.0357 C 856.78572,1289.875 829.64286,1287.0179 824.19643,1291.2143 z" /> - <path - style="fill:#484848;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7357" - d="M 869.28571,1288.9822 C 869.28571,1288.9822 864.64286,1303.5357 866.78572,1304.3393 C 868.92857,1305.1429 896.25,1295.1429 897.14286,1293.7143 C 898.03572,1292.2857 902.05358,1282.6429 900.71429,1281.5714 C 899.37501,1280.4999 869.82143,1288.9822 869.28571,1288.9822 z" /> - <path - style="fill:#4b4b4b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7359" - d="M 807.98046,1091.8802 L 790.17652,1108.2951 L 813.78884,1118.1441 L 860.00332,1117.8916 L 885.88848,1106.6536 L 864.92781,1088.8497 C 864.92781,1088.8497 850.02806,1103.7495 807.98046,1091.8802 z" /> - <path - style="fill:#191919;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7373" - d="M 815.53572,1049.6071 L 814.82143,1078 L 861.07143,1081.5714 L 858.92857,1055.5 L 815.53572,1049.6071 z" /> - <path - style="fill:#2b2b2b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05155635px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7363" - d="M 805.41296,1069.6329 C 800.59394,1078.0602 802.22322,1082.3421 804.28629,1086.3451 C 804.28629,1086.3451 856.113,1095.5462 877.70746,1086.3451 C 881.46302,1075.0784 876.58079,1070.5718 876.58079,1070.5718 C 876.58079,1070.5718 839.9641,1083.3406 805.41296,1069.6329 z" /> - <path - style="fill:#686868;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7367" - d="M 789.77221,1031.8571 C 789.77221,1031.8571 788.83477,1042.5714 790.08469,1044.3571 C 791.33461,1046.1429 801.64639,1051.8571 801.64639,1051.8571 L 801.95886,1074.7143 L 818.20773,1076.5 L 818.83269,1051.6786 L 841.17489,1054 L 855.23641,1070.4285 L 856.64256,1082.2143 C 856.64256,1082.2143 891.3948,1118.7775 905.38918,1146.8571 C 919.4507,1175.0714 912.41994,1234 900.702,1267.9286 C 906.79533,1255.6071 926.49774,1214.045 918.66951,1177.0357 C 912.79472,1149.2616 903.20183,1121.4107 861.9547,1078.1965 C 859.61111,1068.6429 859.92359,1058.6429 859.92359,1058.6429 L 846.64326,1041.1429 L 789.77221,1031.8571 z" /> - <path - style="fill:#434343;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path7371" - d="M 788.17857,1032.2143 L 823.64486,1024.5357 L 872.70395,1030.7857 L 888.17163,1044.7143 L 889.89025,1064.1786 C 889.89025,1064.1786 944.8287,1118.1701 943.63652,1173.6429 C 942.28113,1236.7093 922.76709,1260.2763 922.76709,1260.2763 C 922.76709,1260.2763 900.65045,1268.4113 899.40054,1267.697 C 898.15062,1266.9827 921.07361,1234.3698 918.89388,1193.2857 C 917.00289,1157.6439 893.36773,1109.9488 860.28294,1078.1964 C 858.56431,1067.9285 858.17372,1059.0893 858.17372,1059.0893 L 844.58091,1040.7857 L 788.17857,1032.2143 z" /> - </g> - <path - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter7738)" - id="path7648" - d="M 663.35258,719.43749 C 655.48977,719.43749 649.10714,722.49124 649.10714,726.25755 C 649.10714,730.02386 655.48977,733.08101 663.35258,733.08101 C 671.21539,733.08099 677.59525,730.02386 677.59525,726.25755 C 677.59525,725.65449 677.43182,725.07053 677.12477,724.51351 L 689.83905,722.63036 L 689.51611,720.99152 L 675.87477,723.00699 C 673.46196,720.88032 668.75827,719.43749 663.35258,719.43749 z M 664.06806,720.80151 C 670.2656,720.80149 675.29294,723.00812 675.29294,725.72823 C 675.29294,728.44836 670.2656,730.65496 664.06806,730.65496 C 657.87052,730.65496 652.84042,728.44836 652.84042,725.72823 C 652.84042,723.00812 657.87052,720.80151 664.06806,720.80151 z" /> - <path - style="fill:#7d7d7d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path7639" - d="M 662.45972,718.77678 C 654.59691,718.77678 648.21428,721.83053 648.21428,725.59684 C 648.21428,729.36315 654.59691,732.4203 662.45972,732.4203 C 670.32253,732.42028 676.70239,729.36315 676.70239,725.59684 C 676.70239,724.99378 676.53896,724.40982 676.23191,723.8528 L 688.94619,721.96965 L 688.62325,720.33081 L 674.98191,722.34628 C 672.5691,720.21961 667.86541,718.77678 662.45972,718.77678 z M 663.1752,720.1408 C 669.37274,720.14078 674.40008,722.34741 674.40008,725.06752 C 674.40008,727.78765 669.37274,729.99425 663.1752,729.99425 C 656.97766,729.99425 651.94756,727.78765 651.94756,725.06752 C 651.94756,722.34741 656.97766,720.1408 663.1752,720.1408 z" /> - </g> - <rect - y="535.77997" - x="-0.66065449" - height="233.21104" - width="1024.3448" - id="rect3124" - style="opacity:1;fill:none;fill-opacity:0.07843137000000000;fill-rule:evenodd;stroke:#ff0f0f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - sodipodi:linespacing="125%" - id="text3936" - y="665.84381" - x="224.38342" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - xml:space="preserve"><tspan - id="tspan3938" - y="665.84381" - x="224.38342" - sodipodi:role="line">ground.svg</tspan><tspan - id="tspan3940" - y="683.34381" - x="224.38342" - sodipodi:role="line">X 0</tspan><tspan - id="tspan3942" - y="700.84381" - x="224.38342" - sodipodi:role="line">Y 69.4%</tspan><tspan - id="tspan3944" - y="718.34381" - x="224.38342" - sodipodi:role="line">W 100%</tspan><tspan - id="tspan3946" - y="735.84381" - x="224.38342" - sodipodi:role="line">H 30.6%</tspan></text> - </g> - <g - id="g8339"> - <g - transform="matrix(0.9728035,0,0,0.9728035,-13.557158,-333.01597)" - id="g4530"> - <g - transform="matrix(1.4283064,0,0,1.4283064,-415.23892,312.26291)" - id="g4888"> - <path - d="M 789.51449,233.47341 C 788.44719,233.50548 787.33905,233.62844 786.13949,233.91091 C 785.10756,234.15391 783.90918,234.72332 782.76449,235.50466 C 781.85778,234.76481 780.75907,234.12153 779.35824,233.87966 C 779.02816,233.8202 778.69362,233.78883 778.35824,233.78591 C 768.14193,233.78592 759.91831,233.78591 749.70199,233.78591 C 748.51973,233.79189 747.36622,234.151 746.38949,234.81716 C 746.37907,234.81713 746.36866,234.81713 746.35824,234.81716 C 745.15108,234.21054 743.77302,234.03415 742.45199,234.31716 C 741.81399,234.45634 737.93196,234.1968 734.04574,233.97341 C 732.11059,233.86217 730.08022,233.75272 727.73324,234.28591 C 726.52119,234.56127 725.08969,235.1546 723.79574,236.09841 C 721.77259,234.60927 719.53544,234.2043 717.79574,234.06716 C 713.47129,233.72627 709.66181,234.39268 708.32699,234.22341 C 707.64956,234.13752 706.96238,234.16923 706.29574,234.31716 C 707.73278,233.99817 706.78632,233.98719 704.26449,234.06716 C 703.4332,234.09352 701.8475,234.39588 700.38949,235.34841 C 699.97111,235.17425 699.54824,234.93169 699.13949,234.81716 C 698.62064,234.67221 698.08446,234.59862 697.54574,234.59841 C 691.6408,234.59842 687.96671,234.59841 684.29574,234.59841 C 683.73461,234.60299 683.17697,234.68716 682.63949,234.84841 C 682.09197,234.68421 681.5236,234.60001 680.95199,234.59841 C 677.9586,234.59842 675.15382,234.59841 670.48324,234.59841 C 669.856,234.60444 669.23369,234.70992 668.63949,234.91091 C 666.80488,235.51089 665.20757,236.32935 663.76449,237.25466 C 663.61843,237.06342 663.56466,236.83907 663.38949,236.66091 C 661.25281,234.48782 659.11275,234.47341 657.57699,234.47341 C 651.75049,234.47341 645.90349,234.47341 640.07699,234.47341 C 638.09018,234.47612 636.23665,235.47327 635.13949,237.12966 C 633.06828,235.44311 630.37222,234.23122 627.48324,234.50466 C 627.44157,234.50422 627.39991,234.50422 627.35824,234.50466 C 626.36759,234.61907 623.49753,234.47627 620.63949,234.37966 C 619.1926,234.33075 617.73872,234.33188 616.17074,234.50466 C 615.36452,234.5935 614.46335,234.67764 613.51449,234.97341 C 612.33848,234.44411 611.02202,234.31247 609.76449,234.59841 C 609.20187,234.72473 606.22102,234.41079 602.79574,234.09841 C 601.08016,233.94195 599.18125,233.80213 596.85824,234.41091 C 595.58398,234.74485 594.16036,235.53602 592.92074,236.62966 C 590.64262,234.52585 587.0155,233.99596 584.42074,234.59841 C 584.26285,234.63367 584.10647,234.67537 583.95199,234.72341 C 584.81595,234.44684 584.14046,234.67174 583.17074,234.59841 C 582.20102,234.52508 580.86413,234.34194 579.35824,234.25466 C 577.85235,234.16738 576.20545,233.97284 573.76449,234.94216 C 573.32011,235.11863 572.81016,235.43999 572.32699,235.75466 C 569.87667,234.19536 567.53431,234.14234 565.63949,234.16091 C 563.49868,234.18189 561.58931,234.46562 560.01449,234.59841 C 558.43967,234.7312 557.17284,234.59814 557.29574,234.62966 C 556.81591,234.50606 556.32248,234.44307 555.82699,234.44216 C 549.17022,234.44213 542.51496,234.44216 535.85824,234.44216 C 534.28308,234.44073 532.77202,235.06583 531.65821,236.17963 C 530.54441,237.29344 529.91931,238.8045 529.92074,240.37966 L 529.92074,241.37966 L 529.92074,242.37966 C 529.919,242.84252 529.97144,243.30399 530.07699,243.75466 C 530.06137,243.68987 530.17467,244.91861 530.04574,246.44216 C 529.91685,247.95961 529.63949,249.83618 529.67074,252.00466 C 529.68677,253.08212 529.7747,254.23183 530.13949,255.56716 C 530.52942,256.99772 531.33372,258.54822 532.57699,259.75466 C 533.9189,261.05561 535.77874,261.90118 537.60824,262.12966 C 537.62907,262.12977 537.64991,262.12977 537.67074,262.12966 C 538.21937,262.19487 538.71385,262.17508 539.23324,262.16091 C 539.13993,263.14297 539.01948,264.0975 538.88949,265.37966 C 538.83714,265.89821 538.84247,266.08397 538.85824,265.91091 C 538.75632,267.01793 538.75938,267.02641 538.85824,265.94216 C 538.76456,266.97992 538.77335,267.00337 538.85824,266.03591 C 538.73187,267.46313 538.71435,269.11575 539.01449,270.97341 C 538.92889,273.49626 538.21338,276.8868 539.35824,281.16091 C 539.393,281.29069 539.38237,281.40451 539.42074,281.53591 C 539.42918,281.56519 539.41184,281.56843 539.42074,281.59841 C 539.81367,282.91106 540.45948,284.12437 541.26449,285.12966 C 542.16319,286.26589 543.51843,287.33625 545.07699,287.94216 C 547.48868,288.87974 549.86277,288.66435 552.23324,288.12966 C 554.18736,288.47004 556.09197,288.65788 557.98324,288.44216 C 559.18518,288.30079 560.32384,287.99411 561.42074,287.53591 C 562.53311,287.07048 563.69622,286.35957 564.67074,285.41091 C 565.63088,284.48961 566.37553,283.41615 566.88949,282.28591 C 566.88952,282.27549 566.88952,282.26508 566.88949,282.25466 C 567.43435,281.05271 567.68941,279.88304 567.82699,278.78591 C 568.08415,276.74939 567.86873,274.73977 567.45199,272.66091 C 567.56511,271.21359 567.66251,269.76734 567.60824,268.44216 C 567.54005,266.75286 567.4293,265.12941 567.35824,263.62966 C 567.32946,263.02224 567.39712,262.70172 567.42074,262.19216 C 568.13049,262.10297 568.82986,262.1498 569.54574,261.91091 C 569.55169,262.28793 569.57507,262.7544 569.57699,263.12966 C 569.59607,266.85883 569.09169,271.27806 569.04574,276.31716 C 569.04367,276.54415 569.01449,276.68102 569.01449,276.91091 C 568.83224,278.90948 568.77596,281.09818 570.20199,283.66091 C 571.76292,286.46607 575.52878,288.12966 578.35824,288.12966 C 580.71316,288.12964 583.54232,288.65138 587.29574,288.06716 C 590.69861,287.5375 593.68267,288.12966 598.35824,288.12966 C 601.30799,288.12964 604.25216,288.12966 607.20199,288.12966 L 607.20199,288.06716 C 608.49456,288.14191 609.92475,288.05832 611.32699,287.41091 C 611.92534,287.13465 612.39972,286.71268 612.88949,286.31716 C 614.98992,287.51895 616.53862,287.53591 618.13949,287.53591 C 623.35201,287.53589 628.58316,287.53591 633.79574,287.53591 C 635.15252,287.52646 636.46506,287.05218 637.51449,286.19216 C 638.16157,286.61513 638.84562,286.95591 639.51449,287.16091 C 642.52647,288.08406 644.72413,287.66228 646.38949,287.50466 C 646.43116,287.5051 646.47282,287.5051 646.51449,287.50466 C 647.51967,287.38857 650.38572,287.50833 653.23324,287.59841 C 654.657,287.64345 656.11209,287.6711 657.67074,287.50466 C 658.38306,287.4286 659.1538,287.31909 659.98324,287.09841 C 661.34291,288.00463 663.01616,288.30989 664.60824,287.94216 C 665.28894,287.78933 667.7245,288.11367 670.85824,288.44216 C 672.42511,288.60641 674.26417,288.78789 676.57699,288.12966 C 678.19945,287.66791 679.96297,286.42702 681.26449,284.84841 C 682.30709,286.04494 683.565,287.00649 684.79574,287.47341 C 687.14028,288.36289 689.01278,288.27502 690.63949,288.19216 C 693.89291,288.02645 696.60567,287.7959 697.07699,287.91091 C 698.36074,288.22793 699.71361,288.10694 700.92074,287.56716 C 702.12255,288.15605 703.48818,288.32125 704.79574,288.03591 C 705.43486,287.89648 709.31131,288.16087 713.20199,288.37966 C 715.14733,288.48906 717.16774,288.57897 719.51449,288.03591 C 720.66028,287.77076 722.00006,287.20485 723.23324,286.34841 C 726.04204,288.57894 728.60402,288.46571 730.60824,288.44216 C 734.61668,288.39506 738.59543,288.10471 738.20199,288.00466 C 738.38735,288.05541 738.57508,288.09713 738.76449,288.12966 C 740.37888,288.37865 742.12499,288.39443 743.92074,287.78591 C 744.6972,287.52279 745.42333,287.06218 746.10824,286.56716 C 746.14386,286.59124 746.16607,286.6377 746.20199,286.66091 C 748.46237,288.12161 750.62913,288.27064 752.45199,288.16091 C 761.40473,287.62197 770.73832,288.19216 780.42074,288.19216 C 781.19205,288.19399 781.95631,288.04538 782.67074,287.75466 C 783.78229,288.19945 785.00242,288.2975 786.17074,288.03591 C 786.78795,287.90004 790.65192,288.18488 794.54574,288.41091 C 796.49265,288.52393 798.5335,288.61423 800.8895,288.06716 C 803.2455,287.52009 806.4054,285.73389 807.7645,282.59841 C 808.0889,281.85931 808.259,281.06179 808.2645,280.25466 C 808.2645,266.74627 808.2645,253.23178 808.2645,239.72341 C 808.2609,237.90366 807.4223,236.18624 805.9895,235.06439 C 804.5567,233.94253 802.6882,233.54037 800.9207,233.97341 C 800.8068,234.00107 796.61815,233.80519 792.60824,233.56716 C 791.60594,233.50766 790.58179,233.44134 789.51449,233.47341 z M 616.35824,255.19216 C 617.58379,257.10998 618.78862,259.05792 620.01449,260.97341 C 619.00233,262.54468 617.93167,264.24734 616.98324,265.72341 C 616.97489,264.10003 617.04811,262.59037 616.98324,260.94216 C 616.86539,257.94922 616.29574,256.46311 616.29574,256.28591 C 616.29574,255.95765 616.3519,255.52536 616.35824,255.19216 z M 657.54574,255.72341 L 657.79574,260.50466 L 657.79574,260.81716 C 657.79219,264.42463 657.72325,265.40706 657.67074,267.00466 C 656.4211,265.03826 655.18078,263.06874 653.92074,261.09841 C 655.1064,259.34775 656.35687,257.43144 657.54574,255.72341 z M 778.95199,260.00466 C 778.95199,260.64012 778.95199,261.27545 778.95199,261.91091 C 777.82636,261.75317 776.74257,261.75546 775.70199,261.91091 L 775.70199,261.87966 C 772.97909,262.15378 771.59577,261.98544 770.76449,261.94216 C 770.81392,261.67292 770.73725,261.90352 770.85824,261.50466 C 770.98983,261.03628 771.0633,260.55348 771.07699,260.06716 C 772.98767,260.25714 775.59486,260.48558 778.95199,260.00466 z" - id="path3944" - style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" /> - <path - d="M 792.38949,237.16091 C 790.52,237.04994 788.71647,237.03402 786.98324,237.44216 C 785.25001,237.8503 783.33936,239.01213 782.70199,241.03591 C 782.62566,241.2574 782.58351,241.48923 782.57699,241.72341 C 782.57699,241.86922 782.57699,242.0151 782.57699,242.16091 C 782.51862,241.93443 782.55243,241.6613 782.48324,241.44216 C 782.21851,240.6037 781.88185,239.82817 781.32699,239.09841 C 780.77213,238.36865 779.90466,237.63902 778.76449,237.44216 C 778.63026,237.41978 778.49431,237.40932 778.35824,237.41091 C 768.14192,237.41092 759.91831,237.41091 749.70199,237.41091 C 748.95726,237.41224 748.25898,237.77302 747.82699,238.37966 L 746.01449,240.91091 C 746.01449,240.64008 746.01449,240.36924 746.01449,240.09841 C 746.01425,239.3979 745.69571,238.73544 745.1487,238.29783 C 744.60169,237.86023 743.88547,237.69488 743.20199,237.84841 C 741.33404,238.25592 737.45294,237.77559 733.82699,237.56716 C 732.01711,237.46312 730.25693,237.42841 728.54574,237.81716 C 726.83455,238.20591 724.96539,239.24128 724.13949,241.12966 C 723.98893,241.47356 723.92456,241.849 723.95199,242.22341 C 724.04177,243.44307 724.07737,244.39799 724.10824,245.41091 C 723.97657,245.18977 723.9364,245.19044 723.79574,244.94216 C 723.97739,242.9141 723.70368,241.04524 722.54574,239.75466 C 721.16836,238.2195 719.25425,237.79805 717.51449,237.66091 C 714.03497,237.38662 710.17501,238.11094 707.85824,237.81716 C 707.59794,237.78305 707.33373,237.79362 707.07699,237.84841 C 707.05806,237.85261 705.92223,237.64355 704.38949,237.69216 C 703.62312,237.71646 702.22912,237.9922 701.48324,239.25466 C 701.23863,239.66868 701.23025,240.04863 701.17074,240.44216 C 701.10235,240.32815 701.09882,240.20904 701.01449,240.09841 C 700.34631,239.22175 699.34911,238.64735 698.17074,238.31716 C 697.96769,238.25739 697.75739,238.22584 697.54574,238.22341 C 691.64079,238.22342 687.9667,238.22341 684.29574,238.22341 C 683.70399,238.21962 683.13341,238.44337 682.70199,238.84841 C 682.67996,238.86918 682.63094,238.88979 682.60824,238.91091 C 682.17147,238.46776 681.5742,238.21984 680.95199,238.22341 C 677.95858,238.22342 675.15381,238.22341 670.48324,238.22341 C 670.23854,238.22669 669.99593,238.26888 669.76449,238.34841 C 665.87496,239.62042 663.36936,241.61228 661.82699,243.87966 C 661.59502,244.21242 661.45489,244.60047 661.42074,245.00466 L 660.95199,251.09841 C 660.94493,251.20246 660.94493,251.30686 660.95199,251.41091 L 661.42074,260.50466 L 661.42074,260.62966 C 661.41649,271.70643 661.13696,271.52392 661.04574,279.06716 C 657.20165,273.06677 653.40734,267.05013 649.54574,261.03591 C 652.89087,255.95273 655.96953,251.86184 659.45199,246.41091 C 659.47358,246.38017 659.49442,246.34891 659.51449,246.31716 C 660.12747,245.25609 661.04151,244.18958 661.51449,242.53591 C 661.75098,241.70907 661.78271,240.19594 660.79574,239.19216 C 659.80877,238.18838 658.67612,238.09841 657.57699,238.09841 C 651.75049,238.09841 645.90349,238.09841 640.07699,238.09841 C 639.08834,238.09669 638.20851,238.72514 637.88949,239.66091 C 637.31162,241.35286 637.09989,242.80358 636.48324,244.91091 C 635.8239,243.63 635.14583,242.44022 634.38949,241.47341 C 632.72369,239.34407 630.40174,237.88596 627.82699,238.12966 C 627.81657,238.12959 627.80616,238.12959 627.79574,238.12966 C 626.14523,238.32027 623.23895,238.09675 620.51449,238.00466 C 619.14531,237.95838 617.83328,237.95997 616.57699,238.09841 C 615.3861,238.22964 614.21736,238.44898 613.10824,239.28591 C 612.61812,238.37768 611.58439,237.90548 610.57699,238.12966 C 608.77098,238.53514 605.58625,237.97514 602.48324,237.69216 C 600.9306,237.55057 599.36805,237.49886 597.79574,237.91091 C 596.22343,238.32296 594.58242,239.48396 593.85824,241.25466 C 593.73923,241.53129 593.67553,241.82855 593.67074,242.12966 C 593.67074,246.98603 594.64083,253.98268 594.76449,259.56716 C 594.82632,262.3594 594.64538,264.81578 594.23324,266.09841 C 594.02717,266.73973 593.77648,267.00009 593.73324,267.03591 C 593.69,267.07173 593.86045,267.08633 593.54574,267.03591 C 592.56641,266.87902 592.49139,266.75186 592.23324,266.16091 C 591.97509,265.56996 591.82459,264.34557 591.88949,262.84841 C 592.01624,259.92445 592.89946,256.24745 592.20199,252.81716 L 592.23324,252.81716 C 591.9903,250.573 592.51445,247.052 592.29574,243.94216 C 592.18639,242.38724 591.93038,240.77269 590.67074,239.41091 C 589.4111,238.04913 587.25786,237.65959 585.23324,238.12966 C 585.16988,238.14781 585.10732,238.16866 585.04574,238.19216 C 584.91793,238.23307 583.99876,238.3073 582.88949,238.22341 C 581.78022,238.13952 580.45953,237.95617 579.13949,237.87966 C 577.81945,237.80315 576.52805,237.75334 575.10824,238.31716 C 574.39834,238.59907 573.61293,239.10198 573.10824,239.91091 C 572.72633,240.52305 572.69963,241.25004 572.67074,241.94216 C 572.43042,240.83004 571.80271,239.84507 571.04574,239.22341 C 569.41506,237.88539 567.49784,237.76801 565.67074,237.78591 C 563.85064,237.80374 561.97674,238.05041 560.29574,238.19216 C 558.61474,238.33391 557.1146,238.34688 556.38949,238.16091 C 556.20659,238.10652 556.01765,238.07503 555.82699,238.06716 C 549.17025,238.06713 542.51497,238.06716 535.85824,238.06716 C 535.24447,238.06567 534.65541,238.30883 534.22141,238.74283 C 533.78741,239.17683 533.54425,239.76589 533.54574,240.37966 L 533.54574,241.37966 L 533.54574,242.37966 C 533.5459,242.55857 533.56688,242.73685 533.60824,242.91091 C 533.78722,243.65326 533.7769,245.13088 533.63949,246.75466 C 533.50177,248.37618 533.27014,250.16539 533.29574,251.94216 C 533.30892,252.82783 533.39537,253.70478 533.63949,254.59841 C 533.89318,255.52915 534.38065,256.45487 535.10824,257.16091 C 535.87435,257.90364 536.93257,258.39299 538.07699,258.53591 C 539.10302,258.65786 540.19884,258.50412 541.35824,258.22341 L 541.35824,258.25466 C 542.04755,258.15114 542.4168,258.24005 542.54574,258.28591 C 542.67411,258.33158 542.59822,258.26248 542.67074,258.37966 C 542.79197,258.57554 543.03945,259.56279 542.98324,260.94216 C 542.92703,262.32153 542.68917,264.03167 542.51449,265.75466 C 542.48448,266.05191 542.45448,266.19612 542.45199,266.22341 C 542.41178,266.66015 542.41411,266.67007 542.45199,266.25466 C 542.41376,266.67813 542.42072,266.73604 542.45199,266.37966 C 542.31838,267.88871 542.3052,269.38403 542.63949,270.91091 C 542.56919,273.79504 541.97945,277.28736 542.88949,280.47341 C 542.89523,280.4935 542.88363,280.51585 542.88949,280.53591 C 542.89585,280.55873 542.88238,280.54322 542.88949,280.56716 C 543.14783,281.43018 543.55884,282.20134 544.07699,282.84841 C 544.63725,283.55675 545.43678,284.19678 546.38949,284.56716 C 548.11499,285.23797 550.10189,285.0844 552.42074,284.44216 C 554.27029,284.78771 556.01496,284.99177 557.54574,284.81716 C 557.55616,284.81723 557.56657,284.81723 557.57699,284.81716 C 558.46117,284.71317 559.26139,284.50675 560.01449,284.19216 C 560.78352,283.87039 561.52025,283.41997 562.13949,282.81716 C 562.75139,282.23002 563.23194,281.54469 563.57699,280.78591 C 563.57706,280.77549 563.57706,280.76508 563.57699,280.75466 C 563.93362,279.96794 564.12835,279.1536 564.23324,278.31716 C 564.44013,276.67874 564.29176,274.90205 563.85824,272.91091 C 564.01457,271.49443 564.04319,270.06247 563.98324,268.59841 C 563.91789,266.97936 563.80678,265.36934 563.73324,263.81716 C 563.62661,261.56635 563.82762,259.83916 564.13949,258.59841 C 565.69184,258.8397 567.12935,258.89391 568.38949,258.47341 C 570.24377,257.85464 571.57139,256.31889 572.17074,254.72341 C 572.62603,253.50873 572.74847,252.26403 572.79574,251.00466 C 572.9846,255.04054 573.18225,259.23871 573.20199,263.09841 C 573.22362,267.32668 572.63949,271.86887 572.63949,276.91091 L 572.67074,276.91091 C 572.50822,278.6614 572.4791,280.331 573.35824,281.91091 C 574.27511,283.55863 576.31563,284.50466 578.35824,284.50466 C 581.04603,284.50464 583.7056,284.94467 586.73324,284.47341 C 590.78493,283.84275 594.10396,284.50466 598.35824,284.50466 C 601.30802,284.50464 604.25218,284.50466 607.20199,284.50466 L 607.20199,284.44216 C 608.08056,284.52127 608.99564,284.48224 609.82699,284.09841 C 610.75692,283.66907 611.4634,282.93819 611.92074,282.16091 C 612.83542,280.60635 613.07456,278.90029 613.35824,276.87966 C 613.37574,276.77632 613.38618,276.67192 613.38949,276.56716 C 613.38949,271.52186 613.56327,266.2763 613.35824,261.06716 C 613.27247,258.88906 612.67074,257.36903 612.67074,256.28591 C 612.67075,252.22929 613.04728,247.94635 613.23324,243.62966 C 613.42669,243.92072 613.64985,244.22797 613.82699,244.50466 C 617.3093,250.03991 620.81704,255.51403 624.32699,261.00466 C 621.28195,265.73124 619.03707,269.22503 615.82699,274.25466 C 614.56708,276.1347 613.31759,277.3851 612.95199,279.59841 C 612.76919,280.70507 613.40971,282.47773 614.54574,283.16091 C 615.68177,283.84409 616.78032,283.91091 618.13949,283.91091 C 623.35203,283.91089 628.58317,283.91091 633.79574,283.91091 C 634.78439,283.91263 635.66422,283.28418 635.98324,282.34841 C 636.21859,281.65929 636.45065,280.74736 636.76449,279.72341 C 637.555,281.68206 638.93738,283.22088 640.57699,283.72341 C 642.54905,284.32783 644.38393,284.03694 646.04574,283.87966 C 646.05616,283.87973 646.06657,283.87973 646.07699,283.87966 C 647.73315,283.68838 650.64171,283.88747 653.35824,283.97341 C 654.71651,284.01638 656.04815,284.04413 657.29574,283.91091 C 658.54333,283.77769 659.75787,283.5902 660.92074,282.62966 C 660.96399,282.58961 661.00569,282.54791 661.04574,282.50466 C 661.14233,283.12986 661.49144,283.68797 662.01136,284.04837 C 662.53128,284.40877 663.1764,284.53984 663.79574,284.41091 C 665.64767,283.99513 668.43502,284.52384 671.23324,284.81716 C 672.63235,284.96382 674.08043,285.05558 675.57699,284.62966 C 677.07355,284.20374 678.57405,283.00535 679.26449,281.31716 C 679.43153,280.92306 679.48563,280.49025 679.42074,280.06716 C 678.81124,276.21195 680.4318,275.34703 681.17074,275.28591 C 681.54021,275.25535 681.84351,275.34232 682.20199,275.84841 C 682.56047,276.3545 682.93943,277.45258 682.67074,279.41091 C 682.6252,279.7019 682.63581,279.99891 682.70199,280.28591 C 683.16226,282.08618 684.58857,283.53373 686.07699,284.09841 C 687.56541,284.66309 689.01881,284.64016 690.45199,284.56716 C 693.31835,284.42116 696.27525,284.00177 697.95199,284.41091 C 698.92761,284.63693 699.93762,284.20768 700.45199,283.34841 C 700.79374,282.77394 701.02136,282.15036 701.23324,281.53591 C 701.23324,281.77541 701.23324,282.01518 701.23324,282.25466 C 701.23348,282.95517 701.55202,283.61763 702.09903,284.05524 C 702.64604,284.49284 703.36226,284.65819 704.04574,284.50466 C 705.91412,284.09706 709.76429,284.58205 713.38949,284.78591 C 715.20209,284.88784 716.98834,284.90121 718.70199,284.50466 C 720.41564,284.10811 722.28136,283.0828 723.10824,281.19216 C 723.26397,280.81699 723.31787,280.40735 723.26449,280.00466 C 723.15643,278.9468 723.20994,278.42023 723.17074,277.59841 C 723.45009,278.04829 723.6012,278.25328 723.92074,278.81716 C 723.85001,279.49906 723.71821,280.19791 723.85824,280.84841 C 724.08451,281.89951 724.68944,282.87429 725.48324,283.50466 C 727.07084,284.76541 728.85076,284.83708 730.54574,284.81716 C 733.93569,284.77733 737.83026,284.17966 739.10824,284.50466 C 739.18062,284.51856 739.25362,284.52899 739.32699,284.53591 C 740.54696,284.72407 741.66746,284.70957 742.73324,284.34841 C 743.79902,283.98725 744.73646,283.21686 745.29574,282.34841 C 745.76893,281.61363 745.95829,280.86408 746.10824,280.09841 C 746.37144,281.56557 747.07526,282.92175 748.17074,283.62966 C 749.49733,284.48692 750.93074,284.64557 752.23324,284.56716 C 761.47558,284.01078 770.88352,284.56716 780.42074,284.56716 C 781.47287,284.55807 782.38553,283.83822 782.63949,282.81716 C 782.94493,284.03376 784.16649,284.78335 785.38949,284.50466 C 787.24936,284.09525 791.10682,284.5754 794.73324,284.78591 C 796.54645,284.89117 798.3285,284.93466 800.0457,284.53591 C 801.763,284.13716 803.6296,283.05829 804.452,281.16091 C 804.5751,280.87459 804.6389,280.56631 804.6395,280.25466 C 804.6395,266.74626 804.6395,253.23178 804.6395,239.72341 C 804.6415,239.016 804.3188,238.34679 803.764,237.90785 C 803.2092,237.46891 802.4837,237.30878 801.7957,237.47341 C 800.2367,237.85193 796.12875,237.38287 792.38949,237.16091 z M 572.57699,244.59841 C 572.57832,244.67615 572.6068,244.73961 572.60824,244.81716 L 572.57699,244.81716 C 572.59053,244.74199 572.56527,244.67297 572.57699,244.59841 z M 782.57699,251.53591 C 782.57699,257.411 782.57699,263.28564 782.57699,269.16091 C 782.40398,268.59779 782.29372,268.01353 781.92074,267.47341 C 781.33377,266.6234 780.36445,265.91736 779.29574,265.59841 C 778.28582,265.29701 777.21482,265.32312 776.07699,265.50466 C 776.01076,265.51523 775.95621,265.49284 775.88949,265.50466 C 772.41729,265.84175 769.21664,265.84689 767.95199,265.28591 C 767.30737,264.99997 767.15293,264.8102 766.98324,264.22341 C 766.81355,263.63662 766.79299,262.40866 767.38949,260.44216 C 767.51269,260.00107 767.50181,259.5333 767.35824,259.09841 C 766.77229,257.24021 767.07154,256.77033 767.10824,256.72341 C 767.14494,256.67649 767.61624,256.36418 768.82699,256.28591 C 771.24849,256.12937 775.23022,257.01325 778.73324,256.44216 C 778.74366,256.44223 778.75407,256.44223 778.76449,256.44216 C 779.91136,256.24266 780.75107,255.51022 781.29574,254.78591 C 781.84041,254.0616 782.18654,253.2754 782.45199,252.44216 C 782.53949,252.16751 782.50592,251.82238 782.57699,251.53591 z M 681.95199,253.72341 C 682.38574,255.20497 682.39573,256.3322 682.17074,256.78591 C 681.88036,257.37149 681.87488,257.25376 681.70199,257.19216 C 680.96074,256.92807 679.53705,255.29057 679.42074,254.59841 C 679.36258,254.25233 679.32192,254.37014 679.45199,254.25466 C 679.58206,254.13918 680.29222,253.74336 681.95199,253.72341 z M 782.57699,277.66091 C 782.57699,278.1713 782.57699,278.68179 782.57699,279.19216 C 782.58566,278.7287 782.49767,278.53726 782.54574,278.00466 C 782.5553,277.89878 782.56644,277.76862 782.57699,277.66091 z" - id="path3948" - style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" /> - <path - d="M 670.46898,240.52481 C 666.95168,241.67508 665.01016,243.32682 663.73526,245.201 L 663.24894,251.29875 L 663.73526,260.50149 C 663.73528,273.77032 663.28635,268.89279 663.28635,282.1616 C 668.4808,280.99536 675.31249,284.87958 677.12787,280.44077 C 675.64154,271.03941 686.2481,270.24318 684.94646,279.72999 C 686.16089,284.48001 693.6011,280.96898 698.48871,282.1616 C 700.87878,278.14399 698.862,269.84706 699.53618,264.16762 C 699.53618,257.8024 699.53618,251.45399 699.53618,245.08877 C 695.53399,247.05669 690.87265,248.87756 684.83423,248.08153 C 682.50639,248.35842 681.07687,248.48405 679.63431,248.00671 C 678.89051,247.7606 677.86184,247.06901 677.57679,245.94919 C 677.29173,244.82937 677.69809,244.01457 678.0257,243.48016 C 678.68092,242.41134 679.51489,241.7648 680.3825,241.01113 C 680.585,240.83522 680.74187,240.69805 680.94364,240.52481 C 677.95021,240.52481 675.13955,240.52481 670.46898,240.52481 z M 681.91629,251.41098 C 682.44515,251.40462 683.04132,251.43043 683.67454,251.4858 C 686.28418,256.96928 683.44528,260.28379 680.90623,259.37921 C 677.42726,258.13976 673.98345,251.50633 681.91629,251.41098 z M 684.31051,240.52481 C 681.40303,243.26496 675.38283,247.00344 684.75943,245.87437 C 690.90473,246.80367 695.26753,244.78797 699.53619,242.61974 C 699.52066,241.8603 699.29756,241.01351 697.55348,240.52481 C 691.64854,240.52481 687.98147,240.52481 684.31051,240.52481 z M 565.70199,240.09841 C 562.46997,240.13008 558.35648,241.02839 555.82699,240.37966 C 549.17026,240.37963 542.51498,240.37966 535.85824,240.37966 L 535.85824,241.37966 L 535.85824,242.37966 C 537.06951,247.40353 532.26538,258.2498 541.01449,255.97341 C 548.67653,254.82273 543.39517,266.21127 544.95199,270.97341 C 544.80093,277.17085 543.13984,284.85503 552.20199,282.12966 C 560.19785,283.85358 563.31888,280.86683 561.54574,273.12966 C 562.30472,267.81355 560.06932,259.59593 562.57699,255.97341 C 571.6538,258.60881 570.72208,251.54162 570.29574,244.97341 C 571.2999,240.90241 568.93401,240.06674 565.70199,240.09841 z M 535.86746,242.37378 C 537.07873,247.39767 532.28028,258.24186 541.02939,255.96547 C 548.69142,254.8148 543.40854,266.20105 544.96536,270.96319 C 544.8143,277.16066 543.12992,284.84312 552.19207,282.11775 C 560.18793,283.84168 563.32121,280.85629 561.54807,273.11912 C 562.30704,267.80299 560.07279,259.58799 562.58046,255.96547 C 571.65728,258.60088 570.71743,251.53535 570.29109,244.96714 C 572.29943,236.82512 560.89666,241.67154 555.83768,240.37408 C 549.18094,240.37408 542.5242,240.37408 535.86746,240.37408 L 535.86746,241.37394 L 535.86746,242.37378 z M 574.84004,242.37378 C 574.84004,249.76255 575.48152,256.35017 575.51606,263.10345 C 575.53876,267.54248 574.95963,272.0531 574.95963,276.90985 C 574.63208,280.18292 575.28914,282.18024 578.37296,282.18024 C 581.27256,282.18024 583.81943,282.57961 586.38523,282.18024 C 590.84978,281.48534 594.35764,282.18024 598.34384,282.18024 C 601.29364,282.18024 604.24342,282.18024 607.19322,282.18024 C 609.85511,282.54639 610.52301,280.46117 611.07037,276.5624 C 611.07037,271.466 611.25999,266.25378 611.0594,261.15739 C 610.99406,259.49778 610.35285,257.95401 610.35285,256.29441 C 610.35285,250.98763 611.07037,245.68086 611.07037,240.37408 C 605.87591,241.54034 597.78912,237.68065 595.97375,242.11947 C 595.97375,251.1806 599.82827,270.36851 593.17625,269.30284 C 586.77204,268.27688 591.11048,258.23267 589.93666,253.06837 C 589.34274,247.58199 592.05671,238.91604 585.7769,240.37408 C 582.7413,241.34584 574.45114,238.23102 574.84004,242.37378 z M 703.53734,242.08248 C 701.67713,244.83045 704.68998,251.64536 703.53734,257.19386 C 703.53734,265.54433 703.53734,273.89482 703.53734,282.24529 C 708.83859,281.08877 719.06746,284.66189 720.99112,280.26348 C 720.07143,271.26048 721.44824,269.37679 726.24134,278.08393 C 724.46213,285.48715 734.98771,281.05434 739.67086,282.24529 C 747.42267,283.44085 742.17293,272.15726 743.70362,267.38165 C 743.70362,258.28799 743.70362,249.19431 743.70362,240.10066 C 738.40236,241.25717 728.1735,237.68407 726.24983,242.08248 C 726.81525,249.76322 726.58028,255.03139 721.47432,245.61673 C 723.0799,237.1555 713.45335,240.8467 707.57009,240.10066 C 705.67924,240.52039 702.48224,238.79387 703.53734,242.08248 z M 784.88071,241.71763 C 784.88071,255.22601 784.88071,268.73436 784.88071,282.24273 C 790.18197,281.07579 800.4108,284.68113 802.3345,280.24304 C 802.3345,266.73466 802.3345,253.2263 802.3345,239.71793 C 797.37711,240.9215 786.29468,237.22793 784.88071,241.71763 z M 748.51044,254.432 C 748.51044,267.94037 748.19778,265.69385 748.19778,279.20222 C 748.20856,281.65802 750.15129,282.35968 752.09404,282.24273 C 761.52067,281.67529 770.98371,282.24273 780.42854,282.24273 C 778.96106,277.50864 784.07741,266.39824 776.29899,267.77618 C 769.08606,268.5023 762.48008,268.64062 765.16857,259.77739 C 762.38367,250.94576 772.94226,255.0371 778.36377,254.15325 C 781.6993,253.573 781.80349,240.31183 778.36377,239.71793 C 768.14744,239.71793 759.92022,239.71793 749.7039,239.71793 L 747.31697,243.0295 L 748.51044,254.432 z M 615.7507,243.251 C 619.48957,249.19407 623.30782,255.08693 627.08746,261.00612 C 623.5538,266.49207 621.26489,270.00306 617.75355,275.5047 C 615.1981,279.31798 613.45889,281.58972 618.14763,281.58972 C 623.36019,281.58972 628.57276,281.58972 633.78532,281.58972 C 634.46165,279.60946 636.67723,269.74355 638.49862,278.0891 C 639.38456,282.1904 642.49755,281.90386 645.81665,281.58972 C 649.95747,281.1115 657.42301,282.55156 659.46677,280.8634 C 655.22468,274.24897 651.0366,267.60918 646.78412,261.00612 C 650.51883,255.20801 653.80401,250.98164 657.51798,245.16834 C 658.89045,242.79258 660.85088,240.42251 657.56576,240.42251 C 651.73926,240.42251 645.91277,240.42251 640.08627,240.42251 C 639.40993,242.40278 639.99184,243.96812 636.64453,250.966 C 633.97837,243.84635 631.37404,240.10836 628.05491,240.42251 C 623.9141,240.90071 616.44855,239.46064 614.40481,241.14881 C 614.85345,241.84955 615.30207,242.55026 615.7507,243.251 z" - id="path3950" - style="font-size:40px;font-style:normal;font-weight:normal;fill:url(#linearGradient2781);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" /> - </g> - <g - transform="matrix(1.4283064,0,0,1.4283064,-418.89,315.91401)" - id="g4830"> - <g - transform="matrix(0.6406817,0.2844042,-0.2998221,0.5938165,638.31986,-89.896313)" - id="g3872"> - <path - d="M 472.13252,390.32748 C 472.13939,418.33732 437.53354,441.04617 394.84268,441.04617 C 352.15182,441.04617 317.54597,418.33732 317.55284,390.32748 C 317.54597,362.31764 352.15182,339.60879 394.84268,339.60879 C 437.53354,339.60879 472.13939,362.31764 472.13252,390.32748 L 472.13252,390.32748 z" - transform="matrix(0.6882369,-7.5302481e-3,-1.0406728e-2,0.7876371,51.619489,30.132613)" - id="path3874" - style="opacity:1;fill:#000000;fill-opacity:1" /> - <path - d="M 365.74864,327.91006 C 365.74864,349.91773 345.27315,372.35905 319.01839,372.35905 C 292.76362,372.35905 270.62268,349.91773 270.62268,327.91006 C 270.62268,305.90239 289.84906,273.88467 316.10383,273.88467 C 342.35859,273.88467 365.74864,305.90239 365.74864,327.91006 z" - id="path3876" - style="fill:url(#radialGradient2783);fill-opacity:1" /> - <path - d="M 321.74956,317.23438 C 321.74956,326.89185 314.54695,334.72077 305.66208,334.72077 C 296.77721,334.72077 289.5746,326.89185 289.5746,317.23438 C 289.5746,307.57691 296.77721,299.74799 305.66208,299.74799 C 314.54695,299.74799 321.74956,307.57691 321.74956,317.23438 L 321.74956,317.23438 z" - transform="matrix(1.0138481,0,0,0.7208741,-7.2445917,80.839045)" - id="path3878" - style="opacity:1;fill:url(#radialGradient2785);fill-opacity:1" /> - <path - d="M 321.74956,317.23438 C 321.74956,326.89185 314.54695,334.72077 305.66208,334.72077 C 296.77721,334.72077 289.5746,326.89185 289.5746,317.23438 C 289.5746,307.57691 296.77721,299.74799 305.66208,299.74799 C 314.54695,299.74799 321.74956,307.57691 321.74956,317.23438 L 321.74956,317.23438 z" - transform="matrix(1.0708886,0,0,0.7930302,1.8438299,56.686911)" - id="path3880" - style="opacity:1;fill:url(#radialGradient2787);fill-opacity:1" /> - <path - d="M 320.62771,313.14539 C 320.62947,316.49214 317.3875,319.206 313.38773,319.206 C 309.38796,319.206 306.14599,316.49214 306.14775,313.14539 C 306.14599,309.79864 309.38796,307.08478 313.38773,307.08478 C 317.3875,307.08478 320.62947,309.79864 320.62771,313.14539 L 320.62771,313.14539 z" - transform="matrix(1.122449,0,0,1.2909313,-27.988686,-94.598747)" - id="path3882" - style="opacity:1;fill:url(#radialGradient2789);fill-opacity:1" /> - <path - d="M 320.62771,313.14539 C 320.62947,316.49214 317.3875,319.206 313.38773,319.206 C 309.38796,319.206 306.14599,316.49214 306.14775,313.14539 C 306.14599,309.79864 309.38796,307.08478 313.38773,307.08478 C 317.3875,307.08478 320.62947,309.79864 320.62771,313.14539 L 320.62771,313.14539 z" - transform="matrix(1.0115466,0,0,1.1015857,-6.488929,-32.560137)" - id="path3884" - style="opacity:1;fill:url(#radialGradient2791);fill-opacity:1" /> - <path - d="M 318.25,314.4375 C 301.26162,314.4375 287.46874,321.0169 287.46875,329.125 C 287.46875,329.23072 287.49534,329.33231 287.5,329.4375 C 282.65487,331.8884 279.78125,334.92483 279.78125,338.21875 C 279.78125,346.32683 297.44648,367.59375 318.875,367.59375 C 340.30352,367.59375 357.40625,346.32682 357.40625,338.21875 C 357.40625,334.77607 354.27973,331.63008 349.03125,329.125 C 349.03125,329.11446 349.0313,329.10428 349.03125,329.09375 C 348.99547,321.00017 335.2163,314.43749 318.25,314.4375 z" - id="path3886" - style="fill:url(#linearGradient2793);fill-opacity:1" /> - <path - d="M 318.42834,314.4375 C 303.24105,314.4375 290.91047,320.56027 290.91048,328.10565 C 290.91048,328.20403 290.93425,328.29857 290.93842,328.39646 C 286.60696,330.67726 284.038,333.50295 284.038,336.56827 C 284.038,344.11362 299.83039,363.90456 318.98707,363.90456 C 338.14376,363.90456 353.43328,344.11362 353.43328,336.56827 C 353.43328,333.36452 350.63823,330.43687 345.94619,328.10565 C 345.94619,328.09584 345.94623,328.08637 345.94619,328.07657 C 345.91421,320.5447 333.59589,314.43749 318.42834,314.4375 z" - id="path3888" - style="fill:url(#radialGradient2795);fill-opacity:1" /> - <path - d="M 294.05132,354.01593 C 307.36599,369.76095 337.0072,370.0159 354.40443,342.62485 C 338.45347,356.99755 319.48216,365.53902 294.05132,354.01593 z" - id="path3890" - style="fill:#550000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 320.76534,314.59948 C 312.27548,316.59648 295.1791,322.79901 293.50338,329.35126 L 287.31924,329.55535 C 289.12411,317.43899 307.93285,314.44494 320.76534,314.59948 z" - id="path3892" - style="fill:url(#radialGradient2797);fill-opacity:1;fill-rule:evenodd" /> - <path - d="M 324.75905,353.90986 C 334.15313,349.79484 346.82934,337.43442 345.25604,328.50485 L 348.80588,330.12792 C 344.78242,342.35681 336.27221,350.73257 324.75905,353.90986 z" - id="path3894" - style="fill:url(#radialGradient2799);fill-opacity:1;fill-rule:evenodd" /> - <g - transform="translate(-0.4163651,-1.1672698)" - id="g3896"> - <path - d="M 303.21875,254.71875 C 303.21875,254.71875 309.89223,266.08819 306.84774,277.74085 C 311.50005,277.57887 313.37082,281.96078 314.81931,284.73471 L 317.59375,277 C 312.25674,265.87773 303.21875,254.71875 303.21875,254.71875 z" - id="path3898" - style="fill:url(#linearGradient2801);fill-opacity:1;fill-rule:evenodd" /> - <path - d="M 325.7701,276.40799 C 323.65892,268.1652 326.27146,262.28979 326.27146,262.28979 C 326.27146,262.28979 314.23393,278.42053 314.5979,285.59697 C 319.79451,279.64452 321.95345,278.447 325.7701,276.40799 z" - id="path3900" - style="fill:url(#linearGradient2803);fill-opacity:1;fill-rule:evenodd" /> - <path - d="M 303.125,254.625 C 309.05735,263.07821 313.99391,270.21536 317,278 L 317.75,276.0625 C 313.75103,267.31147 306.92126,259.02887 303.125,254.625 z" - id="path3902" - style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 326.29146,262.15155 C 322.61088,266.72622 314.74014,277.09575 314.53648,285.75261 L 315.61414,284.45639 C 316.94182,276.57666 321.04509,270.18387 326.29146,262.15155 z" - id="path3904" - style="fill:#999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <path - d="M 326.02107,293.2888 C 321.17749,293.48314 316.9971,294.68774 314.07825,297.57845 C 311.23669,295.73698 307.47443,295.4091 303.51192,295.56811 C 294.85564,295.91545 288.0553,301.85966 288.33427,308.81228 C 288.34787,309.15117 288.38838,309.47822 288.43446,309.80907 C 288.81365,303.30094 295.25365,297.16827 303.48802,296.83786 C 307.08372,296.69357 310.51437,298.29989 313.22307,299.83843 L 314.5276,300.84944 C 317.43644,297.49222 322.78423,294.60605 328.08304,294.39343 C 333.65922,294.16966 337.93502,296.8998 341.0792,300.31571 C 338.16715,295.90972 332.4804,293.0296 326.02107,293.2888 z" - id="path3906" - style="opacity:1;fill:url(#radialGradient2805);fill-opacity:1" /> - </g> - <path - d="M 663.9539,126.69155 C 640.34888,130.43455 622.03964,146.2761 612.27361,162.76082 C 606.56173,167.98558 602.17727,174.29389 600.18822,181.35183 C 596.4241,194.70856 601.72759,207.84099 611.88797,217.52268 C 622.04837,227.20438 637.05594,234.02616 654.74486,236.52761 C 672.43344,239.02901 689.88444,236.80847 704.33535,230.71451 C 718.78626,224.62053 730.62237,214.19014 734.38795,200.82828 C 737.38053,190.2093 734.43654,179.75059 728.11712,171.11983 C 722.87975,151.28111 707.33464,130.59277 680.93001,126.60235 C 675.203,125.73685 669.45405,125.8194 663.9539,126.69155 z" - id="path4472" - style="fill:url(#radialGradient2807);fill-opacity:1" /> - <g - transform="matrix(0.7819066,-0.1766324,0.1789383,0.7721718,293.51105,-7.1580194)" - id="g3908"> - <path - d="M 472.13252,390.32748 C 472.13939,418.33732 437.53354,441.04617 394.84268,441.04617 C 352.15182,441.04617 317.54597,418.33732 317.55284,390.32748 C 317.54597,362.31764 352.15182,339.60879 394.84268,339.60879 C 437.53354,339.60879 472.13939,362.31764 472.13252,390.32748 L 472.13252,390.32748 z" - transform="matrix(0.6882369,-7.5302481e-3,-1.0406728e-2,0.7876371,51.619489,30.132613)" - id="path3910" - style="opacity:1;fill:#000000;fill-opacity:1" /> - <path - d="M 365.74864,327.91006 C 365.74864,349.91773 345.27315,372.35905 319.01839,372.35905 C 292.76362,372.35905 270.62268,349.91773 270.62268,327.91006 C 270.62268,305.90239 289.84906,273.88467 316.10383,273.88467 C 342.35859,273.88467 365.74864,305.90239 365.74864,327.91006 z" - id="path3912" - style="fill:url(#radialGradient2809);fill-opacity:1" /> - <path - d="M 321.74956,317.23438 C 321.74956,326.89185 314.54695,334.72077 305.66208,334.72077 C 296.77721,334.72077 289.5746,326.89185 289.5746,317.23438 C 289.5746,307.57691 296.77721,299.74799 305.66208,299.74799 C 314.54695,299.74799 321.74956,307.57691 321.74956,317.23438 L 321.74956,317.23438 z" - transform="matrix(1.0138481,0,0,0.7208741,-7.2445917,80.839045)" - id="path3914" - style="opacity:1;fill:url(#radialGradient2811);fill-opacity:1" /> - <path - d="M 321.74956,317.23438 C 321.74956,326.89185 314.54695,334.72077 305.66208,334.72077 C 296.77721,334.72077 289.5746,326.89185 289.5746,317.23438 C 289.5746,307.57691 296.77721,299.74799 305.66208,299.74799 C 314.54695,299.74799 321.74956,307.57691 321.74956,317.23438 L 321.74956,317.23438 z" - transform="matrix(1.0708886,0,0,0.7930302,1.8438299,56.686911)" - id="path3916" - style="opacity:1;fill:url(#radialGradient2813);fill-opacity:1" /> - <path - d="M 320.62771,313.14539 C 320.62947,316.49214 317.3875,319.206 313.38773,319.206 C 309.38796,319.206 306.14599,316.49214 306.14775,313.14539 C 306.14599,309.79864 309.38796,307.08478 313.38773,307.08478 C 317.3875,307.08478 320.62947,309.79864 320.62771,313.14539 L 320.62771,313.14539 z" - transform="matrix(1.122449,0,0,1.2909313,-27.988686,-94.598747)" - id="path3918" - style="opacity:1;fill:url(#radialGradient2815);fill-opacity:1" /> - <path - d="M 320.62771,313.14539 C 320.62947,316.49214 317.3875,319.206 313.38773,319.206 C 309.38796,319.206 306.14599,316.49214 306.14775,313.14539 C 306.14599,309.79864 309.38796,307.08478 313.38773,307.08478 C 317.3875,307.08478 320.62947,309.79864 320.62771,313.14539 L 320.62771,313.14539 z" - transform="matrix(1.0115466,0,0,1.1015857,-6.488929,-32.560137)" - id="path3920" - style="opacity:1;fill:url(#radialGradient2817);fill-opacity:1" /> - <path - d="M 318.25,314.4375 C 301.26162,314.4375 287.46874,321.0169 287.46875,329.125 C 287.46875,329.23072 287.49534,329.33231 287.5,329.4375 C 282.65487,331.8884 279.78125,334.92483 279.78125,338.21875 C 279.78125,346.32683 297.44648,367.59375 318.875,367.59375 C 340.30352,367.59375 357.40625,346.32682 357.40625,338.21875 C 357.40625,334.77607 354.27973,331.63008 349.03125,329.125 C 349.03125,329.11446 349.0313,329.10428 349.03125,329.09375 C 348.99547,321.00017 335.2163,314.43749 318.25,314.4375 z" - id="path3922" - style="fill:url(#linearGradient2819);fill-opacity:1" /> - <path - d="M 318.42834,314.4375 C 303.24105,314.4375 290.91047,320.56027 290.91048,328.10565 C 290.91048,328.20403 290.93425,328.29857 290.93842,328.39646 C 286.60696,330.67726 284.038,333.50295 284.038,336.56827 C 284.038,344.11362 299.83039,363.90456 318.98707,363.90456 C 338.14376,363.90456 353.43328,344.11362 353.43328,336.56827 C 353.43328,333.36452 350.63823,330.43687 345.94619,328.10565 C 345.94619,328.09584 345.94623,328.08637 345.94619,328.07657 C 345.91421,320.5447 333.59589,314.43749 318.42834,314.4375 z" - id="path3924" - style="fill:url(#radialGradient2821);fill-opacity:1" /> - <path - d="M 294.05132,354.01593 C 307.36599,369.76095 337.0072,370.0159 354.40443,342.62485 C 338.45347,356.99755 319.48216,365.53902 294.05132,354.01593 z" - id="path3926" - style="fill:#550000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 320.76534,314.59948 C 312.27548,316.59648 295.1791,322.79901 293.50338,329.35126 L 287.31924,329.55535 C 289.12411,317.43899 307.93285,314.44494 320.76534,314.59948 z" - id="path3928" - style="fill:url(#radialGradient2823);fill-opacity:1;fill-rule:evenodd" /> - <path - d="M 324.75905,353.90986 C 334.15313,349.79484 346.82934,337.43442 345.25604,328.50485 L 348.80588,330.12792 C 344.78242,342.35681 336.27221,350.73257 324.75905,353.90986 z" - id="path3930" - style="fill:url(#radialGradient2825);fill-opacity:1;fill-rule:evenodd" /> - <g - transform="translate(-0.4163651,-1.1672698)" - id="g3932"> - <path - d="M 303.21875,254.71875 C 303.21875,254.71875 309.89223,266.08819 306.84774,277.74085 C 311.50005,277.57887 313.37082,281.96078 314.81931,284.73471 L 317.59375,277 C 312.25674,265.87773 303.21875,254.71875 303.21875,254.71875 z" - id="path3934" - style="fill:url(#linearGradient2827);fill-opacity:1;fill-rule:evenodd" /> - <path - d="M 325.7701,276.40799 C 323.65892,268.1652 326.27146,262.28979 326.27146,262.28979 C 326.27146,262.28979 314.23393,278.42053 314.5979,285.59697 C 319.79451,279.64452 321.95345,278.447 325.7701,276.40799 z" - id="path3936" - style="fill:url(#linearGradient2829);fill-opacity:1;fill-rule:evenodd" /> - <path - d="M 303.125,254.625 C 309.05735,263.07821 313.99391,270.21536 317,278 L 317.75,276.0625 C 313.75103,267.31147 306.92126,259.02887 303.125,254.625 z" - id="path3938" - style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 326.29146,262.15155 C 322.61088,266.72622 314.74014,277.09575 314.53648,285.75261 L 315.61414,284.45639 C 316.94182,276.57666 321.04509,270.18387 326.29146,262.15155 z" - id="path3940" - style="fill:#999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <path - d="M 326.02107,293.2888 C 321.17749,293.48314 316.9971,294.68774 314.07825,297.57845 C 311.23669,295.73698 307.47443,295.4091 303.51192,295.56811 C 294.85564,295.91545 288.0553,301.85966 288.33427,308.81228 C 288.34787,309.15117 288.38838,309.47822 288.43446,309.80907 C 288.81365,303.30094 295.25365,297.16827 303.48802,296.83786 C 307.08372,296.69357 310.51437,298.29989 313.22307,299.83843 L 314.5276,300.84944 C 317.43644,297.49222 322.78423,294.60605 328.08304,294.39343 C 333.65922,294.16966 337.93502,296.8998 341.0792,300.31571 C 338.16715,295.90972 332.4804,293.0296 326.02107,293.2888 z" - id="path3942" - style="opacity:1;fill:url(#radialGradient2831);fill-opacity:1" /> - </g> - <path - d="M 675.59159,114.34628 C 651.98657,118.31794 633.67733,135.12725 623.9113,152.61904 C 618.19942,158.16298 613.81496,164.85667 611.82591,172.34577 C 608.06179,186.51847 613.36528,200.45317 623.52566,210.72633 C 633.68606,220.99949 648.69363,228.238 666.38255,230.89228 C 684.07113,233.54649 701.52213,231.19029 715.97304,224.72405 C 730.42395,218.25778 742.26006,207.19019 746.02564,193.01205 C 749.01822,181.74436 746.07423,170.64672 739.75481,161.4887 C 734.51744,140.43802 718.97233,118.48582 692.5677,114.25163 C 686.84069,113.33326 681.09174,113.42086 675.59159,114.34628 z" - id="path4491" - style="fill:url(#radialGradient2833);fill-opacity:1" /> - <g - transform="matrix(0.960492,0.3835501,-0.3835501,0.960492,492.23862,-257.38924)" - id="g3952"> - <path - d="M 472.13252,390.32748 C 472.13939,418.33732 437.53354,441.04617 394.84268,441.04617 C 352.15182,441.04617 317.54597,418.33732 317.55284,390.32748 C 317.54597,362.31764 352.15182,339.60879 394.84268,339.60879 C 437.53354,339.60879 472.13939,362.31764 472.13252,390.32748 L 472.13252,390.32748 z" - transform="matrix(0.6882369,-7.5302481e-3,-1.0406728e-2,0.7876371,51.619489,30.132613)" - id="path3954" - style="opacity:1;fill:#000000;fill-opacity:1" /> - <path - d="M 365.74864,327.91006 C 365.74864,349.91773 345.27315,372.35905 319.01839,372.35905 C 292.76362,372.35905 270.62268,349.91773 270.62268,327.91006 C 270.62268,305.90239 289.84906,273.88467 316.10383,273.88467 C 342.35859,273.88467 365.74864,305.90239 365.74864,327.91006 z" - id="path3956" - style="fill:url(#radialGradient2835);fill-opacity:1" /> - <path - d="M 321.74956,317.23438 C 321.74956,326.89185 314.54695,334.72077 305.66208,334.72077 C 296.77721,334.72077 289.5746,326.89185 289.5746,317.23438 C 289.5746,307.57691 296.77721,299.74799 305.66208,299.74799 C 314.54695,299.74799 321.74956,307.57691 321.74956,317.23438 L 321.74956,317.23438 z" - transform="matrix(1.0138481,0,0,0.7208741,-7.2445917,80.839045)" - id="path3958" - style="opacity:1;fill:url(#radialGradient2837);fill-opacity:1" /> - <path - d="M 321.74956,317.23438 C 321.74956,326.89185 314.54695,334.72077 305.66208,334.72077 C 296.77721,334.72077 289.5746,326.89185 289.5746,317.23438 C 289.5746,307.57691 296.77721,299.74799 305.66208,299.74799 C 314.54695,299.74799 321.74956,307.57691 321.74956,317.23438 L 321.74956,317.23438 z" - transform="matrix(1.0708886,0,0,0.7930302,1.8438299,56.686911)" - id="path3960" - style="opacity:1;fill:url(#radialGradient2839);fill-opacity:1" /> - <path - d="M 320.62771,313.14539 C 320.62947,316.49214 317.3875,319.206 313.38773,319.206 C 309.38796,319.206 306.14599,316.49214 306.14775,313.14539 C 306.14599,309.79864 309.38796,307.08478 313.38773,307.08478 C 317.3875,307.08478 320.62947,309.79864 320.62771,313.14539 L 320.62771,313.14539 z" - transform="matrix(1.122449,0,0,1.2909313,-27.988686,-94.598747)" - id="path3962" - style="opacity:1;fill:url(#radialGradient2841);fill-opacity:1" /> - <path - d="M 320.62771,313.14539 C 320.62947,316.49214 317.3875,319.206 313.38773,319.206 C 309.38796,319.206 306.14599,316.49214 306.14775,313.14539 C 306.14599,309.79864 309.38796,307.08478 313.38773,307.08478 C 317.3875,307.08478 320.62947,309.79864 320.62771,313.14539 L 320.62771,313.14539 z" - transform="matrix(1.0115466,0,0,1.1015857,-6.488929,-32.560137)" - id="path3964" - style="opacity:1;fill:url(#radialGradient2843);fill-opacity:1" /> - <path - d="M 318.25,314.4375 C 301.26162,314.4375 287.46874,321.0169 287.46875,329.125 C 287.46875,329.23072 287.49534,329.33231 287.5,329.4375 C 282.65487,331.8884 279.78125,334.92483 279.78125,338.21875 C 279.78125,346.32683 297.44648,367.59375 318.875,367.59375 C 340.30352,367.59375 357.40625,346.32682 357.40625,338.21875 C 357.40625,334.77607 354.27973,331.63008 349.03125,329.125 C 349.03125,329.11446 349.0313,329.10428 349.03125,329.09375 C 348.99547,321.00017 335.2163,314.43749 318.25,314.4375 z" - id="path3966" - style="fill:url(#linearGradient2845);fill-opacity:1" /> - <path - d="M 318.42834,314.4375 C 303.24105,314.4375 290.91047,320.56027 290.91048,328.10565 C 290.91048,328.20403 290.93425,328.29857 290.93842,328.39646 C 286.60696,330.67726 284.038,333.50295 284.038,336.56827 C 284.038,344.11362 299.83039,363.90456 318.98707,363.90456 C 338.14376,363.90456 353.43328,344.11362 353.43328,336.56827 C 353.43328,333.36452 350.63823,330.43687 345.94619,328.10565 C 345.94619,328.09584 345.94623,328.08637 345.94619,328.07657 C 345.91421,320.5447 333.59589,314.43749 318.42834,314.4375 z" - id="path3968" - style="fill:url(#radialGradient2847);fill-opacity:1" /> - <path - d="M 294.05132,354.01593 C 307.36599,369.76095 337.0072,370.0159 354.40443,342.62485 C 338.45347,356.99755 319.48216,365.53902 294.05132,354.01593 z" - id="path3970" - style="fill:#550000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 320.76534,314.59948 C 312.27548,316.59648 295.1791,322.79901 293.50338,329.35126 L 287.31924,329.55535 C 289.12411,317.43899 307.93285,314.44494 320.76534,314.59948 z" - id="path3972" - style="fill:url(#radialGradient2849);fill-opacity:1;fill-rule:evenodd" /> - <path - d="M 324.75905,353.90986 C 334.15313,349.79484 346.82934,337.43442 345.25604,328.50485 L 348.80588,330.12792 C 344.78242,342.35681 336.27221,350.73257 324.75905,353.90986 z" - id="path3974" - style="fill:url(#radialGradient2851);fill-opacity:1;fill-rule:evenodd" /> - <g - transform="translate(-0.4163651,-1.1672698)" - id="g3976"> - <path - d="M 303.21875,254.71875 C 303.21875,254.71875 309.89223,266.08819 306.84774,277.74085 C 311.50005,277.57887 313.37082,281.96078 314.81931,284.73471 L 317.59375,277 C 312.25674,265.87773 303.21875,254.71875 303.21875,254.71875 z" - id="path3978" - style="fill:url(#linearGradient2853);fill-opacity:1;fill-rule:evenodd" /> - <path - d="M 325.7701,276.40799 C 323.65892,268.1652 326.27146,262.28979 326.27146,262.28979 C 326.27146,262.28979 314.23393,278.42053 314.5979,285.59697 C 319.79451,279.64452 321.95345,278.447 325.7701,276.40799 z" - id="path3980" - style="fill:url(#linearGradient2855);fill-opacity:1;fill-rule:evenodd" /> - <path - d="M 303.125,254.625 C 309.05735,263.07821 313.99391,270.21536 317,278 L 317.75,276.0625 C 313.75103,267.31147 306.92126,259.02887 303.125,254.625 z" - id="path3982" - style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 326.29146,262.15155 C 322.61088,266.72622 314.74014,277.09575 314.53648,285.75261 L 315.61414,284.45639 C 316.94182,276.57666 321.04509,270.18387 326.29146,262.15155 z" - id="path3984" - style="fill:#999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <path - d="M 326.02107,293.2888 C 321.17749,293.48314 316.9971,294.68774 314.07825,297.57845 C 311.23669,295.73698 307.47443,295.4091 303.51192,295.56811 C 294.85564,295.91545 288.0553,301.85966 288.33427,308.81228 C 288.34787,309.15117 288.38838,309.47822 288.43446,309.80907 C 288.81365,303.30094 295.25365,297.16827 303.48802,296.83786 C 307.08372,296.69357 310.51437,298.29989 313.22307,299.83843 L 314.5276,300.84944 C 317.43644,297.49222 322.78423,294.60605 328.08304,294.39343 C 333.65922,294.16966 337.93502,296.8998 341.0792,300.31571 C 338.16715,295.90972 332.4804,293.0296 326.02107,293.2888 z" - id="path3986" - style="opacity:1;fill:url(#radialGradient2857);fill-opacity:1" /> - </g> - </g> - </g> - <rect - y="115.934" - x="317.77481" - height="258.31592" - width="388.46484" - id="rect3902" - style="opacity:1;fill:none;fill-opacity:0.07843137;fill-rule:evenodd;stroke:#ff0f0f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - sodipodi:linespacing="125%" - id="text3960" - y="133.84381" - x="434.38342" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - xml:space="preserve"><tspan - id="tspan3962" - y="133.84381" - x="434.38342" - sodipodi:role="line">logo.svg</tspan><tspan - id="tspan3964" - y="151.34381" - x="434.38342" - sodipodi:role="line">X 31%</tspan><tspan - id="tspan3966" - y="168.84381" - x="434.38342" - sodipodi:role="line">Y 15%</tspan><tspan - id="tspan3968" - y="186.34381" - x="434.38342" - sodipodi:role="line">W 37.8%</tspan><tspan - id="tspan3970" - y="203.84381" - x="434.38342" - sodipodi:role="line">H 33.2%</tspan></text> - </g> - <path - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart);fill-opacity:1;marker-mid:none;stroke-miterlimit:4;stroke-dasharray:none" - d="M 7.5359569,9.066336 L 45.137242,46.667621" - id="path3883" /> - <text - sodipodi:linespacing="125%" - id="text8313" - y="14.423865" - x="0.61544436" - style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono" - xml:space="preserve"><tspan - id="tspan8323" - y="14.423865" - x="0.61544436" - sodipodi:role="line">[0,0]</tspan></text> -</svg> diff --git a/data/images/interface/ground.svg b/data/images/interface/ground.svg deleted file mode 100644 index ca42b2c..0000000 --- a/data/images/interface/ground.svg +++ /dev/null @@ -1,210 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.0" - width="1024" - height="235" - id="svg2929"> - <defs - id="defs2931"> - <filter - id="filter7738" - x="-0.062413666" - width="1.1248273" - y="-0.18633226" - height="1.3726645"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="1.0592616" - id="feGaussianBlur7740" /> - </filter> - <filter - id="filter7556" - x="-0.10906329" - width="1.2181267" - y="-0.16048753" - height="1.3209751"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="3.7122331" - id="feGaussianBlur7558" /> - </filter> - <linearGradient - id="linearGradient7756"> - <stop - id="stop7758" - style="stop-color:#7fa43c;stop-opacity:1" - offset="0" /> - <stop - id="stop7760" - style="stop-color:#303a26;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="688.78198" - y1="535.625" - x2="703.93427" - y2="746.07819" - id="linearGradient2891" - xlink:href="#linearGradient7756" - gradientUnits="userSpaceOnUse" /> - <linearGradient - id="linearGradient7618"> - <stop - id="stop7620" - style="stop-color:#000000;stop-opacity:1" - offset="0" /> - <stop - id="stop7622" - style="stop-color:#ab8858;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="538.11664" - y1="707.9931" - x2="538.11664" - y2="789.8609" - id="linearGradient2889" - xlink:href="#linearGradient7618" - gradientUnits="userSpaceOnUse" /> - <linearGradient - id="linearGradient7825"> - <stop - id="stop7827" - style="stop-color:#57663b;stop-opacity:1" - offset="0" /> - <stop - id="stop7829" - style="stop-color:#303a26;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="368.57141" - y1="79.610039" - x2="368.57141" - y2="731.86987" - id="linearGradient2887" - xlink:href="#linearGradient7825" - gradientUnits="userSpaceOnUse" /> - </defs> - <g - transform="translate(452,7.99496)" - id="layer1"> - <g - transform="translate(-452,-543.61996)" - id="g2859"> - <path - d="M 253.46875,640.34375 C 216.73952,640.47975 224.72406,662.10305 0,687 L 0,768 L 1024,768 L 1024,679.15625 C 924.26288,696.95458 741.22186,688.24844 734.28125,691.71875 C 725.70983,696.00446 504.29911,680.29017 337.15625,651.71875 C 290.14732,643.68304 268.19789,640.28921 253.46875,640.34375 z" - id="path7812" - style="fill:url(#linearGradient2887);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <rect - width="1024" - height="62.624355" - x="0" - y="708" - id="rect6150" - style="fill:url(#linearGradient2889);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 33.53125,730.5625 C 31.384951,730.70263 27.426368,732.41909 24.25,731.625 C 21.82413,731.13982 11.941508,752.98246 4.4375,770.625 L 107.84375,770.625 C 108.01953,762.99059 107.0625,754.55613 107.0625,751.84375 C 107.0625,736.44119 79.57883,747.69869 72.71875,752.84375 C 69.788927,755.04111 56.25003,737.72658 53.53125,735.6875 C 48.576212,731.97123 40.489153,732.16135 34.34375,730.625 C 34.119618,730.56896 33.837864,730.54248 33.53125,730.5625 z M 972.4375,736.5 C 963.97938,736.32887 944.29367,755.03771 938.3125,770.625 L 1024,770.625 L 1024,752.5625 C 1015.1211,748.73109 1001.2462,752.64351 992.28125,754.34375 C 979.36093,756.79415 978.12838,750.17125 976.1875,739.9375 C 975.74553,737.60712 974.39351,736.53958 972.4375,736.5 z M 330.8125,745.75 C 319.31883,745.86454 317.92556,760.9702 332.46875,768.53125 C 333.59079,769.11461 335.00212,769.83864 336.5,770.625 L 383.5,770.625 C 383.75283,770.22885 383.99218,769.84444 384.1875,769.46875 C 390.80243,756.74536 365.42929,754.57957 358.03125,752.8125 C 348.85858,750.62154 347.48331,749.25948 339.59375,747.375 C 337.95623,746.98388 336.32502,746.60988 334.6875,746.21875 C 333.28846,745.88458 332.0015,745.73815 330.8125,745.75 z M 158.84375,748.3125 C 153.12637,748.32789 145.1794,751.5062 139.09375,749.28125 C 135.35924,747.9159 125.1018,757.33602 122.84375,758.96875 C 119.01753,761.73538 117.08957,766.48409 115.46875,770.625 L 171.65625,770.625 C 174.81467,768.65666 177.52545,766.88994 178.5625,765.75 C 182.65847,761.24762 164.0232,749.11244 161.15625,748.5 C 160.44244,748.34752 159.66052,748.3103 158.84375,748.3125 z M 651.78125,750.3125 C 648.07403,750.26978 638.16274,751.59245 638,751.625 C 637.60123,751.62502 631.0566,768.4776 630.03125,770.625 L 670.375,770.625 C 673.7856,766.60959 669.8261,767.40184 659.21875,764.75 C 651.21234,762.74838 653.15625,758.75253 653.15625,750.59375 C 653.15625,750.40936 652.63676,750.32236 651.78125,750.3125 z M 920.9375,750.78125 C 919.75087,750.85285 918.25324,751.28252 916.375,752.15625 C 905.96675,756.99801 899.25942,761.56224 893.9375,770.625 L 924.65625,770.625 C 924.58904,769.13244 924.5198,767.71789 924.53125,767.3125 C 924.725,760.45401 927.34531,750.39463 920.9375,750.78125 z M 417.90625,750.8125 C 416.76441,750.8892 415.13135,751.55869 412.15625,753.34375 C 410.15021,756.1751 398.23696,760.05253 392.9375,764.46875 C 391.20908,765.90909 391.04464,768.19759 391.5625,770.625 L 448,770.625 C 453.29231,765.85111 459.23586,759.76135 464.65625,758.40625 C 466.07382,758.05185 449.25311,755.47624 446.5,754.375 C 441.28078,752.28733 433.232,753.34375 427.28125,753.34375 C 420.51886,753.34375 420.41831,750.64376 417.90625,750.8125 z" - id="path7762" - style="fill:#878787;fill-opacity:0.80476188;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 22.5,535.625 C 21.6669,537.87898 20.97295,540.86098 20.34375,544.84375 C 19.69805,548.82653 18.9927,554.95148 18.75,559.21875 C 18.5018,563.3985 18.8548,565.95473 18.9375,569.9375 C 19.0258,573.8984 19.2668,578.6866 19.25,582.625 C 19.184001,586.47647 18.9356,589.7581 18.6875,593.0625 C 18.6311,593.7427 18.5743,594.35564 18.5,594.9375 C 18.3645,594.04974 18.2032,593.20131 18.0625,592.40625 C 16.892799,585.92878 15.6883,582.62302 14.375,579.625 C 13.0728,576.62699 11.70495,574.91579 10.28125,574.5 C 10.75025,578.57093 11.20925,582.32988 11.65625,585.875 C 12.10865,589.4432 12.8381,592.95584 12.9375,595.625 C 13.0092,598.16467 12.20055,599.31548 12.15625,601.21875 C 12.10665,603.10073 12.33615,604.72415 12.65625,607 C 12.95965,609.25461 13.85465,612.31789 14.03125,614.59375 C 14.19685,616.7383 13.94865,616.99252 13.65625,620.1875 C 13.49135,621.88044 13.2109,624.20685 12.9375,626.75 C 12.6395,627.88512 12.3818,629.03698 12.125,630.15625 C 11.1693,634.30819 10.49885,637.78162 9.71875,643.09375 C 9.6450499,639.53265 9.44805,635.51134 9.09375,630.875 C 8.5475503,623.80725 7.59795,614.48062 6.59375,606.40625 C 5.5728501,598.28808 4.4605,590.52115 3.125,582.6875 C 2.954,584.00048 2.86025,588.32147 2.84375,595.9375 C 2.8326499,603.55231 2.8307,618.16999 3.0625,628.0625 C 3.0842,628.99992 3.0997,629.84252 3.125,630.75 C 2.9102,630.52999 2.69455,630.40625 2.46875,630.40625 C 1.5187707,630.40624 0.6590894,632.46412 0,635.8125 L 0,699.0625 C 0.048239524,701.35273 0.098863465,703.65585 0.125,706 L 0,706 L 0,723.375 L 0,733.25 C 1.6436059,735.31905 3.8682696,737.04866 7.0625,737.6875 C 13.389822,738.95296 19.716131,738.71875 26.25,738.71875 C 33.376647,738.71876 37.727035,736.83456 42.4375,738.71875 C 48.160861,741.0081 50.241822,742.75 57.59375,742.75 C 63.747088,742.74997 71.11755,742.90812 75.75,741.75 C 76.631004,741.52976 86.753512,741.75 91.9375,741.75 C 100.58142,741.75001 103.1829,741.75 111.125,741.75 C 118.61861,741.75001 122.0342,741.75 130.3125,741.75 C 138.44791,741.75001 143.94375,742.23625 151.53125,740.71875 C 154.48688,740.12762 161.91742,738.71875 166.6875,738.71875 C 172.08004,738.71876 177.81483,739.46152 182.84375,740.71875 C 195.20025,743.80787 209.77063,745.78125 222.21875,745.78125 C 233.86088,745.78128 240.00717,748.41228 250.53125,745.78125 C 262.85337,742.70075 272.47612,738.5294 283.84375,735.6875 C 289.71449,734.21982 298.48623,734.55124 303.03125,735.6875 C 309.09309,737.20296 315.97167,736.11792 322.25,737.6875 C 328.08321,739.14579 336.36302,737.6875 342.4375,737.6875 C 350.04837,737.68749 358.40543,737.6875 365.6875,737.6875 C 372.4714,737.68749 376.89878,737.42374 383.84375,735.6875 C 391.89738,733.6741 392.21733,734.65625 400.03125,734.65625 C 406.62116,734.65624 412.50983,734.65625 419.21875,734.65625 C 425.35693,734.65624 433.14979,734.37338 438.40625,735.6875 C 442.92043,736.81605 448.16707,736.34183 451.53125,737.6875 C 456.37803,739.6262 466.27616,739.71875 468.71875,739.71875 C 474.89479,739.71872 481.34163,739.83167 486.90625,738.71875 C 492.55533,737.58894 499.04411,737.6875 502.03125,737.6875 C 508.72902,737.68749 514.21132,738.21689 520.21875,739.71875 C 525.85459,741.12768 531.22444,738.71875 537.40625,738.71875 C 543.14037,738.71876 548.67633,738.71875 555.59375,738.71875 C 560.51979,738.71876 567.97126,740.71875 574.78125,740.71875 C 579.99256,740.71874 587.03955,738.91199 591.9375,737.6875 C 599.27203,735.85386 604.82376,737.39344 610.125,738.71875 C 615.43724,740.04682 621.76884,742.36408 627.3125,743.75 C 635.20236,745.72246 640.60647,742.36338 642.46875,749.8125 C 645.27218,761.02626 650.92233,756.51517 655.59375,751.84375 C 660.3616,747.07588 665.12404,745.00038 670.75,742.75 C 674.35082,741.30965 679.38104,747.8125 684.875,747.8125 C 691.11616,747.81251 694.15666,746.43758 701.03125,747.8125 C 707.08924,749.02411 714.72433,744.13142 720.25,742.75 C 726.3027,741.23679 731.80886,741.75 738.40625,741.75 C 746.67377,741.75001 751.93916,738.53948 760.65625,740.71875 C 766.85899,742.26943 775.46713,740.71875 781.84375,740.71875 C 788.59466,740.71874 794.72159,739.71875 801.0625,739.71875 C 806.47381,739.71872 813.92077,739.39426 819.21875,740.71875 C 822.77635,741.60814 834.09042,740.38191 837.40625,739.71875 C 843.88698,738.42258 850.41387,738.23247 856.59375,736.6875 C 861.95901,735.34621 869.15084,738.31115 874.78125,739.71875 C 878.11444,740.55202 887.5606,738.71875 891.96875,738.71875 C 898.40821,738.71876 905.35045,738.2673 911.15625,739.71875 C 917.79503,741.37841 924.3962,739.71875 930.34375,739.71875 C 935.91597,739.71872 941.5577,739.71875 948.53125,739.71875 C 954.78112,739.71872 962.79106,739.71875 967.71875,739.71875 C 973.98437,739.71872 980.44688,741.75 986.90625,741.75 C 993.61031,741.75001 998.7446,742.6416 1004.0938,744.78125 C 1008.5448,746.56174 1018.7827,745.39809 1021.25,744.78125 C 1022.2407,744.53357 1023.1374,744.32085 1024,744.09375 L 1024,590.6875 C 1023.0205,593.21549 1022.0842,596.31569 1021.1875,601.28125 C 1020.3388,606.07725 1019.6075,612.76174 1018.8438,619.65625 C 1018.6439,616.68557 1018.4211,613.83578 1018.1562,610.84375 C 1017.5661,604.13899 1016.9529,597.86527 1015.9375,591.90625 C 1014.8945,585.85497 1013.4127,579.47224 1012,575.4375 C 1010.5653,571.52778 1008.9292,569.77142 1007.5,568.34375 C 1006.2592,567.01307 1005.0972,566.35872 1004,566.40625 C 1003.8433,566.41305 1003.6852,566.43383 1003.5312,566.46875 C 1004.8172,570.31814 1006.0966,575.80102 1007.4375,583.21875 C 1008.7839,590.57615 1010.549,599.79348 1011.5312,610.53125 C 1012.4749,621.27074 1012.8288,634.02676 1013.1875,647.125 C 1013.2417,649.18898 1013.2679,651.25935 1013.3125,653.34375 C 1013.0684,649.77914 1012.8488,645.91536 1012.5,643.21875 C 1011.9852,639.24668 1011.2736,637.61473 1010.6562,634.46875 C 1010.044,631.21216 1009.3987,627.97673 1008.9062,624.15625 C 1008.4539,620.24392 1008.1633,615.47755 1007.8125,611.53125 C 1007.4536,607.5638 1007.5219,604.97031 1006.8125,600.84375 C 1006.0987,596.62958 1004.739,590.63678 1003.6562,586.75 C 1002.5902,582.86137 1001.5462,579.96038 1000.4688,577.8125 C 1000.8676,580.69655 1001.3531,584.33252 1001.9375,588.78125 C 1002.533,593.22879 1003.3232,598.41734 1003.9688,604.3125 C 1004.6209,610.11882 1005.5448,618.24547 1005.75,623.375 C 1005.9289,628.41939 1005.243,630.4999 1005.1562,634.40625 C 1005.1038,638.22201 1005.1904,641.38234 1005.4062,646.3125 C 1005.6139,651.26501 1005.9665,658.20623 1006.4062,663.75 C 1006.8624,669.13845 1007.0599,673.10192 1008.0938,678.84375 C 1009.1549,684.5825 1011.1427,691.93671 1012.6562,698 C 1013.3571,700.79996 1014.0357,703.43009 1014.7188,706 L 990.875,706 C 991.25185,700.80373 991.79719,696.20905 992.3125,690.9375 C 992.88077,685.16027 993.7203,678.76523 994.0625,673.25 C 994.39909,667.71413 994.5553,663.46139 994.3125,658.1875 C 994.08067,652.82605 993.24845,646.84569 992.71875,641.8125 C 992.21654,636.75741 991.59035,631.48499 991.28125,628.3125 C 990.98888,625.1175 990.74075,624.83207 990.90625,622.6875 C 991.08288,620.41162 991.97785,617.37959 992.28125,615.125 C 992.60138,612.84911 992.83085,611.19447 992.78125,609.3125 C 992.73703,607.40926 991.9282,606.25844 992,603.71875 C 992.0992,601.04959 992.82875,597.56821 993.28125,594 C 993.72828,590.45493 994.18715,586.69592 994.65625,582.625 C 993.23256,583.04075 991.89605,584.72072 990.59375,587.71875 C 989.28054,590.71675 988.0448,594.02252 986.875,600.5 C 985.73272,606.95498 984.78395,616.70076 983.71875,626 C 982.65933,635.23542 981.13275,646.80039 980.53125,655.53125 C 979.94085,664.13143 980.022,668.36954 980.1875,677.625 C 980.35327,685.41013 980.8848,697.4684 981.34375,706 L 977.65625,706 C 977.96846,702.03008 978.13654,698.12115 978.15625,694.1875 C 978.19486,686.46326 976.9451,677.47339 976.625,671.9375 C 976.34931,666.40038 976.3365,665.64227 976.375,661.375 C 976.42473,657.02019 976.91535,650.42344 976.84375,646.375 C 976.77182,642.37037 976.2025,640.63248 975.9375,637.4375 C 975.68933,634.13308 975.4411,630.85148 975.375,627 C 975.35843,623.0616 975.5993,618.27339 975.6875,614.3125 C 975.7702,610.32973 976.1231,607.77348 975.875,603.59375 C 975.63208,599.32646 974.92705,593.20153 974.28125,589.21875 C 973.65213,585.23599 972.9581,582.25399 972.125,580 C 972.2023,582.91051 972.2867,586.54516 972.375,591.03125 C 972.47428,595.51735 972.66735,600.78834 972.65625,606.71875 C 972.66164,612.5616 972.70785,620.75429 972.34375,625.875 C 971.96307,630.90817 971.0186,632.87726 970.5,636.75 C 970.02511,640.53645 969.7688,643.70123 969.4375,648.625 C 969.09543,653.57007 968.6768,660.50412 968.5,666.0625 C 968.35652,671.46835 968.1084,675.42902 968.5,681.25 C 968.91942,687.071 970.07315,694.61889 970.90625,700.8125 C 971.1506,702.62198 971.40927,704.28116 971.65625,706 L 964.71875,706 C 964.72878,705.48041 964.74141,704.92168 964.75,704.40625 C 964.8492,697.71051 964.87145,691.57711 964.65625,686.0625 C 964.41345,680.50348 963.9599,676.28616 963.375,671.625 C 962.78462,666.8976 962.2029,662.48285 961.1875,658.28125 C 960.14461,654.0146 958.69385,649.50109 957.28125,646.65625 C 955.84657,643.89953 954.14795,642.66289 952.71875,641.65625 C 951.47783,640.71799 950.3472,640.27899 949.25,640.3125 C 949.09333,640.31728 948.93505,640.31913 948.78125,640.34375 C 948.94428,640.6878 949.0868,641.05645 949.25,641.4375 C 949.25738,641.44769 949.27385,641.45835 949.28125,641.46875 C 950.40045,644.08977 951.5223,647.61117 952.6875,652.15625 C 954.03392,657.34382 955.79895,663.83523 956.78125,671.40625 C 957.72484,678.9785 958.0788,687.95211 958.4375,697.1875 C 958.54525,700.08246 958.61994,703.03805 958.6875,706 L 949.03125,706 C 949.02075,697.71887 949.00206,686.84149 948.71875,678.8125 C 948.39494,668.95736 947.70985,660.03312 947.09375,653.1875 C 946.50194,646.29809 945.94625,642.57052 945.09375,637.75 C 944.22926,632.84122 942.86325,627.44795 941.96875,624.3125 C 941.10066,621.20092 940.4564,619.42711 939.9375,619.09375 C 939.91758,618.983 939.8918,618.93628 939.875,618.9375 C 939.7576,618.94605 939.7142,621.71996 939.75,627.53125 C 939.79629,634.17299 939.84885,649.98621 940.15625,658.4375 C 940.48026,666.78008 940.9465,671.48585 941.625,677.4375 C 942.34002,683.32407 943.5855,687.68084 944.3125,693.65625 C 944.78108,697.36468 945.15187,701.8238 945.46875,706 L 934.03125,706 C 934.25862,704.1973 934.49094,702.39579 934.71875,700.59375 C 934.92063,698.76455 935.0653,696.68269 935.125,694.40625 C 935.15609,695.69094 935.1653,696.81122 935.125,697.5625 C 935.25189,696.97104 935.3676,696.39399 935.5,695.78125 C 935.57731,691.14138 935.4103,685.44141 934.875,678.4375 C 934.32871,671.36977 933.34805,662.01187 932.34375,653.9375 C 931.32293,645.81938 930.2104,638.05239 928.875,630.21875 C 928.70388,631.53171 928.61025,635.88397 928.59375,643.5 C 928.58263,651.11481 928.5807,665.73249 928.8125,675.625 C 929.03869,685.42815 929.47205,693.45918 929.96875,702.125 C 930.04176,703.45168 930.14119,704.69844 930.21875,706 L 923.65625,706 C 923.97628,702.90169 924.3309,700.48178 924.53125,697.375 C 924.79655,693.17559 925.16125,689.43374 924.90625,684.53125 C 924.60826,679.57128 923.91035,674.09016 922.78125,667.875 C 922.10475,669.55965 921.33335,670.85403 920.46875,672 C 919.59296,673.12509 918.60425,674.23396 917.59375,674.46875 C 916.55586,674.59638 914.9574,672.59844 914.375,673.0625 C 913.78189,673.57445 913.9789,675.59863 914.0625,677.40625 C 914.1138,679.13113 914.75825,681.78265 914.71875,683.53125 C 914.63064,685.22444 914.12865,686.5673 913.71875,687.6875 C 913.31954,688.80561 912.87265,689.57617 912.34375,690.09375 C 912.45373,690.63016 912.5728,691.19456 912.6875,691.75 C 912.51079,692.3387 912.3387,692.91814 912.25,693.53125 C 911.79529,696.64912 911.80965,699.71848 912.28125,703.03125 C 912.50197,704.01919 912.71695,705.01183 912.9375,706 L 908.65625,706 C 908.42442,704.09234 908.19602,702.22281 907.9375,700.4375 C 906.79897,692.4937 905.48805,686.16259 903.90625,681.0625 C 902.81317,688.13457 901.98345,695.36007 901.40625,703.28125 C 901.34192,704.18043 901.30731,705.09636 901.25,706 L 713.40625,706 C 713.48067,701.07834 713.57455,696.27633 713.75,691.5625 C 714.10873,682.32712 714.494,673.35352 715.4375,665.78125 C 716.41978,658.2102 718.1536,651.71883 719.5,646.53125 C 720.84091,641.30112 722.12065,637.4329 723.40625,634.71875 C 722.17575,634.52179 720.8557,634.95896 719.4375,636.03125 C 718.00827,637.03792 716.3722,638.27455 714.9375,641.03125 C 713.95521,643.00941 712.90375,645.81015 712.03125,648.75 C 711.57757,645.0426 711.11195,641.34766 710.84375,639.03125 C 710.55132,636.34248 710.30325,636.1173 710.46875,634.3125 C 710.64542,632.39721 711.54035,629.83489 711.84375,627.9375 C 712.16382,626.02222 712.39345,624.64631 712.34375,623.0625 C 712.29963,621.46078 711.4908,620.48108 711.5625,618.34375 C 711.66182,616.09751 712.39125,613.15914 712.84375,610.15625 C 713.29077,607.17277 713.74975,603.98847 714.21875,600.5625 C 712.79512,600.91244 711.4273,602.38321 710.125,604.90625 C 708.81168,607.42931 707.6072,610.20501 706.4375,615.65625 C 705.55611,619.84752 704.7949,625.73884 704,631.78125 C 703.72407,628.11749 703.4304,624.39914 703.1875,621.09375 C 702.50538,611.79454 701.88785,602.04874 701.15625,595.59375 C 700.40722,589.11627 699.62245,585.81053 698.78125,582.8125 C 697.94722,579.81447 697.0992,578.10327 696.1875,577.6875 C 696.4879,581.7584 696.7762,585.51741 697.0625,589.0625 C 697.35227,592.63074 697.8115,596.14336 697.875,598.8125 C 697.92088,601.35221 697.4033,602.503 697.375,604.40625 C 697.34321,606.28819 697.4826,607.91161 697.6875,610.1875 C 697.88187,612.44209 698.4495,615.50537 698.5625,617.78125 C 698.66851,619.92583 698.53105,620.18003 698.34375,623.375 C 698.17433,626.09035 697.8498,630.62456 697.5625,634.96875 C 697.4626,634.19202 697.36435,633.3944 697.28125,632.5625 C 696.98926,629.12826 696.90775,624.93215 696.71875,621.46875 C 696.52255,617.98681 696.69555,615.71742 696.15625,612.09375 C 695.61603,608.39322 694.4839,603.13441 693.5625,599.71875 C 692.65772,596.30159 691.7371,593.73421 690.75,591.84375 C 691.03048,594.37574 691.37965,597.56326 691.78125,601.46875 C 692.19374,605.37327 692.75245,609.91925 693.15625,615.09375 C 693.57026,620.19037 694.1919,627.34346 694.1875,631.84375 C 694.17061,634.59989 693.854,636.34648 693.5625,638.09375 C 693.53082,638.03643 693.50045,637.96134 693.46875,637.90625 C 692.90957,633.34771 692.4159,630.12395 691.75,626.21875 C 690.85883,620.97753 689.58985,615.20979 688.78125,611.875 C 687.99236,608.56481 687.4449,606.71345 687.0625,606.375 C 686.89961,605.42926 686.99005,608.27206 687.40625,615.40625 C 687.63736,619.33227 688.04065,626.22089 688.46875,633.15625 C 688.23092,634.39091 687.9416,635.47515 687.625,636.4375 C 687.16483,637.78582 686.6117,639.12259 686,639.4375 C 685.87878,639.47387 685.74315,639.38554 685.59375,639.28125 C 684.57457,633.67601 683.505,628.20186 682.3125,622.6875 C 682.19943,624.00676 682.33685,628.32816 682.65625,635.9375 C 682.89436,641.51484 683.29513,650.83255 683.75,659.3125 C 683.31725,660.53438 682.82592,661.58916 682.25,662.53125 C 681.99844,662.92886 681.71751,663.32389 681.4375,663.6875 C 681.24181,659.66922 680.96994,656.11654 680.375,652 C 679.62215,646.68663 678.17362,640.86392 677.15625,635.90625 C 676.16423,630.92411 675.0541,625.68981 674.4375,622.5625 C 673.83533,619.4112 673.5754,619.18175 673.53125,617.03125 C 673.48534,614.749 674.07377,611.61718 674.15625,609.34375 C 674.25319,607.04755 674.3264,605.39944 674.09375,603.53125 C 673.86441,601.64131 672.92599,600.5971 672.75,598.0625 C 672.58894,595.39634 672.99101,591.81406 673.09375,588.21875 C 673.19336,584.64697 673.27346,580.84725 673.34375,576.75 C 671.96744,577.30242 670.78538,579.13938 669.78125,582.25 C 668.76616,585.36169 667.87704,588.78315 667.34375,595.34375 C 666.91435,600.86617 666.85389,608.77352 666.75,616.71875 C 666.3499,612.80067 666.14163,607.98191 665.84375,604.03125 C 665.53799,600.05936 665.59149,597.5107 664.9375,593.375 C 664.28017,589.15166 662.99937,583.11971 661.96875,579.21875 C 660.95485,575.31618 659.95491,572.41214 658.90625,570.25 C 659.26665,573.13912 659.72521,576.76257 660.25,581.21875 C 660.78573,585.67383 661.49598,590.87796 662.0625,596.78125 C 662.63691,602.59579 663.45741,610.74317 663.59375,615.875 C 663.61,616.60994 663.57761,617.28339 663.5625,617.90625 C 662.73642,613.8294 661.87259,609.62862 661,605.75 C 659.19342,597.7699 657.34198,590.1351 655.25,582.46875 C 655.20767,583.79218 655.55603,588.1373 656.28125,595.71875 C 656.82001,601.30771 657.71035,610.67706 658.625,619.15625 C 657.65734,616.75202 656.9241,615.3431 656.4375,615.09375 C 656.19287,614.2276 656.40623,616.89409 657.09375,623.5 C 657.78666,630.10566 659.40233,645.83754 660.53125,654.21875 C 661.6662,662.49014 662.55759,667.11146 663.8125,672.96875 C 664.81707,677.49441 666.05076,681.07018 667.15625,685.21875 C 664.86901,680.7009 662.67645,676.917 660.5625,673.78125 C 661.55445,680.86823 662.86321,688.02991 664.59375,695.78125 C 665.35324,699.1616 666.17862,702.55153 667.0625,706 L 286.65625,706 C 287.04492,699.92213 287.32627,694.29101 287.5,689.09375 C 287.83319,679.39835 287.8009,671.6165 287.375,665.3125 C 286.216,670.51139 285.13905,675.83462 284.09375,681.34375 C 284.17255,677.70202 284.14185,673.57641 283.96875,668.78125 C 283.70673,661.69726 283.1166,652.2957 282.4375,644.1875 C 281.7436,636.03493 280.9571,628.22473 279.9375,620.34375 C 279.71381,621.64882 279.4475,625.98453 279.125,633.59375 C 278.99251,636.77433 278.8071,641.54183 278.625,646.3125 C 278.59208,645.94096 278.56365,645.51652 278.53125,645.15625 C 277.93946,638.26679 277.38375,634.53926 276.53125,629.71875 C 275.66665,624.80999 274.3321,619.38545 273.4375,616.25 C 272.5694,613.13841 271.92515,611.36463 271.40625,611.03125 C 271.38635,610.9205 271.36045,610.87378 271.34375,610.875 C 271.22634,610.88358 271.18295,613.65748 271.21875,619.46875 C 271.25206,624.25776 271.27045,633.80664 271.40625,641.9375 C 270.91784,639.70397 270.408,637.6657 269.8125,635.40625 C 268.5457,630.58557 266.7753,625.30091 265.625,622.25 C 264.50299,619.22068 263.70085,617.5394 263.15625,617.25 C 262.92454,616.38028 263.06725,619.04084 263.65625,625.65625 C 264.11585,630.77101 265.04755,641.33027 265.90625,649.75 C 265.75825,649.56181 265.61285,649.35863 265.46875,649.1875 C 263.89486,647.27424 262.2761,645.93891 260.5,645.0625 C 260.9402,646.62612 261.47225,648.57667 262.09375,651 C 262.73565,653.41853 263.6657,656.24122 264.25,659.5 C 264.85609,662.70366 265.74705,667.18905 265.59375,670.15625 C 265.40045,673.08262 263.84855,674.55697 263.28125,676.90625 C 262.78614,679.18925 262.6125,681.03004 262.5,683.875 C 262.36941,686.73633 262.3235,690.71742 262.5625,693.84375 C 262.8476,696.872 262.8043,699.16293 264.125,702.1875 C 264.67031,703.38468 265.4505,704.68218 266.34375,706 L 28,706 C 28.732207,703.82502 29.463657,701.6894 30.125,699.78125 C 31.7692,694.94442 32.98435,692.25467 34.28125,688.25 C 35.572449,684.24531 36.8525,680.68935 37.8125,675.875 C 38.745,670.9944 39.40765,665.52056 39.84375,659.21875 C 38.773251,660.68493 37.745,661.75842 36.625,662.65625 C 35.498998,663.53097 34.2248,664.36502 33.1875,664.34375 C 32.150101,664.21182 31.08495,661.88113 30.40625,662.1875 C 29.705449,662.53765 29.45775,664.53994 29.09375,666.3125 C 28.71865,667.99693 28.68765,670.72123 28.21875,672.40625 C 27.71645,674.02562 26.89185,675.20274 26.21875,676.1875 C 25.63555,677.05534 25.0661,677.64786 24.5,678.03125 C 24.6181,674.91943 24.6974,672.00064 24.75,669.53125 C 24.896201,661.35882 24.9569,657.05721 24.5625,650.25 C 25.2058,645.60905 25.8357,640.89001 26.125,636.875 C 26.5166,631.05399 26.2684,627.09332 26.125,621.6875 C 25.9483,616.12912 25.56085,609.19502 25.21875,604.25 C 24.88755,599.32625 24.5998,596.16143 24.125,592.375 C 23.606401,588.50224 22.6933,586.50193 22.3125,581.46875 C 21.9484,576.34801 21.96335,568.18662 21.96875,562.34375 C 21.957751,556.41333 22.1506,551.14234 22.25,546.65625 C 22.3382,542.17015 22.4228,538.5355 22.5,535.625 z" - id="rect6153" - style="fill:url(#linearGradient2891);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 739.03125,681.78125 C 728.29875,681.80091 719.89724,685.02021 719.03125,685.625 C 708.47153,697.26333 711.70837,714.71043 712.15625,715.03125 C 712.71883,715.43424 716.15788,717.45499 720.375,719.84375 C 720.43328,721.56959 720.53126,723.28124 720.53125,723.28125 C 720.53125,723.28125 725.29885,730.47134 742.1875,736 C 757.04266,740.86299 776.09377,730.46877 776.09375,730.46875 L 781.46875,731.59375 L 786.5,728.5625 L 792.1875,715.875 L 793.03125,705.65625 L 792.84375,706.0625 C 792.57113,705.95409 790.14599,705.00705 789.59375,705.1875 C 789.01004,705.37825 786.625,707.6875 786.625,707.6875 L 780.4375,705.90625 L 780.3125,706.1875 C 779.05952,705.32221 778.08272,705.41849 777.125,705.59375 C 776.26,703.46355 772.2416,696.04146 771.6875,695.40625 C 771.06357,694.69097 763.57658,687.41947 754.625,684.28125 C 749.27979,682.41033 743.90966,681.77232 739.03125,681.78125 z" - transform="matrix(1,0,0,0.568966,0,309.22805)" - id="path7397" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7556)" /> - <g - transform="matrix(-8.1871328e-2,0.2695512,-0.2695512,-8.1871328e-2,1133.7993,567.72515)" - id="g7375"> - <path - d="M 826.25,1088.1786 C 826.25,1088.1786 808.39286,1084.6071 806.07143,1085.1429 C 803.75,1085.6786 777.14286,1112.4643 775.35714,1115.3214 C 773.57143,1118.1786 756.60285,1151.1439 755.17858,1184.7857 C 752.48959,1249.0584 792.17924,1300.9225 796.46664,1304.2933 C 846.89032,1328.1532 902.76523,1299.1379 903.39286,1297.2857 C 905.40525,1291.347 924.28571,1211.2143 923.39286,1195.1429 C 922.85971,1185.5462 928.57143,1141.2143 874.10714,1083.8929 C 846.25001,1090.1428 826.96429,1088.8929 826.25,1088.1786 z" - id="path7361" - style="fill:#303030;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 819.64286,1126.9286 L 857.85714,1126.9286 C 857.85714,1126.9286 867.5,1164.4286 866.25,1172.4643 C 858.75,1175.5 811.07143,1172.2857 811.07143,1172.2857 C 811.07143,1172.2857 814.82143,1136.0357 819.64286,1126.9286 z" - id="path7335" - style="fill:#5d5d5d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 870.89286,1125.6786 L 879.28572,1166.5714 C 879.28572,1166.5714 880,1170.8571 882.85714,1170.1429 C 885.71429,1169.4286 910.17857,1162.2857 910.35714,1161.2143 C 910.53572,1160.1429 910.35714,1158.5357 910.35714,1157.8214 C 910.35714,1157.1071 908.90457,1142.4254 891.25,1117.4643 C 880.13761,1116.3372 870.0927,1128.0791 870.89286,1125.6786 z" - id="path7337" - style="fill:#484848;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 809.28572,1184.25 C 809.28572,1184.25 808.75,1233.8929 812.32143,1236.0357 C 815.89286,1238.1786 862.85714,1236.9286 863.57143,1236.2143 C 864.28572,1235.5 867.85714,1186.5714 867.32143,1185.1429 C 866.78572,1183.7143 831.07143,1189.6071 809.28572,1184.25 z" - id="path7339" - style="fill:#5d5d5d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 795.71429,1183 L 765.35714,1173.1786 C 765.35714,1173.1786 761.96429,1169.9643 761.60714,1175.5 C 761.25,1181.0357 762.5,1221.9286 762.5,1221.9286 C 762.5,1221.9286 764.28572,1227.4643 769.28572,1228.5357 C 774.28572,1229.6071 792.5,1234.7857 797.14286,1234.0714 C 797.50001,1227.6428 794.82143,1182.2857 794.82143,1182.2857 L 795.71429,1183 z" - id="path7341" - style="fill:#757575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 782.97919,1120.2907 C 782.97919,1120.2907 765.93286,1156.4037 766.43794,1157.035 C 766.94301,1157.6663 764.1651,1159.5604 768.83705,1161.8332 C 773.50901,1164.1061 792.57564,1169.5356 792.57564,1169.5356 C 792.57564,1169.5356 795.60609,1171.1771 796.74251,1167.6416 C 797.87894,1164.1061 807.22285,1126.6042 806.71777,1126.4779 C 806.2127,1126.3516 793.58579,1117.2602 782.97919,1120.2907 z" - id="path7343" - style="fill:#757575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 880.53572,1182.6429 L 877.32143,1232.1071 C 877.32143,1232.1071 879.10714,1234.6071 881.96429,1234.4286 C 884.82143,1234.25 911.25,1228.3571 912.14286,1227.2857 C 913.03572,1226.2143 917.5,1176.2143 915.53572,1172.4643 C 913.57143,1168.7143 885.89286,1184.25 880.53572,1182.6429 z" - id="path7345" - style="fill:#484848;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 769.82143,1241.5714 C 769.82143,1241.5714 780.89286,1270.3214 783.03572,1271.5714 C 785.17857,1272.8214 805.89286,1280.6786 808.03572,1278.8929 C 810.17857,1277.1071 801.78572,1249.0714 800.53572,1248 C 799.28572,1246.9286 770,1242.1071 769.82143,1241.5714 z" - id="path7347" - style="fill:#757575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 814.82143,1250.5 L 820.35714,1279.4286 C 820.35714,1279.4286 822.67857,1281.5714 823.92857,1281.2143 C 825.17857,1280.8571 859.82143,1282.1071 861.96429,1280.3214 C 864.10714,1278.5357 863.21429,1252.1071 862.85714,1250.3214 C 862.5,1248.5357 816.07143,1249.25 814.82143,1250.5 z" - id="path7349" - style="fill:#5d5d5d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 875.17857,1247.1072 L 871.96428,1278.8929 C 871.96428,1278.8929 900.71429,1272.1072 903.92857,1268.8929 C 907.14286,1265.6786 910,1238.7143 910,1238.7143 L 875.17857,1247.1072 z" - id="path7351" - style="fill:#484848;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 791.25,1284.875 C 791.25,1284.875 799.82143,1302.4643 801.96429,1302.4643 C 804.10714,1302.4643 813.21429,1306.125 813.92857,1305.2321 C 814.64286,1304.3393 811.51786,1289.9643 811.51786,1289.9643 C 811.51786,1289.9643 796.42857,1284.1607 791.25,1284.875 z" - id="path7353" - style="fill:#757575;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 824.19643,1291.2143 C 824.19643,1291.2143 826.78572,1305.5893 829.19643,1306.3036 C 831.60714,1307.0179 854.73214,1308.0893 855.625,1307.0179 C 856.51786,1305.9464 859.10714,1292.1964 857.94643,1291.0357 C 856.78572,1289.875 829.64286,1287.0179 824.19643,1291.2143 z" - id="path7355" - style="fill:#5d5d5d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 869.28571,1288.9822 C 869.28571,1288.9822 864.64286,1303.5357 866.78572,1304.3393 C 868.92857,1305.1429 896.25,1295.1429 897.14286,1293.7143 C 898.03572,1292.2857 902.05358,1282.6429 900.71429,1281.5714 C 899.37501,1280.4999 869.82143,1288.9822 869.28571,1288.9822 z" - id="path7357" - style="fill:#484848;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 807.98046,1091.8802 L 790.17652,1108.2951 L 813.78884,1118.1441 L 860.00332,1117.8916 L 885.88848,1106.6536 L 864.92781,1088.8497 C 864.92781,1088.8497 850.02806,1103.7495 807.98046,1091.8802 z" - id="path7359" - style="fill:#4b4b4b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 815.53572,1049.6071 L 814.82143,1078 L 861.07143,1081.5714 L 858.92857,1055.5 L 815.53572,1049.6071 z" - id="path7373" - style="fill:#191919;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 805.41296,1069.6329 C 800.59394,1078.0602 802.22322,1082.3421 804.28629,1086.3451 C 804.28629,1086.3451 856.113,1095.5462 877.70746,1086.3451 C 881.46302,1075.0784 876.58079,1070.5718 876.58079,1070.5718 C 876.58079,1070.5718 839.9641,1083.3406 805.41296,1069.6329 z" - id="path7363" - style="fill:#2b2b2b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05155635px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 789.77221,1031.8571 C 789.77221,1031.8571 788.83477,1042.5714 790.08469,1044.3571 C 791.33461,1046.1429 801.64639,1051.8571 801.64639,1051.8571 L 801.95886,1074.7143 L 818.20773,1076.5 L 818.83269,1051.6786 L 841.17489,1054 L 855.23641,1070.4285 L 856.64256,1082.2143 C 856.64256,1082.2143 891.3948,1118.7775 905.38918,1146.8571 C 919.4507,1175.0714 912.41994,1234 900.702,1267.9286 C 906.79533,1255.6071 926.49774,1214.045 918.66951,1177.0357 C 912.79472,1149.2616 903.20183,1121.4107 861.9547,1078.1965 C 859.61111,1068.6429 859.92359,1058.6429 859.92359,1058.6429 L 846.64326,1041.1429 L 789.77221,1031.8571 z" - id="path7367" - style="fill:#686868;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - d="M 788.17857,1032.2143 L 823.64486,1024.5357 L 872.70395,1030.7857 L 888.17163,1044.7143 L 889.89025,1064.1786 C 889.89025,1064.1786 944.8287,1118.1701 943.63652,1173.6429 C 942.28113,1236.7093 922.76709,1260.2763 922.76709,1260.2763 C 922.76709,1260.2763 900.65045,1268.4113 899.40054,1267.697 C 898.15062,1266.9827 921.07361,1234.3698 918.89388,1193.2857 C 917.00289,1157.6439 893.36773,1109.9488 860.28294,1078.1964 C 858.56431,1067.9285 858.17372,1059.0893 858.17372,1059.0893 L 844.58091,1040.7857 L 788.17857,1032.2143 z" - id="path7371" - style="fill:#434343;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <path - d="M 663.35258,719.43749 C 655.48977,719.43749 649.10714,722.49124 649.10714,726.25755 C 649.10714,730.02386 655.48977,733.08101 663.35258,733.08101 C 671.21539,733.08099 677.59525,730.02386 677.59525,726.25755 C 677.59525,725.65449 677.43182,725.07053 677.12477,724.51351 L 689.83905,722.63036 L 689.51611,720.99152 L 675.87477,723.00699 C 673.46196,720.88032 668.75827,719.43749 663.35258,719.43749 z M 664.06806,720.80151 C 670.2656,720.80149 675.29294,723.00812 675.29294,725.72823 C 675.29294,728.44836 670.2656,730.65496 664.06806,730.65496 C 657.87052,730.65496 652.84042,728.44836 652.84042,725.72823 C 652.84042,723.00812 657.87052,720.80151 664.06806,720.80151 z" - id="path7648" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter7738)" /> - <path - d="M 662.45972,718.77678 C 654.59691,718.77678 648.21428,721.83053 648.21428,725.59684 C 648.21428,729.36315 654.59691,732.4203 662.45972,732.4203 C 670.32253,732.42028 676.70239,729.36315 676.70239,725.59684 C 676.70239,724.99378 676.53896,724.40982 676.23191,723.8528 L 688.94619,721.96965 L 688.62325,720.33081 L 674.98191,722.34628 C 672.5691,720.21961 667.86541,718.77678 662.45972,718.77678 z M 663.1752,720.1408 C 669.37274,720.14078 674.40008,722.34741 674.40008,725.06752 C 674.40008,727.78765 669.37274,729.99425 663.1752,729.99425 C 656.97766,729.99425 651.94756,727.78765 651.94756,725.06752 C 651.94756,722.34741 656.97766,720.1408 663.1752,720.1408 z" - id="path7639" - style="fill:#7d7d7d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </g> - </g> -</svg> diff --git a/data/images/interface/logo.svg b/data/images/interface/logo.svg deleted file mode 100644 index 927d3ec..0000000 --- a/data/images/interface/logo.svg +++ /dev/null @@ -1,915 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="311.32681" - height="193.36264" - id="svg2" - inkscape:label="Pozadí" - sodipodi:version="0.32" - inkscape:version="0.46" - version="1.0" - sodipodi:docname="tuxanci.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs2620"> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3490" - id="radialGradient4632" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - cx="309.25818" - cy="253.70972" - fx="309.25818" - fy="253.70972" - r="26.521585" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="linearGradient4630" - gradientUnits="userSpaceOnUse" - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3444" - id="linearGradient4628" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3412" - id="radialGradient4626" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3382" - id="radialGradient4624" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2454" - id="radialGradient4622" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - cx="314.18878" - cy="307.83929" - fx="314.18878" - fy="307.83929" - r="34.697639" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient4620" - gradientUnits="userSpaceOnUse" - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4618" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4616" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient4614" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - cx="300.21915" - cy="330.18991" - fx="300.21915" - fy="330.18991" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient4612" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - cx="306.686" - cy="329.11215" - fx="306.686" - fy="329.11215" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4610" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - cx="268.75073" - cy="281.56763" - fx="268.75073" - fy="281.56763" - r="47.562981" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3490" - id="radialGradient4604" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - cx="309.25818" - cy="253.70972" - fx="309.25818" - fy="253.70972" - r="26.521585" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="linearGradient4602" - gradientUnits="userSpaceOnUse" - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3444" - id="linearGradient4600" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3412" - id="radialGradient4598" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3382" - id="radialGradient4596" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2454" - id="radialGradient4594" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - cx="314.18878" - cy="307.83929" - fx="314.18878" - fy="307.83929" - r="34.697639" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient4592" - gradientUnits="userSpaceOnUse" - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4590" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4588" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient4586" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - cx="300.21915" - cy="330.18991" - fx="300.21915" - fy="330.18991" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient4584" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - cx="306.686" - cy="329.11215" - fx="306.686" - fy="329.11215" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4582" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - cx="268.75073" - cy="281.56763" - fx="268.75073" - fy="281.56763" - r="47.562981" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4483"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop4485" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop4487" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3490"> - <stop - style="stop-color:#808080;stop-opacity:1;" - offset="0" - id="stop3492" /> - <stop - style="stop-color:#808080;stop-opacity:0;" - offset="1" - id="stop3494" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3490" - id="radialGradient4578" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - cx="309.25818" - cy="253.70972" - fx="309.25818" - fy="253.70972" - r="26.521585" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="linearGradient4576" - gradientUnits="userSpaceOnUse" - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" /> - <linearGradient - id="linearGradient3444"> - <stop - id="stop3446" - offset="0" - style="stop-color:#7a7a7a;stop-opacity:1;" /> - <stop - id="stop3448" - offset="1" - style="stop-color:#2a2a2a;stop-opacity:1;" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3444" - id="linearGradient4574" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" /> - <linearGradient - id="linearGradient3412"> - <stop - id="stop3414" - offset="0" - style="stop-color:#ffffff;stop-opacity:0.19285715;" /> - <stop - id="stop3416" - offset="1" - style="stop-color:#ffdd55;stop-opacity:0;" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3412" - id="radialGradient4572" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <linearGradient - id="linearGradient3382"> - <stop - style="stop-color:#ffffff;stop-opacity:0.55000001;" - offset="0" - id="stop3384" /> - <stop - style="stop-color:#ffdd55;stop-opacity:0;" - offset="1" - id="stop3386" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3382" - id="radialGradient4570" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <linearGradient - id="linearGradient2454"> - <stop - style="stop-color:#ffcc00;stop-opacity:1;" - offset="0" - id="stop2456" /> - <stop - style="stop-color:#ffcc00;stop-opacity:0;" - offset="1" - id="stop2458" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2454" - id="radialGradient4568" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - cx="314.18878" - cy="307.83929" - fx="314.18878" - fy="307.83929" - r="34.697639" /> - <linearGradient - id="linearGradient3278"> - <stop - id="stop3280" - offset="0" - style="stop-color:#ffcc00;stop-opacity:1;" /> - <stop - id="stop3282" - offset="1" - style="stop-color:#cc7a00;stop-opacity:1;" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient4566" - gradientUnits="userSpaceOnUse" - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4564" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4562" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient4560" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - cx="300.21915" - cy="330.18991" - fx="300.21915" - fy="330.18991" - r="16.087479" /> - <linearGradient - id="linearGradient3346"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop3348" /> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="1" - id="stop3350" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient4558" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - cx="306.686" - cy="329.11215" - fx="306.686" - fy="329.11215" - r="16.087479" /> - <linearGradient - id="linearGradient3260"> - <stop - style="stop-color:#666666;stop-opacity:1;" - offset="0" - id="stop3262" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="1" - id="stop3264" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4556" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - cx="268.75073" - cy="281.56763" - fx="268.75073" - fy="281.56763" - r="47.562981" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 526.18109 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="744.09448 : 526.18109 : 1" - inkscape:persp3d-origin="372.04724 : 350.78739 : 1" - id="perspective2626" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4483" - id="radialGradient2769" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.3861793,-0.3179904,0.3749104,0.5765624,-153.09864,-39.640975)" - cx="301.08719" - cy="515.88568" - fx="301.08719" - fy="515.88568" - r="65.12442" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4483" - id="radialGradient2790" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.4379406,6.2624944e-2,-0.1660869,0.8000038,93.472824,-256.85649)" - cx="559.03674" - cy="482.57309" - fx="559.03674" - fy="482.57309" - r="65.12442" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="0.7" - inkscape:cx="195.04288" - inkscape:cy="76.677059" - inkscape:document-units="px" - inkscape:current-layer="g2810" - showgrid="false" - inkscape:window-width="1280" - inkscape:window-height="747" - inkscape:window-x="0" - inkscape:window-y="28" /> - <metadata - id="metadata2623"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Vrstva 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(-67.396792,-73.22983)"> - <g - id="g2810" - transform="translate(10.101525,32.324881)"> - <g - id="g2868" - transform="translate(10.101525,8.0812202)"> - <g - id="g3872" - transform="matrix(0.9150898,0.4062163,-0.4282378,0.8481519,157.61445,-241.48985)"> - <path - transform="matrix(0.6882369,-7.5302481e-3,-1.0406728e-2,0.7876371,51.619489,30.132613)" - d="M 472.13252,390.32748 A 77.289841,50.710529 0 1 1 317.55284,390.32748 A 77.289841,50.710529 0 1 1 472.13252,390.32748 z" - sodipodi:ry="50.710529" - sodipodi:rx="77.289841" - sodipodi:cy="390.32748" - sodipodi:cx="394.84268" - id="path3874" - style="opacity:1;fill:#000000;fill-opacity:1" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="csssc" - id="path3876" - d="M 365.74864,327.91006 C 365.74864,349.91773 345.27315,372.35905 319.01839,372.35905 C 292.76362,372.35905 270.62268,349.91773 270.62268,327.91006 C 270.62268,305.90239 289.84906,273.88467 316.10383,273.88467 C 342.35859,273.88467 365.74864,305.90239 365.74864,327.91006 z" - style="fill:url(#radialGradient4556);fill-opacity:1" /> - <path - transform="matrix(1.0138481,0,0,0.7208741,-7.2445917,80.839045)" - d="M 321.74956,317.23438 A 16.087479,17.486389 0 1 1 289.5746,317.23438 A 16.087479,17.486389 0 1 1 321.74956,317.23438 z" - sodipodi:ry="17.486389" - sodipodi:rx="16.087479" - sodipodi:cy="317.23438" - sodipodi:cx="305.66208" - id="path3878" - style="opacity:1;fill:url(#radialGradient4558);fill-opacity:1" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4560);fill-opacity:1" - id="path3880" - sodipodi:cx="305.66208" - sodipodi:cy="317.23438" - sodipodi:rx="16.087479" - sodipodi:ry="17.486389" - d="M 321.74956,317.23438 A 16.087479,17.486389 0 1 1 289.5746,317.23438 A 16.087479,17.486389 0 1 1 321.74956,317.23438 z" - transform="matrix(1.0708886,0,0,0.7930302,1.8438299,56.686911)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4562);fill-opacity:1" - id="path3882" - sodipodi:cx="313.38773" - sodipodi:cy="313.14539" - sodipodi:rx="7.2399807" - sodipodi:ry="6.0579429" - d="M 320.62771,313.14539 A 7.2399807,6.0579429 0 1 1 306.14775,313.14539 A 7.2399807,6.0579429 0 1 1 320.62771,313.14539 z" - transform="matrix(1.122449,0,0,1.2909313,-27.988686,-94.598747)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4564);fill-opacity:1" - id="path3884" - sodipodi:cx="313.38773" - sodipodi:cy="313.14539" - sodipodi:rx="7.2399807" - sodipodi:ry="6.0579429" - d="M 320.62771,313.14539 A 7.2399807,6.0579429 0 1 1 306.14775,313.14539 A 7.2399807,6.0579429 0 1 1 320.62771,313.14539 z" - transform="matrix(1.0115466,0,0,1.1015857,-6.488929,-32.560137)" /> - <path - id="path3886" - d="M 318.25,314.4375 C 301.26162,314.4375 287.46874,321.0169 287.46875,329.125 C 287.46875,329.23072 287.49534,329.33231 287.5,329.4375 C 282.65487,331.8884 279.78125,334.92483 279.78125,338.21875 C 279.78125,346.32683 297.44648,367.59375 318.875,367.59375 C 340.30352,367.59375 357.40625,346.32682 357.40625,338.21875 C 357.40625,334.77607 354.27973,331.63008 349.03125,329.125 C 349.03125,329.11446 349.0313,329.10428 349.03125,329.09375 C 348.99547,321.00017 335.2163,314.43749 318.25,314.4375 z" - style="fill:url(#linearGradient4566);fill-opacity:1" /> - <path - style="fill:url(#radialGradient4568);fill-opacity:1" - d="M 318.42834,314.4375 C 303.24105,314.4375 290.91047,320.56027 290.91048,328.10565 C 290.91048,328.20403 290.93425,328.29857 290.93842,328.39646 C 286.60696,330.67726 284.038,333.50295 284.038,336.56827 C 284.038,344.11362 299.83039,363.90456 318.98707,363.90456 C 338.14376,363.90456 353.43328,344.11362 353.43328,336.56827 C 353.43328,333.36452 350.63823,330.43687 345.94619,328.10565 C 345.94619,328.09584 345.94623,328.08637 345.94619,328.07657 C 345.91421,320.5447 333.59589,314.43749 318.42834,314.4375 z" - id="path3888" /> - <path - sodipodi:nodetypes="ccc" - id="path3890" - d="M 294.05132,354.01593 C 307.36599,369.76095 337.0072,370.0159 354.40443,342.62485 C 338.45347,356.99755 319.48216,365.53902 294.05132,354.01593 z" - style="fill:#550000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path3892" - d="M 320.76534,314.59948 C 312.27548,316.59648 295.1791,322.79901 293.50338,329.35126 L 287.31924,329.55535 C 289.12411,317.43899 307.93285,314.44494 320.76534,314.59948 z" - style="fill:url(#radialGradient4570);fill-opacity:1;fill-rule:evenodd" /> - <path - style="fill:url(#radialGradient4572);fill-opacity:1;fill-rule:evenodd" - d="M 324.75905,353.90986 C 334.15313,349.79484 346.82934,337.43442 345.25604,328.50485 L 348.80588,330.12792 C 344.78242,342.35681 336.27221,350.73257 324.75905,353.90986 z" - id="path3894" - sodipodi:nodetypes="cccc" /> - <g - transform="translate(-0.4163651,-1.1672698)" - id="g3896"> - <path - style="fill:url(#linearGradient4574);fill-opacity:1;fill-rule:evenodd" - d="M 303.21875,254.71875 C 303.21875,254.71875 309.89223,266.08819 306.84774,277.74085 C 311.50005,277.57887 313.37082,281.96078 314.81931,284.73471 L 317.59375,277 C 312.25674,265.87773 303.21875,254.71875 303.21875,254.71875 z" - id="path3898" - sodipodi:nodetypes="ccccc" /> - <path - id="path3900" - d="M 325.7701,276.40799 C 323.65892,268.1652 326.27146,262.28979 326.27146,262.28979 C 326.27146,262.28979 314.23393,278.42053 314.5979,285.59697 C 319.79451,279.64452 321.95345,278.447 325.7701,276.40799 z" - style="fill:url(#linearGradient4576);fill-opacity:1;fill-rule:evenodd" - sodipodi:nodetypes="cccc" /> - <path - style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 303.125,254.625 C 309.05735,263.07821 313.99391,270.21536 317,278 L 317.75,276.0625 C 313.75103,267.31147 306.92126,259.02887 303.125,254.625 z" - id="path3902" /> - <path - style="fill:#999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 326.29146,262.15155 C 322.61088,266.72622 314.74014,277.09575 314.53648,285.75261 L 315.61414,284.45639 C 316.94182,276.57666 321.04509,270.18387 326.29146,262.15155 z" - id="path3904" - sodipodi:nodetypes="cccc" /> - </g> - <path - sodipodi:nodetypes="ccsscsccscc" - id="path3906" - d="M 326.02107,293.2888 C 321.17749,293.48314 316.9971,294.68774 314.07825,297.57845 C 311.23669,295.73698 307.47443,295.4091 303.51192,295.56811 C 294.85564,295.91545 288.0553,301.85966 288.33427,308.81228 C 288.34787,309.15117 288.38838,309.47822 288.43446,309.80907 C 288.81365,303.30094 295.25365,297.16827 303.48802,296.83786 C 307.08372,296.69357 310.51437,298.29989 313.22307,299.83843 L 314.5276,300.84944 C 317.43644,297.49222 322.78423,294.60605 328.08304,294.39343 C 333.65922,294.16966 337.93502,296.8998 341.0792,300.31571 C 338.16715,295.90972 332.4804,293.0296 326.02107,293.2888 z" - style="opacity:1;fill:url(#radialGradient4578);fill-opacity:1" /> - </g> - <path - style="fill:url(#radialGradient2790);fill-opacity:1" - d="M 194.22771,67.863982 C 160.51251,73.210133 134.36131,95.83672 120.41243,119.38195 C 112.25411,126.84451 105.99176,135.85471 103.15079,145.93561 C 97.774469,165.01311 105.34948,183.77025 119.86161,197.59867 C 134.37378,211.4271 155.80919,221.17069 181.07438,224.74353 C 206.3391,228.31629 231.26447,225.14468 251.9048,216.44064 C 272.54513,207.73657 289.45072,192.83878 294.82912,173.75395 C 299.10344,158.58679 294.89852,143.64855 285.87245,131.32118 C 278.39188,102.98541 256.1887,73.436119 218.4748,67.736577 C 210.29488,66.500378 202.08361,66.618284 194.22771,67.863982 z" - id="path4472" /> - <g - transform="matrix(1.1168022,-0.2522852,0.2555787,1.1028979,-334.87818,-123.31421)" - id="g3908"> - <path - transform="matrix(0.6882369,-7.5302481e-3,-1.0406728e-2,0.7876371,51.619489,30.132613)" - d="M 472.13252,390.32748 A 77.289841,50.710529 0 1 1 317.55284,390.32748 A 77.289841,50.710529 0 1 1 472.13252,390.32748 z" - sodipodi:ry="50.710529" - sodipodi:rx="77.289841" - sodipodi:cy="390.32748" - sodipodi:cx="394.84268" - id="path3910" - style="opacity:1;fill:#000000;fill-opacity:1" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="csssc" - id="path3912" - d="M 365.74864,327.91006 C 365.74864,349.91773 345.27315,372.35905 319.01839,372.35905 C 292.76362,372.35905 270.62268,349.91773 270.62268,327.91006 C 270.62268,305.90239 289.84906,273.88467 316.10383,273.88467 C 342.35859,273.88467 365.74864,305.90239 365.74864,327.91006 z" - style="fill:url(#radialGradient4582);fill-opacity:1" /> - <path - transform="matrix(1.0138481,0,0,0.7208741,-7.2445917,80.839045)" - d="M 321.74956,317.23438 A 16.087479,17.486389 0 1 1 289.5746,317.23438 A 16.087479,17.486389 0 1 1 321.74956,317.23438 z" - sodipodi:ry="17.486389" - sodipodi:rx="16.087479" - sodipodi:cy="317.23438" - sodipodi:cx="305.66208" - id="path3914" - style="opacity:1;fill:url(#radialGradient4584);fill-opacity:1" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4586);fill-opacity:1" - id="path3916" - sodipodi:cx="305.66208" - sodipodi:cy="317.23438" - sodipodi:rx="16.087479" - sodipodi:ry="17.486389" - d="M 321.74956,317.23438 A 16.087479,17.486389 0 1 1 289.5746,317.23438 A 16.087479,17.486389 0 1 1 321.74956,317.23438 z" - transform="matrix(1.0708886,0,0,0.7930302,1.8438299,56.686911)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4588);fill-opacity:1" - id="path3918" - sodipodi:cx="313.38773" - sodipodi:cy="313.14539" - sodipodi:rx="7.2399807" - sodipodi:ry="6.0579429" - d="M 320.62771,313.14539 A 7.2399807,6.0579429 0 1 1 306.14775,313.14539 A 7.2399807,6.0579429 0 1 1 320.62771,313.14539 z" - transform="matrix(1.122449,0,0,1.2909313,-27.988686,-94.598747)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4590);fill-opacity:1" - id="path3920" - sodipodi:cx="313.38773" - sodipodi:cy="313.14539" - sodipodi:rx="7.2399807" - sodipodi:ry="6.0579429" - d="M 320.62771,313.14539 A 7.2399807,6.0579429 0 1 1 306.14775,313.14539 A 7.2399807,6.0579429 0 1 1 320.62771,313.14539 z" - transform="matrix(1.0115466,0,0,1.1015857,-6.488929,-32.560137)" /> - <path - id="path3922" - d="M 318.25,314.4375 C 301.26162,314.4375 287.46874,321.0169 287.46875,329.125 C 287.46875,329.23072 287.49534,329.33231 287.5,329.4375 C 282.65487,331.8884 279.78125,334.92483 279.78125,338.21875 C 279.78125,346.32683 297.44648,367.59375 318.875,367.59375 C 340.30352,367.59375 357.40625,346.32682 357.40625,338.21875 C 357.40625,334.77607 354.27973,331.63008 349.03125,329.125 C 349.03125,329.11446 349.0313,329.10428 349.03125,329.09375 C 348.99547,321.00017 335.2163,314.43749 318.25,314.4375 z" - style="fill:url(#linearGradient4592);fill-opacity:1" /> - <path - style="fill:url(#radialGradient4594);fill-opacity:1" - d="M 318.42834,314.4375 C 303.24105,314.4375 290.91047,320.56027 290.91048,328.10565 C 290.91048,328.20403 290.93425,328.29857 290.93842,328.39646 C 286.60696,330.67726 284.038,333.50295 284.038,336.56827 C 284.038,344.11362 299.83039,363.90456 318.98707,363.90456 C 338.14376,363.90456 353.43328,344.11362 353.43328,336.56827 C 353.43328,333.36452 350.63823,330.43687 345.94619,328.10565 C 345.94619,328.09584 345.94623,328.08637 345.94619,328.07657 C 345.91421,320.5447 333.59589,314.43749 318.42834,314.4375 z" - id="path3924" /> - <path - sodipodi:nodetypes="ccc" - id="path3926" - d="M 294.05132,354.01593 C 307.36599,369.76095 337.0072,370.0159 354.40443,342.62485 C 338.45347,356.99755 319.48216,365.53902 294.05132,354.01593 z" - style="fill:#550000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path3928" - d="M 320.76534,314.59948 C 312.27548,316.59648 295.1791,322.79901 293.50338,329.35126 L 287.31924,329.55535 C 289.12411,317.43899 307.93285,314.44494 320.76534,314.59948 z" - style="fill:url(#radialGradient4596);fill-opacity:1;fill-rule:evenodd" /> - <path - style="fill:url(#radialGradient4598);fill-opacity:1;fill-rule:evenodd" - d="M 324.75905,353.90986 C 334.15313,349.79484 346.82934,337.43442 345.25604,328.50485 L 348.80588,330.12792 C 344.78242,342.35681 336.27221,350.73257 324.75905,353.90986 z" - id="path3930" - sodipodi:nodetypes="cccc" /> - <g - transform="translate(-0.4163651,-1.1672698)" - id="g3932"> - <path - style="fill:url(#linearGradient4600);fill-opacity:1;fill-rule:evenodd" - d="M 303.21875,254.71875 C 303.21875,254.71875 309.89223,266.08819 306.84774,277.74085 C 311.50005,277.57887 313.37082,281.96078 314.81931,284.73471 L 317.59375,277 C 312.25674,265.87773 303.21875,254.71875 303.21875,254.71875 z" - id="path3934" - sodipodi:nodetypes="ccccc" /> - <path - id="path3936" - d="M 325.7701,276.40799 C 323.65892,268.1652 326.27146,262.28979 326.27146,262.28979 C 326.27146,262.28979 314.23393,278.42053 314.5979,285.59697 C 319.79451,279.64452 321.95345,278.447 325.7701,276.40799 z" - style="fill:url(#linearGradient4602);fill-opacity:1;fill-rule:evenodd" - sodipodi:nodetypes="cccc" /> - <path - style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 303.125,254.625 C 309.05735,263.07821 313.99391,270.21536 317,278 L 317.75,276.0625 C 313.75103,267.31147 306.92126,259.02887 303.125,254.625 z" - id="path3938" /> - <path - style="fill:#999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 326.29146,262.15155 C 322.61088,266.72622 314.74014,277.09575 314.53648,285.75261 L 315.61414,284.45639 C 316.94182,276.57666 321.04509,270.18387 326.29146,262.15155 z" - id="path3940" - sodipodi:nodetypes="cccc" /> - </g> - <path - sodipodi:nodetypes="ccsscsccscc" - id="path3942" - d="M 326.02107,293.2888 C 321.17749,293.48314 316.9971,294.68774 314.07825,297.57845 C 311.23669,295.73698 307.47443,295.4091 303.51192,295.56811 C 294.85564,295.91545 288.0553,301.85966 288.33427,308.81228 C 288.34787,309.15117 288.38838,309.47822 288.43446,309.80907 C 288.81365,303.30094 295.25365,297.16827 303.48802,296.83786 C 307.08372,296.69357 310.51437,298.29989 313.22307,299.83843 L 314.5276,300.84944 C 317.43644,297.49222 322.78423,294.60605 328.08304,294.39343 C 333.65922,294.16966 337.93502,296.8998 341.0792,300.31571 C 338.16715,295.90972 332.4804,293.0296 326.02107,293.2888 z" - style="opacity:1;fill:url(#radialGradient4604);fill-opacity:1" /> - </g> - <path - id="path4491" - d="M 210.8499,50.231154 C 177.1347,55.903901 150.9835,79.912746 137.03461,104.89638 C 128.8763,112.81483 122.61395,122.37547 119.77297,133.0722 C 114.39666,153.31515 121.97166,173.21818 136.4838,187.8914 C 150.99597,202.56462 172.43137,212.90343 197.69657,216.69455 C 222.96128,220.48558 247.88666,217.1202 268.52699,207.88443 C 289.16731,198.64861 306.0729,182.8407 311.45131,162.58998 C 315.72563,146.49626 311.52071,130.64543 302.49464,117.56497 C 295.01407,87.498153 272.81089,56.143685 235.09699,50.095964 C 226.91706,48.784251 218.7058,48.90937 210.8499,50.231154 z" - style="fill:url(#radialGradient2769);fill-opacity:1" /> - <g - transform="matrix(1.3718769,0.5478271,-0.5478271,1.3718769,-51.034319,-480.72107)" - id="g3952"> - <path - sodipodi:type="arc" - style="opacity:1;fill:#000000;fill-opacity:1" - id="path3954" - sodipodi:cx="394.84268" - sodipodi:cy="390.32748" - sodipodi:rx="77.289841" - sodipodi:ry="50.710529" - d="M 472.13252,390.32748 A 77.289841,50.710529 0 1 1 317.55284,390.32748 A 77.289841,50.710529 0 1 1 472.13252,390.32748 z" - transform="matrix(0.6882369,-7.5302481e-3,-1.0406728e-2,0.7876371,51.619489,30.132613)" /> - <path - style="fill:url(#radialGradient4610);fill-opacity:1" - d="M 365.74864,327.91006 C 365.74864,349.91773 345.27315,372.35905 319.01839,372.35905 C 292.76362,372.35905 270.62268,349.91773 270.62268,327.91006 C 270.62268,305.90239 289.84906,273.88467 316.10383,273.88467 C 342.35859,273.88467 365.74864,305.90239 365.74864,327.91006 z" - id="path3956" - sodipodi:nodetypes="csssc" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4612);fill-opacity:1" - id="path3958" - sodipodi:cx="305.66208" - sodipodi:cy="317.23438" - sodipodi:rx="16.087479" - sodipodi:ry="17.486389" - d="M 321.74956,317.23438 A 16.087479,17.486389 0 1 1 289.5746,317.23438 A 16.087479,17.486389 0 1 1 321.74956,317.23438 z" - transform="matrix(1.0138481,0,0,0.7208741,-7.2445917,80.839045)" /> - <path - transform="matrix(1.0708886,0,0,0.7930302,1.8438299,56.686911)" - d="M 321.74956,317.23438 A 16.087479,17.486389 0 1 1 289.5746,317.23438 A 16.087479,17.486389 0 1 1 321.74956,317.23438 z" - sodipodi:ry="17.486389" - sodipodi:rx="16.087479" - sodipodi:cy="317.23438" - sodipodi:cx="305.66208" - id="path3960" - style="opacity:1;fill:url(#radialGradient4614);fill-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.122449,0,0,1.2909313,-27.988686,-94.598747)" - d="M 320.62771,313.14539 A 7.2399807,6.0579429 0 1 1 306.14775,313.14539 A 7.2399807,6.0579429 0 1 1 320.62771,313.14539 z" - sodipodi:ry="6.0579429" - sodipodi:rx="7.2399807" - sodipodi:cy="313.14539" - sodipodi:cx="313.38773" - id="path3962" - style="opacity:1;fill:url(#radialGradient4616);fill-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.0115466,0,0,1.1015857,-6.488929,-32.560137)" - d="M 320.62771,313.14539 A 7.2399807,6.0579429 0 1 1 306.14775,313.14539 A 7.2399807,6.0579429 0 1 1 320.62771,313.14539 z" - sodipodi:ry="6.0579429" - sodipodi:rx="7.2399807" - sodipodi:cy="313.14539" - sodipodi:cx="313.38773" - id="path3964" - style="opacity:1;fill:url(#radialGradient4618);fill-opacity:1" - sodipodi:type="arc" /> - <path - style="fill:url(#linearGradient4620);fill-opacity:1" - d="M 318.25,314.4375 C 301.26162,314.4375 287.46874,321.0169 287.46875,329.125 C 287.46875,329.23072 287.49534,329.33231 287.5,329.4375 C 282.65487,331.8884 279.78125,334.92483 279.78125,338.21875 C 279.78125,346.32683 297.44648,367.59375 318.875,367.59375 C 340.30352,367.59375 357.40625,346.32682 357.40625,338.21875 C 357.40625,334.77607 354.27973,331.63008 349.03125,329.125 C 349.03125,329.11446 349.0313,329.10428 349.03125,329.09375 C 348.99547,321.00017 335.2163,314.43749 318.25,314.4375 z" - id="path3966" /> - <path - id="path3968" - d="M 318.42834,314.4375 C 303.24105,314.4375 290.91047,320.56027 290.91048,328.10565 C 290.91048,328.20403 290.93425,328.29857 290.93842,328.39646 C 286.60696,330.67726 284.038,333.50295 284.038,336.56827 C 284.038,344.11362 299.83039,363.90456 318.98707,363.90456 C 338.14376,363.90456 353.43328,344.11362 353.43328,336.56827 C 353.43328,333.36452 350.63823,330.43687 345.94619,328.10565 C 345.94619,328.09584 345.94623,328.08637 345.94619,328.07657 C 345.91421,320.5447 333.59589,314.43749 318.42834,314.4375 z" - style="fill:url(#radialGradient4622);fill-opacity:1" /> - <path - style="fill:#550000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 294.05132,354.01593 C 307.36599,369.76095 337.0072,370.0159 354.40443,342.62485 C 338.45347,356.99755 319.48216,365.53902 294.05132,354.01593 z" - id="path3970" - sodipodi:nodetypes="ccc" /> - <path - style="fill:url(#radialGradient4624);fill-opacity:1;fill-rule:evenodd" - d="M 320.76534,314.59948 C 312.27548,316.59648 295.1791,322.79901 293.50338,329.35126 L 287.31924,329.55535 C 289.12411,317.43899 307.93285,314.44494 320.76534,314.59948 z" - id="path3972" - sodipodi:nodetypes="cccc" /> - <path - sodipodi:nodetypes="cccc" - id="path3974" - d="M 324.75905,353.90986 C 334.15313,349.79484 346.82934,337.43442 345.25604,328.50485 L 348.80588,330.12792 C 344.78242,342.35681 336.27221,350.73257 324.75905,353.90986 z" - style="fill:url(#radialGradient4626);fill-opacity:1;fill-rule:evenodd" /> - <g - id="g3976" - transform="translate(-0.4163651,-1.1672698)"> - <path - sodipodi:nodetypes="ccccc" - id="path3978" - d="M 303.21875,254.71875 C 303.21875,254.71875 309.89223,266.08819 306.84774,277.74085 C 311.50005,277.57887 313.37082,281.96078 314.81931,284.73471 L 317.59375,277 C 312.25674,265.87773 303.21875,254.71875 303.21875,254.71875 z" - style="fill:url(#linearGradient4628);fill-opacity:1;fill-rule:evenodd" /> - <path - sodipodi:nodetypes="cccc" - style="fill:url(#linearGradient4630);fill-opacity:1;fill-rule:evenodd" - d="M 325.7701,276.40799 C 323.65892,268.1652 326.27146,262.28979 326.27146,262.28979 C 326.27146,262.28979 314.23393,278.42053 314.5979,285.59697 C 319.79451,279.64452 321.95345,278.447 325.7701,276.40799 z" - id="path3980" /> - <path - id="path3982" - d="M 303.125,254.625 C 309.05735,263.07821 313.99391,270.21536 317,278 L 317.75,276.0625 C 313.75103,267.31147 306.92126,259.02887 303.125,254.625 z" - style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path3984" - d="M 326.29146,262.15155 C 322.61088,266.72622 314.74014,277.09575 314.53648,285.75261 L 315.61414,284.45639 C 316.94182,276.57666 321.04509,270.18387 326.29146,262.15155 z" - style="fill:#999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <path - style="opacity:1;fill:url(#radialGradient4632);fill-opacity:1" - d="M 326.02107,293.2888 C 321.17749,293.48314 316.9971,294.68774 314.07825,297.57845 C 311.23669,295.73698 307.47443,295.4091 303.51192,295.56811 C 294.85564,295.91545 288.0553,301.85966 288.33427,308.81228 C 288.34787,309.15117 288.38838,309.47822 288.43446,309.80907 C 288.81365,303.30094 295.25365,297.16827 303.48802,296.83786 C 307.08372,296.69357 310.51437,298.29989 313.22307,299.83843 L 314.5276,300.84944 C 317.43644,297.49222 322.78423,294.60605 328.08304,294.39343 C 333.65922,294.16966 337.93502,296.8998 341.0792,300.31571 C 338.16715,295.90972 332.4804,293.0296 326.02107,293.2888 z" - id="path3986" - sodipodi:nodetypes="ccsscsccscc" /> - </g> - </g> - </g> - </g> -</svg> diff --git a/data/images/interface/menuframe.svg b/data/images/interface/menuframe.svg deleted file mode 100644 index 17a9a70..0000000 --- a/data/images/interface/menuframe.svg +++ /dev/null @@ -1,96 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="989.16711" - height="720.42871" - id="svg13839" - sodipodi:version="0.32" - inkscape:version="0.46" - version="1.0" - sodipodi:docname="menuframe.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs13841"> - <filter - inkscape:collect="always" - id="filter9225" - x="-0.024952862" - width="1.0499057" - y="-0.37006667" - height="1.7401333"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="10.284362" - id="feGaussianBlur9227" /> - </filter> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 526.18109 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="744.09448 : 526.18109 : 1" - inkscape:persp3d-origin="372.04724 : 350.78739 : 1" - id="perspective13847" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - gridtolerance="10000" - guidetolerance="10" - objecttolerance="10" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="0.49497475" - inkscape:cx="492.03015" - inkscape:cy="415.86267" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:window-width="1138" - inkscape:window-height="866" - inkscape:window-x="115" - inkscape:window-y="114" /> - <metadata - id="metadata13844"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(43.154991,147.85218)"> - <g - id="g13834" - transform="translate(-64.362866,-160.44593)"> - <path - sodipodi:nodetypes="ccccc" - id="path9051" - d="M 21.207875,667.11618 L 1010.3717,666.32512 L 981.02503,732.79646 L 44.009774,733.02248 L 21.207875,667.11618 z" - style="fill:#000000;fill-opacity:0.64761909;fill-rule:evenodd;stroke:#ff0000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter9225)" /> - <path - sodipodi:nodetypes="ccccccc" - id="rect8879" - d="M 31.88892,29.198097 L 770.35469,37.505576 L 780.13585,169.23846 L 981.45698,161.64313 L 966.78364,690.47361 L 55.877601,703.52822 L 31.88892,29.198097 z" - style="fill:#c5ae77;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" /> - <path - id="path9029" - d="M 1010.375,12.59375 L 21.21875,20.875 L 44,713.03125 L 981.03125,710.65625 L 1010.375,12.59375 z M 31.875,29.1875 L 770.34375,37.5 L 780.125,169.25 L 981.46875,161.65625 L 966.78125,690.46875 L 55.875,703.53125 L 31.875,29.1875 z" - style="fill:#120b00;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" /> - </g> - </g> -</svg> diff --git a/data/images/interface/sky.svg b/data/images/interface/sky.svg deleted file mode 100644 index f0ad16a..0000000 --- a/data/images/interface/sky.svg +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - version="1.0" - width="1024" - height="768" - id="svg2759"> - <defs - id="defs2761"> - <linearGradient - x1="513.15747" - y1="56.695404" - x2="513.15747" - y2="887.60516" - id="linearGradient2895" - xlink:href="#linearGradient4785" - gradientUnits="userSpaceOnUse" /> - <linearGradient - id="linearGradient4785"> - <stop - id="stop4787" - style="stop-color:#a6c0e0;stop-opacity:1" - offset="0" /> - <stop - id="stop4789" - style="stop-color:#35526f;stop-opacity:1" - offset="1" /> - </linearGradient> - </defs> - <g - transform="translate(-66.000005,-342.36218)" - id="layer1"> - <g - transform="translate(66.000005,342.36218)" - id="g2901"> - <rect - width="1024" - height="768" - x="0" - y="0" - id="rect4783" - style="fill:url(#linearGradient2895);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 0,0 L 0,23.5 L 446.75,225.0625 L 133.5625,0 L 0,0 z M 204.15625,0 L 457.78125,207.46875 L 288.0625,0 L 204.15625,0 z M 330.125,0 L 471.28125,196.4375 L 382.65625,0 L 330.125,0 z M 422.25,0 L 493.34375,188.09375 L 462.59375,0 L 422.25,0 z M 497.71875,0 L 516.4375,187.1875 L 535.15625,0 L 497.71875,0 z M 564.75,0 L 533.875,188.78125 L 605.21875,0 L 564.75,0 z M 644.84375,0 L 555.21875,198.5625 L 697.96875,0 L 644.84375,0 z M 744.5,0 L 572.8125,209.78125 L 829.125,0 L 744.5,0 z M 894.625,0 L 584,223.28125 L 1024,24.6875 L 1024,0 L 894.625,0 z M 0,81.28125 L 0,175.125 L 436.96875,246.59375 L 0,81.28125 z M 1024,81.96875 L 592.1875,245.34375 L 1024,174.71875 L 1024,81.96875 z M 0,220.46875 L 0,307.53125 L 435.1875,264 L 0,220.46875 z M 1024,222.75 L 590.0625,266.125 L 1024,309.53125 L 1024,222.75 z M 588.46875,283.5625 L 1024,448.1875 L 1024,354.8125 L 588.46875,283.5625 z M 433.0625,284.8125 L 0,355.625 L 0,448.5 L 433.0625,284.8125 z M 578.6875,304.90625 L 1024,625.21875 L 1024,505.90625 L 578.6875,304.90625 z M 441.40625,306.84375 L 0,506.03125 L 0,624.03125 L 441.40625,306.84375 z M 452.4375,320.375 L 0,680.71875 L 0,768 L 82.90625,768 L 452.4375,320.375 z M 567.46875,322.6875 L 930.625,768 L 1024,768 L 1024,686.21875 L 567.46875,322.6875 z M 470.03125,331.5625 L 156.28125,768 L 273.03125,768 L 470.03125,331.5625 z M 553.96875,333.6875 L 750,768 L 866.15625,768 L 553.96875,333.6875 z M 491.5625,341.15625 L 330.0625,768 L 421.75,768 L 491.5625,341.15625 z M 531.90625,342.0625 L 601.59375,768 L 692.90625,768 L 531.90625,342.0625 z M 508.96875,342.9375 L 466.46875,768 L 551.46875,768 L 508.96875,342.9375 z" - id="rect5744" - style="fill:#ffffff;fill-opacity:0.07843137;fill-rule:evenodd;stroke:none;stroke-width:1.24399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" /> - </g> - </g> -</svg> diff --git a/data/images/interface/widget_button.svg b/data/images/interface/widget_button.svg deleted file mode 100644 index f4cf1bd..0000000 --- a/data/images/interface/widget_button.svg +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - version="1.0" - width="124.26984" - height="43.568611" - id="svg14037"> - <defs - id="defs14039"> - <linearGradient - id="linearGradient4139"> - <stop - id="stop4141" - style="stop-color:#ffcc00;stop-opacity:1" - offset="0" /> - <stop - id="stop4143" - style="stop-color:#cc7a00;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="637.83551" - y1="248.00143" - x2="637.83551" - y2="313.09811" - id="linearGradient11353" - xlink:href="#linearGradient4139" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-224.73127,134.98704)" /> - </defs> - <g - transform="translate(-335.00794,-393.43501)" - id="layer1"> - <rect - width="121.05184" - height="40.350613" - x="336.61694" - y="395.04401" - id="rect11345" - style="opacity:1;fill:url(#linearGradient11353);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - </g> -</svg> diff --git a/data/images/interface/widget_checkbox_off.svg b/data/images/interface/widget_checkbox_off.svg deleted file mode 100644 index cfc9c52..0000000 --- a/data/images/interface/widget_checkbox_off.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - version="1.0" - width="27.103832" - height="27.103832" - id="svg13965"> - <defs - id="defs13967" /> - <g - transform="translate(-500.7338,-433.09599)" - id="layer1"> - <rect - width="23.885832" - height="23.885832" - x="502.3428" - y="434.70499" - id="rect11318" - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - </g> -</svg> diff --git a/data/images/interface/widget_checkbox_on.svg b/data/images/interface/widget_checkbox_on.svg deleted file mode 100644 index d158d8b..0000000 --- a/data/images/interface/widget_checkbox_on.svg +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - version="1.0" - width="27.103832" - height="27.103832" - id="svg13996"> - <defs - id="defs13998" /> - <g - transform="translate(-295.01951,-407.38169)" - id="layer1"> - <rect - width="23.885832" - height="23.885832" - x="296.62851" - y="408.99069" - id="rect11326" - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <path - d="M 303.41249,414.41407 L 301.34324,415.71798 C 302.00039,416.30415 302.55513,416.97988 303.12903,417.6455 C 303.72649,418.32242 304.35984,418.97356 304.91482,419.6864 C 305.45789,420.34726 306.00229,420.98981 306.58722,421.61392 C 306.57822,421.62118 306.56768,421.63518 306.55887,421.64227 C 305.23653,422.734 304.01292,423.93082 302.78888,425.12881 C 302.22237,425.70478 302.48181,425.41992 301.99519,425.97918 L 304.17782,425.07211 C 304.63917,424.5417 304.37993,424.80632 304.91482,424.25008 C 305.62636,423.53304 306.35497,422.83735 307.09745,422.15249 C 307.72206,422.79131 308.35158,423.43334 308.99662,424.05166 C 309.50068,424.59044 310.0166,425.13477 310.52729,425.66738 C 311.09755,426.26064 311.64098,426.84904 312.1997,427.45317 L 314.2406,426.23429 C 313.64916,425.65763 313.0769,425.05042 312.5115,424.44851 C 312.08347,423.98758 312.21559,424.1263 311.8312,423.65482 C 311.69028,423.48197 311.55541,423.31018 311.40602,423.1446 C 311.29416,423.02061 311.14307,422.90649 311.03752,422.7761 C 310.28162,422.14014 309.57942,421.46338 308.88323,420.76354 C 308.85632,420.7342 308.82495,420.708 308.7982,420.67851 C 310.12493,419.62157 311.50644,418.61456 312.93669,417.70219 C 313.12504,417.57974 313.07445,417.60825 313.1918,417.53212 C 313.17744,417.53789 313.11963,417.5544 313.10677,417.56046 C 313.45757,417.35975 313.49896,417.33287 313.1918,417.53212 C 313.25362,417.50731 313.3212,417.50594 313.5603,417.41873 C 313.6757,417.37665 313.78513,417.31928 313.90045,417.27701 L 315.79962,415.77468 C 315.54064,415.90628 315.2707,415.99765 315.00594,416.11483 C 314.73448,416.23496 314.2319,416.48255 313.98549,416.62505 C 311.41408,418.11205 312.1977,417.61221 310.81075,418.55257 C 310.58081,418.69953 310.35625,418.82444 310.13045,418.97776 C 309.89252,419.13931 309.65707,419.3226 309.42181,419.48798 C 309.05657,419.74473 308.73343,419.96322 308.40135,420.19663 C 307.90948,419.62689 307.43627,419.04707 306.95572,418.46753 C 306.69159,418.142 306.41813,417.81168 306.13369,417.50377 C 305.80507,417.14804 305.44588,416.80587 305.14158,416.42663 C 304.57526,415.74481 303.99528,415.08092 303.41249,414.41407 z" - id="path11332" - style="opacity:1;fill:#bea93a;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:2.91894221;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - </g> -</svg> diff --git a/data/images/interface/widget_combobox.svg b/data/images/interface/widget_combobox.svg deleted file mode 100644 index 594e868..0000000 --- a/data/images/interface/widget_combobox.svg +++ /dev/null @@ -1,56 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - version="1.0" - width="233.01064" - height="36.03083" - id="svg14103"> - <defs - id="defs14105"> - <linearGradient - id="linearGradient4139"> - <stop - id="stop4141" - style="stop-color:#ffcc00;stop-opacity:1" - offset="0" /> - <stop - id="stop4143" - style="stop-color:#cc7a00;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="637.83551" - y1="248.00143" - x2="637.83551" - y2="313.09811" - id="linearGradient11472" - xlink:href="#linearGradient4139" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0039604,0,0,1.0039604,-193.53849,-182.36508)" /> - </defs> - <g - transform="translate(-260.63755,-77.10643)" - id="layer1"> - <rect - width="229.79263" - height="32.786705" - x="262.24655" - y="78.741554" - id="rect11355" - style="fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <rect - width="34.148212" - height="32.779945" - x="457.86407" - y="78.721802" - id="rect11357" - style="fill:url(#linearGradient11472);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3.23074436;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - <path - d="M 467.30898,90.127365 L 464.50231,92.061845 C 465.45105,92.840395 466.26231,93.749535 467.09968,94.643495 C 467.9705,95.551845 468.88982,96.422235 469.70355,97.383035 C 470.49771,98.272145 471.29267,99.135675 472.14302,99.971205 C 472.1309,99.981825 472.11702,100.00194 472.10516,100.01231 C 472.07172,100.07127 472.88478,100.63663 472.88443,100.69191 C 472.85272,100.6519 475.69135,99.165225 475.29148,98.655275 C 475.25232,98.615965 475.20713,98.581285 475.16819,98.541755 C 476.95506,96.993805 478.82106,95.512245 480.76038,94.159675 C 481.01563,93.978345 480.94682,94.020945 481.10587,93.908205 C 481.0862,93.917065 481.00664,93.943365 480.98908,93.952545 C 481.46606,93.652925 481.52216,93.613115 481.10587,93.908205 C 481.19053,93.870105 481.28455,93.864315 481.61251,93.729165 C 481.77079,93.663945 481.91988,93.577765 482.07804,93.512295 L 484.63648,91.311285 C 484.2834,91.509395 483.91274,91.652115 483.55078,91.830495 C 483.17965,92.013355 482.494,92.386965 482.15905,92.599545 C 478.66362,94.817785 479.72615,94.076775 477.84874,95.465835 C 477.53697,95.683675 477.23143,95.870505 476.9258,96.096955 C 476.60375,96.335575 476.28639,96.604325 475.96827,96.848115 C 475.4744,97.226615 475.03695,97.549405 474.58792,97.893495 C 473.87028,97.128335 473.17806,96.348065 472.47562,95.568615 C 472.08913,95.130465 471.68937,94.686175 471.27562,94.273725 C 470.7976,93.797215 470.27778,93.341345 469.83227,92.830705 C 469.00453,91.913745 468.15879,91.022545 467.30898,90.127365 z" - id="path11368" - style="fill:#bea93a;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:4.0681591;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - </g> -</svg> diff --git a/data/images/interface/widget_input.svg b/data/images/interface/widget_input.svg deleted file mode 100644 index b5a6933..0000000 --- a/data/images/interface/widget_input.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - version="1.0" - width="233.01064" - height="36.004704" - id="svg14072"> - <defs - id="defs14074" /> - <g - transform="translate(-234.92326,-260.07411)" - id="layer1"> - <rect - width="229.79263" - height="32.786705" - x="236.53226" - y="261.68311" - id="rect11337" - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - </g> -</svg> diff --git a/data/images/interface/widget_key_arrow_down.svg b/data/images/interface/widget_key_arrow_down.svg deleted file mode 100644 index e961963..0000000 --- a/data/images/interface/widget_key_arrow_down.svg +++ /dev/null @@ -1,137 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - version="1.0" - width="53.594284" - height="53.594284" - id="svg9046"> - <defs - id="defs9048"> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow2Mstart" - style="overflow:visible"> - <path - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z" - transform="scale(0.6,0.6)" - id="path9671" - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow1Sstart" - style="overflow:visible"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" - transform="matrix(0.2,0,0,0.2,1.2,0)" - id="path9659" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow2Lstart" - style="overflow:visible"> - <path - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z" - transform="matrix(1.1,0,0,1.1,1.1,0)" - id="path9665" - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow1Lstart" - style="overflow:visible"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" - transform="matrix(0.8,0,0,0.8,10,0)" - id="path9647" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow1Mstart" - style="overflow:visible"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" - transform="matrix(0.4,0,0,0.4,4,0)" - id="path9653" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" /> - </marker> - <linearGradient - x1="400.16815" - y1="600.7644" - x2="347.56201" - y2="600.7644" - id="linearGradient9033" - xlink:href="#linearGradient8954" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,1287.8404,-479.78264)" /> - <linearGradient - id="linearGradient8954"> - <stop - id="stop8956" - style="stop-color:#ffa400;stop-opacity:1" - offset="0" /> - <stop - id="stop8958" - style="stop-color:#b28121;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="608.98706" - y1="281.21072" - x2="561.71466" - y2="281.21072" - id="linearGradient9029" - xlink:href="#linearGradient8954" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.9216028,0,0,0.9216028,232.79924,109.40375)" /> - </defs> - <g - transform="translate(-741.77429,-342.70789)" - id="layer1"> - <rect - width="50.594284" - height="50.594284" - rx="6.3242855" - ry="6.3242855" - x="743.27429" - y="344.20789" - id="rect8960" - style="fill:url(#linearGradient9033);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 757.58735,380.17726 L 745.08735,392.67726 L 757.58735,380.17726 z M 779.08735,380.17726 L 791.58735,392.67726 L 779.08735,380.17726 z" - id="path8964" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <rect - width="36.864113" - height="36.864113" - rx="4.6080141" - ry="4.6080141" - x="750.13928" - y="349.07294" - id="rect9009" - style="fill:url(#linearGradient9029);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M -705.04523,368.77551 A 1.5,1.5 0 1 1 -708.04523,368.77551 A 1.5,1.5 0 1 1 -705.04523,368.77551 z" - id="path9640" - style="fill:#000000;stroke:none" /> - <path - d="M 759.57883,375.43323 L 759.57883,358.30834" - id="path9642" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88146412;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - </g> -</svg> diff --git a/data/images/interface/widget_key_arrow_left.svg b/data/images/interface/widget_key_arrow_left.svg deleted file mode 100644 index f76dc99..0000000 --- a/data/images/interface/widget_key_arrow_left.svg +++ /dev/null @@ -1,137 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - version="1.0" - width="53.594284" - height="53.594284" - id="svg9046"> - <defs - id="defs9048"> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow2Mstart" - style="overflow:visible"> - <path - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z" - transform="scale(0.6,0.6)" - id="path9671" - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow1Sstart" - style="overflow:visible"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" - transform="matrix(0.2,0,0,0.2,1.2,0)" - id="path9659" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow2Lstart" - style="overflow:visible"> - <path - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z" - transform="matrix(1.1,0,0,1.1,1.1,0)" - id="path9665" - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow1Lstart" - style="overflow:visible"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" - transform="matrix(0.8,0,0,0.8,10,0)" - id="path9647" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow1Mstart" - style="overflow:visible"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" - transform="matrix(0.4,0,0,0.4,4,0)" - id="path9653" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" /> - </marker> - <linearGradient - x1="400.16815" - y1="600.7644" - x2="347.56201" - y2="600.7644" - id="linearGradient9033" - xlink:href="#linearGradient8954" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,1287.8404,-479.78264)" /> - <linearGradient - id="linearGradient8954"> - <stop - id="stop8956" - style="stop-color:#ffa400;stop-opacity:1" - offset="0" /> - <stop - id="stop8958" - style="stop-color:#b28121;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="608.98706" - y1="281.21072" - x2="561.71466" - y2="281.21072" - id="linearGradient9029" - xlink:href="#linearGradient8954" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.9216028,0,0,0.9216028,232.79924,109.40375)" /> - </defs> - <g - transform="translate(-741.77429,-342.70789)" - id="layer1"> - <rect - width="50.594284" - height="50.594284" - rx="6.3242855" - ry="6.3242855" - x="743.27429" - y="344.20789" - id="rect8960" - style="fill:url(#linearGradient9033);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 757.58735,380.17726 L 745.08735,392.67726 L 757.58735,380.17726 z M 779.08735,380.17726 L 791.58735,392.67726 L 779.08735,380.17726 z" - id="path8964" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <rect - width="36.864113" - height="36.864113" - rx="4.6080141" - ry="4.6080141" - x="750.13928" - y="349.07294" - id="rect9009" - style="fill:url(#linearGradient9029);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M -705.04523,368.77551 A 1.5,1.5 0 1 1 -708.04523,368.77551 A 1.5,1.5 0 1 1 -705.04523,368.77551 z" - id="path9640" - style="fill:#000000;stroke:none" /> - <path - d="M 755.80998,367.66438 L 772.93487,367.66438" - id="path9642" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88146412;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - </g> -</svg> diff --git a/data/images/interface/widget_key_arrow_right.svg b/data/images/interface/widget_key_arrow_right.svg deleted file mode 100644 index 59762a0..0000000 --- a/data/images/interface/widget_key_arrow_right.svg +++ /dev/null @@ -1,137 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - version="1.0" - width="53.594284" - height="53.594284" - id="svg9046"> - <defs - id="defs9048"> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow2Mstart" - style="overflow:visible"> - <path - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z" - transform="scale(0.6,0.6)" - id="path9671" - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow1Sstart" - style="overflow:visible"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" - transform="matrix(0.2,0,0,0.2,1.2,0)" - id="path9659" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow2Lstart" - style="overflow:visible"> - <path - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z" - transform="matrix(1.1,0,0,1.1,1.1,0)" - id="path9665" - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow1Lstart" - style="overflow:visible"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" - transform="matrix(0.8,0,0,0.8,10,0)" - id="path9647" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow1Mstart" - style="overflow:visible"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" - transform="matrix(0.4,0,0,0.4,4,0)" - id="path9653" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" /> - </marker> - <linearGradient - x1="400.16815" - y1="600.7644" - x2="347.56201" - y2="600.7644" - id="linearGradient9033" - xlink:href="#linearGradient8954" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,1287.8404,-479.78264)" /> - <linearGradient - id="linearGradient8954"> - <stop - id="stop8956" - style="stop-color:#ffa400;stop-opacity:1" - offset="0" /> - <stop - id="stop8958" - style="stop-color:#b28121;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="608.98706" - y1="281.21072" - x2="561.71466" - y2="281.21072" - id="linearGradient9029" - xlink:href="#linearGradient8954" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.9216028,0,0,0.9216028,232.79924,109.40375)" /> - </defs> - <g - transform="translate(-741.77429,-342.70789)" - id="layer1"> - <rect - width="50.594284" - height="50.594284" - rx="6.3242855" - ry="6.3242855" - x="743.27429" - y="344.20789" - id="rect8960" - style="fill:url(#linearGradient9033);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 757.58735,380.17726 L 745.08735,392.67726 L 757.58735,380.17726 z M 779.08735,380.17726 L 791.58735,392.67726 L 779.08735,380.17726 z" - id="path8964" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <rect - width="36.864113" - height="36.864113" - rx="4.6080141" - ry="4.6080141" - x="750.13928" - y="349.07294" - id="rect9009" - style="fill:url(#linearGradient9029);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M -705.04523,368.77551 A 1.5,1.5 0 1 1 -708.04523,368.77551 A 1.5,1.5 0 1 1 -705.04523,368.77551 z" - id="path9640" - style="fill:#000000;stroke:none" /> - <path - d="M 781.38384,367.66438 L 764.25895,367.66438" - id="path9642" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88146412;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - </g> -</svg> diff --git a/data/images/interface/widget_key_arrow_up.svg b/data/images/interface/widget_key_arrow_up.svg deleted file mode 100644 index ef24eb8..0000000 --- a/data/images/interface/widget_key_arrow_up.svg +++ /dev/null @@ -1,137 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - version="1.0" - width="53.594284" - height="53.594284" - id="svg9046"> - <defs - id="defs9048"> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow2Mstart" - style="overflow:visible"> - <path - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z" - transform="scale(0.6,0.6)" - id="path9671" - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow1Sstart" - style="overflow:visible"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" - transform="matrix(0.2,0,0,0.2,1.2,0)" - id="path9659" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow2Lstart" - style="overflow:visible"> - <path - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z" - transform="matrix(1.1,0,0,1.1,1.1,0)" - id="path9665" - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow1Lstart" - style="overflow:visible"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" - transform="matrix(0.8,0,0,0.8,10,0)" - id="path9647" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" /> - </marker> - <marker - refX="0" - refY="0" - orient="auto" - id="Arrow1Mstart" - style="overflow:visible"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z" - transform="matrix(0.4,0,0,0.4,4,0)" - id="path9653" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" /> - </marker> - <linearGradient - x1="400.16815" - y1="600.7644" - x2="347.56201" - y2="600.7644" - id="linearGradient9033" - xlink:href="#linearGradient8954" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,1287.8404,-479.78264)" /> - <linearGradient - id="linearGradient8954"> - <stop - id="stop8956" - style="stop-color:#ffa400;stop-opacity:1" - offset="0" /> - <stop - id="stop8958" - style="stop-color:#b28121;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="608.98706" - y1="281.21072" - x2="561.71466" - y2="281.21072" - id="linearGradient9029" - xlink:href="#linearGradient8954" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.9216028,0,0,0.9216028,232.79924,109.40375)" /> - </defs> - <g - transform="translate(-741.77429,-342.70789)" - id="layer1"> - <rect - width="50.594284" - height="50.594284" - rx="6.3242855" - ry="6.3242855" - x="743.27429" - y="344.20789" - id="rect8960" - style="fill:url(#linearGradient9033);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 757.58735,380.17726 L 745.08735,392.67726 L 757.58735,380.17726 z M 779.08735,380.17726 L 791.58735,392.67726 L 779.08735,380.17726 z" - id="path8964" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <rect - width="36.864113" - height="36.864113" - rx="4.6080141" - ry="4.6080141" - x="750.13928" - y="349.07294" - id="rect9009" - style="fill:url(#linearGradient9029);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M -705.04523,368.77551 A 1.5,1.5 0 1 1 -708.04523,368.77551 A 1.5,1.5 0 1 1 -705.04523,368.77551 z" - id="path9640" - style="fill:#000000;stroke:none" /> - <path - d="M 759.57883,359.85937 L 759.57883,376.98426" - id="path9642" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88146412;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Mstart);marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - </g> -</svg> diff --git a/data/images/interface/widget_key_rectangle_empty.svg b/data/images/interface/widget_key_rectangle_empty.svg deleted file mode 100644 index 105632e..0000000 --- a/data/images/interface/widget_key_rectangle_empty.svg +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - version="1.0" - width="128.85066" - height="53.594299" - id="svg9046"> - <defs - id="defs9048"> - <linearGradient - x1="395.27277" - y1="600.7644" - x2="301.68018" - y2="600.7644" - id="linearGradient9033" - xlink:href="#linearGradient8954" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,1287.8404,-479.78264)" /> - <linearGradient - id="linearGradient8954"> - <stop - id="stop8956" - style="stop-color:#ffa400;stop-opacity:1" - offset="0" /> - <stop - id="stop8958" - style="stop-color:#b28121;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="679.73816" - y1="281.21072" - x2="561.71466" - y2="281.21072" - id="linearGradient9029" - xlink:href="#linearGradient8954" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.9216028,0,0,0.9216028,232.79924,109.40375)" /> - </defs> - <g - transform="translate(-741.77429,-342.70789)" - id="layer1"> - <rect - width="125.85066" - height="50.594299" - rx="6.3242855" - ry="6.3242855" - x="743.27429" - y="344.20789" - id="rect8960" - style="fill:url(#linearGradient9033);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 757.58735,380.17726 L 745.08735,392.67726 L 757.58735,380.17726 z M 854.34371,380.17726 L 866.84371,392.67726 L 854.34371,380.17726 z" - id="path8964" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <rect - width="111.61543" - height="36.864105" - rx="4.6080141" - ry="4.6080141" - x="750.13928" - y="349.07294" - id="rect9009" - style="fill:url(#linearGradient9029);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </g> -</svg> diff --git a/data/images/interface/widget_key_square_empty.svg b/data/images/interface/widget_key_square_empty.svg deleted file mode 100644 index 03e98e9..0000000 --- a/data/images/interface/widget_key_square_empty.svg +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - version="1.0" - width="53.594284" - height="53.594284" - id="svg9046"> - <defs - id="defs9048"> - <linearGradient - x1="400.16815" - y1="600.7644" - x2="347.56201" - y2="600.7644" - id="linearGradient9033" - xlink:href="#linearGradient8954" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,1287.8404,-479.78264)" /> - <linearGradient - id="linearGradient8954"> - <stop - id="stop8956" - style="stop-color:#ffa400;stop-opacity:1" - offset="0" /> - <stop - id="stop8958" - style="stop-color:#b28121;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="608.98706" - y1="281.21072" - x2="561.71466" - y2="281.21072" - id="linearGradient9029" - xlink:href="#linearGradient8954" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.9216028,0,0,0.9216028,232.79924,109.40375)" /> - </defs> - <g - transform="translate(-741.77429,-342.70789)" - id="layer1"> - <rect - width="50.594284" - height="50.594284" - rx="6.3242855" - ry="6.3242855" - x="743.27429" - y="344.20789" - id="rect8960" - style="fill:url(#linearGradient9033);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 757.58735,380.17726 L 745.08735,392.67726 L 757.58735,380.17726 z M 779.08735,380.17726 L 791.58735,392.67726 L 779.08735,380.17726 z" - id="path8964" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <rect - width="36.864113" - height="36.864113" - rx="4.6080141" - ry="4.6080141" - x="750.13928" - y="349.07294" - id="rect9009" - style="fill:url(#linearGradient9029);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </g> -</svg> diff --git a/data/images/interface/widget_radiobutton_off.svg b/data/images/interface/widget_radiobutton_off.svg deleted file mode 100644 index 9868b21..0000000 --- a/data/images/interface/widget_radiobutton_off.svg +++ /dev/null @@ -1,76 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="27.21916" - height="27.21916" - id="svg13875" - sodipodi:version="0.32" - inkscape:version="0.46" - version="1.0" - sodipodi:docname="widget_radiobutton.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs13877"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 526.18109 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="744.09448 : 526.18109 : 1" - inkscape:persp3d-origin="372.04724 : 350.78739 : 1" - id="perspective13883" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - gridtolerance="10000" - guidetolerance="10" - objecttolerance="10" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="2.8" - inkscape:cx="18.118996" - inkscape:cy="-2.1841632" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:window-width="640" - inkscape:window-height="672" - inkscape:window-x="0" - inkscape:window-y="498" /> - <metadata - id="metadata13880"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(-317.81899,-395.89546)"> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:5.40071535;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path11306" - sodipodi:cx="306.30148" - sodipodi:cy="255.25972" - sodipodi:rx="20.140371" - sodipodi:ry="20.140371" - d="M 326.44185,255.25972 A 20.140371,20.140371 0 1 1 286.16111,255.25972 A 20.140371,20.140371 0 1 1 326.44185,255.25972 z" - transform="matrix(0.595847,0,0,0.595847,148.91975,257.4093)" /> - </g> -</svg> diff --git a/data/images/interface/widget_radiobutton_on.svg b/data/images/interface/widget_radiobutton_on.svg deleted file mode 100644 index e4ce151..0000000 --- a/data/images/interface/widget_radiobutton_on.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - version="1.0" - width="27.218733" - height="27.218733" - id="svg13906"> - <defs - id="defs13908" /> - <g - transform="translate(-557.8192,-235.89567)" - id="layer1"> - <path - d="M 326.44185,255.25972 A 20.140371,20.140371 0 1 1 286.16111,255.25972 A 20.140371,20.140371 0 1 1 326.44185,255.25972 z" - transform="matrix(0.595847,0,0,0.595847,388.91975,97.409301)" - id="path11310" - style="opacity:1;fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:#000000;stroke-width:5.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="M 326.44185,255.25972 A 20.140371,20.140371 0 1 1 286.16111,255.25972 A 20.140371,20.140371 0 1 1 326.44185,255.25972 z" - transform="matrix(0.3937705,0,0,0.3937705,450.81607,148.99129)" - id="path11312" - style="opacity:1;fill:#000000;fill-opacity:0.78431373;fill-rule:evenodd;stroke:none;stroke-width:5.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </g> -</svg> diff --git a/data/images/interface/widget_table_evenline.svg b/data/images/interface/widget_table_evenline.svg deleted file mode 100644 index f59ec68..0000000 --- a/data/images/interface/widget_table_evenline.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - version="1.0" - width="847.51306" - height="32.786705" - id="svg14230"> - <defs - id="defs14232" /> - <g - transform="translate(186.61368,-544.54028)" - id="layer1"> - <rect - width="847.51306" - height="32.786705" - x="-186.61368" - y="544.54028" - id="rect11477" - style="fill:#ffffff;fill-opacity:0.70588235;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - </g> -</svg> diff --git a/data/images/interface/widget_table_header.svg b/data/images/interface/widget_table_header.svg deleted file mode 100644 index bdc3012..0000000 --- a/data/images/interface/widget_table_header.svg +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - version="1.0" - width="847.51306" - height="32.786705" - id="svg14151"> - <defs - id="defs14153"> - <linearGradient - id="linearGradient4139"> - <stop - id="stop4141" - style="stop-color:#ffcc00;stop-opacity:1" - offset="0" /> - <stop - id="stop4143" - style="stop-color:#cc7a00;stop-opacity:1" - offset="1" /> - </linearGradient> - <linearGradient - x1="528.28619" - y1="355.22632" - x2="528.28619" - y2="404.55829" - id="linearGradient14142" - xlink:href="#linearGradient4139" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-238.42776,11.02663)" /> - </defs> - <g - transform="translate(155.1851,-375.96884)" - id="layer1"> - <rect - width="847.51306" - height="32.786705" - x="-155.1851" - y="375.96884" - id="rect11491" - style="fill:url(#linearGradient14142);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - </g> -</svg> diff --git a/data/images/interface/widget_table_oddline.svg b/data/images/interface/widget_table_oddline.svg deleted file mode 100644 index 10a8238..0000000 --- a/data/images/interface/widget_table_oddline.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - version="1.0" - width="847.51306" - height="32.786705" - id="svg14186"> - <defs - id="defs14188" /> - <g - transform="translate(-4.814898,-481.68311)" - id="layer1"> - <rect - width="847.51306" - height="32.786705" - x="4.814898" - y="481.68311" - id="rect11475" - style="fill:#ffffff;fill-opacity:0.78431373;fill-rule:evenodd;stroke:none;stroke-width:3.21799994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373" /> - </g> -</svg> diff --git a/data/images/item.bombball.png b/data/images/item.bombball.png Binary files differdeleted file mode 100644 index d310d8f..0000000 --- a/data/images/item.bombball.png +++ /dev/null diff --git a/data/images/item.bonus.4x.png b/data/images/item.bonus.4x.png Binary files differdeleted file mode 100644 index a74241e..0000000 --- a/data/images/item.bonus.4x.png +++ /dev/null diff --git a/data/images/item.bonus.ghost.png b/data/images/item.bonus.ghost.png Binary files differdeleted file mode 100644 index bee6542..0000000 --- a/data/images/item.bonus.ghost.png +++ /dev/null diff --git a/data/images/item.bonus.hidden.png b/data/images/item.bonus.hidden.png Binary files differdeleted file mode 100644 index 3ac96db..0000000 --- a/data/images/item.bonus.hidden.png +++ /dev/null diff --git a/data/images/item.bonus.shot.png b/data/images/item.bonus.shot.png Binary files differdeleted file mode 100644 index c899209..0000000 --- a/data/images/item.bonus.shot.png +++ /dev/null diff --git a/data/images/item.bonus.speed.png b/data/images/item.bonus.speed.png Binary files differdeleted file mode 100644 index d228128..0000000 --- a/data/images/item.bonus.speed.png +++ /dev/null diff --git a/data/images/item.bonus.teleport.png b/data/images/item.bonus.teleport.png Binary files differdeleted file mode 100644 index b2202bf..0000000 --- a/data/images/item.bonus.teleport.png +++ /dev/null diff --git a/data/images/item.dual.png b/data/images/item.dual.png Binary files differdeleted file mode 100644 index 7747ca1..0000000 --- a/data/images/item.dual.png +++ /dev/null diff --git a/data/images/item.lasser.png b/data/images/item.lasser.png Binary files differdeleted file mode 100644 index d3f7f30..0000000 --- a/data/images/item.lasser.png +++ /dev/null diff --git a/data/images/item.mine.png b/data/images/item.mine.png Binary files differdeleted file mode 100644 index b774d44..0000000 --- a/data/images/item.mine.png +++ /dev/null diff --git a/data/images/item.scatter.png b/data/images/item.scatter.png Binary files differdeleted file mode 100644 index 7568270..0000000 --- a/data/images/item.scatter.png +++ /dev/null diff --git a/data/images/item.tommy.png b/data/images/item.tommy.png Binary files differdeleted file mode 100644 index ca0fd85..0000000 --- a/data/images/item.tommy.png +++ /dev/null diff --git a/data/images/lasserX.png b/data/images/lasserX.png Binary files differdeleted file mode 100644 index a9be26a..0000000 --- a/data/images/lasserX.png +++ /dev/null diff --git a/data/images/lasserY.png b/data/images/lasserY.png Binary files differdeleted file mode 100644 index cff390f..0000000 --- a/data/images/lasserY.png +++ /dev/null diff --git a/data/images/level4.png b/data/images/level4.png Binary files differdeleted file mode 100644 index 0136b2b..0000000 --- a/data/images/level4.png +++ /dev/null diff --git a/data/images/mine.png b/data/images/mine.png Binary files differdeleted file mode 100644 index 6e8b373..0000000 --- a/data/images/mine.png +++ /dev/null diff --git a/data/images/naboj.png b/data/images/naboj.png Binary files differdeleted file mode 100644 index 2985273..0000000 --- a/data/images/naboj.png +++ /dev/null diff --git a/data/images/panel.png b/data/images/panel.png Binary files differdeleted file mode 100644 index 24a8e6c..0000000 --- a/data/images/panel.png +++ /dev/null diff --git a/data/images/panel_shot.png b/data/images/panel_shot.png Binary files differdeleted file mode 100644 index 2985273..0000000 --- a/data/images/panel_shot.png +++ /dev/null diff --git a/data/images/pauza.png b/data/images/pauza.png Binary files differdeleted file mode 100644 index 933ff85..0000000 --- a/data/images/pauza.png +++ /dev/null diff --git a/data/images/pokus.png b/data/images/pokus.png Binary files differdeleted file mode 100644 index 9e66d2e..0000000 --- a/data/images/pokus.png +++ /dev/null diff --git a/data/images/radar.png b/data/images/radar.png Binary files differdeleted file mode 100644 index f7d6f62..0000000 --- a/data/images/radar.png +++ /dev/null diff --git a/data/images/screen_main.png b/data/images/screen_main.png Binary files differdeleted file mode 100644 index 9734d1a..0000000 --- a/data/images/screen_main.png +++ /dev/null diff --git a/data/images/screen_table.png b/data/images/screen_table.png Binary files differdeleted file mode 100644 index 769496e..0000000 --- a/data/images/screen_table.png +++ /dev/null diff --git a/data/images/shot.png b/data/images/shot.png Binary files differdeleted file mode 100644 index 3d6ebc7..0000000 --- a/data/images/shot.png +++ /dev/null diff --git a/data/images/textfield0.png b/data/images/textfield0.png Binary files differdeleted file mode 100644 index a0ed2a7..0000000 --- a/data/images/textfield0.png +++ /dev/null diff --git a/data/images/textfield1.png b/data/images/textfield1.png Binary files differdeleted file mode 100644 index 2745e3c..0000000 --- a/data/images/textfield1.png +++ /dev/null diff --git a/data/images/tux2.png b/data/images/tux2.png Binary files differdeleted file mode 100644 index cae602b..0000000 --- a/data/images/tux2.png +++ /dev/null diff --git a/data/images/tux4.png b/data/images/tux4.png Binary files differdeleted file mode 100644 index f5e46fb..0000000 --- a/data/images/tux4.png +++ /dev/null diff --git a/data/images/tux6.png b/data/images/tux6.png Binary files differdeleted file mode 100644 index 286b80a..0000000 --- a/data/images/tux6.png +++ /dev/null diff --git a/data/images/tux8.png b/data/images/tux8.png Binary files differdeleted file mode 100644 index cfbf80a..0000000 --- a/data/images/tux8.png +++ /dev/null diff --git a/data/images/tuxanci.png b/data/images/tuxanci.png Binary files differdeleted file mode 100644 index 34b770b..0000000 --- a/data/images/tuxanci.png +++ /dev/null diff --git a/data/images/tuxanci.svg b/data/images/tuxanci.svg new file mode 100644 index 0000000..8e4c2d1 --- /dev/null +++ b/data/images/tuxanci.svg @@ -0,0 +1,8 @@ +<!-- Copyright (c) 2026 Connor Thomson --> +<!-- Licensed under the Creative Commons Attribution-ShareAlike 4.0 International license --> +<svg xmlns="http://www.w3.org/2000/svg" width="400" height="100"> + <path d="m 222.11763,0.32994642 c -0.51975,0.19224 -1.62424,1.92042498 -2.45441,3.84041298 -0.83018,1.919989 -2.01968,4.333361 -2.64334,5.363051 -1.31687,2.1742036 -3.11336,6.0731756 -3.4402,7.4663216 -0.23215,0.989572 0.92179,1.322051 6.97248,2.008939 l 3.46443,0.393289 8.29864,-8.453847 c 4.56426,-4.6496146 8.29865,-8.7627396 8.29865,-9.1402736 0,-0.398441 -2.01912,-0.469619 -4.81265,-0.169655 -3.5085,0.376737 -5.48176,0.223694 -7.2819,-0.564775 -2.52856,-1.10752198 -4.72709,-1.36284998 -6.4017,-0.74346298 M 11.943509,21.143656 c -0.27729,0.279921 -2.2107973,0.627272 -4.2966853,0.771892 -4.537982,0.314628 -4.954928,0.538043 -6.463683,3.463482 -1.40682402,2.727796 -1.60718102,10.973332 -0.34111102,14.038097 0.70029202,1.695191 1.50850502,2.243487 3.86360102,2.621093 1.637936,0.262619 3.281958,0.28917 3.65338,0.059 0.371423,-0.230168 2.5231743,-0.440618 4.7816693,-0.467668 4.174127,-0.05 5.15669,-0.591409 5.925011,-3.264835 0.23674,-0.823751 0.255337,6.084531 0.04132,15.351736 -0.482241,20.882355 -0.378314,43.884742 0.205163,45.409342 0.370006,0.966805 1.516927,1.063405 7.38698,0.62212 11.250927,-0.84578 11.919496,-1.08162 11.719503,-4.13414 -0.09303,-1.42005 -0.26923,-17.746418 -0.39155,-36.280832 -0.122319,-18.534414 -0.502212,-34.146243 -0.844206,-34.69295 -0.489682,-0.782805 -2.372993,-0.880212 -8.863345,-0.458427 -7.892247,0.51289 -8.29321,0.466906 -9.460675,-1.084989 -1.204729,-1.601431 -5.939126,-2.938441 -6.915372,-1.952924 m 116.277681,0.355401 c -0.24838,0.402969 0.54466,3.014636 1.7623,5.803705 1.21765,2.78907 3.21621,7.598457 4.44127,10.687525 1.22506,3.089069 3.38512,7.663045 4.80013,10.164388 2.47618,4.377167 6.53757,12.830411 6.53757,13.607056 0,0.206598 -0.49037,-0.03242 -1.0897,-0.531167 -3.09784,-2.577868 -8.70402,2.003571 -11.17514,9.132456 -0.75254,2.170974 -2.15474,5.336241 -3.116,7.033926 -0.96126,1.697684 -2.11172,4.715169 -2.55657,6.705533 -0.44487,1.990363 -1.33316,4.726739 -1.974,6.080839 -1.9268,4.07133 -1.32909,4.43089 8.2806,4.98121 9.83087,0.56299 12.67489,-0.14046 15.09193,-3.73287 2.33965,-3.4774 4.0075,-7.652771 4.0075,-10.032598 0,-3.845512 1.30411,-2.457093 4.90803,5.225312 3.34888,7.138746 3.65722,7.529686 7.46063,9.459196 2.18205,1.10699 4.4821,1.81466 5.1112,1.5726 0.62911,-0.24206 1.34293,-0.11711 1.58626,0.27767 0.92273,1.497 10.70869,-1.05059 11.98413,-3.11985 0.91544,-1.48518 -1.2876,-9.256951 -3.47789,-12.269149 -1.1968,-1.645893 -3.59055,-5.856942 -5.31943,-9.357886 -1.72887,-3.500946 -3.35471,-6.53385 -3.61295,-6.739788 -0.61618,-0.49136 -6.04299,-9.933785 -8.17746,-14.228439 l -1.67486,-3.369893 2.18207,2.059378 c 2.33488,2.203595 4.28093,2.641257 4.99471,1.123298 0.24209,-0.514844 2.13154,-3.968985 4.19877,-7.675867 2.06724,-3.706884 5.08119,-9.489671 6.69767,-12.850639 1.61648,-3.360969 3.29191,-6.329514 3.72318,-6.596767 0.43126,-0.267254 0.78412,-1.091275 0.78412,-1.831159 0,-1.506899 -5.29284,-2.295316 -15.4765,-2.305367 l -5.39387,-0.0053 -3.47334,7.062521 -3.47334,7.062521 1.61638,3.347954 c 1.56612,3.24384 3.17925,7.988422 2.71602,7.988422 -0.38612,0 -9.7473,-18.903583 -11.03257,-22.27874 l -1.21197,-3.182678 h -10.09863 c -5.77798,0 -10.29186,0.31347 -10.55025,0.73267 m 169.00632,-0.195821 c -3.31142,0.221326 -4.35165,0.58791 -4.68857,1.652265 -0.23813,0.752308 -0.46976,7.984192 -0.51473,16.070854 -0.0685,12.320469 -0.24668,14.565765 -1.09961,13.856001 -0.55983,-0.465861 -1.01786,-1.76056 -1.01786,-2.87711 0,-1.116549 -0.21633,-2.24699 -0.48072,-2.51209 -1.32957,-1.333136 -3.87732,-9.189929 -3.54119,-10.920364 0.26249,-1.351306 -0.2097,-2.746499 -1.53373,-4.5317 -1.05214,-1.418615 -1.91298,-3.281411 -1.91298,-4.139546 0,-0.858136 -0.58815,-2.116908 -1.30701,-2.797274 -0.71885,-0.680366 -1.74036,-1.766227 -2.27003,-2.413024 -0.74952,-0.915276 -2.48812,-1.173729 -7.84204,-1.16577 -9.7203,0.01444 -10.47469,0.292002 -9.92327,3.650915 l 0.44394,2.704214 -1.11254,-2.484967 c -0.92629,-2.068939 -1.45885,-2.445058 -3.18103,-2.246595 -2.51766,0.290135 -3.19291,3.20604 -2.22292,9.599186 0.3437,2.265317 0.32691,9.679083 -0.0373,16.475034 -0.65211,12.167482 -0.75159,15.449786 -0.78311,25.835851 -0.0506,16.668979 0.46828,19.490429 4.01249,21.818919 1.65712,1.0887 2.49293,1.1174 7.50544,0.25768 3.10236,-0.53209 6.06651,-1.39446 6.587,-1.91635 1.12716,-1.13019 2.18139,-7.4501 2.11374,-12.671598 -0.0267,-2.05938 -0.018,-4.755293 0.0194,-5.990921 0.0373,-1.235628 0.0283,-5.111005 -0.0201,-8.61195 l -0.088,-6.365355 1.48823,4.118759 c 0.81854,2.265318 2.11433,5.466716 2.87956,7.11422 2.10929,4.541232 5.14858,12.205754 6.82995,17.223895 2.27909,6.80205 3.06969,7.35493 9.29871,6.50264 3.33274,-0.456 5.6565,-0.44544 6.56166,0.0298 1.51746,0.79676 4.94684,-0.31015 4.94684,-1.5967 0,-0.39206 0.7562,-0.82052 1.68043,-0.95213 l 1.68045,-0.2393 0.14824,-29.580168 c 0.0815,-16.269098 0.24957,-32.61308 0.37342,-36.319964 l 0.2252,-6.739787 -4.48116,-0.06101 c -2.46465,-0.03356 -6.39619,0.06699 -8.73675,0.223424 M 66.968562,22.19215 c -1.435125,0.572969 -1.508373,1.474752 -1.867154,22.987366 -0.497855,29.851519 -0.128415,34.211524 3.513055,41.459917 3.50793,6.982572 7.095133,9.286272 15.718633,10.094472 l 5.41475,0.50748 v -2.55653 c 0,-1.40608 0.21214,-4.59167 0.47143,-7.07907 0.44135,-4.233875 0.34599,-4.631911 -1.49372,-6.235816 -1.08084,-0.942298 -1.96516,-2.215698 -1.96516,-2.829766 0,-0.614077 -0.58815,-1.767711 -1.30702,-2.563636 -1.12436,-1.244921 -1.33805,-3.346026 -1.5292,-15.036274 -0.1222,-7.474025 0.0458,-17.801503 0.37344,-22.949951 0.32759,-5.148449 0.42758,-10.877268 0.2222,-12.73071 l -0.37344,-3.369893 -7.84204,-0.146976 c -4.313131,-0.08083 -8.514226,0.121387 -9.335774,0.449387 m 31.741614,0.05671 c -0.96146,0.60987 -1.12029,4.478949 -1.12029,27.289905 v 26.57923 l -3.20489,3.274622 -3.20489,3.274624 0.85019,7.054484 c 0.46761,3.87997 0.93999,7.1492 1.04974,7.26496 0.10974,0.11575 1.9044,0.41293 3.98812,0.66037 3.570544,0.42401 4.083004,0.25543 8.903924,-2.92914 4.72279,-3.11973 5.32672,-3.8313 7.86966,-9.272324 2.12646,-4.549897 2.84874,-7.173582 3.16855,-11.509774 0.22782,-3.089069 0.79223,-7.878609 1.25423,-10.643423 0.68667,-4.109257 0.65136,-5.25487 -0.19346,-6.275541 -0.81954,-0.990131 -0.98649,-4.228061 -0.80647,-15.641294 0.12486,-7.915978 -0.003,-15.622902 -0.28448,-17.126499 l -0.51149,-2.733808 -8.31907,0.01147 c -4.57549,0.0063 -8.823214,0.331247 -9.439374,0.722089 m 249.092644,0.718962 c -0.4804,1.517658 -0.62882,1.556315 -1.8212,0.474333 -2.26508,-2.055363 -8.75,-1.535443 -13.27013,1.063912 -9.7793,5.623699 -12.86527,16.064671 -11.9536,40.443423 0.59563,15.927576 3.62716,26.512424 8.33635,29.107064 1.21981,0.67208 2.63802,1.60893 3.15154,2.08189 0.51354,0.47296 2.94819,1.09436 5.41034,1.3809 3.81796,0.4443 4.78878,0.2981 6.59802,-0.99366 l 2.12139,-1.51461 0.94541,1.51791 c 1.10137,1.7683 4.26122,1.6205 9.74499,-0.45579 6.61463,-2.50446 8.5264,-4.77163 12.10057,-14.350076 1.26719,-3.395952 1.49537,-5.181696 1.12099,-8.773134 -0.25853,-2.480108 -0.5533,-4.589885 -0.65503,-4.688405 -0.45102,-0.436761 -12.26755,-0.47854 -13.44176,-0.04756 -0.71885,0.26387 -1.81114,0.637681 -2.42731,0.830693 -0.65572,0.205399 -1.12028,1.245955 -1.12028,2.509276 0,3.459083 -1.39175,6.517778 -3.76678,8.278427 -1.21446,0.9003 -2.24711,2.385046 -2.29475,3.29944 -0.079,1.515659 -0.11755,1.530217 -0.43644,0.164796 -0.19239,-0.823752 -0.82201,-1.869258 -1.39916,-2.323348 -1.89317,-1.489492 -3.13195,-5.798919 -3.74513,-13.028388 -1.26968,-14.969712 -0.0981,-27.808312 2.77583,-30.41607 0.88,-0.798528 1.39781,-2.282034 1.39781,-4.004666 0,-1.504945 0.43107,-3.327374 0.95794,-4.04984 0.82513,-1.131466 0.98289,-0.715539 1.13797,3.000164 0.10366,2.484113 0.63952,4.822834 1.26337,5.514042 0.59585,0.660167 1.51214,3.373805 2.0362,6.030306 l 0.95284,4.83 5.60147,-0.125257 c 3.0808,-0.06889 7.02982,-0.357028 8.77562,-0.640305 l 3.17416,-0.515051 v -3.665667 c 0,-2.016119 0.33608,-3.66567 0.74686,-3.66567 0.41077,0 0.74686,-0.505483 0.74686,-1.123298 0,-0.617813 -0.50413,-1.123297 -1.12029,-1.123297 -0.61617,0 -1.12029,-0.547593 -1.12029,-1.216871 0,-2.760327 -3.98442,-9.966976 -6.73669,-12.184689 -2.3517,-1.894948 -3.7817,-2.389561 -8.06173,-2.788415 -4.91503,-0.458029 -5.23189,-0.393424 -5.72596,1.167457 m -142.26577,3.602354 c -0.50344,1.956411 -1.21102,4.399583 -1.57242,5.429273 -0.3614,1.02969 -1.6912,5.73378 -2.95513,10.453533 -1.26393,4.719753 -2.75505,9.606098 -3.31361,10.858545 -0.55856,1.252447 -1.23497,3.625133 -1.50313,5.272636 -0.26817,1.647505 -1.1664,5.691377 -1.99609,8.986383 -4.28776,17.028289 -6.5796,27.747502 -6.19346,28.967402 0.3707,1.17108 1.28631,1.36049 6.5423,1.35339 3.3612,-0.004 7.33996,-0.21196 8.84169,-0.46096 l 2.73041,-0.45274 3.05776,-8.7867 c 1.68177,-4.832681 3.05489,-9.59583 3.05137,-10.584781 -0.006,-1.863941 3.19107,-16.816406 4.69328,-21.945756 l 0.85628,-2.923762 1.66195,6.629668 c 0.91407,3.646315 1.49631,6.898391 1.29386,7.226836 -0.20244,0.328445 -1.43138,0.51423 -2.73098,0.412857 l -2.3629,-0.184319 -1.35256,6.325695 c -0.7439,3.479123 -1.1845,6.764768 -0.97912,7.301436 0.25351,0.662401 1.92268,0.975741 5.19781,0.975741 h 4.82438 l 1.59954,4.286616 c 0.87974,2.357639 1.79144,5.306299 2.02601,6.552569 0.83114,4.41606 1.22431,4.67421 7.84942,5.15376 3.40098,0.24619 7.52794,0.19874 9.17104,-0.10545 4.18556,-0.7748 4.16498,-2.26588 -0.27164,-19.682699 -4.94087,-19.396288 -8.1015,-32.966168 -9.3544,-40.162212 -1.15483,-6.632759 -3.64994,-12.795248 -5.46308,-13.492884 -0.75086,-0.288904 -1.72436,0.185853 -2.59713,1.26657 -1.52639,1.890066 -1.51386,1.892514 -2.77756,-0.542855 -0.8249,-1.589738 -1.33156,-1.684947 -8.96644,-1.684947 h -8.09213 l -0.91532,3.55711 m 179.83809,-3.014983 c -1.50914,0.159694 -3.14628,0.776514 -3.6381,1.37071 -0.68424,0.826672 -0.76368,9.544435 -0.33826,37.125982 l 0.55596,36.045638 5.32273,-0.5154 c 2.9275,-0.28347 6.78582,-0.64364 8.57404,-0.80038 1.78822,-0.15673 3.46866,-0.50417 3.7343,-0.77207 0.64417,-0.64963 0.49464,-68.360834 -0.15669,-70.962937 -0.49902,-1.993556 -0.61558,-2.031186 -5.90957,-1.907783 -2.97029,0.06924 -6.63527,0.256546 -8.14441,0.41624 M 41.015123,24.570697 c -1.104689,0.645149 -1.307007,1.904346 -1.307007,8.134624 0,8.58028 -0.285566,8.280428 7.885913,8.280428 7.345782,0 8.239478,-1.141101 7.479512,-9.550098 -0.286295,-3.167857 -0.877,-6.190406 -1.312677,-6.716772 -0.962716,-1.163115 -10.811802,-1.27762 -12.745741,-0.148182 M 264.97483,34.747983 c 1.0301,2.335491 3.0077,7.598322 4.39467,11.695178 2.45812,7.260891 2.47678,7.406472 0.73951,5.770016 -1.47707,-1.39136 -7.86071,-18.611125 -7.8406,-21.149892 0.012,-1.518235 1.01217,-0.156564 2.70642,3.684698 m -40.79191,-3.279187 c 0,0.785864 -5.36755,18.891985 -5.69757,19.219369 -0.59454,0.589796 0.5465,-5.350952 1.3147,-6.844941 0.35671,-0.693705 0.64856,-2.064745 0.64856,-3.046756 0,-2.632987 2.18439,-9.545968 3.01638,-9.545968 0.39487,0 0.71793,0.09823 0.71793,0.218296 m 73.57785,39.755651 c 1.89804,4.867249 3.31038,8.990523 3.13853,9.162837 -0.30511,0.305926 -7.25825,-17.074663 -7.25825,-18.143258 0,-1.254338 0.85749,0.614886 4.11972,8.980421 M 148.28801,66.860495 c 0.25506,0.66643 0.12985,0.967024 -0.29352,0.704666 -0.40607,-0.251633 -0.73831,-0.774625 -0.73831,-1.162193 0,-1.07719 0.53533,-0.839822 1.03183,0.457527" + stroke="none" + fill="#000000" + style="stroke-width:0.747864"/> +</svg>
\ No newline at end of file diff --git a/data/models/teapot.obj b/data/models/teapot.obj new file mode 100644 index 0000000..42c4e19 --- /dev/null +++ b/data/models/teapot.obj @@ -0,0 +1,36914 @@ +v 0 0.75 -2 +v 0 0.6682434 -1.994385 +v -0.08916049 0.75 -1.998012 +v -0.08903261 0.8352356 -1.995146 +v 0 0.8352356 -1.997131 +v 0.08916049 0.75 -1.998012 +v 0.08891016 0.6682434 -1.992402 +v -0.08891016 0.6682434 -1.992402 +v 0.08903261 0.8352356 -1.995146 +v 0.1797089 0.75 -1.99191 +v 0.1792043 0.6682434 -1.986317 +v -0.1794511 0.8352356 -1.989053 +v -0.1797089 0.75 -1.99191 +v -0.08865983 0.9221191 -1.986792 +v 0 0.9221191 -1.98877 +v 0.08865983 0.9221191 -1.986792 +v 0.1794511 0.8352356 -1.989053 +v -0.1786998 0.9221191 -1.980725 +v 0 0.5916504 -1.978516 +v 0.08820271 0.5916504 -1.976549 +v -0.08820271 0.5916504 -1.976549 +v 0.1777784 0.5916504 -1.970512 +v -0.1792043 0.6682434 -1.986317 +v -0.2710015 0.8352356 -1.978659 +v -0.2713908 0.75 -1.981501 +v 0.2713908 0.75 -1.981501 +v 0.2706288 0.6682434 -1.975938 +v -0.2698669 0.9221191 -1.970375 +v 0.1786998 0.9221191 -1.980725 +v 0.2710015 0.8352356 -1.978659 +v -0.0880585 1.010541 -1.973317 +v 0 1.010541 -1.975281 +v 0.0880585 1.010541 -1.973317 +v -0.1774877 1.010541 -1.967291 +v -0.2706288 0.6682434 -1.975938 +v -0.1777784 0.5916504 -1.970512 +v 0.2684754 0.5916504 -1.960216 +v 0.3639261 0.75 -1.966611 +v 0.3629043 0.6682434 -1.961089 +v -0.3639261 0.75 -1.966611 +v -0.3634041 0.8352356 -1.96379 +v -0.2680365 1.010541 -1.957011 +v 0.1774877 1.010541 -1.967291 +v 0.2698669 0.9221191 -1.970375 +v 0.3634041 0.8352356 -1.96379 +v -0.3618826 0.9221191 -1.955568 +v 0 0.5201111 -1.953857 +v 0.08710344 0.5201111 -1.951915 +v -0.08710344 0.5201111 -1.951915 +v 0.1755628 0.5201111 -1.945954 +v -0.2684754 0.5916504 -1.960216 +v 0.3600167 0.5916504 -1.945485 +v -0.3629043 0.6682434 -1.961089 +v -0.08724493 1.100391 -1.955086 +v 0 1.100391 -1.957031 +v 0.08724493 1.100391 -1.955086 +v -0.1758479 1.100391 -1.949115 +v -0.1755628 0.5201111 -1.945954 +v 0.2651294 0.5201111 -1.935785 +v 0.3618826 0.9221191 -1.955568 +v 0.2680365 1.010541 -1.957011 +v -0.3594281 1.010541 -1.942304 +v -0.2655601 1.100391 -1.93893 +v 0.1758479 1.100391 -1.949115 +v -0.4570103 0.75 -1.947085 +v -0.4563548 0.8352356 -1.944293 +v 0.4570103 0.75 -1.947085 +v 0.4557272 0.6682434 -1.941619 +v -0.4544441 0.9221191 -1.936152 +v 0.4563548 0.8352356 -1.944293 +v -0.4557272 0.6682434 -1.941619 +v -0.3600167 0.5916504 -1.945485 +v 0.452101 0.5916504 -1.926169 +v -0.2651294 0.5201111 -1.935785 +v 0.3555299 0.5201111 -1.921239 +v -0.0850464 1.283936 -1.905818 +v 0 1.283936 -1.907715 +v -0.3561074 1.100391 -1.924359 +v 0.2655601 1.100391 -1.93893 +v 0.3594281 1.010541 -1.942304 +v 0.4544441 0.9221191 -1.936152 +v -0.4513619 1.010541 -1.92302 +v 0.0850464 1.283936 -1.905818 +v -0.1714166 1.283936 -1.899998 +v 0 0.4535156 -1.921875 +v 0.08567765 0.4535156 -1.919964 +v -0.08567765 0.4535156 -1.919964 +v 0.172689 0.4535156 -1.914101 +v 0.1714166 1.283936 -1.899998 +v -0.2588681 1.283936 -1.89007 +v 0.5503165 0.75 -1.922798 +v 0.5487714 0.6682434 -1.917399 +v -0.5495271 0.8352356 -1.92004 +v -0.5503165 0.75 -1.922798 +v -0.172689 0.4535156 -1.914101 +v 0.2607896 0.4535156 -1.904099 +v -0.3555299 0.5201111 -1.921239 +v -0.452101 0.5916504 -1.926169 +v 0.4464665 0.5201111 -1.902164 +v 0.5495271 0.8352356 -1.92004 +v -0.5472263 0.9221191 -1.912001 +v -0.4471917 1.100391 -1.905254 +v 0.3561074 1.100391 -1.924359 +v 0.4513619 1.010541 -1.92302 +v 0.5444048 0.5916504 -1.902143 +v -0.5487714 0.6682434 -1.917399 +v -0.3471336 1.283936 -1.875866 +v 0.2588681 1.283936 -1.89007 +v 0.5472263 0.9221191 -1.912001 +v -0.5435147 1.010541 -1.899033 +v -0.2607896 0.4535156 -1.904099 +v 0.3497103 0.4535156 -1.88979 +v -0.4464665 0.5201111 -1.902164 +v 0.5376199 0.5201111 -1.878436 +v -0.5444048 0.5916504 -1.902143 +v -0.4359227 1.283936 -1.857242 +v 0.3471336 1.283936 -1.875866 +v 0.4471917 1.100391 -1.905254 +v 0.5435147 1.010541 -1.899033 +v -0.5384932 1.100391 -1.881488 +v -0.6425744 0.8352356 -1.890934 +v -0.6434974 0.75 -1.89365 +v 0.6434974 0.75 -1.89365 +v 0.6416907 0.6682434 -1.888334 +v 0 0.3917542 -1.884033 +v 0.08399066 0.3917542 -1.88216 +v -0.3497103 0.4535156 -1.88979 +v 0.4391584 0.4535156 -1.871027 +v -0.6398841 0.9221191 -1.883017 +v 0.6425744 0.8352356 -1.890934 +v -0.08399066 0.3917542 -1.88216 +v 0.1692887 0.3917542 -1.876412 +v -0.6416907 0.6682434 -1.888334 +v 0.6365849 0.5916504 -1.873308 +v -0.1692887 0.3917542 -1.876412 +v 0.2556546 0.3917542 -1.866607 +v -0.6355441 1.010541 -1.870245 +v 0.6398841 0.9221191 -1.883017 +v -0.08219483 1.471875 -1.841917 +v 0 1.471875 -1.84375 +v -0.1656691 1.471875 -1.836292 +v 0.08219483 1.471875 -1.841917 +v 0.5384932 1.100391 -1.881488 +v 0.4359227 1.283936 -1.857242 +v -0.5249234 1.283936 -1.834075 +v 0.3428244 0.3917542 -1.85258 +v -0.2556546 0.3917542 -1.866607 +v -0.4391584 0.4535156 -1.871027 +v 0.5288197 0.4535156 -1.847689 +v -0.5376199 0.5201111 -1.878436 +v -0.6365849 0.5916504 -1.873308 +v 0.6286511 0.5201111 -1.849961 +v 0.1656691 1.471875 -1.836292 +v -0.2501884 1.471875 -1.826696 +v -0.6296723 1.100391 -1.852966 +v 0.6355441 1.010541 -1.870245 +v 0.7361894 0.75 -1.859577 +v 0.7341225 0.6682434 -1.854356 +v -0.7361894 0.75 -1.859577 +v -0.7351335 0.8352356 -1.856909 +v 0.7351335 0.8352356 -1.856909 +v -0.7320555 0.9221191 -1.849135 +v -0.3354944 1.471875 -1.812969 +v 0.2501884 1.471875 -1.826696 +v -0.3428244 0.3917542 -1.85258 +v 0.4305113 0.3917542 -1.834187 +v 0.7282811 0.5916504 -1.839601 +v -0.7341225 0.6682434 -1.854356 +v 0 0.3347168 -1.841797 +v 0.08210775 0.3347168 -1.839966 +v 0.7320555 0.9221191 -1.849135 +v -0.7270904 1.010541 -1.836593 +v -0.08210775 0.3347168 -1.839966 +v 0.1654936 0.3347168 -1.834347 +v -0.6138048 1.283936 -1.806272 +v 0.5249234 1.283936 -1.834075 +v 0.6296723 1.100391 -1.852966 +v -0.6286511 0.5201111 -1.849961 +v -0.5288197 0.4535156 -1.847689 +v 0.6183608 0.4535156 -1.819679 +v 0.2499233 0.3347168 -1.824761 +v -0.1654936 0.3347168 -1.834347 +v -0.4213064 1.471875 -1.794969 +v 0.3354944 1.471875 -1.812969 +v 0.7192046 0.5201111 -1.816674 +v -0.7282811 0.5916504 -1.839601 +v -0.4305113 0.3917542 -1.834187 +v 0.5184072 0.3917542 -1.811308 +v 0.7270904 1.010541 -1.836593 +v -0.7203729 1.100391 -1.819625 +v 0.335139 0.3347168 -1.811049 +v -0.2499233 0.3347168 -1.824761 +v -0.8280154 0.75 -1.820547 +v -0.8268277 0.8352356 -1.817935 +v 0.8280154 0.75 -1.820547 +v 0.8256906 0.6682434 -1.815435 +v 0.4213064 1.471875 -1.794969 +v -0.507323 1.471875 -1.772579 +v -0.8233659 0.9221191 -1.810324 +v 0.8268277 0.8352356 -1.817935 +v -0.8256906 0.6682434 -1.815435 +v 0.8191206 0.5916504 -1.80099 +v 0.7203729 1.100391 -1.819625 +v 0.6138048 1.283936 -1.806272 +v -0.7022197 1.283936 -1.773771 +v -0.335139 0.3347168 -1.811049 +v 0.4208601 0.3347168 -1.793068 +v -0.6183608 0.4535156 -1.819679 +v 0.707432 0.4535156 -1.786937 +v -0.7192046 0.5201111 -1.816674 +v -0.8177814 1.010541 -1.798046 +v 0.8233659 0.9221191 -1.810324 +v -0.5184072 0.3917542 -1.811308 +v 0.6061853 0.3917542 -1.78385 +v -0.07882083 1.66333 -1.766309 +v 0 1.66333 -1.768066 +v -0.1588686 1.66333 -1.760914 +v 0.07882083 1.66333 -1.766309 +v 0.08009424 0.2822937 -1.794845 +v 0 0.2822937 -1.796631 +v 0.1614353 0.2822937 -1.789363 +v -0.08009424 0.2822937 -1.794845 +v -0.8191206 0.5916504 -1.80099 +v 0.808912 0.5201111 -1.778544 +v -0.810226 1.100391 -1.781433 +v 0.8177814 1.010541 -1.798046 +v 0.1588686 1.66333 -1.760914 +v -0.2399185 1.66333 -1.751713 +v 0.2437945 0.2822937 -1.780013 +v -0.1614353 0.2822937 -1.789363 +v -0.4208601 0.3347168 -1.793068 +v 0.5067855 0.3347168 -1.770702 +v -0.5932242 1.471875 -1.745709 +v 0.507323 1.471875 -1.772579 +v -0.3217227 1.66333 -1.738549 +v 0.2399185 1.66333 -1.751713 +v 0.3269204 0.2822937 -1.766637 +v -0.2437945 0.2822937 -1.780013 +v 0.9185892 0.75 -1.776568 +v 0.9160101 0.6682434 -1.77158 +v -0.9172716 0.8352356 -1.77402 +v -0.9185892 0.75 -1.776568 +v 0.6935027 0.3917542 -1.751752 +v -0.6061853 0.3917542 -1.78385 +v -0.707432 0.4535156 -1.786937 +v -0.7898086 1.283936 -1.736542 +v 0.7022197 1.283936 -1.773771 +v 0.810226 1.100391 -1.781433 +v 0.9172716 0.8352356 -1.77402 +v -0.9134311 0.9221191 -1.766592 +v -0.808912 0.5201111 -1.778544 +v 0.795671 0.4535156 -1.749432 +v 0.9087215 0.5916504 -1.757484 +v -0.9160101 0.6682434 -1.77158 +v -0.4040123 1.66333 -1.721288 +v 0.3217227 1.66333 -1.738549 +v 0.5925958 0.3347168 -1.74386 +v -0.5067855 0.3347168 -1.770702 +v 0.4105394 0.2822937 -1.749097 +v -0.3269204 0.2822937 -1.766637 +v 0.9134311 0.9221191 -1.766592 +v -0.9072358 1.010541 -1.75461 +v 0.5932242 1.471875 -1.745709 +v -0.6786746 1.471875 -1.714297 +v 0.8973961 0.5201111 -1.73558 +v -0.9087215 0.5916504 -1.757484 +v 0.9072358 1.010541 -1.75461 +v -0.8988539 1.100391 -1.7384 +v 0 0.234375 -1.75 +v 0.07801542 0.234375 -1.74826 +v 0.4040123 1.66333 -1.721288 +v -0.486498 1.66333 -1.699817 +v -0.07801542 0.234375 -1.74826 +v 0.1572453 0.234375 -1.742921 +v 0.4943577 0.2822937 -1.727279 +v -0.4105394 0.2822937 -1.749097 +v -0.1572453 0.234375 -1.742921 +v 0.2374669 0.234375 -1.733814 +v -0.6935027 0.3917542 -1.751752 +v -0.795671 0.4535156 -1.749432 +v 0.7800042 0.3917542 -1.714985 +v 0.6779557 0.3347168 -1.712481 +v -0.5925958 0.3347168 -1.74386 +v 0.7898086 1.283936 -1.736542 +v 0.8988539 1.100391 -1.7384 +v -0.8762031 1.283936 -1.694593 +v -0.2374669 0.234375 -1.733814 +v 0.3184353 0.234375 -1.720784 +v 0.8827068 0.4535156 -1.707171 +v -0.8973961 0.5201111 -1.73558 +v -1.006075 0.8352356 -1.725209 +v -1.00752 0.75 -1.727687 +v 1.00752 0.75 -1.727687 +v 1.004692 0.6682434 -1.722836 +v -1.001863 0.9221191 -1.717986 +v 1.006075 0.8352356 -1.725209 +v -0.7633266 1.471875 -1.678317 +v 0.6786746 1.471875 -1.714297 +v -0.5688731 1.66333 -1.67405 +v 0.486498 1.66333 -1.699817 +v -1.004692 0.6682434 -1.722836 +v 0.9966975 0.5916504 -1.709128 +v 0.5780637 0.2822937 -1.701095 +v -0.4943577 0.2822937 -1.727279 +v -0.07505502 1.857422 -1.68192 +v 0 1.857422 -1.683594 +v -0.3184353 0.234375 -1.720784 +v 0.399884 0.234375 -1.7037 +v -0.9950679 1.010541 -1.706334 +v 1.001863 0.9221191 -1.717986 +v -0.1512784 1.857422 -1.676783 +v 0.07505502 1.857422 -1.68192 +v 0.1512784 1.857422 -1.676783 +v -0.2284559 1.857422 -1.668022 +v -0.9966975 0.5916504 -1.709128 +v 0.9842757 0.5201111 -1.687827 +v -0.9858745 1.100391 -1.690569 +v 0.9950679 1.010541 -1.706334 +v -0.7800042 0.3917542 -1.714985 +v -0.6779557 0.3347168 -1.712481 +v 0.762518 0.3347168 -1.676539 +v -0.3063519 1.857422 -1.655487 +v 0.2284559 1.857422 -1.668022 +v 0 0.1516113 -1.658203 +v 0.0739231 0.1516113 -1.656555 +v 0.8653263 0.3917542 -1.673557 +v -0.8827068 0.4535156 -1.707171 +v -0.399884 0.234375 -1.7037 +v 0.4815269 0.234375 -1.682448 +v -0.0739231 0.1516113 -1.656555 +v 0.1489969 0.1516113 -1.651496 +v 0.5688731 1.66333 -1.67405 +v -0.6508159 1.66333 -1.643927 +v 0.6613303 0.2822937 -1.670486 +v -0.5780637 0.2822937 -1.701095 +v 0.2250105 0.1516113 -1.642866 +v -0.1489969 0.1516113 -1.651496 +v -0.3847099 1.857422 -1.63905 +v 0.3063519 1.857422 -1.655487 +v 0.8762031 1.283936 -1.694593 +v 0.9858745 1.100391 -1.690569 +v -0.9610309 1.283936 -1.647967 +v -0.8468244 1.471875 -1.637774 +v 0.7633266 1.471875 -1.678317 +v -0.9842757 0.5201111 -1.687827 +v 0.9681642 0.4535156 -1.660199 +v 0.3017317 0.1516113 -1.63052 +v -0.2250105 0.1516113 -1.642866 +v 1.094419 0.75 -1.673991 +v 1.091347 0.6682434 -1.669291 +v -1.094419 0.75 -1.673991 +v -1.09285 0.8352356 -1.67159 +v -0.4815269 0.234375 -1.682448 +v 0.5630602 0.234375 -1.656944 +v 1.09285 0.8352356 -1.67159 +v -1.088274 0.9221191 -1.664591 +v 1.082663 0.5916504 -1.656009 +v -1.091347 0.6682434 -1.669291 +v 0.3847099 1.857422 -1.63905 +v -0.4632547 1.857422 -1.618605 +v 0.378908 0.1516113 -1.614332 +v -0.3017317 0.1516113 -1.63052 +v 1.088274 0.9221191 -1.664591 +v -1.080893 1.010541 -1.653301 +v -0.762518 0.3347168 -1.676539 +v 0.8459274 0.3347168 -1.636039 +v -0.8653263 0.3917542 -1.673557 +v -0.7319931 1.66333 -1.609424 +v 0.6508159 1.66333 -1.643927 +v 0.743819 0.2822937 -1.635425 +v -0.6613303 0.2822937 -1.670486 +v 1.06917 0.5201111 -1.63537 +v -1.082663 0.5916504 -1.656009 +v -0.9681642 0.4535156 -1.660199 +v 0.949101 0.3917542 -1.62751 +v -1.070907 1.100391 -1.638026 +v 1.080893 1.010541 -1.653301 +v 0.4562682 0.1516113 -1.594195 +v -0.378908 0.1516113 -1.614332 +v -0.5630602 0.234375 -1.656944 +v 0.6441658 0.234375 -1.62713 +v -0.5416941 1.857422 -1.594069 +v 0.4632547 1.857422 -1.618605 +v 0.8468244 1.471875 -1.637774 +v 0.9610309 1.283936 -1.647967 +v -0.928808 1.471875 -1.592711 +v -1.04392 1.283936 -1.596749 +v 1.070907 1.100391 -1.638026 +v 1.051669 0.4535156 -1.608601 +v -1.06917 0.5201111 -1.63537 +v -0.06687037 2.25 -1.498509 +v 0 2.25 -1.5 +v 0.5335247 0.1516113 -1.570028 +v -0.4562682 0.1516113 -1.594195 +v -0.1347817 2.25 -1.493932 +v 0.06687037 2.25 -1.498509 +v -0.8120633 1.66333 -1.570545 +v 0.7319931 1.66333 -1.609424 +v 0.1347817 2.25 -1.493932 +v -0.2035431 2.25 -1.486126 +v 0.8251829 0.2822937 -1.595918 +v -0.743819 0.2822937 -1.635425 +v -0.8459274 0.3347168 -1.636039 +v 0.5416941 1.857422 -1.594069 +v -0.6197219 1.857422 -1.565386 +v -1.178902 0.75 -1.615608 +v -1.177211 0.8352356 -1.613291 +v 1.178902 0.75 -1.615608 +v 1.175592 0.6682434 -1.611072 +v -0.949101 0.3917542 -1.62751 +v 0.927824 0.3347168 -1.591024 +v -1.172283 0.9221191 -1.606536 +v 1.177211 0.8352356 -1.613291 +v -0.6441658 0.234375 -1.62713 +v 0.7245134 0.234375 -1.592978 +v -1.175592 0.6682434 -1.611072 +v 1.166238 0.5916504 -1.598253 +v -0.2729446 2.25 -1.474958 +v 0.2035431 2.25 -1.486126 +v 1.172283 0.9221191 -1.606536 +v -1.164332 1.010541 -1.59564 +v 1.030961 0.3917542 -1.576927 +v -1.051669 0.4535156 -1.608601 +v 0 0.08554687 -1.578125 +v 0.0703532 0.08554687 -1.576556 +v 0.6103758 0.1516113 -1.541778 +v -0.5335247 0.1516113 -1.570028 +v 0.1418015 0.08554687 -1.571741 +v -0.0703532 0.08554687 -1.576556 +v -1.166238 0.5916504 -1.598253 +v 1.151704 0.5201111 -1.578334 +v -0.3427577 2.25 -1.460314 +v 0.2729446 2.25 -1.474958 +v -1.153574 1.100391 -1.580898 +v 1.164332 1.010541 -1.59564 +v -0.1418015 0.08554687 -1.571741 +v 0.2141443 0.08554687 -1.563528 +v -1.008918 1.471875 -1.543211 +v 0.928808 1.471875 -1.592711 +v 1.04392 1.283936 -1.596749 +v -0.6970208 1.857422 -1.532531 +v 0.6197219 1.857422 -1.565386 +v -0.2141443 0.08554687 -1.563528 +v 0.2871605 0.08554687 -1.551779 +v 0.3427577 2.25 -1.460314 +v -0.4127373 2.25 -1.442098 +v -1.124505 1.283936 -1.54106 +v 1.153574 1.100391 -1.580898 +v 0.8120633 1.66333 -1.570545 +v -0.8906816 1.66333 -1.527333 +v 0.9050712 0.2822937 -1.552008 +v -0.8251829 0.2822937 -1.595918 +v -0.927824 0.3347168 -1.591024 +v -0.7245134 0.234375 -1.592978 +v 0.8037655 0.234375 -1.554497 +v -1.151704 0.5201111 -1.578334 +v 1.132851 0.4535156 -1.552498 +v -0.2871605 0.08554687 -1.551779 +v 0.3606097 0.08554687 -1.536372 +v 1.007849 0.3347168 -1.541576 +v -1.030961 0.3917542 -1.576927 +v -0.6103758 0.1516113 -1.541778 +v 0.6865088 0.1516113 -1.509418 +v -0.4826231 2.25 -1.420238 +v 0.4127373 2.25 -1.442098 +v 1.260596 0.75 -1.552706 +v 1.257057 0.6682434 -1.548347 +v -1.258788 0.8352356 -1.550479 +v -1.260596 0.75 -1.552706 +v 0.4342341 0.08554687 -1.517208 +v -0.3606097 0.08554687 -1.536372 +v 1.258788 0.8352356 -1.550479 +v -1.253518 0.9221191 -1.543988 +v 1.247055 0.5916504 -1.536027 +v -1.257057 0.6682434 -1.548347 +v -0.7732655 1.857422 -1.495509 +v 0.6970208 1.857422 -1.532531 +v -1.132851 0.4535156 -1.552498 +v 1.110546 0.3917542 -1.52193 +v 1.253518 0.9221191 -1.543988 +v -1.245016 1.010541 -1.533516 +v 1.231513 0.5201111 -1.516883 +v -1.247055 0.5916504 -1.536027 +v -1.086801 1.471875 -1.489389 +v 1.008918 1.471875 -1.543211 +v 1.124505 1.283936 -1.54106 +v -0.9050712 0.2822937 -1.552008 +v -0.8037655 0.234375 -1.554497 +v 0.8815804 0.234375 -1.511726 +v 1.245016 1.010541 -1.533516 +v -1.233513 1.100391 -1.519347 +v -0.4342341 0.08554687 -1.517208 +v 0.5077597 0.08554687 -1.494208 +v 0.4826231 2.25 -1.420238 +v -0.5521421 2.25 -1.394682 +v -0.6865088 0.1516113 -1.509418 +v 0.7616037 0.1516113 -1.472955 +v -0.9675032 1.66333 -1.479864 +v 0.8906816 1.66333 -1.527333 +v 0.9831339 0.2822937 -1.503772 +v -1.007849 0.3347168 -1.541576 +v 1.233513 1.100391 -1.519347 +v -1.202429 1.283936 -1.481061 +v 1.211354 0.4535156 -1.492054 +v -1.231513 0.5201111 -1.516883 +v 0 0.03530274 -1.521484 +v 0.06782815 0.03530274 -1.519972 +v -1.110546 0.3917542 -1.52193 +v 1.085649 0.3347168 -1.487811 +v -0.06782815 0.03530274 -1.519972 +v 0.1367121 0.03530274 -1.51533 +v -0.1367121 0.03530274 -1.51533 +v 0.2064584 0.03530274 -1.507412 +v 0.7732655 1.857422 -1.495509 +v -0.8481276 1.857422 -1.454362 +v -0.5077597 0.08554687 -1.494208 +v 0.5808995 0.08554687 -1.467322 +v -0.6210115 2.25 -1.36541 +v 0.5521421 2.25 -1.394682 +v 0.2768539 0.03530274 -1.496084 +v -0.2064584 0.03530274 -1.507412 +v 0.8353368 0.1516113 -1.432428 +v -0.7616037 0.1516113 -1.472955 +v -0.8815804 0.234375 -1.511726 +v -1.337224 0.8352356 -1.483363 +v -1.339145 0.75 -1.485493 +v 1.339145 0.75 -1.485493 +v 1.335385 0.6682434 -1.481323 +v 1.187503 0.3917542 -1.462675 +v -1.211354 0.4535156 -1.492054 +v -0.9831339 0.2822937 -1.503772 +v 0.957617 0.234375 -1.464742 +v -0.2768539 0.03530274 -1.496084 +v 0.347667 0.03530274 -1.48123 +v -1.331625 0.9221191 -1.477152 +v 1.337224 0.8352356 -1.483363 +v -1.335385 0.6682434 -1.481323 +v 1.32476 0.5916504 -1.469536 +v -1.322594 1.010541 -1.467133 +v 1.331625 0.9221191 -1.477152 +v -1.042189 1.66333 -1.428251 +v 0.9675032 1.66333 -1.479864 +v 1.086801 1.471875 -1.489389 +v -0.5808995 0.08554687 -1.467322 +v 0.6533559 0.08554687 -1.436525 +v 1.059026 0.2822937 -1.451326 +v -1.085649 0.3347168 -1.487811 +v 1.202429 1.283936 -1.481061 +v -1.162112 1.471875 -1.431401 +v -0.347667 0.03530274 -1.48123 +v 0.4186489 0.03530274 -1.462754 +v -1.32476 0.5916504 -1.469536 +v 1.308249 0.5201111 -1.451221 +v -1.310374 1.100391 -1.453579 +v 1.322594 1.010541 -1.467133 +v -0.6889419 2.25 -1.332426 +v 0.6210115 2.25 -1.36541 +v -0.9212789 1.857422 -1.40916 +v 0.8481276 1.857422 -1.454362 +v 1.160881 0.3347168 -1.429885 +v -1.187503 0.3917542 -1.462675 +v 0 0.01583862 -1.505615 +v 0.06712069 0.01583862 -1.504118 +v 0.1352862 0.01583862 -1.499525 +v -0.06712069 0.01583862 -1.504118 +v -1.277353 1.283936 -1.416949 +v 1.310374 1.100391 -1.453579 +v -0.4186489 0.03530274 -1.462754 +v 0.4895356 0.03530274 -1.44058 +v -1.308249 0.5201111 -1.451221 +v 1.286835 0.4535156 -1.427466 +v -0.1352862 0.01583862 -1.499525 +v 0.2043051 0.01583862 -1.491689 +v 0.9073849 0.1516113 -1.387909 +v -0.8353368 0.1516113 -1.432428 +v -0.957617 0.234375 -1.464742 +v 0.7248243 0.08554687 -1.401823 +v -0.6533559 0.08554687 -1.436525 +v 0.2739663 0.01583862 -1.48048 +v -0.2043051 0.01583862 -1.491689 +v 0.06702222 0 -1.498082 +v 0 0 -1.5 +v 0.08578844 0 -1.497545 +v -0.06702222 0 -1.498082 +v -0.08578844 0 -1.497545 +v -1.059026 0.2822937 -1.451326 +v 1.03154 0.234375 -1.413657 +v -0.06576457 2.293067 -1.473729 +v 0 2.293067 -1.475195 +v -0 0 0 +v 0.1731963 0 -1.489967 +v 0.1349554 0 -1.493283 +v -0.1349554 0 -1.493283 +v -0.1731963 0 -1.489967 +v -0.1325528 2.293067 -1.469228 +v 0.06627642 2.293067 -1.472212 +v -1.5 0 0 +v -0.2739663 0.01583862 -1.48048 +v 0.3440408 0.01583862 -1.465781 +v 0.6889419 2.25 -1.332426 +v -0.7556404 2.25 -1.295765 +v 0.5600504 0.03530274 -1.414658 +v -0.4895356 0.03530274 -1.44058 +v 0.1325528 2.293067 -1.469228 +v -0.2001772 2.293067 -1.461551 +v -1.286835 0.4535156 -1.427466 +v 1.261497 0.3917542 -1.399359 +v 0.2618065 0 -1.476976 +v 0.2036561 0 -1.485502 +v -0.2036561 0 -1.485502 +v -0.2618065 0 -1.476976 +v 1.042189 1.66333 -1.428251 +v 1.162112 1.471875 -1.431401 +v -1.114409 1.66333 -1.372644 +v 1.132413 0.2822937 -1.39482 +v -1.160881 0.3347168 -1.429885 +v -0.268431 2.293067 -1.450567 +v 0.2001772 2.293067 -1.461551 +v 1.414214 0.75 -1.414214 +v 1.410243 0.6682434 -1.410243 +v -1.414214 0.75 -1.414214 +v -1.412185 0.8352356 -1.412185 +v 1.412185 0.8352356 -1.412185 +v -1.406272 0.9221191 -1.406272 +v 1.399022 0.5916504 -1.399022 +v -1.410243 0.6682434 -1.410243 +v 0.4142824 0.01583862 -1.447497 +v -0.3440408 0.01583862 -1.465781 +v -1.234524 1.471875 -1.369439 +v 1.277353 1.283936 -1.416949 +v 0.3427754 0 -1.460068 +v 0.2729746 0 -1.474644 +v -0.2729746 0 -1.474644 +v -0.9923963 1.857422 -1.360014 +v 0.9212789 1.857422 -1.40916 +v 1.406272 0.9221191 -1.406272 +v -1.396734 1.010541 -1.396734 +v 0 2.323828 -1.449219 +v -0.3370897 2.293067 -1.436166 +v 0.268431 2.293067 -1.450567 +v -0.3427754 0 -1.460068 +v -0.1302187 2.323828 -1.443357 +v -0.7248243 0.08554687 -1.401823 +v 0.7949966 0.08554687 -1.363253 +v 0.1302187 2.323828 -1.443357 +v 1.381586 0.5201111 -1.381586 +v -1.399022 0.5916504 -1.399022 +v -0.1966523 2.323828 -1.435814 +v -0.5600504 0.03530274 -1.414658 +v 0.6299062 0.03530274 -1.384967 +v 1.396734 1.010541 -1.396734 +v -1.38383 1.100391 -1.38383 +v 0.3511515 0 -1.458318 +v -0.3511515 0 -1.458318 +v -0.4142824 0.01583862 -1.447497 +v 0.9774297 0.1516113 -1.339503 +v -0.9073849 0.1516113 -1.387909 +v -1.03154 0.234375 -1.413657 +v 0.4844297 0.01583862 -1.425554 +v -1.261497 0.3917542 -1.399359 +v 1.233217 0.3347168 -1.367989 +v -0.2637043 2.323828 -1.425025 +v 0.1966523 2.323828 -1.435814 +v 0.3370897 2.293067 -1.436166 +v -0.4059121 2.293067 -1.418251 +v 0.4127284 0 -1.441458 +v -0.4127284 0 -1.441458 +v -0.8208146 2.25 -1.255493 +v 0.7556404 2.25 -1.295765 +v 1.38383 1.100391 -1.38383 +v -1.348958 1.283936 -1.348958 +v -1.132413 0.2822937 -1.39482 +v 1.103022 0.234375 -1.358618 +v 1.358971 0.4535156 -1.358971 +v -1.381586 0.5201111 -1.381586 +v -0.331154 2.323828 -1.410876 +v 0.2637043 2.323828 -1.425025 +v -0.1279899 2.342285 -1.418652 +v 0 2.342285 -1.424414 +v 0.4407179 0 -1.433795 +v -0.4844297 0.01583862 -1.425554 +v -0.4407179 0 -1.433795 +v 0.1279899 2.342285 -1.418652 +v -0.1932864 2.342285 -1.411239 +v -0.4746422 2.293067 -1.396752 +v 0.4059121 2.293067 -1.418251 +v 0.554209 0.01583862 -1.399903 +v -0.6299062 0.03530274 -1.384967 +v 0.6988096 0.03530274 -1.35151 +v 0.331154 2.323828 -1.410876 +v -0.3987644 2.323828 -1.393277 +v -0.2591907 2.342285 -1.400634 +v 0.1932864 2.342285 -1.411239 +v 0.4825468 0 -1.419484 +v -0.4825468 0 -1.419484 +v -0.7949966 0.08554687 -1.363253 +v 0.8635654 0.08554687 -1.320884 +v -1.183849 1.66333 -1.313226 +v 1.234524 1.471875 -1.369439 +v 1.114409 1.66333 -1.372644 +v 1.202975 0.2822937 -1.334442 +v -1.233217 0.3347168 -1.367989 +v 0.9923963 1.857422 -1.360014 +v -1.061166 1.857422 -1.307063 +v 1.332213 0.3917542 -1.332213 +v -1.358971 0.4535156 -1.358971 +v 0.5299529 0 -1.403264 +v -0.5299529 0 -1.403264 +v -0.554209 0.01583862 -1.399903 +v -0.325486 2.342285 -1.386728 +v 0.2591907 2.342285 -1.400634 +v -0.126077 2.348438 -1.397449 +v 0 2.348438 -1.403125 +v 0.4746422 2.293067 -1.396752 +v -0.5430116 2.293067 -1.371619 +v 0.126077 2.348438 -1.397449 +v -0.1903976 2.348438 -1.390147 +v -0.4662843 2.323828 -1.372157 +v 0.3987644 2.323828 -1.393277 +v 1.348958 1.283936 -1.348958 +v -1.303728 1.471875 -1.303728 +v 0.6233363 0.01583862 -1.370521 +v -1.485493 0.75 -1.339145 +v -1.483363 0.8352356 -1.337224 +v 1.485493 0.75 -1.339145 +v 1.481323 0.6682434 -1.335385 +v 1.045162 0.1516113 -1.287351 +v -0.9774297 0.1516113 -1.339503 +v -1.103022 0.234375 -1.358618 +v -1.477152 0.9221191 -1.331625 +v 1.483363 0.8352356 -1.337224 +v -0.2553169 2.348438 -1.3797 +v 0.1903976 2.348438 -1.390147 +v 0.325486 2.342285 -1.386728 +v -0.3919392 2.342285 -1.36943 +v -1.481323 0.6682434 -1.335385 +v 1.469536 0.5916504 -1.32476 +v -0.8841767 2.25 -1.211706 +v 0.8208146 2.25 -1.255493 +v -1.467133 1.010541 -1.322594 +v 1.477152 0.9221191 -1.331625 +v 0.5520329 0 -1.394111 +v -0.5520329 0 -1.394111 +v -0.1246906 2.342285 -1.382082 +v 0 2.342285 -1.387695 +v -0.6988096 0.03530274 -1.35151 +v 0.7664633 0.03530274 -1.314324 +v -0.3206213 2.348438 -1.366002 +v 0.2553169 2.348438 -1.3797 +v 0 2.25 -1.4 +v 0 2.293067 -1.383789 +v -0.1257962 2.25 -1.394337 +v -0.1236341 2.221875 -1.370372 +v 0 2.221875 -1.375937 +v 0.1257962 2.25 -1.394337 +v 0.1243396 2.293067 -1.378191 +v 0.6182728 0 -1.366652 +v -0.6233363 0.01583862 -1.370521 +v -0.6182728 0 -1.366652 +v 1.302347 0.3347168 -1.302347 +v -1.332213 0.3917542 -1.332213 +v -1.469536 0.5916504 -1.32476 +v 1.451221 0.5201111 -1.308249 +v 0.1246906 2.342285 -1.382082 +v -0.1883039 2.342285 -1.37486 +v 0.4662843 2.323828 -1.372157 +v 0.5430116 2.293067 -1.371619 +v -0.5334498 2.323828 -1.347467 +v -1.453579 1.100391 -1.310374 +v 1.467133 1.010541 -1.322594 +v -1.202975 0.2822937 -1.334442 +v 1.171752 0.234375 -1.299807 +v -0.6107422 2.293067 -1.342831 +v -0.1243396 2.293067 -1.378191 +v -0.1899735 2.25 -1.387051 +v -0.1867084 2.221875 -1.363211 +v 0.1236341 2.221875 -1.370372 +v 0.1899735 2.25 -1.387051 +v 0.188069 2.293067 -1.369439 +v -0.4583034 2.342285 -1.348671 +v 0.3919392 2.342285 -1.36943 +v -0.2525093 2.342285 -1.364528 +v 0.1883039 2.342285 -1.37486 +v -0.8635654 0.08554687 -1.320884 +v 0.9302276 0.08554687 -1.274816 +v -0.1240412 2.323828 -1.374885 +v 0 2.323828 -1.380469 +v -0.188069 2.293067 -1.369439 +v 0.1867084 2.221875 -1.363211 +v 0.2547483 2.25 -1.376628 +v 0.2517985 2.293067 -1.360687 +v -0.2503698 2.221875 -1.352967 +v -0.2547483 2.25 -1.376628 +v 0.3206213 2.348438 -1.366002 +v -0.3860814 2.348438 -1.348963 +v 0.6915209 0.01583862 -1.337414 +v -1.416949 1.283936 -1.277353 +v 1.453579 1.100391 -1.310374 +v 0.1240412 2.323828 -1.374885 +v -0.1873232 2.323828 -1.3677 +v -1.451221 0.5201111 -1.308249 +v 1.427466 0.4535156 -1.286835 +v -0.3170955 2.342285 -1.350981 +v 0.2525093 2.342285 -1.364528 +v 0.1873232 2.323828 -1.3677 +v -0.3144088 2.221875 -1.339534 +v -0.3199072 2.25 -1.36296 +v -0.2517985 2.293067 -1.360687 +v 0.2503698 2.221875 -1.352967 +v 0.3199072 2.25 -1.36296 +v 0.3162029 2.293067 -1.347178 +v -0.1224793 2.214844 -1.357572 +v 0 2.214844 -1.363086 +v -0.2511943 2.323828 -1.357422 +v -1.127288 1.857422 -1.250484 +v 1.183849 1.66333 -1.313226 +v 1.061166 1.857422 -1.307063 +v 0.5334498 2.323828 -1.347467 +v 0.4583034 2.342285 -1.348671 +v -0.5243193 2.342285 -1.324404 +v -0.5999877 2.323828 -1.319185 +v 0.6107422 2.293067 -1.342831 +v 0.6887979 0 -1.331965 +v 0.6209853 0 -1.365318 +v -0.6209853 0 -1.365318 +v -0.6915209 0.01583862 -1.337414 +v 0.1224793 2.214844 -1.357572 +v 0.2511943 2.323828 -1.357422 +v 1.303728 1.471875 -1.303728 +v -1.250212 1.66333 -1.250212 +v -0.4514537 2.348438 -1.328514 +v 0.3860814 2.348438 -1.348963 +v 1.27041 0.2822937 -1.27041 +v -1.302347 0.3347168 -1.302347 +v 0.3170955 2.342285 -1.350981 +v -0.3818358 2.342285 -1.334129 +v -0.6775492 2.293067 -1.310392 +v -0.6887979 0 -1.331965 +v -0.3154442 2.323828 -1.343945 +v 0.8325711 0.03530274 -1.273476 +v -0.7664633 0.03530274 -1.314324 +v 0.2480313 2.214844 -1.34033 +v -0.2480313 2.214844 -1.34033 +v -0.1213035 2.2125 -1.344539 +v 0 2.2125 -1.35 +v -0.3162029 2.293067 -1.347178 +v 0.3144088 2.221875 -1.339534 +v 0.3852215 2.25 -1.345959 +v 0.3807609 2.293067 -1.330373 +v -0.3786005 2.221875 -1.322825 +v -0.3852215 2.25 -1.345959 +v 0.3154442 2.323828 -1.343945 +v 0.8841767 2.25 -1.211706 +v -0.9454472 2.25 -1.16453 +v -1.427466 0.4535156 -1.286835 +v 1.399359 0.3917542 -1.261497 +v 1.110287 0.1516113 -1.231625 +v -1.045162 0.1516113 -1.287351 +v -1.171752 0.234375 -1.299807 +v 0.1213035 2.2125 -1.344539 +v -0.2456501 2.2125 -1.327462 +v -0.3114722 2.214844 -1.327022 +v 0.7584691 0.01583862 -1.300616 +v 0.3818358 2.342285 -1.334129 +v -0.3798473 2.323828 -1.327181 +v 0 2.214844 -1.336914 +v -0.1201277 2.214844 -1.331506 +v -0.4464892 2.342285 -1.313905 +v 0.4514537 2.348438 -1.328514 +v -1.369439 1.471875 -1.234524 +v 1.416949 1.283936 -1.277353 +v 0.5243193 2.342285 -1.324404 +v -0.5164829 2.348438 -1.304609 +v -0.5897183 2.342285 -1.296606 +v 0.5999877 2.323828 -1.319185 +v 0.3798473 2.323828 -1.327181 +v -0.3807609 2.293067 -1.330373 +v -0.4427061 2.221875 -1.302772 +v -0.4504482 2.25 -1.325555 +v 0.4504482 2.25 -1.325555 +v 0.4452323 2.293067 -1.310206 +v 0.3786005 2.221875 -1.322825 +v 0.1201277 2.214844 -1.331506 +v 0.2456501 2.2125 -1.327462 +v -0.243269 2.214844 -1.314595 +v -0.6656184 2.323828 -1.287318 +v 0.6775492 2.293067 -1.310392 +v -0.308482 2.2125 -1.314283 +v 0.3114722 2.214844 -1.327022 +v -0.3750643 2.214844 -1.310469 +v 0.9946892 0.08554687 -1.225182 +v -0.9302276 0.08554687 -1.274816 +v 1.552706 0.75 -1.260596 +v 1.548347 0.6682434 -1.257057 +v -1.550479 0.8352356 -1.258788 +v -1.552706 0.75 -1.260596 +v 0.7050729 0 -1.323961 +v -0.7584691 0.01583862 -1.300616 +v -0.7050729 0 -1.323961 +v 1.550479 0.8352356 -1.258788 +v -1.543988 0.9221191 -1.253518 +v -0.1189729 2.221875 -1.318707 +v 0 2.221875 -1.324062 +v 1.536027 0.5916504 -1.247055 +v -1.548347 0.6682434 -1.257057 +v -1.27041 0.2822937 -1.27041 +v 1.237437 0.234375 -1.237437 +v -0.444164 2.323828 -1.307063 +v 0.4464892 2.342285 -1.313905 +v -0.7431448 2.293067 -1.274338 +v -1.399359 0.3917542 -1.261497 +v 1.367989 0.3347168 -1.233217 +v 1.543988 0.9221191 -1.253518 +v -1.533516 1.010541 -1.245016 +v 0.1189729 2.221875 -1.318707 +v 0.243269 2.214844 -1.314595 +v -0.2409305 2.221875 -1.301958 +v -0.4452323 2.293067 -1.310206 +v 0.444164 2.323828 -1.307063 +v 0.5164829 2.348438 -1.304609 +v -0.5108033 2.342285 -1.290263 +v -0.3054918 2.214844 -1.301543 +v 0.308482 2.2125 -1.314283 +v 0.3750643 2.214844 -1.310469 +v -0.3714636 2.2125 -1.297889 +v 0.4427061 2.221875 -1.302772 +v 0.5153326 2.25 -1.301704 +v 0.5093654 2.293067 -1.286631 +v -0.5153326 2.25 -1.301704 +v -0.5064753 2.221875 -1.279331 +v 1.516883 0.5201111 -1.231513 +v -1.536027 0.5916504 -1.247055 +v -0.5809045 2.348438 -1.277227 +v 0.5897183 2.342285 -1.296606 +v -0.1168108 2.25 -1.294741 +v 0 2.25 -1.3 +v 0.7553437 0 -1.29505 +v -0.7553437 0 -1.29505 +v -0.4385712 2.214844 -1.290604 +v 1.533516 1.010541 -1.245016 +v -1.519347 1.100391 -1.233513 +v -0.8325711 0.03530274 -1.273476 +v 0.8968408 0.03530274 -1.229061 +v -0.6542256 2.342285 -1.265284 +v 0.6656184 2.323828 -1.287318 +v -0.236552 2.25 -1.278297 +v 0.1168108 2.25 -1.294741 +v 0.2409305 2.221875 -1.301958 +v -0.3025551 2.221875 -1.289031 +v 0.3054918 2.214844 -1.301543 +v 0.8238873 0.01583862 -1.260193 +v 0.3714636 2.2125 -1.297889 +v -0.3678629 2.214844 -1.285308 +v 0.5108033 2.342285 -1.290263 +v -0.5081432 2.323828 -1.283544 +v 1.127288 1.857422 -1.250484 +v 1.250212 1.66333 -1.250212 +v -1.190481 1.857422 -1.190481 +v -0.4343608 2.2125 -1.278214 +v 0.4385712 2.214844 -1.290604 +v 0.7431448 2.293067 -1.274338 +v -0.7300588 2.323828 -1.251898 +v 1.519347 1.100391 -1.233513 +v -1.481061 1.283936 -1.202429 +v 0.5081432 2.323828 -1.283544 +v -0.5093654 2.293067 -1.286631 +v 1.492054 0.4535156 -1.211354 +v -1.516883 0.5201111 -1.231513 +v -1.004359 2.25 -1.11412 +v 0.9454472 2.25 -1.16453 +v -0.5745165 2.342285 -1.263182 +v 0.5809045 2.348438 -1.277227 +v -1.313226 1.66333 -1.183849 +v 1.369439 1.471875 -1.234524 +v 0.5064753 2.221875 -1.279331 +v -0.5017447 2.214844 -1.267381 +v 1.334442 0.2822937 -1.202975 +v -1.367989 0.3347168 -1.233217 +v -0.2971288 2.25 -1.264058 +v 0.236552 2.25 -1.278297 +v 0.3025551 2.221875 -1.289031 +v -0.5696487 2.221875 -1.252479 +v -0.5796108 2.25 -1.274383 +v 0.5796108 2.25 -1.274383 +v 0.5728993 2.293067 -1.259626 +v 0.3678629 2.214844 -1.285308 +v -0.3643267 2.221875 -1.272952 +v 0.7897395 0 -1.275269 +v -0.7897395 0 -1.275269 +v -0.8238873 0.01583862 -1.260193 +v 0 2.263632 -1.297412 +v -0.1165782 2.263632 -1.292164 +v 1.172527 0.1516113 -1.172527 +v -1.110287 0.1516113 -1.231625 +v -1.237437 0.234375 -1.237437 +v -0.4301504 2.214844 -1.265824 +v 0.4343608 2.2125 -1.278214 +v -0.1158982 2.27644 -1.284626 +v 0 2.27644 -1.289844 +v 0.1165782 2.263632 -1.292164 +v -0.6444477 2.348438 -1.246374 +v 0.6542256 2.342285 -1.265284 +v -0.8072413 2.293067 -1.234732 +v -0.2360811 2.263632 -1.275752 +v -0.2347039 2.27644 -1.26831 +v 0.1158982 2.27644 -1.284626 +v 0.2360811 2.263632 -1.275752 +v 0.5017447 2.214844 -1.267381 +v -0.4969279 2.2125 -1.255214 +v -0.5715247 2.323828 -1.256604 +v 0.5745165 2.342285 -1.263182 +v -0.1133008 2.299805 -1.255837 +v 0 2.299805 -1.260937 +v -0.3577057 2.25 -1.249819 +v 0.2971288 2.25 -1.264058 +v 0.3643267 2.221875 -1.272952 +v -0.9946892 0.08554687 -1.225182 +v 1.056669 0.08554687 -1.172147 +v 0.7300588 2.323828 -1.251898 +v -0.7175632 2.342285 -1.230471 +v 1.462675 0.3917542 -1.187503 +v -1.492054 0.4535156 -1.211354 +v -0.5728993 2.293067 -1.259626 +v 0.5715247 2.323828 -1.256604 +v -0.4260154 2.221875 -1.253656 +v 0.4301504 2.214844 -1.265824 +v -0.229444 2.299805 -1.239887 +v 0.1133008 2.299805 -1.255837 +v 0.2347039 2.27644 -1.26831 +v -0.5643281 2.214844 -1.240781 +v 0.5696487 2.221875 -1.252479 +v 0.4969279 2.2125 -1.255214 +v -0.492111 2.214844 -1.243047 +v -1.431401 1.471875 -1.162112 +v 1.481061 1.283936 -1.202429 +v -0.6373609 2.342285 -1.232668 +v 0.6444477 2.348438 -1.246374 +v -0.3549111 2.27644 -1.240054 +v -0.3569936 2.263632 -1.247331 +v 0.3569936 2.263632 -1.247331 +v 0.8204608 0 -1.25482 +v -0.8204608 0 -1.25482 +v -0.8968408 0.03530274 -1.229061 +v 0.9589887 0.03530274 -1.181209 +v -0.6430124 2.25 -1.243598 +v -0.6319606 2.221875 -1.222223 +v 0.6430124 2.25 -1.243598 +v 0.6355668 2.293067 -1.229198 +v -0.7930266 2.323828 -1.21299 +v 0.8072413 2.293067 -1.234732 +v 0.8874866 0.01583862 -1.216242 +v -0.4182733 2.25 -1.230873 +v 0.3577057 2.25 -1.249819 +v 0.4260154 2.221875 -1.253656 +v -1.334442 0.2822937 -1.202975 +v 1.299807 0.234375 -1.171752 +v -0.3469573 2.299805 -1.212264 +v 0.229444 2.299805 -1.239887 +v 0.3549111 2.27644 -1.240054 +v -0.5589104 2.2125 -1.228869 +v 0.5643281 2.214844 -1.240781 +v -0.4873804 2.221875 -1.231098 +v 0.492111 2.214844 -1.243047 +v 0.7175632 2.342285 -1.230471 +v -0.7068386 2.348438 -1.21208 +v -0.6340418 2.323828 -1.226248 +v 0.6373609 2.342285 -1.232668 +v 1.429885 0.3347168 -1.160881 +v -1.462675 0.3917542 -1.187503 +v -0.1092293 2.320532 -1.210708 +v 0 2.320532 -1.215625 +v -1.613291 0.8352356 -1.177211 +v -1.615608 0.75 -1.178902 +v 1.615608 0.75 -1.178902 +v 1.611072 0.6682434 -1.175592 +v 0.8716629 0 -1.220739 +v -0.8874866 0.01583862 -1.216242 +v -0.8716629 0 -1.220739 +v -0.6355668 2.293067 -1.229198 +v 0.6340418 2.323828 -1.226248 +v -1.606536 0.9221191 -1.172283 +v 1.613291 0.8352356 -1.177211 +v -1.611072 0.6682434 -1.175592 +v 1.598253 0.5916504 -1.166238 +v -0.2211988 2.320532 -1.195331 +v 0.1092293 2.320532 -1.210708 +v -0.8695556 2.293067 -1.191669 +v 0.5589104 2.2125 -1.228869 +v -0.5534927 2.214844 -1.216957 +v -0.4785231 2.25 -1.208725 +v 0.4182733 2.25 -1.230873 +v 0.4873804 2.221875 -1.231098 +v -1.59564 1.010541 -1.164332 +v 1.606536 0.9221191 -1.172283 +v -0.626058 2.214844 -1.210807 +v 0.6319606 2.221875 -1.222223 +v -0.7794533 2.342285 -1.192228 +v 0.7930266 2.323828 -1.21299 +v 1.004359 2.25 -1.11412 +v 1.190481 1.857422 -1.190481 +v -1.06066 2.25 -1.06066 +v -1.250484 1.857422 -1.127288 +v 1.313226 1.66333 -1.183849 +v -0.4174407 2.263632 -1.228422 +v -0.4150056 2.27644 -1.221256 +v 0.4174407 2.263632 -1.228422 +v -1.598253 0.5916504 -1.166238 +v 1.578334 0.5201111 -1.151704 +v 0.7068386 2.348438 -1.21208 +v -0.6990657 2.342285 -1.198752 +v -1.580898 1.100391 -1.153574 +v 1.59564 1.010541 -1.164332 +v 0.7052643 2.25 -1.209381 +v 0.6970979 2.293067 -1.195377 +v -0.6931426 2.221875 -1.188595 +v -0.7052643 2.25 -1.209381 +v -0.5481721 2.221875 -1.205259 +v 0.5534927 2.214844 -1.216957 +v -0.6200477 2.2125 -1.199183 +v 0.626058 2.214844 -1.210807 +v -0.405705 2.299805 -1.193887 +v 0.3469573 2.299805 -1.212264 +v 0.4150056 2.27644 -1.221256 +v -0.3344892 2.320532 -1.168701 +v 0.2211988 2.320532 -1.195331 +v -1.172527 0.1516113 -1.172527 +v -1.299807 0.234375 -1.171752 +v 1.231625 0.1516113 -1.110287 +v -0.8542437 2.323828 -1.170685 +v 0.8695556 2.293067 -1.191669 +v -1.372644 1.66333 -1.114409 +v 1.431401 1.471875 -1.162112 +v 1.580898 1.100391 -1.153574 +v -1.54106 1.283936 -1.124505 +v 1.39482 0.2822937 -1.132413 +v -1.429885 0.3347168 -1.160881 +v 0.6990657 2.342285 -1.198752 +v -0.6954253 2.323828 -1.192509 +v -1.056669 0.08554687 -1.172147 +v 1.115903 0.08554687 -1.115903 +v -1.578334 0.5201111 -1.151704 +v 1.552498 0.4535156 -1.132851 +v -0.53821 2.25 -1.183355 +v 0.4785231 2.25 -1.208725 +v 0.5481721 2.221875 -1.205259 +v -0.4775705 2.263632 -1.206319 +v -0.7678037 2.348438 -1.174409 +v 0.7794533 2.342285 -1.192228 +v 0.6954253 2.323828 -1.192509 +v -0.6970979 2.293067 -1.195377 +v 0.9489865 0.01583862 -1.168889 +v -0.9589887 0.03530274 -1.181209 +v 0.6200477 2.2125 -1.199183 +v -0.6140374 2.214844 -1.187559 +v -0.4747847 2.27644 -1.199282 +v 0.4775705 2.263632 -1.206319 +v 1.018744 0.03530274 -1.130078 +v 0.6931426 2.221875 -1.188595 +v -0.6866685 2.214844 -1.177493 +v 0.405705 2.299805 -1.193887 +v 0.4747847 2.27644 -1.199282 +v -0.4641444 2.299805 -1.172405 +v 0.8839422 0 -1.211344 +v -0.8839422 0 -1.211344 +v 0.6140374 2.214844 -1.187559 +v -0.6081347 2.221875 -1.176144 +v 0.9453387 0 -1.164372 +v -0.9489865 0.01583862 -1.168889 +v -0.1038942 2.339062 -1.151573 +v 0 2.339062 -1.15625 +v -0.8396226 2.342285 -1.150647 +v 0.8542437 2.323828 -1.170685 +v -0.3911258 2.320532 -1.150984 +v 0.3344892 2.320532 -1.168701 +v -0.7593604 2.342285 -1.161495 +v 0.7678037 2.348438 -1.174409 +v -0.9298128 2.293067 -1.145273 +v -1.552498 0.4535156 -1.132851 +v 1.52193 0.3917542 -1.110546 +v -0.9453387 0 -1.164372 +v 0.6866685 2.214844 -1.177493 +v -0.6800763 2.2125 -1.166189 +v 0.1038942 2.339062 -1.151573 +v -0.2103948 2.339062 -1.136947 +v -0.7660937 2.25 -1.171794 +v -0.7529264 2.221875 -1.151654 +v 0.7660937 2.25 -1.171794 +v 0.7572229 2.293067 -1.158225 +v 0.53821 2.25 -1.183355 +v -0.5371386 2.263632 -1.181 +v -0.5340052 2.27644 -1.17411 +v 0.5371386 2.263632 -1.181 +v -0.597083 2.25 -1.154769 +v 0.6081347 2.221875 -1.176144 +v -1.39482 0.2822937 -1.132413 +v 1.358618 0.234375 -1.103022 +v 1.54106 1.283936 -1.124505 +v -1.489389 1.471875 -1.086801 +v -0.5220378 2.299805 -1.147798 +v 0.4641444 2.299805 -1.172405 +v 0.5340052 2.27644 -1.17411 +v 0.6800763 2.2125 -1.166189 +v -0.6734841 2.214844 -1.154885 +v -0.755406 2.323828 -1.155446 +v 0.7593604 2.342285 -1.161495 +v -0.7572229 2.293067 -1.158225 +v 0.755406 2.323828 -1.155446 +v -0.3181517 2.339062 -1.111618 +v 0.2103948 2.339062 -1.136947 +v -0.4474651 2.320532 -1.130274 +v 0.3911258 2.320532 -1.150984 +v -0.8270737 2.348438 -1.13345 +v 0.8396226 2.342285 -1.150647 +v 0.9298128 2.293067 -1.145273 +v -0.9134399 2.323828 -1.125106 +v -1.11412 2.25 -1.004359 +v 1.06066 2.25 -1.06066 +v 1.250484 1.857422 -1.127288 +v -0.7458939 2.214844 -1.140897 +v 0.7529264 2.221875 -1.151654 +v 0.6734841 2.214844 -1.154885 +v -0.6670101 2.221875 -1.143783 +v -1.52193 0.3917542 -1.110546 +v 1.487811 0.3347168 -1.085649 +v -1.307063 1.857422 -1.061166 +v 1.372644 1.66333 -1.114409 +v 0.597083 2.25 -1.154769 +v -0.5958944 2.263632 -1.15247 +v -1.018744 0.03530274 -1.130078 +v 1.008119 0.01583862 -1.118291 +v -0.5924183 2.27644 -1.145748 +v 0.5958944 2.263632 -1.15247 +v 1.673991 0.75 -1.094419 +v 1.669291 0.6682434 -1.091347 +v -1.673991 0.75 -1.094419 +v -1.67159 0.8352356 -1.09285 +v -0.7387332 2.2125 -1.129944 +v 0.7458939 2.214844 -1.140897 +v 1.67159 0.8352356 -1.09285 +v -1.664591 0.9221191 -1.088274 +v -0.6548883 2.25 -1.122997 +v 0.6670101 2.221875 -1.143783 +v 1.656009 0.5916504 -1.082663 +v -1.669291 0.6682434 -1.091347 +v -0.8179786 2.342285 -1.120986 +v 0.8270737 2.348438 -1.13345 +v 0.5220378 2.299805 -1.147798 +v 0.5924183 2.27644 -1.145748 +v -0.5791418 2.299805 -1.120071 +v -1.231625 0.1516113 -1.110287 +v -1.115903 0.08554687 -1.115903 +v 1.172147 0.08554687 -1.056669 +v -0.5032781 2.320532 -1.106551 +v 0.4474651 2.320532 -1.130274 +v 1.664591 0.9221191 -1.088274 +v -1.653301 1.010541 -1.080893 +v 1.075852 0.03530274 -1.075852 +v -0.811048 2.221875 -1.111488 +v -0.8252316 2.25 -1.130926 +v 0.8252316 2.25 -1.130926 +v 0.8156761 2.293067 -1.11783 +v 1.287351 0.1516113 -1.045162 +v -1.358618 0.234375 -1.103022 +v 0.9134399 2.323828 -1.125106 +v -0.8978055 2.342285 -1.105848 +v 0.9502504 0 -1.160614 +v -1.008119 0.01583862 -1.118291 +v -0.9502504 0 -1.160614 +v 0.3181517 2.339062 -1.111618 +v 1.63537 0.5201111 -1.06917 +v -1.656009 0.5916504 -1.082663 +v 0.7387332 2.2125 -1.129944 +v -0.7315724 2.214844 -1.118991 +v -0.9877502 2.293067 -1.095696 +v -1.638026 1.100391 -1.070907 +v 1.653301 1.010541 -1.080893 +v 1.489389 1.471875 -1.086801 +v -1.428251 1.66333 -1.042189 +v -0.8137189 2.323828 -1.115148 +v 0.8179786 2.342285 -1.120986 +v 1.451326 0.2822937 -1.059026 +v -1.487811 0.3347168 -1.085649 +v 1.003934 0 -1.113609 +v -1.003934 0 -1.113609 +v -0.8156761 2.293067 -1.11783 +v 0.8137189 2.323828 -1.115148 +v -0.09027563 2.371289 -1.000623 +v 0 2.371289 -1.004688 +v 0.7315724 2.214844 -1.118991 +v -0.7245399 2.221875 -1.108234 +v 0.6548883 2.25 -1.122997 +v -0.6535847 2.263632 -1.120761 +v -1.596749 1.283936 -1.04392 +v 1.638026 1.100391 -1.070907 +v -0.649772 2.27644 -1.114223 +v 0.6535847 2.263632 -1.120761 +v 1.608601 0.4535156 -1.051669 +v -1.63537 0.5201111 -1.06917 +v -0.8034726 2.214844 -1.101106 +v 0.811048 2.221875 -1.111488 +v -0.182816 2.371289 -0.9879146 +v 0.09027563 2.371289 -1.000623 +v 0.4256095 2.339062 -1.075068 +v -0.4256095 2.339062 -1.075068 +v 0.8978055 2.342285 -1.105848 +v -0.8843871 2.348438 -1.089321 +v 0.5791418 2.299805 -1.120071 +v -0.55833 2.320532 -1.07982 +v 0.5032781 2.320532 -1.106551 +v -0.6352102 2.299805 -1.089253 +v 0.649772 2.27644 -1.114223 +v -0.970357 2.323828 -1.076403 +v 0.9877502 2.293067 -1.095696 +v -0.7113727 2.25 -1.088094 +v 0.7245399 2.221875 -1.108234 +v -0.7957591 2.2125 -1.090535 +v 0.8034726 2.214844 -1.101106 +v -0.276448 2.371289 -0.9659055 +v 0.182816 2.371289 -0.9879146 +v 0.8843871 2.348438 -1.089321 +v -0.8746617 2.342285 -1.077342 +v 1.576927 0.3917542 -1.030961 +v -1.608601 0.4535156 -1.051669 +v -1.451326 0.2822937 -1.059026 +v 1.413657 0.234375 -1.03154 +v 0.8824174 2.25 -1.086895 +v 0.8721997 2.293067 -1.074309 +v -0.8672508 2.221875 -1.068213 +v -0.8824174 2.25 -1.086895 +v -0.4783344 2.339062 -1.051073 +v 1.064631 0.01583862 -1.064631 +v -1.075852 0.03530274 -1.075852 +v -0.7880456 2.214844 -1.079965 +v 0.7957591 2.2125 -1.090535 +v -1.16453 2.25 -0.9454472 +v 1.11412 2.25 -1.004359 +v 1.307063 1.857422 -1.061166 +v -0.9537485 2.342285 -1.057979 +v 0.970357 2.323828 -1.076403 +v -1.543211 1.471875 -1.008918 +v 1.596749 1.283936 -1.04392 +v 0.7113727 2.25 -1.088094 +v -0.7099566 2.263632 -1.085928 +v 0.8746617 2.342285 -1.077342 +v -0.8701069 2.323828 -1.071731 +v -0.7058151 2.27644 -1.079593 +v 0.7099566 2.263632 -1.085928 +v -0.6123835 2.320532 -1.05011 +v 0.55833 2.320532 -1.07982 +v 0.6352102 2.299805 -1.089253 +v -0.7804702 2.221875 -1.069583 +v 0.7880456 2.214844 -1.079965 +v 1.02494 0 -1.095216 +v -1.02494 0 -1.095216 +v -1.064631 0.01583862 -1.064631 +v 0.8701069 2.323828 -1.071731 +v -0.8721997 2.293067 -1.074309 +v -1.172147 0.08554687 -1.056669 +v 1.130078 0.03530274 -1.018744 +v 1.428251 1.66333 -1.042189 +v -1.360014 1.857422 -0.9923963 +v 0.7058151 2.27644 -1.079593 +v -0.6899973 2.299805 -1.055399 +v -1.043121 2.293067 -1.043121 +v -0.3698201 2.371289 -0.9341467 +v 0.276448 2.371289 -0.9659055 +v 0.8672508 2.221875 -1.068213 +v -0.8591505 2.214844 -1.058236 +v 1.541576 0.3347168 -1.007849 +v -1.576927 0.3917542 -1.030961 +v 1.225182 0.08554687 -0.9946892 +v -1.287351 0.1516113 -1.045162 +v -0.7662865 2.25 -1.050145 +v 0.7804702 2.221875 -1.069583 +v 0.4783344 2.339062 -1.051073 +v -0.5310594 2.339062 -1.027078 +v -0.9394939 2.348438 -1.042166 +v 0.9537485 2.342285 -1.057979 +v 1.339503 0.1516113 -0.9774297 +v -1.413657 0.234375 -1.03154 +v 0.8591505 2.214844 -1.058236 +v -0.8509025 2.2125 -1.048077 +v 1.043121 2.293067 -1.043121 +v -1.024752 2.323828 -1.024752 +v 1.060078 0 -1.060078 +v -1.060078 0 -1.060078 +v -1.727687 0.75 -1.00752 +v -1.725209 0.8352356 -1.006075 +v 1.727687 0.75 -1.00752 +v 1.722836 0.6682434 -1.004692 +v -1.717986 0.9221191 -1.001863 +v 1.725209 0.8352356 -1.006075 +v -1.722836 0.6682434 -1.004692 +v 1.709128 0.5916504 -0.9966975 +v 0.8509025 2.2125 -1.048077 +v -0.8426544 2.214844 -1.037917 +v -0.9291626 2.342285 -1.030706 +v 0.9394939 2.348438 -1.042166 +v 0.6899973 2.299805 -1.055399 +v -0.6652018 2.320532 -1.017473 +v 0.6123835 2.320532 -1.05011 +v 1.717986 0.9221191 -1.001863 +v -1.706334 1.010541 -0.9950679 +v 0.7662865 2.25 -1.050145 +v -0.7647611 2.263632 -1.048055 +v -0.9212899 2.221875 -1.021973 +v -0.9374015 2.25 -1.039845 +v 0.9374015 2.25 -1.039845 +v 0.9265471 2.293067 -1.027805 +v -1.479864 1.66333 -0.9675032 +v 1.543211 1.471875 -1.008918 +v -0.7602999 2.27644 -1.041941 +v 0.7647611 2.263632 -1.048055 +v 1.503772 0.2822937 -0.9831339 +v -1.541576 0.3347168 -1.007849 +v -1.709128 0.5916504 -0.9966975 +v 1.687827 0.5201111 -0.9842757 +v -1.690569 1.100391 -0.9858745 +v 1.706334 1.010541 -0.9950679 +v 0.8426544 2.214844 -1.037917 +v -0.8345541 2.221875 -1.02794 +v 0.5310594 2.339062 -1.027078 +v -0.5818853 2.339062 -0.9974272 +v -0.7432611 2.299805 -1.01859 +v 0.7602999 2.27644 -1.041941 +v -0.9243239 2.323828 -1.025339 +v 0.9291626 2.342285 -1.030706 +v 1.024752 2.323828 -1.024752 +v -1.007213 2.342285 -1.007213 +v -1.130078 0.03530274 -1.018744 +v 1.118291 0.01583862 -1.008119 +v 0.3698201 2.371289 -0.9341467 +v -0.9265471 2.293067 -1.027805 +v 0.9243239 2.323828 -1.025339 +v -1.647967 1.283936 -0.9610309 +v 1.690569 1.100391 -0.9858745 +v -0.8193876 2.25 -1.009259 +v 0.8345541 2.221875 -1.02794 +v -1.687827 0.5201111 -0.9842757 +v 1.660199 0.4535156 -0.9681642 +v -0.9126848 2.214844 -1.012428 +v 0.9212899 2.221875 -1.021973 +v 1.095216 0 -1.02494 +v -1.118291 0.01583862 -1.008119 +v -1.095216 0 -1.02494 +v 1.16453 2.25 -0.9454472 +v 1.360014 1.857422 -0.9923963 +v -1.211706 2.25 -0.8841767 +v -1.095696 2.293067 -0.9877502 +v -1.503772 0.2822937 -0.9831339 +v 1.464742 0.234375 -0.957617 +v -0.9039229 2.2125 -1.002708 +v 0.9126848 2.214844 -1.012428 +v 1.007213 2.342285 -1.007213 +v -0.9921592 2.348438 -0.9921592 +v -1.225182 0.08554687 -0.9946892 +v 1.181209 0.03530274 -0.9589887 +v -0.7165516 2.320532 -0.9819868 +v 0.6652018 2.320532 -1.017473 +v 0.7432611 2.299805 -1.01859 +v -1.660199 0.4535156 -0.9681642 +v 1.62751 0.3917542 -0.949101 +v -0.4614475 2.371289 -0.8924478 +v 0.4614475 2.371289 -0.8924478 +v 0.8193876 2.25 -1.009259 +v -0.8177564 2.263632 -1.00725 +v 0.5818853 2.339062 -0.9974272 +v -0.6327113 2.339062 -0.9677761 +v -0.8951609 2.214844 -0.9929885 +v 0.9039229 2.2125 -1.002708 +v -0.8129861 2.27644 -1.001374 +v 0.8177564 2.263632 -1.00725 +v -1.339503 0.1516113 -0.9774297 +v 1.274816 0.08554687 -0.9302276 +v -1.592711 1.471875 -0.928808 +v 1.647967 1.283936 -0.9610309 +v -1.076403 2.323828 -0.970357 +v 1.095696 2.293067 -0.9877502 +v -1.40916 1.857422 -0.9212789 +v 1.479864 1.66333 -0.9675032 +v 0.9921592 2.348438 -0.9921592 +v -0.9812487 2.342285 -0.9812487 +v 0.8129861 2.27644 -1.001374 +v -0.7947665 2.299805 -0.9789329 +v 0.9899495 2.25 -0.9899495 +v 0.9784867 2.293067 -0.9784867 +v -0.9899495 2.25 -0.9899495 +v -0.9729347 2.221875 -0.9729347 +v -0.8865558 2.221875 -0.9834431 +v 0.8951609 2.214844 -0.9929885 +v 1.387909 0.1516113 -0.9073849 +v -1.464742 0.234375 -0.957617 +v -1.62751 0.3917542 -0.949101 +v 1.591024 0.3347168 -0.927824 +v 0.9812487 2.342285 -0.9812487 +v -0.9761388 2.323828 -0.9761388 +v -0.8704442 2.25 -0.9655707 +v 0.8865558 2.221875 -0.9834431 +v 0.9761388 2.323828 -0.9761388 +v -0.9784867 2.293067 -0.9784867 +v 1.113609 0 -1.003934 +v -1.113609 0 -1.003934 +v -1.057979 2.342285 -0.9537485 +v 1.076403 2.323828 -0.970357 +v 0.9729347 2.221875 -0.9729347 +v -0.9638473 2.214844 -0.9638473 +v 1.168889 0.01583862 -0.9489865 +v -1.181209 0.03530274 -0.9589887 +v 0.7947665 2.299805 -0.9789329 +v -0.7662061 2.320532 -0.9437543 +v 0.7165516 2.320532 -0.9819868 +v -0.6815529 2.339062 -0.9340234 +v 0.6327113 2.339062 -0.9677761 +v 0.9638473 2.214844 -0.9638473 +v -0.9545941 2.2125 -0.9545941 +v 0.8704442 2.25 -0.9655707 +v -0.8687114 2.263632 -0.9636486 +v -1.527333 1.66333 -0.8906816 +v 1.592711 1.471875 -0.928808 +v 1.160614 0 -0.9502504 +v -1.160614 0 -0.9502504 +v -1.168889 0.01583862 -0.9489865 +v 1.552008 0.2822937 -0.9050712 +v -1.591024 0.3347168 -0.927824 +v 1.776568 0.75 -0.9185892 +v 1.77158 0.6682434 -0.9160101 +v -1.77402 0.8352356 -0.9172716 +v -1.776568 0.75 -0.9185892 +v -0.8636439 2.27644 -0.9580272 +v 0.8687114 2.263632 -0.9636486 +v -1.042166 2.348438 -0.9394939 +v 1.057979 2.342285 -0.9537485 +v 1.77402 0.8352356 -0.9172716 +v -1.766592 0.9221191 -0.9134311 +v 1.757484 0.5916504 -0.9087215 +v -1.77158 0.6682434 -0.9160101 +v -0.07412991 2.4 -0.8216628 +v 0 2.4 -0.825 +v -1.145273 2.293067 -0.9298128 +v 0.9545941 2.2125 -0.9545941 +v -0.945341 2.214844 -0.945341 +v 1.766592 0.9221191 -0.9134311 +v -1.75461 1.010541 -0.9072358 +v -0.8442891 2.299805 -0.9365572 +v 0.8636439 2.27644 -0.9580272 +v 0.07412991 2.4 -0.8216628 +v -0.1501195 2.4 -0.8112269 +v -0.5497748 2.371289 -0.8409189 +v 0.5497748 2.371289 -0.8409189 +v 1.73558 0.5201111 -0.8973961 +v -1.757484 0.5916504 -0.9087215 +v 1.75461 1.010541 -0.9072358 +v -1.7384 1.100391 -0.8988539 +v -1.274816 0.08554687 -0.9302276 +v 1.229061 0.03530274 -0.8968408 +v -0.9362535 2.221875 -0.9362535 +v 0.945341 2.214844 -0.945341 +v -1.255493 2.25 -0.8208146 +v 1.211706 2.25 -0.8841767 +v 1.40916 1.857422 -0.9212789 +v -1.030706 2.342285 -0.9291626 +v 1.042166 2.348438 -0.9394939 +v -1.039845 2.25 -0.9374015 +v -1.021973 2.221875 -0.9212899 +v 1.039845 2.25 -0.9374015 +v 1.027805 2.293067 -0.9265471 +v 0.1501195 2.4 -0.8112269 +v -0.2270055 2.4 -0.7931541 +v -1.125106 2.323828 -0.9134399 +v 1.145273 2.293067 -0.9298128 +v 1.7384 1.100391 -0.8988539 +v -1.694593 1.283936 -0.8762031 +v 1.707171 0.4535156 -0.8827068 +v -1.73558 0.5201111 -0.8973961 +v -0.9192388 2.25 -0.9192388 +v 0.9362535 2.221875 -0.9362535 +v -1.552008 0.2822937 -0.9050712 +v 1.511726 0.234375 -0.8815804 +v 0.6815529 2.339062 -0.9340234 +v 0.7662061 2.320532 -0.9437543 +v -0.7287822 2.339062 -0.8976583 +v -1.025339 2.323828 -0.9243239 +v 1.030706 2.342285 -0.9291626 +v -0.813949 2.320532 -0.9029015 +v 0.8442891 2.299805 -0.9365572 +v -1.027805 2.293067 -0.9265471 +v 1.025339 2.323828 -0.9243239 +v -1.387909 0.1516113 -0.9073849 +v 1.320884 0.08554687 -0.8635654 +v -1.012428 2.214844 -0.9126848 +v 1.021973 2.221875 -0.9212899 +v -1.105848 2.342285 -0.8978055 +v 1.125106 2.323828 -0.9134399 +v 1.673557 0.3917542 -0.8653263 +v -1.707171 0.4535156 -0.8827068 +v -0.5922142 2.371289 -0.8115906 +v -1.454362 1.857422 -0.8481276 +v 1.527333 1.66333 -0.8906816 +v 0.2270055 2.4 -0.7931541 +v -0.3036781 2.4 -0.7670754 +v 0.9192388 2.25 -0.9192388 +v -0.9174089 2.263632 -0.9174089 +v -1.002708 2.2125 -0.9039229 +v 1.012428 2.214844 -0.9126848 +v -0.9120573 2.27644 -0.9120573 +v 0.9174089 2.263632 -0.9174089 +v 1.694593 1.283936 -0.8762031 +v -1.637774 1.471875 -0.8468244 +v -1.229061 0.03530274 -0.8968408 +v 1.216242 0.01583862 -0.8874866 +v 0.9120573 2.27644 -0.9120573 +v -0.8916175 2.299805 -0.8916175 +v 1.432428 0.1516113 -0.8353368 +v -1.511726 0.234375 -0.8815804 +v 1.002708 2.2125 -0.9039229 +v -0.9929885 2.214844 -0.8951609 +v -1.089321 2.348438 -0.8843871 +v 1.105848 2.342285 -0.8978055 +v 1.164372 0 -0.9453387 +v -1.164372 0 -0.9453387 +v 1.636039 0.3347168 -0.8459274 +v -1.673557 0.3917542 -0.8653263 +v 1.211344 0 -0.8839422 +v -1.216242 0.01583862 -0.8874866 +v -1.191669 2.293067 -0.8695556 +v -0.9834431 2.221875 -0.8865558 +v 0.9929885 2.214844 -0.8951609 +v -1.211344 0 -0.8839422 +v 0.7287822 2.339062 -0.8976583 +v 0.813949 2.320532 -0.9029015 +v -0.7741932 2.339062 -0.8588009 +v -1.077342 2.342285 -0.8746617 +v 1.089321 2.348438 -0.8843871 +v -1.086895 2.25 -0.8824174 +v -1.068213 2.221875 -0.8672508 +v 1.086895 2.25 -0.8824174 +v 1.074309 2.293067 -0.8721997 +v 0.8916175 2.299805 -0.8916175 +v -0.8595767 2.320532 -0.8595767 +v -0.9655707 2.25 -0.8704442 +v 0.9834431 2.221875 -0.8865558 +v -0.3789181 2.4 -0.7328343 +v 0.3036781 2.4 -0.7670754 +v 0.5915138 2.371289 -0.8104556 +v -0.6332526 2.371289 -0.7799923 +v 1.273476 0.03530274 -0.8325711 +v -1.320884 0.08554687 -0.8635654 +v 1.191669 2.293067 -0.8695556 +v -1.170685 2.323828 -0.8542437 +v -1.071731 2.323828 -0.8701069 +v 1.077342 2.342285 -0.8746617 +v 1.637774 1.471875 -0.8468244 +v -1.570545 1.66333 -0.8120633 +v 1.595918 0.2822937 -0.8251829 +v -1.636039 0.3347168 -0.8459274 +v -1.074309 2.293067 -0.8721997 +v 1.071731 2.323828 -0.8701069 +v -1.058236 2.214844 -0.8591505 +v 1.068213 2.221875 -0.8672508 +v -1.295765 2.25 -0.7556404 +v 1.255493 2.25 -0.8208146 +v 1.454362 1.857422 -0.8481276 +v 0.9655707 2.25 -0.8704442 +v -0.9636486 2.263632 -0.8687114 +v 1.820547 0.75 -0.8280154 +v 1.815435 0.6682434 -0.8256906 +v -1.817935 0.8352356 -0.8268277 +v -1.820547 0.75 -0.8280154 +v -0.9580272 2.27644 -0.8636439 +v 0.9636486 2.263632 -0.8687114 +v 1.817935 0.8352356 -0.8268277 +v -1.810324 0.9221191 -0.8233659 +v 1.80099 0.5916504 -0.8191206 +v -1.815435 0.6682434 -0.8256906 +v 1.170685 2.323828 -0.8542437 +v -1.150647 2.342285 -0.8396226 +v 1.810324 0.9221191 -0.8233659 +v -1.798046 1.010541 -0.8177814 +v -1.048077 2.2125 -0.8509025 +v 1.058236 2.214844 -0.8591505 +v -0.9365572 2.299805 -0.8442891 +v 0.9580272 2.27644 -0.8636439 +v -1.80099 0.5916504 -0.8191206 +v 1.778544 0.5201111 -0.808912 +v -1.432428 0.1516113 -0.8353368 +v 1.363253 0.08554687 -0.7949966 +v 1.798046 1.010541 -0.8177814 +v -1.781433 1.100391 -0.810226 +v -1.595918 0.2822937 -0.8251829 +v 1.554497 0.234375 -0.8037655 +v 1.048077 2.2125 -0.8509025 +v -1.037917 2.214844 -0.8426544 +v 0.7741932 2.339062 -0.8588009 +v 0.8595767 2.320532 -0.8595767 +v -0.8175922 2.339062 -0.8175922 +v 1.781433 1.100391 -0.810226 +v -1.736542 1.283936 -0.7898086 +v 1.150647 2.342285 -0.8396226 +v -1.13345 2.348438 -0.8270737 +v 0.6332526 2.371289 -0.7799923 +v -0.6727111 2.371289 -0.7462283 +v -1.778544 0.5201111 -0.808912 +v 1.749432 0.4535156 -0.795671 +v 1.260193 0.01583862 -0.8238873 +v -1.273476 0.03530274 -0.8325711 +v 1.037917 2.214844 -0.8426544 +v -1.02794 2.221875 -0.8345541 +v 0.3789181 2.4 -0.7328343 +v -0.4514481 2.4 -0.6905213 +v -0.9029015 2.320532 -0.813949 +v 0.9365572 2.299805 -0.8442891 +v 1.570545 1.66333 -0.8120633 +v -1.495509 1.857422 -0.7732655 +v 1.220739 0 -0.8716629 +v -1.220739 0 -0.8716629 +v -1.260193 0.01583862 -0.8238873 +v -1.009259 2.25 -0.8193876 +v 1.02794 2.221875 -0.8345541 +v 1.13345 2.348438 -0.8270737 +v -1.120986 2.342285 -0.8179786 +v -1.234732 2.293067 -0.8072413 +v -1.749432 0.4535156 -0.795671 +v 1.714985 0.3917542 -0.7800042 +v 1.130926 2.25 -0.8252316 +v 1.11783 2.293067 -0.8156761 +v -1.111488 2.221875 -0.811048 +v -1.130926 2.25 -0.8252316 +v 1.472955 0.1516113 -0.7616037 +v -1.554497 0.234375 -0.8037655 +v 1.736542 1.283936 -0.7898086 +v -1.678317 1.471875 -0.7633266 +v 1.120986 2.342285 -0.8179786 +v -1.115148 2.323828 -0.8137189 +v 1.115148 2.323828 -0.8137189 +v -1.11783 2.293067 -0.8156761 +v 1.25482 0 -0.8204608 +v -1.25482 0 -0.8204608 +v 1.009259 2.25 -0.8193876 +v -1.00725 2.263632 -0.8177564 +v -1.21299 2.323828 -0.7930266 +v 1.234732 2.293067 -0.8072413 +v -1.001374 2.27644 -0.8129861 +v 1.00725 2.263632 -0.8177564 +v 1.111488 2.221875 -0.811048 +v -1.101106 2.214844 -0.8034726 +v -1.714985 0.3917542 -0.7800042 +v 1.676539 0.3347168 -0.762518 +v 1.001374 2.27644 -0.8129861 +v -0.9789329 2.299805 -0.7947665 +v -1.363253 0.08554687 -0.7949966 +v 1.314324 0.03530274 -0.7664633 +v -0.8588009 2.339062 -0.7741932 +v 0.8175922 2.339062 -0.8175922 +v 0.9029015 2.320532 -0.813949 +v 1.101106 2.214844 -0.8034726 +v -1.090535 2.2125 -0.7957591 +v 0.6727111 2.371289 -0.7462283 +v -0.7104213 2.371289 -0.7104213 +v -1.192228 2.342285 -0.7794533 +v 1.21299 2.323828 -0.7930266 +v 1.090535 2.2125 -0.7957591 +v -1.079965 2.214844 -0.7880456 +v 1.495509 1.857422 -0.7732655 +v 1.295765 2.25 -0.7556404 +v -1.332426 2.25 -0.6889419 +v 1.678317 1.471875 -0.7633266 +v -1.609424 1.66333 -0.7319931 +v 1.635425 0.2822937 -0.743819 +v -1.676539 0.3347168 -0.762518 +v 0.9789329 2.299805 -0.7947665 +v -0.9437543 2.320532 -0.7662061 +v 1.079965 2.214844 -0.7880456 +v -1.069583 2.221875 -0.7804702 +v 0.4514481 2.4 -0.6905213 +v -1.174409 2.348438 -0.7678037 +v 1.192228 2.342285 -0.7794533 +v 1.401823 0.08554687 -0.7248243 +v -1.472955 0.1516113 -0.7616037 +v -1.050145 2.25 -0.7662865 +v 1.069583 2.221875 -0.7804702 +v -1.314324 0.03530274 -0.7664633 +v 1.300616 0.01583862 -0.7584691 +v -1.859577 0.75 -0.7361894 +v -1.856909 0.8352356 -0.7351335 +v 1.859577 0.75 -0.7361894 +v 1.854356 0.6682434 -0.7341225 +v -1.161495 2.342285 -0.7593604 +v 1.174409 2.348438 -0.7678037 +v -1.849135 0.9221191 -0.7320555 +v 1.856909 0.8352356 -0.7351335 +v -1.854356 0.6682434 -0.7341225 +v 1.839601 0.5916504 -0.7282811 +v -1.171794 2.25 -0.7660937 +v -1.151654 2.221875 -0.7529264 +v 1.171794 2.25 -0.7660937 +v 1.158225 2.293067 -0.7572229 +v -1.635425 0.2822937 -0.743819 +v 1.592978 0.234375 -0.7245134 +v -0.05714181 2.428711 -0.6333651 +v 0 2.428711 -0.6359375 +v 1.275269 0 -0.7897395 +v -1.300616 0.01583862 -0.7584691 +v -1.275269 0 -0.7897395 +v -1.836593 1.010541 -0.7270904 +v 1.849135 0.9221191 -0.7320555 +v -0.1157171 2.428711 -0.6253207 +v 0.05714181 2.428711 -0.6333651 +v -1.274338 2.293067 -0.7431448 +v 1.050145 2.25 -0.7662865 +v -1.048055 2.263632 -0.7647611 +v 1.816674 0.5201111 -0.7192046 +v -1.839601 0.5916504 -0.7282811 +v -1.155446 2.323828 -0.755406 +v 1.161495 2.342285 -0.7593604 +v -1.819625 1.100391 -0.7203729 +v 1.836593 1.010541 -0.7270904 +v -1.041941 2.27644 -0.7602999 +v 1.048055 2.263632 -0.7647611 +v 0.8588009 2.339062 -0.7741932 +v 0.7104213 2.371289 -0.7104213 +v -0.7462283 2.371289 -0.6727111 +v -1.158225 2.293067 -0.7572229 +v 1.155446 2.323828 -0.755406 +v 0.9437543 2.320532 -0.7662061 +v -0.8976583 2.339062 -0.7287822 +v -1.01859 2.299805 -0.7432611 +v 1.041941 2.27644 -0.7602999 +v 1.609424 1.66333 -0.7319931 +v -1.532531 1.857422 -0.6970208 +v -0.5199959 2.4 -0.6404914 +v -0.1749834 2.428711 -0.6113896 +v 0.1157171 2.428711 -0.6253207 +v -1.140897 2.214844 -0.7458939 +v 1.151654 2.221875 -0.7529264 +v 0.5199959 2.4 -0.6404914 +v -1.773771 1.283936 -0.7022197 +v 1.819625 1.100391 -0.7203729 +v 1.786937 0.4535156 -0.707432 +v -1.816674 0.5201111 -0.7192046 +v -1.251898 2.323828 -0.7300588 +v 1.274338 2.293067 -0.7431448 +v 1.509418 0.1516113 -0.6865088 +v -1.592978 0.234375 -0.7245134 +v -1.129944 2.2125 -0.7387332 +v 1.140897 2.214844 -0.7458939 +v 1.129944 2.2125 -0.7387332 +v -1.118991 2.214844 -0.7315724 +v 1.751752 0.3917542 -0.6935027 +v -1.786937 0.4535156 -0.707432 +v -1.401823 0.08554687 -0.7248243 +v 1.35151 0.03530274 -0.6988096 +v -0.9819868 2.320532 -0.7165516 +v 1.01859 2.299805 -0.7432611 +v -0.2340852 2.428711 -0.5912873 +v 0.1749834 2.428711 -0.6113896 +v -1.230471 2.342285 -0.7175632 +v 1.251898 2.323828 -0.7300588 +v -1.714297 1.471875 -0.6786746 +v 1.773771 1.283936 -0.7022197 +v 1.29505 0 -0.7553437 +v -1.29505 0 -0.7553437 +v 1.118991 2.214844 -0.7315724 +v -1.108234 2.221875 -0.7245399 +v -1.088094 2.25 -0.7113727 +v 1.108234 2.221875 -0.7245399 +v 1.712481 0.3347168 -0.6779557 +v -1.751752 0.3917542 -0.6935027 +v -1.21208 2.348438 -0.7068386 +v 1.230471 2.342285 -0.7175632 +v 0.8976583 2.339062 -0.7287822 +v 0.7462283 2.371289 -0.6727111 +v -0.7799923 2.371289 -0.6332526 +v 1.332426 2.25 -0.6889419 +v 1.532531 1.857422 -0.6970208 +v -1.36541 2.25 -0.6210115 +v -1.198752 2.342285 -0.6990657 +v 1.21208 2.348438 -0.7068386 +v -0.2920827 2.428711 -0.5648931 +v 0.2340852 2.428711 -0.5912873 +v 1.337414 0.01583862 -0.6915209 +v -1.35151 0.03530274 -0.6988096 +v 1.088094 2.25 -0.7113727 +v -1.085928 2.263632 -0.7099566 +v 0.9819868 2.320532 -0.7165516 +v -0.9340234 2.339062 -0.6815529 +v -1.188595 2.221875 -0.6931426 +v -1.209381 2.25 -0.7052643 +v 1.209381 2.25 -0.7052643 +v 1.195377 2.293067 -0.6970979 +v -1.079593 2.27644 -0.7058151 +v 1.085928 2.263632 -0.7099566 +v -1.643927 1.66333 -0.6508159 +v 1.714297 1.471875 -0.6786746 +v 1.670486 0.2822937 -0.6613303 +v -1.712481 0.3347168 -0.6779557 +v -1.509418 0.1516113 -0.6865088 +v 1.436525 0.08554687 -0.6533559 +v 1.079593 2.27644 -0.7058151 +v -1.055399 2.299805 -0.6899973 +v -1.192509 2.323828 -0.6954253 +v 1.198752 2.342285 -0.6990657 +v 1.323961 0 -0.7050729 +v -1.323961 0 -0.7050729 +v -1.337414 0.01583862 -0.6915209 +v -1.195377 2.293067 -0.6970979 +v 1.192509 2.323828 -0.6954253 +v -1.310392 2.293067 -0.6775492 +v -1.177493 2.214844 -0.6866685 +v 1.188595 2.221875 -0.6931426 +v 0.5833631 2.4 -0.5833631 +v -0.5833631 2.4 -0.5833631 +v -1.166189 2.2125 -0.6800763 +v 1.177493 2.214844 -0.6866685 +v -1.670486 0.2822937 -0.6613303 +v 1.62713 0.234375 -0.6441658 +v 1.055399 2.299805 -0.6899973 +v -1.017473 2.320532 -0.6652018 +v 1.310392 2.293067 -0.6775492 +v -1.287318 2.323828 -0.6656184 +v -1.154885 2.214844 -0.6734841 +v 1.166189 2.2125 -0.6800763 +v 1.89365 0.75 -0.6434974 +v 1.888334 0.6682434 -0.6416907 +v -1.89365 0.75 -0.6434974 +v -1.890934 0.8352356 -0.6425744 +v 1.890934 0.8352356 -0.6425744 +v -1.883017 0.9221191 -0.6398841 +v -1.888334 0.6682434 -0.6416907 +v 1.873308 0.5916504 -0.6365849 +v 0.2920827 2.428711 -0.5648931 +v -0.3479912 2.428711 -0.5322768 +v 1.883017 0.9221191 -0.6398841 +v -1.870245 1.010541 -0.6355441 +v -1.565386 1.857422 -0.6197219 +v 1.643927 1.66333 -0.6508159 +v -1.143783 2.221875 -0.6670101 +v 1.154885 2.214844 -0.6734841 +v 1.287318 2.323828 -0.6656184 +v -1.265284 2.342285 -0.6542256 +v 0.9340234 2.339062 -0.6815529 +v -0.8104556 2.371289 -0.5915138 +v 0.7799923 2.371289 -0.6332526 +v -1.873308 0.5916504 -0.6365849 +v 1.849961 0.5201111 -0.6286511 +v 1.870245 1.010541 -0.6355441 +v -1.852966 1.100391 -0.6296723 +v -1.436525 0.08554687 -0.6533559 +v 1.384967 0.03530274 -0.6299062 +v -1.122997 2.25 -0.6548883 +v 1.143783 2.221875 -0.6670101 +v 1.541778 0.1516113 -0.6103758 +v -1.62713 0.234375 -0.6441658 +v 1.852966 1.100391 -0.6296723 +v -1.806272 1.283936 -0.6138048 +v -1.849961 0.5201111 -0.6286511 +v 1.819679 0.4535156 -0.6183608 +v 1.265284 2.342285 -0.6542256 +v -1.246374 2.348438 -0.6444477 +v 1.017473 2.320532 -0.6652018 +v -0.9677761 2.339062 -0.6327113 +v 1.122997 2.25 -0.6548883 +v -1.120761 2.263632 -0.6535847 +v -1.114223 2.27644 -0.649772 +v 1.120761 2.263632 -0.6535847 +v -1.819679 0.4535156 -0.6183608 +v 1.78385 0.3917542 -0.6061853 +v 1.246374 2.348438 -0.6444477 +v -1.232668 2.342285 -0.6373609 +v -1.089253 2.299805 -0.6352102 +v 1.114223 2.27644 -0.649772 +v 1.243598 2.25 -0.6430124 +v 1.229198 2.293067 -0.6355668 +v -1.222223 2.221875 -0.6319606 +v -1.243598 2.25 -0.6430124 +v 1.331965 0 -0.6887979 +v -1.331965 0 -0.6887979 +v 1.806272 1.283936 -0.6138048 +v -1.745709 1.471875 -0.5932242 +v 1.232668 2.342285 -0.6373609 +v -1.226248 2.323828 -0.6340418 +v -1.384967 0.03530274 -0.6299062 +v 1.370521 0.01583862 -0.6233363 +v 1.226248 2.323828 -0.6340418 +v -1.229198 2.293067 -0.6355668 +v 1.36541 2.25 -0.6210115 +v -1.394682 2.25 -0.5521421 +v 1.565386 1.857422 -0.6197219 +v -1.78385 0.3917542 -0.6061853 +v 1.74386 0.3347168 -0.5925958 +v 1.222223 2.221875 -0.6319606 +v -1.210807 2.214844 -0.626058 +v 1.365318 0 -0.6209853 +v -1.370521 0.01583862 -0.6233363 +v 0.3479912 2.428711 -0.5322768 +v -0.4008302 2.428711 -0.4937121 +v -1.05011 2.320532 -0.6123835 +v 1.089253 2.299805 -0.6352102 +v -1.342831 2.293067 -0.6107422 +v -1.365318 0 -0.6209853 +v 1.210807 2.214844 -0.626058 +v -1.199183 2.2125 -0.6200477 +v -1.541778 0.1516113 -0.6103758 +v 1.467322 0.08554687 -0.5808995 +v 0.9677761 2.339062 -0.6327113 +v -0.8409189 2.371289 -0.5497748 +v 0.8115906 2.371289 -0.5922142 +v 1.199183 2.2125 -0.6200477 +v -1.187559 2.214844 -0.6140374 +v 1.745709 1.471875 -0.5932242 +v -1.67405 1.66333 -0.5688731 +v -1.74386 0.3347168 -0.5925958 +v 1.701095 0.2822937 -0.5780637 +v 1.342831 2.293067 -0.6107422 +v -1.319185 2.323828 -0.5999877 +v 1.187559 2.214844 -0.6140374 +v -1.176144 2.221875 -0.6081347 +v -0.6404914 2.4 -0.5199959 +v 0.6404914 2.4 -0.5199959 +v -1.154769 2.25 -0.597083 +v 1.176144 2.221875 -0.6081347 +v 1.319185 2.323828 -0.5999877 +v -1.296606 2.342285 -0.5897183 +v -0.9974272 2.339062 -0.5818853 +v 1.05011 2.320532 -0.6123835 +v -1.701095 0.2822937 -0.5780637 +v 1.656944 0.234375 -0.5630602 +v 1.154769 2.25 -0.597083 +v -1.15247 2.263632 -0.5958944 +v 1.296606 2.342285 -0.5897183 +v -1.277227 2.348438 -0.5809045 +v -1.145748 2.27644 -0.5924183 +v 1.15247 2.263632 -0.5958944 +v 1.414658 0.03530274 -0.5600504 +v -1.467322 0.08554687 -0.5808995 +v 1.67405 1.66333 -0.5688731 +v -1.594069 1.857422 -0.5416941 +v 1.145748 2.27644 -0.5924183 +v -1.120071 2.299805 -0.5791418 +v 1.277227 2.348438 -0.5809045 +v -1.263182 2.342285 -0.5745165 +v -1.656944 0.234375 -0.5630602 +v 1.570028 0.1516113 -0.5335247 +v -1.92004 0.8352356 -0.5495271 +v -1.922798 0.75 -0.5503165 +v 1.922798 0.75 -0.5503165 +v 1.917399 0.6682434 -0.5487714 +v 1.274383 2.25 -0.5796108 +v 1.259626 2.293067 -0.5728993 +v -1.252479 2.221875 -0.5696487 +v -1.274383 2.25 -0.5796108 +v -1.912001 0.9221191 -0.5472263 +v 1.92004 0.8352356 -0.5495271 +v 1.902143 0.5916504 -0.5444048 +v -1.917399 0.6682434 -0.5487714 +v -0.4496757 2.428711 -0.4496757 +v 0.4008302 2.428711 -0.4937121 +v 1.912001 0.9221191 -0.5472263 +v -1.899033 1.010541 -0.5435147 +v 1.263182 2.342285 -0.5745165 +v -1.256604 2.323828 -0.5715247 +v 1.878436 0.5201111 -0.5376199 +v -1.902143 0.5916504 -0.5444048 +v -0.04099609 2.460938 -0.4544044 +v 0 2.460938 -0.45625 +v 1.256604 2.323828 -0.5715247 +v -1.259626 2.293067 -0.5728993 +v 1.899033 1.010541 -0.5435147 +v -1.881488 1.100391 -0.5384932 +v 1.120071 2.299805 -0.5791418 +v -1.07982 2.320532 -0.55833 +v -0.08302064 2.460938 -0.4486331 +v 0.04099609 2.460938 -0.4544044 +v 0.9974272 2.339062 -0.5818853 +v 0.8409189 2.371289 -0.5497748 +v 1.252479 2.221875 -0.5696487 +v -1.240781 2.214844 -0.5643281 +v 1.399903 0.01583862 -0.554209 +v -1.414658 0.03530274 -0.5600504 +v -1.834075 1.283936 -0.5249234 +v 1.881488 1.100391 -0.5384932 +v 1.847689 0.4535156 -0.5288197 +v -1.878436 0.5201111 -0.5376199 +v -1.228869 2.2125 -0.5589104 +v 1.240781 2.214844 -0.5643281 +v -0.1255409 2.460938 -0.4386383 +v 0.08302064 2.460938 -0.4486331 +v 1.366652 0 -0.6182728 +v -1.366652 0 -0.6182728 +v -1.399903 0.01583862 -0.554209 +v -1.371619 2.293067 -0.5430116 +v 1.394682 2.25 -0.5521421 +v -1.216957 2.214844 -0.5534927 +v 1.228869 2.2125 -0.5589104 +v 1.594069 1.857422 -0.5416941 +v -1.420238 2.25 -0.4826231 +v 1.811308 0.3917542 -0.5184072 +v -1.847689 0.4535156 -0.5288197 +v 1.394111 0 -0.5520329 +v -1.394111 0 -0.5520329 +v -1.205259 2.221875 -0.5481721 +v 1.216957 2.214844 -0.5534927 +v -1.772579 1.471875 -0.507323 +v 1.834075 1.283936 -0.5249234 +v 1.07982 2.320532 -0.55833 +v -1.027078 2.339062 -0.5310594 +v -0.1679432 2.460938 -0.4242159 +v 0.1255409 2.460938 -0.4386383 +v -1.347467 2.323828 -0.5334498 +v 1.371619 2.293067 -0.5430116 +v -1.570028 0.1516113 -0.5335247 +v 1.494208 0.08554687 -0.5077597 +v -1.183355 2.25 -0.53821 +v 1.205259 2.221875 -0.5481721 +v 1.770702 0.3347168 -0.5067855 +v -1.811308 0.3917542 -0.5184072 +v -1.324404 2.342285 -0.5243193 +v 1.347467 2.323828 -0.5334498 +v 1.183355 2.25 -0.53821 +v -1.181 2.263632 -0.5371386 +v -1.17411 2.27644 -0.5340052 +v 1.181 2.263632 -0.5371386 +v -1.699817 1.66333 -0.486498 +v 1.772579 1.471875 -0.507323 +v 1.727279 0.2822937 -0.4943577 +v -1.770702 0.3347168 -0.5067855 +v -1.147798 2.299805 -0.5220378 +v 1.17411 2.27644 -0.5340052 +v 0.6905213 2.4 -0.4514481 +v -0.6905213 2.4 -0.4514481 +v -0.2095532 2.460938 -0.4052796 +v 0.1679432 2.460938 -0.4242159 +v -1.304609 2.348438 -0.5164829 +v 1.324404 2.342285 -0.5243193 +v -0.4937121 2.428711 -0.4008302 +v 0.4496757 2.428711 -0.4496757 +v 1.027078 2.339062 -0.5310594 +v -0.8924478 2.371289 -0.4614475 +v 0.8924478 2.371289 -0.4614475 +v -1.290263 2.342285 -0.5108033 +v 1.304609 2.348438 -0.5164829 +v -1.494208 0.08554687 -0.5077597 +v 1.44058 0.03530274 -0.4895356 +v -1.301704 2.25 -0.5153326 +v -1.279331 2.221875 -0.5064753 +v 1.301704 2.25 -0.5153326 +v 1.286631 2.293067 -0.5093654 +v -1.106551 2.320532 -0.5032781 +v 1.147798 2.299805 -0.5220378 +v 1.682448 0.234375 -0.4815269 +v -1.727279 0.2822937 -0.4943577 +v -1.283544 2.323828 -0.5081432 +v 1.290263 2.342285 -0.5108033 +v -1.286631 2.293067 -0.5093654 +v 1.283544 2.323828 -0.5081432 +v 1.279331 2.221875 -0.5064753 +v -1.267381 2.214844 -0.5017447 +v -1.618605 1.857422 -0.4632547 +v 1.699817 1.66333 -0.486498 +v 0.2095532 2.460938 -0.4052796 +v -0.2496645 2.460938 -0.3818792 +v 1.267381 2.214844 -0.5017447 +v -1.255214 2.2125 -0.4969279 +v 1.594195 0.1516113 -0.4562682 +v -1.682448 0.234375 -0.4815269 +v -1.44058 0.03530274 -0.4895356 +v 1.425554 0.01583862 -0.4844297 +v 1.255214 2.2125 -0.4969279 +v -1.243047 2.214844 -0.492111 +v 1.106551 2.320532 -0.5032781 +v -1.051073 2.339062 -0.4783344 +v 1.403264 0 -0.5299529 +v -1.425554 0.01583862 -0.4844297 +v -1.403264 0 -0.5299529 +v -1.231098 2.221875 -0.4873804 +v 1.243047 2.214844 -0.492111 +v 1.420238 2.25 -0.4826231 +v -1.396752 2.293067 -0.4746422 +v 1.947085 0.75 -0.4570103 +v -1.944293 0.8352356 -0.4563548 +v -1.947085 0.75 -0.4570103 +v 1.941619 0.6682434 -0.4557272 +v -0.7328343 2.4 -0.3789181 +v 1.945698 0.7653809 -0.4624647 +v 1.939167 0.8219632 -0.4810431 +v 1.938392 0.8286242 -0.4824091 +v 1.937622 0.8352447 -0.4837667 +v -1.936152 0.9221191 -0.4544441 +v -1.941619 0.6682434 -0.4557272 +v 1.926169 0.5916504 -0.452101 +v -1.208725 2.25 -0.4785231 +v 1.231098 2.221875 -0.4873804 +v -1.92302 1.010541 -0.4513619 +v 1.936904 0.8414088 -0.4850307 +v 1.932327 0.8808045 -0.4895999 +v 1.930043 0.9006268 -0.4901648 +v 1.92893 0.9103561 -0.4900212 +v 1.927595 0.922126 -0.4893771 +v -1.926169 0.5916504 -0.452101 +v 1.902164 0.5201111 -0.4464665 +v -1.905254 1.100391 -0.4471917 +v 1.926939 0.9279162 -0.4890603 +v 1.922596 0.9671807 -0.4835988 +v 1.92201 0.9726775 -0.4823425 +v 1.920532 0.9865171 -0.4791793 +v 1.918557 1.005574 -0.4736571 +v 1.91806 1.010547 -0.471903 +v 1.396752 2.293067 -0.4746422 +v -1.372157 2.323828 -0.4662843 +v -1.442098 2.25 -0.4127373 +v 1.618605 1.857422 -0.4632547 +v 1.905254 1.100391 -0.4471917 +v -1.857242 1.283936 -0.4359227 +v 1.208725 2.25 -0.4785231 +v -1.206319 2.263632 -0.4775705 +v -1.902164 0.5201111 -0.4464665 +v 1.871027 0.4535156 -0.4391584 +v -1.199282 2.27644 -0.4747847 +v 1.206319 2.263632 -0.4775705 +v 1.199282 2.27644 -0.4747847 +v -1.172405 2.299805 -0.4641444 +v 1.517208 0.08554687 -0.4342341 +v -1.594195 0.1516113 -0.4562682 +v 1.372157 2.323828 -0.4662843 +v -1.348671 2.342285 -0.4583034 +v 0.2496645 2.460938 -0.3818792 +v -0.2875735 2.460938 -0.3542112 +v 1.051073 2.339062 -0.4783344 +v 1.419484 0 -0.4825468 +v -1.419484 0 -0.4825468 +v -1.871027 0.4535156 -0.4391584 +v 1.834187 0.3917542 -0.4305113 +v 1.857242 1.283936 -0.4359227 +v -1.794969 1.471875 -0.4213064 +v 1.348671 2.342285 -0.4583034 +v -1.328514 2.348438 -0.4514537 +v 1.172405 2.299805 -0.4641444 +v -1.130274 2.320532 -0.4474651 +v 0.4937121 2.428711 -0.4008302 +v -0.5322768 2.428711 -0.3479912 +v -1.834187 0.3917542 -0.4305113 +v 1.793068 0.3347168 -0.4208601 +v 1.328514 2.348438 -0.4514537 +v -1.313905 2.342285 -0.4464892 +v 1.325555 2.25 -0.4504482 +v 1.310206 2.293067 -0.4452323 +v -1.302772 2.221875 -0.4427061 +v -1.325555 2.25 -0.4504482 +v 1.313905 2.342285 -0.4464892 +v -1.307063 2.323828 -0.444164 +v 1.307063 2.323828 -0.444164 +v -1.310206 2.293067 -0.4452323 +v -1.517208 0.08554687 -0.4342341 +v 1.462754 0.03530274 -0.4186489 +v 1.794969 1.471875 -0.4213064 +v -1.721288 1.66333 -0.4040123 +v -1.793068 0.3347168 -0.4208601 +v 1.749097 0.2822937 -0.4105394 +v -1.290604 2.214844 -0.4385712 +v 1.302772 2.221875 -0.4427061 +v 1.130274 2.320532 -0.4474651 +v -1.075068 2.339062 -0.4256095 +v 1.290604 2.214844 -0.4385712 +v -1.278214 2.2125 -0.4343608 +v 1.278214 2.2125 -0.4343608 +v -1.265824 2.214844 -0.4301504 +v -1.749097 0.2822937 -0.4105394 +v 1.7037 0.234375 -0.399884 +v 0.2875735 2.460938 -0.3542112 +v -0.3226175 2.460938 -0.3226175 +v -1.253656 2.221875 -0.4260154 +v 1.265824 2.214844 -0.4301504 +v 1.982239 0.9147194 -0.4873988 +v 1.993279 0.8443603 -0.4797832 +v 1.447497 0.01583862 -0.4142824 +v -1.462754 0.03530274 -0.4186489 +v 1.971199 0.9850785 -0.4797832 +v 2.073255 0.8726791 -0.4742592 +v 2.059375 0.9405762 -0.4817871 +v -1.230873 2.25 -0.4182733 +v 1.253656 2.221875 -0.4260154 +v 1.721288 1.66333 -0.4040123 +v -1.63905 1.857422 -0.3847099 +v 1.433795 0 -0.4407179 +v -1.433795 0 -0.4407179 +v -1.447497 0.01583862 -0.4142824 +v -1.418251 2.293067 -0.4059121 +v 1.442098 2.25 -0.4127373 +v 2.003972 0.7762114 -0.4569364 +v 1.916685 1.024291 -0.4670552 +v 1.914928 1.042611 -0.4594011 +v 2.045495 1.008473 -0.4742592 +v 2.128894 0.9702232 -0.4748241 +v 2.145245 0.9049009 -0.4674049 +v -1.7037 0.234375 -0.399884 +v 1.614332 0.1516113 -0.378908 +v 1.960505 1.053227 -0.4569364 +v 2.086699 0.8069149 -0.4516754 +v 1.230873 2.25 -0.4182733 +v -1.228422 2.263632 -0.4174407 +v 1.075068 2.339062 -0.4256095 +v -0.9341467 2.371289 -0.3698201 +v 0.9341467 2.371289 -0.3698201 +v -1.221256 2.27644 -0.4150056 +v 1.228422 2.263632 -0.4174407 +v 2.112543 1.035546 -0.4674049 +v 2.191308 1.0034 -0.4666223 +v 2.209792 0.940752 -0.4593313 +v -1.193887 2.299805 -0.405705 +v 1.221256 2.27644 -0.4150056 +v -1.393277 2.323828 -0.3987644 +v 1.418251 2.293067 -0.4059121 +v 2.161082 0.8416306 -0.4451476 +v 2.032051 1.074237 -0.4516754 +v 2.096706 1.098816 -0.4451476 +v 2.172825 1.066047 -0.4593313 +v 2.227696 0.8800722 -0.4374584 +v 2.267441 0.9799585 -0.4501492 +v 2.247131 1.039845 -0.4572945 +v -1.36943 2.342285 -0.3919392 +v 1.393277 2.323828 -0.3987644 +v -1.150984 2.320532 -0.3911258 +v 1.193887 2.299805 -0.405705 +v 1.63905 1.857422 -0.3847099 +v -1.460314 2.25 -0.3427577 +v 1.946446 0.7588161 -0.4595874 +v 0.7328343 2.4 -0.3789181 +v -0.7670754 2.4 -0.3036781 +v 2.013972 0.712483 -0.4188584 +v 1.947073 0.7532948 -0.4570076 +v 1.914343 1.048904 -0.4564865 +v 1.913028 1.063551 -0.4490195 +v 1.912754 1.066602 -0.4474638 +v 1.911298 1.08378 -0.43747 +v 1.909982 1.100391 -0.4265463 +v 1.909416 1.108087 -0.420864 +v 2.287112 0.9219538 -0.4287136 +v 2.226822 1.09973 -0.4501492 +v 2.154922 1.126727 -0.4374584 +v -1.348963 2.348438 -0.3860814 +v 1.36943 2.342285 -0.3919392 +v 2.296875 1.079297 -0.4469531 +v 2.318733 1.022247 -0.4399695 +v 1.947447 0.75 -0.4554682 +v 1.949299 0.7323345 -0.4463206 +v -1.966611 0.75 -0.3639261 +v -1.96379 0.8352356 -0.3634041 +v 1.950506 1.116956 -0.4188584 +v 2.099271 0.7454165 -0.4140358 +v -1.955568 0.9221191 -0.3618826 +v -1.614332 0.1516113 -0.378908 +v 1.536372 0.08554687 -0.3606097 +v 0 2.479468 -0.3757812 +v -0.03376561 2.479468 -0.3742612 +v 1.952906 0.6823932 -0.4133633 +v 1.953475 0.6682512 -0.4017858 +v 1.952309 0.6931034 -0.4212577 +v 1.952009 0.6984853 -0.4252245 +v 1.945485 0.5916504 -0.3600167 +v -1.961089 0.6682434 -0.3629043 +v -1.942304 1.010541 -0.3594281 +v 0.03376561 2.479468 -0.3742612 +v -0.06837831 2.479468 -0.3695077 +v 1.921239 0.5201111 -0.3555299 +v -1.945485 0.5916504 -0.3600167 +v 2.019479 1.135736 -0.4140358 +v 2.175892 0.7824643 -0.4080519 +v -1.334129 2.342285 -0.3818358 +v 1.348963 2.348438 -0.3860814 +v 0.5322768 2.428711 -0.3479912 +v -0.5648931 2.428711 -0.2920827 +v -1.924359 1.100391 -0.3561074 +v 1.345959 2.25 -0.3852215 +v -1.345959 2.25 -0.3852215 +v -1.322825 2.221875 -0.3786005 +v 1.330373 2.293067 -0.3807609 +v 2.207151 1.157735 -0.4287136 +v 2.275017 1.136347 -0.4399695 +v 2.339905 0.9669892 -0.4190186 +v 0.3226175 2.460938 -0.3226175 +v -0.3542112 2.460938 -0.2875735 +v 0.06837831 2.479468 -0.3695077 +v -0.1033993 2.479468 -0.3612757 +v 1.150984 2.320532 -0.3911258 +v -1.875866 1.283936 -0.3471336 +v 2.364213 1.067343 -0.4289029 +v 2.341052 1.121496 -0.4357109 +v -1.327181 2.323828 -0.3798473 +v 1.334129 2.342285 -0.3818358 +v 1.88979 0.4535156 -0.3497103 +v -1.921239 0.5201111 -0.3555299 +v -1.330373 2.293067 -0.3807609 +v 1.327181 2.323828 -0.3798473 +v 2.081896 1.157982 -0.4080519 +v 2.244438 0.8233286 -0.4010035 +v 1.322825 2.221875 -0.3786005 +v -1.310469 2.214844 -0.3750643 +v 1.441458 0 -0.4127284 +v -1.441458 0 -0.4127284 +v 2.386647 1.014892 -0.408479 +v 2.317891 1.175648 -0.4289029 +v 2.253845 1.191605 -0.4190186 +v 1.85258 0.3917542 -0.3428244 +v -1.88979 0.4535156 -0.3497103 +v 0.1033993 2.479468 -0.3612757 +v -0.1383231 2.479468 -0.349397 +v -1.297889 2.2125 -0.3714636 +v 1.310469 2.214844 -0.3750643 +v 2.305507 0.8677115 -0.3929874 +v 2.13818 1.183471 -0.4010035 +v -1.812969 1.471875 -0.3354944 +v 1.875866 1.283936 -0.3471336 +v 2.380176 1.16618 -0.4236804 +v 2.404425 1.114974 -0.4170604 +v 1.297889 2.2125 -0.3714636 +v -1.285308 2.214844 -0.3678629 +v -1.536372 0.08554687 -0.3606097 +v 1.48123 0.03530274 -0.347667 +v 1.811049 0.3347168 -0.335139 +v -1.85258 0.3917542 -0.3428244 +v 1.285308 2.214844 -0.3678629 +v -1.272952 2.221875 -0.3643267 +v 2.295457 1.2281 -0.408479 +v 2.355927 1.217387 -0.4170604 +v 2.427912 1.065376 -0.3972004 +v 2.188755 1.211977 -0.3929874 +v 2.359703 0.9153156 -0.3841003 +v -1.249819 2.25 -0.3577057 +v 1.272952 2.221875 -0.3643267 +v -1.111618 2.339062 -0.3181517 +v 1.111618 2.339062 -0.3181517 +v -0.9659055 2.371289 -0.276448 +v 0.1383231 2.479468 -0.349397 +v -0.1725943 2.479468 -0.3338005 +v 2.414758 1.21309 -0.4109743 +v 2.439911 1.164865 -0.4045528 +v -1.738549 1.66333 -0.3217227 +v 1.812969 1.471875 -0.3354944 +v 2.022931 0.6553853 -0.3655491 +v 1.908799 1.116495 -0.4146562 +v 1.906108 1.160772 -0.3740742 +v 1.905804 1.167006 -0.3672444 +v 1.766637 0.2822937 -0.3269204 +v -1.811049 0.3347168 -0.335139 +v 2.407625 0.965843 -0.3744391 +v 2.234047 1.243278 -0.3841003 +v 2.110535 0.6903168 -0.3613403 +v 1.941546 1.174054 -0.3655491 +v -1.48123 0.03530274 -0.347667 +v 1.465781 0.01583862 -0.3440408 +v 1.249819 2.25 -0.3577057 +v -1.247331 2.263632 -0.3569936 +v -1.240054 2.27644 -0.3549111 +v 1.247331 2.263632 -0.3569936 +v 2.389606 1.261314 -0.4045528 +v 2.33244 1.266984 -0.3972004 +v 2.464273 1.118156 -0.3852884 +v 1.240054 2.27644 -0.3549111 +v -1.212264 2.299805 -0.3469573 +v 1.458318 0 -0.3511515 +v -1.465781 0.01583862 -0.3440408 +v -1.458318 0 -0.3511515 +v 2.189162 0.729454 -0.3561181 +v 2.008215 1.190836 -0.3613403 +v 1.460314 2.25 -0.3427577 +v -1.436166 2.293067 -0.3370897 +v 2.471215 1.216744 -0.3914909 +v 2.445312 1.261963 -0.3977051 +v 1.720784 0.234375 -0.3184353 +v -1.766637 0.2822937 -0.3269204 +v 2.274479 1.277149 -0.3744391 +v 2.449876 1.018996 -0.3641004 +v 2.068627 1.210992 -0.3561181 +v 2.259438 0.7724888 -0.3499667 +v 1.436166 2.293067 -0.3370897 +v -1.410876 2.323828 -0.331154 +v 1.212264 2.299805 -0.3469573 +v -1.168701 2.320532 -0.3344892 +v 0.1725943 2.479468 -0.3338005 +v -0.2056312 2.479468 -0.3145272 +v 2.365244 1.308023 -0.3852884 +v 2.496303 1.172945 -0.3728485 +v 2.41941 1.307182 -0.3914909 +v -1.655487 1.857422 -0.3063519 +v 1.738549 1.66333 -0.3217227 +v 1.953529 0.6669094 -0.4006874 +v 2.321989 0.819113 -0.3429708 +v 2.12318 1.234311 -0.3499667 +v 0.3542112 2.460938 -0.2875735 +v -0.3818792 2.460938 -0.2496645 +v 1.954065 0.6378986 -0.373078 +v 1.63052 0.1516113 -0.3017317 +v -1.720784 0.234375 -0.3184353 +v 1.410876 2.323828 -0.331154 +v -1.386728 2.342285 -0.325486 +v 2.496387 1.364557 -0.369928 +v 2.52345 1.325366 -0.3641478 +v 2.310476 1.313365 -0.3641004 +v 2.487055 1.074477 -0.353181 +v 2.172274 1.260576 -0.3429708 +v 2.377441 0.8690186 -0.3352149 +v 1.386728 2.342285 -0.325486 +v -1.366002 2.348438 -0.3206213 +v 2.469324 1.403748 -0.3641478 +v 2.549663 1.287406 -0.3468075 +v 2.394322 1.350981 -0.3728485 +v 1.168701 2.320532 -0.3344892 +v 1.366002 2.348438 -0.3206213 +v -1.350981 2.342285 -0.3170955 +v 2.519764 1.131987 -0.3417778 +v -1.339534 2.221875 -0.3144088 +v -1.36296 2.25 -0.3199072 +v 1.36296 2.25 -0.3199072 +v 1.347178 2.293067 -0.3162029 +v -1.474958 2.25 -0.2729446 +v 1.655487 1.857422 -0.3063519 +v 2.426421 0.9218973 -0.3267832 +v 2.216309 1.289575 -0.3352149 +v 0.2056312 2.479468 -0.3145272 +v -0.2368542 2.479468 -0.291739 +v 1.350981 2.342285 -0.3170955 +v -1.343945 2.323828 -0.3154442 +v 1.343945 2.323828 -0.3154442 +v -1.347178 2.293067 -0.3162029 +v 0.7670754 2.4 -0.3036781 +v 0.5648931 2.428711 -0.2920827 +v -0.5912873 2.428711 -0.2340852 +v 1.551779 0.08554687 -0.2871605 +v -1.63052 0.1516113 -0.3017317 +v 1.339534 2.221875 -0.3144088 +v -1.327022 2.214844 -0.3114722 +v -0.02772093 2.500195 -0.3021442 +v 0 2.500195 -0.3046875 +v 1.327022 2.214844 -0.3114722 +v -1.314283 2.2125 -0.308482 +v 2.255683 1.321094 -0.3267832 +v 2.469554 0.977441 -0.3177603 +v -0.05544187 2.500195 -0.2996008 +v 0.02772093 2.500195 -0.3021442 +v 1.954075 0.6330495 -0.3679008 +v 2.370861 1.391938 -0.3417778 +v 2.44311 1.441708 -0.3468075 +v 2.574176 1.251908 -0.3179069 +v -1.301543 2.214844 -0.3054918 +v 1.314283 2.2125 -0.308482 +v 2.5375 1.471875 -0.34125 +v 2.565479 1.43865 -0.335918 +v -0.7931541 2.4 -0.2270055 +v 0.9659055 2.371289 -0.276448 +v -0.08379786 2.500195 -0.2914479 +v 0.05544187 2.500195 -0.2996008 +v 2.030503 0.6071285 -0.2970087 +v 1.954061 0.6281199 -0.3624512 +v 1.301543 2.214844 -0.3054918 +v -1.289031 2.221875 -0.3025551 +v 1.905272 1.179205 -0.3529077 +v 1.904828 1.191377 -0.3371536 +v 1.904273 1.213446 -0.3040212 +v 1.904228 1.216823 -0.2981226 +v 1.933974 1.22231 -0.2970087 +v 2.120054 0.6437486 -0.293589 +v 0 2.897168 -0.3645508 +v 0 2.865417 -0.3507544 +v -0.03275651 2.897168 -0.3630762 +v 0.03275651 2.897168 -0.3630762 +v 0.03151684 2.865417 -0.3493356 +v 0 2.925842 -0.3638452 +v -0.03269311 2.925842 -0.3623734 +v -1.264058 2.25 -0.2971288 +v 1.289031 2.221875 -0.3025551 +v 2.509521 1.5051 -0.335918 +v 2.592578 1.40647 -0.3199219 +v 2.507466 1.035342 -0.3082307 +v 2.290797 1.35492 -0.3177603 +v -1.981501 0.75 -0.2713908 +v -1.978659 0.8352356 -0.2710015 +v -0.03206623 2.93882 -0.355425 +v 0 2.93882 -0.3568686 +v 0.03269311 2.925842 -0.3623734 +v -1.970375 0.9221191 -0.2698669 +v -0.03151684 2.865417 -0.3493356 +v -0.06633478 2.897168 -0.3584647 +v 0.06633478 2.897168 -0.3584647 +v 0.06382434 2.865417 -0.3448987 +v -0.06620639 2.925842 -0.3577709 +v -1.975938 0.6682434 -0.2706288 +v 1.954053 0.6274024 -0.3616044 +v -0.0649369 2.93882 -0.3509108 +v 0.03206623 2.93882 -0.355425 +v 0.06620639 2.925842 -0.3577709 +v -1.957011 1.010541 -0.2680365 +v 1.953918 0.6152326 -0.3472421 +v 1.998696 1.237404 -0.293589 +v 2.200376 0.6846517 -0.2893459 +v -0.1121539 2.500195 -0.2832949 +v 0.08379786 2.500195 -0.2914479 +v 1.496084 0.03530274 -0.2768539 +v -1.551779 0.08554687 -0.2871605 +v 1.953641 0.6030724 -0.3314532 +v 1.953258 0.5916504 -0.3151293 +v 1.935785 0.5201111 -0.2651294 +v -1.960216 0.5916504 -0.2684754 +v -1.93893 1.100391 -0.2655601 +v -0.06382434 2.865417 -0.3448987 +v -0.1003091 2.897168 -0.3504787 +v 0.1003091 2.897168 -0.3504787 +v 0.09651295 2.865417 -0.3372149 +v -0.100115 2.925842 -0.3498004 +v -0.09819532 2.93882 -0.3430931 +v 0.0649369 2.93882 -0.3509108 +v 0.100115 2.925842 -0.3498004 +v 1.264058 2.25 -0.2971288 +v -1.26831 2.27644 -0.2347039 +v -1.275752 2.263632 -0.2360811 +v 1.275752 2.263632 -0.2360811 +v -0.03137441 2.950781 -0.3419652 +v 0 2.950781 -0.3448437 +v 2.057412 1.255795 -0.2893459 +v 2.272115 0.729521 -0.284348 +v -1.89007 1.283936 -0.2588681 +v 1.904099 0.4535156 -0.2607896 +v -1.935785 0.5201111 -0.2651294 +v 0.03137441 2.950781 -0.3419652 +v -0.06274882 2.950781 -0.3390867 +v -1.239887 2.299805 -0.229444 +v 1.26831 2.27644 -0.2347039 +v 0.2368542 2.479468 -0.291739 +v -0.2657175 2.479468 -0.2657175 +v 2.540784 1.095291 -0.2982788 +v 1.905263 1.179462 -0.3525744 +v 1.460068 0 -0.3427754 +v -1.460068 0 -0.3427754 +v -0.09488659 2.950781 -0.3315324 +v 0.06274882 2.950781 -0.3390867 +v 0.09819532 2.93882 -0.3430931 +v 0.02931501 2.83125 -0.3249303 +v 0 2.83125 -0.32625 +v -0.09651295 2.865417 -0.3372149 +v -0.1341892 2.897168 -0.338955 +v 0.1341892 2.897168 -0.338955 +v 0.1291108 2.865417 -0.3261273 +v -0.1339295 2.925842 -0.338299 +v 2.335918 0.7780394 -0.2786638 +v 2.110502 1.277278 -0.284348 +v -0.1313614 2.93882 -0.3318122 +v 0.1339295 2.925842 -0.338299 +v 1.866607 0.3917542 -0.2556546 +v -1.904099 0.4535156 -0.2607896 +v -0.1399413 2.500195 -0.270649 +v 0.1121539 2.500195 -0.2832949 +v 0.05936545 2.83125 -0.3208034 +v -0.02931501 2.83125 -0.3249303 +v 0.3818792 2.460938 -0.2496645 +v -0.4052796 2.460938 -0.2095532 +v 1.48048 0.01583862 -0.2739663 +v -1.496084 0.03530274 -0.2768539 +v 1.89007 1.283936 -0.2588681 +v -1.826696 1.471875 -0.2501884 +v 1.239887 2.299805 -0.229444 +v -1.195331 2.320532 -0.2211988 +v 2.418598 1.477206 -0.3179069 +v 2.482422 1.53728 -0.3199219 +v 2.61792 1.376376 -0.2932617 +v 0.08977037 2.83125 -0.3136564 +v -0.05936545 2.83125 -0.3208034 +v 0 2.971326 -0.3037525 +v 1.474644 0 -0.2729746 +v -1.48048 0.01583862 -0.2739663 +v 0.09488659 2.950781 -0.3315324 +v 0.1313614 2.93882 -0.3318122 +v -0.1269352 2.950781 -0.3206317 +v 2.158344 1.30165 -0.2786638 +v 2.392433 0.8298901 -0.2723621 +v 1.824761 0.3347168 -0.2499233 +v -1.866607 0.3917542 -0.2556546 +v -1.474644 0 -0.2729746 +v -1.450567 2.293067 -0.268431 +v 1.474958 2.25 -0.2729446 +v 0.05527172 2.971326 -0.2986814 +v -0.05527172 2.971326 -0.2986814 +v 2.596138 1.220104 -0.277446 +v 2.349841 1.428635 -0.2982788 +v 2.572754 1.58183 -0.312572 +v 2.601648 1.554408 -0.3076881 +v -0.08357998 2.971326 -0.2920273 +v -0.1291108 2.865417 -0.3261273 +v -0.1674362 2.897168 -0.3238246 +v 0.1674362 2.897168 -0.3238246 +v 0.1610996 2.865417 -0.3115695 +v -0.1671121 2.925842 -0.3231979 +v -0.1639078 2.93882 -0.3170007 +v 0.1671121 2.925842 -0.3231979 +v 0.1200909 2.83125 -0.3033434 +v -0.08977037 2.83125 -0.3136564 +v -1.425025 2.323828 -0.2637043 +v 1.450567 2.293067 -0.268431 +v 2.60625 1.692334 -0.2847949 +v 2.576195 1.71422 -0.280345 +v 2.629634 1.527848 -0.2930363 +v 1.826696 1.471875 -0.2501884 +v -1.751713 1.66333 -0.2399185 +v 2.442307 0.8847561 -0.2655113 +v 2.201317 1.328704 -0.2723621 +v 1.780013 0.2822937 -0.2437945 +v -1.824761 0.3347168 -0.2499233 +v 1.195331 2.320532 -0.2211988 +v -1.136947 2.339062 -0.2103948 +v -0.166728 2.500195 -0.2550221 +v 0.1399413 2.500195 -0.270649 +v -0.1583849 2.950781 -0.3063192 +v 0.1269352 2.950781 -0.3206317 +v 0.1639078 2.93882 -0.3170007 +v 0.08357998 2.971326 -0.2920273 +v -0.1118097 2.971326 -0.2824255 +v -1.400634 2.342285 -0.2591907 +v 1.425025 2.323828 -0.2637043 +v 1.733814 0.234375 -0.2374669 +v -1.780013 0.2822937 -0.2437945 +v 2.239798 1.358236 -0.2655113 +v 2.486186 0.9423205 -0.2581803 +v 0 2.758301 -0.260293 +v 0.0473637 2.758301 -0.2559475 +v -0.1610996 2.865417 -0.3115695 +v 0.1498449 2.83125 -0.2898027 +v -0.1200909 2.83125 -0.3033434 +v -1.3797 2.348438 -0.2553169 +v 1.400634 2.342285 -0.2591907 +v -0.1994857 2.897168 -0.3051274 +v 0.1994857 2.897168 -0.3051274 +v 0.1919362 2.865417 -0.2935798 +v -0.1990996 2.925842 -0.3045368 +v -0.195282 2.93882 -0.2986974 +v 0.1990996 2.925842 -0.3045368 +v 0.2657175 2.479468 -0.2657175 +v -0.291739 2.479468 -0.2368542 +v 1.751713 1.66333 -0.2399185 +v -1.668022 1.857422 -0.2284559 +v -0.0473637 2.758301 -0.2559475 +v 0.07158808 2.758301 -0.2489824 +v 0.1583849 2.950781 -0.3063192 +v 0.1118097 2.971326 -0.2824255 +v -0.1395119 2.971326 -0.2698184 +v -1.364528 2.342285 -0.2525093 +v 1.3797 2.348438 -0.2553169 +v 2.45708 1.567374 -0.2932617 +v 2.547084 1.735418 -0.2669953 +v 2.655805 1.50301 -0.2686166 +v 1.376628 2.25 -0.2547483 +v 1.360687 2.293067 -0.2517985 +v -1.376628 2.25 -0.2547483 +v -1.352967 2.221875 -0.2503698 +v 1.642866 0.1516113 -0.2250105 +v -1.733814 0.234375 -0.2374669 +v 1.136947 2.339062 -0.2103948 +v -0.9879146 2.371289 -0.182816 +v 2.640625 1.349414 -0.2559375 +v 2.396636 1.50901 -0.277446 +v 2.274166 1.39004 -0.2581803 +v 2.524717 1.002266 -0.2504374 +v -1.357422 2.323828 -0.2511943 +v 1.364528 2.342285 -0.2525093 +v 0.195282 2.93882 -0.2986974 +v -0.1887019 2.950781 -0.2886327 +v -1.360687 2.293067 -0.2517985 +v 1.357422 2.323828 -0.2511943 +v 1.952819 0.5814533 -0.2990634 +v -0.192044 2.500195 -0.2365451 +v 0.166728 2.500195 -0.2550221 +v 1.352967 2.221875 -0.2503698 +v -1.34033 2.214844 -0.2480313 +v 0.09581246 2.758301 -0.2420174 +v -0.07158808 2.758301 -0.2489824 +v 2.636305 1.670448 -0.280345 +v -0.1919362 2.865417 -0.2935798 +v 0.1785272 2.83125 -0.2730698 +v -0.1498449 2.83125 -0.2898027 +v 1.34033 2.214844 -0.2480313 +v -1.327462 2.2125 -0.2456501 +v 1.327462 2.2125 -0.2456501 +v -1.314595 2.214844 -0.243269 +v 2.558549 1.064277 -0.2423515 +v 2.665416 1.64925 -0.2669953 +v 1.668022 1.857422 -0.2284559 +v -1.606448 1.991573 -0.2248686 +v -1.608344 1.987496 -0.225 +v -1.610083 1.983821 -0.2248933 +v -1.618265 1.967303 -0.2216402 +v -1.623818 1.955182 -0.2224016 +v 0.1887019 2.950781 -0.2886327 +v 0.1395119 2.971326 -0.2698184 +v -0.1662163 2.971326 -0.2542394 +v 1.314595 2.214844 -0.243269 +v -1.301958 2.221875 -0.2409305 +v -0.2297757 2.897168 -0.2830202 +v 0.2297757 2.897168 -0.2830202 +v 0.2210798 2.865417 -0.2723093 +v -0.229331 2.925842 -0.2824724 +v 0 2.52356 -0.2453125 +v -0.2249336 2.93882 -0.2770561 +v 0.229331 2.925842 -0.2824724 +v -0.04308473 2.986816 -0.2328244 +v 0 2.986816 -0.2367774 +v 0.5912873 2.428711 -0.2340852 +v -0.6113896 2.428711 -0.1749834 +v 0.7931541 2.4 -0.2270055 +v -0.09581246 2.758301 -0.2420174 +v 0.1191237 2.758301 -0.2299407 +v -1.278297 2.25 -0.236552 +v 1.301958 2.221875 -0.2409305 +v 0.04463781 2.52356 -0.2412171 +v -0.04463781 2.52356 -0.2412171 +v 1.563528 0.08554687 -0.2141443 +v -1.642866 0.1516113 -0.2250105 +v 2.033422 0.5885257 -0.2551228 +v 1.952795 0.5809026 -0.2981957 +v -0.2173544 2.950781 -0.2677206 +v 0.2249336 2.93882 -0.2770561 +v -0.06512061 2.986816 -0.2264886 +v 0.04308473 2.986816 -0.2328244 +v 2.332076 1.459649 -0.2423515 +v 2.6147 1.193224 -0.2254249 +v 1.951609 0.5597389 -0.2588275 +v 1.952279 0.5709118 -0.280802 +v 1.904141 1.223339 -0.286743 +v 1.904092 1.232477 -0.2690536 +v 1.904102 1.236312 -0.2608027 +v 1.278297 2.25 -0.236552 +v 1.904106 1.237662 -0.2578956 +v 1.931055 1.240913 -0.2551228 +v 2.127394 0.6078449 -0.2107819 +v 2.209022 0.6501096 -0.2077355 +v 1.928136 1.259516 -0.213237 +v 1.991356 1.273307 -0.2107819 +v -0.2210798 2.865417 -0.2723093 +v 0.2056348 2.83125 -0.2532852 +v -0.1785272 2.83125 -0.2730698 +v 2.519861 1.755241 -0.2447456 +v 2.679253 1.480757 -0.234429 +v 2.434375 1.594336 -0.2559375 +v 2.464923 1.683668 -0.2347668 +v 2.692639 1.629427 -0.2447456 +v 0.4052796 2.460938 -0.2095532 +v -0.4242159 2.460938 -0.1679432 +v -0.08715649 2.986816 -0.2201528 +v 0.06512061 2.986816 -0.2264886 +v -0.2154466 2.500195 -0.2154466 +v 0.192044 2.500195 -0.2365451 +v 0.09029824 2.52356 -0.2280887 +v -0.09029824 2.52356 -0.2280887 +v -0.1191237 2.758301 -0.2299407 +v 0.1424349 2.758301 -0.2178641 +v 2.048766 1.290337 -0.2077355 +v 2.281889 0.6963931 -0.2041473 +v 0.2173544 2.950781 -0.2677206 +v 0.1662163 2.971326 -0.2542394 +v -0.1914546 2.971326 -0.2358192 +v 0.291739 2.479468 -0.2368542 +v -0.3145272 2.479468 -0.2056312 +v -1.563528 0.08554687 -0.2141443 +v 1.507412 0.03530274 -0.2064584 +v 2.64209 1.8013 -0.2588196 +v 2.673798 1.784582 -0.2547755 +v 2.346658 0.746372 -0.2000663 +v 2.100728 1.310406 -0.2041473 +v -0.1126707 2.52356 -0.2179072 +v -0.2577763 2.897168 -0.2577763 +v 0.2577763 2.897168 -0.2577763 +v 0.2480208 2.865417 -0.2480208 +v -0.2572774 2.925842 -0.2572774 +v -0.2523442 2.93882 -0.2523442 +v 0.2572774 2.925842 -0.2572774 +v -0.1083617 2.986816 -0.2091672 +v 0.08715649 2.986816 -0.2201528 +v 1.951868 0.5639347 -0.267342 +v 2.610382 1.818018 -0.2547755 +v 2.70451 1.768389 -0.2426434 +v 2.147605 1.333317 -0.2000663 +v 2.403992 0.7997223 -0.195542 +v 2.378074 1.53589 -0.2254249 +v 2.659814 1.326627 -0.2079492 +v 0.2523442 2.93882 -0.2523442 +v -0.2438414 2.950781 -0.2438414 +v -1.507412 0.03530274 -0.2064584 +v 1.491689 0.01583862 -0.2043051 +v 0.9879146 2.371289 -0.182816 +v -0.8112269 2.4 -0.1501195 +v 1.476976 0 -0.2618065 +v -1.491689 0.01583862 -0.2043051 +v -1.476976 0 -0.2618065 +v -0.1424349 2.758301 -0.2178641 +v -0.2056348 2.83125 -0.2532852 +v 0.1632449 2.758301 -0.2009595 +v 1.486126 2.25 -0.2035431 +v -1.598968 2.00848 -0.2214844 +v -1.486126 2.25 -0.2035431 +v -1.461551 2.293067 -0.2001772 +v 2.454554 0.8561205 -0.1906235 +v 2.189758 1.358871 -0.195542 +v -0.2480208 2.865417 -0.2480208 +v 0.2306936 2.83125 -0.2306936 +v -1.989053 0.8352356 -0.1794511 +v -1.99191 0.75 -0.1797089 +v -1.983603 0.6682595 -0.2067323 +v -1.986175 0.6807608 -0.1976481 +v -1.987112 0.6854548 -0.1930541 +v -1.988944 0.6946442 -0.1840607 +v -1.980725 0.9221191 -0.1786998 +v 0.1126707 2.52356 -0.2179072 +v -0.1342374 2.52356 -0.2053255 +v -1.970424 0.6097623 -0.225 +v -1.972276 0.617406 -0.2247144 +v -1.976689 0.6363411 -0.2214844 +v -1.978486 0.6443599 -0.218982 +v -1.982272 0.6618614 -0.2109375 +v -1.982955 0.6651096 -0.2090213 +v -1.967291 1.010541 -0.1774877 +v -0.1295669 2.986816 -0.1981816 +v 0.1083617 2.986816 -0.2091672 +v 2.717029 1.611667 -0.2135962 +v -1.965862 0.5916504 -0.2234043 +v 1.461551 2.293067 -0.2001772 +v -1.435814 2.323828 -0.1966523 +v -1.949115 1.100391 -0.1758479 +v 0.2438414 2.950781 -0.2438414 +v 0.1914546 2.971326 -0.2358192 +v -0.2147854 2.971326 -0.2147854 +v 1.951735 0.5616795 -0.2629915 +v 2.57967 1.834211 -0.2426434 +v 2.73323 1.753246 -0.2224231 +v -0.2365451 2.500195 -0.192044 +v 0.2154466 2.500195 -0.2154466 +v -1.899998 1.283936 -0.1714166 +v 2.22755 1.386871 -0.1906235 +v 2.499008 0.9152428 -0.1853602 +v -1.94537 0.520127 -0.1815753 +v -1.963573 0.5829123 -0.2214844 +v -1.958607 0.5646932 -0.2149741 +v -1.956325 0.5566222 -0.2109375 +v -1.951542 0.5402594 -0.2003186 +v -1.948983 0.5317873 -0.1933241 +v -1.948777 0.5311047 -0.1927605 +v 1.945954 0.5201111 -0.1755628 +v 1.914101 0.4535156 -0.172689 +v 1.435814 2.323828 -0.1966523 +v -1.411239 2.342285 -0.1932864 +v 1.485502 0 -0.2036561 +v -1.485502 0 -0.2036561 +v 1.876412 0.3917542 -0.1692887 +v -1.914101 0.4535156 -0.172689 +v -1.944495 0.5173061 -0.1787011 +v -1.943643 0.5146211 -0.17536 +v 0.03585241 2.683594 -0.1937419 +v 0 2.683594 -0.1970312 +v 1.411239 2.342285 -0.1932864 +v -1.390147 2.348438 -0.1903976 +v 1.899998 1.283936 -0.1714166 +v -1.836292 1.471875 -0.1656691 +v 1.950324 0.5411298 -0.214833 +v 1.951183 0.5532039 -0.244806 +v 2.036341 0.5699229 -0.213237 +v 2.684375 1.906641 -0.2355469 +v 2.718474 1.894619 -0.2318664 +v 2.538018 0.9767656 -0.1798012 +v 2.261343 1.417118 -0.1853602 +v 1.904114 1.240868 -0.2509979 +v -0.2830202 2.897168 -0.2297757 +v 0.2830202 2.897168 -0.2297757 +v 0.2723093 2.865417 -0.2210798 +v -0.2824724 2.925842 -0.229331 +v -0.2770561 2.93882 -0.2249336 +v 0.2824724 2.925842 -0.229331 +v 0.07252616 2.683594 -0.1831973 +v -0.03585241 2.683594 -0.1937419 +v 2.415185 1.617123 -0.2079492 +v 2.69907 1.461949 -0.1904736 +v 1.834347 0.3347168 -0.1654936 +v -1.876412 0.3917542 -0.1692887 +v 1.390147 2.348438 -0.1903976 +v -1.37486 2.342285 -0.1883039 +v 1.904197 1.248521 -0.2326182 +v 1.904329 1.255452 -0.2139542 +v 0.1342374 2.52356 -0.2053255 +v -0.15462 2.52356 -0.1904491 +v 2.650276 1.918663 -0.2318664 +v 2.751502 1.882974 -0.2208252 +v 1.387051 2.25 -0.1899735 +v 1.369439 2.293067 -0.188069 +v -1.363211 2.221875 -0.1867084 +v -1.387051 2.25 -0.1899735 +v -0.1484969 2.986816 -0.1828042 +v 0.1295669 2.986816 -0.1981816 +v 0.1840549 2.758301 -0.1840549 +v -0.1632449 2.758301 -0.2009595 +v -0.2306936 2.83125 -0.2306936 +v 1.37486 2.342285 -0.1883039 +v -1.3677 2.323828 -0.1873232 +v -0.2677206 2.950781 -0.2173544 +v 0.2770561 2.93882 -0.2249336 +v -1.369439 2.293067 -0.188069 +v 1.3677 2.323828 -0.1873232 +v 2.572246 1.040365 -0.173996 +v 1.361669 2.221875 -0.1870019 +v -1.760914 1.66333 -0.1588686 +v 1.836292 1.471875 -0.1656691 +v 1.789363 0.2822937 -0.1614353 +v -1.834347 0.3347168 -0.1654936 +v 0.3145272 2.479468 -0.2056312 +v -0.3338005 2.479468 -0.1725943 +v 1.357572 2.214844 -0.1224793 +v -1.344539 2.2125 -0.1213035 +v -1.357572 2.214844 -0.1224793 +v -0.2723093 2.865417 -0.2210798 +v 0.2532852 2.83125 -0.2056348 +v 1.344539 2.2125 -0.1213035 +v -1.331506 2.214844 -0.1201277 +v -0.03639261 2.55 -0.1966611 +v 0 2.55 -0.2 +v 1.950642 0.5454796 -0.2262862 +v 2.55095 1.849354 -0.2224231 +v 2.758961 1.739679 -0.1941147 +v 2.495471 1.773001 -0.2135962 +v 0.2147854 2.971326 -0.2147854 +v -0.2358192 2.971326 -0.1914546 +v 0.2677206 2.950781 -0.2173544 +v 1.742921 0.234375 -0.1572453 +v -1.789363 0.2822937 -0.1614353 +v 1.331506 2.214844 -0.1201277 +v -1.318707 2.221875 -0.1189729 +v 2.617249 1.930307 -0.2208252 +v 2.782387 1.872085 -0.2024231 +v 2.629011 1.1725 -0.1618435 +v 2.318379 1.483561 -0.173996 +v 0.1078174 2.683594 -0.1649143 +v -0.07252616 2.683594 -0.1831973 +v -0.07361894 2.55 -0.1859577 +v 0.03639261 2.55 -0.1966611 +v -1.294741 2.25 -0.1168108 +v 1.318707 2.221875 -0.1189729 +v -1.672403 1.857422 -0.1898671 +v -1.676783 1.857422 -0.1512784 +v 1.760914 1.66333 -0.1588686 +v 1.651496 0.1516113 -0.1489969 +v -1.742921 0.234375 -0.1572453 +v -0.2550221 2.500195 -0.166728 +v 0.2365451 2.500195 -0.192044 +v 0 2.996594 -0.1401245 +v -0.02549748 2.996594 -0.1377852 +v 1.294741 2.25 -0.1168108 +v -1.292164 2.263632 -0.1165782 +v 0.15462 2.52356 -0.1904491 +v -0.1734621 2.52356 -0.1734621 +v -1.284626 2.27644 -0.1158982 +v 1.292164 2.263632 -0.1165782 +v 0.1492403 2.986816 -0.1838228 +v -0.1674269 2.986816 -0.1674269 +v 2.737207 2.006268 -0.2158777 +v 2.746577 1.946494 -0.2221855 +v 2.77468 1.998369 -0.2125046 +v 2.446438 1.701711 -0.1904736 +v -1.255837 2.299805 -0.1133008 +v 1.284626 2.27644 -0.1158982 +v 2.737643 1.596656 -0.1735469 +v 0.4242159 2.460938 -0.1679432 +v 0.6113896 2.428711 -0.1749834 +v -0.4386383 2.460938 -0.1255409 +v 0.02549748 2.996594 -0.1377852 +v 2.699734 2.014168 -0.2125046 +v 2.779392 1.937844 -0.2111302 +v -0.1840549 2.758301 -0.1840549 +v -0.2532852 2.83125 -0.2056348 +v 0.2009595 2.758301 -0.1632449 +v -0.3051274 2.897168 -0.1994857 +v 0.3051274 2.897168 -0.1994857 +v 0.2935798 2.865417 -0.1919362 +v -0.3045368 2.925842 -0.1990996 +v 1.255837 2.299805 -0.1133008 +v -1.210708 2.320532 -0.1092293 +v 0.3045368 2.925842 -0.1990996 +v -0.2986974 2.93882 -0.195282 +v -1.624671 1.955183 -0.2160035 +v -1.629531 1.946186 -0.2109375 +v -1.630031 1.945291 -0.2102927 +v -1.637766 1.931803 -0.198447 +v -1.64049 1.927279 -0.1930078 +v -1.643769 1.921833 -0.1864584 +v 1.676783 1.857422 -0.1512784 +v -0.09153045 2.55 -0.1766784 +v 0.07361894 2.55 -0.1859577 +v 0.8112269 2.4 -0.1501195 +v -0.6253207 2.428711 -0.1157171 +v 0.05157909 2.996594 -0.1302861 +v -0.05157909 2.996594 -0.1302861 +v 2.674609 1.309058 -0.1492969 +v 2.363763 1.556614 -0.1618435 +v 1.571741 0.08554687 -0.1418015 +v -1.651496 0.1516113 -0.1489969 +v -1.618656 1.966511 -0.2214844 +v -1.848902 1.986841 -0.225 +v -1.848593 1.965898 -0.2214844 +v -2.574616 1.034862 -0.225 +v -2.633375 1.103906 -0.225 +v -2.615305 1.12183 -0.2214844 +v -2.559087 1.053881 -0.2214844 +v -2.264143 0.7724167 -0.225 +v -2.353297 0.8352539 -0.225 +v -2.346958 0.8573853 -0.2214844 +v -2.261369 0.7957153 -0.2214844 +v -2.062104 0.6544327 -0.225 +v -2.167115 0.7120239 -0.225 +v -2.168144 0.7366486 -0.2214844 +v -2.067169 0.6805985 -0.2214844 +v -2.057039 0.6282669 -0.2214844 +v -2.110719 1.982227 -0.225 +v -2.102413 1.961571 -0.2214844 +v -2.333863 1.969702 -0.225 +v -2.319091 1.949825 -0.2214844 +v -2.43075 1.959238 -0.225 +v -2.413284 1.940011 -0.2214844 +v -2.594789 1.927432 -0.225 +v -2.51775 1.945312 -0.225 +v -2.497932 1.926952 -0.2214844 +v -2.572946 1.910183 -0.2214844 +v -2.71869 1.877829 -0.225 +v -2.661793 1.905102 -0.225 +v -2.638241 1.889242 -0.2214844 +v -2.693728 1.863664 -0.2214844 +v -2.801869 1.806473 -0.225 +v -2.765406 1.845117 -0.225 +v -2.739322 1.832986 -0.2214844 +v -2.774935 1.796744 -0.2214844 +v -2.843739 1.709409 -0.225 +v -2.828004 1.761401 -0.225 +v -2.800481 1.754475 -0.2214844 +v -2.815872 1.705715 -0.2214844 +v -2.845759 1.58568 -0.225 +v -2.849 1.65 -0.225 +v -2.821022 1.65 -0.2214844 +v -2.817943 1.589337 -0.2214844 +v -2.819502 1.451875 -0.225 +v -2.835963 1.519519 -0.225 +v -2.808631 1.526316 -0.2214844 +v -2.792968 1.46135 -0.2214844 +v -2.766145 1.313567 -0.225 +v -2.796266 1.383106 -0.225 +v -2.770837 1.394854 -0.2214844 +v -2.742122 1.327241 -0.2214844 +v -2.684809 1.17361 -0.225 +v -2.729029 1.243616 -0.225 +v -2.706707 1.258923 -0.2214844 +v -2.664473 1.190315 -0.2214844 +v -2.434687 0.9001786 -0.225 +v -2.508424 0.9668335 -0.225 +v -2.495701 0.9868816 -0.2214844 +v -2.42503 0.9212452 -0.2214844 +v -2.616631 1.944681 -0.2214844 +v -2.537568 1.963673 -0.2214844 +v -2.685345 1.920963 -0.2214844 +v -2.743652 1.891994 -0.2214844 +v -2.79149 1.857249 -0.2214844 +v -2.828802 1.816201 -0.2214844 +v -2.855527 1.768328 -0.2214844 +v -2.871606 1.713102 -0.2214844 +v -2.876978 1.65 -0.2214844 +v -2.873575 1.582023 -0.2214844 +v -2.863295 1.512722 -0.2214844 +v -2.846035 1.4424 -0.2214844 +v -2.821694 1.371357 -0.2214844 +v -2.790167 1.299892 -0.2214844 +v -2.751352 1.228308 -0.2214844 +v -2.705145 1.156905 -0.2214844 +v -2.651444 1.085983 -0.2214844 +v -2.590146 1.015843 -0.2214844 +v -2.521147 0.9467854 -0.2214844 +v -2.444345 0.8791118 -0.2214844 +v -2.359636 0.8131225 -0.2214844 +v -2.266917 0.749118 -0.2214844 +v -2.166086 0.6873993 -0.2214844 +v -1.849212 2.007784 -0.2214844 +v -2.119025 2.002882 -0.2214844 +v -2.348636 1.989579 -0.2214844 +v -2.448217 1.978464 -0.2214844 +v 0.2986974 2.93882 -0.195282 +v -0.2886327 2.950781 -0.1887019 +v 2.586363 1.941196 -0.2024231 +v 2.810059 1.862329 -0.1766602 +v 2.525218 1.862921 -0.1941147 +v -1.621206 1.961595 -0.2196142 +v 2.810976 1.990717 -0.2023853 +v -1.578525 2.053272 -0.2161983 +v -1.596645 2.014214 -0.2186893 +v -2.072075 0.7059423 -0.2109375 +v -2.052133 0.602923 -0.2109375 +v -2.165089 0.6635482 -0.2109375 +v -2.169141 0.7604997 -0.2109375 +v -2.465134 1.997087 -0.2109375 +v -2.362944 2.008832 -0.2109375 +v -2.556764 1.981457 -0.2109375 +v -2.637787 1.961389 -0.2109375 +v -2.12707 2.02289 -0.2109375 +v -1.849512 2.028069 -0.2109375 +v -2.269604 0.7265513 -0.2109375 +v -2.365776 0.7916862 -0.2109375 +v -2.453699 0.8587069 -0.2109375 +v -2.533471 0.9273671 -0.2109375 +v -2.605188 0.9974208 -0.2109375 +v -2.668946 1.068622 -0.2109375 +v -2.724843 1.140724 -0.2109375 +v -2.772974 1.213481 -0.2109375 +v -2.813435 1.286648 -0.2109375 +v -2.846323 1.359977 -0.2109375 +v -2.871736 1.433223 -0.2109375 +v -2.889768 1.50614 -0.2109375 +v -2.900517 1.57848 -0.2109375 +v -2.904078 1.65 -0.2109375 +v -2.898597 1.71668 -0.2109375 +v -2.882185 1.775036 -0.2109375 +v -2.854889 1.825624 -0.2109375 +v -2.816755 1.868999 -0.2109375 +v -2.767829 1.905714 -0.2109375 +v -2.708158 1.936326 -0.2109375 +v -1.590812 2.028804 -0.2109375 +v -1.848293 1.945613 -0.2109375 +v -2.094368 1.941563 -0.2109375 +v -2.304782 1.930572 -0.2109375 +v -2.396367 1.921388 -0.2109375 +v -2.478736 1.909168 -0.2109375 +v -2.55179 1.893476 -0.2109375 +v -2.615428 1.873879 -0.2109375 +v -2.669551 1.849944 -0.2109375 +v -2.714057 1.821236 -0.2109375 +v -2.748848 1.787321 -0.2109375 +v -2.773822 1.747766 -0.2109375 +v -2.78888 1.702137 -0.2109375 +v -2.793922 1.65 -0.2109375 +v -2.791001 1.592879 -0.2109375 +v -2.782158 1.532899 -0.2109375 +v -2.767267 1.470528 -0.2109375 +v -2.746208 1.406234 -0.2109375 +v -2.718855 1.340485 -0.2109375 +v -2.685085 1.27375 -0.2109375 +v -2.644776 1.206496 -0.2109375 +v -2.597804 1.139191 -0.2109375 +v -2.544045 1.072303 -0.2109375 +v -2.483377 1.0063 -0.2109375 +v -2.415676 0.9416502 -0.2109375 +v -2.340818 0.8788216 -0.2109375 +v -2.258681 0.8182821 -0.2109375 +v -1.151573 2.339062 -0.1038942 +v 1.210708 2.320532 -0.1092293 +v -0.2935798 2.865417 -0.1919362 +v 0.2730698 2.83125 -0.1785272 +v 2.663438 2.02182 -0.2023853 +v 2.81168 1.928893 -0.193536 +v -1.592099 2.025433 -0.2132206 +v 0.09153045 2.55 -0.1766784 +v -0.109442 2.55 -0.1673991 +v 0.1393221 2.683594 -0.1393221 +v -0.1078174 2.683594 -0.1649143 +v 0.2886327 2.950781 -0.1887019 +v -0.2542394 2.971326 -0.1662163 +v 0.2358192 2.971326 -0.1914546 +v -1.587518 2.037775 -0.2037027 +v -1.580598 2.053272 -0.1979391 +v 2.808466 2.047202 -0.204431 +v 2.76886 2.053288 -0.2076759 +v 0.1734621 2.52356 -0.1734621 +v -0.1904491 2.52356 -0.15462 +v 1.949841 0.534709 -0.1962053 +v 1.949185 0.5262058 -0.1668393 +v 2.038502 0.556155 -0.1656394 +v 0.1674269 2.986816 -0.1674269 +v -0.1828042 2.986816 -0.1484969 +v 1.51533 0.03530274 -0.1367121 +v -1.571741 0.08554687 -0.1418015 +v 1.904485 1.261255 -0.1963991 +v 2.474858 1.788012 -0.1735469 +v 2.780709 1.728213 -0.1577182 +v 1.904739 1.26822 -0.1718546 +v 1.904803 1.269691 -0.1660735 +v 1.90468 1.266837 -0.1772885 +v 1.925976 1.273284 -0.1656394 +v 2.13011 0.5945588 -0.1637323 +v 2.846828 2.041307 -0.1946962 +v 2.729254 2.059373 -0.204431 +v 2.844918 1.983562 -0.1855199 +v -2.170073 0.7828037 -0.1933594 +v -2.076663 0.7296423 -0.1933594 +v -2.047546 0.5792231 -0.1933594 +v -1.848012 1.926644 -0.1933594 +v -2.086844 1.922854 -0.1933594 +v -2.291402 1.912568 -0.1933594 +v -2.460786 1.892537 -0.1933594 +v -2.532006 1.877852 -0.1933594 +v -2.594096 1.859513 -0.1933594 +v -2.646942 1.837113 -0.1933594 +v -2.690431 1.810248 -0.1933594 +v -2.724453 1.778509 -0.1933594 +v -2.748893 1.741493 -0.1933594 +v -2.763639 1.698792 -0.1933594 +v -2.76858 1.65 -0.1933594 +v -2.765807 1.596191 -0.1933594 +v -2.757402 1.539055 -0.1933594 +v -2.743234 1.47911 -0.1933594 +v -2.723176 1.416876 -0.1933594 +v -2.697096 1.352871 -0.1933594 +v -2.664866 1.287615 -0.1933594 +v -2.626356 1.221627 -0.1933594 +v -2.581437 1.155425 -0.1933594 +v -2.529979 1.08953 -0.1933594 +v -2.471853 1.024459 -0.1933594 +v -2.406928 0.9607315 -0.1933594 +v -2.335077 0.8988673 -0.1933594 +v -2.256168 0.839385 -0.1933594 +v -2.790438 1.918545 -0.1933594 +v -2.72949 1.950692 -0.1933594 +v -2.840381 1.879987 -0.1933594 +v -2.879285 1.834436 -0.1933594 +v -2.907115 1.78131 -0.1933594 +v -2.923838 1.720026 -0.1933594 +v -2.92942 1.65 -0.1933594 +v -2.925711 1.575168 -0.1933594 +v -2.914524 1.499983 -0.1933594 +v -2.895769 1.424641 -0.1933594 +v -2.869356 1.349335 -0.1933594 +v -2.835193 1.274262 -0.1933594 +v -2.793192 1.199616 -0.1933594 +v -2.743262 1.125593 -0.1933594 +v -2.685313 1.052387 -0.1933594 +v -2.619254 0.980194 -0.1933594 +v -2.544995 0.9092084 -0.1933594 +v -2.462446 0.8396255 -0.1933594 +v -2.371517 0.7716405 -0.1933594 +v -2.272117 0.7054483 -0.1933594 +v -2.164157 0.6412442 -0.1933594 +v -2.657571 1.977012 -0.1933594 +v -2.574714 1.998088 -0.1933594 +v -2.480954 2.014502 -0.1933594 +v -2.376325 2.026836 -0.1933594 +v -2.134593 2.041599 -0.1933594 +v -1.849792 2.047038 -0.1933594 +v -1.585881 2.042599 -0.1985038 +v -1.584147 2.047712 -0.1929951 +v 1.98864 1.286594 -0.1637323 +v 2.214587 0.6278794 -0.1112869 +v -1.000623 2.371289 -0.09027563 +v 1.151573 2.339062 -0.1038942 +v 0.3338005 2.479468 -0.1725943 +v -0.349397 2.479468 -0.1383231 +v 0.0766775 2.996594 -0.1172836 +v -0.0766775 2.996594 -0.1172836 +v 2.714349 1.447449 -0.1367503 +v 2.400391 1.634692 -0.1492969 +v 1.986632 1.296414 -0.1129189 +v 2.043201 1.312567 -0.1112869 +v 2.288179 0.6750733 -0.1093646 +v 2.804688 2.098096 -0.2007129 +v 2.846765 2.093642 -0.1975767 +v 1.499525 0.01583862 -0.1352862 +v -1.51533 0.03530274 -0.1367121 +v -0.2009595 2.758301 -0.1632449 +v -0.2730698 2.83125 -0.1785272 +v 0.2178641 2.758301 -0.1424349 +v -0.270649 2.500195 -0.1399413 +v 0.2550221 2.500195 -0.166728 +v -0.1254317 2.55 -0.1544102 +v 0.109442 2.55 -0.1673991 +v 2.690892 2.065268 -0.1946962 +v 2.76261 2.102549 -0.1975767 +v 2.88752 2.089328 -0.1881683 +v 1.489967 0 -0.1731963 +v -1.489967 0 -0.1731963 +v -1.499525 0.01583862 -0.1352862 +v 2.353569 0.7259919 -0.1071784 +v 2.094438 1.331726 -0.1093646 +v -1.469228 2.293067 -0.1325528 +v -1.493932 2.25 -0.1347817 +v -1.582327 2.053272 -0.1862343 +v -1.57947 2.062608 -0.1726028 +v -1.57883 2.064839 -0.16875 +v -1.576412 2.073827 -0.1506242 +v 1.493932 2.25 -0.1347817 +v 2.840609 1.920873 -0.1689042 +v 2.629496 2.028975 -0.1855199 +v 2.558692 1.950952 -0.1766602 +v 2.882701 2.035795 -0.1784715 +v 2.845203 2.140432 -0.1951012 +v 2.89012 2.137416 -0.1920527 +v -1.443357 2.323828 -0.1302187 +v 1.469228 2.293067 -0.1325528 +v 2.140693 1.353697 -0.1071784 +v 2.41143 0.7803074 -0.1047546 +v 0 2.564488 -0.1841006 +v -0.03349952 2.564488 -0.1810272 +v -0.3238246 2.897168 -0.1674362 +v -0.3231979 2.925842 -0.1671121 +v 0.3238246 2.897168 -0.1674362 +v 0.3115695 2.865417 -0.1610996 +v 0.3231979 2.925842 -0.1671121 +v -0.3170007 2.93882 -0.1639078 +v -1.582943 2.051259 -0.1891735 +v 2.933625 2.134494 -0.1829073 +v 2.800286 2.143448 -0.1920527 +v 2.721855 2.106863 -0.1881683 +v 0 2.647229 -0.175896 +v 0.03200657 2.647229 -0.1729595 +v 0.03349952 2.564488 -0.1810272 +v -0.06776647 2.564488 -0.1711746 +v -1.418652 2.342285 -0.1279899 +v 1.443357 2.323828 -0.1302187 +v 1.949396 0.5289299 -0.1771552 +v 1.94937 0.5285917 -0.1758744 +v 2.462436 0.8376916 -0.1021197 +v 2.18232 1.378286 -0.1047546 +v -0.3063192 2.950781 -0.1583849 +v 0.3170007 2.93882 -0.1639078 +v 2.939074 2.178249 -0.1879697 +v 2.890918 2.180035 -0.1909534 +v 2.925632 2.085294 -0.1724876 +v 2.503471 1.874387 -0.1577182 +v 2.833446 1.854084 -0.1435364 +v -0.03200657 2.647229 -0.1729595 +v 0.06474639 2.647229 -0.163546 +v 2.875328 1.977151 -0.1619083 +v -2.080773 0.7508763 -0.16875 +v -2.274369 0.6865411 -0.16875 +v -2.376661 0.7536804 -0.16875 +v -2.043436 0.557989 -0.16875 +v -2.163322 0.6212608 -0.16875 +v -1.850044 2.064034 -0.16875 +v -2.279414 1.896437 -0.16875 +v -2.444703 1.877637 -0.16875 +v -2.514281 1.863854 -0.16875 +v -2.574983 1.846642 -0.16875 +v -2.626685 1.825618 -0.16875 +v -2.669264 1.800403 -0.16875 +v -2.702596 1.770614 -0.16875 +v -2.726557 1.735872 -0.16875 +v -2.741025 1.695794 -0.16875 +v -2.745875 1.65 -0.16875 +v -2.743234 1.599159 -0.16875 +v -2.735221 1.54457 -0.16875 +v -2.721702 1.486799 -0.16875 +v -2.70254 1.42641 -0.16875 +v -2.677601 1.363968 -0.16875 +v -2.646751 1.300037 -0.16875 +v -2.609853 1.235183 -0.16875 +v -2.566773 1.169971 -0.16875 +v -2.517376 1.104964 -0.16875 +v -2.461527 1.040728 -0.16875 +v -2.399091 0.9778275 -0.16875 +v -2.388313 2.042967 -0.16875 +v -2.141334 2.058362 -0.16875 +v -2.495128 2.030105 -0.16875 +v -2.675296 1.99101 -0.16875 +v -2.590797 2.012988 -0.16875 +v -2.748603 1.963564 -0.16875 +v -2.810695 1.93004 -0.16875 +v -2.861549 1.889832 -0.16875 +v -2.901142 1.842331 -0.16875 +v -2.929451 1.786931 -0.16875 +v -2.946453 1.723023 -0.16875 +v -2.952125 1.65 -0.16875 +v -2.948284 1.572201 -0.16875 +v -2.936704 1.494468 -0.16875 +v -2.917302 1.416952 -0.16875 +v -2.889991 1.339801 -0.16875 +v -2.854688 1.263165 -0.16875 +v -2.811308 1.187194 -0.16875 +v -2.759765 1.112036 -0.16875 +v -2.699976 1.037842 -0.16875 +v -2.631856 0.9647595 -0.16875 +v -2.55532 0.892939 -0.16875 +v -2.470283 0.8225295 -0.16875 +v -2.170908 0.802787 -0.16875 +v -2.253917 0.8582923 -0.16875 +v -2.329933 0.9168274 -0.16875 +v -2.080103 1.906091 -0.16875 +v -1.847761 1.909648 -0.16875 +v -1.651065 1.910149 -0.16875 +v -1.397449 2.348438 -0.126077 +v 1.418652 2.342285 -0.1279899 +v 2.75678 2.14637 -0.1829073 +v 2.985718 2.176519 -0.1790188 +v 2.842762 2.181822 -0.1879697 +v 0.1904491 2.52356 -0.15462 +v -0.2053255 2.52356 -0.1342374 +v -0.3115695 2.865417 -0.1610996 +v 0.2898027 2.83125 -0.1498449 +v 0.1828042 2.986816 -0.1484969 +v 0.2542394 2.971326 -0.1662163 +v -0.1981816 2.986816 -0.1295669 +v 2.994172 2.215868 -0.1854386 +v 2.942346 2.216645 -0.1883821 +v 2.507261 0.8978166 -0.0993001 +v 2.753536 1.585083 -0.1245978 +v 2.431159 1.716211 -0.1367503 +v 0.1254317 2.55 -0.1544102 +v -0.1414214 2.55 -0.1414214 +v -1.382082 2.342285 -0.1246906 +v 1.397449 2.348438 -0.126077 +v 1.394337 2.25 -0.1257962 +v 1.378191 2.293067 -0.1243396 +v -1.370372 2.221875 -0.1236341 +v -1.394337 2.25 -0.1257962 +v -1.644796 1.920126 -0.1844065 +v -1.656152 1.902343 -0.1532837 +v -1.657177 1.90082 -0.1495096 +v 0.3063192 2.950781 -0.1583849 +v -0.2698184 2.971326 -0.1395119 +v 2.89052 2.217422 -0.1854386 +v 3 2.25 -0.1875 +v 3.055957 2.25 -0.1845703 +v -1.374885 2.323828 -0.1240412 +v 1.382082 2.342285 -0.1246906 +v 2.683743 2.110897 -0.1724876 +v 2.974309 2.131763 -0.1676651 +v -1.378191 2.293067 -0.1243396 +v 1.374885 2.323828 -0.1240412 +v 3.04437 2.215116 -0.1766082 +v 2.796118 2.183552 -0.1790188 +v 3.112909 2.278716 -0.181398 +v 3.053833 2.27807 -0.1842773 +v 2.944043 2.25 -0.1845703 +v 1.370372 2.221875 -0.1236341 +v 0.06776647 2.564488 -0.1711746 +v 2.914842 2.030856 -0.155757 +v 2.599086 2.035386 -0.1619083 +v 2.840322 2.218174 -0.1766082 +v 3.110156 2.25 -0.1757812 +v 2.253091 1.434544 -0.0993001 +v 2.546577 0.9603542 -0.0963221 +v 3.17013 2.279341 -0.17276 +v 2.994757 2.277425 -0.181398 +v 2.889844 2.25 -0.1757812 +v 3.153092 2.300009 -0.1730347 +v 3.093164 2.298779 -0.1757812 +v -0.03158632 2.579773 -0.1706885 +v 0 2.579773 -0.1735864 +v -1.989646 0.6982346 -0.1795076 +v 0.1649143 2.683594 -0.1078174 +v -0.1393221 2.683594 -0.1393221 +v 0.09908299 2.996594 -0.09908299 +v -0.06474639 2.647229 -0.163546 +v 0.096252 2.647229 -0.1472242 +v 2.716096 2.149101 -0.1676651 +v 3.029336 2.174901 -0.1641006 +v 1.000623 2.371289 -0.09027563 +v -0.8216628 2.4 -0.07412991 +v -0.09908299 2.996594 -0.09908299 +v 2.937536 2.276799 -0.17276 +v 3.211137 2.3012 -0.1647949 +v 3.033236 2.29755 -0.1730347 +v -0.06389625 2.579773 -0.1613986 +v 0.03158632 2.579773 -0.1706885 +v 2.581061 1.024976 -0.09321213 +v -1.995146 0.8352356 -0.08903261 +v -1.998012 0.75 -0.08916049 +v -1.991304 0.706718 -0.16875 +v -1.993201 0.7165222 -0.1530642 +v -1.99475 0.724527 -0.1370341 +v -1.994896 0.7252838 -0.1355186 +v -1.996307 0.7325187 -0.1172434 +v -1.997464 0.7383535 -0.09843459 +v -1.997468 0.7383771 -0.09835853 +v -1.986792 0.9221191 -0.08865983 +v 3.091312 2.214413 -0.1618909 +v 2.7525 2.18517 -0.1641006 +v -1.973317 1.010541 -0.0880585 +v -0.2178641 2.758301 -0.1424349 +v -0.2898027 2.83125 -0.1498449 +v 0.2299407 2.758301 -0.1191237 +v 2.959778 2.08168 -0.1505347 +v -1.955086 1.100391 -0.08724493 +v 0.1007417 2.564488 -0.1540914 +v -0.1007417 2.564488 -0.1540914 +v 2.535304 1.959198 -0.1435364 +v 2.865058 1.914094 -0.1372346 +v 2.79338 2.218877 -0.1618909 +v 3.16084 2.25 -0.1611328 +v 0.03035442 2.612402 -0.1640315 +v 0 2.612402 -0.1668164 +v -1.905818 1.283936 -0.0850464 +v 3.223639 2.279925 -0.1583633 +v 2.83916 2.25 -0.1611328 +v 3.117554 2.311798 -0.1637695 +v 3.176421 2.313489 -0.1612106 +v 1.949003 0.523847 -0.1579067 +v 1.948717 0.5201124 -0.1414431 +v 1.919964 0.4535156 -0.08567765 +v -1.941956 0.5093092 -0.16875 +v 0.4386383 2.460938 -0.1255409 +v 0.6253207 2.428711 -0.1157171 +v -0.4486331 2.460938 -0.08302064 +v 2.309564 1.498949 -0.09321213 +v 2.638221 1.159163 -0.08670187 +v 0 2.595772 -0.1679831 +v -0.03056672 2.595772 -0.1651787 +v 2.797476 1.719373 -0.1132336 +v 2.458965 1.799585 -0.1245978 +v -0.1544102 2.55 -0.1254317 +v 0.1414214 2.55 -0.1414214 +v 1.493932 0 -0.1347817 +v -1.493283 0 -0.1349554 +v 3.058687 2.310107 -0.1612106 +v 3.233438 2.315126 -0.1535339 +v 2.975191 2.296359 -0.1647949 +v 0.06140424 2.612402 -0.1551039 +v -0.03035442 2.612402 -0.1640315 +v 2.884027 2.276215 -0.1583633 +v 3.265418 2.302313 -0.151062 +v -1.938401 0.4983028 -0.15219 +v -1.935768 0.4902661 -0.1369945 +v -1.935341 0.488962 -0.1345287 +v -1.932788 0.4812187 -0.1160261 +v -1.930879 0.4754244 -0.0984375 +v -1.929976 0.4726693 -0.08825709 +v -1.929826 0.4722082 -0.08612353 +v -1.919964 0.4535156 -0.08567765 +v 1.88216 0.3917542 -0.08399066 +v -0.2832949 2.500195 -0.1121539 +v 0.270649 2.500195 -0.1399413 +v 0.349397 2.479468 -0.1383231 +v 3.01076 2.129315 -0.1463259 +v 2.649597 2.114511 -0.1505347 +v -1.841917 1.471875 -0.08219483 +v 1.905628 1.283936 -0.08864889 +v 1.904891 1.271746 -0.1579939 +v 1.905326 1.279625 -0.1189661 +v 1.905372 1.280307 -0.1145057 +v 1.905529 1.282635 -0.09928349 +v -0.09498818 2.579773 -0.1452911 +v 0.06389625 2.579773 -0.1613986 +v 0.03056672 2.595772 -0.1651787 +v -0.06183369 2.595772 -0.1561887 +v -1.88216 0.3917542 -0.08399066 +v 1.839966 0.3347168 -0.08210775 +v 2.90103 1.971733 -0.1315505 +v -1.660565 1.895788 -0.1370376 +v -2.074407 1.891924 -0.1371094 +v -2.325585 0.9320065 -0.1371094 +v -2.252014 0.874272 -0.1371094 +v -2.171614 0.8196762 -0.1371094 +v -2.084247 0.7688226 -0.1371094 +v -2.147031 2.072529 -0.1371094 +v -1.850256 2.078398 -0.1371094 +v -2.039962 0.5400428 -0.1371094 +v -2.162616 0.6043717 -0.1371094 +v -2.398445 2.0566 -0.1371094 +v -2.507107 2.043292 -0.1371094 +v -2.604389 2.025581 -0.1371094 +v -2.690277 2.002841 -0.1371094 +v -2.764757 1.974442 -0.1371094 +v -2.827815 1.939755 -0.1371094 +v -2.879439 1.898152 -0.1371094 +v -2.919614 1.849004 -0.1371094 +v -2.948328 1.791681 -0.1371094 +v -2.965565 1.725556 -0.1371094 +v -2.971314 1.65 -0.1371094 +v -2.967362 1.569692 -0.1371094 +v -2.95545 1.489806 -0.1371094 +v -2.9355 1.410453 -0.1371094 +v -2.907432 1.331743 -0.1371094 +v -2.871164 1.253787 -0.1371094 +v -2.826618 1.176695 -0.1371094 +v -2.773713 1.100579 -0.1371094 +v -2.71237 1.025549 -0.1371094 +v -2.642508 0.9517149 -0.1371094 +v -2.564047 0.8791887 -0.1371094 +v -2.476907 0.8080806 -0.1371094 +v -2.381009 0.7385013 -0.1371094 +v -2.276272 0.6705614 -0.1371094 +v -2.392467 0.9922764 -0.1371094 +v -2.452801 1.054478 -0.1371094 +v -2.506725 1.118009 -0.1371094 +v -2.55438 1.182264 -0.1371094 +v -2.595905 1.246641 -0.1371094 +v -2.63144 1.310536 -0.1371094 +v -2.661125 1.373346 -0.1371094 +v -2.6851 1.434468 -0.1371094 +v -2.703503 1.493298 -0.1371094 +v -2.716475 1.549232 -0.1371094 +v -2.724156 1.601667 -0.1371094 +v -2.726686 1.65 -0.1371094 +v -2.721912 1.693261 -0.1371094 +v -2.70768 1.731121 -0.1371094 +v -2.684123 1.763942 -0.1371094 +v -2.651373 1.792082 -0.1371094 +v -2.609565 1.815903 -0.1371094 +v -2.558829 1.835763 -0.1371094 +v -2.4993 1.852023 -0.1371094 +v -2.431111 1.865044 -0.1371094 +v -2.269282 1.882804 -0.1371094 +v -1.575624 2.077094 -0.1421718 +v -1.575131 2.079133 -0.1368969 +v -0.3612757 2.479468 -0.1033993 +v 3.068416 2.173452 -0.143215 +v 2.679645 2.151549 -0.1463259 +v 0.338955 2.897168 -0.1341892 +v 0.3261273 2.865417 -0.1291108 +v -0.338955 2.897168 -0.1341892 +v -0.338299 2.925842 -0.1339295 +v 0.338299 2.925842 -0.1339295 +v -0.3318122 2.93882 -0.1313614 +v 1.948342 0.5150895 -0.1150869 +v 2.040098 0.5459787 -0.1142341 +v 0.2053255 2.52356 -0.1342374 +v -0.2179072 2.52356 -0.1126707 +v 0.1981816 2.986816 -0.1295669 +v 0.2698184 2.971326 -0.1395119 +v -0.2091672 2.986816 -0.1083617 +v 1.841917 1.471875 -0.08219483 +v -1.766309 1.66333 -0.07882083 +v 2.132118 0.5847386 -0.1129189 +v 1.924379 1.28346 -0.1142341 +v -1.839966 0.3347168 -0.08210775 +v 1.794845 0.2822937 -0.08009424 +v -0.06140424 2.612402 -0.1551039 +v 0.06183369 2.595772 -0.1561887 +v -0.096252 2.647229 -0.1472242 +v 0.1243773 2.647229 -0.1243773 +v 2.92091 2.295245 -0.151062 +v 3.001669 2.30847 -0.1535339 +v 3.286757 2.316658 -0.1407394 +v 3.13337 2.213783 -0.1412866 +v 2.71342 2.186619 -0.143215 +v 0.3318122 2.93882 -0.1313614 +v -0.3206317 2.950781 -0.1269352 +v 3.124008 2.31532 -0.1569946 +v 3.181738 2.317176 -0.1545416 +v 0.09128357 2.612402 -0.1396246 +v 2.573385 2.040804 -0.1315505 +v 2.942007 2.026682 -0.1265525 +v 2.751322 2.219507 -0.1412866 +v 3.20625 2.25 -0.140625 +v 2.354553 1.569951 -0.08670187 +v 2.684131 1.297751 -0.07998047 +v -1.794845 0.2822937 -0.08009424 +v 1.74826 0.234375 -0.07801542 +v 0.09498818 2.579773 -0.1452911 +v -0.09192199 2.595772 -0.1406011 +v 3.126563 2.316797 -0.15 +v 3.070314 2.31483 -0.1476562 +v 3.237655 2.318974 -0.1471825 +v 3.27158 2.280449 -0.138208 +v 2.79375 2.25 -0.140625 +v 0.3033434 2.83125 -0.1200909 +v -0.3261273 2.865417 -0.1291108 +v 1.766309 1.66333 -0.07882083 +v -1.68192 1.857422 -0.07505502 +v 0.3206317 2.950781 -0.1269352 +v -0.2824255 2.971326 -0.1118097 +v 2.836086 2.275691 -0.138208 +v 3.31405 2.303311 -0.1318359 +v 2.851477 1.847726 -0.1030518 +v 2.486704 1.883228 -0.1132336 +v -1.74826 0.234375 -0.07801542 +v 1.656555 0.1516113 -0.0739231 +v 3.182811 2.318764 -0.1476562 +v -0.09128357 2.612402 -0.1396246 +v 0.09192199 2.595772 -0.1406011 +v 2.988637 2.078626 -0.1223094 +v 0.1544102 2.55 -0.1254317 +v -0.1673991 2.55 -0.109442 +v 3.237293 2.32067 -0.140625 +v 0.1301788 2.564488 -0.1301788 +v -0.1301788 2.564488 -0.1301788 +v -0.1227441 2.579773 -0.1227441 +v 2.94835 2.306939 -0.1407394 +v 3.015832 2.312924 -0.140625 +v 3.289945 2.320655 -0.1349173 +v 1.68192 1.857422 -0.07505502 +v -1.660952 1.895213 -0.1356129 +v -1.665017 1.88936 -0.1172722 +v -1.668376 1.884658 -0.0984375 +v -1.671137 1.880894 -0.07861304 +v -1.671554 1.88034 -0.07459743 +v 3.334529 2.318029 -0.1228271 +v 2.872278 2.294247 -0.1318359 +v 2.620738 2.117566 -0.1223094 +v 3.041567 2.127246 -0.1188898 +v 0.8216628 2.4 -0.07412991 +v -0.6333651 2.428711 -0.05714181 +v 3.119751 2.313446 -0.1362305 +v 3.172179 2.315444 -0.1341019 +v 0.2420174 2.758301 -0.09581246 +v -0.2299407 2.758301 -0.1191237 +v -0.3033434 2.83125 -0.1200909 +v 2.390869 1.645999 -0.07998047 +v -1.656555 0.1516113 -0.0739231 +v 1.576556 0.08554687 -0.0703532 +v -0.1172836 2.996594 -0.0766775 +v 0.1172836 2.996594 -0.0766775 +v 3.067323 2.311448 -0.1341019 +v 3.22296 2.317379 -0.1277161 +v -0.1243773 2.647229 -0.1243773 +v 0.117957 2.612402 -0.117957 +v 3.28824 2.322451 -0.1289062 +v 3.101444 2.172226 -0.1163622 +v 0.1227441 2.579773 -0.1227441 +v -0.118782 2.595772 -0.118782 +v 2.883909 1.908868 -0.09852742 +v 2.517273 1.965555 -0.1030518 +v 3.168916 2.21325 -0.1147953 +v 2.680391 2.187844 -0.1163622 +v 0.1831973 2.683594 -0.07252616 +v -0.1649143 2.683594 -0.1078174 +v -1.576556 0.08554687 -0.0703532 +v 1.519972 0.03530274 -0.06782815 +v 1.948665 0.5194426 -0.1384906 +v 2.715776 2.22004 -0.1147953 +v 3.244629 2.25 -0.1142578 +v 2.964885 2.311142 -0.1289062 +v 3.336794 2.322161 -0.117746 +v 2.900578 2.305567 -0.1228271 +v 3.312099 2.280892 -0.112294 +v 2.755371 2.25 -0.1142578 +v 3.016542 2.309513 -0.1277161 +v 3.270447 2.319189 -0.1170731 +v -0.117957 2.612402 -0.117957 +v 0.118782 2.595772 -0.118782 +v -0.00181963 3 -0.00983305 +v 0 3 -0.01 +v 0.2832949 2.500195 -0.1121539 +v 0.2179072 2.52356 -0.1126707 +v -0.2280887 2.52356 -0.09029824 +v 0.2091672 2.986816 -0.1083617 +v 0.2824255 2.971326 -0.1118097 +v -0.2201528 2.986816 -0.08715649 +v 0.1472242 2.647229 -0.096252 +v 1.948386 0.5156975 -0.1189356 +v -0.2914479 2.500195 -0.08379786 +v 0.3612757 2.479468 -0.1033993 +v 2.795567 2.275248 -0.112294 +v 3.355153 2.304154 -0.1071167 +v 0.00181963 3 -0.00983305 +v -0.00368095 3 -0.00929788 +v 2.920845 1.967556 -0.09444649 +v -2.086925 0.7826589 -0.0984375 +v -2.037283 0.5262064 -0.0984375 +v -2.162072 0.5913503 -0.0984375 +v -2.277739 0.6582412 -0.0984375 +v -2.384361 0.7267982 -0.0984375 +v -2.482014 0.7969406 -0.0984375 +v -2.570775 0.8685874 -0.0984375 +v -2.650719 0.9416577 -0.0984375 +v -2.721925 1.016071 -0.0984375 +v -2.784467 1.091745 -0.0984375 +v -2.838422 1.168601 -0.0984375 +v -2.883867 1.246556 -0.0984375 +v -2.920878 1.32553 -0.0984375 +v -2.949531 1.405443 -0.0984375 +v -2.969903 1.486212 -0.0984375 +v -2.982071 1.567759 -0.0984375 +v -2.986109 1.65 -0.0984375 +v -2.980301 1.72751 -0.0984375 +v -2.962882 1.795344 -0.0984375 +v -2.933856 1.854148 -0.0984375 +v -2.893232 1.904567 -0.0984375 +v -2.841015 1.947246 -0.0984375 +v -2.777211 1.982829 -0.0984375 +v -2.701827 2.011962 -0.0984375 +v -2.614869 2.03529 -0.0984375 +v -2.516343 2.053458 -0.0984375 +v -2.406256 2.067111 -0.0984375 +v -2.151423 2.083452 -0.0984375 +v -1.85042 2.089472 -0.0984375 +v -2.070014 1.881001 -0.0984375 +v -2.26147 1.872293 -0.0984375 +v -2.420631 1.855335 -0.0984375 +v -2.48775 1.842902 -0.0984375 +v -2.546375 1.827376 -0.0984375 +v -2.596365 1.808412 -0.0984375 +v -2.63758 1.785667 -0.0984375 +v -2.669881 1.758798 -0.0984375 +v -2.693126 1.727459 -0.0984375 +v -2.707176 1.691308 -0.0984375 +v -2.711891 1.65 -0.0984375 +v -2.709447 1.603601 -0.0984375 +v -2.702022 1.552826 -0.0984375 +v -2.686838 1.496753 -0.0984375 +v -2.671653 1.440681 -0.0984375 +v -2.648422 1.380577 -0.0984375 +v -2.619636 1.318631 -0.0984375 +v -2.585152 1.255475 -0.0984375 +v -2.544825 1.191742 -0.0984375 +v -2.498513 1.128066 -0.0984375 +v -2.446073 1.06508 -0.0984375 +v -2.387361 1.003416 -0.0984375 +v -2.322233 0.9437096 -0.0984375 +v -2.172159 0.8326976 -0.0984375 +v -2.250547 0.8865922 -0.0984375 +v -1.574648 2.081137 -0.1317123 +v -1.573385 2.086987 -0.1122886 +v 2.421326 1.725543 -0.07325907 +v 2.763764 1.577635 -0.06674881 +v -1.519972 0.03530274 -0.06782815 +v 1.504118 0.01583862 -0.06712069 +v 3.09668 2.301416 -0.1242187 +v 3.1907 2.304805 -0.1164551 +v -1.504118 0.01583862 -0.06712069 +v -1.497545 0 -0.08578844 +v 1.497545 0 -0.08578844 +v -1.498082 0 -0.06702222 +v 3.333887 2.324048 -0.1125 +v 1.498509 2.25 -0.06687037 +v -1.572735 2.090322 -0.09842987 +v -1.572723 2.090387 -0.09816123 +v -1.572076 2.09406 -0.07879286 +v -1.498509 2.25 -0.06687037 +v -1.473729 2.293067 -0.06576457 +v -0.1766784 2.55 -0.09153045 +v 0.1673991 2.55 -0.109442 +v 0.3504787 2.897168 -0.1003091 +v 0.3372149 2.865417 -0.09651295 +v -0.3504787 2.897168 -0.1003091 +v -0.3498004 2.925842 -0.100115 +v 0.3498004 2.925842 -0.100115 +v -0.3430931 2.93882 -0.09819532 +v 1.473729 2.293067 -0.06576457 +v 2.831175 2.293404 -0.1071167 +v 3.374904 2.319189 -0.09979706 +v 2.96295 2.023464 -0.09085822 +v 2.553569 2.044981 -0.09444649 +v -0.3315324 2.950781 -0.09488659 +v 0.3430931 2.93882 -0.09819532 +v -0.0054721 3 -0.00836996 +v 0.00368095 3 -0.00929788 +v 1.449219 2.323828 0 +v -1.424414 2.342285 0 +v -1.449219 2.323828 0 +v -0.1452911 2.579773 -0.09498818 +v -0.1540914 2.564488 -0.1007417 +v 0.1540914 2.564488 -0.1007417 +v -0.3372149 2.865417 -0.09651295 +v 0.3136564 2.83125 -0.08977037 +v 2.969055 2.307703 -0.1170731 +v 3.312993 2.32081 -0.1021729 +v 2.919238 2.309546 -0.1125 +v 1.424414 2.342285 0 +v -1.403125 2.348438 0 +v 3.00266 2.298028 -0.1164551 +v 3.233959 2.306364 -0.1067505 +v 0.3315324 2.950781 -0.09488659 +v -0.2920273 2.971326 -0.08357998 +v 3.010887 2.076271 -0.08781189 +v 1.403125 2.348438 0 +v -1.387695 2.342285 0 +v 1.4 2.25 0 +v 1.383789 2.293067 0 +v -1.4 2.25 0 +v -1.375937 2.221875 0 +v 0.4486331 2.460938 -0.08302064 +v -0.3695077 2.479468 -0.06837831 +v 1.387695 2.342285 0 +v -1.380469 2.323828 0 +v 2.448736 1.807033 -0.06674881 +v 2.808267 1.713683 -0.06066084 +v -0.1472242 2.647229 -0.096252 +v 0.1396246 2.612402 -0.09128357 +v 1.380469 2.323828 0 +v -1.383789 2.293067 0 +v 3.056909 2.280377 -0.1157227 +v 3.140772 2.282495 -0.10849 +v -1.363086 2.214844 0 +v 1.375937 2.221875 0 +v 2.860204 2.304407 -0.09979706 +v 3.376389 2.323434 -0.0956686 +v 0.1452911 2.579773 -0.09498818 +v -0.1406011 2.595772 -0.09192199 +v 1.363086 2.214844 0 +v -1.35 2.2125 0 +v 3.065319 2.125651 -0.08535676 +v 2.598488 2.119921 -0.08781189 +v 1.35 2.2125 0 +v -1.336914 2.214844 0 +v 1.336914 2.214844 0 +v -1.324062 2.221875 0 +v -0.2420174 2.758301 -0.09581246 +v -0.3136564 2.83125 -0.08977037 +v 0.2489824 2.758301 -0.07158808 +v 1.324062 2.221875 0 +v -1.3 2.25 0 +v 3.126909 2.171282 -0.0835421 +v -0.1396246 2.612402 -0.09128357 +v 0.1406011 2.595772 -0.09192199 +v 3.372466 2.325397 -0.09140625 +v 0.0054721 3 -0.00836996 +v -0.00707107 3 -0.00707107 +v 2.9594 2.296468 -0.1067505 +v 3.272717 2.307761 -0.09316406 +v 2.926509 2.306082 -0.1021729 +v 1.3 2.25 0 +v -1.297412 2.263632 0 +v -1.289844 2.27644 0 +v 1.297412 2.263632 0 +v 2.973046 2.278259 -0.10849 +v 3.179358 2.283469 -0.09944916 +v 3.196321 2.212839 -0.08241718 +v 2.654927 2.188789 -0.0835421 +v -1.260937 2.299805 0 +v 1.289844 2.27644 0 +v 2.943376 2.26 -0.1057986 +v 2.963201 2.26 -0.1090802 +v 3.003128 2.26 -0.112521 +v 3.018686 2.26 -0.1128014 +v 0.6333651 2.428711 -0.05714181 +v -0.4544044 2.460938 -0.04099609 +v 1.947878 0.5082043 -0.05968775 +v 1.948163 0.5125908 -0.09926777 +v 2.041088 0.5396703 -0.05902095 +v 2.688371 2.220451 -0.08241718 +v 3.274219 2.25 -0.08203125 +v 3.343338 2.281233 -0.08062134 +v 2.725781 2.25 -0.08203125 +v 1.905868 1.286898 -0.05969036 +v 1.905871 1.286932 -0.05916694 +v 1.905713 1.285052 -0.07951832 +v 1.905662 1.284376 -0.08504891 +v 2.133362 0.578651 -0.05834141 +v 1.260937 2.299805 0 +v -1.215625 2.320532 0 +v 2.863081 1.843635 -0.0552063 +v 2.216556 0.6200134 0 +v 1.985388 1.302501 -0.05834141 +v 3.02 2.26 -0.1127983 +v 2.812702 2.26 0 +v 3.03393 2.26 -0.1125138 +v 3.02 2.26 0 +v 0.1766784 2.55 -0.09153045 +v 0.2280887 2.52356 -0.09029824 +v -0.1859577 2.55 -0.07361894 +v 3.073886 2.26 -0.1090349 +v 2.88066 2.308197 -0.09140625 +v 3.348951 2.322181 -0.08301544 +v 3.386842 2.304805 -0.0769043 +v 2.764328 2.274907 -0.08062134 +v 0.2914479 2.500195 -0.08379786 +v 0.2201528 2.986816 -0.08715649 +v 0.2920273 2.971326 -0.08357998 +v -0.2264886 2.986816 -0.06512061 +v 1.984961 1.30459 0 +v 2.041232 1.320433 0 +v 2.290405 0.6675293 0 +v 2.356015 0.7187805 0 +v 2.092212 1.33927 0 +v 1.215625 2.320532 0 +v -1.15625 2.339062 0 +v 3.09372 2.26 -0.1057134 +v 2.93446 2.277285 -0.09944916 +v 2.90875 2.26 -0.0968719 +v 2.91515 2.26 -0.09899703 +v 2.93467 2.26 -0.1039872 +v -0.1302861 2.996594 -0.05157909 +v 0.1302861 2.996594 -0.05157909 +v -0.1831973 2.683594 -0.07252616 +v 0.163546 2.647229 -0.06474639 +v 2.138248 1.360909 0 +v 2.179688 1.385156 0 +v 2.414062 0.7734375 0 +v 3.406032 2.320083 -0.07164917 +v 2.799486 2.292754 -0.0769043 +v 3.21393 2.284343 -0.08679199 +v 2.920642 2.295071 -0.09316406 +v 3.113061 2.26 -0.1012919 +v 2.465225 0.8311707 0 +v 1.15625 2.339062 0 +v -1.004688 2.371289 0 +v -0.2996008 2.500195 -0.05544187 +v 0.3695077 2.479468 -0.06837831 +v 2.505669 1.969646 -0.0552063 +v 2.89604 1.905505 -0.05278255 +v 2.890551 2.304711 -0.08301544 +v 3.305474 2.308941 -0.0756958 +v 2.510181 0.8916504 0 +v 3.128076 2.26 -0.09679677 +v -0.1613986 2.579773 -0.06389625 +v -0.1711746 2.564488 -0.06776647 +v 0.1711746 2.564488 -0.06776647 +v 0.3584647 2.897168 -0.06633478 +v 0.3448987 2.865417 -0.06382434 +v -0.3584647 2.897168 -0.06633478 +v -0.3577709 2.925842 -0.06620639 +v 0.3577709 2.925842 -0.06620639 +v -0.3509108 2.93882 -0.0649369 +v 3.406916 2.324415 -0.06868515 +v 2.829075 2.303513 -0.07164917 +v 2.899889 2.276412 -0.08679199 +v 2.877395 2.26 -0.08468015 +v 2.895991 2.26 -0.09263499 +v 2.549606 0.9545471 0 +v 2.250171 1.44071 0 +v 1.948059 0.5110373 -0.08694297 +v -0.00836996 3 -0.0054721 +v 0.00707107 3 -0.00707107 +v 2.933598 1.964867 -0.05059633 +v -1.673158 1.878207 -0.05915629 +v -1.673627 1.877596 -0.05261255 +v -2.067188 1.873972 -0.05273438 +v -2.172509 0.8410777 -0.05273438 +v -2.088649 0.7915635 -0.05273438 +v -2.320076 0.9512412 -0.05273438 +v -2.249603 0.8945211 -0.05273438 +v -2.441743 1.071902 -0.05273438 +v -2.384074 1.010586 -0.05273438 +v -2.538676 1.197842 -0.05273438 +v -2.493228 1.134538 -0.05273438 +v -2.61204 1.32384 -0.05273438 +v -2.578231 1.26116 -0.05273438 +v -2.663 1.444679 -0.05273438 +v -2.640247 1.385231 -0.05273438 +v -2.692721 1.555139 -0.05273438 +v -2.702369 1.65 -0.05273438 +v -2.699981 1.604845 -0.05273438 +v -2.68376 1.725102 -0.05273438 +v -2.697693 1.69005 -0.05273438 +v -2.628704 1.781539 -0.05273438 +v -2.660715 1.755487 -0.05273438 +v -2.53836 1.821978 -0.05273438 +v -2.58787 1.803592 -0.05273438 +v -2.413887 1.849086 -0.05273438 +v -2.480317 1.837032 -0.05273438 +v -2.256443 1.865528 -0.05273438 +v -1.850525 2.096599 -0.05273438 +v -2.15425 2.090481 -0.05273438 +v -2.411283 2.073876 -0.05273438 +v -2.522287 2.060002 -0.05273438 +v -2.621614 2.041539 -0.05273438 +v -2.70926 2.017833 -0.05273438 +v -2.785226 1.988227 -0.05273438 +v -2.84951 1.952066 -0.05273438 +v -2.902109 1.908695 -0.05273438 +v -2.943022 1.857459 -0.05273438 +v -2.972248 1.797701 -0.05273438 +v -2.989785 1.728767 -0.05273438 +v -2.995631 1.65 -0.05273438 +v -2.991537 1.566514 -0.05273438 +v -2.979205 1.483899 -0.05273438 +v -2.958561 1.402218 -0.05273438 +v -2.929532 1.321532 -0.05273438 +v -2.892042 1.241902 -0.05273438 +v -2.846019 1.163391 -0.05273438 +v -2.791388 1.08606 -0.05273438 +v -2.728074 1.009971 -0.05273438 +v -2.656004 0.9351852 -0.05273438 +v -2.575104 0.8617647 -0.05273438 +v -2.485301 0.7897713 -0.05273438 +v -2.386518 0.7192666 -0.05273438 +v -2.278683 0.6503123 -0.05273438 +v -2.161721 0.5829701 -0.05273438 +v -2.03556 0.5173019 -0.05273438 +v -1.99791 0.7405601 -0.08916476 +v 0.3509108 2.93882 -0.0649369 +v -0.3390867 2.950781 -0.06274882 +v 3.132026 2.26 -0.09561434 +v -0.3448987 2.865417 -0.06382434 +v 0.3208034 2.83125 -0.05936545 +v 2.58418 1.019531 0 +v -0.163546 2.647229 -0.06474639 +v 0.1551039 2.612402 -0.06140424 +v -0.2489824 2.758301 -0.07158808 +v 0.1937419 2.683594 -0.03585241 +v 3.40221 2.326437 -0.065625 +v 3.150451 2.26 -0.08851054 +v 0.1613986 2.579773 -0.06389625 +v -0.1561887 2.595772 -0.06183369 +v 0.3390867 2.950781 -0.06274882 +v -0.2986814 2.971326 -0.05527172 +v 2.540816 2.047669 -0.05059633 +v 2.976429 2.021393 -0.04867405 +v 2.641479 1.154443 0 +v 2.306445 1.504395 0 +v 2.887885 2.293891 -0.0756958 +v 3.243148 2.28508 -0.07051849 +v -0.1551039 2.612402 -0.06140424 +v 0.1561887 2.595772 -0.06183369 +v 0.1859577 2.55 -0.07361894 +v 3.376675 2.323237 -0.05960083 +v 2.850915 2.307156 -0.065625 +v 3.025207 2.074755 -0.04704208 +v -0.1966611 2.55 -0.03639261 +v -0.2412171 2.52356 -0.04463781 +v 0.2412171 2.52356 -0.04463781 +v 1.004688 2.371289 0 +v -0.825 2.4 0 +v -0.3208034 2.83125 -0.05936545 +v 0.2559475 2.758301 -0.0473637 +v -1.998391 0.7429329 -0.07917164 +v -1.999097 0.7463244 -0.05972057 +v -1.999278 0.7471675 -0.05260728 +v -1.999597 0.7486508 -0.04009353 +v -1.999896 0.75 -0.02035887 +v -1.997131 0.8352356 0 +v -1.98877 0.9221191 0 +v -1.975281 1.010541 0 +v 3.158996 2.26 -0.08454897 +v -1.957031 1.100391 0 +v 2.584168 2.121436 -0.04704208 +v 3.080605 2.124625 -0.04572684 +v -1.907715 1.283936 0 +v 0.2264886 2.986816 -0.06512061 +v 1.947996 0.5101005 -0.07951125 +v 1.921875 0.4535156 0 +v 2.87067 2.275674 -0.07051849 +v 2.85129 2.26 -0.06861928 +v 2.861016 2.26 -0.07567344 +v 2.6875 1.29375 0 +v 2.351294 1.57467 0 +v -1.928624 0.4685055 -0.06899256 +v 1.498509 0 -0.06687037 +v 1.884033 0.3917542 0 +v -1.927828 0.466013 -0.05265598 +v -1.927673 0.4655276 -0.0494749 +v -1.926908 0.4630581 -0.01978745 +v -1.926777 0.4626172 0 +v -1.921875 0.4535156 0 +v 3.143298 2.170674 -0.0447547 +v -1.84375 1.471875 0 +v 3.176132 2.26 -0.07490123 +v 1.841797 0.3347168 0 +v -1.884033 0.3917542 0 +v 0.2996008 2.500195 -0.05544187 +v 0.2986814 2.971326 -0.05527172 +v -0.2328244 2.986816 -0.04308473 +v 3.213959 2.212575 -0.04415206 +v 2.638538 2.189397 -0.0447547 +v 0.4544044 2.460938 -0.04099609 +v -0.3742612 2.479468 -0.03376561 +v 3.33073 2.309851 -0.0543457 +v 2.862827 2.303655 -0.05960083 +v 3.293262 2.25 -0.04394531 +v 1.84375 1.471875 0 +v -1.768066 1.66333 0 +v 1.796631 0.2822937 0 +v -1.841797 0.3347168 0 +v 2.706738 2.25 -0.04394531 +v 3.363443 2.281453 -0.04319 +v 2.744223 2.274687 -0.04319 +v 3.407237 2.305223 -0.04119873 +v 1.75 0.234375 0 +v -1.796631 0.2822937 0 +v 2.767383 1.575 0 +v 2.3875 1.65 0 +v 1.768066 1.66333 0 +v -1.683594 1.857422 0 +v -1.57189 2.095255 -0.07016051 +v 1.658203 0.1516113 0 +v -1.75 0.234375 0 +v 2.779091 2.292336 -0.04119873 +v 3.426066 2.320658 -0.03838348 +v 0.00836996 3 -0.0054721 +v -0.00929788 3 -0.00368095 +v 3.265675 2.285649 -0.05062866 +v 2.86263 2.292981 -0.0543457 +v 1.683594 1.857422 0 +v -1.674566 1.876376 -0.03952786 +v -1.675391 1.875325 -0.01979196 +v -1.675661 1.874989 0 +v 3.184694 2.26 -0.06849348 +v 0.825 2.4 0 +v -0.6359375 2.428711 0 +v 1.578125 0.08554687 0 +v -1.658203 0.1516113 0 +v 0.1966611 2.55 -0.03639261 +v -0.1810272 2.564488 -0.03349952 +v 2.417847 1.728845 0 +v -0.1937419 2.683594 -0.03585241 +v 0.1729595 2.647229 -0.03200657 +v -0.2559475 2.758301 -0.0473637 +v 2.809042 2.302938 -0.03838348 +v 3.426563 2.325047 -0.03679562 +v 2.848143 2.275105 -0.05062866 +v 2.830529 2.26 -0.04941731 +v 2.844633 2.26 -0.0637914 +v 1.521484 0.03530274 0 +v -1.578125 0.08554687 0 +v -1.571655 2.096767 -0.05923585 +v 3.421352 2.327107 -0.03515625 +v 3.191831 2.26 -0.0631526 +v -0.3021442 2.500195 -0.02772093 +v 0.3742612 2.479468 -0.03376561 +v 1.505615 0.01583862 0 +v -1.521484 0.03530274 0 +v -0.1706885 2.579773 -0.03158632 +v 0.1810272 2.564488 -0.03349952 +v 1.5 0 0 +v -1.505615 0.01583862 0 +v 1.5 2.25 0 +v -1.571571 2.097385 -0.05261122 +v -1.571405 2.098605 -0.03955493 +v -1.571281 2.099657 -0.01979776 +v -1.5 2.25 0 +v -1.475195 2.293067 0 +v 2.812085 1.71167 0 +v 2.445117 1.809668 0 +v 0.3630762 2.897168 -0.03275651 +v 0.3493356 2.865417 -0.03151684 +v -0.3630762 2.897168 -0.03275651 +v -0.3623734 2.925842 -0.03269311 +v 0.3623734 2.925842 -0.03269311 +v -0.355425 2.93882 -0.03206623 +v 1.475195 2.293067 0 +v 2.831773 2.306487 -0.03515625 +v 3.394517 2.323917 -0.03192902 +v 0.2328244 2.986816 -0.04308473 +v -0.1377852 2.996594 -0.02549748 +v 0.1377852 2.996594 -0.02549748 +v -0.3419652 2.950781 -0.03137441 +v 0.355425 2.93882 -0.03206623 +v -0.1729595 2.647229 -0.03200657 +v 0.1640315 2.612402 -0.03035442 +v 0.1706885 2.579773 -0.03158632 +v -0.1651787 2.595772 -0.03056672 +v -0.3493356 2.865417 -0.03151684 +v 0.3249303 2.83125 -0.02931501 +v 3.205081 2.26 -0.04931249 +v 0.3419652 2.950781 -0.03137441 +v -0.1640315 2.612402 -0.03035442 +v 0.1651787 2.595772 -0.03056672 +v 2.867188 1.842188 0 +v 1.947877 0.5081908 -0.05948474 +v 2.844985 2.302975 -0.03192902 +v 3.346983 2.310437 -0.02911377 +v 1.947756 0.5058464 0 +v 1.947804 0.5068788 -0.03981679 +v 2.041428 0.5375061 0 +v 0.260293 2.758301 0 +v -0.3249303 2.83125 -0.02931501 +v 1.905988 1.288192 -0.03981752 +v 2.133789 0.5765625 0 +v 1.906064 1.288954 -0.0199159 +v 1.906091 1.289203 0 +v 0.6359375 2.428711 0 +v -0.45625 2.460938 0 +v 0.3021442 2.500195 -0.02772093 +v 0.3037525 2.971326 0 +v -0.2367774 2.986816 0 +v -0.3037525 2.971326 0 +v 2.900333 1.904315 0 +v 2.501563 1.971094 0 +v 2.846376 2.292395 -0.02911377 +v 3.280173 2.286016 -0.0271225 +v 2.93811 1.963916 0 +v -1.850562 2.099121 0 +v -2.066187 1.871484 0 +v -2.994886 1.566074 0 +v -2.999 1.65 0 +v -2.657875 0.9328949 0 +v -2.73025 1.007812 0 +v -2.089259 0.7947143 0 +v -2.279017 0.6475067 0 +v -2.387281 0.7166016 0 +v -2.03495 0.514151 0 +v -2.161598 0.5800049 0 +v -2.486463 0.7872345 0 +v -2.576637 0.8593506 0 +v -2.894935 1.240256 0 +v -2.932594 1.320117 0 +v -2.793836 1.084049 0 +v -2.848707 1.161548 0 +v -2.961756 1.401077 0 +v -2.982496 1.483081 0 +v -2.711891 2.01991 0 +v -2.624 2.04375 0 +v -2.946266 1.85863 0 +v -2.90525 1.910156 0 +v -2.993141 1.729211 0 +v -2.975563 1.798535 0 +v -2.852516 1.953772 0 +v -2.788063 1.990137 0 +v -2.413063 2.07627 0 +v -2.15525 2.092969 0 +v -2.524391 2.062317 0 +v -2.172633 0.844043 0 +v -2.254664 1.863135 0 +v -2.4115 1.846875 0 +v -2.477686 1.834955 0 +v -2.535523 1.820068 0 +v -2.584864 1.801886 0 +v -2.625562 1.780078 0 +v -2.657472 1.754315 0 +v -2.680445 1.724268 0 +v -2.694337 1.689606 0 +v -2.699 1.65 0 +v -2.69831 1.636968 0 +v -2.696632 1.605286 0 +v -2.68943 1.555957 0 +v -2.659937 1.446094 0 +v -2.637354 1.386877 0 +v -2.609352 1.325684 0 +v -2.575782 1.263171 0 +v -2.5365 1.2 0 +v -2.491358 1.136829 0 +v -2.440211 1.074316 0 +v -2.382911 1.013123 0 +v -2.319313 0.9539062 0 +v -2.249269 0.8973266 0 +v 0.00929788 3 -0.00368095 +v -0.00983305 3 -0.00181963 +v 2.833646 2.274739 -0.0271225 +v 2.817364 2.26 -0.02647698 +v 2.826513 2.26 -0.04402087 +v 2.981198 2.02066 0 +v 2.536304 2.048621 0 +v 3.215407 2.26 -0.03265375 +v 3.030273 2.074219 0 +v 0.1970312 2.683594 0 +v -0.32625 2.83125 0 +v -0.260293 2.758301 0 +v 3.086014 2.124261 0 +v 2.579102 2.121973 0 +v 3.149097 2.170459 0 +v 3.2202 2.212482 0 +v 2.632739 2.189612 0 +v 0.2453125 2.52356 0 +v -0.2 2.55 0 +v -0.2453125 2.52356 0 +v 3.3 2.25 0 +v 3.370557 2.281531 0 +v 2.7 2.25 0 +v 2.705797 2.253844 0 +v 3.414453 2.305371 0 +v 2.737109 2.274609 0 +v 0.2367774 2.986816 0 +v -0.1401245 2.996594 0 +v 3.433154 2.320862 0 +v 2.771875 2.292187 0 +v 0.45625 2.460938 0 +v -0.3757812 2.479468 0 +v 1.947766 0.5061007 -0.01991576 +v 3.433514 2.32527 0 +v 2.801953 2.302734 0 +v 3.428125 2.327344 0 +v 0.2 2.55 0 +v -0.1841006 2.564488 0 +v -0.1970312 2.683594 0 +v 0.175896 2.647229 0 +v 3.40083 2.324158 0 +v 2.825 2.30625 0 +v -0.3046875 2.500195 0 +v 0.3757812 2.479468 0 +v -0.1735864 2.579773 0 +v 0.1841006 2.564488 0 +v 0.3645508 2.897168 0 +v 0.3507544 2.865417 0 +v -0.3645508 2.897168 0 +v -0.3638452 2.925842 0 +v 0.3638452 2.925842 0 +v -0.3568686 2.93882 0 +v 3.217982 2.26 -0.02641633 +v 0.3568686 2.93882 0 +v -0.3448437 2.950781 0 +v -0.175896 2.647229 0 +v 0.1668164 2.612402 0 +v 3.352734 2.310645 0 +v 2.838672 2.302734 0 +v 0.1735864 2.579773 0 +v -0.1679831 2.595772 0 +v -0.3507544 2.865417 0 +v 0.32625 2.83125 0 +v 0.3448437 2.950781 0 +v -0.1668164 2.612402 0 +v 0.1679831 2.595772 0 +v 3.285303 2.286145 0 +v 2.840625 2.292187 0 +v 0.3046875 2.500195 0 +v 2.828516 2.274609 0 +v 2.815104 2.26 -0.01924992 +v 3.222245 2.26 -0.00699626 +v 0.00983305 3 -0.00181963 +v 0.1401245 2.996594 0 +v -0.01 3 0 +v -2 0.7504504 0 +v -1.571246 2.099993 0 +v 3.222545 2.26 -0 +v 0.01 3 0 +v 3.22018 2.26 0.0192596 +v 2.813015 2.26 0.00709593 +v 2.817364 2.26 0.02647698 +v 2.820057 2.26 0.03286232 +v 2.830529 2.26 0.04941731 +v 2.844355 2.26 0.06355499 +v 2.851278 2.26 0.06862676 +v 2.86018 2.26 0.07514839 +v 2.877395 2.26 0.08468015 +v 2.886517 2.26 0.088835 +v 2.905001 2.26 0.09582908 +v 2.908697 2.26 0.09691813 +v 2.924006 2.26 0.1014295 +v 2.943376 2.26 0.1057986 +v 2.958778 2.26 0.1084447 +v 3.018436 2.26 0.1128015 +v 3.018687 2.26 0.112801 +v 1.905988 1.288192 0.03981752 +v 1.905871 1.286932 0.05916694 +v 1.906064 1.288954 0.0199159 +v 1.985388 1.302501 0.05834141 +v 2.706738 2.25 0.04394531 +v 2.744223 2.274687 0.04319 +v 2.831773 2.306487 0.03515625 +v 2.844985 2.302975 0.03192902 +v 2.846376 2.292395 0.02911377 +v 2.779091 2.292336 0.04119873 +v 2.809042 2.302938 0.03838348 +v 2.390869 1.645999 0.07998047 +v 2.421326 1.725543 0.07325907 +v 2.505669 1.969646 0.0552063 +v 2.540816 2.047669 0.05059633 +v 2.584168 2.121436 0.04704208 +v 2.638538 2.189397 0.0447547 +v 2.448736 1.807033 0.06674881 +v 2.18232 1.378286 0.1047546 +v 2.253091 1.434544 0.0993001 +v 2.309564 1.498949 0.09321213 +v 2.354553 1.569951 0.08670187 +v 1.986632 1.296414 0.1129189 +v 2.043201 1.312567 0.1112869 +v 2.094438 1.331726 0.1093646 +v 2.140693 1.353697 0.1071784 +v 2.353569 0.7259919 0.1071784 +v 2.288179 0.6750733 0.1093646 +v 2.462436 0.8376916 0.1021197 +v 2.41143 0.7803074 0.1047546 +v 2.214587 0.6278794 0.1112869 +v 2.133362 0.578651 0.05834141 +v -1.493932 0 0.1347817 +v -1.498509 0 0.06687037 +v -1.490739 0 0.1664243 +v -1.486126 0 0.2035431 +v -1.47876 0 0.2515355 +v -1.474958 0 0.2729446 +v -1.461566 0 0.3373784 +v -1.460314 0 0.3427577 +v -1.442098 0 0.4127373 +v -1.438974 0 0.4235018 +v -1.420238 0 0.4826231 +v -1.410848 0 0.5094198 +v -1.394682 0 0.5521421 +v -1.377109 0 0.5946185 +v -1.36541 0 0.6210115 +v -1.337741 0 0.6785639 +v -1.332426 0 0.6889419 +v -1.295765 0 0.7556404 +v -1.292795 0 0.7607116 +v -1.255493 0 0.8208146 +v -1.242389 0 0.8405169 +v -1.211706 0 0.8841767 +v -1.186715 0 0.9174458 +v -1.16453 0 0.9454472 +v -1.126031 0 0.9909865 +v -1.11412 0 1.004359 +v -1.06066 0 1.06066 +v -1.004359 0 1.11412 +v -0.9909865 0 1.126031 +v -0.9454472 0 1.16453 +v -0.9174458 0 1.186715 +v -0.8841767 0 1.211706 +v -0.8405169 0 1.242389 +v -0.8208146 0 1.255493 +v -0.7607116 0 1.292795 +v -0.7556404 0 1.295765 +v -0.6889419 0 1.332426 +v -0.6785639 0 1.337741 +v -0.6210115 0 1.36541 +v -0.5946185 0 1.377109 +v -0.5521421 0 1.394682 +v -0.5094198 0 1.410848 +v -0.4826231 0 1.420238 +v -0.4235018 0 1.438974 +v -0.4127373 0 1.442098 +v -0.3427577 0 1.460314 +v -0.3373784 0 1.461566 +v -0.2729446 0 1.474958 +v -0.2515355 0 1.47876 +v -0.2035431 0 1.486126 +v -0.1664243 0 1.490739 +v -0.1347817 0 1.493932 +v -0.08245644 0 1.497732 +v -0.06687037 0 1.498509 +v 0 0 1.5 +v 0.06687037 0 1.498509 +v 0.08578844 0 1.497545 +v 0.1347817 0 1.493932 +v 0.1731963 0 1.489967 +v 0.2035431 0 1.486126 +v 0.2618065 0 1.476976 +v 0.2729446 0 1.474958 +v 0.3427577 0 1.460314 +v 0.3511515 0 1.458318 +v 0.4127373 0 1.442098 +v 0.4407179 0 1.433795 +v 0.4826231 0 1.420238 +v 0.5299529 0 1.403264 +v 0.5521421 0 1.394682 +v 0.6182728 0 1.366652 +v 0.6210115 0 1.36541 +v 0.6889419 0 1.332426 +v 0.7050729 0 1.323961 +v 0.7556404 0 1.295765 +v 0.7897395 0 1.275269 +v 0.8208146 0 1.255493 +v 0.8716629 0 1.220739 +v 0.8841767 0 1.211706 +v 0.9454472 0 1.16453 +v 0.9502504 0 1.160614 +v 1.004359 0 1.11412 +v 1.02494 0 1.095216 +v 1.06066 0 1.06066 +v 1.095216 0 1.02494 +v 1.11412 0 1.004359 +v 1.160614 0 0.9502504 +v 1.16453 0 0.9454472 +v 1.211706 0 0.8841767 +v 1.220739 0 0.8716629 +v 1.255493 0 0.8208146 +v 1.275269 0 0.7897395 +v 1.295765 0 0.7556404 +v 1.323961 0 0.7050729 +v 1.332426 0 0.6889419 +v 1.36541 0 0.6210115 +v 1.366652 0 0.6182728 +v 1.394682 0 0.5521421 +v 1.403264 0 0.5299529 +v 1.420238 0 0.4826231 +v 1.433795 0 0.4407179 +v 1.442098 0 0.4127373 +v 1.458318 0 0.3511515 +v 1.460314 0 0.3427577 +v 1.474958 0 0.2729446 +v 1.476976 0 0.2618065 +v 1.486126 0 0.2035431 +v 1.489967 0 0.1731963 +v 1.493932 0 0.1347817 +v 1.497545 0 0.08578844 +v 1.498509 0 0.06687037 +v -0.00983305 3 0.00181963 +v -0.1377852 2.996594 0.02549748 +v -1.394337 2.25 0.1257962 +v -1.378191 2.293067 0.1243396 +v -1.571281 2.099657 0.01979776 +v -1.571405 2.098605 0.03955493 +v -1.571571 2.097385 0.05261122 +v -1.571655 2.096767 0.05923585 +v -1.498509 2.25 0.06687037 +v -1.74826 0.234375 0.07801542 +v -1.656555 0.1516113 0.0739231 +v -1.576556 0.08554687 0.0703532 +v -1.519972 0.03530274 0.06782815 +v -1.504118 0.01583862 0.06712069 +v 1.357572 2.214844 0.1224793 +v 1.370372 2.221875 0.1236341 +v -0.1966611 2.55 0.03639261 +v -0.2412171 2.52356 0.04463781 +v -1.294741 2.25 0.1168108 +v -1.318707 2.221875 0.1189729 +v -0.8216628 2.4 0.07412991 +v -1.000623 2.371289 0.09027563 +v -1.151573 2.339062 0.1038942 +v -1.210708 2.320532 0.1092293 +v -1.255837 2.299805 0.1133008 +v -1.284626 2.27644 0.1158982 +v -1.292164 2.263632 0.1165782 +v 1.151573 2.339062 0.1038942 +v 1.210708 2.320532 0.1092293 +v 0.8216628 2.4 0.07412991 +v 1.000623 2.371289 0.09027563 +v 0.4544044 2.460938 0.04099609 +v 0.6333651 2.428711 0.05714181 +v -0.4544044 2.460938 0.04099609 +v -0.6333651 2.428711 0.05714181 +v -0.3021442 2.500195 0.02772093 +v -0.3742612 2.479468 0.03376561 +v 0.1966611 2.55 0.03639261 +v 0.2412171 2.52356 0.04463781 +v 0.3021442 2.500195 0.02772093 +v 0.3742612 2.479468 0.03376561 +v -0.3249303 2.83125 0.02931501 +v -0.3208034 2.83125 0.05936545 +v -0.2559475 2.758301 0.0473637 +v -0.1937419 2.683594 0.03585241 +v -0.1729595 2.647229 0.03200657 +v -0.1640315 2.612402 0.03035442 +v -0.1651787 2.595772 0.03056672 +v -0.1706885 2.579773 0.03158632 +v -0.1810272 2.564488 0.03349952 +v 0.3249303 2.83125 0.02931501 +v 0.2559475 2.758301 0.0473637 +v 0.3630762 2.897168 0.03275651 +v 0.3493356 2.865417 0.03151684 +v -0.3419652 2.950781 0.03137441 +v -0.355425 2.93882 0.03206623 +v -0.3630762 2.897168 0.03275651 +v -0.3493356 2.865417 0.03151684 +v 0.3419652 2.950781 0.03137441 +v 0.355425 2.93882 0.03206623 +v 0.3623734 2.925842 0.03269311 +v -0.3623734 2.925842 0.03269311 +v 0.00983305 3 0.00181963 +v 0.1377852 2.996594 0.02549748 +v 0.2328244 2.986816 0.04308473 +v 0.2986814 2.971326 0.05527172 +v -0.2328244 2.986816 0.04308473 +v -0.2986814 2.971326 0.05527172 +v 0.1937419 2.683594 0.03585241 +v 0.1729595 2.647229 0.03200657 +v 0.1640315 2.612402 0.03035442 +v 0.1651787 2.595772 0.03056672 +v 0.1706885 2.579773 0.03158632 +v 0.1810272 2.564488 0.03349952 +v 1.255837 2.299805 0.1133008 +v 1.284626 2.27644 0.1158982 +v 1.292164 2.263632 0.1165782 +v -1.919964 0.4535156 0.08567765 +v -1.88216 0.3917542 0.08399066 +v -1.839966 0.3347168 0.08210775 +v -1.794845 0.2822937 0.08009424 +v -1.344539 2.2125 0.1213035 +v -1.357572 2.214844 0.1224793 +v -1.397449 2.348438 0.126077 +v -1.418652 2.342285 0.1279899 +v -1.841917 1.471875 0.08219483 +v -1.905818 1.283936 0.0850464 +v -1.331506 2.214844 0.1201277 +v -1.370372 2.221875 0.1236341 +v -1.374885 2.323828 0.1240412 +v -1.382082 2.342285 0.1246906 +v -1.473729 2.293067 0.06576457 +v -1.443357 2.323828 0.1302187 +v -1.68192 1.857422 0.07505502 +v -1.766309 1.66333 0.07882083 +v -1.955086 1.100391 0.08724493 +v -1.973317 1.010541 0.0880585 +v -1.986792 0.9221191 0.08865983 +v -1.995146 0.8352356 0.08903261 +v -1.926908 0.4630581 0.01978745 +v -1.927673 0.4655276 0.0494749 +v -1.927828 0.466013 0.05265598 +v -1.928624 0.4685055 0.06899256 +v -1.929826 0.4722082 0.08612353 +v -1.674566 1.876376 0.03952786 +v -1.673627 1.877596 0.05261255 +v -1.675391 1.875325 0.01979196 +v -2.067188 1.873972 0.05273438 +v -2.702369 1.65 0.05273438 +v -2.699981 1.604845 0.05273438 +v -2.538676 1.197842 0.05273438 +v -2.493228 1.134538 0.05273438 +v -2.413887 1.849086 0.05273438 +v -2.480317 1.837032 0.05273438 +v -2.320076 0.9512412 0.05273438 +v -2.249603 0.8945211 0.05273438 +v -2.663 1.444679 0.05273438 +v -2.640247 1.385231 0.05273438 +v -2.628704 1.781539 0.05273438 +v -2.660715 1.755487 0.05273438 +v -2.256443 1.865528 0.05273438 +v -2.172509 0.8410777 0.05273438 +v -2.088649 0.7915635 0.05273438 +v -1.999896 0.75 0.02035914 +v -1.999278 0.7471675 0.05260727 +v -1.999597 0.7486507 0.0400938 +v -2.441743 1.071902 0.05273438 +v -2.384074 1.010586 0.05273438 +v -2.61204 1.32384 0.05273438 +v -2.578231 1.26116 0.05273438 +v -2.692721 1.555139 0.05273438 +v -2.68376 1.725102 0.05273438 +v -2.697693 1.69005 0.05273438 +v -2.53836 1.821978 0.05273438 +v -2.58787 1.803592 0.05273438 +v -2.411283 2.073876 0.05273438 +v -2.15425 2.090481 0.05273438 +v -2.522287 2.060002 0.05273438 +v -2.621614 2.041539 0.05273438 +v -2.70926 2.017833 0.05273438 +v -2.785226 1.988227 0.05273438 +v -2.84951 1.952066 0.05273438 +v -2.902109 1.908695 0.05273438 +v -2.943022 1.857459 0.05273438 +v -2.972248 1.797701 0.05273438 +v -2.989785 1.728767 0.05273438 +v -2.995631 1.65 0.05273438 +v -2.991537 1.566514 0.05273438 +v -2.979205 1.483899 0.05273438 +v -2.958561 1.402218 0.05273438 +v -2.929532 1.321532 0.05273438 +v -2.892042 1.241902 0.05273438 +v -2.846019 1.163391 0.05273438 +v -2.791388 1.08606 0.05273438 +v -2.728074 1.009971 0.05273438 +v -2.656004 0.9351852 0.05273438 +v -2.575104 0.8617647 0.05273438 +v -2.485301 0.7897713 0.05273438 +v -2.386518 0.7192666 0.05273438 +v -2.278683 0.6503123 0.05273438 +v -2.03556 0.5173019 0.05273438 +v -2.161721 0.5829701 0.05273438 +v -1.850525 2.096599 0.05273438 +v -1.673158 1.878207 0.05915629 +v -1.671554 1.88034 0.07459743 +v 1.344539 2.2125 0.1213035 +v 1.331506 2.214844 0.1201277 +v 1.318707 2.221875 0.1189729 +v 1.294741 2.25 0.1168108 +v 1.394337 2.25 0.1257962 +v 1.378191 2.293067 0.1243396 +v 1.374885 2.323828 0.1240412 +v 1.382082 2.342285 0.1246906 +v 1.397449 2.348438 0.126077 +v 1.418652 2.342285 0.1279899 +v 1.443357 2.323828 0.1302187 +v 1.473729 2.293067 0.06576457 +v 1.498509 2.25 0.06687037 +v 1.68192 1.857422 0.07505502 +v 1.766309 1.66333 0.07882083 +v 1.841917 1.471875 0.08219483 +v 2.041088 0.5396703 0.05902095 +v 1.947804 0.5068788 0.03981679 +v 1.947766 0.5061007 0.01991576 +v 1.947877 0.5081908 0.05948474 +v 1.919964 0.4535156 0.08567765 +v 1.88216 0.3917542 0.08399066 +v 1.839966 0.3347168 0.08210775 +v 1.794845 0.2822937 0.08009424 +v 1.74826 0.234375 0.07801542 +v 1.656555 0.1516113 0.0739231 +v 1.576556 0.08554687 0.0703532 +v 1.519972 0.03530274 0.06782815 +v 1.504118 0.01583862 0.06712069 +v 3.080605 2.124625 0.04572684 +v 3.025207 2.074755 0.04704208 +v 2.976429 2.021393 0.04867405 +v 2.933598 1.964867 0.05059633 +v 2.89604 1.905505 0.05278255 +v 2.863081 1.843635 0.0552063 +v 2.546577 0.9603542 0.0963221 +v 2.507261 0.8978166 0.0993001 +v 2.808267 1.713683 0.06066084 +v 2.763764 1.577635 0.06674881 +v 2.684131 1.297751 0.07998047 +v 2.638221 1.159163 0.08670187 +v 2.581061 1.024976 0.09321213 +v 3.217982 2.26 0.02641633 +v 3.280173 2.286016 0.0271225 +v 3.346983 2.310437 0.02911377 +v 3.394517 2.323917 0.03192902 +v 3.421352 2.327107 0.03515625 +v 3.426563 2.325047 0.03679562 +v 3.426066 2.320658 0.03838348 +v 3.407237 2.305223 0.04119873 +v 3.363443 2.281453 0.04319 +v 3.293262 2.25 0.04394531 +v 3.213959 2.212575 0.04415206 +v 3.143298 2.170674 0.0447547 +v 2.833646 2.274739 0.0271225 +v 3.02 2.26 0.1127983 +v 3.03393 2.26 0.1125138 +v 3.073886 2.26 0.1090349 +v 3.09372 2.26 0.1057134 +v 3.101744 2.26 0.1040312 +v 3.121272 2.26 0.09901254 +v 3.128023 2.26 0.09675082 +v 3.140427 2.26 0.09259474 +v 3.158996 2.26 0.08454897 +v 3.174779 2.26 0.07576314 +v 3.184691 2.26 0.06849021 +v 3.191096 2.26 0.06378992 +v 3.205081 2.26 0.04931249 +v 3.208959 2.26 0.04401399 +v 0.00929788 3 0.00368095 +v 0.1302861 2.996594 0.05157909 +v -0.00929788 3 0.00368095 +v -0.1302861 2.996594 0.05157909 +v -0.00836996 3 0.0054721 +v 0.00836996 3 0.0054721 +v 0.1172836 2.996594 0.0766775 +v 0.00707107 3 0.00707107 +v 0.09908299 2.996594 0.09908299 +v -0.1172836 2.996594 0.0766775 +v -0.00707107 3 0.00707107 +v -0.09908299 2.996594 0.09908299 +v -0.0054721 3 0.00836996 +v 0.0054721 3 0.00836996 +v 0.0766775 2.996594 0.1172836 +v -0.0766775 2.996594 0.1172836 +v 0.00368095 3 0.00929788 +v 0.05157909 2.996594 0.1302861 +v -0.00368095 3 0.00929788 +v -0.05157909 2.996594 0.1302861 +v -0.00181963 3 0.00983305 +v 0.00181963 3 0.00983305 +v 0.02549748 2.996594 0.1377852 +v 0 3 0.01 +v 0 2.996594 0.1401245 +v -0.02549748 2.996594 0.1377852 +v -1.998012 0.75 0.08916049 +v -0.2264886 2.986816 0.06512061 +v 0.2264886 2.986816 0.06512061 +v 2.848143 2.275105 0.05062866 +v 2.86263 2.292981 0.0543457 +v 3.265675 2.285649 0.05062866 +v -0.2996008 2.500195 0.05544187 +v 0.2996008 2.500195 0.05544187 +v 0.3695077 2.479468 0.06837831 +v 3.33073 2.309851 0.0543457 +v 2.862827 2.303655 0.05960083 +v 0.3208034 2.83125 0.05936545 +v -0.3448987 2.865417 0.06382434 +v 0.1551039 2.612402 0.06140424 +v 0.1561887 2.595772 0.06183369 +v -0.1551039 2.612402 0.06140424 +v -0.163546 2.647229 0.06474639 +v -0.1561887 2.595772 0.06183369 +v 0.1613986 2.579773 0.06389625 +v 0.3390867 2.950781 0.06274882 +v 0.3509108 2.93882 0.0649369 +v -0.3390867 2.950781 0.06274882 +v 0.3448987 2.865417 0.06382434 +v -0.3584647 2.897168 0.06633478 +v 0.1711746 2.564488 0.06776647 +v -0.1613986 2.579773 0.06389625 +v 3.376675 2.323237 0.05960083 +v 2.850915 2.307156 0.065625 +v 0.163546 2.647229 0.06474639 +v -0.1831973 2.683594 0.07252616 +v 0.3577709 2.925842 0.06620639 +v -0.3509108 2.93882 0.0649369 +v -0.3577709 2.925842 0.06620639 +v 0.3584647 2.897168 0.06633478 +v 0.1859577 2.55 0.07361894 +v -0.1711746 2.564488 0.06776647 +v -0.3695077 2.479468 0.06837831 +v 0.4486331 2.460938 0.08302064 +v 3.40221 2.326437 0.065625 +v 2.829075 2.303513 0.07164917 +v 0.1831973 2.683594 0.07252616 +v -0.2489824 2.758301 0.07158808 +v -0.2420174 2.758301 0.09581246 +v 0.2280887 2.52356 0.09029824 +v -0.1859577 2.55 0.07361894 +v 3.406916 2.324415 0.06868515 +v 3.406032 2.320083 0.07164917 +v 2.799486 2.292754 0.0769043 +v 0.6253207 2.428711 0.1157171 +v -0.4486331 2.460938 0.08302064 +v 3.386842 2.304805 0.0769043 +v 2.764328 2.274907 0.08062134 +v 0.2920273 2.971326 0.08357998 +v 3.343338 2.281233 0.08062134 +v 2.725781 2.25 0.08203125 +v 3.274219 2.25 0.08203125 +v 2.690354 2.219394 0.08278667 +v 3.196321 2.212839 0.08241718 +v -0.2280887 2.52356 0.09029824 +v 0.2914479 2.500195 0.08379786 +v -0.2914479 2.500195 0.08379786 +v 3.126909 2.171282 0.0835421 +v 2.598488 2.119921 0.08781189 +v 2.654927 2.188789 0.0835421 +v 3.065319 2.125651 0.08535676 +v 3.010887 2.076271 0.08781189 +v 2.553569 2.044981 0.09444649 +v 0.2489824 2.758301 0.07158808 +v -0.3136564 2.83125 0.08977037 +v 2.96295 2.023464 0.09085822 +v 2.87067 2.275674 0.07051849 +v 2.920845 1.967556 0.09444649 +v 2.517273 1.965555 0.1030518 +v 3.243148 2.28508 0.07051849 +v 2.887885 2.293891 0.0756958 +v -0.2201528 2.986816 0.08715649 +v -0.2091672 2.986816 0.1083617 +v 0.2091672 2.986816 0.1083617 +v 0.2201528 2.986816 0.08715649 +v -1.999097 0.7463243 0.05972083 +v -1.85042 2.089472 0.0984375 +v -2.037283 0.5262064 0.0984375 +v -2.162072 0.5913503 0.0984375 +v -1.930879 0.4754244 0.0984375 +v -1.929976 0.4726693 0.08825709 +v -2.151423 2.083452 0.0984375 +v -2.406256 2.067111 0.0984375 +v -2.277739 0.6582412 0.0984375 +v -2.384361 0.7267982 0.0984375 +v -2.482014 0.7969406 0.0984375 +v -2.570775 0.8685874 0.0984375 +v -2.650719 0.9416577 0.0984375 +v -2.721925 1.016071 0.0984375 +v -2.784467 1.091745 0.0984375 +v -2.838422 1.168601 0.0984375 +v -2.883867 1.246556 0.0984375 +v -2.920878 1.32553 0.0984375 +v -2.949531 1.405443 0.0984375 +v -2.969903 1.486212 0.0984375 +v -2.982071 1.567759 0.0984375 +v -2.986109 1.65 0.0984375 +v -2.980301 1.72751 0.0984375 +v -2.962882 1.795344 0.0984375 +v -2.933856 1.854148 0.0984375 +v -2.893232 1.904567 0.0984375 +v -2.841015 1.947246 0.0984375 +v -2.777211 1.982829 0.0984375 +v -2.701827 2.011962 0.0984375 +v -2.614869 2.03529 0.0984375 +v -2.516343 2.053458 0.0984375 +v -1.668474 1.884523 0.09781715 +v -1.668369 1.884669 0.0984182 +v -1.671137 1.880894 0.07861304 +v -2.070014 1.881001 0.0984375 +v -2.26147 1.872293 0.0984375 +v -2.420631 1.855335 0.0984375 +v -2.48775 1.842902 0.0984375 +v -2.546375 1.827376 0.0984375 +v -2.596365 1.808412 0.0984375 +v -2.63758 1.785667 0.0984375 +v -2.669881 1.758798 0.0984375 +v -2.693126 1.727459 0.0984375 +v -2.707176 1.691308 0.0984375 +v -2.711891 1.65 0.0984375 +v -2.709447 1.603601 0.0984375 +v -2.702022 1.552826 0.0984375 +v -2.686838 1.496753 0.0984375 +v -2.671653 1.440681 0.0984375 +v -2.648422 1.380577 0.0984375 +v -2.619636 1.318631 0.0984375 +v -2.585152 1.255475 0.0984375 +v -2.544825 1.191742 0.0984375 +v -2.498513 1.128066 0.0984375 +v -2.446073 1.06508 0.0984375 +v -2.387361 1.003416 0.0984375 +v -2.322233 0.9437096 0.0984375 +v -2.250547 0.8865922 0.0984375 +v -2.172159 0.8326976 0.0984375 +v -2.086925 0.7826589 0.0984375 +v -1.997464 0.7383552 0.0984375 +v -1.99791 0.7405585 0.08916482 +v -1.998391 0.7429329 0.0791719 +v 2.883909 1.908868 0.09852742 +v 3.305474 2.308941 0.0756958 +v 2.890551 2.304711 0.08301544 +v 2.851477 1.847726 0.1030518 +v 2.488119 1.88257 0.1138248 +v -0.2920273 2.971326 0.08357998 +v 0.3315324 2.950781 0.09488659 +v 0.3612757 2.479468 0.1033993 +v -0.6253207 2.428711 0.1157171 +v 0.8112269 2.4 0.1501195 +v 2.132118 0.5847386 0.1129189 +v 1.921362 1.285157 0.1140625 +v 2.040098 0.5459787 0.1142341 +v 1.905868 1.286898 0.05969036 +v -1.57189 2.095255 0.07016051 +v 0.3136564 2.83125 0.08977037 +v -0.3372149 2.865417 0.09651295 +v 1.947878 0.5082043 0.05968775 +v 2.88066 2.308197 0.09140625 +v 3.348951 2.322181 0.08301544 +v 1.948059 0.5110373 0.08694297 +v 1.947996 0.5101005 0.07951125 +v 1.948163 0.5125908 0.09926777 +v 1.948342 0.5150895 0.1150869 +v 1.905713 1.285052 0.07951832 +v 2.797476 1.719373 0.1132336 +v 0.1396246 2.612402 0.09128357 +v 0.1406011 2.595772 0.09192199 +v -0.1396246 2.612402 0.09128357 +v -0.1472242 2.647229 0.096252 +v -0.1406011 2.595772 0.09192199 +v 0.1452911 2.579773 0.09498818 +v -0.3315324 2.950781 0.09488659 +v 0.3430931 2.93882 0.09819532 +v 0.3372149 2.865417 0.09651295 +v -0.3504787 2.897168 0.1003091 +v 0.1540914 2.564488 0.1007417 +v -0.1452911 2.579773 0.09498818 +v 0.1472242 2.647229 0.096252 +v -0.1649143 2.683594 0.1078174 +v -0.3430931 2.93882 0.09819532 +v 0.3498004 2.925842 0.100115 +v 0.2824255 2.971326 0.1118097 +v 2.860204 2.304407 0.09979706 +v 3.372466 2.325397 0.09140625 +v 1.469228 2.293067 0.1325528 +v 1.493932 2.25 0.1347817 +v -1.469228 2.293067 0.1325528 +v -0.3498004 2.925842 0.100115 +v 0.3504787 2.897168 0.1003091 +v 2.753536 1.585083 0.1245978 +v 2.431159 1.716211 0.1367503 +v 2.458965 1.799585 0.1245978 +v -1.497732 0 0.08245644 +v 1.676783 1.857422 0.1512784 +v -1.572076 2.09406 0.07879286 +v -1.572734 2.090326 0.0984375 +v -1.573681 2.085554 0.117523 +v -1.575011 2.07956 0.1362024 +v -1.575098 2.07921 0.137063 +v -1.493932 2.25 0.1347817 +v -1.51533 0.03530274 0.1367121 +v -1.499525 0.01583862 0.1352862 +v 1.499525 0.01583862 0.1352862 +v -0.1540914 2.564488 0.1007417 +v -0.1766784 2.55 0.09153045 +v 0.1776568 2.55 0.09185892 +v 1.51533 0.03530274 0.1367121 +v -1.571741 0.08554687 0.1418015 +v -0.3612757 2.479468 0.1033993 +v 0.4386383 2.460938 0.1255409 +v 2.899889 2.276412 0.08679199 +v 3.376389 2.323434 0.0956686 +v 1.571741 0.08554687 0.1418015 +v -1.651496 0.1516113 0.1489969 +v 2.920642 2.295071 0.09316406 +v 3.21393 2.284343 0.08679199 +v 0.2420174 2.758301 0.09581246 +v -0.3033434 2.83125 0.1200909 +v 2.831175 2.293404 0.1071167 +v 3.374904 2.319189 0.09979706 +v 0.1649143 2.683594 0.1078174 +v -0.2299407 2.758301 0.1191237 +v -0.2178641 2.758301 0.1424349 +v 2.400391 1.634692 0.1492969 +v 0.2179072 2.52356 0.1126707 +v 1.651496 0.1516113 0.1489969 +v -1.742921 0.234375 0.1572453 +v 0.9879146 2.371289 0.182816 +v -0.8112269 2.4 0.1501195 +v 1.760914 1.66333 0.1588686 +v -1.665681 1.88842 0.1138689 +v -1.66161 1.894254 0.13289 +v -1.66054 1.895836 0.1369346 +v -1.657214 1.900756 0.1495129 +v -1.676783 1.857422 0.1512784 +v 2.926509 2.306082 0.1021729 +v 3.272717 2.307761 0.09316406 +v -0.1981816 2.986816 0.1295669 +v -0.1828042 2.986816 0.1484969 +v 0.1828042 2.986816 0.1484969 +v 0.1981816 2.986816 0.1295669 +v 2.795567 2.275248 0.112294 +v 3.355153 2.304154 0.1071167 +v 1.742921 0.234375 0.1572453 +v -1.789363 0.2822937 0.1614353 +v 1.836292 1.471875 0.1656691 +v -1.760914 1.66333 0.1588686 +v 1.905662 1.284376 0.08504891 +v 2.674609 1.309058 0.1492969 +v 2.714349 1.447449 0.1367503 +v 2.363763 1.556614 0.1618435 +v 1.789363 0.2822937 0.1614353 +v -1.834347 0.3347168 0.1654936 +v 2.755371 2.25 0.1142578 +v 3.312099 2.280892 0.112294 +v 2.715776 2.22004 0.1147953 +v 3.244629 2.25 0.1142578 +v 1.834347 0.3347168 0.1654936 +v -1.876412 0.3917542 0.1692887 +v 1.905628 1.283936 0.08864889 +v -1.836292 1.471875 0.1656691 +v 3.168916 2.21325 0.1147953 +v 2.680391 2.187844 0.1163622 +v 3.312993 2.32081 0.1021729 +v 2.919238 2.309546 0.1125 +v 0.6113896 2.428711 0.1749834 +v -0.4386383 2.460938 0.1255409 +v 2.620738 2.117566 0.1223094 +v 3.101444 2.172226 0.1163622 +v -0.2824255 2.971326 0.1118097 +v 0.3206317 2.950781 0.1269352 +v -0.2832949 2.500195 0.1121539 +v 0.2832949 2.500195 0.1121539 +v 0.349397 2.479468 0.1383231 +v 1.876412 0.3917542 0.1692887 +v -1.914101 0.4535156 0.172689 +v 2.93446 2.277285 0.09944916 +v -1.899998 1.283936 0.1714166 +v 3.041567 2.127246 0.1188898 +v 1.914101 0.4535156 0.172689 +v -1.932916 0.4816088 0.1170733 +v -1.935429 0.4892316 0.1350994 +v -1.935763 0.4902513 0.1370189 +v -1.938425 0.4983785 0.1523177 +v -1.941895 0.5091177 0.1684921 +v 2.629011 1.1725 0.1618435 +v 2.318379 1.483561 0.173996 +v 2.9594 2.296468 0.1067505 +v 3.179358 2.283469 0.09944916 +v 0.2698184 2.971326 0.1395119 +v -1.949115 1.100391 0.1758479 +v 2.573385 2.040804 0.1315505 +v 2.988637 2.078626 0.1223094 +v -1.967291 1.010541 0.1774877 +v 1.899998 1.283936 0.1714166 +v 1.905529 1.282635 0.09928349 +v -1.980725 0.9221191 0.1786998 +v -1.989053 0.8352356 0.1794511 +v -1.99191 0.75 0.1797089 +v -1.996489 0.7334419 0.1145661 +v -1.995073 0.7261946 0.133442 +v -1.994741 0.7244812 0.1369534 +v -1.993358 0.7173347 0.1515984 +v 0.3033434 2.83125 0.1200909 +v -0.3261273 2.865417 0.1291108 +v -0.9879146 2.371289 0.182816 +v 1.136947 2.339062 0.2103948 +v -0.2179072 2.52356 0.1126707 +v 0.270649 2.500195 0.1399413 +v 2.942007 2.026682 0.1265525 +v 0.117957 2.612402 0.117957 +v 0.118782 2.595772 0.118782 +v -0.117957 2.612402 0.117957 +v -0.1243773 2.647229 0.1243773 +v 3.333887 2.324048 0.1125 +v 2.900578 2.305567 0.1228271 +v -0.1673991 2.55 0.109442 +v 0.1673991 2.55 0.109442 +v 0.2053255 2.52356 0.1342374 +v -0.118782 2.595772 0.118782 +v 0.1227441 2.579773 0.1227441 +v 2.969055 2.307703 0.1170731 +v 3.233959 2.306364 0.1067505 +v 2.572246 1.040365 0.173996 +v 2.261343 1.417118 0.1853602 +v 2.535304 1.959198 0.1435364 +v 2.90103 1.971733 0.1315505 +v 0.3318122 2.93882 0.1313614 +v -0.3206317 2.950781 0.1269352 +v 0.1301788 2.564488 0.1301788 +v -0.1227441 2.579773 0.1227441 +v 3.336794 2.322161 0.117746 +v -0.2898027 2.83125 0.1498449 +v 0.2299407 2.758301 0.1191237 +v 0.1243773 2.647229 0.1243773 +v -0.1393221 2.683594 0.1393221 +v 2.538018 0.9767656 0.1798012 +v 0.3261273 2.865417 0.1291108 +v -0.338955 2.897168 0.1341892 +v 2.973046 2.278259 0.10849 +v 0.338299 2.925842 0.1339295 +v -0.3318122 2.93882 0.1313614 +v -2.039962 0.5400428 0.1371094 +v -2.171614 0.8196762 0.1371094 +v -2.084247 0.7688226 0.1371094 +v -2.325585 0.9320065 0.1371094 +v -2.252014 0.874272 0.1371094 +v -2.452801 1.054478 0.1371094 +v -2.392467 0.9922764 0.1371094 +v -2.55438 1.182264 0.1371094 +v -2.506725 1.118009 0.1371094 +v -2.63144 1.310536 0.1371094 +v -2.595905 1.246641 0.1371094 +v -2.6851 1.434468 0.1371094 +v -2.661125 1.373346 0.1371094 +v -2.716475 1.549232 0.1371094 +v -2.703503 1.493298 0.1371094 +v -2.726686 1.65 0.1371094 +v -2.724156 1.601667 0.1371094 +v -2.70768 1.731121 0.1371094 +v -2.721912 1.693261 0.1371094 +v -2.651373 1.792082 0.1371094 +v -2.684123 1.763942 0.1371094 +v -2.558829 1.835763 0.1371094 +v -2.609565 1.815903 0.1371094 +v -2.431111 1.865044 0.1371094 +v -2.4993 1.852023 0.1371094 +v -2.269282 1.882804 0.1371094 +v -2.074407 1.891924 0.1371094 +v -2.604389 2.025581 0.1371094 +v -2.507107 2.043292 0.1371094 +v -2.690277 2.002841 0.1371094 +v -2.764757 1.974442 0.1371094 +v -2.827815 1.939755 0.1371094 +v -2.879439 1.898152 0.1371094 +v -2.919614 1.849004 0.1371094 +v -2.948328 1.791681 0.1371094 +v -2.965565 1.725556 0.1371094 +v -2.971314 1.65 0.1371094 +v -2.967362 1.569692 0.1371094 +v -2.95545 1.489806 0.1371094 +v -2.9355 1.410453 0.1371094 +v -2.907432 1.331743 0.1371094 +v -2.871164 1.253787 0.1371094 +v -2.826618 1.176695 0.1371094 +v -2.773713 1.100579 0.1371094 +v -2.71237 1.025549 0.1371094 +v -2.642508 0.9517149 0.1371094 +v -2.564047 0.8791887 0.1371094 +v -2.476907 0.8080806 0.1371094 +v -2.381009 0.7385013 0.1371094 +v -2.276272 0.6705614 0.1371094 +v -2.162616 0.6043717 0.1371094 +v -2.398445 2.0566 0.1371094 +v -2.147031 2.072529 0.1371094 +v -1.850256 2.078398 0.1371094 +v 2.865058 1.914094 0.1372346 +v -0.1674269 2.986816 0.1674269 +v -0.1484969 2.986816 0.1828042 +v 0.1484969 2.986816 0.1828042 +v 0.1674269 2.986816 0.1674269 +v 1.905372 1.280307 0.1145057 +v 2.499008 0.9152428 0.1853602 +v 2.225551 1.387995 0.1904511 +v 3.140772 2.282495 0.10849 +v 3.00266 2.298028 0.1164551 +v 3.334529 2.318029 0.1228271 +v 2.872278 2.294247 0.1318359 +v -0.338299 2.925842 0.1339295 +v 0.338955 2.897168 0.1341892 +v -0.1301788 2.564488 0.1301788 +v -0.1544102 2.55 0.1254317 +v 0.1544102 2.55 0.1254317 +v 2.454554 0.8561205 0.1906235 +v 2.964885 2.311142 0.1289062 +v 3.270447 2.319189 0.1170731 +v 2.503471 1.874387 0.1577182 +v 2.833446 1.854084 0.1435364 +v -0.349397 2.479468 0.1383231 +v 0.4242159 2.460938 0.1679432 +v 1.195331 2.320532 0.2211988 +v -1.136947 2.339062 0.2103948 +v 2.403992 0.7997223 0.195542 +v 2.147605 1.333317 0.2000663 +v 2.189758 1.358871 0.195542 +v 3.056909 2.280377 0.1157227 +v 3.1907 2.304805 0.1164551 +v 3.016542 2.309513 0.1277161 +v 3.31405 2.303311 0.1318359 +v 2.836086 2.275691 0.138208 +v 2.100728 1.310406 0.2041473 +v 2.346658 0.746372 0.2000663 +v 0.1393221 2.683594 0.1393221 +v -0.2009595 2.758301 0.1632449 +v -0.1840549 2.758301 0.1840549 +v 0.2178641 2.758301 0.1424349 +v 0.2542394 2.971326 0.1662163 +v -0.2698184 2.971326 0.1395119 +v 3.09668 2.301416 0.1242187 +v -1.195331 2.320532 0.2211988 +v 1.239887 2.299805 0.229444 +v 2.281889 0.6963931 0.2041473 +v 2.048766 1.290337 0.2077355 +v -0.2053255 2.52356 0.1342374 +v 0.1904491 2.52356 0.15462 +v 2.209022 0.6501096 0.2077355 +v 1.98864 1.286594 0.1637323 +v 1.991356 1.273307 0.2107819 +v 0.3063192 2.950781 0.1583849 +v -0.270649 2.500195 0.1399413 +v 0.3338005 2.479468 0.1725943 +v 3.27158 2.280449 0.138208 +v 2.79375 2.25 0.140625 +v 2.94835 2.306939 0.1407394 +v 3.28824 2.322451 0.1289062 +v 0.2550221 2.500195 0.166728 +v 2.13011 0.5945588 0.1637323 +v 1.925976 1.273284 0.1656394 +v 2.780709 1.728213 0.1577182 +v 1.26831 2.27644 0.2347039 +v -1.239887 2.299805 0.229444 +v 2.474858 1.788012 0.1735469 +v 1.904891 1.271746 0.1579939 +v 1.904803 1.269691 0.1660735 +v 1.905326 1.279625 0.1189661 +v 2.038502 0.556155 0.1656394 +v 3.20625 2.25 0.140625 +v 2.751322 2.219507 0.1412866 +v 3.13337 2.213783 0.1412866 +v 2.71342 2.186619 0.143215 +v 1.948386 0.5156975 0.1189356 +v 1.948665 0.5194426 0.1384906 +v 1.948717 0.5201124 0.1414431 +v 1.949003 0.523847 0.1579067 +v 1.949185 0.5262058 0.1668393 +v -0.6113896 2.428711 0.1749834 +v 0.7931541 2.4 0.2270055 +v 1.275752 2.263632 0.2360811 +v -1.26831 2.27644 0.2347039 +v 3.068416 2.173452 0.143215 +v 2.681509 2.150565 0.1468748 +v 3.22296 2.317379 0.1277161 +v 3.068147 2.31148 0.1319733 +v 3.119751 2.313446 0.1362305 +v 1.278297 2.25 0.236552 +v -1.275752 2.263632 0.2360811 +v -1.278297 2.25 0.236552 +v 1.301958 2.221875 0.2409305 +v 3.015832 2.312924 0.140625 +v -0.1295669 2.986816 0.1981816 +v -0.1083617 2.986816 0.2091672 +v 0.1083617 2.986816 0.2091672 +v 0.1295669 2.986816 0.1981816 +v 3.289945 2.320655 0.1349173 +v 0.09128357 2.612402 0.1396246 +v 0.09192199 2.595772 0.1406011 +v -0.09128357 2.612402 0.1396246 +v -0.096252 2.647229 0.1472242 +v -0.09192199 2.595772 0.1406011 +v 0.09498818 2.579773 0.1452911 +v 3.01076 2.129315 0.1463259 +v -1.301958 2.221875 0.2409305 +v 1.314595 2.214844 0.243269 +v 0.2898027 2.83125 0.1498449 +v -0.2730698 2.83125 0.1785272 +v -0.3115695 2.865417 0.1610996 +v 1.327462 2.2125 0.2456501 +v -1.314595 2.214844 0.243269 +v 1.34033 2.214844 0.2480313 +v -1.327462 2.2125 0.2456501 +v 2.959778 2.08168 0.1505347 +v 2.599086 2.035386 0.1619083 +v 2.649597 2.114511 0.1505347 +v 1.361669 2.221875 0.1870019 +v -1.34033 2.214844 0.2480313 +v -1.363211 2.221875 0.1867084 +v 0.1007417 2.564488 0.1540914 +v -0.09498818 2.579773 0.1452911 +v 2.92091 2.295245 0.151062 +v 3.286757 2.316658 0.1407394 +v 1.387051 2.25 0.1899735 +v 1.366153 2.323828 0.1876178 +v 1.37486 2.342285 0.1883039 +v -1.369439 2.293067 0.188069 +v -1.3677 2.323828 0.1873232 +v 3.172179 2.315444 0.1341019 +v 1.37099 2.293067 0.1877738 +v -1.387051 2.25 0.1899735 +v 0.096252 2.647229 0.1472242 +v -0.1078174 2.683594 0.1649143 +v 2.446438 1.701711 0.1904736 +v 2.737643 1.596656 0.1735469 +v 1.390147 2.348438 0.1903976 +v -1.37486 2.342285 0.1883039 +v 0.1414214 2.55 0.1414214 +v 0.1734621 2.52356 0.1734621 +v -0.1904491 2.52356 0.15462 +v -0.1414214 2.55 0.1414214 +v 0.5912873 2.428711 0.2340852 +v -0.4242159 2.460938 0.1679432 +v 1.411239 2.342285 0.1932864 +v -1.390147 2.348438 0.1903976 +v 2.914842 2.030856 0.155757 +v -0.3063192 2.950781 0.1583849 +v 0.3170007 2.93882 0.1639078 +v 3.237293 2.32067 0.140625 +v 3.070314 2.31483 0.1476562 +v 1.435814 2.323828 0.1966523 +v -1.411239 2.342285 0.1932864 +v 3.001669 2.30847 0.1535339 +v 0.3115695 2.865417 0.1610996 +v -0.3238246 2.897168 0.1674362 +v 0.2358192 2.971326 0.1914546 +v -0.2542394 2.971326 0.1662163 +v -0.1007417 2.564488 0.1540914 +v -0.1254317 2.55 0.1544102 +v 0.1254317 2.55 0.1544102 +v 1.461551 2.293067 0.2001772 +v -1.435814 2.323828 0.1966523 +v -0.08715649 2.986816 0.2201528 +v -0.06512061 2.986816 0.2264886 +v 0.06512061 2.986816 0.2264886 +v 0.08715649 2.986816 0.2201528 +v -0.3170007 2.93882 0.1639078 +v 0.3231979 2.925842 0.1671121 +v 2.875328 1.977151 0.1619083 +v 2.558692 1.950952 0.1766602 +v 2.884027 2.276215 0.1583633 +v 3.265418 2.302313 0.151062 +v 3.126563 2.316797 0.15 +v 1.486126 2.25 0.2035431 +v -1.461551 2.293067 0.2001772 +v -0.3231979 2.925842 0.1671121 +v 0.3238246 2.897168 0.1674362 +v 3.182811 2.318764 0.1476562 +v -0.2550221 2.500195 0.166728 +v 0.2365451 2.500195 0.192044 +v 1.668022 1.857422 0.2284559 +v -1.575613 2.077128 0.1421675 +v -1.576835 2.072184 0.1542942 +v -1.57883 2.064839 0.16875 +v -1.581934 2.05444 0.1849878 +v -1.582318 2.053272 0.1863678 +v -1.580927 2.053272 0.1978663 +v -1.486126 2.25 0.2035431 +v 3.237655 2.318974 0.1471825 +v -1.507412 0.03530274 0.2064584 +v -1.491689 0.01583862 0.2043051 +v 1.491689 0.01583862 0.2043051 +v 1.507412 0.03530274 0.2064584 +v -1.563528 0.08554687 0.2141443 +v 2.415185 1.617123 0.2079492 +v 2.69907 1.461949 0.1904736 +v -1.831739 1.908124 0.16875 +v -1.850044 2.064034 0.16875 +v -2.274369 0.6865411 0.16875 +v -2.376661 0.7536804 0.16875 +v -2.043436 0.557989 0.16875 +v -2.163322 0.6212608 0.16875 +v -1.941958 0.5093178 0.1687318 +v -2.631856 0.9647595 0.16875 +v -2.699976 1.037842 0.16875 +v -2.470283 0.8225295 0.16875 +v -2.55532 0.892939 0.16875 +v -2.854688 1.263165 0.16875 +v -2.889991 1.339801 0.16875 +v -2.759765 1.112036 0.16875 +v -2.811308 1.187194 0.16875 +v -2.948284 1.572201 0.16875 +v -2.952125 1.65 0.16875 +v -2.917302 1.416952 0.16875 +v -2.936704 1.494468 0.16875 +v -2.901142 1.842331 0.16875 +v -2.861549 1.889832 0.16875 +v -2.946453 1.723023 0.16875 +v -2.929451 1.786931 0.16875 +v -2.675296 1.99101 0.16875 +v -2.590797 2.012988 0.16875 +v -2.810695 1.93004 0.16875 +v -2.748603 1.963564 0.16875 +v -2.388313 2.042967 0.16875 +v -2.141334 2.058362 0.16875 +v -2.495128 2.030105 0.16875 +v -2.080773 0.7508763 0.16875 +v -1.991304 0.706718 0.16875 +v -2.170908 0.802787 0.16875 +v -2.253917 0.8582923 0.16875 +v -2.329933 0.9168274 0.16875 +v -2.399091 0.9778275 0.16875 +v -2.461527 1.040728 0.16875 +v -2.517376 1.104964 0.16875 +v -2.566773 1.169971 0.16875 +v -2.609853 1.235183 0.16875 +v -2.646751 1.300037 0.16875 +v -2.677601 1.363968 0.16875 +v -2.70254 1.42641 0.16875 +v -2.721702 1.486799 0.16875 +v -2.735221 1.54457 0.16875 +v -2.743234 1.599159 0.16875 +v -2.745875 1.65 0.16875 +v -2.741025 1.695794 0.16875 +v -2.726557 1.735872 0.16875 +v -2.702596 1.770614 0.16875 +v -2.669264 1.800403 0.16875 +v -2.626685 1.825618 0.16875 +v -2.574983 1.846642 0.16875 +v -2.514281 1.863854 0.16875 +v -2.444703 1.877637 0.16875 +v -2.279414 1.896437 0.16875 +v -2.080103 1.906091 0.16875 +v 2.840609 1.920873 0.1689042 +v -0.04308473 2.986816 0.2328244 +v 0 2.986816 0.2367774 +v 0.04308473 2.986816 0.2328244 +v 2.83916 2.25 0.1611328 +v 3.223639 2.279925 0.1583633 +v -0.3338005 2.479468 0.1725943 +v 0.4052796 2.460938 0.2095532 +v 0.1078174 2.683594 0.1649143 +v -0.1632449 2.758301 0.2009595 +v -0.1424349 2.758301 0.2178641 +v 0.1840549 2.758301 0.1840549 +v 0.2009595 2.758301 0.1632449 +v 0.2886327 2.950781 0.1887019 +v 0.06140424 2.612402 0.1551039 +v 0.06183369 2.595772 0.1561887 +v -0.06140424 2.612402 0.1551039 +v -0.06474639 2.647229 0.163546 +v 0.3145272 2.479468 0.2056312 +v -0.06183369 2.595772 0.1561887 +v 0.06389625 2.579773 0.1613986 +v 3.058687 2.310107 0.1612106 +v 2.79338 2.218877 0.1618909 +v 3.16084 2.25 0.1611328 +v 3.233438 2.315126 0.1535339 +v 2.975191 2.296359 0.1647949 +v 3.091312 2.214413 0.1618909 +v 2.7525 2.18517 0.1641006 +v -0.1734621 2.52356 0.1734621 +v 0.15462 2.52356 0.1904491 +v 1.945954 0.5201111 0.1755628 +v -1.642866 0.1516113 0.2250105 +v 1.563528 0.08554687 0.2141443 +v 0.2730698 2.83125 0.1785272 +v -0.2532852 2.83125 0.2056348 +v 3.029336 2.174901 0.1641006 +v 2.716096 2.149101 0.1676651 +v 2.810059 1.862329 0.1766602 +v 2.525218 1.862921 0.1941147 +v 0.06776647 2.564488 0.1711746 +v -0.06389625 2.579773 0.1613986 +v 2.974309 2.131763 0.1676651 +v 2.683743 2.110897 0.1724876 +v 3.181738 2.317176 0.1545416 +v 0.06474639 2.647229 0.163546 +v -0.07252616 2.683594 0.1831973 +v 3.122058 2.314297 0.1568848 +v 0.2147854 2.971326 0.2147854 +v -0.2358192 2.971326 0.1914546 +v -1.733814 0.234375 0.2374669 +v 1.642866 0.1516113 0.2250105 +v 2.378074 1.53589 0.2254249 +v 2.659814 1.326627 0.2079492 +v -1.656749 1.901443 0.1512696 +v -0.2935798 2.865417 0.1919362 +v 0.9659055 2.371289 0.276448 +v -0.7931541 2.4 0.2270055 +v 2.925632 2.085294 0.1724876 +v 2.629496 2.028975 0.1855199 +v 3.211137 2.3012 0.1647949 +v 2.937536 2.276799 0.17276 +v -1.651065 1.910149 0.16875 +v 1.751713 1.66333 0.2399185 +v -1.644884 1.919985 0.1842105 +v -1.643757 1.921857 0.1864567 +v -1.672865 1.857422 0.1897621 +v 3.033236 2.29755 0.1730347 +v 3.176421 2.313489 0.1612106 +v -0.06776647 2.564488 0.1711746 +v -0.109442 2.55 0.1673991 +v -0.09153045 2.55 0.1766784 +v 0.09153045 2.55 0.1766784 +v 0.109442 2.55 0.1673991 +v -0.15462 2.52356 0.1904491 +v 0.1342374 2.52356 0.2053255 +v -0.2365451 2.500195 0.192044 +v 0.2154466 2.500195 0.2154466 +v 0.03035442 2.612402 0.1640315 +v 0.03056672 2.595772 0.1651787 +v -0.03035442 2.612402 0.1640315 +v -0.03200657 2.647229 0.1729595 +v 2.882701 2.035795 0.1784715 +v -0.03056672 2.595772 0.1651787 +v 0.03158632 2.579773 0.1706885 +v 3.117554 2.311798 0.1637695 +v -1.780013 0.2822937 0.2437945 +v 1.733814 0.234375 0.2374669 +v 2.758961 1.739679 0.1941147 +v 2.495471 1.773001 0.2135962 +v 3.17013 2.279341 0.17276 +v 2.889844 2.25 0.1757812 +v 0.2986974 2.93882 0.195282 +v -0.2886327 2.950781 0.1887019 +v 1.826696 1.471875 0.2501884 +v -1.668022 1.857422 0.2284559 +v -1.751713 1.66333 0.2399185 +v 0.2935798 2.865417 0.1919362 +v -0.3051274 2.897168 0.1994857 +v 3.110156 2.25 0.1757812 +v 2.840322 2.218174 0.1766082 +v 3.153092 2.300009 0.1730347 +v 3.093164 2.298779 0.1757812 +v 0.03349952 2.564488 0.1810272 +v -0.03158632 2.579773 0.1706885 +v -1.824761 0.3347168 0.2499233 +v 1.780013 0.2822937 0.2437945 +v 2.332076 1.459649 0.2423515 +v 2.6147 1.193224 0.2254249 +v 3.04437 2.215116 0.1766082 +v 2.796118 2.183552 0.1790188 +v 2.586363 1.941196 0.2024231 +v 2.844918 1.983562 0.1855199 +v 0.2532852 2.83125 0.2056348 +v -0.2306936 2.83125 0.2306936 +v 0.07252616 2.683594 0.1831973 +v 0.03200657 2.647229 0.1729595 +v -0.03585241 2.683594 0.1937419 +v 2.127394 0.6078449 0.2107819 +v 1.928136 1.259516 0.213237 +v 0.3045368 2.925842 0.1990996 +v -0.2986974 2.93882 0.195282 +v 0 2.612402 0.1668164 +v 0 2.595772 0.1679831 +v 0 2.647229 0.175896 +v 2.985718 2.176519 0.1790188 +v 2.75678 2.14637 0.1829073 +v 2.994757 2.277425 0.181398 +v -0.1191237 2.758301 0.2299407 +v -0.09581246 2.758301 0.2420174 +v 0.1424349 2.758301 0.2178641 +v 0.1632449 2.758301 0.2009595 +v 0 2.579773 0.1735864 +v -1.866607 0.3917542 0.2556546 +v 1.824761 0.3347168 0.2499233 +v 2.036341 0.5699229 0.213237 +v 1.904485 1.261255 0.1963991 +v 1.904329 1.255452 0.2139542 +v 1.90468 1.266837 0.1772885 +v 1.904739 1.26822 0.1718546 +v 1.89007 1.283936 0.2588681 +v -1.826696 1.471875 0.2501884 +v 0.2677206 2.950781 0.2173544 +v -0.3145272 2.479468 0.2056312 +v 0.291739 2.479468 0.2368542 +v 1.94937 0.5285917 0.1758744 +v 1.949841 0.534709 0.1962053 +v 1.950324 0.5411298 0.214833 +v -0.3045368 2.925842 0.1990996 +v 0.3051274 2.897168 0.1994857 +v -0.1342374 2.52356 0.2053255 +v 0.1126707 2.52356 0.2179072 +v 0.1914546 2.971326 0.2358192 +v -0.2147854 2.971326 0.2147854 +v 2.933625 2.134494 0.1829073 +v 2.721855 2.106863 0.1881683 +v 0.5648931 2.428711 0.2920827 +v -0.5912873 2.428711 0.2340852 +v -0.4052796 2.460938 0.2095532 +v -1.943711 0.5148633 0.1753754 +v -2.335077 0.8988673 0.1933594 +v -2.256168 0.839385 0.1933594 +v -2.170073 0.7828037 0.1933594 +v -2.076663 0.7296423 0.1933594 +v -2.581437 1.155425 0.1933594 +v -2.529979 1.08953 0.1933594 +v -2.471853 1.024459 0.1933594 +v -2.406928 0.9607315 0.1933594 +v -2.723176 1.416876 0.1933594 +v -2.697096 1.352871 0.1933594 +v -2.664866 1.287615 0.1933594 +v -2.626356 1.221627 0.1933594 +v -2.76858 1.65 0.1933594 +v -2.765807 1.596191 0.1933594 +v -2.757402 1.539055 0.1933594 +v -2.743234 1.47911 0.1933594 +v -2.690431 1.810248 0.1933594 +v -2.724453 1.778509 0.1933594 +v -2.748893 1.741493 0.1933594 +v -2.763639 1.698792 0.1933594 +v -2.460786 1.892537 0.1933594 +v -2.532006 1.877852 0.1933594 +v -2.594096 1.859513 0.1933594 +v -2.646942 1.837113 0.1933594 +v -2.086844 1.922854 0.1933594 +v -2.291402 1.912568 0.1933594 +v -1.640488 1.927288 0.1929753 +v -1.848012 1.926644 0.1933594 +v -1.991078 0.705556 0.1703947 +v -1.987105 0.6854331 0.1929903 +v -1.988596 0.6928762 0.1860043 +v -1.989629 0.6981544 0.1795066 +v -1.584156 2.047696 0.192955 +v -1.849792 2.047038 0.1933594 +v -2.134593 2.041599 0.1933594 +v -2.376325 2.026836 0.1933594 +v -2.480954 2.014502 0.1933594 +v -2.574714 1.998088 0.1933594 +v -2.657571 1.977012 0.1933594 +v -2.72949 1.950692 0.1933594 +v -2.790438 1.918545 0.1933594 +v -2.840381 1.879987 0.1933594 +v -2.879285 1.834436 0.1933594 +v -2.907115 1.78131 0.1933594 +v -2.923838 1.720026 0.1933594 +v -2.92942 1.65 0.1933594 +v -2.925711 1.575168 0.1933594 +v -2.914524 1.499983 0.1933594 +v -2.895769 1.424641 0.1933594 +v -2.869356 1.349335 0.1933594 +v -2.835193 1.274262 0.1933594 +v -2.793192 1.199616 0.1933594 +v -2.743262 1.125593 0.1933594 +v -2.685313 1.052387 0.1933594 +v -2.619254 0.980194 0.1933594 +v -2.544995 0.9092084 0.1933594 +v -2.462446 0.8396255 0.1933594 +v -2.371517 0.7716405 0.1933594 +v -2.272117 0.7054483 0.1933594 +v -2.164157 0.6412442 0.1933594 +v -2.047546 0.5792231 0.1933594 +v -1.948777 0.5311057 0.192762 +v -1.945876 0.5217099 0.1835777 +v -1.945373 0.5201202 0.1816732 +v 2.81168 1.928893 0.193536 +v -1.904099 0.4535156 0.2607896 +v 1.866607 0.3917542 0.2556546 +v 0 2.564488 0.1841006 +v -0.03349952 2.564488 0.1810272 +v -0.07361894 2.55 0.1859577 +v 0.03639261 2.55 0.1966611 +v 0.07361894 2.55 0.1859577 +v -1.89007 1.283936 0.2588681 +v 2.88752 2.089328 0.1881683 +v 2.692647 2.064341 0.1952768 +v 0.3818792 2.460938 0.2496645 +v -1.935785 0.5201111 0.2651294 +v 1.904099 0.4535156 0.2607896 +v 2.944043 2.25 0.1845703 +v 3.112909 2.278716 0.181398 +v 0.03585241 2.683594 0.1937419 +v 0 2.683594 0.1970312 +v 3.053833 2.27807 0.1842773 +v -0.2154466 2.500195 0.2154466 +v 0.192044 2.500195 0.2365451 +v 2.717029 1.611667 0.2135962 +v 2.466255 1.682903 0.234429 +v 2.274166 1.39004 0.2581803 +v 2.558549 1.064277 0.2423515 +v 0.7670754 2.4 0.3036781 +v 1.935785 0.5201111 0.2651294 +v 2.89052 2.217422 0.1854386 +v 3.055957 2.25 0.1845703 +v -1.93893 1.100391 0.2655601 +v 1.949396 0.5289299 0.1771552 +v 2.842762 2.181822 0.1879697 +v 2.994172 2.215868 0.1854386 +v 2.782387 1.872085 0.2024231 +v 2.55095 1.849354 0.2224231 +v 0.09029824 2.52356 0.2280887 +v -0.1126707 2.52356 0.2179072 +v -1.957011 1.010541 0.2680365 +v 2.846828 2.041307 0.1946962 +v -0.2723093 2.865417 0.2210798 +v -1.970375 0.9221191 0.2698669 +v 2.800286 2.143448 0.1920527 +v 2.939074 2.178249 0.1879697 +v -1.978659 0.8352356 0.2710015 +v -1.981501 0.75 0.2713908 +v -1.985672 0.6782782 0.1997057 +v -1.983599 0.6682698 0.2065531 +v 2.524717 1.002266 0.2504374 +v -0.03639261 2.55 0.1966611 +v 0 2.55 0.2 +v 3 2.25 0.1875 +v -1.960216 0.5916504 0.2684754 +v 0.1662163 2.971326 0.2542394 +v -0.1914546 2.971326 0.2358192 +v -0.9659055 2.371289 0.276448 +v 1.111618 2.339062 0.3181517 +v 2.76261 2.102549 0.1975767 +v 2.89012 2.137416 0.1920527 +v -0.07158808 2.758301 0.2489824 +v -0.0473637 2.758301 0.2559475 +v 0.09581246 2.758301 0.2420174 +v 0.1191237 2.758301 0.2299407 +v 0.2306936 2.83125 0.2306936 +v -0.2056348 2.83125 0.2532852 +v 2.942346 2.216645 0.1883821 +v 2.239798 1.358236 0.2655113 +v 2.486186 0.9423205 0.2581803 +v 2.890918 2.180035 0.1909534 +v 2.810976 1.990717 0.2023853 +v 2.663438 2.02182 0.2023853 +v 2.617249 1.930307 0.2208252 +v 0.04463781 2.52356 0.2412171 +v -0.09029824 2.52356 0.2280887 +v -1.352967 2.221875 0.2503698 +v 1.352967 2.221875 0.2503698 +v 1.376628 2.25 0.2547483 +v -1.357422 2.323828 0.2511943 +v -1.360687 2.293067 0.2517985 +v 1.357422 2.323828 0.2511943 +v 1.364528 2.342285 0.2525093 +v 1.360687 2.293067 0.2517985 +v 2.845203 2.140432 0.1951012 +v -1.376628 2.25 0.2547483 +v 2.846765 2.093642 0.1975767 +v 2.729254 2.059373 0.204431 +v 1.3797 2.348438 0.2553169 +v -1.364528 2.342285 0.2525093 +v -0.2677206 2.950781 0.2173544 +v 0.2770561 2.93882 0.2249336 +v -1.637578 1.932123 0.1987779 +v -1.629531 1.946186 0.2109375 +v -1.627316 1.950196 0.2136278 +v -1.624669 1.955183 0.2160293 +v -1.623818 1.955182 0.2224016 +v 1.400634 2.342285 0.2591907 +v -1.3797 2.348438 0.2553169 +v -0.192044 2.500195 0.2365451 +v 0.166728 2.500195 0.2550221 +v 2.201317 1.328704 0.2723621 +v 2.679253 1.480757 0.234429 +v 2.434375 1.594336 0.2559375 +v 2.442307 0.8847561 0.2655113 +v 0.2438414 2.950781 0.2438414 +v 0.2723093 2.865417 0.2210798 +v -0.2830202 2.897168 0.2297757 +v 0.2657175 2.479468 0.2657175 +v -0.291739 2.479468 0.2368542 +v 2.804688 2.098096 0.2007129 +v -1.948983 0.5317943 0.1933007 +v -1.590812 2.028804 0.2109375 +v -1.585693 2.04303 0.1984677 +v -1.849512 2.028069 0.2109375 +v 1.425025 2.323828 0.2637043 +v -1.400634 2.342285 0.2591907 +v -1.953312 0.5462348 0.2045986 +v -2.052133 0.602923 0.2109375 +v -2.165089 0.6635482 0.2109375 +v -2.269604 0.7265513 0.2109375 +v -2.365776 0.7916862 0.2109375 +v -2.453699 0.8587069 0.2109375 +v -2.533471 0.9273671 0.2109375 +v -2.605188 0.9974208 0.2109375 +v -2.668946 1.068622 0.2109375 +v -2.724843 1.140724 0.2109375 +v -2.772974 1.213481 0.2109375 +v -2.813435 1.286648 0.2109375 +v -2.846323 1.359977 0.2109375 +v -2.871736 1.433223 0.2109375 +v -2.889768 1.50614 0.2109375 +v -2.900517 1.57848 0.2109375 +v -2.904078 1.65 0.2109375 +v -2.898597 1.71668 0.2109375 +v -2.882185 1.775036 0.2109375 +v -2.854889 1.825624 0.2109375 +v -2.816755 1.868999 0.2109375 +v -2.767829 1.905714 0.2109375 +v -2.708158 1.936326 0.2109375 +v -2.637787 1.961389 0.2109375 +v -2.556764 1.981457 0.2109375 +v -2.465134 1.997087 0.2109375 +v -2.362944 2.008832 0.2109375 +v -2.12707 2.02289 0.2109375 +v -2.072075 0.7059423 0.2109375 +v -1.982272 0.6618614 0.2109375 +v -2.169141 0.7604997 0.2109375 +v -2.258681 0.8182821 0.2109375 +v -2.340818 0.8788216 0.2109375 +v -2.415676 0.9416502 0.2109375 +v -2.483377 1.0063 0.2109375 +v -2.544045 1.072303 0.2109375 +v -2.597804 1.139191 0.2109375 +v -2.644776 1.206496 0.2109375 +v -2.685085 1.27375 0.2109375 +v -2.718855 1.340485 0.2109375 +v -2.746208 1.406234 0.2109375 +v -2.767267 1.470528 0.2109375 +v -2.782158 1.532899 0.2109375 +v -2.791001 1.592879 0.2109375 +v -2.793922 1.65 0.2109375 +v -2.78888 1.702137 0.2109375 +v -2.773822 1.747766 0.2109375 +v -2.748848 1.787321 0.2109375 +v -2.714057 1.821236 0.2109375 +v -2.669551 1.849944 0.2109375 +v -2.615428 1.873879 0.2109375 +v -2.55179 1.893476 0.2109375 +v -2.478736 1.909168 0.2109375 +v -2.304782 1.930572 0.2109375 +v -2.391759 1.91987 0.2109375 +v -2.094368 1.941563 0.2109375 +v -1.848293 1.945613 0.2109375 +v 2.779392 1.937844 0.2111302 +v 0 2.758301 0.260293 +v 0.0473637 2.758301 0.2559475 +v 0.07158808 2.758301 0.2489824 +v 2.519861 1.755241 0.2447456 +v 2.73323 1.753246 0.2224231 +v 2.808466 2.047202 0.204431 +v 2.699734 2.014168 0.2125046 +v -0.2770561 2.93882 0.2249336 +v 0.2824724 2.925842 0.229331 +v 2.392433 0.8298901 0.2723621 +v 2.158344 1.30165 0.2786638 +v 1.450567 2.293067 0.268431 +v -1.425025 2.323828 0.2637043 +v 0 2.52356 0.2453125 +v -0.04463781 2.52356 0.2412171 +v 2.76886 2.053288 0.2076759 +v -1.578525 2.053272 0.2161983 +v -1.585988 2.042135 0.1995254 +v 0.1395119 2.971326 0.2698184 +v -0.1662163 2.971326 0.2542394 +v -0.2824724 2.925842 0.229331 +v 0.2830202 2.897168 0.2297757 +v 2.110502 1.277278 0.284348 +v 2.335918 0.7780394 0.2786638 +v 1.474958 2.25 0.2729446 +v -1.450567 2.293067 0.268431 +v 0.2056348 2.83125 0.2532852 +v -0.1785272 2.83125 0.2730698 +v 2.77468 1.998369 0.2125046 +v 2.650276 1.918663 0.2318664 +v 2.751502 1.882974 0.2208252 +v 2.57967 1.834211 0.2426434 +v 1.655487 1.857422 0.3063519 +v -1.597163 2.012783 0.2198699 +v -1.598968 2.00848 0.2214844 +v -1.606448 1.991573 0.2248686 +v -1.474958 2.25 0.2729446 +v 2.272115 0.729521 0.284348 +v 2.057412 1.255795 0.2893459 +v -1.496084 0.03530274 0.2768539 +v -1.48048 0.01583862 0.2739663 +v 1.48048 0.01583862 0.2739663 +v 2.737207 2.006268 0.2158777 +v -1.956325 0.5566222 0.2109375 +v -0.166728 2.500195 0.2550221 +v 0.1399413 2.500195 0.270649 +v 0.3542112 2.460938 0.2875735 +v -0.3818792 2.460938 0.2496645 +v -0.2480208 2.865417 0.2480208 +v 1.496084 0.03530274 0.2768539 +v -1.551779 0.08554687 0.2871605 +v -1.975938 0.6682434 0.2706288 +v 1.998696 1.237404 0.293589 +v 2.200376 0.6846517 0.2893459 +v 2.640625 1.349414 0.2559375 +v 2.396636 1.50901 0.277446 +v 0.1118097 2.971326 0.2824255 +v -0.1395119 2.971326 0.2698184 +v 0.5322768 2.428711 0.3479912 +v -0.5648931 2.428711 0.2920827 +v -1.111618 2.339062 0.3181517 +v 1.168701 2.320532 0.3344892 +v 2.120054 0.6437486 0.293589 +v 1.931055 1.240913 0.2551228 +v 1.933974 1.22231 0.2970087 +v -1.980758 0.6547657 0.2146477 +v -1.961206 0.5741109 0.2187738 +v -2.168144 0.7366486 0.2214844 +v -2.067169 0.6805985 0.2214844 +v -1.976689 0.6363411 0.2214844 +v -2.346958 0.8573853 0.2214844 +v -2.261369 0.7957153 0.2214844 +v -2.495701 0.9868816 0.2214844 +v -2.42503 0.9212452 0.2214844 +v -2.615305 1.12183 0.2214844 +v -2.559087 1.053881 0.2214844 +v -2.706707 1.258923 0.2214844 +v -2.664473 1.190315 0.2214844 +v -2.770837 1.394854 0.2214844 +v -2.742122 1.327241 0.2214844 +v -2.808631 1.526316 0.2214844 +v -2.792968 1.46135 0.2214844 +v -2.821022 1.65 0.2214844 +v -2.817943 1.589337 0.2214844 +v -2.800481 1.754475 0.2214844 +v -2.815872 1.705715 0.2214844 +v -2.739322 1.832986 0.2214844 +v -2.774935 1.796744 0.2214844 +v -2.638241 1.889242 0.2214844 +v -2.693728 1.863664 0.2214844 +v -2.497932 1.926952 0.2214844 +v -2.572946 1.910183 0.2214844 +v -2.319091 1.949825 0.2214844 +v -2.413284 1.940011 0.2214844 +v -2.102413 1.961571 0.2214844 +v -1.848593 1.965898 0.2214844 +v -1.618656 1.966511 0.2214844 +v -2.057039 0.6282669 0.2214844 +v -2.166086 0.6873993 0.2214844 +v -2.266917 0.749118 0.2214844 +v -2.359636 0.8131225 0.2214844 +v -2.444345 0.8791118 0.2214844 +v -2.521147 0.9467854 0.2214844 +v -2.590146 1.015843 0.2214844 +v -2.651444 1.085983 0.2214844 +v -2.705145 1.156905 0.2214844 +v -2.751352 1.228308 0.2214844 +v -2.790167 1.299892 0.2214844 +v -2.821694 1.371357 0.2214844 +v -2.846035 1.4424 0.2214844 +v -2.863295 1.512722 0.2214844 +v -2.873575 1.582023 0.2214844 +v -2.876978 1.65 0.2214844 +v -2.871606 1.713102 0.2214844 +v -2.855527 1.768328 0.2214844 +v -2.828802 1.816201 0.2214844 +v -2.79149 1.857249 0.2214844 +v -2.743652 1.891994 0.2214844 +v -2.685345 1.920963 0.2214844 +v -2.616631 1.944681 0.2214844 +v -2.537568 1.963673 0.2214844 +v -2.448217 1.978464 0.2214844 +v -2.348636 1.989579 0.2214844 +v -2.119025 2.002882 0.2214844 +v -1.849212 2.007784 0.2214844 +v -1.596286 2.014996 0.2186361 +v 2.744864 1.947416 0.2216867 +v 2.684375 1.906641 0.2355469 +v 2.033422 0.5885257 0.2551228 +v 1.904121 1.241751 0.2489787 +v 1.904106 1.237657 0.2578897 +v 1.904211 1.249385 0.230408 +v 2.45708 1.567374 0.2932617 +v 2.692639 1.629427 0.2447456 +v 1.551779 0.08554687 0.2871605 +v -1.63052 0.1516113 0.3017317 +v -0.2438414 2.950781 0.2438414 +v 0.2173544 2.950781 0.2677206 +v 1.951183 0.5532039 0.244806 +v 1.950642 0.5454796 0.2262862 +v 1.951609 0.5597389 0.2588275 +v 0.2368542 2.479468 0.291739 +v -0.2657175 2.479468 0.2657175 +v 0.2523442 2.93882 0.2523442 +v 0.1785272 2.83125 0.2730698 +v -0.1498449 2.83125 0.2898027 +v -0.1399413 2.500195 0.270649 +v 0.1121539 2.500195 0.2832949 +v -1.963573 0.5829123 0.2214844 +v 0.08357998 2.971326 0.2920273 +v -0.1118097 2.971326 0.2824255 +v 2.718474 1.894619 0.2318664 +v 2.610382 1.818018 0.2547755 +v 2.70451 1.768389 0.2426434 +v 0.2480208 2.865417 0.2480208 +v -0.2577763 2.897168 0.2577763 +v -1.168701 2.320532 0.3344892 +v 1.212264 2.299805 0.3469573 +v -1.975026 0.6290828 0.2231567 +v -1.965862 0.5916504 0.2234043 +v -2.574616 1.034862 0.225 +v -2.633375 1.103906 0.225 +v -2.264143 0.7724167 0.225 +v -2.353297 0.8352539 0.225 +v -2.062104 0.6544327 0.225 +v -2.167115 0.7120239 0.225 +v -2.434687 0.9001786 0.225 +v -2.508424 0.9668335 0.225 +v -2.845759 1.58568 0.225 +v -2.849 1.65 0.225 +v -2.766145 1.313567 0.225 +v -2.796266 1.383106 0.225 +v -2.684809 1.17361 0.225 +v -2.729029 1.243616 0.225 +v -2.819502 1.451875 0.225 +v -2.835963 1.519519 0.225 +v -2.594789 1.927432 0.225 +v -2.51775 1.945312 0.225 +v -2.801869 1.806473 0.225 +v -2.765406 1.845117 0.225 +v -2.843739 1.709409 0.225 +v -2.828004 1.761401 0.225 +v -2.71869 1.877829 0.225 +v -2.661793 1.905102 0.225 +v -1.608344 1.987496 0.225 +v -1.848902 1.986841 0.225 +v -2.333863 1.969702 0.225 +v -2.110719 1.982227 0.225 +v -2.43075 1.959238 0.225 +v -1.618375 1.967064 0.221656 +v -1.970424 0.6097623 0.225 +v -1.616953 1.969852 0.2225222 +v 2.547084 1.735418 0.2669953 +v 0.2572774 2.925842 0.2572774 +v -0.2523442 2.93882 0.2523442 +v 1.63052 0.1516113 0.3017317 +v -1.720784 0.234375 0.3184353 +v 2.596138 1.220104 0.277446 +v 2.349841 1.428635 0.2982788 +v 0.05527172 2.971326 0.2986814 +v -0.08357998 2.971326 0.2920273 +v 0.9341467 2.371289 0.3698201 +v -0.7670754 2.4 0.3036781 +v -0.1121539 2.500195 0.2832949 +v -0.08379786 2.500195 0.2914479 +v 0.08379786 2.500195 0.2914479 +v 1.738549 1.66333 0.3217227 +v -1.655487 1.857422 0.3063519 +v -0.2572774 2.925842 0.2572774 +v 0.2577763 2.897168 0.2577763 +v 1.240054 2.27644 0.3549111 +v -1.212264 2.299805 0.3469573 +v 0.1498449 2.83125 0.2898027 +v -0.1200909 2.83125 0.3033434 +v -0.2210798 2.865417 0.2723093 +v 2.673798 1.784582 0.2547755 +v 2.64209 1.8013 0.2588196 +v 0 2.971326 0.3037525 +v -0.05527172 2.971326 0.2986814 +v 0.7328343 2.4 0.3789181 +v 2.655805 1.50301 0.2686166 +v 1.247331 2.263632 0.3569936 +v -1.240054 2.27644 0.3549111 +v -0.2173544 2.950781 0.2677206 +v 0.1887019 2.950781 0.2886327 +v -1.247331 2.263632 0.3569936 +v -1.264058 2.25 0.2971288 +v 1.265606 2.25 0.2970567 +v 0.2056312 2.479468 0.3145272 +v -0.2368542 2.479468 0.291739 +v 1.289031 2.221875 0.3025551 +v 0.3226175 2.460938 0.3226175 +v -0.3542112 2.460938 0.2875735 +v 1.720784 0.234375 0.3184353 +v -1.766637 0.2822937 0.3269204 +v 1.812969 1.471875 0.3354944 +v -1.738549 1.66333 0.3217227 +v 1.301543 2.214844 0.3054918 +v -1.289031 2.221875 0.3025551 +v -0.05544187 2.500195 0.2996008 +v -0.02772093 2.500195 0.3021442 +v 0.02772093 2.500195 0.3021442 +v 0.05544187 2.500195 0.2996008 +v 0.1200909 2.83125 0.3033434 +v -0.08977037 2.83125 0.3136564 +v 2.540784 1.095291 0.2982788 +v 2.290797 1.35492 0.3177603 +v 2.665416 1.64925 0.2669953 +v 2.576195 1.71422 0.280345 +v 1.314283 2.2125 0.308482 +v -1.301543 2.214844 0.3054918 +v 1.766637 0.2822937 0.3269204 +v -1.811049 0.3347168 0.335139 +v 0.2249336 2.93882 0.2770561 +v 2.482422 1.53728 0.3199219 +v 0 2.500195 0.3046875 +v 1.327022 2.214844 0.3114722 +v -1.314283 2.2125 0.308482 +v 0.2210798 2.865417 0.2723093 +v -0.2297757 2.897168 0.2830202 +v 1.339534 2.221875 0.3144088 +v -1.327022 2.214844 0.3114722 +v 0.08977037 2.83125 0.3136564 +v -0.05936545 2.83125 0.3208034 +v 0.4937121 2.428711 0.4008302 +v -0.5322768 2.428711 0.3479912 +v 1.811049 0.3347168 0.335139 +v -1.85258 0.3917542 0.3428244 +v 1.875866 1.283936 0.3471336 +v -1.812969 1.471875 0.3354944 +v 1.36296 2.25 0.3199072 +v -1.339534 2.221875 0.3144088 +v 2.507466 1.035342 0.3082307 +v 1.343945 2.323828 0.3154442 +v 1.350981 2.342285 0.3170955 +v -1.347178 2.293067 0.3162029 +v -1.343945 2.323828 0.3154442 +v 1.347178 2.293067 0.3162029 +v -1.36296 2.25 0.3199072 +v -0.2249336 2.93882 0.2770561 +v 0.229331 2.925842 0.2824724 +v 1.366002 2.348438 0.3206213 +v -1.350981 2.342285 0.3170955 +v -0.1919362 2.865417 0.2935798 +v -0.1887019 2.950781 0.2886327 +v 0.1583849 2.950781 0.3063192 +v 2.636305 1.670448 0.280345 +v 2.60625 1.692334 0.2847949 +v 0.1725943 2.479468 0.3338005 +v -0.2056312 2.479468 0.3145272 +v 2.030503 0.6071285 0.2970087 +v 1.904102 1.23632 0.2608018 +v 1.904226 1.216833 0.2981353 +v 1.386728 2.342285 0.325486 +v -1.366002 2.348438 0.3206213 +v 1.85258 0.3917542 0.3428244 +v -1.88979 0.4535156 0.3497103 +v 2.418598 1.477206 0.3179069 +v 2.61792 1.376376 0.2932617 +v 0.05936545 2.83125 0.3208034 +v -0.02931501 2.83125 0.3249303 +v 0 2.83125 0.32625 +v -0.229331 2.925842 0.2824724 +v 0.2297757 2.897168 0.2830202 +v 2.469554 0.977441 0.3177603 +v 2.255683 1.321094 0.3267832 +v 1.951868 0.5639347 0.267342 +v 1.951735 0.5616795 0.2629915 +v 1.952279 0.5709118 0.280802 +v 1.952795 0.5809026 0.2981957 +v 1.904091 1.23337 0.2672232 +v -1.875866 1.283936 0.3471336 +v 1.410876 2.323828 0.331154 +v -1.386728 2.342285 0.325486 +v 0.02931501 2.83125 0.3249303 +v 1.88979 0.4535156 0.3497103 +v -1.921239 0.5201111 0.3555299 +v 1.436166 2.293067 0.3370897 +v -1.410876 2.323828 0.331154 +v 1.921239 0.5201111 0.3555299 +v -1.945485 0.5916504 0.3600167 +v 2.216309 1.289575 0.3352149 +v 2.426421 0.9218973 0.3267832 +v -1.924359 1.100391 0.3561074 +v -0.3226175 2.460938 0.3226175 +v 0.2875735 2.460938 0.3542112 +v 2.629634 1.527848 0.2930363 +v 2.509521 1.5051 0.335918 +v 1.904133 1.22423 0.2850981 +v 0.195282 2.93882 0.2986974 +v -1.942304 1.010541 0.3594281 +v 1.460314 2.25 0.3427577 +v -1.436166 2.293067 0.3370897 +v -1.961089 0.6682434 0.3629043 +v -0.1583849 2.950781 0.3063192 +v 0.1269352 2.950781 0.3206317 +v -1.955568 0.9221191 0.3618826 +v -1.966611 0.75 0.3639261 +v 0.1383231 2.479468 0.349397 +v -0.1725943 2.479468 0.3338005 +v -1.96379 0.8352356 0.3634041 +v 0.1919362 2.865417 0.2935798 +v -0.1994857 2.897168 0.3051274 +v 2.377441 0.8690186 0.3352149 +v 2.172274 1.260576 0.3429708 +v 1.63905 1.857422 0.3847099 +v -1.460314 2.25 0.3427577 +v -0.1610996 2.865417 0.3115695 +v -1.48123 0.03530274 0.347667 +v -1.465781 0.01583862 0.3440408 +v 1.465781 0.01583862 0.3440408 +v -0.9341467 2.371289 0.3698201 +v 1.075068 2.339062 0.4256095 +v -1.536372 0.08554687 0.3606097 +v 1.48123 0.03530274 0.347667 +v 0.1990996 2.925842 0.3045368 +v -0.195282 2.93882 0.2986974 +v 2.370861 1.391938 0.3417778 +v 2.574176 1.251908 0.3179069 +v 2.12318 1.234311 0.3499667 +v 2.321989 0.819113 0.3429708 +v 2.572754 1.58183 0.312572 +v 2.601648 1.554408 0.3076881 +v -0.1269352 2.950781 0.3206317 +v 0.09488659 2.950781 0.3315324 +v -0.1990996 2.925842 0.3045368 +v 0.1994857 2.897168 0.3051274 +v 0.1033993 2.479468 0.3612757 +v -0.1383231 2.479468 0.349397 +v 2.259438 0.7724888 0.3499667 +v 2.068627 1.210992 0.3561181 +v 1.536372 0.08554687 0.3606097 +v -1.614332 0.1516113 0.378908 +v 0.4496757 2.428711 0.4496757 +v -0.4937121 2.428711 0.4008302 +v 0.1639078 2.93882 0.3170007 +v 2.189162 0.729454 0.3561181 +v 2.008215 1.190836 0.3613403 +v -0.1291108 2.865417 0.3261273 +v 0.1610996 2.865417 0.3115695 +v 0.06837831 2.479468 0.3695077 +v -0.1033993 2.479468 0.3612757 +v -0.2875735 2.460938 0.3542112 +v 0.2496645 2.460938 0.3818792 +v -0.09488659 2.950781 0.3315324 +v 0.06274882 2.950781 0.3390867 +v -0.7328343 2.4 0.3789181 +v 0.6905213 2.4 0.4514481 +v 2.592578 1.40647 0.3199219 +v 2.44311 1.441708 0.3468075 +v -0.1674362 2.897168 0.3238246 +v 2.110535 0.6903168 0.3613403 +v 1.941546 1.174054 0.3655491 +v 2.022931 0.6553853 0.3655491 +v 1.952819 0.5814533 0.2990634 +v 1.905804 1.167006 0.3672444 +v 1.249819 2.25 0.3577057 +v 1.272952 2.221875 0.3643267 +v -1.249819 2.25 0.3577057 +v 1.904258 1.214324 0.3025573 +v 2.310476 1.313365 0.3641004 +v 2.519764 1.131987 0.3417778 +v -0.06274882 2.950781 0.3390867 +v -0.03137441 2.950781 0.3419652 +v 0.03137441 2.950781 0.3419652 +v -0.1639078 2.93882 0.3170007 +v 0.1671121 2.925842 0.3231979 +v 1.953258 0.5916504 0.3151293 +v 0.03376561 2.479468 0.3742612 +v -0.06837831 2.479468 0.3695077 +v -1.7037 0.234375 0.399884 +v 1.614332 0.1516113 0.378908 +v 0 2.479468 0.3757812 +v -0.03376561 2.479468 0.3742612 +v -1.272952 2.221875 0.3643267 +v 1.285308 2.214844 0.3678629 +v 1.905264 1.179449 0.3525755 +v 1.905241 1.179981 0.3519486 +v -0.09651295 2.865417 0.3372149 +v 0.1291108 2.865417 0.3261273 +v 0.8924478 2.371289 0.4614475 +v 0 2.950781 0.3448437 +v -0.1671121 2.925842 0.3231979 +v 0.1674362 2.897168 0.3238246 +v -1.285308 2.214844 0.3678629 +v 1.297889 2.2125 0.3714636 +v 0.1313614 2.93882 0.3318122 +v 1.721288 1.66333 0.4040123 +v -1.63905 1.857422 0.3847099 +v 2.565479 1.43865 0.335918 +v 2.487055 1.074477 0.353181 +v -1.297889 2.2125 0.3714636 +v 1.310469 2.214844 0.3750643 +v -1.310469 2.214844 0.3750643 +v 1.322825 2.221875 0.3786005 +v -0.1341892 2.897168 0.338955 +v 2.5375 1.471875 0.34125 +v -0.06382434 2.865417 0.3448987 +v 0.09651295 2.865417 0.3372149 +v -1.322825 2.221875 0.3786005 +v 1.345959 2.25 0.3852215 +v -0.2496645 2.460938 0.3818792 +v 0.2095532 2.460938 0.4052796 +v 1.953641 0.6030724 0.3314532 +v 1.945485 0.5916504 0.3600167 +v -1.330373 2.293067 0.3807609 +v -1.327181 2.323828 0.3798473 +v 1.327181 2.323828 0.3798473 +v 1.334129 2.342285 0.3818358 +v -1.345959 2.25 0.3852215 +v 1.330373 2.293067 0.3807609 +v 0.1339295 2.925842 0.338299 +v -0.1313614 2.93882 0.3318122 +v -1.334129 2.342285 0.3818358 +v 1.348963 2.348438 0.3860814 +v 2.449876 1.018996 0.3641004 +v 2.274479 1.277149 0.3744391 +v 2.394322 1.350981 0.3728485 +v 2.549663 1.287406 0.3468075 +v 1.150984 2.320532 0.3911258 +v -1.150984 2.320532 0.3911258 +v -1.075068 2.339062 0.4256095 +v -1.749097 0.2822937 0.4105394 +v 1.7037 0.234375 0.399884 +v 2.469323 1.403748 0.3641478 +v -1.348963 2.348438 0.3860814 +v 1.36943 2.342285 0.3919392 +v 0.09819532 2.93882 0.3430931 +v -0.03151684 2.865417 0.3493356 +v 0.06382434 2.865417 0.3448987 +v 1.794969 1.471875 0.4213064 +v -1.721288 1.66333 0.4040123 +v -0.4496757 2.428711 0.4496757 +v 0.4008302 2.428711 0.4937121 +v -0.1339295 2.925842 0.338299 +v 0.1341892 2.897168 0.338955 +v 0 2.865417 0.3507544 +v 0.03151684 2.865417 0.3493356 +v -1.36943 2.342285 0.3919392 +v 1.393277 2.323828 0.3987644 +v -0.1003091 2.897168 0.3504787 +v 2.234047 1.243278 0.3841003 +v 2.407625 0.965843 0.3744391 +v 1.749097 0.2822937 0.4105394 +v -1.793068 0.3347168 0.4208601 +v -1.393277 2.323828 0.3987644 +v 1.418251 2.293067 0.4059121 +v 1.953918 0.6152326 0.3472421 +v 0.0649369 2.93882 0.3509108 +v -0.09819532 2.93882 0.3430931 +v 0.100115 2.925842 0.3498004 +v -0.2095532 2.460938 0.4052796 +v 0.1679432 2.460938 0.4242159 +v 1.193887 2.299805 0.405705 +v 1.793068 0.3347168 0.4208601 +v -1.834187 0.3917542 0.4305113 +v 2.359703 0.9153156 0.3841003 +v 2.188755 1.211977 0.3929874 +v 1.857242 1.283936 0.4359227 +v -1.794969 1.471875 0.4213064 +v 2.52345 1.325366 0.3641478 +v 2.496387 1.364557 0.369928 +v -1.418251 2.293067 0.4059121 +v 1.442098 2.25 0.4127373 +v 0.1003091 2.897168 0.3504787 +v -0.06633478 2.897168 0.3584647 +v -0.100115 2.925842 0.3498004 +v -0.0649369 2.93882 0.3509108 +v 0.03206623 2.93882 0.355425 +v 2.365244 1.308023 0.3852884 +v 2.496303 1.172945 0.3728485 +v 0 2.93882 0.3568686 +v -0.03206623 2.93882 0.355425 +v -1.442098 2.25 0.4127373 +v 1.618605 1.857422 0.4632547 +v -1.447497 0.01583862 0.4142824 +v -1.871027 0.4535156 0.4391584 +v 1.834187 0.3917542 0.4305113 +v 2.13818 1.183471 0.4010035 +v 2.305507 0.8677115 0.3929874 +v 0.06620639 2.925842 0.3577709 +v -1.462754 0.03530274 0.4186489 +v 1.447497 0.01583862 0.4142824 +v 0.06633478 2.897168 0.3584647 +v -0.03275651 2.897168 0.3630762 +v 2.41941 1.307182 0.3914909 +v -1.193887 2.299805 0.405705 +v 1.221256 2.27644 0.4150056 +v -1.857242 1.283936 0.4359227 +v 1.954053 0.6274024 0.3616044 +v 1.462754 0.03530274 0.4186489 +v -1.517208 0.08554687 0.4342341 +v -0.6905213 2.4 0.4514481 +v 0.6404914 2.4 0.5199959 +v 0.03275651 2.897168 0.3630762 +v 0 2.897168 0.3645508 +v -0.1679432 2.460938 0.4242159 +v 0.1255409 2.460938 0.4386383 +v -1.902164 0.5201111 0.4464665 +v 1.871027 0.4535156 0.4391584 +v -0.06620639 2.925842 0.3577709 +v 2.244438 0.8233286 0.4010035 +v 2.081896 1.157982 0.4080519 +v 0.03269311 2.925842 0.3623734 +v 2.464273 1.118156 0.3852884 +v -0.4008302 2.428711 0.4937121 +v 0.3479912 2.428711 0.5322768 +v 1.228422 2.263632 0.4174407 +v -1.221256 2.27644 0.4150056 +v 0 2.925842 0.3638452 +v -0.03269311 2.925842 0.3623734 +v 1.902164 0.5201111 0.4464665 +v -1.926169 0.5916504 0.452101 +v -1.905254 1.100391 0.4471917 +v 2.019479 1.135736 0.4140358 +v 2.175892 0.7824643 0.4080519 +v -1.228422 2.263632 0.4174407 +v 1.230873 2.25 0.4182733 +v 1.253656 2.221875 0.4260154 +v -1.230873 2.25 0.4182733 +v -1.92302 1.010541 0.4513619 +v 1.926169 0.5916504 0.452101 +v -1.941619 0.6682434 0.4557272 +v 1.517208 0.08554687 0.4342341 +v -1.594195 0.1516113 0.4562682 +v -0.1255409 2.460938 0.4386383 +v 0.08302064 2.460938 0.4486331 +v 2.099271 0.7454165 0.4140358 +v 1.950506 1.116956 0.4188584 +v 1.954061 0.6281199 0.3624512 +v -1.936152 0.9221191 0.4544441 +v 1.954075 0.6330495 0.3679008 +v -1.947085 0.75 0.4570103 +v -1.944293 0.8352356 0.4563548 +v 2.33244 1.266984 0.3972004 +v 2.427912 1.065376 0.3972004 +v 2.295457 1.2281 0.408479 +v 2.471215 1.216744 0.3914909 +v 2.445312 1.261963 0.3977051 +v 1.265824 2.214844 0.4301504 +v -1.253656 2.221875 0.4260154 +v 1.909416 1.108087 0.420864 +v 2.013972 0.712483 0.4188584 +v 1.906108 1.160772 0.3740742 +v 1.278214 2.2125 0.4343608 +v -1.265824 2.214844 0.4301504 +v 1.954065 0.6378986 0.373078 +v -0.08302064 2.460938 0.4486331 +v 0.04099609 2.460938 0.4544044 +v -0.8924478 2.371289 0.4614475 +v -1.051073 2.339062 0.4783344 +v 1.052504 2.339062 0.4786964 +v 1.290604 2.214844 0.4385712 +v -1.278214 2.2125 0.4343608 +v 2.389606 1.261314 0.4045528 +v 1.953529 0.6669094 0.4006874 +v 1.908799 1.116495 0.4146562 +v -0.04099609 2.460938 0.4544044 +v 0 2.460938 0.45625 +v 2.253845 1.191605 0.4190186 +v 2.386647 1.014892 0.408479 +v 1.302772 2.221875 0.4427061 +v -1.290604 2.214844 0.4385712 +v 1.325555 2.25 0.4504482 +v -1.302772 2.221875 0.4427061 +v -1.682448 0.234375 0.4815269 +v 1.594195 0.1516113 0.4562682 +v 0.8409189 2.371289 0.5497748 +v 1.307063 2.323828 0.444164 +v 1.313905 2.342285 0.4464892 +v -1.310206 2.293067 0.4452323 +v -1.307063 2.323828 0.444164 +v 1.310206 2.293067 0.4452323 +v -1.325555 2.25 0.4504482 +v 1.328514 2.348438 0.4514537 +v -1.313905 2.342285 0.4464892 +v -0.3479912 2.428711 0.5322768 +v 0.2920827 2.428711 0.5648931 +v 2.339905 0.9669892 0.4190186 +v 2.207151 1.157735 0.4287136 +v -1.618605 1.857422 0.4632547 +v 1.699817 1.66333 0.486498 +v 2.355927 1.217387 0.4170604 +v 2.439911 1.164865 0.4045528 +v 1.348671 2.342285 0.4583034 +v -1.328514 2.348438 0.4514537 +v 1.130274 2.320532 0.4474651 +v -1.130274 2.320532 0.4474651 +v 1.172405 2.299805 0.4641444 +v 2.414758 1.21309 0.4109743 +v 1.372157 2.323828 0.4662843 +v -1.348671 2.342285 0.4583034 +v 2.154922 1.126727 0.4374584 +v 2.287112 0.9219538 0.4287136 +v 2.404425 1.114974 0.4170604 +v 2.317891 1.175648 0.4289029 +v 1.396752 2.293067 0.4746422 +v -1.372157 2.323828 0.4662843 +v 1.682448 0.234375 0.4815269 +v -1.727279 0.2822937 0.4943577 +v 1.953475 0.6682512 0.4017858 +v 0.5833631 2.4 0.5833631 +v -0.6404914 2.4 0.5199959 +v 2.227696 0.8800722 0.4374584 +v 2.096706 1.098816 0.4451476 +v 1.952906 0.6823932 0.4133633 +v 1.941619 0.6682434 0.4557272 +v -1.699817 1.66333 0.486498 +v 1.772579 1.471875 0.507323 +v 2.380176 1.16618 0.4236804 +v -0.2920827 2.428711 0.5648931 +v 0.2340852 2.428711 0.5912873 +v 1.199282 2.27644 0.4747847 +v -1.172405 2.299805 0.4641444 +v 1.420238 2.25 0.4826231 +v -1.396752 2.293067 0.4746422 +v 2.161082 0.8416306 0.4451476 +v 2.032051 1.074237 0.4516754 +v 2.275017 1.136347 0.4399695 +v 2.364213 1.067343 0.4289029 +v 1.727279 0.2822937 0.4943577 +v -1.770702 0.3347168 0.5067855 +v 1.594069 1.857422 0.5416941 +v -1.420238 2.25 0.4826231 +v 1.952309 0.6931034 0.4212577 +v 2.086699 0.8069149 0.4516754 +v 1.960505 1.053227 0.4569364 +v -1.44058 0.03530274 0.4895356 +v -1.425554 0.01583862 0.4844297 +v 1.425554 0.01583862 0.4844297 +v 1.206319 2.263632 0.4775705 +v -1.199282 2.27644 0.4747847 +v 2.341052 1.121496 0.4357109 +v -1.206319 2.263632 0.4775705 +v 1.208725 2.25 0.4785231 +v 1.231098 2.221875 0.4873804 +v -1.208725 2.25 0.4785231 +v 1.44058 0.03530274 0.4895356 +v -1.494208 0.08554687 0.5077597 +v 2.003972 0.7762114 0.4569364 +v 1.914928 1.042611 0.4594011 +v 2.318733 1.022247 0.4399695 +v 2.226822 1.09973 0.4501492 +v 1.770702 0.3347168 0.5067855 +v -1.811308 0.3917542 0.5184072 +v 1.909982 1.100391 0.4265463 +v 1.952009 0.6984853 0.4252245 +v -1.772579 1.471875 0.507323 +v 1.834075 1.283936 0.5249234 +v 0.1749834 2.428711 0.6113896 +v -0.2340852 2.428711 0.5912873 +v 1.949299 0.7323345 0.4463206 +v 1.106551 2.320532 0.5032781 +v 1.243047 2.214844 0.492111 +v -1.231098 2.221875 0.4873804 +v 1.911298 1.08378 0.43747 +v 1.905254 1.100391 0.4471917 +v 2.172825 1.066047 0.4593313 +v 2.267441 0.9799585 0.4501492 +v 2.296875 1.079297 0.4469531 +v 1.255214 2.2125 0.4969279 +v -1.243047 2.214844 0.492111 +v 1.811308 0.3917542 0.5184072 +v -1.847689 0.4535156 0.5288197 +v -1.570028 0.1516113 0.5335247 +v 1.494208 0.08554687 0.5077597 +v 1.267381 2.214844 0.5017447 +v -1.255214 2.2125 0.4969279 +v -1.834075 1.283936 0.5249234 +v 1.881488 1.100391 0.5384932 +v 2.209792 0.940752 0.4593313 +v 2.112543 1.035546 0.4674049 +v 1.912754 1.066602 0.4474638 +v 1.279331 2.221875 0.5064753 +v -1.267381 2.214844 0.5017447 +v 0.1157171 2.428711 0.6253207 +v -0.1749834 2.428711 0.6113896 +v 1.847689 0.4535156 0.5288197 +v -1.878436 0.5201111 0.5376199 +v 2.247131 1.039845 0.4572945 +v 1.301704 2.25 0.5153326 +v -1.279331 2.221875 0.5064753 +v 1.283544 2.323828 0.5081432 +v 1.290263 2.342285 0.5108033 +v -1.283544 2.323828 0.5081432 +v -1.286631 2.293067 0.5093654 +v 2.045495 1.008473 0.4742592 +v 2.145245 0.9049009 0.4674049 +v 1.286631 2.293067 0.5093654 +v -1.301704 2.25 0.5153326 +v 1.947447 0.75 0.4554682 +v 1.878436 0.5201111 0.5376199 +v -1.902143 0.5916504 0.5444048 +v 1.304609 2.348438 0.5164829 +v -1.290263 2.342285 0.5108033 +v 1.913028 1.063551 0.4490195 +v -1.881488 1.100391 0.5384932 +v 1.914343 1.048904 0.4564865 +v -1.106551 2.320532 0.5032781 +v 1.147798 2.299805 0.5220378 +v 0.05714181 2.428711 0.6333651 +v -0.1157171 2.428711 0.6253207 +v 0.5199959 2.4 0.6404914 +v -0.5833631 2.4 0.5833631 +v 2.191308 1.0034 0.4666223 +v -1.899033 1.010541 0.5435147 +v -0.8409189 2.371289 0.5497748 +v -0.8115906 2.371289 0.5922142 +v 0.8115906 2.371289 0.5922142 +v 1.324404 2.342285 0.5243193 +v -1.304609 2.348438 0.5164829 +v 2.073255 0.8726791 0.4742592 +v 1.971199 0.9850785 0.4797832 +v 1.902143 0.5916504 0.5444048 +v -1.917399 0.6682434 0.5487714 +v 0 2.428711 0.6359375 +v -0.05714181 2.428711 0.6333651 +v -1.912001 0.9221191 0.5472263 +v 1.947073 0.7532948 0.4570076 +v 1.947085 0.75 0.4570103 +v 1.917399 0.6682434 0.5487714 +v -1.922798 0.75 0.5503165 +v -1.656944 0.234375 0.5630602 +v 1.570028 0.1516113 0.5335247 +v -1.92004 0.8352356 0.5495271 +v 1.946446 0.7588161 0.4595874 +v 1.993279 0.8443603 0.4797832 +v 1.922007 0.9726828 0.4823811 +v 1.922798 0.75 0.5503165 +v 1.347467 2.323828 0.5334498 +v -1.324404 2.342285 0.5243193 +v 2.128894 0.9702232 0.4748241 +v 1.916435 1.026851 0.4660581 +v 1.944351 0.7771484 0.4672295 +v 0.9988191 2.339062 0.5824728 +v 1.027078 2.339062 0.5310594 +v -1.027078 2.339062 0.5310594 +v -0.9974272 2.339062 0.5818853 +v 1.67405 1.66333 0.5688731 +v -1.594069 1.857422 0.5416941 +v -1.147798 2.299805 0.5220378 +v 1.17411 2.27644 0.5340052 +v 1.918057 1.010544 0.4719517 +v 1.371619 2.293067 0.5430116 +v -1.347467 2.323828 0.5334498 +v 1.93998 0.8149699 0.4793201 +v 2.059375 0.9405762 0.4817871 +v 1.918302 1.008088 0.4728393 +v 1.899033 1.010541 0.5435147 +v 1.920273 0.9889814 0.4785314 +v 1.982239 0.9147194 0.4873988 +v 1.394682 2.25 0.5521421 +v -1.371619 2.293067 0.5430116 +v 1.181 2.263632 0.5371386 +v -1.17411 2.27644 0.5340052 +v -1.181 2.263632 0.5371386 +v 1.183355 2.25 0.53821 +v 1.205259 2.221875 0.5481721 +v -1.183355 2.25 0.53821 +v 1.07982 2.320532 0.55833 +v 1.938392 0.8286239 0.482419 +v 1.930043 0.9006268 0.4901648 +v 1.656944 0.234375 0.5630602 +v -1.701095 0.2822937 0.5780637 +v 1.922336 0.969591 0.4831114 +v 1.930857 0.8935456 0.4900951 +v 1.937727 0.8343409 0.4837165 +v 1.565386 1.857422 0.6197219 +v -1.394682 2.25 0.5521421 +v 1.92668 0.9302136 0.4888675 +v 1.937623 0.8352374 0.4838662 +v 1.935446 0.8539366 0.4869868 +v 1.92004 0.8352356 0.5495271 +v -1.414658 0.03530274 0.5600504 +v -1.399903 0.01583862 0.554209 +v 1.399903 0.01583862 0.554209 +v 1.745709 1.471875 0.5932242 +v -1.67405 1.66333 0.5688731 +v -1.205259 2.221875 0.5481721 +v 1.216957 2.214844 0.5534927 +v 1.927596 0.9221287 0.4893371 +v 1.92893 0.910356 0.490021 +v 1.912001 0.9221191 0.5472263 +v 1.414658 0.03530274 0.5600504 +v -1.467322 0.08554687 0.5808995 +v -1.216957 2.214844 0.5534927 +v 1.228869 2.2125 0.5589104 +v 0.4514481 2.4 0.6905213 +v -0.5199959 2.4 0.6404914 +v -1.74386 0.3347168 0.5925958 +v 1.701095 0.2822937 0.5780637 +v -1.228869 2.2125 0.5589104 +v 1.240781 2.214844 0.5643281 +v -1.240781 2.214844 0.5643281 +v 1.252479 2.221875 0.5696487 +v 1.120071 2.299805 0.5791418 +v -1.07982 2.320532 0.55833 +v -1.252479 2.221875 0.5696487 +v 1.274383 2.25 0.5796108 +v -1.78385 0.3917542 0.6061853 +v 1.74386 0.3347168 0.5925958 +v 1.806272 1.283936 0.6138048 +v -1.745709 1.471875 0.5932242 +v 1.467322 0.08554687 0.5808995 +v -1.541778 0.1516113 0.6103758 +v -1.256604 2.323828 0.5715247 +v -1.259626 2.293067 0.5728993 +v 1.256604 2.323828 0.5715247 +v 1.263182 2.342285 0.5745165 +v -1.274383 2.25 0.5796108 +v 1.259626 2.293067 0.5728993 +v -1.263182 2.342285 0.5745165 +v 1.277227 2.348438 0.5809045 +v -1.277227 2.348438 0.5809045 +v 1.296606 2.342285 0.5897183 +v 1.78385 0.3917542 0.6061853 +v -1.819679 0.4535156 0.6183608 +v 0.7462283 2.371289 0.6727111 +v 0.7799923 2.371289 0.6332526 +v -0.7799923 2.371289 0.6332526 +v -0.7462283 2.371289 0.6727111 +v 1.145748 2.27644 0.5924183 +v -1.120071 2.299805 0.5791418 +v -1.296606 2.342285 0.5897183 +v 1.319185 2.323828 0.5999877 +v 1.852966 1.100391 0.6296723 +v -1.806272 1.283936 0.6138048 +v 1.819679 0.4535156 0.6183608 +v -1.849961 0.5201111 0.6286511 +v 1.05011 2.320532 0.6123835 +v -0.4514481 2.4 0.6905213 +v 0.3789181 2.4 0.7328343 +v -1.319185 2.323828 0.5999877 +v 1.342831 2.293067 0.6107422 +v 1.541778 0.1516113 0.6103758 +v -1.62713 0.234375 0.6441658 +v 1.15247 2.263632 0.5958944 +v -1.145748 2.27644 0.5924183 +v -1.15247 2.263632 0.5958944 +v 1.154769 2.25 0.597083 +v -1.873308 0.5916504 0.6365849 +v 1.849961 0.5201111 0.6286511 +v 1.176144 2.221875 0.6081347 +v -1.154769 2.25 0.597083 +v 1.870245 1.010541 0.6355441 +v -1.852966 1.100391 0.6296723 +v 1.643927 1.66333 0.6508159 +v -1.565386 1.857422 0.6197219 +v -1.342831 2.293067 0.6107422 +v 1.36541 2.25 0.6210115 +v -1.870245 1.010541 0.6355441 +v 1.883017 0.9221191 0.6398841 +v -1.888334 0.6682434 0.6416907 +v 1.873308 0.5916504 0.6365849 +v -1.883017 0.9221191 0.6398841 +v 1.890934 0.8352356 0.6425744 +v -1.176144 2.221875 0.6081347 +v 1.187559 2.214844 0.6140374 +v 1.888334 0.6682434 0.6416907 +v -1.89365 0.75 0.6434974 +v -1.890934 0.8352356 0.6425744 +v 1.89365 0.75 0.6434974 +v 0.9677761 2.339062 0.6327113 +v -0.9677761 2.339062 0.6327113 +v 0.9340234 2.339062 0.6815529 +v -1.36541 2.25 0.6210115 +v 1.532531 1.857422 0.6970208 +v 1.199183 2.2125 0.6200477 +v -1.187559 2.214844 0.6140374 +v -1.384967 0.03530274 0.6299062 +v -1.370521 0.01583862 0.6233363 +v 1.370521 0.01583862 0.6233363 +v -1.05011 2.320532 0.6123835 +v 1.089253 2.299805 0.6352102 +v 1.210807 2.214844 0.626058 +v -1.199183 2.2125 0.6200477 +v -1.436525 0.08554687 0.6533559 +v 1.384967 0.03530274 0.6299062 +v 1.62713 0.234375 0.6441658 +v -1.670486 0.2822937 0.6613303 +v 1.222223 2.221875 0.6319606 +v -1.210807 2.214844 0.626058 +v -0.3789181 2.4 0.7328343 +v 0.3036781 2.4 0.7670754 +v 1.714297 1.471875 0.6786746 +v -1.643927 1.66333 0.6508159 +v 1.243598 2.25 0.6430124 +v -1.222223 2.221875 0.6319606 +v 1.226248 2.323828 0.6340418 +v 1.232668 2.342285 0.6373609 +v -1.226248 2.323828 0.6340418 +v -1.229198 2.293067 0.6355668 +v 1.229198 2.293067 0.6355668 +v -1.243598 2.25 0.6430124 +v 1.246374 2.348438 0.6444477 +v -1.232668 2.342285 0.6373609 +v 1.670486 0.2822937 0.6613303 +v -1.712481 0.3347168 0.6779557 +v -1.089253 2.299805 0.6352102 +v 1.114223 2.27644 0.649772 +v 1.436525 0.08554687 0.6533559 +v -1.509418 0.1516113 0.6865088 +v 1.265284 2.342285 0.6542256 +v -1.246374 2.348438 0.6444477 +v 1.017473 2.320532 0.6652018 +v 0.7104213 2.371289 0.7104213 +v -0.7104213 2.371289 0.7104213 +v -0.6727111 2.371289 0.7462283 +v 0.6727111 2.371289 0.7462283 +v 1.287318 2.323828 0.6656184 +v -1.265284 2.342285 0.6542256 +v 0.2270055 2.4 0.7931541 +v -0.3036781 2.4 0.7670754 +v 0.8976583 2.339062 0.7287822 +v -0.9340234 2.339062 0.6815529 +v 1.120761 2.263632 0.6535847 +v -1.114223 2.27644 0.649772 +v 1.712481 0.3347168 0.6779557 +v -1.751752 0.3917542 0.6935027 +v 1.773771 1.283936 0.7022197 +v -1.714297 1.471875 0.6786746 +v -1.120761 2.263632 0.6535847 +v 1.122997 2.25 0.6548883 +v 1.143783 2.221875 0.6670101 +v -1.122997 2.25 0.6548883 +v 1.310392 2.293067 0.6775492 +v -1.287318 2.323828 0.6656184 +v 1.751752 0.3917542 0.6935027 +v -1.786937 0.4535156 0.707432 +v -1.143783 2.221875 0.6670101 +v 1.154885 2.214844 0.6734841 +v -1.592978 0.234375 0.7245134 +v 1.509418 0.1516113 0.6865088 +v 1.332426 2.25 0.6889419 +v -1.310392 2.293067 0.6775492 +v 0.1501195 2.4 0.8112269 +v -0.2270055 2.4 0.7931541 +v -1.017473 2.320532 0.6652018 +v 1.055399 2.299805 0.6899973 +v 1.819625 1.100391 0.7203729 +v -1.773771 1.283936 0.7022197 +v -1.154885 2.214844 0.6734841 +v 1.166189 2.2125 0.6800763 +v 1.786937 0.4535156 0.707432 +v -1.816674 0.5201111 0.7192046 +v -1.532531 1.857422 0.6970208 +v 1.609424 1.66333 0.7319931 +v -1.166189 2.2125 0.6800763 +v 1.177493 2.214844 0.6866685 +v 1.495509 1.857422 0.7732655 +v -1.332426 2.25 0.6889419 +v -1.35151 0.03530274 0.6988096 +v -1.337414 0.01583862 0.6915209 +v 1.337414 0.01583862 0.6915209 +v 0.07412991 2.4 0.8216628 +v -0.1501195 2.4 0.8112269 +v -1.177493 2.214844 0.6866685 +v 1.188595 2.221875 0.6931426 +v 1.816674 0.5201111 0.7192046 +v -1.839601 0.5916504 0.7282811 +v 1.836593 1.010541 0.7270904 +v -1.819625 1.100391 0.7203729 +v 1.35151 0.03530274 0.6988096 +v -1.401823 0.08554687 0.7248243 +v -1.188595 2.221875 0.6931426 +v 1.209381 2.25 0.7052643 +v 0.9819868 2.320532 0.7165516 +v 0.8588009 2.339062 0.7741932 +v -0.8976583 2.339062 0.7287822 +v 0 2.4 0.825 +v -0.07412991 2.4 0.8216628 +v -1.195377 2.293067 0.6970979 +v -1.192509 2.323828 0.6954253 +v 1.192509 2.323828 0.6954253 +v 1.198752 2.342285 0.6990657 +v 1.079593 2.27644 0.7058151 +v -1.055399 2.299805 0.6899973 +v 1.849135 0.9221191 0.7320555 +v -1.836593 1.010541 0.7270904 +v -1.209381 2.25 0.7052643 +v 1.195377 2.293067 0.6970979 +v 1.839601 0.5916504 0.7282811 +v -1.854356 0.6682434 0.7341225 +v -1.198752 2.342285 0.6990657 +v 1.21208 2.348438 0.7068386 +v 1.856909 0.8352356 0.7351335 +v -1.849135 0.9221191 0.7320555 +v -0.6332526 2.371289 0.7799923 +v 0.5922142 2.371289 0.8115906 +v 0.6332526 2.371289 0.7799923 +v -0.5915138 2.371289 0.8104556 +v 1.854356 0.6682434 0.7341225 +v -1.859577 0.75 0.7361894 +v 1.859577 0.75 0.7361894 +v -1.856909 0.8352356 0.7351335 +v 1.592978 0.234375 0.7245134 +v -1.635425 0.2822937 0.743819 +v -1.21208 2.348438 0.7068386 +v 1.230471 2.342285 0.7175632 +v 1.085928 2.263632 0.7099566 +v -1.079593 2.27644 0.7058151 +v -1.609424 1.66333 0.7319931 +v 1.678317 1.471875 0.7633266 +v 1.401823 0.08554687 0.7248243 +v -1.472955 0.1516113 0.7616037 +v -1.085928 2.263632 0.7099566 +v 1.088094 2.25 0.7113727 +v -1.230471 2.342285 0.7175632 +v 1.251898 2.323828 0.7300588 +v 1.108234 2.221875 0.7245399 +v -1.088094 2.25 0.7113727 +v -1.676539 0.3347168 0.762518 +v 1.635425 0.2822937 0.743819 +v -0.9819868 2.320532 0.7165516 +v 1.01859 2.299805 0.7432611 +v -1.251898 2.323828 0.7300588 +v 1.274338 2.293067 0.7431448 +v -1.108234 2.221875 0.7245399 +v 1.118991 2.214844 0.7315724 +v 0.8175922 2.339062 0.8175922 +v -0.8588009 2.339062 0.7741932 +v 1.129944 2.2125 0.7387332 +v -1.118991 2.214844 0.7315724 +v -1.274338 2.293067 0.7431448 +v 1.295765 2.25 0.7556404 +v -1.714985 0.3917542 0.7800042 +v 1.676539 0.3347168 0.762518 +v -1.678317 1.471875 0.7633266 +v 1.736542 1.283936 0.7898086 +v 1.140897 2.214844 0.7458939 +v -1.129944 2.2125 0.7387332 +v 0.9437543 2.320532 0.7662061 +v -1.554497 0.234375 0.8037655 +v 1.472955 0.1516113 0.7616037 +v 1.151654 2.221875 0.7529264 +v -1.140897 2.214844 0.7458939 +v -1.495509 1.857422 0.7732655 +v -1.295765 2.25 0.7556404 +v 1.454362 1.857422 0.8481276 +v -1.300616 0.01583862 0.7584691 +v -1.01859 2.299805 0.7432611 +v 1.041941 2.27644 0.7602999 +v -0.5497748 2.371289 0.8409189 +v 0.4614475 2.371289 0.8924478 +v 0.5497748 2.371289 0.8409189 +v -1.314324 0.03530274 0.7664633 +v 1.300616 0.01583862 0.7584691 +v 1.171794 2.25 0.7660937 +v -1.151654 2.221875 0.7529264 +v -1.749432 0.4535156 0.795671 +v 1.714985 0.3917542 0.7800042 +v 1.155446 2.323828 0.755406 +v 1.161495 2.342285 0.7593604 +v -1.155446 2.323828 0.755406 +v -1.158225 2.293067 0.7572229 +v 1.570545 1.66333 0.8120633 +v 1.158225 2.293067 0.7572229 +v -1.171794 2.25 0.7660937 +v 1.314324 0.03530274 0.7664633 +v -1.363253 0.08554687 0.7949966 +v 1.174409 2.348438 0.7678037 +v -1.161495 2.342285 0.7593604 +v -1.736542 1.283936 0.7898086 +v 1.781433 1.100391 0.810226 +v 1.048055 2.263632 0.7647611 +v -1.041941 2.27644 0.7602999 +v 1.192228 2.342285 0.7794533 +v -1.174409 2.348438 0.7678037 +v -1.778544 0.5201111 0.808912 +v 1.749432 0.4535156 0.795671 +v -1.048055 2.263632 0.7647611 +v 1.050145 2.25 0.7662865 +v -0.8175922 2.339062 0.8175922 +v 0.7741932 2.339062 0.8588009 +v 1.069583 2.221875 0.7804702 +v -1.050145 2.25 0.7662865 +v -0.9437543 2.320532 0.7662061 +v 0.9789329 2.299805 0.7947665 +v 1.21299 2.323828 0.7930266 +v -1.192228 2.342285 0.7794533 +v 1.778544 0.5201111 0.808912 +v -1.80099 0.5916504 0.8191206 +v -1.781433 1.100391 0.810226 +v 1.798046 1.010541 0.8177814 +v 1.554497 0.234375 0.8037655 +v -1.595918 0.2822937 0.8251829 +v -1.069583 2.221875 0.7804702 +v 1.079965 2.214844 0.7880456 +v -1.432428 0.1516113 0.8353368 +v 1.363253 0.08554687 0.7949966 +v -1.798046 1.010541 0.8177814 +v 1.810324 0.9221191 0.8233659 +v 1.80099 0.5916504 0.8191206 +v -1.815435 0.6682434 0.8256906 +v 0.9029015 2.320532 0.813949 +v 1.234732 2.293067 0.8072413 +v -1.21299 2.323828 0.7930266 +v -1.079965 2.214844 0.7880456 +v 1.090535 2.2125 0.7957591 +v 1.637774 1.471875 0.8468244 +v -1.570545 1.66333 0.8120633 +v -1.810324 0.9221191 0.8233659 +v 1.817935 0.8352356 0.8268277 +v 0.3698201 2.371289 0.9341467 +v -0.4614475 2.371289 0.8924478 +v -1.820547 0.75 0.8280154 +v 1.815435 0.6682434 0.8256906 +v -1.817935 0.8352356 0.8268277 +v 1.820547 0.75 0.8280154 +v -1.090535 2.2125 0.7957591 +v 1.101106 2.214844 0.8034726 +v 1.255493 2.25 0.8208146 +v -1.234732 2.293067 0.8072413 +v 1.001374 2.27644 0.8129861 +v -0.9789329 2.299805 0.7947665 +v 1.595918 0.2822937 0.8251829 +v -1.636039 0.3347168 0.8459274 +v -1.101106 2.214844 0.8034726 +v 1.111488 2.221875 0.811048 +v -0.7741932 2.339062 0.8588009 +v 0.7287822 2.339062 0.8976583 +v -1.111488 2.221875 0.811048 +v 1.130926 2.25 0.8252316 +v -1.11783 2.293067 0.8156761 +v -1.115148 2.323828 0.8137189 +v 1.115148 2.323828 0.8137189 +v 1.120986 2.342285 0.8179786 +v 1.40916 1.857422 0.9212789 +v -1.454362 1.857422 0.8481276 +v -1.255493 2.25 0.8208146 +v -1.130926 2.25 0.8252316 +v 1.11783 2.293067 0.8156761 +v -1.273476 0.03530274 0.8325711 +v -1.260193 0.01583862 0.8238873 +v 1.260193 0.01583862 0.8238873 +v -1.120986 2.342285 0.8179786 +v 1.13345 2.348438 0.8270737 +v 1.00725 2.263632 0.8177564 +v -1.001374 2.27644 0.8129861 +v -1.511726 0.234375 0.8815804 +v 1.432428 0.1516113 0.8353368 +v 1.636039 0.3347168 0.8459274 +v -1.673557 0.3917542 0.8653263 +v 1.694593 1.283936 0.8762031 +v -1.637774 1.471875 0.8468244 +v -1.00725 2.263632 0.8177564 +v 1.009259 2.25 0.8193876 +v -0.9029015 2.320532 0.813949 +v 0.9365572 2.299805 0.8442891 +v 1.02794 2.221875 0.8345541 +v -1.009259 2.25 0.8193876 +v 1.273476 0.03530274 0.8325711 +v -1.320884 0.08554687 0.8635654 +v -0.3698201 2.371289 0.9341467 +v 0.276448 2.371289 0.9659055 +v -1.13345 2.348438 0.8270737 +v 1.150647 2.342285 0.8396226 +v 1.527333 1.66333 0.8906816 +v 0.8595767 2.320532 0.8595767 +v -1.150647 2.342285 0.8396226 +v 1.170685 2.323828 0.8542437 +v -0.7287822 2.339062 0.8976583 +v 0.6815529 2.339062 0.9340234 +v 1.673557 0.3917542 0.8653263 +v -1.707171 0.4535156 0.8827068 +v -1.02794 2.221875 0.8345541 +v 1.037917 2.214844 0.8426544 +v -1.037917 2.214844 0.8426544 +v 1.048077 2.2125 0.8509025 +v 1.7384 1.100391 0.8988539 +v -1.694593 1.283936 0.8762031 +v -1.170685 2.323828 0.8542437 +v 1.191669 2.293067 0.8695556 +v -0.276448 2.371289 0.9659055 +v 0.182816 2.371289 0.9879146 +v -0.9365572 2.299805 0.8442891 +v 0.9580272 2.27644 0.8636439 +v 1.320884 0.08554687 0.8635654 +v -1.387909 0.1516113 0.9073849 +v 1.707171 0.4535156 0.8827068 +v -1.73558 0.5201111 0.8973961 +v 1.058236 2.214844 0.8591505 +v -1.048077 2.2125 0.8509025 +v 1.068213 2.221875 0.8672508 +v -1.058236 2.214844 0.8591505 +v 1.511726 0.234375 0.8815804 +v -1.552008 0.2822937 0.9050712 +v -1.191669 2.293067 0.8695556 +v 1.211706 2.25 0.8841767 +v 1.73558 0.5201111 0.8973961 +v -1.757484 0.5916504 0.9087215 +v 1.75461 1.010541 0.9072358 +v -1.7384 1.100391 0.8988539 +v -0.6815529 2.339062 0.9340234 +v 1.086895 2.25 0.8824174 +v -1.068213 2.221875 0.8672508 +v -0.182816 2.371289 0.9879146 +v 0.09027563 2.371289 1.000623 +v 0.6327113 2.339062 0.9677761 +v -1.527333 1.66333 0.8906816 +v 1.592711 1.471875 0.928808 +v 0.9636486 2.263632 0.8687114 +v -0.9580272 2.27644 0.8636439 +v 1.071731 2.323828 0.8701069 +v 1.077342 2.342285 0.8746617 +v -1.074309 2.293067 0.8721997 +v -1.071731 2.323828 0.8701069 +v -0.8595767 2.320532 0.8595767 +v 0.8916175 2.299805 0.8916175 +v 1.074309 2.293067 0.8721997 +v -1.086895 2.25 0.8824174 +v 0.813949 2.320532 0.9029015 +v -0.9636486 2.263632 0.8687114 +v 0.9655707 2.25 0.8704442 +v 1.766592 0.9221191 0.9134311 +v -1.75461 1.010541 0.9072358 +v 1.089321 2.348438 0.8843871 +v -1.077342 2.342285 0.8746617 +v 1.757484 0.5916504 0.9087215 +v -1.77158 0.6682434 0.9160101 +v 0.9834431 2.221875 0.8865558 +v -0.9655707 2.25 0.8704442 +v -1.211706 2.25 0.8841767 +v -1.40916 1.857422 0.9212789 +v 1.360014 1.857422 0.9923963 +v 0 2.371289 1.004688 +v -0.09027563 2.371289 1.000623 +v 1.77402 0.8352356 0.9172716 +v -1.766592 0.9221191 0.9134311 +v -1.229061 0.03530274 0.8968408 +v -1.216242 0.01583862 0.8874866 +v 1.216242 0.01583862 0.8874866 +v -1.591024 0.3347168 0.927824 +v 1.552008 0.2822937 0.9050712 +v 1.77158 0.6682434 0.9160101 +v -1.776568 0.75 0.9185892 +v 1.776568 0.75 0.9185892 +v -1.77402 0.8352356 0.9172716 +v 1.105848 2.342285 0.8978055 +v -1.089321 2.348438 0.8843871 +v -1.274816 0.08554687 0.9302276 +v 1.229061 0.03530274 0.8968408 +v -0.9834431 2.221875 0.8865558 +v 0.9929885 2.214844 0.8951609 +v -1.464742 0.234375 0.957617 +v 1.387909 0.1516113 0.9073849 +v 1.125106 2.323828 0.9134399 +v -1.105848 2.342285 0.8978055 +v 0.5818853 2.339062 0.9974272 +v -0.6327113 2.339062 0.9677761 +v -0.5818853 2.339062 0.9974272 +v -0.9929885 2.214844 0.8951609 +v 1.002708 2.2125 0.9039229 +v 0.9120573 2.27644 0.9120573 +v -0.8916175 2.299805 0.8916175 +v -1.62751 0.3917542 0.949101 +v 1.591024 0.3347168 0.927824 +v -1.592711 1.471875 0.928808 +v 1.647967 1.283936 0.9610309 +v 1.479864 1.66333 0.9675032 +v -1.002708 2.2125 0.9039229 +v 1.012428 2.214844 0.9126848 +v 1.145273 2.293067 0.9298128 +v -1.125106 2.323828 0.9134399 +v -0.813949 2.320532 0.9029015 +v 0.7662061 2.320532 0.9437543 +v -1.012428 2.214844 0.9126848 +v 1.021973 2.221875 0.9212899 +v 0.8442891 2.299805 0.9365572 +v 1.274816 0.08554687 0.9302276 +v -1.339503 0.1516113 0.9774297 +v 0.9174089 2.263632 0.9174089 +v -0.9120573 2.27644 0.9120573 +v -1.660199 0.4535156 0.9681642 +v 1.62751 0.3917542 0.949101 +v -1.021973 2.221875 0.9212899 +v 1.039845 2.25 0.9374015 +v -0.9174089 2.263632 0.9174089 +v 0.9192388 2.25 0.9192388 +v 1.16453 2.25 0.9454472 +v -1.145273 2.293067 0.9298128 +v -1.027805 2.293067 0.9265471 +v -1.025339 2.323828 0.9243239 +v 1.025339 2.323828 0.9243239 +v 1.030706 2.342285 0.9291626 +v 0.9362535 2.221875 0.9362535 +v -0.9192388 2.25 0.9192388 +v -1.039845 2.25 0.9374015 +v 1.027805 2.293067 0.9265471 +v -1.030706 2.342285 0.9291626 +v 1.042166 2.348438 0.9394939 +v -1.647967 1.283936 0.9610309 +v 1.690569 1.100391 0.9858745 +v 1.464742 0.234375 0.957617 +v -1.503772 0.2822937 0.9831339 +v -1.687827 0.5201111 0.9842757 +v 1.660199 0.4535156 0.9681642 +v 1.307063 1.857422 1.061166 +v -1.360014 1.857422 0.9923963 +v -1.16453 2.25 0.9454472 +v -1.042166 2.348438 0.9394939 +v 1.057979 2.342285 0.9537485 +v -0.9362535 2.221875 0.9362535 +v 0.945341 2.214844 0.945341 +v -1.181209 0.03530274 0.9589887 +v -1.168889 0.01583862 0.9489865 +v 1.168889 0.01583862 0.9489865 +v 1.543211 1.471875 1.008918 +v -1.479864 1.66333 0.9675032 +v -0.8442891 2.299805 0.9365572 +v 0.8636439 2.27644 0.9580272 +v 0.5310594 2.339062 1.027078 +v 0.4783344 2.339062 1.051073 +v -0.5310594 2.339062 1.027078 +v -0.4783344 2.339062 1.051073 +v -0.945341 2.214844 0.945341 +v 0.9545941 2.2125 0.9545941 +v 1.181209 0.03530274 0.9589887 +v -1.225182 0.08554687 0.9946892 +v -1.709128 0.5916504 0.9966975 +v 1.687827 0.5201111 0.9842757 +v -0.7662061 2.320532 0.9437543 +v 0.7165516 2.320532 0.9819868 +v -1.057979 2.342285 0.9537485 +v 1.076403 2.323828 0.970357 +v -1.690569 1.100391 0.9858745 +v 1.706334 1.010541 0.9950679 +v 0.7947665 2.299805 0.9789329 +v 0.9638473 2.214844 0.9638473 +v -0.9545941 2.2125 0.9545941 +v 1.503772 0.2822937 0.9831339 +v -1.541576 0.3347168 1.007849 +v -1.706334 1.010541 0.9950679 +v 1.717986 0.9221191 1.001863 +v -1.413657 0.234375 1.03154 +v 1.339503 0.1516113 0.9774297 +v -1.722836 0.6682434 1.004692 +v 1.709128 0.5916504 0.9966975 +v 0.8687114 2.263632 0.9636486 +v -0.8636439 2.27644 0.9580272 +v 0.9729347 2.221875 0.9729347 +v -0.9638473 2.214844 0.9638473 +v -1.717986 0.9221191 1.001863 +v 1.725209 0.8352356 1.006075 +v -1.076403 2.323828 0.970357 +v 1.095696 2.293067 0.9877502 +v 1.722836 0.6682434 1.004692 +v -1.727687 0.75 1.00752 +v -1.725209 0.8352356 1.006075 +v 1.727687 0.75 1.00752 +v -0.8687114 2.263632 0.9636486 +v 0.8704442 2.25 0.9655707 +v 0.8865558 2.221875 0.9834431 +v -0.8704442 2.25 0.9655707 +v 1.428251 1.66333 1.042189 +v 0.9899495 2.25 0.9899495 +v -0.9729347 2.221875 0.9729347 +v 0.9761388 2.323828 0.9761388 +v 0.9812487 2.342285 0.9812487 +v -0.9761388 2.323828 0.9761388 +v -0.9784867 2.293067 0.9784867 +v 0.9784867 2.293067 0.9784867 +v -0.9899495 2.25 0.9899495 +v 1.541576 0.3347168 1.007849 +v -1.576927 0.3917542 1.030961 +v 1.596749 1.283936 1.04392 +v -1.543211 1.471875 1.008918 +v 0.9921592 2.348438 0.9921592 +v -0.9812487 2.342285 0.9812487 +v -1.095696 2.293067 0.9877502 +v 1.11412 2.25 1.004359 +v 1.225182 0.08554687 0.9946892 +v -1.287351 0.1516113 1.045162 +v 0.6652018 2.320532 1.017473 +v -0.7165516 2.320532 0.9819868 +v 0.4256095 2.339062 1.075068 +v 0.3181517 2.339062 1.111618 +v -0.4256095 2.339062 1.075068 +v -0.8865558 2.221875 0.9834431 +v 0.8951609 2.214844 0.9929885 +v 0.8129861 2.27644 1.001374 +v -0.7947665 2.299805 0.9789329 +v 1.007213 2.342285 1.007213 +v -0.9921592 2.348438 0.9921592 +v 0.7432611 2.299805 1.01859 +v -0.8951609 2.214844 0.9929885 +v 0.9039229 2.2125 1.002708 +v -1.11412 2.25 1.004359 +v -1.307063 1.857422 1.061166 +v 1.250484 1.857422 1.127288 +v -1.130078 0.03530274 1.018744 +v -1.118291 0.01583862 1.008119 +v 1.118291 0.01583862 1.008119 +v 1.576927 0.3917542 1.030961 +v -1.608601 0.4535156 1.051669 +v 1.024752 2.323828 1.024752 +v -1.007213 2.342285 1.007213 +v -0.9039229 2.2125 1.002708 +v 0.9126848 2.214844 1.012428 +v 1.413657 0.234375 1.03154 +v -1.451326 0.2822937 1.059026 +v 0.8177564 2.263632 1.00725 +v -0.8129861 2.27644 1.001374 +v 1.130078 0.03530274 1.018744 +v -1.172147 0.08554687 1.056669 +v 1.638026 1.100391 1.070907 +v -1.596749 1.283936 1.04392 +v -0.8177564 2.263632 1.00725 +v 0.8193876 2.25 1.009259 +v -0.9126848 2.214844 1.012428 +v 0.9212899 2.221875 1.021973 +v 0.8345541 2.221875 1.02794 +v -0.8193876 2.25 1.009259 +v 0.2103948 2.339062 1.136947 +v -0.3181517 2.339062 1.111618 +v -1.428251 1.66333 1.042189 +v 1.489389 1.471875 1.086801 +v -0.6652018 2.320532 1.017473 +v 0.6123835 2.320532 1.05011 +v 1.608601 0.4535156 1.051669 +v -1.63537 0.5201111 1.06917 +v 1.043121 2.293067 1.043121 +v -1.024752 2.323828 1.024752 +v -0.9212899 2.221875 1.021973 +v 0.9374015 2.25 1.039845 +v -0.9243239 2.323828 1.025339 +v -0.9265471 2.293067 1.027805 +v 0.9243239 2.323828 1.025339 +v 0.9291626 2.342285 1.030706 +v -1.358618 0.234375 1.103022 +v 1.287351 0.1516113 1.045162 +v -0.9374015 2.25 1.039845 +v 0.9265471 2.293067 1.027805 +v -0.7432611 2.299805 1.01859 +v 0.7602999 2.27644 1.041941 +v -0.9291626 2.342285 1.030706 +v 0.9394939 2.348438 1.042166 +v 0.6899973 2.299805 1.055399 +v -1.487811 0.3347168 1.085649 +v 1.451326 0.2822937 1.059026 +v -0.8345541 2.221875 1.02794 +v 0.8426544 2.214844 1.037917 +v 1.63537 0.5201111 1.06917 +v -1.656009 0.5916504 1.082663 +v 1.653301 1.010541 1.080893 +v -1.638026 1.100391 1.070907 +v 1.06066 2.25 1.06066 +v -1.043121 2.293067 1.043121 +v 0.1038942 2.339062 1.151573 +v -0.2103948 2.339062 1.136947 +v -0.9394939 2.348438 1.042166 +v 0.9537485 2.342285 1.057979 +v 1.372644 1.66333 1.114409 +v 0.8509025 2.2125 1.048077 +v -0.8426544 2.214844 1.037917 +v -1.231625 0.1516113 1.110287 +v 1.172147 0.08554687 1.056669 +v 1.664591 0.9221191 1.088274 +v -1.653301 1.010541 1.080893 +v 1.656009 0.5916504 1.082663 +v -1.669291 0.6682434 1.091347 +v -0.6123835 2.320532 1.05011 +v 0.55833 2.320532 1.07982 +v 0 2.339062 1.15625 +v -0.1038942 2.339062 1.151573 +v 0.7647611 2.263632 1.048055 +v -0.7602999 2.27644 1.041941 +v 1.67159 0.8352356 1.09285 +v -1.664591 0.9221191 1.088274 +v 0.8591505 2.214844 1.058236 +v -0.8509025 2.2125 1.048077 +v 1.190481 1.857422 1.190481 +v -1.250484 1.857422 1.127288 +v -1.06066 2.25 1.06066 +v -1.064631 0.01583862 1.064631 +v 1.669291 0.6682434 1.091347 +v -1.673991 0.75 1.094419 +v -1.67159 0.8352356 1.09285 +v 1.673991 0.75 1.094419 +v -0.9537485 2.342285 1.057979 +v 0.970357 2.323828 1.076403 +v -0.7647611 2.263632 1.048055 +v 0.7662865 2.25 1.050145 +v 1.487811 0.3347168 1.085649 +v -1.52193 0.3917542 1.110546 +v -1.075852 0.03530274 1.075852 +v 1.064631 0.01583862 1.064631 +v -1.489389 1.471875 1.086801 +v 1.54106 1.283936 1.124505 +v 0.7804702 2.221875 1.069583 +v -0.7662865 2.25 1.050145 +v 0.8672508 2.221875 1.068213 +v -0.8591505 2.214844 1.058236 +v 0.6352102 2.299805 1.089253 +v -0.6899973 2.299805 1.055399 +v 0.7058151 2.27644 1.079593 +v 1.075852 0.03530274 1.075852 +v -1.115903 0.08554687 1.115903 +v 0.8824174 2.25 1.086895 +v -0.8672508 2.221875 1.068213 +v -0.970357 2.323828 1.076403 +v 0.9877502 2.293067 1.095696 +v 0.8701069 2.323828 1.071731 +v 0.8746617 2.342285 1.077342 +v -0.8701069 2.323828 1.071731 +v -0.8721997 2.293067 1.074309 +v -0.55833 2.320532 1.07982 +v 0.5032781 2.320532 1.106551 +v 0.8721997 2.293067 1.074309 +v -0.8824174 2.25 1.086895 +v -0.7804702 2.221875 1.069583 +v 0.7880456 2.214844 1.079965 +v 0.8843871 2.348438 1.089321 +v -0.8746617 2.342285 1.077342 +v -1.552498 0.4535156 1.132851 +v 1.52193 0.3917542 1.110546 +v 1.358618 0.234375 1.103022 +v -1.39482 0.2822937 1.132413 +v -0.7880456 2.214844 1.079965 +v 0.7957591 2.2125 1.090535 +v 0.7099566 2.263632 1.085928 +v -0.7058151 2.27644 1.079593 +v 0.8978055 2.342285 1.105848 +v -0.8843871 2.348438 1.089321 +v 1.431401 1.471875 1.162112 +v -1.372644 1.66333 1.114409 +v -0.9877502 2.293067 1.095696 +v 1.004359 2.25 1.11412 +v -1.54106 1.283936 1.124505 +v 1.580898 1.100391 1.153574 +v -1.299807 0.234375 1.171752 +v 1.231625 0.1516113 1.110287 +v -0.7099566 2.263632 1.085928 +v 0.7113727 2.25 1.088094 +v -0.7957591 2.2125 1.090535 +v 0.8034726 2.214844 1.101106 +v 0.5791418 2.299805 1.120071 +v -0.6352102 2.299805 1.089253 +v 0.7245399 2.221875 1.108234 +v -0.7113727 2.25 1.088094 +v 0.4474651 2.320532 1.130274 +v -0.5032781 2.320532 1.106551 +v -1.578334 0.5201111 1.151704 +v 1.552498 0.4535156 1.132851 +v 0.649772 2.27644 1.114223 +v 1.115903 0.08554687 1.115903 +v -1.172527 0.1516113 1.172527 +v 0.9134399 2.323828 1.125106 +v -0.8978055 2.342285 1.105848 +v -0.8034726 2.214844 1.101106 +v 0.811048 2.221875 1.111488 +v -1.429885 0.3347168 1.160881 +v 1.39482 0.2822937 1.132413 +v -1.190481 1.857422 1.190481 +v -1.004359 2.25 1.11412 +v 1.127288 1.857422 1.250484 +v -1.008119 0.01583862 1.118291 +v 1.313226 1.66333 1.183849 +v -1.018744 0.03530274 1.130078 +v 1.008119 0.01583862 1.118291 +v -0.811048 2.221875 1.111488 +v 0.8252316 2.25 1.130926 +v -1.598253 0.5916504 1.166238 +v 1.578334 0.5201111 1.151704 +v -0.7245399 2.221875 1.108234 +v 0.7315724 2.214844 1.118991 +v -1.580898 1.100391 1.153574 +v 1.59564 1.010541 1.164332 +v -0.8156761 2.293067 1.11783 +v -0.8137189 2.323828 1.115148 +v 0.8137189 2.323828 1.115148 +v 0.8179786 2.342285 1.120986 +v -0.8252316 2.25 1.130926 +v 0.8156761 2.293067 1.11783 +v -0.4474651 2.320532 1.130274 +v -0.3911258 2.320532 1.150984 +v 0.3911258 2.320532 1.150984 +v -1.056669 0.08554687 1.172147 +v 1.018744 0.03530274 1.130078 +v 0.9298128 2.293067 1.145273 +v -0.9134399 2.323828 1.125106 +v -0.8179786 2.342285 1.120986 +v 0.8270737 2.348438 1.13345 +v 0.6535847 2.263632 1.120761 +v -0.649772 2.27644 1.114223 +v 0.5220378 2.299805 1.147798 +v -0.5791418 2.299805 1.120071 +v 0.7387332 2.2125 1.129944 +v -0.7315724 2.214844 1.118991 +v -1.59564 1.010541 1.164332 +v 1.606536 0.9221191 1.172283 +v -1.611072 0.6682434 1.175592 +v 1.598253 0.5916504 1.166238 +v 1.429885 0.3347168 1.160881 +v -1.462675 0.3917542 1.187503 +v -0.6535847 2.263632 1.120761 +v 0.6548883 2.25 1.122997 +v 1.481061 1.283936 1.202429 +v -1.431401 1.471875 1.162112 +v 0.6670101 2.221875 1.143783 +v -0.6548883 2.25 1.122997 +v 1.613291 0.8352356 1.177211 +v -1.606536 0.9221191 1.172283 +v 0.5924183 2.27644 1.145748 +v -0.8270737 2.348438 1.13345 +v 0.8396226 2.342285 1.150647 +v 0.7458939 2.214844 1.140897 +v -0.7387332 2.2125 1.129944 +v -1.615608 0.75 1.178902 +v 1.611072 0.6682434 1.175592 +v -1.613291 0.8352356 1.177211 +v 1.615608 0.75 1.178902 +v 0.9454472 2.25 1.16453 +v -0.9298128 2.293067 1.145273 +v 0.7529264 2.221875 1.151654 +v -0.7458939 2.214844 1.140897 +v 1.299807 0.234375 1.171752 +v -1.334442 0.2822937 1.202975 +v -0.8396226 2.342285 1.150647 +v 0.8542437 2.323828 1.170685 +v 0.4641444 2.299805 1.172405 +v -0.5220378 2.299805 1.147798 +v -0.6670101 2.221875 1.143783 +v 0.6734841 2.214844 1.154885 +v 1.172527 0.1516113 1.172527 +v -1.237437 0.234375 1.237437 +v 1.462675 0.3917542 1.187503 +v -1.492054 0.4535156 1.211354 +v 0.7660937 2.25 1.171794 +v -0.7529264 2.221875 1.151654 +v 0.2211988 2.320532 1.195331 +v 0.3344892 2.320532 1.168701 +v -0.3344892 2.320532 1.168701 +v 1.061166 1.857422 1.307063 +v -1.127288 1.857422 1.250484 +v -0.9454472 2.25 1.16453 +v 0.5958944 2.263632 1.15247 +v -0.5924183 2.27644 1.145748 +v -1.313226 1.66333 1.183849 +v 1.369439 1.471875 1.234524 +v 0.755406 2.323828 1.155446 +v 0.7593604 2.342285 1.161495 +v -0.755406 2.323828 1.155446 +v -0.7572229 2.293067 1.158225 +v 1.056669 0.08554687 1.172147 +v -1.110287 0.1516113 1.231625 +v 0.7572229 2.293067 1.158225 +v -0.7660937 2.25 1.171794 +v -0.9589887 0.03530274 1.181209 +v -0.9489865 0.01583862 1.168889 +v 0.9489865 0.01583862 1.168889 +v -0.6734841 2.214844 1.154885 +v 0.6800763 2.2125 1.166189 +v 0.5340052 2.27644 1.17411 +v -0.5958944 2.263632 1.15247 +v 0.597083 2.25 1.154769 +v 0.7678037 2.348438 1.174409 +v -0.7593604 2.342285 1.161495 +v 0.6081347 2.221875 1.176144 +v -0.597083 2.25 1.154769 +v 1.519347 1.100391 1.233513 +v -1.481061 1.283936 1.202429 +v -0.8542437 2.323828 1.170685 +v 0.8695556 2.293067 1.191669 +v 1.250212 1.66333 1.250212 +v 0.6866685 2.214844 1.177493 +v -0.6800763 2.2125 1.166189 +v 0.9589887 0.03530274 1.181209 +v -0.9946892 0.08554687 1.225182 +v 0.405705 2.299805 1.193887 +v -0.4641444 2.299805 1.172405 +v -1.367989 0.3347168 1.233217 +v 1.334442 0.2822937 1.202975 +v 1.492054 0.4535156 1.211354 +v -1.516883 0.5201111 1.231513 +v 0.7794533 2.342285 1.192228 +v -0.7678037 2.348438 1.174409 +v -0.2211988 2.320532 1.195331 +v 0.1092293 2.320532 1.210708 +v 0.6931426 2.221875 1.188595 +v -0.6866685 2.214844 1.177493 +v -0.6081347 2.221875 1.176144 +v 0.6140374 2.214844 1.187559 +v -0.8695556 2.293067 1.191669 +v 0.8841767 2.25 1.211706 +v 0.5371386 2.263632 1.181 +v -0.5340052 2.27644 1.17411 +v 0.4747847 2.27644 1.199282 +v 0.7930266 2.323828 1.21299 +v -0.7794533 2.342285 1.192228 +v 0.3469573 2.299805 1.212264 +v -0.405705 2.299805 1.193887 +v 0 2.320532 1.215625 +v -0.1092293 2.320532 1.210708 +v 0.7052643 2.25 1.209381 +v -0.6931426 2.221875 1.188595 +v 1.516883 0.5201111 1.231513 +v -1.536027 0.5916504 1.247055 +v -0.5371386 2.263632 1.181 +v 0.53821 2.25 1.183355 +v 1.533516 1.010541 1.245016 +v -1.519347 1.100391 1.233513 +v 0.5481721 2.221875 1.205259 +v -0.53821 2.25 1.183355 +v -0.6140374 2.214844 1.187559 +v 0.6200477 2.2125 1.199183 +v 0.6954253 2.323828 1.192509 +v 0.6990657 2.342285 1.198752 +v -0.6970979 2.293067 1.195377 +v -0.6954253 2.323828 1.192509 +v 0.6970979 2.293067 1.195377 +v -0.7052643 2.25 1.209381 +v 1.367989 0.3347168 1.233217 +v -1.399359 0.3917542 1.261497 +v 0.7068386 2.348438 1.21208 +v -0.6990657 2.342285 1.198752 +v -1.369439 1.471875 1.234524 +v 1.416949 1.283936 1.277353 +v -1.533516 1.010541 1.245016 +v 1.543988 0.9221191 1.253518 +v -1.061166 1.857422 1.307063 +v -0.8841767 2.25 1.211706 +v 0.9923963 1.857422 1.360014 +v -0.6200477 2.2125 1.199183 +v 0.626058 2.214844 1.210807 +v 1.536027 0.5916504 1.247055 +v -1.548347 0.6682434 1.257057 +v 0.229444 2.299805 1.239887 +v -0.3469573 2.299805 1.212264 +v -0.8968408 0.03530274 1.229061 +v -0.8874866 0.01583862 1.216242 +v 0.8874866 0.01583862 1.216242 +v 0.8072413 2.293067 1.234732 +v -0.7930266 2.323828 1.21299 +v 1.237437 0.234375 1.237437 +v -1.27041 0.2822937 1.27041 +v 1.110287 0.1516113 1.231625 +v 0.9946892 0.08554687 1.225182 +v -1.045162 0.1516113 1.287351 +v 1.550479 0.8352356 1.258788 +v -1.543988 0.9221191 1.253518 +v -0.4747847 2.27644 1.199282 +v 0.4150056 2.27644 1.221256 +v -1.171752 0.234375 1.299807 +v 0.4775705 2.263632 1.206319 +v 0.7175632 2.342285 1.230471 +v -0.7068386 2.348438 1.21208 +v 1.548347 0.6682434 1.257057 +v -1.552706 0.75 1.260596 +v -0.5481721 2.221875 1.205259 +v 0.5534927 2.214844 1.216957 +v 1.552706 0.75 1.260596 +v -1.550479 0.8352356 1.258788 +v -0.626058 2.214844 1.210807 +v 0.6319606 2.221875 1.222223 +v -0.4775705 2.263632 1.206319 +v 0.4785231 2.25 1.208725 +v 0.8968408 0.03530274 1.229061 +v -0.9302276 0.08554687 1.274816 +v 0.4873804 2.221875 1.231098 +v -0.4785231 2.25 1.208725 +v 1.303728 1.471875 1.303728 +v -1.250212 1.66333 1.250212 +v -1.427466 0.4535156 1.286835 +v 1.399359 0.3917542 1.261497 +v -0.5534927 2.214844 1.216957 +v 0.5589104 2.2125 1.228869 +v -0.6319606 2.221875 1.222223 +v 0.6430124 2.25 1.243598 +v 1.183849 1.66333 1.313226 +v 0.8208146 2.25 1.255493 +v -0.8072413 2.293067 1.234732 +v 0.7300588 2.323828 1.251898 +v -0.7175632 2.342285 1.230471 +v -0.6355668 2.293067 1.229198 +v -0.6340418 2.323828 1.226248 +v 0.6340418 2.323828 1.226248 +v 0.6373609 2.342285 1.232668 +v 0.3549111 2.27644 1.240054 +v -0.4150056 2.27644 1.221256 +v 0.1133008 2.299805 1.255837 +v -0.229444 2.299805 1.239887 +v -0.6430124 2.25 1.243598 +v 0.6355668 2.293067 1.229198 +v -0.6373609 2.342285 1.232668 +v 0.6444477 2.348438 1.246374 +v 0.5643281 2.214844 1.240781 +v -0.5589104 2.2125 1.228869 +v 0.4174407 2.263632 1.228422 +v -1.416949 1.283936 1.277353 +v 1.453579 1.100391 1.310374 +v -1.302347 0.3347168 1.302347 +v 1.27041 0.2822937 1.27041 +v -0.4873804 2.221875 1.231098 +v 0.492111 2.214844 1.243047 +v -0.4174407 2.263632 1.228422 +v 0.4182733 2.25 1.230873 +v 0.4260154 2.221875 1.253656 +v -0.4182733 2.25 1.230873 +v 0 2.299805 1.260937 +v -0.1133008 2.299805 1.255837 +v 0.5696487 2.221875 1.252479 +v -0.5643281 2.214844 1.240781 +v -1.451221 0.5201111 1.308249 +v 1.427466 0.4535156 1.286835 +v 0.9212789 1.857422 1.40916 +v -0.9923963 1.857422 1.360014 +v -0.8208146 2.25 1.255493 +v -0.6444477 2.348438 1.246374 +v 0.6542256 2.342285 1.265284 +v 0.2347039 2.27644 1.26831 +v -0.3549111 2.27644 1.240054 +v 0.7431448 2.293067 1.274338 +v -0.7300588 2.323828 1.251898 +v -0.8325711 0.03530274 1.273476 +v -0.8238873 0.01583862 1.260193 +v 0.8238873 0.01583862 1.260193 +v -0.492111 2.214844 1.243047 +v 0.4969279 2.2125 1.255214 +v 0.3569936 2.263632 1.247331 +v 0.5796108 2.25 1.274383 +v -0.5696487 2.221875 1.252479 +v -0.9774297 0.1516113 1.339503 +v 1.045162 0.1516113 1.287351 +v 0.9302276 0.08554687 1.274816 +v 0.5715247 2.323828 1.256604 +v 0.5745165 2.342285 1.263182 +v -0.5728993 2.293067 1.259626 +v -0.5715247 2.323828 1.256604 +v -0.3569936 2.263632 1.247331 +v 0.3577057 2.25 1.249819 +v 0.5017447 2.214844 1.267381 +v -0.4969279 2.2125 1.255214 +v 0.8325711 0.03530274 1.273476 +v -0.8635654 0.08554687 1.320884 +v 0.5728993 2.293067 1.259626 +v -0.5796108 2.25 1.274383 +v -0.6542256 2.342285 1.265284 +v 0.6656184 2.323828 1.287318 +v 0.3643267 2.221875 1.272952 +v -0.4260154 2.221875 1.253656 +v -0.3577057 2.25 1.249819 +v 0.4301504 2.214844 1.265824 +v -1.469536 0.5916504 1.32476 +v 1.451221 0.5201111 1.308249 +v -1.103022 0.234375 1.358618 +v 1.171752 0.234375 1.299807 +v 0.5809045 2.348438 1.277227 +v -0.5745165 2.342285 1.263182 +v 1.302347 0.3347168 1.302347 +v -1.332213 0.3917542 1.332213 +v 1.467133 1.010541 1.322594 +v -1.453579 1.100391 1.310374 +v 1.348958 1.283936 1.348958 +v -1.303728 1.471875 1.303728 +v 0.7556404 2.25 1.295765 +v -0.7431448 2.293067 1.274338 +v -1.202975 0.2822937 1.334442 +v 0.1158982 2.27644 1.284626 +v -0.2347039 2.27644 1.26831 +v 0.2360811 2.263632 1.275752 +v 0.5064753 2.221875 1.279331 +v -0.5017447 2.214844 1.267381 +v -0.4301504 2.214844 1.265824 +v 0.4343608 2.2125 1.278214 +v -1.467133 1.010541 1.322594 +v 1.477152 0.9221191 1.331625 +v 0.5897183 2.342285 1.296606 +v -0.5809045 2.348438 1.277227 +v -1.481323 0.6682434 1.335385 +v 1.469536 0.5916504 1.32476 +v -0.2360811 2.263632 1.275752 +v -0.2971288 2.25 1.264058 +v 0.2971288 2.25 1.264058 +v 0.3025551 2.221875 1.289031 +v -0.3643267 2.221875 1.272952 +v -1.183849 1.66333 1.313226 +v 1.234524 1.471875 1.369439 +v 1.114409 1.66333 1.372644 +v -0.6656184 2.323828 1.287318 +v 0.6775492 2.293067 1.310392 +v 0.5153326 2.25 1.301704 +v -0.5064753 2.221875 1.279331 +v -1.477152 0.9221191 1.331625 +v 1.483363 0.8352356 1.337224 +v 0.3678629 2.214844 1.285308 +v -0.4343608 2.2125 1.278214 +v 0.4385712 2.214844 1.290604 +v 0.8481276 1.857422 1.454362 +v -0.7556404 2.25 1.295765 +v -0.9212789 1.857422 1.40916 +v 0 2.27644 1.289844 +v -0.1158982 2.27644 1.284626 +v 0.5081432 2.323828 1.283544 +v 0.5108033 2.342285 1.290263 +v -0.5081432 2.323828 1.283544 +v -0.5093654 2.293067 1.286631 +v -1.485493 0.75 1.339145 +v 1.481323 0.6682434 1.335385 +v -1.483363 0.8352356 1.337224 +v 1.485493 0.75 1.339145 +v 0.5093654 2.293067 1.286631 +v -0.5153326 2.25 1.301704 +v -0.7664633 0.03530274 1.314324 +v -0.7584691 0.01583862 1.300616 +v 0.7584691 0.01583862 1.300616 +v 1.332213 0.3917542 1.332213 +v -1.358971 0.4535156 1.358971 +v 0.5164829 2.348438 1.304609 +v -0.5108033 2.342285 1.290263 +v 0.236552 2.25 1.278297 +v 0.2409305 2.221875 1.301958 +v -0.3025551 2.221875 1.289031 +v -0.236552 2.25 1.278297 +v 0.5999877 2.323828 1.319185 +v -0.5897183 2.342285 1.296606 +v 0.3714636 2.2125 1.297889 +v -0.3678629 2.214844 1.285308 +v -0.4385712 2.214844 1.290604 +v 0.4427061 2.221875 1.302772 +v 0.1165782 2.263632 1.292164 +v -1.233217 0.3347168 1.367989 +v 1.202975 0.2822937 1.334442 +v 0.3054918 2.214844 1.301543 +v -0.7949966 0.08554687 1.363253 +v 0.7664633 0.03530274 1.314324 +v 0.8635654 0.08554687 1.320884 +v -0.6775492 2.293067 1.310392 +v 0.6889419 2.25 1.332426 +v 0.9774297 0.1516113 1.339503 +v -0.9073849 0.1516113 1.387909 +v -0.1165782 2.263632 1.292164 +v 0.1168108 2.25 1.294741 +v 0.5243193 2.342285 1.324404 +v -0.5164829 2.348438 1.304609 +v 1.38383 1.100391 1.38383 +v -1.348958 1.283936 1.348958 +v 0.3750643 2.214844 1.310469 +v -0.3714636 2.2125 1.297889 +v 0.1189729 2.221875 1.318707 +v -0.2409305 2.221875 1.301958 +v -0.1168108 2.25 1.294741 +v -0.4427061 2.221875 1.302772 +v 0.4504482 2.25 1.325555 +v -0.444164 2.323828 1.307063 +v -0.4452323 2.293067 1.310206 +v 0.444164 2.323828 1.307063 +v 0.4464892 2.342285 1.313905 +v 0 2.263632 1.297412 +v -0.3054918 2.214844 1.301543 +v 0.308482 2.2125 1.314283 +v -0.4504482 2.25 1.325555 +v 0.4452323 2.293067 1.310206 +v 1.358971 0.4535156 1.358971 +v -1.381586 0.5201111 1.381586 +v 0.6107422 2.293067 1.342831 +v -0.5999877 2.323828 1.319185 +v -1.03154 0.234375 1.413657 +v 1.103022 0.234375 1.358618 +v 0.243269 2.214844 1.314595 +v -0.4464892 2.342285 1.313905 +v 0.4514537 2.348438 1.328514 +v 0.3786005 2.221875 1.322825 +v -0.3750643 2.214844 1.310469 +v 0 2.25 1.3 +v 0 2.221875 1.324062 +v -0.1189729 2.221875 1.318707 +v -0.8481276 1.857422 1.454362 +v -0.6889419 2.25 1.332426 +v 0.7732655 1.857422 1.495509 +v -0.6915209 0.01583862 1.337414 +v 0.5334498 2.323828 1.347467 +v -0.5243193 2.342285 1.324404 +v -0.308482 2.2125 1.314283 +v 0.3114722 2.214844 1.327022 +v -1.132413 0.2822937 1.39482 +v -0.6988096 0.03530274 1.35151 +v 0.6915209 0.01583862 1.337414 +v 0.2456501 2.2125 1.327462 +v -0.243269 2.214844 1.314595 +v 0.1201277 2.214844 1.331506 +v 1.233217 0.3347168 1.367989 +v -1.261497 0.3917542 1.399359 +v 0.3852215 2.25 1.345959 +v -0.3786005 2.221875 1.322825 +v -1.234524 1.471875 1.369439 +v 1.277353 1.283936 1.416949 +v -0.4514537 2.348438 1.328514 +v 0.4583034 2.342285 1.348671 +v 0.3798473 2.323828 1.327181 +v 0.3818358 2.342285 1.334129 +v -0.3798473 2.323828 1.327181 +v -0.3807609 2.293067 1.330373 +v -1.114409 1.66333 1.372644 +v 1.042189 1.66333 1.428251 +v 1.381586 0.5201111 1.381586 +v -1.399022 0.5916504 1.399022 +v 0.3807609 2.293067 1.330373 +v -0.3852215 2.25 1.345959 +v 1.396734 1.010541 1.396734 +v -1.38383 1.100391 1.38383 +v 0.6210115 2.25 1.36541 +v -0.6107422 2.293067 1.342831 +v -0.3114722 2.214844 1.327022 +v 0.3144088 2.221875 1.339534 +v 1.162112 1.471875 1.431401 +v 0.3860814 2.348438 1.348963 +v -0.3818358 2.342285 1.334129 +v 0.2480313 2.214844 1.34033 +v -0.2456501 2.2125 1.327462 +v 0.6988096 0.03530274 1.35151 +v 0.7949966 0.08554687 1.363253 +v -0.7248243 0.08554687 1.401823 +v -0.1201277 2.214844 1.331506 +v 0.1213035 2.2125 1.344539 +v 0 2.214844 1.336914 +v 0.5430116 2.293067 1.371619 +v -0.5334498 2.323828 1.347467 +v 0.9073849 0.1516113 1.387909 +v -0.8353368 0.1516113 1.432428 +v 1.406272 0.9221191 1.406272 +v -1.396734 1.010541 1.396734 +v -0.3144088 2.221875 1.339534 +v 0.3199072 2.25 1.36296 +v -0.4583034 2.342285 1.348671 +v 0.4662843 2.323828 1.372157 +v 1.399022 0.5916504 1.399022 +v -1.410243 0.6682434 1.410243 +v 0.2503698 2.221875 1.352967 +v -0.2480313 2.214844 1.34033 +v -0.3162029 2.293067 1.347178 +v -0.3154442 2.323828 1.343945 +v 0.3154442 2.323828 1.343945 +v 0.3170955 2.342285 1.350981 +v -0.1213035 2.2125 1.344539 +v 0.1224793 2.214844 1.357572 +v 0.3919392 2.342285 1.36943 +v -0.3860814 2.348438 1.348963 +v -0.3199072 2.25 1.36296 +v 0.3162029 2.293067 1.347178 +v 0 2.2125 1.35 +v 1.412185 0.8352356 1.412185 +v -1.406272 0.9221191 1.406272 +v -1.286835 0.4535156 1.427466 +v 1.261497 0.3917542 1.399359 +v 0.6970208 1.857422 1.532531 +v -0.6210115 2.25 1.36541 +v -0.7732655 1.857422 1.495509 +v -0.3170955 2.342285 1.350981 +v 0.3206213 2.348438 1.366002 +v -1.160881 0.3347168 1.429885 +v 1.132413 0.2822937 1.39482 +v 1.410243 0.6682434 1.410243 +v -1.414214 0.75 1.414214 +v 1.414214 0.75 1.414214 +v -1.412185 0.8352356 1.412185 +v -0.6299062 0.03530274 1.384967 +v -0.6233363 0.01583862 1.370521 +v 0.6233363 0.01583862 1.370521 +v -0.957617 0.234375 1.464742 +v 1.03154 0.234375 1.413657 +v 0.2547483 2.25 1.376628 +v -0.2503698 2.221875 1.352967 +v -0.1224793 2.214844 1.357572 +v -0.1867084 2.221875 1.363211 +v 0.1867084 2.221875 1.363211 +v 0.5521421 2.25 1.394682 +v -0.5430116 2.293067 1.371619 +v 0.2511943 2.323828 1.357422 +v 0.2525093 2.342285 1.364528 +v -0.2511943 2.323828 1.357422 +v -0.2517985 2.293067 1.360687 +v 0 2.214844 1.363086 +v 0.2517985 2.293067 1.360687 +v -0.2547483 2.25 1.376628 +v -0.4662843 2.323828 1.372157 +v 0.4746422 2.293067 1.396752 +v 0.3987644 2.323828 1.393277 +v -0.3919392 2.342285 1.36943 +v -1.277353 1.283936 1.416949 +v 1.310374 1.100391 1.453579 +v -0.3206213 2.348438 1.366002 +v 0.325486 2.342285 1.386728 +v 0.2553169 2.348438 1.3797 +v -0.2525093 2.342285 1.364528 +v 0.6299062 0.03530274 1.384967 +v 0.7248243 0.08554687 1.401823 +v -0.6533559 0.08554687 1.436525 +v 0.1899735 2.25 1.387051 +v 0.1873232 2.323828 1.3677 +v 0.1883039 2.342285 1.37486 +v -0.188069 2.293067 1.369439 +v -0.1873232 2.323828 1.3677 +v 0 2.221875 1.375937 +v 0.1236341 2.221875 1.370372 +v -0.1236341 2.221875 1.370372 +v -1.059026 0.2822937 1.451326 +v -1.308249 0.5201111 1.451221 +v 1.286835 0.4535156 1.427466 +v 0.9675032 1.66333 1.479864 +v -1.042189 1.66333 1.428251 +v -0.1899735 2.25 1.387051 +v 0.188069 2.293067 1.369439 +v 0.1257962 2.25 1.394337 +v 0.8353368 0.1516113 1.432428 +v -0.7616037 0.1516113 1.472955 +v 0.1903976 2.348438 1.390147 +v -0.1883039 2.342285 1.37486 +v -0.2553169 2.348438 1.3797 +v 0.6197219 1.857422 1.565386 +v -0.6970208 1.857422 1.532531 +v -0.5521421 2.25 1.394682 +v 0.2591907 2.342285 1.400634 +v -0.325486 2.342285 1.386728 +v 0.554209 0.01583862 1.399903 +v -0.1243396 2.293067 1.378191 +v -0.1240412 2.323828 1.374885 +v 0.1240412 2.323828 1.374885 +v 0.1246906 2.342285 1.382082 +v 1.160881 0.3347168 1.429885 +v -1.187503 0.3917542 1.462675 +v -0.3987644 2.323828 1.393277 +v 0.331154 2.323828 1.410876 +v 1.202429 1.283936 1.481061 +v -1.162112 1.471875 1.431401 +v 0.1243396 2.293067 1.378191 +v -0.1257962 2.25 1.394337 +v 0 2.25 1.4 +v -0.5600504 0.03530274 1.414658 +v -0.554209 0.01583862 1.399903 +v -0.4746422 2.293067 1.396752 +v 0.4826231 2.25 1.420238 +v 0.4059121 2.293067 1.418251 +v 1.086801 1.471875 1.489389 +v -0.1246906 2.342285 1.382082 +v -0.1903976 2.348438 1.390147 +v 0.126077 2.348438 1.397449 +v 0 2.323828 1.380469 +v 0 2.342285 1.387695 +v 0 2.293067 1.383789 +v 0.1932864 2.342285 1.411239 +v -0.2591907 2.342285 1.400634 +v -1.32476 0.5916504 1.469536 +v 1.308249 0.5201111 1.451221 +v 0 2.348438 1.403125 +v -0.126077 2.348438 1.397449 +v -1.310374 1.100391 1.453579 +v 1.322594 1.010541 1.467133 +v 0.6533559 0.08554687 1.436525 +v 0.5600504 0.03530274 1.414658 +v -0.5808995 0.08554687 1.467322 +v 0.2637043 2.323828 1.425025 +v -0.331154 2.323828 1.410876 +v -0.8815804 0.234375 1.511726 +v 0.957617 0.234375 1.464742 +v -0.1932864 2.342285 1.411239 +v 0.1279899 2.342285 1.418652 +v -0.4059121 2.293067 1.418251 +v 0.3370897 2.293067 1.436166 +v -0.6197219 1.857422 1.565386 +v -0.4826231 2.25 1.420238 +v 0.5416941 1.857422 1.594069 +v -1.085649 0.3347168 1.487811 +v 1.059026 0.2822937 1.451326 +v -1.322594 1.010541 1.467133 +v 1.331625 0.9221191 1.477152 +v 0.4127373 2.25 1.442098 +v 0 2.342285 1.424414 +v -0.1279899 2.342285 1.418652 +v -1.335385 0.6682434 1.481323 +v 1.32476 0.5916504 1.469536 +v 1.187503 0.3917542 1.462675 +v -1.211354 0.4535156 1.492054 +v -0.4895356 0.03530274 1.44058 +v -0.4844297 0.01583862 1.425554 +v 0.4844297 0.01583862 1.425554 +v 0.1966523 2.323828 1.435814 +v -0.2637043 2.323828 1.425025 +v -0.6865088 0.1516113 1.509418 +v 0.7616037 0.1516113 1.472955 +v -1.331625 0.9221191 1.477152 +v 1.337224 0.8352356 1.483363 +v 0.8906816 1.66333 1.527333 +v -0.9675032 1.66333 1.479864 +v -1.339145 0.75 1.485493 +v 1.335385 0.6682434 1.481323 +v 0.268431 2.293067 1.450567 +v -0.3370897 2.293067 1.436166 +v -0.1966523 2.323828 1.435814 +v 0.1302187 2.323828 1.443357 +v -1.337224 0.8352356 1.483363 +v 1.339145 0.75 1.485493 +v -0.9831339 0.2822937 1.503772 +v -0.5077597 0.08554687 1.494208 +v 0.4895356 0.03530274 1.44058 +v 0.5808995 0.08554687 1.467322 +v 1.233513 1.100391 1.519347 +v -1.202429 1.283936 1.481061 +v -0.4127373 2.25 1.442098 +v 0.3427577 2.25 1.460314 +v 0 2.323828 1.449219 +v -0.1302187 2.323828 1.443357 +v 0.4632547 1.857422 1.618605 +v -0.5416941 1.857422 1.594069 +v 0.2001772 2.293067 1.461551 +v -0.268431 2.293067 1.450567 +v -0.4186489 0.03530274 1.462754 +v -0.4142824 0.01583862 1.447497 +v 0.4142824 0.01583862 1.447497 +v 1.211354 0.4535156 1.492054 +v -1.231513 0.5201111 1.516883 +v 1.008918 1.471875 1.543211 +v -1.086801 1.471875 1.489389 +v 1.085649 0.3347168 1.487811 +v -1.110546 0.3917542 1.52193 +v 1.124505 1.283936 1.54106 +v -0.8037655 0.234375 1.554497 +v 0.8815804 0.234375 1.511726 +v -0.2001772 2.293067 1.461551 +v 0.1325528 2.293067 1.469228 +v 0.2729446 2.25 1.474958 +v -0.3427577 2.25 1.460314 +v 0.6865088 0.1516113 1.509418 +v -0.6103758 0.1516113 1.541778 +v 0.4186489 0.03530274 1.462754 +v 0.5077597 0.08554687 1.494208 +v -0.4342341 0.08554687 1.517208 +v -0.4632547 1.857422 1.618605 +v 0.3847099 1.857422 1.63905 +v -0.3440408 0.01583862 1.465781 +v 0.06576457 2.293067 1.473729 +v -0.1325528 2.293067 1.469228 +v -0.06627642 2.293067 1.472212 +v -0.347667 0.03530274 1.48123 +v 0.3440408 0.01583862 1.465781 +v 0 2.293067 1.475195 +v 0.2035431 2.25 1.486126 +v -0.2729446 2.25 1.474958 +v 1.231513 0.5201111 1.516883 +v -1.247055 0.5916504 1.536027 +v -1.007849 0.3347168 1.541576 +v 0.9831339 0.2822937 1.503772 +v 1.245016 1.010541 1.533516 +v -1.233513 1.100391 1.519347 +v -0.8906816 1.66333 1.527333 +v 0.8120633 1.66333 1.570545 +v 0.3063519 1.857422 1.655487 +v -0.3847099 1.857422 1.63905 +v -0.2035431 2.25 1.486126 +v 0.1347817 2.25 1.493932 +v -0.2739663 0.01583862 1.48048 +v -1.132851 0.4535156 1.552498 +v 1.110546 0.3917542 1.52193 +v 0.347667 0.03530274 1.48123 +v 0.4342341 0.08554687 1.517208 +v -0.3606097 0.08554687 1.536372 +v -0.9050712 0.2822937 1.552008 +v -0.2768539 0.03530274 1.496084 +v 0.2739663 0.01583862 1.48048 +v 1.253518 0.9221191 1.543988 +v -1.245016 1.010541 1.533516 +v 0.6103758 0.1516113 1.541778 +v -0.5335247 0.1516113 1.570028 +v 0.06687037 2.25 1.498509 +v -0.1347817 2.25 1.493932 +v 1.247055 0.5916504 1.536027 +v -1.257057 0.6682434 1.548347 +v -0.06687037 2.25 1.498509 +v -0.7245134 0.234375 1.592978 +v 0.8037655 0.234375 1.554497 +v 0 2.25 1.5 +v 0.2284559 1.857422 1.668022 +v -0.3063519 1.857422 1.655487 +v 0.2043051 0.01583862 1.491689 +v 1.258788 0.8352356 1.550479 +v -1.253518 0.9221191 1.543988 +v -0.2043051 0.01583862 1.491689 +v 0.928808 1.471875 1.592711 +v -1.008918 1.471875 1.543211 +v -0.2064584 0.03530274 1.507412 +v 0.2768539 0.03530274 1.496084 +v -1.124505 1.283936 1.54106 +v 1.153574 1.100391 1.580898 +v 0.3606097 0.08554687 1.536372 +v -0.2871605 0.08554687 1.551779 +v 1.257057 0.6682434 1.548347 +v -1.260596 0.75 1.552706 +v 1.260596 0.75 1.552706 +v -1.258788 0.8352356 1.550479 +v -0.2284559 1.857422 1.668022 +v 0.1512784 1.857422 1.676783 +v 1.007849 0.3347168 1.541576 +v -1.030961 0.3917542 1.576927 +v 1.04392 1.283936 1.596749 +v 0.1352862 0.01583862 1.499525 +v -0.1352862 0.01583862 1.499525 +v -0.1367121 0.03530274 1.51533 +v 0.2064584 0.03530274 1.507412 +v -1.151704 0.5201111 1.578334 +v 1.132851 0.4535156 1.552498 +v 0.07505502 1.857422 1.68192 +v -0.1512784 1.857422 1.676783 +v 0.5335247 0.1516113 1.570028 +v -0.4562682 0.1516113 1.594195 +v 0.7319931 1.66333 1.609424 +v -0.8120633 1.66333 1.570545 +v -0.2141443 0.08554687 1.563528 +v 0.2871605 0.08554687 1.551779 +v 0.06712069 0.01583862 1.504118 +v -0.06712069 0.01583862 1.504118 +v 0 1.857422 1.683594 +v -0.07505502 1.857422 1.68192 +v 0 0.01583862 1.505615 +v -0.06782815 0.03530274 1.519972 +v 0.1367121 0.03530274 1.51533 +v -0.927824 0.3347168 1.591024 +v 0.9050712 0.2822937 1.552008 +v 0 0.03530274 1.521484 +v 0.06782815 0.03530274 1.519972 +v 0.2141443 0.08554687 1.563528 +v -0.1418015 0.08554687 1.571741 +v 0.7245134 0.234375 1.592978 +v -0.6441658 0.234375 1.62713 +v -0.8251829 0.2822937 1.595918 +v 0.1418015 0.08554687 1.571741 +v -0.0703532 0.08554687 1.576556 +v -1.166238 0.5916504 1.598253 +v 1.151704 0.5201111 1.578334 +v -0.378908 0.1516113 1.614332 +v 0.4562682 0.1516113 1.594195 +v -1.153574 1.100391 1.580898 +v 1.164332 1.010541 1.59564 +v 0.0703532 0.08554687 1.576556 +v 0 0.08554687 1.578125 +v 1.030961 0.3917542 1.576927 +v -1.051669 0.4535156 1.608601 +v -0.928808 1.471875 1.592711 +v 0.8468244 1.471875 1.637774 +v 0.6508159 1.66333 1.643927 +v -0.7319931 1.66333 1.609424 +v -1.164332 1.010541 1.59564 +v 1.172283 0.9221191 1.606536 +v -1.175592 0.6682434 1.611072 +v 1.166238 0.5916504 1.598253 +v 0.378908 0.1516113 1.614332 +v -0.3017317 0.1516113 1.63052 +v 1.070907 1.100391 1.638026 +v -1.04392 1.283936 1.596749 +v 0.927824 0.3347168 1.591024 +v -0.949101 0.3917542 1.62751 +v -0.5630602 0.234375 1.656944 +v 0.6441658 0.234375 1.62713 +v 0.9610309 1.283936 1.647967 +v -1.172283 0.9221191 1.606536 +v 1.177211 0.8352356 1.613291 +v -1.178902 0.75 1.615608 +v 1.175592 0.6682434 1.611072 +v -1.177211 0.8352356 1.613291 +v 1.178902 0.75 1.615608 +v 0.3017317 0.1516113 1.63052 +v -0.2250105 0.1516113 1.642866 +v -0.8459274 0.3347168 1.636039 +v 0.8251829 0.2822937 1.595918 +v 1.051669 0.4535156 1.608601 +v -1.06917 0.5201111 1.63537 +v -0.743819 0.2822937 1.635425 +v 0.2250105 0.1516113 1.642866 +v -0.1489969 0.1516113 1.651496 +v -0.6508159 1.66333 1.643927 +v 0.5688731 1.66333 1.67405 +v -0.4815269 0.234375 1.682448 +v 0.5630602 0.234375 1.656944 +v 0.7633266 1.471875 1.678317 +v -0.8468244 1.471875 1.637774 +v -0.0739231 0.1516113 1.656555 +v 0.1489969 0.1516113 1.651496 +v 0.0739231 0.1516113 1.656555 +v 0 0.1516113 1.658203 +v -0.9681642 0.4535156 1.660199 +v 0.949101 0.3917542 1.62751 +v 1.06917 0.5201111 1.63537 +v -1.082663 0.5916504 1.656009 +v 1.080893 1.010541 1.653301 +v -1.070907 1.100391 1.638026 +v 0.8459274 0.3347168 1.636039 +v -0.8653263 0.3917542 1.673557 +v -0.9610309 1.283936 1.647967 +v 0.8762031 1.283936 1.694593 +v 0.743819 0.2822937 1.635425 +v -0.6613303 0.2822937 1.670486 +v 0.486498 1.66333 1.699817 +v -0.5688731 1.66333 1.67405 +v -0.399884 0.234375 1.7037 +v 0.4815269 0.234375 1.682448 +v -1.080893 1.010541 1.653301 +v 1.088274 0.9221191 1.664591 +v -0.762518 0.3347168 1.676539 +v 0.9858745 1.100391 1.690569 +v 1.082663 0.5916504 1.656009 +v -1.091347 0.6682434 1.669291 +v 1.09285 0.8352356 1.67159 +v -1.088274 0.9221191 1.664591 +v -0.9842757 0.5201111 1.687827 +v 0.9681642 0.4535156 1.660199 +v 0.6786746 1.471875 1.714297 +v -0.7633266 1.471875 1.678317 +v 1.091347 0.6682434 1.669291 +v -1.094419 0.75 1.673991 +v 1.094419 0.75 1.673991 +v -1.09285 0.8352356 1.67159 +v -0.3184353 0.234375 1.720784 +v 0.399884 0.234375 1.7037 +v -0.486498 1.66333 1.699817 +v 0.4040123 1.66333 1.721288 +v 0.6613303 0.2822937 1.670486 +v -0.5780637 0.2822937 1.701095 +v 0.8653263 0.3917542 1.673557 +v -0.8827068 0.4535156 1.707171 +v -0.2374669 0.234375 1.733814 +v 0.3184353 0.234375 1.720784 +v -0.9966975 0.5916504 1.709128 +v 0.9842757 0.5201111 1.687827 +v -0.6779557 0.3347168 1.712481 +v 0.762518 0.3347168 1.676539 +v -0.7800042 0.3917542 1.714985 +v 0.7898086 1.283936 1.736542 +v -0.8762031 1.283936 1.694593 +v 0.9950679 1.010541 1.706334 +v -0.9858745 1.100391 1.690569 +v 0.3217227 1.66333 1.738549 +v -0.4040123 1.66333 1.721288 +v -0.1572453 0.234375 1.742921 +v 0.2374669 0.234375 1.733814 +v -0.6786746 1.471875 1.714297 +v 0.5932242 1.471875 1.745709 +v 0.8988539 1.100391 1.7384 +v -0.07801542 0.234375 1.74826 +v 0.1572453 0.234375 1.742921 +v -0.9950679 1.010541 1.706334 +v 1.001863 0.9221191 1.717986 +v 0.2399185 1.66333 1.751713 +v -0.3217227 1.66333 1.738549 +v -1.004692 0.6682434 1.722836 +v 0.9966975 0.5916504 1.709128 +v 0.07801542 0.234375 1.74826 +v 0 0.234375 1.75 +v 0.5780637 0.2822937 1.701095 +v -0.4943577 0.2822937 1.727279 +v 0.8827068 0.4535156 1.707171 +v -0.8973961 0.5201111 1.73558 +v -1.001863 0.9221191 1.717986 +v 1.006075 0.8352356 1.725209 +v -0.2399185 1.66333 1.751713 +v 0.1588686 1.66333 1.760914 +v -1.00752 0.75 1.727687 +v 1.004692 0.6682434 1.722836 +v -0.5925958 0.3347168 1.74386 +v 0.6779557 0.3347168 1.712481 +v -1.006075 0.8352356 1.725209 +v 1.00752 0.75 1.727687 +v -0.795671 0.4535156 1.749432 +v 0.7800042 0.3917542 1.714985 +v 0.507323 1.471875 1.772579 +v -0.5932242 1.471875 1.745709 +v -0.6935027 0.3917542 1.751752 +v 0.07882083 1.66333 1.766309 +v -0.1588686 1.66333 1.760914 +v 0.7022197 1.283936 1.773771 +v -0.7898086 1.283936 1.736542 +v 0 1.66333 1.768066 +v -0.07882083 1.66333 1.766309 +v 0.4943577 0.2822937 1.727279 +v -0.4105394 0.2822937 1.749097 +v 0.8973961 0.5201111 1.73558 +v -0.9087215 0.5916504 1.757484 +v 0.9072358 1.010541 1.75461 +v -0.8988539 1.100391 1.7384 +v 0.810226 1.100391 1.781433 +v -0.507323 1.471875 1.772579 +v 0.4213064 1.471875 1.794969 +v -0.5067855 0.3347168 1.770702 +v 0.5925958 0.3347168 1.74386 +v 0.4105394 0.2822937 1.749097 +v -0.3269204 0.2822937 1.766637 +v 0.9134311 0.9221191 1.766592 +v -0.9072358 1.010541 1.75461 +v -0.808912 0.5201111 1.778544 +v 0.795671 0.4535156 1.749432 +v 0.9087215 0.5916504 1.757484 +v -0.9160101 0.6682434 1.77158 +v 0.6935027 0.3917542 1.751752 +v -0.6061853 0.3917542 1.78385 +v -0.7022197 1.283936 1.773771 +v 0.6138048 1.283936 1.806272 +v -0.707432 0.4535156 1.786937 +v 0.9172716 0.8352356 1.77402 +v -0.9134311 0.9221191 1.766592 +v 0.3269204 0.2822937 1.766637 +v -0.2437945 0.2822937 1.780013 +v 0.3354944 1.471875 1.812969 +v -0.4213064 1.471875 1.794969 +v 0.9160101 0.6682434 1.77158 +v -0.9185892 0.75 1.776568 +v 0.9185892 0.75 1.776568 +v -0.9172716 0.8352356 1.77402 +v -0.4208601 0.3347168 1.793068 +v 0.5067855 0.3347168 1.770702 +v 0.2437945 0.2822937 1.780013 +v -0.1614353 0.2822937 1.789363 +v -0.8191206 0.5916504 1.80099 +v 0.808912 0.5201111 1.778544 +v 0.7203729 1.100391 1.819625 +v -0.810226 1.100391 1.781433 +v 0.8177814 1.010541 1.798046 +v 0.2501884 1.471875 1.826696 +v -0.3354944 1.471875 1.812969 +v 0.1614353 0.2822937 1.789363 +v -0.08009424 0.2822937 1.794845 +v -0.5184072 0.3917542 1.811308 +v 0.6061853 0.3917542 1.78385 +v 0.5249234 1.283936 1.834075 +v -0.6138048 1.283936 1.806272 +v 0.08009424 0.2822937 1.794845 +v 0 0.2822937 1.796631 +v -0.335139 0.3347168 1.811049 +v 0.4208601 0.3347168 1.793068 +v 0.707432 0.4535156 1.786937 +v -0.7192046 0.5201111 1.816674 +v -0.2501884 1.471875 1.826696 +v 0.1656691 1.471875 1.836292 +v -0.6183608 0.4535156 1.819679 +v -0.8177814 1.010541 1.798046 +v 0.8233659 0.9221191 1.810324 +v -0.8256906 0.6682434 1.815435 +v 0.8191206 0.5916504 1.80099 +v 0.08219483 1.471875 1.841917 +v -0.1656691 1.471875 1.836292 +v 0 1.471875 1.84375 +v -0.08219483 1.471875 1.841917 +v -0.8233659 0.9221191 1.810324 +v 0.8268277 0.8352356 1.817935 +v -0.2499233 0.3347168 1.824761 +v 0.335139 0.3347168 1.811049 +v -0.4305113 0.3917542 1.834187 +v 0.5184072 0.3917542 1.811308 +v -0.8280154 0.75 1.820547 +v 0.8256906 0.6682434 1.815435 +v -0.5249234 1.283936 1.834075 +v 0.4359227 1.283936 1.857242 +v -0.7203729 1.100391 1.819625 +v 0.6296723 1.100391 1.852966 +v -0.8268277 0.8352356 1.817935 +v 0.8280154 0.75 1.820547 +v 0.7192046 0.5201111 1.816674 +v -0.7282811 0.5916504 1.839601 +v -0.1654936 0.3347168 1.834347 +v 0.2499233 0.3347168 1.824761 +v 0.7270904 1.010541 1.836593 +v 0.6183608 0.4535156 1.819679 +v -0.5288197 0.4535156 1.847689 +v -0.6286511 0.5201111 1.849961 +v -0.08210775 0.3347168 1.839966 +v 0.1654936 0.3347168 1.834347 +v 0.4305113 0.3917542 1.834187 +v -0.3428244 0.3917542 1.85258 +v 0 0.3347168 1.841797 +v 0.08210775 0.3347168 1.839966 +v 0.3471336 1.283936 1.875866 +v -0.4359227 1.283936 1.857242 +v 0.7320555 0.9221191 1.849135 +v -0.7270904 1.010541 1.836593 +v 0.7282811 0.5916504 1.839601 +v -0.7341225 0.6682434 1.854356 +v 0.5384932 1.100391 1.881488 +v -0.6296723 1.100391 1.852966 +v 0.7351335 0.8352356 1.856909 +v -0.7320555 0.9221191 1.849135 +v 0.3428244 0.3917542 1.85258 +v -0.2556546 0.3917542 1.866607 +v 0.5288197 0.4535156 1.847689 +v -0.4391584 0.4535156 1.871027 +v 0.2588681 1.283936 1.89007 +v -0.3471336 1.283936 1.875866 +v 0.7341225 0.6682434 1.854356 +v -0.7361894 0.75 1.859577 +v -0.6365849 0.5916504 1.873308 +v 0.6286511 0.5201111 1.849961 +v 0.7361894 0.75 1.859577 +v -0.7351335 0.8352356 1.856909 +v 0.6355441 1.010541 1.870245 +v -0.5376199 0.5201111 1.878436 +v -0.1692887 0.3917542 1.876412 +v 0.2556546 0.3917542 1.866607 +v -0.2588681 1.283936 1.89007 +v 0.1714166 1.283936 1.899998 +v -0.5384932 1.100391 1.881488 +v 0.4471917 1.100391 1.905254 +v 0.4391584 0.4535156 1.871027 +v -0.3497103 0.4535156 1.88979 +v -0.08399066 0.3917542 1.88216 +v 0.1692887 0.3917542 1.876412 +v 0.0850464 1.283936 1.905818 +v -0.1714166 1.283936 1.899998 +v -0.6355441 1.010541 1.870245 +v 0.6398841 0.9221191 1.883017 +v -0.6416907 0.6682434 1.888334 +v 0.6365849 0.5916504 1.873308 +v 0.08399066 0.3917542 1.88216 +v 0 0.3917542 1.884033 +v 0 1.283936 1.907715 +v -0.0850464 1.283936 1.905818 +v 0.5376199 0.5201111 1.878436 +v -0.4464665 0.5201111 1.902164 +v -0.6398841 0.9221191 1.883017 +v 0.6425744 0.8352356 1.890934 +v -0.5444048 0.5916504 1.902143 +v -0.2607896 0.4535156 1.904099 +v 0.3497103 0.4535156 1.88979 +v 0.5435147 1.010541 1.899033 +v -0.6434974 0.75 1.89365 +v 0.6416907 0.6682434 1.888334 +v -0.6425744 0.8352356 1.890934 +v 0.6434974 0.75 1.89365 +v 0.3561074 1.100391 1.924359 +v -0.4471917 1.100391 1.905254 +v 0.2607896 0.4535156 1.904099 +v -0.172689 0.4535156 1.914101 +v 0.5472263 0.9221191 1.912001 +v -0.5435147 1.010541 1.899033 +v 0.4464665 0.5201111 1.902164 +v -0.3555299 0.5201111 1.921239 +v 0.5444048 0.5916504 1.902143 +v -0.5487714 0.6682434 1.917399 +v 0.2655601 1.100391 1.93893 +v -0.3561074 1.100391 1.924359 +v 0.172689 0.4535156 1.914101 +v -0.08567765 0.4535156 1.919964 +v -0.452101 0.5916504 1.926169 +v 0.4513619 1.010541 1.92302 +v 0.08567765 0.4535156 1.919964 +v 0 0.4535156 1.921875 +v 0.5495271 0.8352356 1.92004 +v -0.5472263 0.9221191 1.912001 +v 0.5487714 0.6682434 1.917399 +v -0.5503165 0.75 1.922798 +v 0.3555299 0.5201111 1.921239 +v -0.2651294 0.5201111 1.935785 +v -0.2655601 1.100391 1.93893 +v 0.1758479 1.100391 1.949115 +v 0.5503165 0.75 1.922798 +v -0.5495271 0.8352356 1.92004 +v -0.4513619 1.010541 1.92302 +v 0.4544441 0.9221191 1.936152 +v -0.1758479 1.100391 1.949115 +v 0.08724493 1.100391 1.955086 +v -0.4557272 0.6682434 1.941619 +v 0.452101 0.5916504 1.926169 +v -0.3600167 0.5916504 1.945485 +v 0.2651294 0.5201111 1.935785 +v -0.1755628 0.5201111 1.945954 +v 0.3594281 1.010541 1.942304 +v 0 1.100391 1.957031 +v -0.08724493 1.100391 1.955086 +v -0.4544441 0.9221191 1.936152 +v 0.4563548 0.8352356 1.944293 +v 0.1755628 0.5201111 1.945954 +v -0.08710344 0.5201111 1.951915 +v -0.4570103 0.75 1.947085 +v 0.4557272 0.6682434 1.941619 +v 0.08710344 0.5201111 1.951915 +v 0 0.5201111 1.953857 +v -0.4563548 0.8352356 1.944293 +v 0.4570103 0.75 1.947085 +v 0.3600167 0.5916504 1.945485 +v -0.2684754 0.5916504 1.960216 +v -0.3594281 1.010541 1.942304 +v 0.3618826 0.9221191 1.955568 +v 0.2680365 1.010541 1.957011 +v -0.3629043 0.6682434 1.961089 +v 0.2684754 0.5916504 1.960216 +v -0.1777784 0.5916504 1.970512 +v 0.3634041 0.8352356 1.96379 +v -0.3618826 0.9221191 1.955568 +v 0.1774877 1.010541 1.967291 +v -0.2680365 1.010541 1.957011 +v 0.3629043 0.6682434 1.961089 +v -0.3639261 0.75 1.966611 +v 0.2698669 0.9221191 1.970375 +v 0.3639261 0.75 1.966611 +v -0.3634041 0.8352356 1.96379 +v -0.2706288 0.6682434 1.975938 +v 0.1777784 0.5916504 1.970512 +v -0.08820271 0.5916504 1.976549 +v -0.1774877 1.010541 1.967291 +v 0.0880585 1.010541 1.973317 +v 0.08820271 0.5916504 1.976549 +v 0 0.5916504 1.978516 +v 0 1.010541 1.975281 +v -0.0880585 1.010541 1.973317 +v -0.2698669 0.9221191 1.970375 +v 0.2710015 0.8352356 1.978659 +v 0.1786998 0.9221191 1.980725 +v 0.2706288 0.6682434 1.975938 +v -0.1792043 0.6682434 1.986317 +v -0.2713908 0.75 1.981501 +v -0.2710015 0.8352356 1.978659 +v 0.2713908 0.75 1.981501 +v -0.1786998 0.9221191 1.980725 +v 0.08865983 0.9221191 1.986792 +v 0.1794511 0.8352356 1.989053 +v 0.1792043 0.6682434 1.986317 +v -0.08891016 0.6682434 1.992402 +v 0 0.9221191 1.98877 +v -0.08865983 0.9221191 1.986792 +v -0.1797089 0.75 1.99191 +v 0.08891016 0.6682434 1.992402 +v 0 0.6682434 1.994385 +v 0.1797089 0.75 1.99191 +v -0.1794511 0.8352356 1.989053 +v 0.08903261 0.8352356 1.995146 +v -0.08916049 0.75 1.998012 +v 0 0.8352356 1.997131 +v -0.08903261 0.8352356 1.995146 +v 0.08916049 0.75 1.998012 +v 0 0.75 2 +vn -0.02224 -0.0685 -0.9974 +vn -0.02228 0.03363 -0.99919 +vn 0.02224 -0.0685 -0.9974 +vn 0.02228 0.03363 -0.99919 +vn 0.0672 0.03363 -0.99717 +vn 0.06708 -0.0685 -0.99539 +vn -0.0672 0.03363 -0.99717 +vn -0.06708 -0.0685 -0.99539 +vn -0.02219 0.09578 -0.99516 +vn 0.02219 0.09578 -0.99516 +vn 0.06693 0.09577 -0.99315 +vn -0.06693 0.09577 -0.99315 +vn -0.02183 -0.20283 -0.97897 +vn 0.02183 -0.20283 -0.97897 +vn 0.06584 -0.20283 -0.977 +vn -0.06584 -0.20283 -0.977 +vn -0.11274 0.03363 -0.99306 +vn -0.11254 -0.0685 -0.99128 +vn 0.11274 0.03363 -0.99306 +vn 0.11254 -0.0685 -0.99128 +vn -0.11229 0.09577 -0.98905 +vn 0.11229 0.09577 -0.98905 +vn -0.02204 0.15077 -0.98832 +vn 0.02204 0.15077 -0.98832 +vn 0.06647 0.15077 -0.98633 +vn -0.06647 0.15077 -0.98633 +vn -0.11046 -0.20283 -0.97296 +vn 0.11046 -0.20283 -0.97296 +vn 0.1585 -0.0685 -0.98498 +vn 0.15878 0.03363 -0.98674 +vn -0.1585 -0.0685 -0.98498 +vn -0.15878 0.03363 -0.98674 +vn -0.11152 0.15077 -0.98226 +vn 0.11152 0.15077 -0.98226 +vn 0.15814 0.09577 -0.98276 +vn -0.15814 0.09577 -0.98276 +vn -0.02108 -0.32579 -0.94521 +vn 0.02108 -0.32579 -0.94521 +vn 0.06357 -0.32579 -0.9433 +vn -0.06357 -0.32579 -0.9433 +vn 0.15557 -0.20283 -0.96678 +vn -0.15557 -0.20283 -0.96678 +vn -0.02185 0.199 -0.97976 +vn 0.02185 0.199 -0.97976 +vn 0.06589 0.199 -0.97778 +vn -0.06589 0.199 -0.97778 +vn -0.10665 -0.32579 -0.93941 +vn 0.10665 -0.32579 -0.93941 +vn 0.15706 0.15077 -0.97601 +vn -0.15706 0.15077 -0.97601 +vn -0.11055 0.199 -0.97375 +vn 0.11055 0.199 -0.97375 +vn -0.20481 -0.0685 -0.9764 +vn -0.20518 0.03363 -0.97815 +vn 0.20481 -0.0685 -0.9764 +vn 0.20518 0.03363 -0.97815 +vn -0.20435 0.09577 -0.9742 +vn 0.20435 0.09577 -0.9742 +vn -0.20103 -0.20282 -0.95836 +vn 0.20103 -0.20282 -0.95836 +vn 0.15021 -0.32579 -0.93344 +vn -0.15021 -0.32579 -0.93344 +vn -0.02153 0.25942 -0.96552 +vn 0.02153 0.25942 -0.96552 +vn -0.1557 0.19899 -0.96755 +vn 0.1557 0.19899 -0.96755 +vn 0.20295 0.15076 -0.96751 +vn -0.20295 0.15076 -0.96751 +vn 0.06493 0.25942 -0.96358 +vn -0.06493 0.25942 -0.96358 +vn -0.0201 -0.43283 -0.90125 +vn 0.0201 -0.43283 -0.90125 +vn 0.06061 -0.43282 -0.89944 +vn -0.06061 -0.43282 -0.89944 +vn 0.10894 0.25942 -0.9596 +vn -0.10894 0.25942 -0.9596 +vn 0.25176 0.03363 -0.9672 +vn 0.25131 -0.0685 -0.96548 +vn -0.25176 0.03363 -0.9672 +vn -0.25131 -0.0685 -0.96548 +vn -0.10169 -0.43282 -0.89573 +vn 0.10169 -0.43282 -0.89573 +vn -0.19409 -0.32578 -0.92531 +vn 0.19409 -0.32578 -0.92531 +vn 0.25075 0.09577 -0.9633 +vn -0.25075 0.09577 -0.9633 +vn -0.20119 0.19899 -0.95913 +vn 0.20119 0.19899 -0.95913 +vn 0.24667 -0.20282 -0.94764 +vn -0.24667 -0.20282 -0.94764 +vn -0.15343 0.25942 -0.9535 +vn 0.15343 0.25942 -0.9535 +vn 0.24903 0.15076 -0.95669 +vn -0.24903 0.15076 -0.95669 +vn 0.14322 -0.43282 -0.89003 +vn -0.14322 -0.43282 -0.89003 +vn 0.23816 -0.32578 -0.91496 +vn -0.23816 -0.32578 -0.91496 +vn -0.19826 0.25942 -0.9452 +vn 0.19826 0.25942 -0.9452 +vn 0.24687 0.19899 -0.9484 +vn -0.24687 0.19899 -0.9484 +vn -0.29837 0.03363 -0.95386 +vn -0.29784 -0.0685 -0.95215 +vn 0.29837 0.03363 -0.95386 +vn 0.29784 -0.0685 -0.95215 +vn -0.01901 -0.52235 -0.85252 +vn 0.01901 -0.52235 -0.85252 +vn -0.18507 -0.43281 -0.88228 +vn 0.18507 -0.43281 -0.88228 +vn -0.29717 0.09577 -0.95001 +vn 0.29717 0.09577 -0.95001 +vn 0.05733 -0.52234 -0.85081 +vn -0.05733 -0.52234 -0.85081 +vn -0.29234 -0.20282 -0.93456 +vn 0.29234 -0.20282 -0.93456 +vn -0.09619 -0.52234 -0.84729 +vn 0.09619 -0.52234 -0.84729 +vn -0.29513 0.15076 -0.94349 +vn 0.29513 0.15076 -0.94349 +vn -0.02111 0.32213 -0.94646 +vn 0.02111 0.32213 -0.94646 +vn -0.06365 0.32212 -0.94456 +vn 0.06365 0.32212 -0.94456 +vn 0.24328 0.25941 -0.93462 +vn -0.24328 0.25941 -0.93462 +vn 0.13548 -0.52234 -0.84191 +vn -0.13548 -0.52234 -0.84191 +vn 0.22709 -0.43281 -0.87241 +vn -0.22709 -0.43281 -0.87241 +vn -0.28226 -0.32578 -0.90233 +vn 0.28226 -0.32578 -0.90233 +vn 0.10679 0.32212 -0.94066 +vn -0.10679 0.32212 -0.94066 +vn -0.29257 0.19899 -0.93531 +vn 0.29257 0.19899 -0.93531 +vn 0.34422 -0.0685 -0.93639 +vn 0.34483 0.03363 -0.93806 +vn -0.34422 -0.0685 -0.93639 +vn -0.34483 0.03363 -0.93806 +vn 0.34344 0.09577 -0.93428 +vn -0.34344 0.09577 -0.93428 +vn -0.1504 0.32212 -0.93468 +vn 0.1504 0.32212 -0.93468 +vn -0.17506 -0.52233 -0.83458 +vn 0.17506 -0.52233 -0.83458 +vn 0.33786 -0.20282 -0.91909 +vn -0.33786 -0.20282 -0.91909 +vn -0.01792 -0.59501 -0.80352 +vn 0.01792 -0.59501 -0.80352 +vn 0.34108 0.15076 -0.92786 +vn -0.34108 0.15076 -0.92786 +vn 0.05404 -0.59501 -0.8019 +vn -0.05404 -0.59501 -0.8019 +vn -0.28832 0.25941 -0.92172 +vn 0.28832 0.25941 -0.92172 +vn -0.26913 -0.43281 -0.86037 +vn 0.26913 -0.43281 -0.86037 +vn 0.09066 -0.595 -0.79859 +vn -0.09066 -0.595 -0.79859 +vn -0.19435 0.32212 -0.92654 +vn 0.19435 0.32212 -0.92654 +vn 0.3262 -0.32578 -0.88739 +vn -0.3262 -0.32578 -0.88739 +vn 0.21481 -0.52233 -0.82524 +vn -0.21481 -0.52233 -0.82524 +vn 0.33813 0.19899 -0.91982 +vn -0.33813 0.19899 -0.91982 +vn 0.12769 -0.595 -0.79352 +vn -0.12769 -0.595 -0.79352 +vn -0.39025 -0.0685 -0.91816 +vn -0.39095 0.03363 -0.9198 +vn 0.39025 -0.0685 -0.91816 +vn 0.39095 0.03363 -0.9198 +vn 0.23848 0.32211 -0.91617 +vn -0.23848 0.32211 -0.91617 +vn -0.38937 0.09577 -0.91609 +vn 0.38937 0.09577 -0.91609 +vn -0.38304 -0.20282 -0.90119 +vn 0.38304 -0.20282 -0.90119 +vn 0.33322 0.25941 -0.90646 +vn -0.33322 0.25941 -0.90646 +vn -0.165 -0.595 -0.78661 +vn 0.165 -0.595 -0.78661 +vn 0.31104 -0.43281 -0.84613 +vn -0.31104 -0.43281 -0.84613 +vn -0.3867 0.15076 -0.9098 +vn 0.3867 0.15076 -0.9098 +vn -0.25458 -0.52233 -0.81386 +vn 0.25458 -0.52233 -0.81386 +vn -0.02074 0.36755 -0.92977 +vn 0.02074 0.36755 -0.92977 +vn -0.06253 0.36754 -0.9279 +vn 0.06253 0.36754 -0.9279 +vn 0.01689 -0.65263 -0.75749 +vn -0.01689 -0.65263 -0.75749 +vn 0.05094 -0.65262 -0.75597 +vn -0.05094 -0.65262 -0.75597 +vn -0.36983 -0.32578 -0.87011 +vn 0.36983 -0.32578 -0.87011 +vn -0.38335 0.19899 -0.90191 +vn 0.38335 0.19899 -0.90191 +vn 0.10491 0.36754 -0.92407 +vn -0.10491 0.36754 -0.92407 +vn 0.08547 -0.65262 -0.75285 +vn -0.08547 -0.65262 -0.75285 +vn 0.20246 -0.59499 -0.77781 +vn -0.20246 -0.59499 -0.77781 +vn -0.28263 0.32211 -0.90353 +vn 0.28263 0.32211 -0.90353 +vn -0.14775 0.36754 -0.9182 +vn 0.14775 0.36754 -0.9182 +vn 0.12038 -0.65262 -0.74806 +vn -0.12038 -0.65262 -0.74806 +vn 0.43654 0.03363 -0.89906 +vn 0.43576 -0.0685 -0.89745 +vn -0.43654 0.03363 -0.89906 +vn -0.43576 -0.0685 -0.89745 +vn 0.29422 -0.52233 -0.80038 +vn -0.29422 -0.52233 -0.80038 +vn -0.37778 0.25941 -0.88881 +vn 0.37778 0.25941 -0.88881 +vn 0.43478 0.09577 -0.89543 +vn -0.43478 0.09577 -0.89543 +vn -0.35264 -0.4328 -0.82965 +vn 0.35264 -0.4328 -0.82965 +vn 0.42771 -0.20282 -0.88087 +vn -0.42771 -0.20282 -0.88087 +vn -0.19092 0.36754 -0.9102 +vn 0.19092 0.36754 -0.9102 +vn 0.23995 -0.59499 -0.76708 +vn -0.23995 -0.59499 -0.76708 +vn 0.15555 -0.65262 -0.74155 +vn -0.15555 -0.65262 -0.74155 +vn 0.4318 0.15076 -0.88928 +vn -0.4318 0.15076 -0.88928 +vn 0.32664 0.32211 -0.88857 +vn -0.32664 0.32211 -0.88857 +vn 0.41296 -0.32577 -0.85049 +vn -0.41296 -0.32577 -0.85049 +vn 0.42805 0.19899 -0.88157 +vn -0.42805 0.19899 -0.88157 +vn -0.01598 -0.69732 -0.71658 +vn 0.01598 -0.69732 -0.71658 +vn 0.23427 0.36753 -0.90002 +vn -0.23427 0.36753 -0.90002 +vn -0.04819 -0.69732 -0.71514 +vn 0.04819 -0.69732 -0.71514 +vn 0.19087 -0.65261 -0.73326 +vn -0.19087 -0.65261 -0.73326 +vn -0.08085 -0.69732 -0.71219 +vn 0.08085 -0.69732 -0.71219 +vn -0.33357 -0.52232 -0.7848 +vn 0.33357 -0.52232 -0.7848 +vn 0.27731 -0.59499 -0.75438 +vn -0.27731 -0.59499 -0.75438 +vn 0.42184 0.25941 -0.86877 +vn -0.42184 0.25941 -0.86877 +vn -0.11387 -0.69731 -0.70766 +vn 0.11387 -0.69731 -0.70766 +vn 0.39376 -0.4328 -0.81095 +vn -0.39376 -0.4328 -0.81095 +vn -0.48141 0.03363 -0.87585 +vn -0.48055 -0.0685 -0.87429 +vn 0.48141 0.03363 -0.87585 +vn 0.48055 -0.0685 -0.87429 +vn -0.47947 0.09577 -0.87232 +vn 0.47947 0.09577 -0.87232 +vn -0.37032 0.32211 -0.87127 +vn 0.37032 0.32211 -0.87127 +vn -0.27765 0.36753 -0.8876 +vn 0.27765 0.36753 -0.8876 +vn -0.47167 -0.20282 -0.85813 +vn 0.47167 -0.20282 -0.85813 +vn 0.2262 -0.65261 -0.72314 +vn -0.2262 -0.65261 -0.72314 +vn -0.02044 0.39898 -0.91673 +vn 0.02044 0.39898 -0.91673 +vn -0.14715 -0.69731 -0.7015 +vn 0.14715 -0.69731 -0.7015 +vn -0.47618 0.15076 -0.86633 +vn 0.47618 0.15076 -0.86633 +vn -0.06165 0.39898 -0.91489 +vn 0.06165 0.39898 -0.91489 +vn 0.10344 0.39897 -0.91111 +vn -0.10344 0.39897 -0.91111 +vn -0.45541 -0.32577 -0.82854 +vn 0.45541 -0.32577 -0.82854 +vn -0.47205 0.19899 -0.85882 +vn 0.47205 0.19899 -0.85882 +vn -0.3144 -0.59498 -0.73969 +vn 0.3144 -0.59498 -0.73969 +vn -0.14568 0.39897 -0.90532 +vn 0.14568 0.39897 -0.90532 +vn -0.01493 -0.74262 -0.66954 +vn 0.01493 -0.74262 -0.66954 +vn 0.37247 -0.52232 -0.7671 +vn -0.37247 -0.52232 -0.7671 +vn -0.18056 -0.69731 -0.69366 +vn 0.18056 -0.69731 -0.69366 +vn 0.04503 -0.74262 -0.6682 +vn -0.04503 -0.74262 -0.6682 +vn 0.32088 0.36753 -0.8729 +vn -0.32088 0.36753 -0.8729 +vn 0.26143 -0.65261 -0.71117 +vn -0.26143 -0.65261 -0.71117 +vn 0.07555 -0.74262 -0.66544 +vn -0.07555 -0.74262 -0.66544 +vn -0.18825 0.39897 -0.89743 +vn 0.18825 0.39897 -0.89743 +vn 0.46519 0.25941 -0.84635 +vn -0.46519 0.25941 -0.84635 +vn -0.41351 0.32211 -0.85162 +vn 0.41351 0.32211 -0.85162 +vn -0.43423 -0.4328 -0.79002 +vn 0.43423 -0.4328 -0.79002 +vn 0.1064 -0.74261 -0.66121 +vn -0.1064 -0.74261 -0.66121 +vn 0.52442 -0.0685 -0.8487 +vn 0.52536 0.03363 -0.85022 +vn -0.52442 -0.0685 -0.8487 +vn -0.52536 0.03363 -0.85022 +vn -0.21399 -0.6973 -0.68409 +vn 0.21399 -0.6973 -0.68409 +vn 0.52324 0.09577 -0.84679 +vn -0.52324 0.09577 -0.84679 +vn 0.51473 -0.20282 -0.83302 +vn -0.51473 -0.20282 -0.83302 +vn 0.23099 0.39897 -0.8874 +vn -0.23099 0.39897 -0.8874 +vn 0.13749 -0.74261 -0.65546 +vn -0.13749 -0.74261 -0.65546 +vn 0.51965 0.15076 -0.84097 +vn -0.51965 0.15076 -0.84097 +vn 0.35106 -0.59498 -0.72301 +vn -0.35106 -0.59498 -0.72301 +vn -0.3638 0.36753 -0.85591 +vn 0.3638 0.36753 -0.85591 +vn 0.29639 -0.6526 -0.69732 +vn -0.29639 -0.6526 -0.69732 +vn 0.49698 -0.32577 -0.80429 +vn -0.49698 -0.32577 -0.80429 +vn -0.41075 -0.52232 -0.7473 +vn 0.41075 -0.52232 -0.7473 +vn -0.51514 0.19898 -0.83369 +vn 0.51514 0.19898 -0.83369 +vn 0.16871 -0.74261 -0.64813 +vn -0.16871 -0.74261 -0.64813 +vn -0.24731 -0.6973 -0.67276 +vn 0.24731 -0.6973 -0.67276 +vn -0.27375 0.39896 -0.87515 +vn 0.27375 0.39896 -0.87515 +vn 0.45601 0.32211 -0.82964 +vn -0.45601 0.32211 -0.82964 +vn -0.50766 0.25941 -0.82158 +vn 0.50766 0.25941 -0.82158 +vn 0.47387 -0.4328 -0.7669 +vn -0.47387 -0.4328 -0.7669 +vn -0.0202 0.42354 -0.90565 +vn 0.0202 0.42354 -0.90565 +vn 0.19994 -0.74261 -0.63919 +vn -0.19994 -0.74261 -0.63919 +vn -0.06091 0.42354 -0.90383 +vn 0.06091 0.42354 -0.90383 +vn -0.40622 0.36752 -0.83661 +vn 0.40622 0.36752 -0.83661 +vn 0.10219 0.42353 -0.9001 +vn -0.10219 0.42353 -0.9001 +vn 0.33096 -0.6526 -0.6816 +vn -0.33096 -0.6526 -0.6816 +vn 0.31638 0.39896 -0.86066 +vn -0.31638 0.39896 -0.86066 +vn -0.56718 -0.0685 -0.82074 +vn -0.5682 0.03363 -0.82221 +vn 0.56718 -0.0685 -0.82074 +vn 0.5682 0.03363 -0.82221 +vn 0.38715 -0.59498 -0.70435 +vn -0.38715 -0.59498 -0.70435 +vn -0.5659 0.09577 -0.81889 +vn 0.5659 0.09577 -0.81889 +vn -0.28038 -0.6973 -0.65967 +vn 0.28038 -0.6973 -0.65967 +vn -0.5567 -0.20282 -0.80557 +vn 0.5567 -0.20282 -0.80557 +vn -0.14392 0.42353 -0.89438 +vn 0.14392 0.42353 -0.89438 +vn 0.56202 0.15076 -0.81327 +vn -0.56202 0.15076 -0.81327 +vn 0.44825 -0.52232 -0.72543 +vn -0.44825 -0.52232 -0.72543 +vn -0.01419 -0.7713 -0.63632 +vn 0.01419 -0.7713 -0.63632 +vn 0.23108 -0.7426 -0.62861 +vn -0.23108 -0.7426 -0.62861 +vn 0.04279 -0.77129 -0.63504 +vn -0.04279 -0.77129 -0.63504 +vn -0.5375 -0.32577 -0.77779 +vn 0.5375 -0.32577 -0.77779 +vn -0.18597 0.42353 -0.88659 +vn 0.18597 0.42353 -0.88659 +vn -0.55715 0.19898 -0.80622 +vn 0.55715 0.19898 -0.80622 +vn -0.0718 -0.77129 -0.63242 +vn 0.0718 -0.77129 -0.63242 +vn -0.49764 0.3221 -0.80536 +vn 0.49764 0.3221 -0.80536 +vn -0.35869 0.39896 -0.8439 +vn 0.35869 0.39896 -0.8439 +vn -0.10112 -0.77129 -0.6284 +vn 0.10112 -0.77129 -0.6284 +vn 0.2282 0.42352 -0.87667 +vn -0.2282 0.42352 -0.87667 +vn -0.54906 0.25941 -0.79451 +vn 0.54906 0.25941 -0.79451 +vn 0.44797 0.36752 -0.81501 +vn -0.44797 0.36752 -0.81501 +vn 0.36497 -0.6526 -0.66401 +vn -0.36497 -0.6526 -0.66401 +vn -0.31308 -0.6973 -0.64479 +vn 0.31308 -0.6973 -0.64479 +vn -0.51251 -0.4328 -0.74163 +vn 0.51251 -0.4328 -0.74163 +vn -0.13067 -0.77128 -0.62293 +vn 0.13067 -0.77128 -0.62293 +vn 0.42249 -0.59498 -0.68374 +vn -0.42249 -0.59498 -0.68374 +vn -0.26198 -0.7426 -0.61637 +vn 0.26198 -0.7426 -0.61637 +vn -0.27045 0.42352 -0.86457 +vn 0.27045 0.42352 -0.86457 +vn 0.60973 0.03363 -0.79189 +vn 0.60864 -0.0685 -0.79048 +vn -0.60973 0.03363 -0.79189 +vn -0.60864 -0.0685 -0.79048 +vn 0.16034 -0.77128 -0.61597 +vn -0.16034 -0.77128 -0.61597 +vn 0.60727 0.09577 -0.7887 +vn -0.60727 0.09577 -0.7887 +vn 0.5974 -0.20281 -0.77587 +vn -0.5974 -0.20281 -0.77587 +vn -0.40052 0.39896 -0.82487 +vn 0.40052 0.39896 -0.82487 +vn -0.4848 -0.52232 -0.70153 +vn 0.4848 -0.52232 -0.70153 +vn 0.6031 0.15076 -0.78329 +vn -0.6031 0.15076 -0.78329 +vn 0.5768 -0.32577 -0.74912 +vn -0.5768 -0.32577 -0.74912 +vn -0.53822 0.3221 -0.77883 +vn 0.53822 0.3221 -0.77883 +vn -0.34526 -0.6973 -0.62815 +vn 0.34526 -0.6973 -0.62815 +vn 0.59788 0.19898 -0.7765 +vn -0.59788 0.19898 -0.7765 +vn -0.19002 -0.77128 -0.60747 +vn 0.19002 -0.77128 -0.60747 +vn 0.31256 0.42352 -0.85026 +vn -0.31256 0.42352 -0.85026 +vn 0.29253 -0.7426 -0.60247 +vn -0.29253 -0.7426 -0.60247 +vn -0.48887 0.36752 -0.79116 +vn 0.48887 0.36752 -0.79116 +vn 0.39829 -0.6526 -0.64458 +vn -0.39829 -0.6526 -0.64458 +vn 0.58919 0.2594 -0.76522 +vn -0.58919 0.2594 -0.76522 +vn 0.54998 -0.4328 -0.71429 +vn -0.54998 -0.4328 -0.71429 +vn -0.0148 -0.748 -0.66353 +vn 0.0148 -0.748 -0.66353 +vn -0.45694 -0.59498 -0.66122 +vn 0.45694 -0.59498 -0.66122 +vn -0.04462 -0.748 -0.6622 +vn 0.04462 -0.748 -0.6622 +vn -0.07487 -0.748 -0.65947 +vn 0.07487 -0.748 -0.65947 +vn 0.44169 0.39896 -0.80358 +vn -0.44169 0.39896 -0.80358 +vn -0.21961 -0.77128 -0.59741 +vn 0.21961 -0.77128 -0.59741 +vn -0.35436 0.42352 -0.8337 +vn 0.35436 0.42352 -0.8337 +vn 0.10544 -0.74799 -0.65528 +vn -0.10544 -0.74799 -0.65528 +vn 0.3226 -0.7426 -0.58692 +vn -0.3226 -0.7426 -0.58692 +vn -0.64978 0.03363 -0.75937 +vn -0.64863 -0.0685 -0.75802 +vn 0.64978 0.03363 -0.75937 +vn 0.64863 -0.0685 -0.75802 +vn 0.52024 -0.52232 -0.67567 +vn -0.52024 -0.52232 -0.67567 +vn -0.37678 -0.69729 -0.60977 +vn 0.37678 -0.69729 -0.60977 +vn -0.13625 -0.74799 -0.64957 +vn 0.13625 -0.74799 -0.64957 +vn -0.64716 0.09577 -0.75631 +vn 0.64716 0.09577 -0.75631 +vn -0.63664 -0.20281 -0.74401 +vn 0.63664 -0.20281 -0.74401 +vn -0.64272 0.15076 -0.75112 +vn 0.64272 0.15076 -0.75112 +vn -0.52873 0.36752 -0.7651 +vn 0.52873 0.36752 -0.7651 +vn -0.24898 -0.77128 -0.58578 +vn 0.24898 -0.77128 -0.58578 +vn 0.43077 -0.6526 -0.62334 +vn -0.43077 -0.6526 -0.62334 +vn 0.57756 0.3221 -0.75011 +vn -0.57756 0.3221 -0.75011 +vn -0.16719 -0.74799 -0.64231 +vn 0.16719 -0.74799 -0.64231 +vn -0.61469 -0.32577 -0.71836 +vn 0.61469 -0.32577 -0.71836 +vn -0.63715 0.19898 -0.74461 +vn 0.63715 0.19898 -0.74461 +vn -0.39568 0.42352 -0.8149 +vn 0.39568 0.42352 -0.8149 +vn -0.48201 0.39895 -0.78006 +vn 0.48201 0.39895 -0.78006 +vn 0.49035 -0.59498 -0.63684 +vn -0.49035 -0.59498 -0.63684 +vn -0.01728 -0.63181 -0.77493 +vn 0.01728 -0.63181 -0.77493 +vn 0.05212 -0.6318 -0.77338 +vn -0.05212 -0.6318 -0.77338 +vn -0.6279 0.2594 -0.73379 +vn 0.6279 0.2594 -0.73379 +vn -0.19815 -0.74799 -0.63345 +vn 0.19815 -0.74799 -0.63345 +vn -0.58611 -0.4328 -0.68496 +vn 0.58611 -0.4328 -0.68496 +vn -0.08744 -0.6318 -0.77018 +vn 0.08744 -0.6318 -0.77018 +vn 0.35205 -0.7426 -0.56975 +vn -0.35205 -0.7426 -0.56975 +vn 0.27802 -0.77127 -0.57257 +vn -0.27802 -0.77127 -0.57257 +vn 0.12315 -0.6318 -0.76529 +vn -0.12315 -0.6318 -0.76529 +vn 0.02083 -0.35617 -0.93419 +vn 0.02696 -0.33403 -0.94218 +vn -0.02101 -0.33408 -0.94231 +vn 0.06376 -0.31752 -0.9461 +vn 0.02673 -0.35615 -0.93404 +vn -0.02673 -0.35615 -0.93404 +vn -0.06376 -0.31752 -0.9461 +vn -0.40751 -0.69729 -0.58968 +vn 0.40751 -0.69729 -0.58968 +vn -0.01932 0.49901 -0.86638 +vn 0.01932 0.49901 -0.86638 +vn 0 -1 0 +vn 0.10714 -0.31301 -0.94369 +vn 0.08034 -0.36694 -0.92677 +vn -0.08034 -0.36694 -0.92677 +vn -0.10714 -0.31301 -0.94369 +vn -0.05827 0.499 -0.86464 +vn 0.05739 0.52086 -0.85171 +vn 0.03838 0.52114 -0.85261 +vn -0.15913 -0.63179 -0.75863 +vn 0.15913 -0.63179 -0.75863 +vn 0.43635 0.42351 -0.79387 +vn -0.43635 0.42351 -0.79387 +vn 0.229 -0.74798 -0.62296 +vn -0.229 -0.74798 -0.62296 +vn 0.03898 0.49872 -0.86589 +vn 0.09776 0.499 -0.86107 +vn -0.09776 0.499 -0.86107 +vn -0.55442 -0.52231 -0.64792 +vn 0.55442 -0.52231 -0.64792 +vn 0.1504 -0.32223 -0.93464 +vn 0.13504 -0.36535 -0.92102 +vn -0.13504 -0.36535 -0.92102 +vn -0.1504 -0.32223 -0.93464 +vn 0.56738 0.36752 -0.73689 +vn -0.56738 0.36752 -0.73689 +vn 0.46226 -0.6526 -0.60036 +vn -0.46226 -0.6526 -0.60036 +vn -0.13768 0.499 -0.8556 +vn 0.13768 0.499 -0.8556 +vn 0.68695 -0.0685 -0.72347 +vn 0.68818 0.03363 -0.72476 +vn -0.68695 -0.0685 -0.72347 +vn -0.68818 0.03363 -0.72476 +vn 0.68541 0.09577 -0.72184 +vn -0.68541 0.09577 -0.72184 +vn 0.67426 -0.20281 -0.7101 +vn -0.67426 -0.20281 -0.7101 +vn 0.19526 -0.63179 -0.75014 +vn -0.19526 -0.63179 -0.75014 +vn -0.6155 0.3221 -0.71931 +vn 0.6155 0.3221 -0.71931 +vn 0.19257 -0.34654 -0.91806 +vn 0.19149 -0.34988 -0.91701 +vn -0.19149 -0.34988 -0.91701 +vn -0.19232 -0.34987 -0.91685 +vn -0.52131 0.39895 -0.75437 +vn 0.52131 0.39895 -0.75437 +vn 0.6807 0.15076 -0.71688 +vn -0.6807 0.15076 -0.71688 +vn -0.01704 0.64509 -0.76392 +vn 0.03437 0.6448 -0.76358 +vn -0.17791 0.49899 -0.84815 +vn 0.17791 0.49899 -0.84815 +vn -0.19175 -0.34654 -0.91823 +vn -0.03356 0.6657 -0.74546 +vn -0.05137 0.64508 -0.76238 +vn -0.30659 -0.77127 -0.5578 +vn 0.30659 -0.77127 -0.5578 +vn 0.65101 -0.32577 -0.68561 +vn -0.65101 -0.32577 -0.68561 +vn 0.0862 0.64508 -0.75924 +vn -0.0862 0.64508 -0.75924 +vn -0.25963 -0.74798 -0.61083 +vn 0.25963 -0.74798 -0.61083 +vn 0.6748 0.19898 -0.71067 +vn -0.6748 0.19898 -0.71067 +vn 0.23829 -0.32433 -0.91544 +vn 0.19175 -0.34654 -0.91823 +vn -0.23829 -0.32433 -0.91544 +vn 0.38076 -0.74259 -0.55098 +vn -0.38076 -0.74259 -0.55098 +vn -0.23141 -0.63179 -0.73979 +vn 0.23141 -0.63179 -0.73979 +vn 0.52256 -0.59498 -0.61069 +vn -0.52256 -0.59498 -0.61069 +vn -0.1214 0.64508 -0.75441 +vn 0.1214 0.64508 -0.75441 +vn 0.2183 0.49899 -0.83866 +vn -0.2183 0.49899 -0.83866 +vn 0.24573 -0.36627 -0.89748 +vn -0.24573 -0.36627 -0.89748 +vn -0.47619 0.42351 -0.77064 +vn 0.47619 0.42351 -0.77064 +vn 0.665 0.2594 -0.70035 +vn -0.665 0.2594 -0.70035 +vn -0.4373 -0.69729 -0.56794 +vn 0.4373 -0.69729 -0.56794 +vn 0.62074 -0.4328 -0.65373 +vn -0.62074 -0.4328 -0.65373 +vn -0.15687 0.64507 -0.74784 +vn 0.15687 0.64507 -0.74784 +vn -0.02686 0.80198 -0.59675 +vn 0.02686 0.80198 -0.59675 +vn 0.28373 -0.31112 -0.90703 +vn -0.28373 -0.31112 -0.90703 +vn 0.06735 0.80219 -0.59325 +vn -0.06735 0.80219 -0.59325 +vn -0.25872 0.49899 -0.82709 +vn 0.25872 0.49899 -0.82709 +vn 0.26745 -0.63178 -0.72754 +vn -0.26745 -0.63178 -0.72754 +vn -0.28991 -0.74798 -0.59706 +vn 0.28991 -0.74798 -0.59706 +vn 0.19249 0.64507 -0.73948 +vn -0.19249 0.64507 -0.73948 +vn -0.09486 0.80219 -0.58949 +vn 0.09486 0.80219 -0.58949 +vn 0.30045 -0.3723 -0.87814 +vn -0.30045 -0.3723 -0.87814 +vn -0.33458 -0.77127 -0.54147 +vn 0.33458 -0.77127 -0.54147 +vn -0.60465 0.36752 -0.70663 +vn 0.60465 0.36752 -0.70663 +vn 0.49262 -0.6526 -0.57571 +vn -0.49262 -0.6526 -0.57571 +vn 0.55942 0.39895 -0.72656 +vn -0.55942 0.39895 -0.72656 +vn 0.58718 -0.52231 -0.61839 +vn -0.58718 -0.52231 -0.61839 +vn 0.32772 -0.31273 -0.89151 +vn -0.32772 -0.31273 -0.89151 +vn -0.12257 0.80219 -0.58435 +vn 0.12257 0.80219 -0.58435 +vn -0.0125 0.96061 -0.27761 +vn 0.0125 0.96061 -0.27761 +vn 0.299 0.49898 -0.81339 +vn -0.299 0.49898 -0.81339 +vn 0.03133 0.96067 -0.27593 +vn -0.03133 0.96067 -0.27593 +vn -0.22812 0.64507 -0.72928 +vn 0.22812 0.64507 -0.72928 +vn 0.65187 0.3221 -0.68652 +vn -0.65187 0.3221 -0.68652 +vn -0.30322 -0.63178 -0.71338 +vn 0.30322 -0.63178 -0.71338 +vn -0.72347 -0.0685 -0.68695 +vn -0.72476 0.03363 -0.68818 +vn 0.72347 -0.0685 -0.68695 +vn 0.72476 0.03363 -0.68818 +vn 0.40859 -0.74259 -0.53066 +vn -0.40859 -0.74259 -0.53066 +vn -0.72184 0.09577 -0.68541 +vn 0.72184 0.09577 -0.68541 +vn -0.04412 0.96067 -0.27417 +vn 0.04412 0.96067 -0.27417 +vn 0.15041 0.80219 -0.57782 +vn -0.15041 0.80219 -0.57782 +vn -0.7101 -0.20281 -0.67426 +vn 0.7101 -0.20281 -0.67426 +vn -0.51502 0.42351 -0.74525 +vn 0.51502 0.42351 -0.74525 +vn -0.71688 0.15076 -0.6807 +vn 0.71688 0.15076 -0.6807 +vn 0.35671 -0.36371 -0.86051 +vn -0.35671 -0.36371 -0.86051 +vn 0.01667 0.92875 0.37033 +vn -0.01667 0.92875 0.37033 +vn -0.3197 -0.74798 -0.58165 +vn 0.3197 -0.74798 -0.58165 +vn -0.05701 0.96067 -0.27179 +vn 0.05701 0.96067 -0.27179 +vn 0.04209 -0.35197 0.93506 +vn 0.03419 0.64972 0.75941 +vn -0.04209 -0.35197 0.93506 +vn -0.03419 0.64972 0.75941 +vn 0.36923 -0.33024 -0.86868 +vn -0.36923 -0.33024 -0.86868 +vn 0.55343 -0.59498 -0.58285 +vn -0.55343 -0.59498 -0.58285 +vn -0.68561 -0.32577 -0.65101 +vn 0.68561 -0.32577 -0.65101 +vn -0.04179 0.92885 0.3681 +vn 0.04179 0.92885 0.3681 +vn 0.26364 0.64507 -0.7172 +vn -0.26364 0.64507 -0.7172 +vn -0.71067 0.19898 -0.6748 +vn 0.71067 0.19898 -0.6748 +vn -0.46602 -0.69729 -0.54462 +vn 0.46602 -0.69729 -0.54462 +vn -0.339 0.49898 -0.79756 +vn 0.339 0.49898 -0.79756 +vn 0.10558 -0.3522 0.92995 +vn 0.08572 0.65 0.75509 +vn -0.08572 0.65 0.75509 +vn -0.10432 -0.3804 0.91892 +vn -0.12735 -0.35195 0.92731 +vn -0.17825 0.80218 -0.56985 +vn 0.17825 0.80218 -0.56985 +vn 0.05886 0.92885 0.36576 +vn -0.05886 0.92885 0.36576 +vn -0.36187 -0.77127 -0.52364 +vn 0.36187 -0.77127 -0.52364 +vn 0.04188 0.36427 0.93035 +vn -0.04188 0.36427 0.93035 +vn 0.12584 -0.38027 0.91628 +vn -0.12073 0.64999 0.75029 +vn -0.14869 -0.3522 0.92404 +vn -0.12584 -0.38027 0.91628 +vn 0.12073 0.64999 0.75029 +vn 0.14696 -0.37996 0.91325 +vn 0.06996 0.96067 -0.26875 +vn -0.06996 0.96067 -0.26875 +vn 0.33858 -0.63178 -0.69729 +vn -0.33858 -0.63178 -0.69729 +vn -0.70035 0.2594 -0.665 +vn 0.70035 0.2594 -0.665 +vn 0.04471 -0.10721 0.99323 +vn -0.04471 -0.10721 0.99323 +vn -0.10504 0.3645 0.92526 +vn 0.10504 0.3645 0.92526 +vn -0.65373 -0.4328 -0.62074 +vn 0.65373 -0.4328 -0.62074 +vn 0.07605 0.92885 0.36258 +vn -0.07605 0.92885 0.36258 +vn -0.13582 -0.0592 0.98896 +vn -0.11215 -0.10728 0.98788 +vn 0.13527 -0.1072 0.98499 +vn 0.15601 0.64999 0.74376 +vn 0.19214 -0.3522 0.91599 +vn -0.19214 -0.3522 0.91599 +vn -0.15601 0.64999 0.74376 +vn 0.12735 -0.35195 0.92731 +vn 0.0216 0.87708 0.47986 +vn -0.0216 0.87708 0.47986 +vn 0.11261 -0.05881 0.9919 +vn 0.14794 0.3645 0.91938 +vn -0.14794 0.3645 0.91938 +vn -0.59617 0.39895 -0.69672 +vn 0.59617 0.39895 -0.69672 +vn 0.20601 0.80218 -0.56042 +vn -0.20601 0.80218 -0.56042 +vn -0.29891 0.64506 -0.70324 +vn 0.29891 0.64506 -0.70324 +vn 0.40769 -0.35892 -0.83962 +vn 0.41522 -0.33897 -0.84421 +vn -0.41522 -0.33897 -0.84421 +vn -0.41092 -0.33901 -0.84629 +vn -0.05415 0.87723 0.47701 +vn 0.05415 0.87723 0.47701 +vn -0.13527 -0.1072 0.98499 +vn -0.15859 -0.05956 0.98555 +vn 0.13582 -0.0592 0.98896 +vn 0.64038 0.36752 -0.67442 +vn -0.64038 0.36752 -0.67442 +vn -0.08291 0.96067 -0.26504 +vn 0.08291 0.96067 -0.26504 +vn 0.52173 -0.6526 -0.54947 +vn -0.52173 -0.6526 -0.54947 +vn 0.15796 -0.10728 0.9816 +vn -0.09332 0.92884 0.35852 +vn 0.09332 0.92884 0.35852 +vn -0.37853 0.49898 -0.77957 +vn 0.37853 0.49898 -0.77957 +vn -0.41193 -0.35893 -0.83754 +vn 0.19117 0.3645 0.91137 +vn -0.19117 0.3645 0.91137 +vn 0.34889 -0.74798 -0.56463 +vn -0.34889 -0.74798 -0.56463 +vn -0.07627 0.87723 0.47398 +vn -0.05995 0.89769 0.43652 +vn 0.05995 0.89769 0.43652 +vn 0.07627 0.87723 0.47398 +vn 0.00794 0.98431 0.17629 +vn -0.00794 0.98431 0.17629 +vn -0.19143 0.64999 0.73544 +vn -0.23576 -0.3522 0.90574 +vn 0.19143 0.64999 0.73544 +vn 0.23576 -0.3522 0.90574 +vn 0.20411 -0.10728 0.97305 +vn -0.20411 -0.10728 0.97305 +vn 0.55266 0.42351 -0.71778 +vn -0.55266 0.42351 -0.71778 +vn -0.61839 -0.52231 -0.58718 +vn 0.61839 -0.52231 -0.58718 +vn 0.43543 -0.74259 -0.50887 +vn -0.43543 -0.74259 -0.50887 +vn -0.02401 0.9843 0.17484 +vn 0.02401 0.9843 0.17484 +vn 0.09856 0.87723 0.46985 +vn -0.09856 0.87723 0.46985 +vn -0.37338 -0.63178 -0.6793 +vn 0.37338 -0.63178 -0.6793 +vn -0.23458 0.36449 0.90118 +vn 0.23458 0.36449 0.90118 +vn 0.00794 0.98431 -0.17629 +vn -0.00794 0.98431 -0.17629 +vn 0.1106 0.92884 0.35358 +vn -0.1106 0.92884 0.35358 +vn -0.68652 0.3221 -0.65187 +vn 0.68652 0.3221 -0.65187 +vn 0.09582 0.96067 -0.26065 +vn -0.09582 0.96067 -0.26065 +vn -0.23356 0.80218 -0.54951 +vn 0.23356 0.80218 -0.54951 +vn -0.25045 -0.10728 0.96217 +vn 0.25045 -0.10728 0.96217 +vn 0.22688 0.64998 0.72529 +vn 0.27941 -0.35219 0.89325 +vn -0.27941 -0.35219 0.89325 +vn -0.22688 0.64998 0.72529 +vn 0.02401 0.9843 -0.17484 +vn -0.02401 0.9843 -0.17484 +vn -0.33376 0.64506 -0.68738 +vn 0.33376 0.64506 -0.68738 +vn 0.0362 0.98433 0.17259 +vn -0.0362 0.98433 0.17259 +vn -0.12093 0.87722 0.4646 +vn 0.12093 0.87722 0.4646 +vn 0.38832 -0.77127 -0.50433 +vn -0.38832 -0.77127 -0.50433 +vn 0.75937 0.03363 -0.64978 +vn 0.75802 -0.0685 -0.64863 +vn -0.75937 0.03363 -0.64978 +vn -0.75802 -0.0685 -0.64863 +vn 0.45712 -0.31527 -0.83165 +vn 0.41193 -0.35893 -0.83754 +vn -0.45712 -0.31527 -0.83165 +vn 0.75631 0.09577 -0.64716 +vn -0.75631 0.09577 -0.64716 +vn -0.0216 0.87708 -0.47986 +vn 0.0216 0.87708 -0.47986 +vn 0.74401 -0.20281 -0.63664 +vn -0.74401 -0.20281 -0.63664 +vn -0.49356 -0.69729 -0.51979 +vn 0.49356 -0.69729 -0.51979 +vn 0.278 0.36449 0.88874 +vn -0.278 0.36449 0.88874 +vn 0.41743 0.49898 -0.75945 +vn -0.41743 0.49898 -0.75945 +vn -0.58285 -0.59498 -0.55343 +vn 0.58285 -0.59498 -0.55343 +vn 0.75112 0.15076 -0.64272 +vn -0.75112 0.15076 -0.64272 +vn 0.06536 0.87706 -0.47591 +vn -0.06536 0.87706 -0.47591 +vn 0.29682 -0.10728 0.94889 +vn -0.29682 -0.10728 0.94889 +vn -0.12782 0.92884 0.34772 +vn 0.12782 0.92884 0.34772 +vn -0.0362 0.98433 -0.17259 +vn 0.0362 0.98433 -0.17259 +vn -0.04442 0.98433 0.17066 +vn 0.04442 0.98433 0.17066 +vn -0.2622 0.64998 0.71328 +vn -0.32292 -0.35219 0.87846 +vn 0.32292 -0.35219 0.87846 +vn 0.2622 0.64998 0.71328 +vn 0.71836 -0.32577 -0.61469 +vn -0.71836 -0.32577 -0.61469 +vn -0.10863 0.96066 -0.25558 +vn 0.10863 0.96066 -0.25558 +vn -0.03419 0.64972 -0.75941 +vn 0.03419 0.64972 -0.75941 +vn 0.4624 -0.37379 -0.80403 +vn -0.4624 -0.37379 -0.80403 +vn 0.14333 0.87722 0.45819 +vn -0.14333 0.87722 0.45819 +vn 0.74461 0.19898 -0.63715 +vn -0.74461 0.19898 -0.63715 +vn -0.37734 -0.74798 -0.54603 +vn 0.37734 -0.74798 -0.54603 +vn -0.2608 0.80218 -0.53712 +vn 0.2608 0.80218 -0.53712 +vn -0.10343 0.64969 -0.75313 +vn 0.10343 0.64969 -0.75313 +vn -0.09856 0.87723 -0.46985 +vn 0.09856 0.87723 -0.46985 +vn 0.40746 -0.63178 -0.65942 +vn -0.40746 -0.63178 -0.65942 +vn 0.04442 0.98433 -0.17066 +vn -0.04442 0.98433 -0.17066 +vn -0.32129 0.36449 0.87402 +vn 0.32129 0.36449 0.87402 +vn 0.6314 0.39895 -0.66496 +vn -0.6314 0.39895 -0.66496 +vn 0.05265 0.98433 0.16831 +vn -0.05265 0.98433 0.16831 +vn 0.36807 0.64506 -0.66964 +vn -0.36807 0.64506 -0.66964 +vn 0.73379 0.2594 -0.6279 +vn -0.73379 0.2594 -0.6279 +vn -0.34304 -0.10728 0.93318 +vn 0.34304 -0.10728 0.93318 +vn 0.68496 -0.4328 -0.58611 +vn -0.68496 -0.4328 -0.58611 +vn -0.58897 0.42351 -0.6883 +vn 0.58897 0.42351 -0.6883 +vn 0.14492 0.92884 0.34096 +vn -0.14492 0.92884 0.34096 +vn -0.67442 0.36752 -0.64038 +vn 0.67442 0.36752 -0.64038 +vn -0.16564 0.87722 0.4506 +vn 0.16564 0.87722 0.4506 +vn 0.54947 -0.6526 -0.52173 +vn -0.54947 -0.6526 -0.52173 +vn -0.17396 0.64967 -0.74005 +vn -0.15194 0.67249 -0.72434 +vn 0.15601 0.64999 -0.74376 +vn 0.29727 0.64998 0.6994 +vn 0.36611 -0.35219 0.86135 +vn -0.36611 -0.35219 0.86135 +vn -0.29727 0.64998 0.6994 +vn 0.12093 0.87722 -0.4646 +vn -0.12093 0.87722 -0.4646 +vn 0.50013 -0.30786 -0.80938 +vn -0.50013 -0.30786 -0.80938 +vn 0.04419 0.18632 -0.98149 +vn -0.04419 0.18632 -0.98149 +vn 0.46117 -0.74259 -0.48568 +vn -0.46117 -0.74259 -0.48568 +vn -0.05265 0.98433 -0.16831 +vn 0.05265 0.98433 -0.16831 +vn -0.03873 0.50834 -0.86028 +vn 0.03873 0.50834 -0.86028 +vn -0.1213 0.96066 -0.24982 +vn 0.1213 0.96066 -0.24982 +vn -0.45554 0.49898 -0.73723 +vn 0.45554 0.49898 -0.73723 +vn 0.13367 0.18631 -0.97335 +vn -0.13367 0.18631 -0.97335 +vn -0.11717 0.50831 -0.85316 +vn 0.11717 0.50831 -0.85316 +vn -0.06085 0.98433 0.16552 +vn 0.06085 0.98433 0.16552 +vn 0.36426 0.36449 0.85701 +vn -0.36426 0.36449 0.85701 +vn -0.02829 0.77741 -0.62836 +vn 0.02829 0.77741 -0.62836 +vn -0.16936 0.67245 -0.72051 +vn -0.19143 0.64999 -0.73544 +vn 0.1865 0.6722 -0.7165 +vn 0.16936 0.67245 -0.72051 +vn -0.41383 -0.77127 -0.48362 +vn 0.41383 -0.77127 -0.48362 +vn 0.28761 0.80218 -0.52325 +vn -0.28761 0.80218 -0.52325 +vn 0.64792 -0.52231 -0.55442 +vn -0.64792 -0.52231 -0.55442 +vn 0.38892 -0.10728 0.91501 +vn -0.38892 -0.10728 0.91501 +vn -0.14333 0.87722 -0.45819 +vn 0.14333 0.87722 -0.45819 +vn -0.08558 0.77739 -0.62317 +vn 0.08558 0.77739 -0.62317 +vn 0.1878 0.87722 0.44183 +vn -0.1878 0.87722 0.44183 +vn 0.22482 0.1863 -0.95643 +vn -0.22482 0.1863 -0.95643 +vn 0.06085 0.98433 -0.16552 +vn -0.06085 0.98433 -0.16552 +vn -0.71931 0.3221 -0.6155 +vn 0.71931 0.3221 -0.6155 +vn 0.16182 0.92884 0.33327 +vn -0.16182 0.92884 0.33327 +vn -0.19706 0.50829 -0.83834 +vn 0.19706 0.50829 -0.83834 +vn 0.51407 -0.3732 -0.77231 +vn -0.51407 -0.3732 -0.77231 +vn -0.40492 -0.74798 -0.5259 +vn 0.40492 -0.74798 -0.5259 +vn 0.4088 -0.35219 0.84193 +vn 0.33194 0.64998 0.68363 +vn -0.33194 0.64998 0.68363 +vn -0.4088 -0.35219 0.84193 +vn -0.40167 0.64506 -0.65005 +vn 0.40167 0.64506 -0.65005 +vn -0.44069 -0.63178 -0.63769 +vn 0.44069 -0.63178 -0.63769 +vn -0.22688 0.64998 -0.72529 +vn 0.17396 0.64967 -0.74005 +vn 0.22688 0.64998 -0.72529 +vn -0.51979 -0.69729 -0.49356 +vn 0.51979 -0.69729 -0.49356 +vn -0.14394 0.77737 -0.61236 +vn 0.14394 0.77737 -0.61236 +vn 0.06898 0.98433 0.1623 +vn -0.06898 0.98433 0.1623 +vn -0.16564 0.87722 -0.4506 +vn 0.16564 0.87722 -0.4506 +vn 0.13377 0.96066 -0.24337 +vn -0.13377 0.96066 -0.24337 +vn 0.40674 0.36448 0.83768 +vn -0.40674 0.36448 0.83768 +vn 0.61069 -0.59498 -0.52256 +vn -0.61069 -0.59498 -0.52256 +vn -0.01872 0.90921 -0.41591 +vn 0.01872 0.90921 -0.41591 +vn -0.79189 0.03363 -0.60973 +vn -0.79048 -0.0685 -0.60864 +vn 0.79189 0.03363 -0.60973 +vn 0.79048 -0.0685 -0.60864 +vn 0.53917 -0.31714 -0.7802 +vn -0.53917 -0.31714 -0.7802 +vn 0.43427 -0.10728 0.89437 +vn -0.43427 -0.10728 0.89437 +vn -0.7887 0.09577 -0.60727 +vn 0.7887 0.09577 -0.60727 +vn -0.77587 -0.20281 -0.5974 +vn 0.77587 -0.20281 -0.5974 +vn -0.05665 0.9092 -0.41248 +vn 0.05665 0.9092 -0.41248 +vn -0.49269 0.49898 -0.71294 +vn 0.49269 0.49898 -0.71294 +vn 0.06898 0.98433 -0.1623 +vn -0.06898 0.98433 -0.1623 +vn -0.2622 0.64998 -0.71328 +vn 0.2622 0.64998 -0.71328 +vn -0.78329 0.15076 -0.6031 +vn 0.78329 0.15076 -0.6031 +vn 0.2097 0.87722 0.43187 +vn -0.2097 0.87722 0.43187 +vn -0.31386 0.80218 -0.50794 +vn 0.31386 0.80218 -0.50794 +vn 0.62377 0.42351 -0.65693 +vn -0.62377 0.42351 -0.65693 +vn -0.66496 0.39895 -0.6314 +vn 0.66496 0.39895 -0.6314 +vn 0.29331 0.18645 -0.93766 +vn -0.29331 0.18645 -0.93766 +vn -0.25704 0.50861 -0.82173 +vn 0.25704 0.50861 -0.82173 +vn -0.74912 -0.32577 -0.5768 +vn 0.74912 -0.32577 -0.5768 +vn -0.17845 0.92884 0.32467 +vn 0.17845 0.92884 0.32467 +vn -0.7765 0.19898 -0.59788 +vn 0.7765 0.19898 -0.59788 +vn -0.36606 0.64998 0.66598 +vn -0.45082 -0.35219 0.8202 +vn 0.36606 0.64998 0.66598 +vn 0.45082 -0.35219 0.8202 +vn -0.1878 0.87722 -0.44183 +vn 0.1878 0.87722 -0.44183 +vn 0.07703 0.98433 0.15864 +vn -0.07703 0.98433 0.15864 +vn -0.1877 0.77763 -0.60005 +vn 0.1877 0.77763 -0.60005 +vn -0.09528 0.90919 -0.40533 +vn 0.09528 0.90919 -0.40533 +vn -0.48568 -0.74259 -0.46117 +vn 0.48568 -0.74259 -0.46117 +vn -0.43442 0.64506 -0.62863 +vn 0.43442 0.64506 -0.62863 +vn -0.70663 0.36752 -0.60465 +vn 0.70663 0.36752 -0.60465 +vn 0.76522 0.2594 -0.58919 +vn -0.76522 0.2594 -0.58919 +vn 0.57571 -0.6526 -0.49262 +vn -0.57571 -0.6526 -0.49262 +vn -0.44855 0.36448 0.81606 +vn 0.44855 0.36448 0.81606 +vn -0.43828 -0.77127 -0.46158 +vn 0.43828 -0.77127 -0.46158 +vn -0.71429 -0.4328 -0.54998 +vn 0.71429 -0.4328 -0.54998 +vn -0.29727 0.64998 -0.6994 +vn 0.29727 0.64998 -0.6994 +vn 0.33898 0.18645 -0.92213 +vn -0.33898 0.18645 -0.92213 +vn -0.14598 0.96066 -0.23625 +vn 0.14598 0.96066 -0.23625 +vn -0.4789 -0.10728 0.87129 +vn 0.4789 -0.10728 0.87129 +vn 0.4729 -0.63177 -0.61419 +vn -0.4729 -0.63177 -0.61419 +vn 0.07703 0.98433 -0.15864 +vn -0.07703 0.98433 -0.15864 +vn -0.29707 0.50861 -0.80813 +vn 0.29707 0.50861 -0.80813 +vn -0.43152 -0.74797 -0.5043 +vn 0.43152 -0.74797 -0.5043 +vn -0.23125 0.87722 0.42073 +vn 0.23125 0.87722 0.42073 +vn 0.21693 0.77763 -0.59012 +vn -0.21693 0.77763 -0.59012 +vn 0.56771 -0.3565 -0.74203 +vn -0.56771 -0.3565 -0.74203 +vn 0.2097 0.87722 -0.43187 +vn -0.2097 0.87722 -0.43187 +vn 0.57282 -0.34412 -0.74395 +vn -0.57 -0.35647 -0.74029 +vn -0.01341 0.95451 -0.29789 +vn 0.01341 0.95451 -0.29789 +vn -0.33946 0.80217 -0.49121 +vn 0.33946 0.80217 -0.49121 +vn -0.12422 0.90933 -0.39711 +vn 0.12422 0.90933 -0.39711 +vn 0.19475 0.92884 0.31517 +vn -0.19475 0.92884 0.31517 +vn 0.5287 0.49897 -0.68666 +vn -0.5287 0.49897 -0.68666 +vn -0.67567 -0.52232 -0.52024 +vn 0.67567 -0.52232 -0.52024 +vn -0.57053 -0.3441 -0.74572 +vn -0.08495 0.98433 0.15455 +vn 0.08495 0.98433 0.15455 +vn 0.04057 0.9545 -0.29544 +vn -0.04057 0.9545 -0.29544 +vn 0.49198 -0.35219 0.79619 +vn 0.39948 0.64997 0.64649 +vn -0.39948 0.64997 0.64649 +vn -0.49198 -0.35219 0.79619 +vn 0.38431 0.18645 -0.90418 +vn -0.38431 0.18645 -0.90418 +vn -0.3368 0.50861 -0.79239 +vn 0.3368 0.50861 -0.79239 +vn -0.33194 0.64998 -0.68363 +vn 0.33194 0.64998 -0.68363 +vn -0.54462 -0.69729 -0.46602 +vn 0.54462 -0.69729 -0.46602 +vn 0.75011 0.3221 -0.57756 +vn -0.75011 0.3221 -0.57756 +vn -0.24594 0.77762 -0.57863 +vn 0.24594 0.77762 -0.57863 +vn 0.08495 0.98433 -0.15455 +vn -0.08495 0.98433 -0.15455 +vn 0.4895 0.36448 0.79218 +vn -0.4895 0.36448 0.79218 +vn 0.52262 -0.10728 0.84579 +vn -0.52262 -0.10728 0.84579 +vn -0.06824 0.95449 -0.29032 +vn 0.06824 0.95449 -0.29032 +vn -0.14356 0.90933 -0.39053 +vn 0.14356 0.90933 -0.39053 +vn -0.15789 0.96066 -0.22847 +vn 0.15789 0.96066 -0.22847 +vn 0.46618 0.64506 -0.60546 +vn -0.46618 0.64506 -0.60546 +vn -0.65693 0.42351 -0.62377 +vn 0.65693 0.42351 -0.62377 +vn 0.25236 0.87722 0.40841 +vn -0.25236 0.87722 0.40841 +vn 0.23125 0.87722 -0.42073 +vn -0.23125 0.87722 -0.42073 +vn 0.63684 -0.59498 -0.49035 +vn -0.63684 -0.59498 -0.49035 +vn -0.69672 0.39895 -0.59617 +vn 0.69672 0.39895 -0.59617 +vn 0.42913 0.18645 -0.88379 +vn -0.42913 0.18645 -0.88379 +vn -0.50397 -0.63177 -0.58896 +vn 0.50397 -0.63177 -0.58896 +vn -0.37608 0.5086 -0.77453 +vn 0.37608 0.5086 -0.77453 +vn 0.82074 -0.0685 -0.56718 +vn 0.82221 0.03363 -0.5682 +vn -0.82074 -0.0685 -0.56718 +vn -0.82221 0.03363 -0.5682 +vn 0.0927 0.98433 0.15002 +vn -0.0927 0.98433 0.15002 +vn 0.81889 0.09577 -0.5659 +vn -0.81889 0.09577 -0.5659 +vn -0.36606 0.64998 -0.66598 +vn 0.36606 0.64998 -0.66598 +vn 0.80557 -0.20282 -0.5567 +vn -0.80557 -0.20282 -0.5567 +vn 0.21063 0.92884 0.30478 +vn -0.21063 0.92884 0.30478 +vn 0.27462 0.77762 -0.56559 +vn -0.27462 0.77762 -0.56559 +vn -0.46158 -0.77127 -0.43828 +vn 0.46158 -0.77127 -0.43828 +vn -0.16276 0.90932 -0.38293 +vn 0.16276 0.90932 -0.38293 +vn 0.81327 0.15076 -0.56202 +vn -0.81327 0.15076 -0.56202 +vn 0.45702 -0.74797 -0.48131 +vn -0.45702 -0.74797 -0.48131 +vn 0.43205 0.64997 0.6252 +vn 0.53209 -0.35218 0.76996 +vn -0.53209 -0.35218 0.76996 +vn -0.43205 0.64997 0.6252 +vn 0.50887 -0.74259 -0.43543 +vn -0.50887 -0.74259 -0.43543 +vn 0.36427 0.80217 -0.4731 +vn -0.36427 0.80217 -0.4731 +vn 0.61458 -0.32623 -0.71824 +vn 0.57053 -0.3441 -0.74572 +vn -0.61458 -0.32623 -0.71824 +vn 0.08897 0.95457 -0.28441 +vn -0.08897 0.95457 -0.28441 +vn 0.77779 -0.32577 -0.5375 +vn -0.77779 -0.32577 -0.5375 +vn 0.0927 0.98433 -0.15002 +vn -0.0927 0.98433 -0.15002 +vn -0.56343 0.49897 -0.65846 +vn 0.56343 0.49897 -0.65846 +vn -0.80622 0.19898 -0.55715 +vn 0.80622 0.19898 -0.55715 +vn 0.73689 0.36752 -0.56738 +vn -0.73689 0.36752 -0.56738 +vn 0.52941 0.36448 0.76608 +vn -0.52941 0.36448 0.76608 +vn 0.60036 -0.6526 -0.46226 +vn -0.60036 -0.6526 -0.46226 +vn 0.61239 -0.36854 -0.6994 +vn -0.61239 -0.36854 -0.6994 +vn 0.56524 -0.10728 0.81792 +vn -0.56524 -0.10728 0.81792 +vn -0.00936 0.97809 -0.20797 +vn 0.00936 0.97809 -0.20797 +vn 0.25236 0.87722 -0.40841 +vn -0.25236 0.87722 -0.40841 +vn 0.47324 0.18645 -0.86098 +vn -0.47324 0.18645 -0.86098 +vn -0.79451 0.25941 -0.54906 +vn 0.79451 0.25941 -0.54906 +vn -0.41473 0.5086 -0.75454 +vn 0.41473 0.5086 -0.75454 +vn 0.74163 -0.4328 -0.51251 +vn -0.74163 -0.4328 -0.51251 +vn 0.27294 0.87722 0.39496 +vn -0.27294 0.87722 0.39496 +vn -0.02833 0.97809 -0.20626 +vn 0.02833 0.97809 -0.20626 +vn 0.10282 0.95457 -0.2797 +vn 0.09392 0.95652 -0.27614 +vn -0.09392 0.95652 -0.27614 +vn -0.10282 0.95457 -0.2797 +vn 0.16943 0.96066 -0.22005 +vn -0.16943 0.96066 -0.22005 +vn -0.18174 0.90932 -0.3743 +vn 0.18174 0.90932 -0.3743 +vn -0.30285 0.77762 -0.55099 +vn 0.30285 0.77762 -0.55099 +vn -0.4968 0.64506 -0.58059 +vn 0.4968 0.64506 -0.58059 +vn -0.39948 0.64997 -0.64649 +vn 0.39948 0.64997 -0.64649 +vn 0.10026 0.98433 0.14508 +vn -0.10026 0.98433 0.14508 +vn -0.04764 0.97808 -0.20268 +vn 0.04764 0.97808 -0.20268 +vn -0.22602 0.92884 0.29355 +vn 0.22602 0.92884 0.29355 +vn 0.70153 -0.52232 -0.4848 +vn -0.70153 -0.52232 -0.4848 +vn -0.56794 -0.69729 -0.4373 +vn 0.56794 -0.69729 -0.4373 +vn -0.46363 0.64997 0.60215 +vn -0.57099 -0.35218 0.74158 +vn 0.46363 0.64997 0.60215 +vn 0.57099 -0.35218 0.74158 +vn -0.12354 0.95449 -0.27147 +vn -0.11402 0.95658 -0.26825 +vn 0.11657 0.95457 -0.27426 +vn 0.53375 -0.63177 -0.56212 +vn -0.53375 -0.63177 -0.56212 +vn -0.10026 0.98433 -0.14508 +vn 0.10026 0.98433 -0.14508 +vn -0.6883 0.42351 -0.58897 +vn 0.6883 0.42351 -0.58897 +vn -0.3882 0.80217 -0.45367 +vn 0.3882 0.80217 -0.45367 +vn -0.77883 0.3221 -0.53822 +vn 0.77883 0.3221 -0.53822 +vn 0.51644 0.18645 -0.83578 +vn -0.51644 0.18645 -0.83578 +vn -0.56811 0.36448 0.73784 +vn 0.56811 0.36448 0.73784 +vn -0.45259 0.5086 -0.73245 +vn 0.45259 0.5086 -0.73245 +vn -0.20042 0.90932 -0.36464 +vn 0.20042 0.90932 -0.36464 +vn -0.27294 0.87722 -0.39496 +vn 0.27294 0.87722 -0.39496 +vn 0.65482 -0.30924 -0.68962 +vn -0.65482 -0.30924 -0.68962 +vn -0.60656 -0.10728 0.78777 +vn 0.60656 -0.10728 0.78777 +vn -0.48131 -0.74797 -0.45702 +vn 0.48131 -0.74797 -0.45702 +vn 0.72656 0.39895 -0.55942 +vn -0.72656 0.39895 -0.55942 +vn 0.3305 0.77762 -0.53486 +vn -0.3305 0.77762 -0.53486 +vn 0.59673 0.49897 -0.62844 +vn -0.59673 0.49897 -0.62844 +vn -0.06705 0.97808 -0.19713 +vn 0.06705 0.97808 -0.19713 +vn -0.2929 0.87722 0.3804 +vn 0.2929 0.87722 0.3804 +vn 0.66122 -0.59498 -0.45694 +vn -0.66122 -0.59498 -0.45694 +vn 0.48362 -0.77127 -0.41383 +vn -0.48362 -0.77127 -0.41383 +vn -0.43205 0.64997 -0.6252 +vn 0.43205 0.64997 -0.6252 +vn 0.12734 0.95656 -0.26225 +vn 0.12071 0.9566 -0.26524 +vn -0.12071 0.9566 -0.26524 +vn -0.13016 0.95456 -0.26807 +vn -0.18056 0.96066 -0.21101 +vn 0.18056 0.96066 -0.21101 +vn 0.53066 -0.74259 -0.40859 +vn -0.53066 -0.74259 -0.40859 +vn -0.10759 0.98433 0.13973 +vn 0.10759 0.98433 0.13973 +vn 0.52616 0.64505 -0.55413 +vn -0.52616 0.64505 -0.55413 +vn 0.65505 -0.37658 -0.65505 +vn -0.65505 -0.37658 -0.65505 +vn -0.8487 -0.0685 -0.52442 +vn -0.85022 0.03363 -0.52536 +vn 0.8487 -0.0685 -0.52442 +vn 0.85022 0.03363 -0.52536 +vn -0.84679 0.09577 -0.52324 +vn 0.84679 0.09577 -0.52324 +vn -0.83302 -0.20282 -0.51473 +vn 0.83302 -0.20282 -0.51473 +vn 0.10759 0.98433 -0.13973 +vn -0.10759 0.98433 -0.13973 +vn 0.24087 0.92884 0.28149 +vn -0.24087 0.92884 0.28149 +vn -0.21872 0.90932 -0.35397 +vn 0.21872 0.90932 -0.35397 +vn 0.84097 0.15076 -0.51965 +vn -0.84097 0.15076 -0.51965 +vn 0.55855 0.18645 -0.80825 +vn -0.55855 0.18645 -0.80825 +vn 0.49409 0.64997 0.57742 +vn 0.6085 -0.35218 0.71112 +vn -0.6085 -0.35218 0.71112 +vn -0.49409 0.64997 0.57742 +vn -0.7651 0.36752 -0.52873 +vn 0.7651 0.36752 -0.52873 +vn -0.4895 0.5086 -0.70832 +vn 0.4895 0.5086 -0.70832 +vn 0.62334 -0.6526 -0.43077 +vn -0.62334 -0.6526 -0.43077 +vn -0.80429 -0.32577 -0.49698 +vn 0.80429 -0.32577 -0.49698 +vn -0.83369 0.19898 -0.51514 +vn 0.83369 0.19898 -0.51514 +vn 0.2929 0.87722 -0.3804 +vn -0.2929 0.87722 -0.3804 +vn 0.14354 0.95456 -0.26116 +vn 0.12354 0.95449 -0.27147 +vn -0.1503 0.95448 -0.25763 +vn -0.1403 0.95664 -0.25526 +vn -0.35745 0.77762 -0.51724 +vn 0.35745 0.77762 -0.51724 +vn 0.60543 0.36448 0.70754 +vn -0.60543 0.36448 0.70754 +vn 0.41114 0.80217 -0.43299 +vn -0.41114 0.80217 -0.43299 +vn -0.56212 -0.63177 -0.53375 +vn 0.56212 -0.63177 -0.53375 +vn -0.08625 0.97808 -0.18953 +vn 0.08625 0.97808 -0.18953 +vn 0.6464 -0.10728 0.75542 +vn -0.6464 -0.10728 0.75542 +vn -0.82158 0.25941 -0.50766 +vn 0.82158 0.25941 -0.50766 +vn -0.46363 0.64997 -0.60215 +vn 0.46363 0.64997 -0.60215 +vn -0.7669 -0.4328 -0.47387 +vn 0.7669 -0.4328 -0.47387 +vn 0.31214 0.87722 0.36478 +vn -0.31214 0.87722 0.36478 +vn 0.68962 -0.30924 -0.65482 +vn -0.68962 -0.30924 -0.65482 +vn 0.71778 0.42351 -0.55266 +vn -0.71778 0.42351 -0.55266 +vn -0.62844 0.49897 -0.59673 +vn 0.62844 0.49897 -0.59673 +vn -0.58968 -0.69729 -0.40751 +vn 0.58968 -0.69729 -0.40751 +vn 0.11466 0.98433 0.134 +vn -0.11466 0.98433 0.134 +vn 0.19123 0.96066 -0.20139 +vn -0.19123 0.96066 -0.20139 +vn -0.5043 -0.74797 -0.43152 +vn 0.5043 -0.74797 -0.43152 +vn -0.23656 0.90932 -0.34231 +vn 0.23656 0.90932 -0.34231 +vn -0.72543 -0.52232 -0.44825 +vn 0.72543 -0.52232 -0.44825 +vn 0.59938 0.18645 -0.77845 +vn -0.59938 0.18645 -0.77845 +vn 0.15314 0.95662 -0.24783 +vn 0.14674 0.95666 -0.25154 +vn -0.14674 0.95666 -0.25154 +vn -0.15665 0.95456 -0.25351 +vn -0.11466 0.98433 -0.134 +vn 0.11466 0.98433 -0.134 +vn -0.52528 0.5086 -0.68221 +vn 0.52528 0.5086 -0.68221 +vn -0.50433 -0.77127 -0.38832 +vn 0.50433 -0.77127 -0.38832 +vn -0.80536 0.3221 -0.49764 +vn 0.80536 0.3221 -0.49764 +vn -0.55413 0.64505 -0.52616 +vn 0.55413 0.64505 -0.52616 +vn -0.75437 0.39895 -0.52131 +vn 0.75437 0.39895 -0.52131 +vn -0.2551 0.92884 0.26866 +vn 0.2551 0.92884 0.26866 +vn 0.38358 0.77762 -0.49818 +vn -0.38358 0.77762 -0.49818 +vn -0.64445 -0.35218 0.67871 +vn -0.52329 0.64997 0.5511 +vn 0.64445 -0.35218 0.67871 +vn 0.52329 0.64997 0.5511 +vn -0.31214 0.87722 -0.36478 +vn 0.31214 0.87722 -0.36478 +vn 0.55098 -0.74259 -0.38076 +vn -0.55098 -0.74259 -0.38076 +vn -0.68374 -0.59498 -0.42249 +vn 0.68374 -0.59498 -0.42249 +vn -0.6412 0.36448 0.67529 +vn 0.6412 0.36448 0.67529 +vn -0.49409 0.64997 -0.57742 +vn 0.49409 0.64997 -0.57742 +vn -0.6846 -0.10728 0.72098 +vn 0.6846 -0.10728 0.72098 +vn -0.10493 0.97808 -0.17987 +vn 0.10493 0.97808 -0.17987 +vn 0.6994 -0.36854 -0.61239 +vn -0.6994 -0.36854 -0.61239 +vn -0.43299 0.80217 -0.41114 +vn 0.43299 0.80217 -0.41114 +vn -0.33058 0.87722 0.34815 +vn 0.33058 0.87722 0.34815 +vn 0.58896 -0.63177 -0.50397 +vn -0.58896 -0.63177 -0.50397 +vn -0.25385 0.90932 -0.32969 +vn 0.25385 0.90932 -0.32969 +vn -0.16942 0.95456 -0.24516 +vn 0.1503 0.95448 -0.25763 +vn 0.16942 0.95456 -0.24516 +vn -0.12143 0.98433 0.12789 +vn 0.12143 0.98433 0.12789 +vn 0.63875 0.18645 -0.74648 +vn -0.63875 0.18645 -0.74648 +vn -0.79116 0.36752 -0.48887 +vn 0.79116 0.36752 -0.48887 +vn 0.71824 -0.32623 -0.61458 +vn -0.71824 -0.32623 -0.61458 +vn 0.64458 -0.6526 -0.39829 +vn -0.64458 -0.6526 -0.39829 +vn 0.87585 0.03363 -0.48141 +vn 0.87429 -0.0685 -0.48055 +vn -0.87585 0.03363 -0.48141 +vn -0.87429 -0.0685 -0.48055 +vn -0.55978 0.5086 -0.65419 +vn 0.55978 0.5086 -0.65419 +vn -0.20139 0.96066 -0.19123 +vn 0.20139 0.96066 -0.19123 +vn 0.87232 0.09577 -0.47947 +vn -0.87232 0.09577 -0.47947 +vn 0.85813 -0.20282 -0.47167 +vn -0.85813 -0.20282 -0.47167 +vn -0.0071 0.98745 -0.15778 +vn 0.0071 0.98745 -0.15778 +vn -0.65846 0.49897 -0.56343 +vn 0.65846 0.49897 -0.56343 +vn 0.12143 0.98433 -0.12789 +vn -0.12143 0.98433 -0.12789 +vn 0.86633 0.15076 -0.47618 +vn -0.86633 0.15076 -0.47618 +vn -0.40878 0.77762 -0.47772 +vn 0.40878 0.77762 -0.47772 +vn 0.02149 0.98745 -0.15648 +vn -0.02149 0.98745 -0.15648 +vn 0.82854 -0.32577 -0.45541 +vn -0.82854 -0.32577 -0.45541 +vn 0.85882 0.19899 -0.47205 +vn -0.85882 0.19899 -0.47205 +vn -0.5259 -0.74798 -0.40492 +vn 0.5259 -0.74798 -0.40492 +vn -0.33058 0.87722 -0.34815 +vn 0.33058 0.87722 -0.34815 +vn -0.74525 0.42351 -0.51502 +vn 0.74525 0.42351 -0.51502 +vn 0.26866 0.92884 0.2551 +vn -0.26866 0.92884 0.2551 +vn 0.67871 -0.35218 0.64445 +vn 0.5511 0.64997 0.52329 +vn -0.67871 -0.35218 0.64445 +vn -0.5511 0.64997 0.52329 +vn 0.03614 0.98745 -0.15377 +vn -0.03614 0.98745 -0.15377 +vn -0.58059 0.64506 -0.4968 +vn 0.58059 0.64506 -0.4968 +vn 0.84635 0.25941 -0.46519 +vn -0.84635 0.25941 -0.46519 +vn 0.79002 -0.4328 -0.43423 +vn -0.79002 -0.4328 -0.43423 +vn -0.52329 0.64997 -0.5511 +vn 0.52329 0.64997 -0.5511 +vn -0.60977 -0.69729 -0.37678 +vn 0.60977 -0.69729 -0.37678 +vn 0.18181 0.95456 -0.23612 +vn -0.18181 0.95456 -0.23612 +vn 0.67529 0.36448 0.6412 +vn -0.67529 0.36448 0.6412 +vn -0.27052 0.90932 -0.31615 +vn 0.27052 0.90932 -0.31615 +vn 0.72098 -0.10728 0.6846 +vn -0.72098 -0.10728 0.6846 +vn -0.52364 -0.77127 -0.36187 +vn 0.52364 -0.77127 -0.36187 +vn 0.34815 0.87722 0.33058 +vn -0.34815 0.87722 0.33058 +vn -0.45367 0.80217 -0.3882 +vn 0.45367 0.80217 -0.3882 +vn 0.7473 -0.52232 -0.41075 +vn -0.7473 -0.52232 -0.41075 +vn -0.11828 0.97812 -0.17115 +vn 0.11828 0.97812 -0.17115 +vn -0.78006 0.39895 -0.48201 +vn 0.78006 0.39895 -0.48201 +vn 0.05087 0.98744 -0.14955 +vn -0.05087 0.98744 -0.14955 +vn 0.6765 0.18645 -0.71245 +vn -0.6765 0.18645 -0.71245 +vn 0.12789 0.98433 0.12143 +vn -0.12789 0.98433 0.12143 +vn -0.59286 0.5086 -0.62437 +vn 0.59286 0.5086 -0.62437 +vn 0.82964 0.32211 -0.45601 +vn -0.82964 0.32211 -0.45601 +vn -0.61419 -0.63177 -0.4729 +vn 0.61419 -0.63177 -0.4729 +vn 0.43293 0.77762 -0.45594 +vn -0.43293 0.77762 -0.45594 +vn 0.56975 -0.7426 -0.35205 +vn -0.56975 -0.7426 -0.35205 +vn 0.12789 0.98433 -0.12143 +vn -0.12789 0.98433 -0.12143 +vn -0.21101 0.96066 -0.18056 +vn 0.21101 0.96066 -0.18056 +vn 0.74572 -0.3441 -0.57053 +vn -0.74572 -0.3441 -0.57053 +vn 0.70435 -0.59498 -0.38715 +vn -0.70435 -0.59498 -0.38715 +vn 0.74029 -0.35647 -0.57 +vn -0.74395 -0.34412 -0.57282 +vn 0.68666 0.49897 -0.5287 +vn -0.68666 0.49897 -0.5287 +vn -0.34815 0.87722 -0.33058 +vn 0.34815 0.87722 -0.33058 +vn -0.74203 -0.3565 -0.56771 +vn 0.19375 0.95456 -0.22643 +vn -0.19375 0.95456 -0.22643 +vn 0.28149 0.92884 0.24087 +vn -0.28149 0.92884 0.24087 +vn 0.71112 -0.35218 0.6085 +vn 0.57742 0.64997 0.49409 +vn -0.57742 0.64997 0.49409 +vn -0.71112 -0.35218 0.6085 +vn -0.28651 0.90932 -0.30174 +vn 0.28651 0.90932 -0.30174 +vn -0.5511 0.64997 -0.52329 +vn 0.5511 0.64997 -0.52329 +vn -0.06544 0.98744 -0.14379 +vn 0.06544 0.98744 -0.14379 +vn 0.12587 0.97849 -0.16347 +vn -0.12692 0.97812 -0.16484 +vn 0.12159 0.9785 -0.1666 +vn 0.54603 -0.74798 -0.37734 +vn -0.54603 -0.74798 -0.37734 +vn 0.60546 0.64506 -0.46618 +vn -0.60546 0.64506 -0.46618 +vn 0.70754 0.36448 0.60543 +vn -0.70754 0.36448 0.60543 +vn 0.81501 0.36752 -0.44797 +vn -0.81501 0.36752 -0.44797 +vn 0.66401 -0.6526 -0.36497 +vn -0.66401 -0.6526 -0.36497 +vn 0.75542 -0.10728 0.6464 +vn -0.75542 -0.10728 0.6464 +vn 0.36478 0.87722 0.31214 +vn -0.36478 0.87722 0.31214 +vn -0.77064 0.42351 -0.47619 +vn 0.77064 0.42351 -0.47619 +vn 0.71245 0.18645 -0.6765 +vn -0.71245 0.18645 -0.6765 +vn 0.89906 0.03363 -0.43654 +vn 0.89745 -0.0685 -0.43576 +vn -0.89906 0.03363 -0.43654 +vn -0.89745 -0.0685 -0.43576 +vn -0.62437 0.5086 -0.59286 +vn 0.62437 0.5086 -0.59286 +vn 0.89543 0.09577 -0.43478 +vn -0.89543 0.09577 -0.43478 +vn 0.88087 -0.20282 -0.42771 +vn -0.88087 -0.20282 -0.42771 +vn 0.4731 0.80217 -0.36427 +vn -0.4731 0.80217 -0.36427 +vn 0.88928 0.15076 -0.4318 +vn -0.88928 0.15076 -0.4318 +vn 0.134 0.98433 0.11466 +vn -0.134 0.98433 0.11466 +vn -0.45594 0.77762 -0.43293 +vn 0.45594 0.77762 -0.43293 +vn -0.85049 -0.32577 -0.41296 +vn 0.85049 -0.32577 -0.41296 +vn -0.54147 -0.77127 -0.33458 +vn 0.54147 -0.77127 -0.33458 +vn 0.88157 0.19899 -0.42805 +vn -0.88157 0.19899 -0.42805 +vn -0.62815 -0.6973 -0.34526 +vn 0.62815 -0.6973 -0.34526 +vn 0.134 0.98433 -0.11466 +vn -0.134 0.98433 -0.11466 +vn 0.2052 0.95456 -0.21611 +vn -0.2052 0.95456 -0.21611 +vn 0.86877 0.25941 -0.42184 +vn -0.86877 0.25941 -0.42184 +vn 0.22005 0.96066 -0.16943 +vn -0.22005 0.96066 -0.16943 +vn 0.13526 0.97812 -0.15807 +vn 0.12277 0.97808 -0.16821 +vn -0.13526 0.97812 -0.15807 +vn -0.81095 -0.4328 -0.39376 +vn 0.81095 -0.4328 -0.39376 +vn 0.63769 -0.63178 -0.44069 +vn -0.63769 -0.63178 -0.44069 +vn 0.36478 0.87722 -0.31214 +vn -0.36478 0.87722 -0.31214 +vn 0.07961 0.98744 -0.13646 +vn -0.07961 0.98744 -0.13646 +vn -0.30174 0.90932 -0.28651 +vn 0.30174 0.90932 -0.28651 +vn 0.80358 0.39896 -0.44169 +vn -0.80358 0.39896 -0.44169 +vn 0.7802 -0.31714 -0.53917 +vn 0.74203 -0.3565 -0.56771 +vn -0.7802 -0.31714 -0.53917 +vn -0.57742 0.64997 -0.49409 +vn 0.57742 0.64997 -0.49409 +vn -0.29355 0.92884 0.22602 +vn 0.29355 0.92884 0.22602 +vn -0.71294 0.49898 -0.49269 +vn 0.71294 0.49898 -0.49269 +vn -0.7671 -0.52232 -0.37247 +vn 0.7671 -0.52232 -0.37247 +vn -0.60215 0.64997 0.46363 +vn -0.74158 -0.35218 0.57099 +vn 0.60215 0.64997 0.46363 +vn 0.74158 -0.35218 0.57099 +vn 0.58692 -0.7426 -0.3226 +vn -0.58692 -0.7426 -0.3226 +vn 0.85162 0.32211 -0.41351 +vn -0.85162 0.32211 -0.41351 +vn -0.73784 0.36448 0.56811 +vn 0.73784 0.36448 0.56811 +vn -0.78777 -0.10728 0.60656 +vn 0.78777 -0.10728 0.60656 +vn 0.77231 -0.3732 -0.51407 +vn -0.77231 -0.3732 -0.51407 +vn 0.74648 0.18645 -0.63875 +vn -0.74648 0.18645 -0.63875 +vn -0.62863 0.64506 -0.43442 +vn 0.62863 0.64506 -0.43442 +vn -0.65419 0.5086 -0.55978 +vn 0.65419 0.5086 -0.55978 +vn -0.3804 0.87722 0.2929 +vn 0.3804 0.87722 0.2929 +vn 0.72301 -0.59498 -0.35106 +vn -0.72301 -0.59498 -0.35106 +vn 0.47772 0.77762 -0.40878 +vn -0.47772 0.77762 -0.40878 +vn -0.56463 -0.74798 -0.34889 +vn 0.56463 -0.74798 -0.34889 +vn -0.21611 0.95456 -0.2052 +vn 0.21611 0.95456 -0.2052 +vn -0.13973 0.98433 0.10759 +vn 0.13973 0.98433 0.10759 +vn 0.14325 0.97812 -0.15087 +vn -0.14325 0.97812 -0.15087 +vn -0.49121 0.80217 -0.33946 +vn 0.49121 0.80217 -0.33946 +vn 0.13973 0.98433 -0.10759 +vn -0.13973 0.98433 -0.10759 +vn 0.79387 0.42351 -0.43635 +vn -0.79387 0.42351 -0.43635 +vn 0.83661 0.36752 -0.40622 +vn -0.83661 0.36752 -0.40622 +vn 0.6816 -0.6526 -0.33096 +vn -0.6816 -0.6526 -0.33096 +vn -0.31615 0.90932 -0.27052 +vn 0.31615 0.90932 -0.27052 +vn 0.3804 0.87722 -0.2929 +vn -0.3804 0.87722 -0.2929 +vn -0.08973 0.98747 -0.12984 +vn 0.09314 0.98744 -0.12761 +vn -0.22847 0.96066 -0.15789 +vn 0.22847 0.96066 -0.15789 +vn 0.5578 -0.77127 -0.30659 +vn -0.5578 -0.77127 -0.30659 +vn -0.60215 0.64997 -0.46363 +vn 0.60215 0.64997 -0.46363 +vn -0.65942 -0.63178 -0.40746 +vn 0.65942 -0.63178 -0.40746 +vn -0.91816 -0.0685 -0.39025 +vn -0.9198 0.03363 -0.39095 +vn 0.91816 -0.0685 -0.39025 +vn 0.9198 0.03363 -0.39095 +vn 0.30478 0.92884 0.21063 +vn -0.30478 0.92884 0.21063 +vn -0.91609 0.09577 -0.38937 +vn 0.91609 0.09577 -0.38937 +vn -0.90119 -0.20282 -0.38304 +vn 0.90119 -0.20282 -0.38304 +vn 0.76996 -0.35218 0.53209 +vn 0.6252 0.64997 0.43205 +vn -0.6252 0.64997 0.43205 +vn -0.76996 -0.35218 0.53209 +vn -0.64479 -0.6973 -0.31308 +vn 0.64479 -0.6973 -0.31308 +vn -0.00676 0.98864 -0.15013 +vn 0.00676 0.98864 -0.15013 +vn 0.80938 -0.30786 -0.50013 +vn -0.80938 -0.30786 -0.50013 +vn -0.9098 0.15076 -0.3867 +vn 0.9098 0.15076 -0.3867 +vn -0.02045 0.98864 -0.1489 +vn 0.02045 0.98864 -0.1489 +vn -0.73723 0.49898 -0.45554 +vn 0.73723 0.49898 -0.45554 +vn 0.77845 0.18645 -0.59938 +vn -0.77845 0.18645 -0.59938 +vn 0.87011 -0.32578 -0.36983 +vn -0.87011 -0.32578 -0.36983 +vn 0.76608 0.36448 0.52941 +vn -0.76608 0.36448 0.52941 +vn -0.90191 0.19899 -0.38335 +vn 0.90191 0.19899 -0.38335 +vn -0.68221 0.5086 -0.52528 +vn 0.68221 0.5086 -0.52528 +vn 0.15087 0.97812 -0.14325 +vn -0.15087 0.97812 -0.14325 +vn 0.81792 -0.10728 0.56524 +vn -0.81792 -0.10728 0.56524 +vn 0.22643 0.95456 -0.19375 +vn -0.22643 0.95456 -0.19375 +vn -0.49818 0.77762 -0.38358 +vn 0.49818 0.77762 -0.38358 +vn 0.82487 0.39896 -0.40052 +vn -0.82487 0.39896 -0.40052 +vn -0.09247 0.98762 -0.1267 +vn -0.09629 0.98747 -0.12506 +vn -0.03439 0.98864 -0.14632 +vn 0.03439 0.98864 -0.14632 +vn 0.39496 0.87722 0.27294 +vn -0.39496 0.87722 0.27294 +vn -0.88881 0.25941 -0.37778 +vn 0.88881 0.25941 -0.37778 +vn 0.82965 -0.4328 -0.35264 +vn -0.82965 -0.4328 -0.35264 +vn -0.65005 0.64506 -0.40167 +vn 0.65005 0.64506 -0.40167 +vn 0.60247 -0.7426 -0.29253 +vn -0.60247 -0.7426 -0.29253 +vn 0.14508 0.98433 0.10026 +vn -0.14508 0.98433 0.10026 +vn 0.14508 0.98433 -0.10026 +vn -0.14508 0.98433 -0.10026 +vn 0.7848 -0.52232 -0.33357 +vn -0.7848 -0.52232 -0.33357 +vn -0.58165 -0.74798 -0.3197 +vn 0.58165 -0.74798 -0.3197 +vn -0.32969 0.90932 -0.25385 +vn 0.32969 0.90932 -0.25385 +vn -0.0484 0.98864 -0.14231 +vn 0.0484 0.98864 -0.14231 +vn -0.50794 0.80218 -0.31386 +vn 0.50794 0.80218 -0.31386 +vn -0.87127 0.32211 -0.37032 +vn 0.87127 0.32211 -0.37032 +vn 0.80403 -0.37379 -0.4624 +vn -0.80403 -0.37379 -0.4624 +vn 0.39496 0.87722 -0.27294 +vn -0.39496 0.87722 -0.27294 +vn -0.6252 0.64997 -0.43205 +vn 0.6252 0.64997 -0.43205 +vn 0.73969 -0.59498 -0.3144 +vn -0.73969 -0.59498 -0.3144 +vn 0.10262 0.98747 -0.11992 +vn -0.10262 0.98747 -0.11992 +vn -0.23625 0.96066 -0.14598 +vn 0.23625 0.96066 -0.14598 +vn -0.15807 0.97812 -0.13526 +vn 0.15807 0.97812 -0.13526 +vn 0.8149 0.42352 -0.39568 +vn -0.8149 0.42352 -0.39568 +vn 0.31517 0.92884 0.19475 +vn -0.31517 0.92884 0.19475 +vn -0.06227 0.98864 -0.13682 +vn 0.06227 0.98864 -0.13682 +vn 0.6793 -0.63178 -0.37338 +vn -0.6793 -0.63178 -0.37338 +vn 0.80825 0.18645 -0.55855 +vn -0.80825 0.18645 -0.55855 +vn 0.23612 0.95456 -0.18181 +vn -0.23612 0.95456 -0.18181 +vn 0.64649 0.64997 0.39948 +vn 0.79619 -0.35219 0.49198 +vn -0.64649 0.64997 0.39948 +vn -0.79619 -0.35219 0.49198 +vn -0.70832 0.5086 -0.4895 +vn 0.70832 0.5086 -0.4895 +vn -0.85591 0.36753 -0.3638 +vn 0.85591 0.36753 -0.3638 +vn 0.69732 -0.6526 -0.29639 +vn -0.69732 -0.6526 -0.29639 +vn -0.57257 -0.77127 -0.27802 +vn 0.57257 -0.77127 -0.27802 +vn 0.51724 0.77762 -0.35745 +vn -0.51724 0.77762 -0.35745 +vn 0.79218 0.36448 0.4895 +vn -0.79218 0.36448 0.4895 +vn 0.83165 -0.31527 -0.45712 +vn -0.83165 -0.31527 -0.45712 +vn 0.84579 -0.10728 0.52262 +vn -0.84579 -0.10728 0.52262 +vn 0.75945 0.49898 -0.41743 +vn -0.75945 0.49898 -0.41743 +vn 0.40841 0.87722 0.25236 +vn -0.40841 0.87722 0.25236 +vn 0.10868 0.98747 -0.11446 +vn 0.10502 0.98762 -0.11649 +vn -0.10502 0.98762 -0.11649 +vn -0.10868 0.98747 -0.11446 +vn 0.15002 0.98433 0.0927 +vn -0.15002 0.98433 0.0927 +vn -0.65967 -0.6973 -0.28038 +vn 0.65967 -0.6973 -0.28038 +vn -0.34231 0.90932 -0.23656 +vn 0.34231 0.90932 -0.23656 +vn 0.66964 0.64506 -0.36807 +vn -0.66964 0.64506 -0.36807 +vn -0.15002 0.98433 -0.0927 +vn 0.15002 0.98433 -0.0927 +vn 0.93806 0.03363 -0.34483 +vn 0.93639 -0.0685 -0.34422 +vn -0.93639 -0.0685 -0.34422 +vn -0.93806 0.03363 -0.34483 +vn 0.93428 0.09577 -0.34344 +vn -0.93428 0.09577 -0.34344 +vn -0.91909 -0.20282 -0.33786 +vn 0.91909 -0.20282 -0.33786 +vn 0.07575 0.98864 -0.12985 +vn -0.07575 0.98864 -0.12985 +vn -0.92786 0.15076 -0.34108 +vn 0.92786 0.15076 -0.34108 +vn -0.8439 0.39896 -0.35869 +vn 0.8439 0.39896 -0.35869 +vn -0.40841 0.87722 -0.25236 +vn 0.40841 0.87722 -0.25236 +vn 0.52325 0.80218 -0.28761 +vn -0.52325 0.80218 -0.28761 +vn -0.16821 0.97808 -0.12277 +vn -0.16347 0.97849 -0.12587 +vn 0.16484 0.97812 -0.12692 +vn -0.88739 -0.32578 -0.3262 +vn 0.88739 -0.32578 -0.3262 +vn 0.91982 0.19899 -0.33813 +vn -0.91982 0.19899 -0.33813 +vn -0.59706 -0.74798 -0.28991 +vn 0.59706 -0.74798 -0.28991 +vn -0.64649 0.64997 -0.39948 +vn 0.64649 0.64997 -0.39948 +vn 0.61637 -0.7426 -0.26198 +vn -0.61637 -0.7426 -0.26198 +vn 0.90646 0.25941 -0.33322 +vn -0.90646 0.25941 -0.33322 +vn -0.84613 -0.43281 -0.31104 +vn 0.84613 -0.43281 -0.31104 +vn 0.24337 0.96066 -0.13377 +vn -0.24337 0.96066 -0.13377 +vn 0.24516 0.95456 -0.16942 +vn -0.24516 0.95456 -0.16942 +vn 0.83578 0.18645 -0.51644 +vn -0.83578 0.18645 -0.51644 +vn -0.11446 0.98747 -0.10868 +vn 0.11446 0.98747 -0.10868 +vn -0.73245 0.5086 -0.45259 +vn 0.73245 0.5086 -0.45259 +vn -0.80038 -0.52233 -0.29422 +vn 0.80038 -0.52233 -0.29422 +vn -0.32467 0.92884 0.17845 +vn 0.32467 0.92884 0.17845 +vn -0.53486 0.77762 -0.3305 +vn 0.53486 0.77762 -0.3305 +vn -0.8202 -0.35219 0.45082 +vn -0.66598 0.64998 0.36606 +vn 0.66598 0.64998 0.36606 +vn 0.8202 -0.35219 0.45082 +vn 0.83754 -0.35893 -0.41193 +vn -0.83754 -0.35893 -0.41193 +vn 0.88857 0.32211 -0.32664 +vn -0.88857 0.32211 -0.32664 +vn -0.81606 0.36448 0.44855 +vn 0.81606 0.36448 0.44855 +vn -0.69729 -0.63178 -0.33858 +vn 0.69729 -0.63178 -0.33858 +vn -0.87129 -0.10728 0.4789 +vn 0.87129 -0.10728 0.4789 +vn -0.8337 0.42352 -0.35436 +vn 0.8337 0.42352 -0.35436 +vn -0.75438 -0.59499 -0.27731 +vn 0.75438 -0.59499 -0.27731 +vn -0.42073 0.87722 0.23125 +vn 0.42073 0.87722 0.23125 +vn 0.84629 -0.33901 -0.41092 +vn -0.83962 -0.35892 -0.40769 +vn -0.08863 0.98864 -0.12143 +vn 0.08863 0.98864 -0.12143 +vn -0.35397 0.90932 -0.21872 +vn 0.35397 0.90932 -0.21872 +vn 0.77957 0.49898 -0.37853 +vn -0.77957 0.49898 -0.37853 +vn -0.84421 -0.33897 -0.41522 +vn -0.15455 0.98433 0.08495 +vn 0.15455 0.98433 0.08495 +vn -0.58578 -0.77128 -0.24898 +vn 0.58578 -0.77128 -0.24898 +vn -0.1666 0.9785 -0.12159 +vn -0.17115 0.97812 -0.11828 +vn 0.17115 0.97812 -0.11828 +vn 0.15455 0.98433 -0.08495 +vn -0.15455 0.98433 -0.08495 +vn 0.8729 0.36753 -0.32088 +vn -0.8729 0.36753 -0.32088 +vn -0.71117 -0.65261 -0.26143 +vn 0.71117 -0.65261 -0.26143 +vn 0.68738 0.64506 -0.33376 +vn -0.68738 0.64506 -0.33376 +vn 0.42073 0.87722 -0.23125 +vn -0.42073 0.87722 -0.23125 +vn -0.11649 0.98762 -0.10502 +vn -0.11992 0.98747 -0.10262 +vn 0.11992 0.98747 -0.10262 +vn 0.11649 0.98762 -0.10502 +vn -0.66598 0.64998 -0.36606 +vn 0.66598 0.64998 -0.36606 +vn 0.53712 0.80218 -0.2608 +vn -0.53712 0.80218 -0.2608 +vn -0.25763 0.95448 -0.1503 +vn -0.24783 0.95662 -0.15314 +vn 0.25351 0.95456 -0.15665 +vn -0.67276 -0.6973 -0.24731 +vn 0.67276 -0.6973 -0.24731 +vn 0.86098 0.18645 -0.47324 +vn -0.86098 0.18645 -0.47324 +vn 0.24982 0.96066 -0.1213 +vn -0.24982 0.96066 -0.1213 +vn -0.75454 0.5086 -0.41473 +vn 0.75454 0.5086 -0.41473 +vn 0.61083 -0.74798 -0.25963 +vn -0.61083 -0.74798 -0.25963 +vn 0.86066 0.39896 -0.31638 +vn -0.86066 0.39896 -0.31638 +vn 0.55099 0.77762 -0.30285 +vn -0.55099 0.77762 -0.30285 +vn -0.33327 0.92884 0.16182 +vn 0.33327 0.92884 0.16182 +vn -0.62861 -0.7426 -0.23108 +vn 0.62861 -0.7426 -0.23108 +vn -0.95386 0.03363 -0.29837 +vn -0.95215 -0.0685 -0.29784 +vn 0.95215 -0.0685 -0.29784 +vn 0.95386 0.03363 -0.29837 +vn -0.68363 0.64998 0.33194 +vn -0.84193 -0.35219 0.4088 +vn 0.68363 0.64998 0.33194 +vn 0.84193 -0.35219 0.4088 +vn -0.95001 0.09577 -0.29717 +vn 0.95001 0.09577 -0.29717 +vn 0.93456 -0.20282 -0.29234 +vn -0.93456 -0.20282 -0.29234 +vn -0.10066 0.98864 -0.11166 +vn 0.10066 0.98864 -0.11166 +vn 0.94349 0.15076 -0.29513 +vn -0.94349 0.15076 -0.29513 +vn -0.83768 0.36448 0.40674 +vn 0.83768 0.36448 0.40674 +vn 0.90233 -0.32578 -0.28226 +vn -0.90233 -0.32578 -0.28226 +vn -0.00795 0.98426 -0.17653 +vn 0.00795 0.98426 -0.17653 +vn -0.89437 -0.10728 0.43427 +vn 0.89437 -0.10728 0.43427 +vn -0.93531 0.19899 -0.29257 +vn 0.93531 0.19899 -0.29257 +vn -0.36464 0.90932 -0.20042 +vn 0.36464 0.90932 -0.20042 +vn -0.02404 0.98426 -0.17507 +vn 0.02404 0.98426 -0.17507 +vn 0.12506 0.98747 -0.09629 +vn -0.12761 0.98744 -0.09314 +vn 0.25154 0.95666 -0.14674 +vn -0.17987 0.97808 -0.10493 +vn 0.17987 0.97808 -0.10493 +vn 0.43187 0.87722 0.2097 +vn -0.43187 0.87722 0.2097 +vn 0.71338 -0.63178 -0.30322 +vn -0.71338 -0.63178 -0.30322 +vn -0.92172 0.25941 -0.28832 +vn 0.92172 0.25941 -0.28832 +vn 0.86037 -0.43281 -0.26913 +vn -0.86037 -0.43281 -0.26913 +vn 0.15864 0.98433 0.07703 +vn -0.15864 0.98433 0.07703 +vn -0.04044 0.98426 -0.17204 +vn 0.04044 0.98426 -0.17204 +vn 0.86868 -0.33024 -0.36923 +vn 0.84421 -0.33897 -0.41522 +vn -0.86868 -0.33024 -0.36923 +vn -0.79756 0.49898 -0.339 +vn 0.79756 0.49898 -0.339 +vn -0.15864 0.98433 -0.07703 +vn 0.15864 0.98433 -0.07703 +vn 0.85026 0.42352 -0.31256 +vn -0.85026 0.42352 -0.31256 +vn 0.81386 -0.52233 -0.25458 +vn -0.81386 -0.52233 -0.25458 +vn 0.86051 -0.36371 -0.35671 +vn -0.86051 -0.36371 -0.35671 +vn -0.43187 0.87722 -0.2097 +vn 0.43187 0.87722 -0.2097 +vn -0.90353 0.32211 -0.28263 +vn 0.90353 0.32211 -0.28263 +vn 0.25526 0.95664 -0.1403 +vn -0.25154 0.95666 -0.14674 +vn -0.26116 0.95456 -0.14354 +vn -0.05691 0.98426 -0.16732 +vn 0.05691 0.98426 -0.16732 +vn -0.70324 0.64506 -0.29891 +vn 0.70324 0.64506 -0.29891 +vn -0.59741 -0.77128 -0.21961 +vn 0.59741 -0.77128 -0.21961 +vn -0.68363 0.64998 -0.33194 +vn 0.68363 0.64998 -0.33194 +vn 0.76708 -0.59499 -0.23995 +vn -0.76708 -0.59499 -0.23995 +vn -0.54951 0.80218 -0.23356 +vn 0.54951 0.80218 -0.23356 +vn 0.88379 0.18645 -0.42913 +vn -0.88379 0.18645 -0.42913 +vn -0.77453 0.5086 -0.37608 +vn 0.77453 0.5086 -0.37608 +vn -0.8876 0.36753 -0.27765 +vn 0.8876 0.36753 -0.27765 +vn 0.72314 -0.65261 -0.2262 +vn -0.72314 -0.65261 -0.2262 +vn -0.56559 0.77762 -0.27462 +vn 0.56559 0.77762 -0.27462 +vn 0.12984 0.98747 -0.08973 +vn 0.1267 0.98762 -0.09247 +vn -0.07321 0.98426 -0.16087 +vn 0.07321 0.98426 -0.16087 +vn -0.25558 0.96066 -0.10863 +vn 0.25558 0.96066 -0.10863 +vn -0.11166 0.98864 -0.10066 +vn 0.11166 0.98864 -0.10066 +vn 0.25763 0.95448 -0.1503 +vn 0.34096 0.92884 0.14492 +vn -0.34096 0.92884 0.14492 +vn -0.62296 -0.74798 -0.229 +vn 0.62296 -0.74798 -0.229 +vn 0.86135 -0.35219 0.36611 +vn 0.6994 0.64998 0.29727 +vn -0.86135 -0.35219 0.36611 +vn -0.6994 0.64998 0.29727 +vn -0.3743 0.90932 -0.18174 +vn 0.3743 0.90932 -0.18174 +vn 0.68409 -0.6973 -0.21399 +vn -0.68409 -0.6973 -0.21399 +vn 0.85701 0.36449 0.36426 +vn -0.85701 0.36449 0.36426 +vn 0.91501 -0.10728 0.38892 +vn -0.91501 -0.10728 0.38892 +vn -0.44183 0.87722 0.1878 +vn 0.44183 0.87722 0.1878 +vn -0.87515 0.39896 -0.27375 +vn 0.87515 0.39896 -0.27375 +vn 0.08907 0.98426 -0.15267 +vn -0.08907 0.98426 -0.15267 +vn -0.1623 0.98433 0.06898 +vn 0.1623 0.98433 0.06898 +vn 0.63919 -0.74261 -0.19994 +vn -0.63919 -0.74261 -0.19994 +vn -0.72754 -0.63178 -0.26745 +vn 0.72754 -0.63178 -0.26745 +vn 0.1623 0.98433 -0.06898 +vn -0.1623 0.98433 -0.06898 +vn 0.26807 0.95456 -0.13016 +vn -0.27147 0.95449 -0.12354 +vn -0.26225 0.95656 -0.12734 +vn 0.89151 -0.31273 -0.32772 +vn -0.89151 -0.31273 -0.32772 +vn -0.44183 0.87722 -0.1878 +vn 0.44183 0.87722 -0.1878 +vn 0.81339 0.49898 -0.299 +vn -0.81339 0.49898 -0.299 +vn 0.9672 0.03363 -0.25176 +vn -0.9672 0.03363 -0.25176 +vn -0.96548 -0.0685 -0.25131 +vn 0.96548 -0.0685 -0.25131 +vn 0.13646 0.98744 -0.07961 +vn -0.13646 0.98744 -0.07961 +vn 0.95479 -0.01907 -0.29668 +vn 0.96407 0.02441 -0.26453 +vn 0.96436 0.05937 -0.25784 +vn -0.9633 0.09577 -0.25075 +vn 0.96162 0.09578 -0.25711 +vn -0.94764 -0.20282 -0.24667 +vn 0.94764 -0.20282 -0.24667 +vn -0.6994 0.64998 -0.29727 +vn 0.6994 0.64998 -0.29727 +vn -0.95669 0.15076 -0.24903 +vn 0.94591 0.04418 -0.32141 +vn 0.95647 0.07853 -0.28107 +vn 0.9589 0.10296 -0.26441 +vn 0.9588 0.11352 -0.2604 +vn 0.95822 0.1228 -0.25832 +vn 0.95449 0.15079 -0.25732 +vn -0.91496 -0.32578 -0.23816 +vn 0.91496 -0.32578 -0.23816 +vn -0.9484 0.19899 -0.24687 +vn 0.94667 0.12364 -0.29754 +vn 0.95193 0.14295 -0.27092 +vn 0.9526 0.16075 -0.25831 +vn 0.95182 0.17216 -0.25378 +vn 0.94996 0.18403 -0.25242 +vn 0.94713 0.19901 -0.25167 +vn 0.7172 0.64507 -0.26364 +vn -0.7172 0.64507 -0.26364 +vn -0.86457 0.42352 -0.27045 +vn 0.86457 0.42352 -0.27045 +vn 0.93462 0.25941 -0.24328 +vn -0.93462 0.25941 -0.24328 +vn 0.94762 0.20292 -0.24666 +vn 0.90418 0.18645 -0.38431 +vn -0.90418 0.18645 -0.38431 +vn -0.87241 -0.43281 -0.22709 +vn 0.87241 -0.43281 -0.22709 +vn -0.79239 0.50861 -0.3368 +vn 0.79239 0.50861 -0.3368 +vn 0.57863 0.77762 -0.24594 +vn -0.57863 0.77762 -0.24594 +vn 0.60747 -0.77128 -0.19002 +vn -0.60747 -0.77128 -0.19002 +vn 0.56042 0.80218 -0.20601 +vn -0.56042 0.80218 -0.20601 +vn 0.1042 0.98425 -0.14278 +vn -0.1042 0.98425 -0.14278 +vn 0.26524 0.9566 -0.12071 +vn -0.18953 0.97808 -0.08625 +vn 0.18953 0.97808 -0.08625 +vn 0.87814 -0.3723 -0.30045 +vn -0.87814 -0.3723 -0.30045 +vn -0.82524 -0.52233 -0.21481 +vn 0.82524 -0.52233 -0.21481 +vn 0.91617 0.32211 -0.23848 +vn -0.91617 0.32211 -0.23848 +vn 0.26065 0.96067 -0.09582 +vn -0.26065 0.96067 -0.09582 +vn -0.38293 0.90932 -0.16276 +vn 0.38293 0.90932 -0.16276 +vn 0.12143 0.98864 -0.08863 +vn -0.12143 0.98864 -0.08863 +vn -0.77781 -0.59499 -0.20246 +vn 0.77781 -0.59499 -0.20246 +vn -0.34772 0.92884 0.12782 +vn 0.34772 0.92884 0.12782 +vn -0.87846 -0.35219 0.32292 +vn 0.71328 0.64998 0.2622 +vn 0.87846 -0.35219 0.32292 +vn -0.71328 0.64998 0.2622 +vn -0.87402 0.36449 0.32129 +vn 0.87402 0.36449 0.32129 +vn -0.93318 -0.10728 0.34304 +vn 0.93318 -0.10728 0.34304 +vn -0.63345 -0.74799 -0.19815 +vn 0.63345 -0.74799 -0.19815 +vn 0.90002 0.36753 -0.23427 +vn -0.90002 0.36753 -0.23427 +vn -0.73326 -0.65261 -0.19087 +vn 0.73326 -0.65261 -0.19087 +vn 0.4506 0.87722 0.16564 +vn -0.4506 0.87722 0.16564 +vn 0.26825 0.95658 -0.11402 +vn -0.26524 0.9566 -0.12071 +vn -0.27426 0.95457 -0.11657 +vn -0.16552 0.98433 0.06085 +vn 0.16552 0.98433 0.06085 +vn 0.16552 0.98433 -0.06085 +vn -0.16552 0.98433 -0.06085 +vn -0.69366 -0.69731 -0.18056 +vn 0.69366 -0.69731 -0.18056 +vn 0.11836 0.98425 -0.13128 +vn -0.11836 0.98425 -0.13128 +vn -0.4506 0.87722 -0.16564 +vn 0.4506 0.87722 -0.16564 +vn 0.99318 0.11397 -0.02451 +vn 0.99296 0.1142 -0.03144 +vn 0.99261 0.11492 -0.03909 +vn 0.02284 0.11042 -0.99362 +vn 0.99341 0.11421 -0.00913 +vn 0.0756 -0.09812 -0.9923 +vn 0.07827 -0.09513 -0.99238 +vn 0.99335 0.11514 -0.00229 +vn 0.73979 -0.63179 -0.23141 +vn -0.73979 -0.63179 -0.23141 +vn 0.99288 0.11441 -0.03314 +vn 0.02364 0.11125 -0.99351 +vn 0.1008 -0.09142 -0.9907 +vn 0.10192 -0.08902 -0.9908 +vn 0.0344 0.11288 -0.99301 +vn -0.71328 0.64998 -0.2622 +vn 0.71328 0.64998 -0.2622 +vn 0.8874 0.39897 -0.23099 +vn -0.8874 0.39897 -0.23099 +vn 0.90703 -0.31112 -0.28373 +vn -0.90703 -0.31112 -0.28373 +vn -0.82709 0.49899 -0.25872 +vn 0.82709 0.49899 -0.25872 +vn 0.23686 -0.16864 -0.9568 +vn 0.13033 -0.29671 -0.94603 +vn 0.99175 0.11757 -0.05109 +vn 0.99141 0.11861 -0.05518 +vn 0.99108 0.11962 -0.05871 +vn -0.02843 0.30897 -0.95065 +vn 0.04823 0.1198 -0.99163 +vn 0.13109 -0.08273 -0.98791 +vn 0.13265 -0.07901 -0.98801 +vn 0.03677 0.11755 -0.99239 +vn -0.64813 -0.74261 -0.16871 +vn 0.64813 -0.74261 -0.16871 +vn 0.14422 -0.29363 -0.94498 +vn -0.02198 0.31468 -0.94894 +vn 0.16743 -0.28966 -0.94237 +vn 0.16756 -0.28938 -0.94243 +vn -0.02823 0.31375 -0.94909 +vn 0.92213 0.18645 -0.33898 +vn -0.92213 0.18645 -0.33898 +vn 0.27147 0.95449 -0.12354 +vn -0.80813 0.50861 -0.29707 +vn 0.80813 0.50861 -0.29707 +vn 0.05073 0.12523 -0.99083 +vn 0.06206 0.12796 -0.98984 +vn 0.16258 -0.07108 -0.98413 +vn 0.16442 -0.06603 -0.98418 +vn -0.59012 0.77763 -0.21693 +vn 0.59012 0.77763 -0.21693 +vn -0.72928 0.64507 -0.22812 +vn 0.72928 0.64507 -0.22812 +vn 0.21211 -0.27833 -0.93677 +vn 0.21293 -0.27638 -0.93716 +vn -0.03188 0.31879 -0.94729 +vn -0.0244 0.32023 -0.94703 +vn 0.84946 0.24903 -0.4652 +vn -0.02828 0.32541 -0.94515 +vn -0.03698 0.32337 -0.94555 +vn 0.06457 0.13413 -0.98886 +vn 0.25868 -0.26229 -0.92967 +vn 0.26002 -0.25863 -0.93032 +vn 0.92146 0.22169 -0.319 +vn 0.19447 -0.05659 -0.97928 +vn 0.19642 -0.05022 -0.97923 +vn 0.07546 0.13721 -0.98766 +vn -0.56985 0.80218 -0.17825 +vn 0.56985 0.80218 -0.17825 +vn -0.39053 0.90933 -0.14356 +vn 0.39053 0.90933 -0.14356 +vn 0.87667 0.42352 -0.2282 +vn -0.87667 0.42352 -0.2282 +vn 0.15729 -0.38134 -0.91095 +vn 0.96193 -0.01006 -0.2731 +vn 0.14379 0.98744 -0.06544 +vn -0.14379 0.98744 -0.06544 +vn 0.27076 -0.3821 -0.88357 +vn 0.18534 -0.48244 -0.8561 +vn 0.97363 0.00393 -0.22812 +vn 0.99007 0.12332 -0.06754 +vn 0.98984 0.12416 -0.06927 +vn 0.98969 0.12475 -0.0704 +vn 0.9896 0.1251 -0.07102 +vn -0.0702 0.50159 -0.86225 +vn 0.93647 0.21531 -0.2769 +vn 0.3059 -0.24169 -0.92088 +vn 0.30754 -0.23633 -0.92172 +vn 0.07786 0.14411 -0.98649 +vn -0.04369 0.32735 -0.94389 +vn -0.03367 0.33011 -0.94334 +vn -0.26504 0.96067 -0.08291 +vn 0.26504 0.96067 -0.08291 +vn 0.08793 0.14736 -0.98517 +vn 0.2258 -0.03956 -0.97337 +vn 0.22764 -0.03192 -0.97322 +vn 0.97351 -0.01604 -0.22809 +vn 0.94853 -0.06828 -0.30924 +vn -0.9764 -0.0685 -0.20481 +vn -0.97815 0.03363 -0.20518 +vn -0.06676 0.50404 -0.8611 +vn 0.23043 -0.47222 -0.85083 +vn 0.22979 -0.47345 -0.85032 +vn -0.08391 0.50138 -0.86115 +vn 0.94507 0.21179 -0.24899 +vn -0.9742 0.09577 -0.20435 +vn -0.61597 -0.77128 -0.16034 +vn 0.61597 -0.77128 -0.16034 +vn 0.0101 0.97445 -0.22439 +vn -0.0101 0.97445 -0.22439 +vn 0.96773 -0.13517 -0.21269 +vn 0.96898 -0.10936 -0.22164 +vn 0.9649 -0.07886 -0.25049 +vn 0.9541 -0.21385 -0.20968 +vn 0.95836 -0.20282 -0.20103 +vn -0.95836 -0.20282 -0.20103 +vn 0.23944 -0.42654 -0.8722 +vn -0.96751 0.15076 -0.20295 +vn 0.03056 0.97444 -0.22255 +vn -0.03056 0.97444 -0.22255 +vn 0.92531 -0.32578 -0.19409 +vn -0.92531 -0.32578 -0.19409 +vn -0.10481 0.50348 -0.85763 +vn 0.28664 -0.45681 -0.84212 +vn 0.28688 -0.4563 -0.84231 +vn -0.07856 0.50868 -0.85736 +vn 0.35358 0.92884 0.1106 +vn -0.35358 0.92884 0.1106 +vn -0.12985 0.98864 -0.07575 +vn 0.12985 0.98864 -0.07575 +vn -0.95913 0.19899 -0.20119 +vn -0.72529 0.64998 0.22688 +vn 0.89325 -0.35219 0.27941 +vn 0.72529 0.64998 0.22688 +vn -0.89325 -0.35219 0.27941 +vn -0.04073 0.33417 -0.94163 +vn -0.05211 0.33057 -0.94234 +vn 0.09008 0.15494 -0.98381 +vn 0.35228 -0.21697 -0.9104 +vn 0.35396 -0.20994 -0.91139 +vn 0.13128 0.98425 -0.11836 +vn -0.13128 0.98425 -0.11836 +vn 0.05141 0.97444 -0.21869 +vn -0.05141 0.97444 -0.21869 +vn -0.2797 0.95457 -0.10282 +vn 0.2797 0.95457 -0.10282 +vn 0.95029 0.21277 -0.22733 +vn 0.95118 0.21866 -0.21783 +vn -0.9452 0.25942 -0.19826 +vn 0.94138 0.25948 -0.21559 +vn 0.25547 -0.02044 -0.9666 +vn 0.25698 -0.01158 -0.96635 +vn 0.09893 0.15817 -0.98244 +vn 0.88874 0.36449 0.278 +vn -0.88874 0.36449 0.278 +vn 0.88228 -0.43281 -0.18507 +vn -0.88228 -0.43281 -0.18507 +vn 0.20059 -0.50655 -0.83855 +vn 0.94889 -0.10728 0.29682 +vn -0.94889 -0.10728 0.29682 +vn -0.10005 0.51044 -0.85407 +vn -0.12855 0.5035 -0.85438 +vn 0.34492 -0.43511 -0.83169 +vn 0.34586 -0.4328 -0.83251 +vn 0.45819 0.87722 0.14333 +vn -0.45819 0.87722 0.14333 +vn 0.89748 -0.36627 -0.24573 +vn -0.89748 -0.36627 -0.24573 +vn 0.39618 -0.18889 -0.89853 +vn 0.39764 -0.18025 -0.89966 +vn 0.10068 0.16638 -0.98091 +vn -0.06228 0.33288 -0.94091 +vn -0.04957 0.33743 -0.94005 +vn 0.83458 -0.52233 -0.17506 +vn -0.83458 -0.52233 -0.17506 +vn 0.07234 0.97444 -0.2127 +vn -0.07234 0.97444 -0.2127 +vn 0.16831 0.98433 0.05265 +vn -0.16831 0.98433 0.05265 +vn 0.40355 -0.4073 -0.8193 +vn 0.40497 -0.40317 -0.82064 +vn -0.15502 0.5012 -0.85133 +vn -0.12441 0.51007 -0.85109 +vn -0.92654 0.32212 -0.19435 +vn 0.94469 0.26132 -0.19816 +vn 0.92654 0.32212 -0.19435 +vn 0.10788 0.1693 -0.97964 +vn 0.28234 0.00015 -0.95931 +vn 0.28328 0.01017 -0.95898 +vn 0.16831 0.98433 -0.05265 +vn -0.16831 0.98433 -0.05265 +vn -0.64231 -0.74799 -0.16719 +vn 0.64231 -0.74799 -0.16719 +vn 0.78661 -0.595 -0.165 +vn -0.78661 -0.595 -0.165 +vn 0.45819 0.87722 -0.14333 +vn -0.45819 0.87722 -0.14333 +vn -0.06022 0.33972 -0.9386 +vn -0.07414 0.33416 -0.9396 +vn 0.10907 0.17808 -0.97795 +vn 0.43601 -0.15847 -0.88588 +vn 0.43696 -0.14832 -0.88717 +vn -0.15151 0.50735 -0.84832 +vn -0.18392 0.49641 -0.84838 +vn 0.46053 -0.37402 -0.805 +vn 0.46217 -0.3681 -0.80678 +vn 0.89286 0.30807 -0.32848 +vn -0.72529 0.64998 -0.22688 +vn 0.72529 0.64998 -0.22688 +vn -0.27614 0.95652 -0.09392 +vn 0.27614 0.95652 -0.09392 +vn -0.19713 0.97808 -0.06705 +vn 0.19713 0.97808 -0.06705 +vn 0.21072 -0.57237 -0.79246 +vn 0.09306 0.97443 -0.20449 +vn -0.09306 0.97443 -0.20449 +vn 0.11424 0.1804 -0.97694 +vn 0.30531 0.02151 -0.95201 +vn 0.30544 0.03259 -0.95165 +vn -0.9102 0.36754 -0.19092 +vn 0.9102 0.36754 -0.19092 +vn 0.31458 -0.55178 -0.77238 +vn 0.23089 -0.6444 -0.729 +vn 0.98974 0.12447 -0.07016 +vn 0.99022 0.12213 -0.06749 +vn -0.1076 0.66554 -0.73857 +vn 0.74155 -0.65262 -0.15555 +vn -0.74155 -0.65262 -0.15555 +vn 0.51381 -0.33643 -0.78918 +vn 0.51539 -0.32878 -0.79138 +vn -0.21475 0.48902 -0.84543 +vn -0.18105 0.50208 -0.84566 +vn 0.28577 -0.62964 -0.72242 +vn 0.28461 -0.63155 -0.7212 +vn -0.12988 0.6657 -0.73483 +vn -0.09743 0.67098 -0.73504 +vn -0.75014 -0.63179 -0.19526 +vn 0.75014 -0.63179 -0.19526 +vn 0.93766 0.18645 -0.29331 +vn -0.93766 0.18645 -0.29331 +vn -0.82173 0.50861 -0.25704 +vn 0.82173 0.50861 -0.25704 +vn 0.11473 0.18969 -0.97512 +vn -0.08753 0.3343 -0.93839 +vn 0.47036 -0.12694 -0.8733 +vn 0.47055 -0.11537 -0.8748 +vn -0.07262 0.34092 -0.93728 +vn 0.60005 0.77763 -0.1877 +vn -0.60005 0.77763 -0.1877 +vn 0.92761 0.28148 -0.24558 +vn 0.91544 -0.32433 -0.23829 +vn -0.91544 -0.32433 -0.23829 +vn 0.35038 -0.60895 -0.71163 +vn 0.35017 -0.60932 -0.71142 +vn -0.16656 0.66351 -0.72939 +vn -0.12325 0.67262 -0.72965 +vn 0.27908 -0.60154 -0.74851 +vn 0.83866 0.49899 -0.2183 +vn -0.83866 0.49899 -0.2183 +vn 0.32345 0.04283 -0.94528 +vn 0.32256 0.0549 -0.94496 +vn 0.11757 0.19108 -0.97451 +vn 0.7015 -0.69731 -0.14715 +vn -0.7015 -0.69731 -0.14715 +vn -0.21252 0.49415 -0.843 +vn -0.2468 0.47905 -0.84238 +vn 0.56154 -0.29606 -0.77267 +vn 0.56276 -0.28679 -0.77528 +vn -0.16085 0.66987 -0.72485 +vn -0.20714 0.65769 -0.72425 +vn 0.41683 -0.58074 -0.69928 +vn 0.41745 -0.57949 -0.69995 +vn 0.73948 0.64507 -0.19249 +vn -0.73948 0.64507 -0.19249 +vn -0.39711 0.90933 -0.12422 +vn 0.39711 0.90933 -0.12422 +vn 0.11322 0.97443 -0.19407 +vn -0.11322 0.97443 -0.19407 +vn -0.08658 0.34092 -0.9361 +vn 0.4982 -0.09558 -0.86178 +vn 0.49737 -0.08268 -0.86359 +vn 0.11722 0.2008 -0.97259 +vn -0.10215 0.33328 -0.93728 +vn -0.89743 0.39897 -0.18825 +vn 0.89743 0.39897 -0.18825 +vn 0.83515 -0.3279 -0.44159 +vn 0.48304 -0.54525 -0.68511 +vn 0.48427 -0.54234 -0.68655 +vn -0.25117 0.64785 -0.71917 +vn -0.20235 0.66344 -0.72035 +vn 0.14278 0.98425 -0.1042 +vn -0.14278 0.98425 -0.1042 +vn 0.24607 -0.66581 -0.70438 +vn 0.92583 -0.25144 -0.28217 +vn 0.65546 -0.74261 -0.13749 +vn -0.65546 -0.74261 -0.13749 +vn 0.57782 0.80219 -0.15041 +vn -0.57782 0.80219 -0.15041 +vn 0.12101 0.20285 -0.97171 +vn 0.34561 0.06937 -0.93581 +vn 0.33064 0.08976 -0.93948 +vn -0.24518 0.48356 -0.84027 +vn -0.27914 0.46672 -0.8392 +vn 0.60229 -0.25471 -0.75655 +vn 0.6029 -0.24391 -0.75961 +vn -0.2473 0.65293 -0.71591 +vn -0.29788 0.63372 -0.71391 +vn 0.54661 -0.50336 -0.66921 +vn 0.54822 -0.4988 -0.67131 +vn 0.26875 0.96067 -0.06996 +vn -0.26875 0.96067 -0.06996 +vn 0.10897 0.21828 -0.96978 +vn 0.53139 -0.05541 -0.84531 +vn 0.51725 -0.03347 -0.85518 +vn -0.10179 0.33967 -0.93502 +vn -0.12246 0.32848 -0.93654 +vn -0.28441 0.95457 -0.08897 +vn 0.28441 0.95457 -0.08897 +vn -0.35852 0.92884 0.09332 +vn 0.35852 0.92884 0.09332 +vn -0.28629 0.44024 -0.85101 +vn 0.63522 -0.21414 -0.74205 +vn 0.635 -0.20192 -0.74566 +vn 0.73544 0.64999 0.19143 +vn 0.90574 -0.3522 0.23576 +vn -0.90574 -0.3522 0.23576 +vn -0.73544 0.64999 0.19143 +vn -0.88659 0.42353 -0.18597 +vn 0.88659 0.42353 -0.18597 +vn 0.60523 -0.45663 -0.65206 +vn 0.60694 -0.45045 -0.65476 +vn -0.34616 0.61524 -0.70827 +vn -0.29491 0.63805 -0.71128 +vn 0.13246 0.97443 -0.18149 +vn -0.13246 0.97443 -0.18149 +vn -0.90118 0.36449 0.23458 +vn 0.90118 0.36449 0.23458 +vn -0.96217 -0.10728 0.25045 +vn 0.96217 -0.10728 0.25045 +vn 0.13682 0.98864 -0.06227 +vn -0.13682 0.98864 -0.06227 +vn 0.62293 -0.77128 -0.13067 +vn -0.62293 -0.77128 -0.13067 +vn -0.4646 0.87722 0.12093 +vn 0.4646 0.87722 0.12093 +vn -0.02567 0.95971 -0.27981 +vn -0.01239 0.96129 -0.27525 +vn 0.0126 0.95995 -0.27988 +vn 0.17066 0.98433 0.04442 +vn -0.17066 0.98433 0.04442 +vn -0.34405 0.61873 -0.70626 +vn 0.65698 -0.40711 -0.63453 +vn 0.65854 -0.3994 -0.63781 +vn -0.39461 0.59267 -0.70216 +vn -0.02516 0.96134 -0.2742 +vn -0.03812 0.95995 -0.27757 +vn 0.03751 0.96124 -0.27313 +vn 0.02516 0.96134 -0.2742 +vn 0.93772 0.2763 -0.21056 +vn 0.25166 -0.70613 -0.66185 +vn 0.94448 -0.23892 -0.22556 +vn -0.29539 0.46424 -0.835 +vn -0.35314 0.4286 -0.83163 +vn 0.67316 -0.1618 -0.72158 +vn 0.66245 -0.14146 -0.73563 +vn -0.12891 0.33701 -0.93263 +vn -0.17066 0.98433 -0.04442 +vn 0.17066 0.98433 -0.04442 +vn 0.10818 0.21776 -0.96999 +vn 0.34818 0.10301 -0.93175 +vn 0.327 0.12504 -0.93672 +vn -0.14955 0.98744 -0.05087 +vn 0.14955 0.98744 -0.05087 +vn -0.07768 0.95967 -0.27017 +vn -0.06293 0.96144 -0.26773 +vn 0.02567 0.95971 -0.27981 +vn 0.06411 0.95994 -0.27276 +vn 0.34711 -0.69591 -0.62867 +vn 0.27032 -0.77292 -0.57404 +vn 0.94803 -0.23711 -0.2122 +vn 0.4646 0.87722 -0.12093 +vn -0.4646 0.87722 -0.12093 +vn 0.99176 0.11337 -0.05966 +vn 0.9926 0.10807 -0.05534 +vn 0.99351 0.10178 -0.0507 +vn -0.13072 0.80288 -0.58163 +vn 0.94057 0.27507 -0.19914 +vn -0.12665 0.80444 -0.58037 +vn -0.16425 0.79793 -0.57994 +vn 0.33012 -0.75428 -0.56753 +vn 0.32869 -0.75612 -0.5659 +vn -0.04125 -0.39819 -0.91638 +vn 0.04125 -0.39819 -0.91638 +vn 0.04496 0.02457 -0.99869 +vn -0.04496 0.02457 -0.99869 +vn -0.74005 0.64967 -0.17396 +vn -0.7165 0.6722 -0.1865 +vn 0.73544 0.64999 -0.19143 +vn 0.09226 0.23305 -0.96808 +vn 0.54468 -0.00696 -0.83861 +vn 0.52388 0.01786 -0.8516 +vn -0.15325 0.32109 -0.93457 +vn 0.70063 -0.35709 -0.61774 +vn 0.7018 -0.34795 -0.62162 +vn -0.46338 0.55287 -0.69255 +vn -0.39329 0.5952 -0.70075 +vn -0.98498 -0.0685 -0.1585 +vn -0.98674 0.03363 -0.15878 +vn -0.03962 0.47313 -0.8801 +vn 0.03962 0.47313 -0.8801 +vn -0.98276 0.09577 -0.15814 +vn -0.12481 -0.39816 -0.90878 +vn 0.12481 -0.39816 -0.90878 +vn 0.13601 0.02457 -0.9904 +vn -0.13601 0.02457 -0.9904 +vn -0.96678 -0.20283 -0.15557 +vn 0.32351 -0.72342 -0.60993 +vn 0.95247 -0.23678 -0.19165 +vn -0.11987 0.47311 -0.87281 +vn 0.11987 0.47311 -0.87281 +vn -0.97601 0.15077 -0.15706 +vn -0.21423 0.79066 -0.57355 +vn 0.40015 -0.72804 -0.55663 +vn 0.39966 -0.72873 -0.55608 +vn -0.15702 0.80344 -0.5743 +vn -0.07593 0.9615 -0.2641 +vn -0.09023 0.95994 -0.26528 +vn 0.08861 0.9614 -0.26051 +vn 0.07593 0.9615 -0.2641 +vn 0.64957 -0.74799 -0.13625 +vn -0.64957 -0.74799 -0.13625 +vn 0.94962 -0.26681 -0.16445 +vn 0.95338 -0.24696 -0.17345 +vn 0.92711 -0.33865 -0.16055 +vn 0.93344 -0.32579 -0.15021 +vn -0.93344 -0.32579 -0.15021 +vn -0.96755 0.19899 -0.1557 +vn -0.2099 -0.39814 -0.89298 +vn 0.2099 -0.39814 -0.89298 +vn 0.22875 0.02457 -0.97317 +vn -0.22875 0.02457 -0.97317 +vn -0.2016 0.47308 -0.85764 +vn 0.2016 0.47308 -0.85764 +vn 0.72051 0.67245 -0.16936 +vn 0.95643 0.1863 -0.22482 +vn -0.95643 0.1863 -0.22482 +vn -0.83834 0.50829 -0.19706 +vn 0.83834 0.50829 -0.19706 +vn -0.06457 0.7075 -0.70376 +vn -0.02985 0.74792 -0.66312 +vn 0.03173 0.70862 -0.70488 +vn -0.20812 0.79568 -0.56884 +vn -0.26872 0.77836 -0.56739 +vn 0.4717 -0.69352 -0.54455 +vn 0.47205 -0.69296 -0.54496 +vn -0.9535 0.25942 -0.15343 +vn 0.89003 -0.43282 -0.14322 +vn -0.89003 -0.43282 -0.14322 +vn 0.09049 0.74673 -0.65895 +vn -0.06067 0.74766 -0.66131 +vn -0.096 0.70859 -0.69906 +vn 0.06067 0.74766 -0.66131 +vn -0.61236 0.77737 -0.14394 +vn 0.61236 0.77737 -0.14394 +vn 0.15045 0.97443 -0.16688 +vn -0.15045 0.97443 -0.16688 +vn 0.73566 -0.30877 -0.60288 +vn 0.73625 -0.2983 -0.60742 +vn 0.19103 -0.77414 0.6035 +vn 0.94326 0.2751 -0.18598 +vn 0.91823 -0.34654 -0.19175 +vn -0.91823 -0.34654 -0.19175 +vn -0.16147 0.70857 -0.68692 +vn 0.06457 0.7075 -0.70376 +vn 0.16147 0.70857 -0.68692 +vn 0.03656 -0.58241 -0.81207 +vn -0.03656 -0.58241 -0.81207 +vn -0.29539 -0.39812 -0.86847 +vn 0.29539 -0.39812 -0.86847 +vn 0.32192 0.02457 -0.94645 +vn -0.32192 0.02457 -0.94645 +vn 0.54236 -0.65101 -0.53107 +vn 0.54338 -0.64914 -0.53231 +vn -0.32689 0.76046 -0.56111 +vn -0.26373 0.78284 -0.56356 +vn -0.2837 0.47306 -0.8341 +vn 0.2837 0.47306 -0.8341 +vn 0.84191 -0.52234 -0.13548 +vn -0.84191 -0.52234 -0.13548 +vn -0.11607 0.95993 -0.25505 +vn 0.07768 0.95967 -0.27017 +vn 0.11607 0.95993 -0.25505 +vn 0.1106 -0.58238 -0.80536 +vn -0.1106 -0.58238 -0.80536 +vn -0.15267 0.98426 -0.08907 +vn 0.15267 0.98426 -0.08907 +vn 0.75863 -0.63179 -0.15913 +vn -0.75863 -0.63179 -0.15913 +vn 0.29944 -0.75845 -0.57888 +vn 0.93468 0.32212 -0.1504 +vn -0.93468 0.32212 -0.1504 +vn 0.94777 0.28012 -0.15251 +vn -0.40533 0.90919 -0.09528 +vn 0.40533 0.90919 -0.09528 +vn -0.35455 0.43082 -0.82988 +vn -0.3996 0.39683 -0.82634 +vn 0.69311 -0.10231 -0.71354 +vn 0.67673 -0.07862 -0.73202 +vn -0.16026 0.32783 -0.93104 +vn 0.18602 -0.58236 -0.79137 +vn -0.18602 -0.58236 -0.79137 +vn 0.04099 0.89369 -0.44682 +vn -0.04099 0.89369 -0.44682 +vn 0.91685 -0.34987 -0.19232 +vn -0.91806 -0.34654 -0.19257 +vn 0.22723 0.70855 -0.66807 +vn -0.22723 0.70855 -0.66807 +vn -0.32303 0.76429 -0.55813 +vn -0.38743 0.73658 -0.55438 +vn 0.60953 -0.60161 -0.51628 +vn 0.61102 -0.59839 -0.51826 +vn 0.79352 -0.595 -0.12769 +vn -0.79352 -0.595 -0.12769 +vn -0.91701 -0.34988 -0.19149 +vn -0.84815 0.49899 -0.17791 +vn 0.84815 0.49899 -0.17791 +vn 0.77476 -0.24642 -0.58226 +vn 0.76826 -0.22964 -0.59753 +vn -0.54288 0.49405 -0.67912 +vn -0.4636 0.55407 -0.69144 +vn 0.08374 0.22626 -0.97046 +vn 0.32791 0.12587 -0.93629 +vn 0.30083 0.14922 -0.94193 +vn 0.10242 0.89423 -0.43573 +vn -0.10242 0.89423 -0.43573 +vn -0.37998 -0.39811 -0.83494 +vn 0.37998 -0.39811 -0.83494 +vn 0.41409 0.02457 -0.9099 +vn -0.41409 0.02457 -0.9099 +vn -0.36494 0.47304 -0.8019 +vn 0.36494 0.47304 -0.8019 +vn 0.26178 -0.58233 -0.76965 +vn -0.26178 -0.58233 -0.76965 +vn 0.93143 0.30989 -0.1908 +vn -0.74784 0.64507 -0.15687 +vn 0.74784 0.64507 -0.15687 +vn 0.09866 0.21436 -0.97176 +vn 0.03573 0.24601 -0.96861 +vn 0.53059 0.02568 -0.84724 +vn 0.50249 0.05344 -0.86293 +vn -0.18596 0.3073 -0.93327 +vn 0.9182 0.36754 -0.14775 +vn -0.9182 0.36754 -0.14775 +vn 0.67076 -0.54721 -0.50065 +vn 0.67248 -0.54265 -0.50329 +vn -0.44863 0.70677 -0.547 +vn -0.38468 0.73965 -0.55222 +vn 0.74806 -0.65262 -0.12038 +vn -0.74806 -0.65262 -0.12038 +vn 0.29032 0.95449 -0.06824 +vn -0.29032 0.95449 -0.06824 +vn -0.14121 0.95993 -0.24205 +vn 0.14121 0.95993 -0.24205 +vn -0.2923 0.70853 -0.64229 +vn 0.2923 0.70853 -0.64229 +vn 0.14414 0.89422 -0.42378 +vn -0.14414 0.89422 -0.42378 +vn 0.28578 -0.7883 -0.54489 +vn -0.58435 0.80219 -0.12257 +vn 0.58435 0.80219 -0.12257 +vn 0.70766 -0.69731 -0.11387 +vn -0.70766 -0.69731 -0.11387 +vn -0.44693 0.70893 -0.5456 +vn 0.7242 -0.49027 -0.48494 +vn 0.72594 -0.48443 -0.4882 +vn -0.50846 0.67159 -0.53892 +vn -0.03337 -0.67029 -0.74135 +vn 0.03287 -0.6824 -0.73024 +vn 0.0679 -0.66912 -0.74005 +vn 0.33674 -0.58231 -0.73994 +vn -0.33674 -0.58231 -0.73994 +vn -0.27179 0.96067 -0.05701 +vn 0.27179 0.96067 -0.05701 +vn -0.09951 -0.68199 -0.72456 +vn 0.10097 -0.67026 -0.73522 +vn -0.46225 -0.39809 -0.79237 +vn 0.46225 -0.39809 -0.79237 +vn 0.50375 0.02457 -0.8635 +vn -0.50375 0.02457 -0.8635 +vn -0.44396 0.47303 -0.76101 +vn 0.44396 0.47303 -0.76101 +vn 0.16688 0.97443 -0.15045 +vn -0.16688 0.97443 -0.15045 +vn 0.90532 0.39897 -0.14568 +vn -0.90532 0.39897 -0.14568 +vn -0.0679 -0.66912 -0.74005 +vn -0.16982 -0.67024 -0.72245 +vn 0.16839 -0.67709 -0.71638 +vn 0.2054 -0.66892 -0.71439 +vn 0.18542 0.89421 -0.40743 +vn -0.18542 0.89421 -0.40743 +vn 0.36258 0.92885 0.07605 +vn -0.36258 0.92885 0.07605 +vn -0.39916 0.39634 -0.8268 +vn -0.4362 0.36237 -0.82366 +vn 0.6861 -0.06423 -0.72467 +vn 0.6629 -0.03674 -0.7478 +vn -0.1982 0.31281 -0.92891 +vn -0.91599 -0.3522 0.19214 +vn 0.91599 -0.3522 0.19214 +vn 0.74376 0.64999 0.15601 +vn -0.74376 0.64999 0.15601 +vn 0.66121 -0.74261 -0.1064 +vn -0.66121 -0.74261 -0.1064 +vn 0.20268 0.97808 -0.04764 +vn -0.20268 0.97808 -0.04764 +vn 0.7987 -0.17923 -0.57442 +vn 0.78815 -0.15928 -0.59451 +vn -0.59891 0.43872 -0.66995 +vn -0.5421 0.49215 -0.68111 +vn -0.59073 0.6121 -0.52571 +vn 0.76883 -0.43346 -0.47013 +vn 0.77038 -0.42642 -0.474 +vn -0.50771 0.67269 -0.53825 +vn 0.91137 0.3645 0.19117 +vn -0.91137 0.3645 0.19117 +vn 0.3556 0.70852 -0.60955 +vn -0.3556 0.70852 -0.60955 +vn 0.97305 -0.10728 0.20411 +vn -0.97305 -0.10728 0.20411 +vn 0.2823 -0.81343 -0.50856 +vn 0.90671 -0.36686 -0.20805 +vn -0.16521 0.95993 -0.22636 +vn 0.16521 0.95993 -0.22636 +vn -0.46985 0.87723 0.09856 +vn 0.46985 0.87723 0.09856 +vn 0.23899 -0.67022 -0.70263 +vn 0.20327 -0.67742 -0.70695 +vn -0.20327 -0.67742 -0.70695 +vn -0.23703 -0.6769 -0.69687 +vn 0.28981 0.13665 -0.94728 +vn 0.25835 0.16112 -0.95252 +vn 0.40966 -0.5823 -0.70221 +vn -0.40966 -0.5823 -0.70221 +vn -0.17259 0.98433 0.0362 +vn 0.17259 0.98433 0.0362 +vn -0.17259 0.98433 -0.0362 +vn 0.17259 0.98433 -0.0362 +vn 0.80445 -0.37927 -0.45718 +vn 0.80567 -0.37111 -0.46172 +vn 0.49359 0.04086 -0.86873 +vn 0.45849 0.07179 -0.8858 +vn 0.89438 0.42353 -0.14392 +vn -0.89142 0.42362 -0.16096 +vn -0.89396 0.42065 -0.15453 +vn -0.89517 0.41919 -0.1515 +vn -0.89768 0.41603 -0.1452 +vn -0.89509 0.41956 -0.15092 +vn -0.89822 0.4151 -0.14454 +vn 0.22558 0.89421 -0.38667 +vn -0.22558 0.89421 -0.38667 +vn 0.46985 0.87723 -0.09856 +vn -0.46985 0.87723 -0.09856 +vn -0.54081 -0.39808 -0.74098 +vn 0.54081 -0.39808 -0.74098 +vn 0.58936 0.02457 -0.8075 +vn -0.58936 0.02457 -0.8075 +vn 0.03358 0.93002 -0.36597 +vn -0.03358 0.93002 -0.36597 +vn -0.51941 0.47302 -0.71166 +vn 0.51941 0.47302 -0.71166 +vn 0.94266 0.29268 -0.1604 +vn -0.02067 0.97407 -0.22529 +vn 0.02067 0.97407 -0.22529 +vn -0.14231 0.98864 -0.0484 +vn 0.14231 0.98864 -0.0484 +vn -0.30742 -0.6702 -0.67552 +vn -0.2054 -0.66892 -0.71439 +vn 0.30463 -0.67759 -0.66939 +vn 0.34199 -0.66878 -0.66014 +vn -0.72051 0.67245 -0.16936 +vn -0.74376 0.64999 -0.15601 +vn 0.72434 0.67249 -0.15194 +vn 0.6284 -0.77129 -0.10112 +vn -0.6284 -0.77129 -0.10112 +vn 0.1016 0.92996 -0.35335 +vn -0.1016 0.92996 -0.35335 +vn 0.341 -0.79789 -0.49709 +vn 0.29658 -0.86496 -0.40482 +vn -0.41604 0.70851 -0.57003 +vn 0.41604 0.70851 -0.57003 +vn -0.06255 0.97405 -0.21754 +vn -0.05081 0.97504 -0.21615 +vn 0.05162 0.97422 -0.2196 +vn -0.68013 0.52783 -0.50875 +vn -0.59079 0.61125 -0.52663 +vn 0.84324 -0.3095 -0.43949 +vn 0.84039 -0.29704 -0.45334 +vn 0.99922 0.01324 0.03723 +vn 0.31548 -0.83974 -0.44193 +vn 0.91925 -0.35252 -0.17523 +vn 0.99538 0.08637 -0.04186 +vn 0.99606 0.07995 -0.0384 +vn -0.14458 0.87691 -0.4584 +vn 0.74005 0.64967 -0.17396 +vn -0.08527 0.90361 -0.41979 +vn -0.0677 0.91006 -0.4089 +vn 0.36164 -0.84245 -0.39936 +vn 0.36024 -0.8438 -0.39779 +vn -0.18661 0.89297 -0.4096 +vn 0.43475 -0.81153 -0.3904 +vn 0.43417 -0.81215 -0.38975 +vn -0.17988 0.89659 -0.40469 +vn -0.24674 0.88093 -0.40383 +vn 0.47928 -0.58229 -0.65668 +vn -0.47928 -0.58229 -0.65668 +vn -0.42193 0.3563 -0.83368 +vn 0.79836 -0.13884 -0.58596 +vn 0.78266 -0.1151 -0.61171 +vn -0.64428 0.37789 -0.66491 +vn -0.62416 0.38426 -0.68027 +vn -0.59579 0.43388 -0.67586 +vn 0.65615 -0.04899 -0.75303 +vn 0.62532 -0.01695 -0.78019 +vn 0.16087 0.98426 -0.07321 +vn -0.16087 0.98426 -0.07321 +vn -0.0613 0.97508 -0.2132 +vn -0.07265 0.97422 -0.21358 +vn 0.07153 0.97501 -0.21031 +vn 0.0613 0.97508 -0.2132 +vn -0.18765 0.95993 -0.20814 +vn 0.18765 0.95993 -0.20814 +vn -0.33813 -0.67799 -0.65268 +vn -0.37065 -0.67746 -0.63535 +vn 0.374 -0.67019 -0.64108 +vn 0.33813 -0.67799 -0.65268 +vn -0.2411 0.88431 -0.39983 +vn -0.31164 0.86275 -0.39818 +vn 0.50908 -0.77196 -0.38067 +vn 0.50924 -0.77177 -0.38085 +vn 0.26391 0.8942 -0.3616 +vn -0.26391 0.8942 -0.3616 +vn 0.18149 0.97443 -0.13246 +vn -0.18149 0.97443 -0.13246 +vn -0.65528 -0.74799 -0.10544 +vn 0.65528 -0.74799 -0.10544 +vn 0.94686 0.28683 -0.14555 +vn 0.02006 0.22559 -0.97402 +vn 0.2413 0.136 -0.96087 +vn 0.20818 0.16149 -0.96467 +vn 0.58205 -0.72408 -0.37003 +vn 0.58283 -0.72299 -0.37093 +vn -0.38009 0.83763 -0.39231 +vn -0.30712 0.8658 -0.39506 +vn 0.15184 0.93039 -0.33365 +vn -0.15184 0.93039 -0.33365 +vn -0.61426 -0.39808 -0.68134 +vn 0.61426 -0.39808 -0.68134 +vn 0.6694 0.02457 -0.7425 +vn -0.6694 0.02457 -0.7425 +vn -0.58995 0.47301 -0.65438 +vn 0.58995 0.47301 -0.65438 +vn -0.10416 0.97403 -0.20106 +vn -0.09187 0.9751 -0.20186 +vn 0.06255 0.97405 -0.21754 +vn 0.09345 0.97422 -0.20535 +vn 0.99959 -0.00425 0.02835 +vn 0.92541 -0.34727 -0.15172 +vn 0.00194 0.23858 -0.97112 +vn 0.43988 0.03905 -0.89721 +vn 0.39966 0.07342 -0.91372 +vn -0.20968 0.29843 -0.93111 +vn -0.37671 0.84023 -0.39001 +vn -0.45031 0.80516 -0.38593 +vn 0.65093 -0.66913 -0.35854 +vn 0.65218 -0.66708 -0.3601 +vn -0.67967 0.52402 -0.51328 +vn -0.73974 0.45268 -0.49785 +vn 0.86961 -0.23737 -0.43294 +vn 0.8643 -0.2223 -0.45118 +vn 0.47254 0.7085 -0.52415 +vn -0.47254 0.7085 -0.52415 +vn -0.76529 -0.6318 -0.12315 +vn 0.76529 -0.6318 -0.12315 +vn 0.15377 0.98745 -0.03614 +vn -0.15377 0.98745 -0.03614 +vn 0.93464 -0.32223 -0.1504 +vn 0.91701 -0.34988 -0.19149 +vn -0.93464 -0.32223 -0.1504 +vn -0.43755 -0.67017 -0.59951 +vn -0.34199 -0.66878 -0.66014 +vn 0.43343 -0.67784 -0.59386 +vn 0.46881 -0.66869 -0.57712 +vn 0.8556 0.499 -0.13768 +vn -0.89197 0.42534 -0.15323 +vn -0.89247 0.42764 -0.14361 +vn -0.8556 0.499 -0.13768 +vn 0.71326 -0.60923 -0.34657 +vn 0.71479 -0.60621 -0.3487 +vn -0.52004 0.76552 -0.37887 +vn -0.44806 0.80715 -0.38439 +vn 0.54437 -0.58228 -0.60382 +vn -0.54437 -0.58228 -0.60382 +vn -0.99306 0.03363 -0.11274 +vn -0.99055 -0.06851 -0.11882 +vn -0.98425 -0.09343 -0.15011 +vn -0.98909 -0.07083 -0.1292 +vn -0.99264 -0.04432 -0.11269 +vn -0.98905 0.09577 -0.11229 +vn 0.18472 0.93038 -0.31664 +vn -0.18472 0.93038 -0.31664 +vn -0.96872 -0.20287 -0.14294 +vn -0.95858 -0.22582 -0.17358 +vn -0.96876 -0.20098 -0.14527 +vn -0.97538 -0.17787 -0.13037 +vn -0.98026 -0.15655 -0.12075 +vn -0.98343 -0.13675 -0.11897 +vn -0.98607 -0.11694 -0.11827 +vn -0.98226 0.15077 -0.11152 +vn -0.10191 0.97515 -0.19672 +vn -0.11369 0.97422 -0.19488 +vn 0.11179 0.97508 -0.19163 +vn 0.10191 0.97515 -0.19672 +vn 0.94913 0.2851 -0.13367 +vn 0.77775 -0.12644 -0.61573 +vn 0.75571 -0.09791 -0.64755 +vn -0.93809 -0.32585 -0.11753 +vn -0.96012 -0.25241 -0.12029 +vn 0.75441 0.64508 -0.1214 +vn -0.75441 0.64508 -0.1214 +vn -0.97375 0.199 -0.11055 +vn 0.29976 0.8942 -0.3325 +vn -0.29976 0.8942 -0.3325 +vn -0.42893 0.34705 -0.83401 +vn 0.60704 -0.05609 -0.79269 +vn 0.56899 -0.01866 -0.82214 +vn -0.21019 0.29879 -0.93088 +vn -0.20814 0.95993 -0.18765 +vn 0.20814 0.95993 -0.18765 +vn -0.9596 0.25942 -0.10894 +vn -0.51886 0.76673 -0.37804 +vn 0.76725 -0.5471 -0.33468 +vn 0.76889 -0.54313 -0.33735 +vn -0.58681 0.71965 -0.37115 +vn -0.89561 -0.43283 -0.10266 +vn -0.93982 -0.28699 -0.1854 +vn -0.93859 -0.30996 -0.15157 +vn -0.93466 -0.33023 -0.13176 +vn -0.92995 -0.3483 -0.1178 +vn -0.92287 -0.36919 -0.10959 +vn -0.91457 -0.39061 -0.10484 +vn 0.89573 -0.43282 -0.10169 +vn 0.93022 -0.35149 -0.10561 +vn 0.58949 0.80219 -0.09486 +vn -0.58949 0.80219 -0.09486 +vn 0.2321 -0.88432 -0.40511 +vn 0.92102 -0.36535 -0.13504 +vn -0.92102 -0.36535 -0.13504 +vn 0.84729 -0.52234 -0.09619 +vn -0.84729 -0.52234 -0.09619 +vn -0.90357 -0.40933 -0.12657 +vn -0.89837 -0.42471 -0.11206 +vn -0.89391 -0.4366 -0.10149 +vn 0.06985 -0.64465 -0.76128 +vn -0.06985 -0.64465 -0.76128 +vn 0.27417 0.96067 -0.04412 +vn -0.27417 0.96067 -0.04412 +vn 0.95197 0.28649 -0.10808 +vn -0.94066 0.32212 -0.10679 +vn 0.94066 0.32212 -0.10679 +vn 0.99948 -0.02669 0.01789 +vn 0.30172 -0.8812 -0.36393 +vn 0.31994 -0.85741 -0.4031 +vn -0.0089 0.21912 -0.97566 +vn 0.19032 0.12544 -0.97367 +vn 0.15881 0.15178 -0.97557 +vn 0.81205 -0.48566 -0.32358 +vn 0.81366 -0.48079 -0.32678 +vn -0.58659 0.71992 -0.37099 +vn -0.67597 0.64388 -0.35845 +vn -0.0659 0.90493 -0.42043 +vn 0.79452 0.5503 -0.25671 +vn -0.68134 -0.39808 -0.61426 +vn 0.68134 -0.39808 -0.61426 +vn 0.7425 0.02457 -0.6694 +vn -0.7425 0.02457 -0.6694 +vn -0.65438 0.47301 -0.58995 +vn 0.65438 0.47301 -0.58995 +vn 0.21129 -0.64445 -0.73487 +vn -0.21129 -0.64445 -0.73487 +vn -0.78002 0.38385 -0.49419 +vn -0.7377 0.44605 -0.5068 +vn 0.87468 -0.19651 -0.44308 +vn 0.86619 -0.1783 -0.46681 +vn 0.79859 -0.595 -0.09066 +vn -0.79859 -0.595 -0.09066 +vn -0.36576 0.92885 0.05886 +vn 0.36576 0.92885 0.05886 +vn -0.02597 0.9372 -0.34784 +vn -0.06027 0.92158 -0.38349 +vn -0.14145 0.90104 -0.41004 +vn 0.21612 0.93038 -0.29611 +vn -0.21612 0.93038 -0.29611 +vn -0.02363 0.23078 -0.97272 +vn 0.37716 0.02163 -0.9259 +vn 0.33533 0.0596 -0.94021 +vn -0.21187 0.29599 -0.9314 +vn -0.91325 -0.37996 0.14696 +vn -0.92731 -0.35195 0.12735 +vn 0.75029 0.64999 0.12073 +vn 0.92404 -0.3522 0.14869 +vn -0.75029 0.64999 0.12073 +vn -0.1428 0.97401 -0.17579 +vn -0.13067 0.97512 -0.17904 +vn 0.10416 0.97403 -0.20106 +vn 0.13301 0.97421 -0.18225 +vn 0.49698 -0.67017 -0.55126 +vn 0.46329 -0.6783 -0.57032 +vn -0.46329 -0.6783 -0.57032 +vn -0.49233 -0.67779 -0.54609 +vn -0.91938 0.3645 0.14794 +vn 0.91938 0.3645 0.14794 +vn -0.52415 0.7085 -0.47254 +vn 0.52415 0.7085 -0.47254 +vn 0.91628 -0.38027 0.12584 +vn 0.98499 -0.1072 0.13527 +vn -0.98896 -0.0592 0.13582 +vn -0.9816 -0.10728 0.15796 +vn 0.98555 -0.05956 0.15859 +vn 0.89799 0.40476 -0.1726 +vn 0.84771 -0.42756 -0.31398 +vn 0.84917 -0.42186 -0.31773 +vn 0.47398 0.87723 0.07627 +vn -0.7333 0.67241 0.10071 +vn -0.47591 0.87706 0.06536 +vn -0.92407 0.36754 -0.10491 +vn 0.92407 0.36754 -0.10491 +vn 0.75285 -0.65262 -0.08547 +vn -0.75285 -0.65262 -0.08547 +vn 0.19407 0.97443 -0.11322 +vn -0.19407 0.97443 -0.11322 +vn -0.17484 0.9843 0.02401 +vn 0.17484 0.9843 0.02401 +vn 0.43652 0.89769 0.05995 +vn 0.60382 -0.58228 -0.54437 +vn -0.60382 -0.58228 -0.54437 +vn -0.17484 0.9843 -0.02401 +vn 0.17484 0.9843 -0.02401 +vn -0.04619 0.86279 -0.50345 +vn 0.04619 0.86279 -0.50345 +vn 0.99918 -0.03836 0.01318 +vn 0.77549 -0.59043 -0.22362 +vn -0.41628 0.33774 -0.84418 +vn 0.7386 -0.14164 -0.65909 +vn 0.70964 -0.10709 -0.69638 +vn -0.61806 0.36883 -0.69424 +vn -0.61422 0.37463 -0.69454 +vn -0.3325 0.8942 -0.29976 +vn 0.3325 0.8942 -0.29976 +vn 0.71219 -0.69732 -0.08085 +vn -0.71219 -0.69732 -0.08085 +vn 0.47591 0.87706 -0.06536 +vn -0.47591 0.87706 -0.06536 +vn -0.40825 0.35098 -0.8427 +vn 0.54354 -0.08428 -0.83514 +vn 0.50079 -0.04074 -0.86461 +vn -0.20848 0.29336 -0.93299 +vn 0.88593 -0.35291 -0.30097 +vn 0.88548 -0.34468 -0.31165 +vn -0.67649 0.64233 -0.36025 +vn -0.76871 0.53991 -0.3429 +vn 0.35179 -0.6443 -0.67905 +vn -0.35179 -0.6443 -0.67905 +vn -0.13976 0.86267 -0.48607 +vn 0.13976 0.86267 -0.48607 +vn -0.75313 0.64969 -0.10343 +vn 0.75313 0.64969 -0.10343 +vn -0.91111 0.39897 -0.10344 +vn 0.91111 0.39897 -0.10344 +vn 0.66544 -0.74262 -0.07555 +vn -0.66544 -0.74262 -0.07555 +vn -0.22636 0.95993 -0.16521 +vn 0.22636 0.95993 -0.16521 +vn 0.00923 0.99488 -0.10065 +vn -0.00923 0.99488 -0.10065 +vn 0.97335 0.18631 -0.13367 +vn -0.97335 0.18631 -0.13367 +vn 0.24547 0.93038 -0.27228 +vn -0.24547 0.93038 -0.27228 +vn -0.85316 0.50831 -0.11717 +vn 0.85316 0.50831 -0.11717 +vn 0.15108 0.97421 -0.16758 +vn -0.13959 0.97519 -0.17184 +vn -0.15108 0.97421 -0.16758 +vn -0.03156 0.20967 -0.97726 +vn 0.14353 0.10587 -0.98397 +vn 0.11654 0.13253 -0.9843 +vn -0.78279 0.38949 -0.48533 +vn -0.78624 0.38366 -0.4844 +vn -0.62317 0.77739 -0.08558 +vn 0.62317 0.77739 -0.08558 +vn 0.86272 -0.18805 -0.46942 +vn 0.85016 -0.1658 -0.49973 +vn 0.16732 0.98426 -0.05691 +vn -0.16732 0.98426 -0.05691 +vn 0.02794 0.99487 -0.09718 +vn -0.02794 0.99487 -0.09718 +vn 0.93106 0.33984 -0.13276 +vn -0.04155 0.21914 -0.97481 +vn 0.31877 0.00544 -0.94781 +vn 0.32007 0.0034 -0.94739 +vn -0.20721 0.29632 -0.93234 +vn -0.55126 -0.67017 -0.49698 +vn -0.46881 -0.66869 -0.57712 +vn 0.54609 -0.67779 -0.49233 +vn 0.57712 -0.66869 -0.46881 +vn -0.74098 -0.39808 -0.54081 +vn 0.74098 -0.39808 -0.54081 +vn 0.8075 0.02457 -0.58936 +vn -0.8075 0.02457 -0.58936 +vn -0.41248 0.9092 -0.05665 +vn 0.41248 0.9092 -0.05665 +vn -0.71166 0.47302 -0.51941 +vn 0.71166 0.47302 -0.51941 +vn -0.90175 0.41519 -0.1203 +vn -0.90077 0.41552 -0.1263 +vn -0.9016 0.41502 -0.12195 +vn -0.90246 0.41446 -0.11741 +vn -0.9044 0.41226 -0.11001 +vn -0.90689 0.4086 -0.10296 +vn 0.9001 0.42353 -0.10219 +vn -0.23272 0.86259 -0.44921 +vn -0.20547 0.8683 -0.45149 +vn 0.20895 0.86344 -0.45915 +vn -0.14632 0.98864 -0.03439 +vn 0.14632 0.98864 -0.03439 +vn 0.87047 -0.46769 -0.15345 +vn 0.91378 -0.27791 -0.29626 +vn 0.91213 -0.26782 -0.31031 +vn -0.76936 0.53582 -0.34782 +vn -0.82845 0.45016 -0.3332 +vn 0.63242 -0.77129 -0.0718 +vn -0.63242 -0.77129 -0.0718 +vn -0.89888 0.42191 -0.11838 +vn 0.00045 -0.16545 -0.98622 +vn 0.00044 -0.16554 -0.9862 +vn 0.1045 0.08893 -0.99054 +vn 0.11127 0.09206 -0.98952 +vn 0.09196 0.13048 -0.98718 +vn 0.0987 0.13698 -0.98565 +vn 0.07905 0.14413 -0.9864 +vn 0.08235 0.14835 -0.9855 +vn 0.07132 0.14637 -0.98666 +vn -0.01091 0.0347 -0.99934 +vn -0.071 -0.14631 -0.98669 +vn -0.14638 -0.24873 -0.95745 +vn -0.04863 -0.0998 -0.99382 +vn 0.00292 -0.16551 -0.9862 +vn 0.00284 -0.16667 -0.98601 +vn 0.00921 -0.16418 -0.98639 +vn 0.00909 -0.1676 -0.98581 +vn 0.01745 -0.16155 -0.98671 +vn 0.01716 -0.16473 -0.98619 +vn 0.03511 -0.15126 -0.98787 +vn 0.03505 -0.15679 -0.98701 +vn 0.06144 -0.12817 -0.98985 +vn 0.06242 -0.13542 -0.98882 +vn 0.09291 -0.08766 -0.99181 +vn 0.09547 -0.09381 -0.991 +vn 0.11779 -0.03565 -0.9924 +vn 0.12013 -0.03792 -0.99203 +vn 0.12467 0.00628 -0.99218 +vn 0.12457 0.00632 -0.99219 +vn 0.12035 0.02929 -0.9923 +vn 0.12104 0.02918 -0.99222 +vn 0.1143 0.04951 -0.99221 +vn 0.1169 0.04965 -0.9919 +vn 0.10897 0.06883 -0.99166 +vn 0.11379 0.07004 -0.99103 +vn 0.09961 0.1102 -0.98891 +vn 0.10735 0.11558 -0.98748 +vn 0.08627 0.1386 -0.98658 +vn 0.09155 0.14449 -0.98526 +vn 0.09631 0.12073 -0.988 +vn 0.10385 0.12696 -0.98646 +vn 0.10224 0.09948 -0.98977 +vn 0.10967 0.10375 -0.98854 +vn 0.10668 0.07872 -0.99117 +vn 0.11254 0.0808 -0.99036 +vn 0.1115 0.05916 -0.992 +vn 0.11521 0.05972 -0.99154 +vn 0.11732 0.03964 -0.9923 +vn 0.11889 0.03957 -0.99212 +vn 0.12301 0.01821 -0.99224 +vn 0.1231 0.01819 -0.99223 +vn 0.12373 -0.01096 -0.99226 +vn 0.12467 -0.01152 -0.99213 +vn 0.10709 -0.0621 -0.99231 +vn 0.10995 -0.06645 -0.99171 +vn 0.07709 -0.11009 -0.99093 +vn 0.07889 -0.11725 -0.98996 +vn 0.04723 -0.14172 -0.98878 +vn 0.04757 -0.14831 -0.9878 +vn -0.03609 0.15022 -0.98799 +vn -0.03609 0.1555 -0.98718 +vn -0.04841 0.14026 -0.98893 +vn -0.04882 0.1465 -0.98801 +vn -0.06274 0.12628 -0.99001 +vn -0.06379 0.13307 -0.98905 +vn -0.07836 0.10789 -0.99107 +vn -0.08019 0.11452 -0.99018 +vn -0.09396 0.08541 -0.9919 +vn -0.09649 0.09104 -0.99116 +vn -0.1078 0.06018 -0.99235 +vn -0.11055 0.06411 -0.9918 +vn -0.11811 0.03439 -0.9924 +vn -0.12033 0.03642 -0.99207 +vn -0.12378 0.01054 -0.99225 +vn -0.12467 0.01104 -0.99214 +vn -0.12467 -0.00624 -0.99218 +vn -0.12458 -0.00628 -0.99219 +vn -0.12301 -0.01825 -0.99224 +vn -0.1231 -0.01823 -0.99223 +vn -0.1203 -0.02952 -0.9923 +vn -0.12095 -0.02943 -0.99222 +vn -0.11714 -0.04014 -0.9923 +vn -0.11865 -0.04009 -0.99213 +vn -0.11395 -0.05027 -0.99221 +vn -0.11645 -0.05044 -0.99191 +vn -0.11094 -0.06015 -0.99201 +vn -0.1145 -0.06075 -0.99156 +vn -0.10818 -0.07 -0.99166 +vn -0.1128 -0.07125 -0.99106 +vn -0.10564 -0.07999 -0.99118 +vn -0.11126 -0.0821 -0.99039 +vn -0.10323 -0.09022 -0.99056 +vn -0.10969 -0.09335 -0.98957 +vn -0.10077 -0.10068 -0.9898 +vn -0.10784 -0.10493 -0.98862 +vn -0.098 -0.11122 -0.98895 +vn -0.10533 -0.11652 -0.98759 +vn -0.09465 -0.1215 -0.98807 +vn -0.10177 -0.12757 -0.98659 +vn -0.09039 -0.13094 -0.98726 +vn -0.09672 -0.13723 -0.9858 +vn -0.07814 -0.1441 -0.98647 +vn -0.08125 -0.14816 -0.98562 +vn -0.08494 -0.13877 -0.98668 +vn -0.08991 -0.14444 -0.98542 +vn -0.89868 0.42174 -0.12045 +vn -0.00046 0.16543 -0.98622 +vn -0.00045 0.16554 -0.9862 +vn -0.00301 0.16551 -0.9862 +vn -0.00294 0.16664 -0.98601 +vn -0.00951 0.16406 -0.9864 +vn -0.00939 0.16738 -0.98585 +vn -0.01799 0.16116 -0.98676 +vn -0.01774 0.16423 -0.98626 +vn -0.02598 0.15693 -0.98727 +vn -0.02578 0.16108 -0.9866 +vn 0.02522 -0.15759 -0.98718 +vn 0.02498 -0.16192 -0.98649 +vn 0.57003 0.70851 -0.41604 +vn -0.57003 0.70851 -0.41604 +vn 0.09208 0.18825 -0.97779 +vn -0.39124 0.33732 -0.85624 +vn 0.68208 -0.18342 -0.7079 +vn 0.64731 -0.14171 -0.74894 +vn -0.58562 0.38155 -0.71517 +vn -0.6013 0.3541 -0.71627 +vn -0.89851 0.41972 -0.12854 +vn -0.89931 0.41964 -0.12308 +vn -0.90015 0.41869 -0.12009 +vn 0.31216 -0.02942 -0.94957 +vn 0.27443 0.03069 -0.96112 +vn -0.87805 0.42638 -0.21732 +vn -0.89702 0.42409 -0.1245 +vn 0.20016 0.40921 -0.89022 +vn 0.13129 0.322 -0.93759 +vn -0.21598 -0.40241 -0.88962 +vn -0.22288 -0.41101 -0.88397 +vn -0.19765 -0.409 -0.89087 +vn -0.26139 -0.48988 -0.83168 +vn -0.18169 -0.37443 -0.90928 +vn 0.22315 0.40201 -0.88803 +vn 0.23136 0.41162 -0.8815 +vn -0.05172 0.44996 -0.89155 +vn -0.05098 0.4567 -0.88816 +vn -0.07489 0.43904 -0.89534 +vn -0.0742 0.44822 -0.89084 +vn -0.10441 0.42152 -0.90079 +vn -0.10409 0.43332 -0.89521 +vn -0.02727 0.45755 -0.88876 +vn -0.02693 0.4648 -0.88501 +vn -0.00861 0.46119 -0.88726 +vn -0.00842 0.46366 -0.88597 +vn -0.23425 -0.38859 -0.89114 +vn -0.24522 -0.40063 -0.88282 +vn -0.24986 -0.36891 -0.89525 +vn -0.26398 -0.38241 -0.88548 +vn -0.26305 -0.34509 -0.90095 +vn -0.27917 -0.35836 -0.89087 +vn -0.27431 -0.3187 -0.90729 +vn -0.29123 -0.33052 -0.89774 +vn -0.28421 -0.29096 -0.91355 +vn -0.30087 -0.30062 -0.90504 +vn -0.29335 -0.26269 -0.9192 +vn -0.30887 -0.26994 -0.91199 +vn -0.30226 -0.23432 -0.92398 +vn -0.31596 -0.23924 -0.91811 +vn -0.31132 -0.20594 -0.92772 +vn -0.32274 -0.20885 -0.92316 +vn -0.32076 -0.17738 -0.9304 +vn -0.32964 -0.17874 -0.92703 +vn -0.33061 -0.14828 -0.93205 +vn -0.33685 -0.1486 -0.92976 +vn -0.34059 -0.11817 -0.93276 +vn -0.34434 -0.11798 -0.9314 +vn -0.35006 -0.08657 -0.93272 +vn -0.3517 -0.08632 -0.93212 +vn -0.35794 -0.05318 -0.93223 +vn -0.35815 -0.05313 -0.93215 +vn -0.36263 -0.01806 -0.93176 +vn -0.3624 -0.01815 -0.93185 +vn -0.36038 0.02962 -0.93233 +vn -0.36252 0.03087 -0.93147 +vn -0.34494 0.09701 -0.9336 +vn -0.3503 0.10199 -0.93107 +vn -0.31581 0.1704 -0.93339 +vn -0.32238 0.17997 -0.92934 +vn -0.27562 0.24233 -0.93022 +vn -0.28148 0.25586 -0.92483 +vn -0.22952 0.30584 -0.924 +vn -0.23353 0.32154 -0.91765 +vn -0.18312 0.35695 -0.916 +vn -0.18517 0.37269 -0.9093 +vn -0.14067 0.39498 -0.90786 +vn -0.14123 0.40916 -0.90146 +vn -0.90128 0.41894 -0.11041 +vn -0.00131 0.46101 -0.88739 +vn -0.00128 0.46129 -0.88725 +vn -0.8986 0.42575 -0.10605 +vn 0.00123 -0.4611 -0.88735 +vn 0.00121 -0.46129 -0.88725 +vn 0.00786 -0.4612 -0.88726 +vn 0.00763 -0.46391 -0.88585 +vn 0.02485 -0.45835 -0.88843 +vn 0.02436 -0.46631 -0.88428 +vn 0.04717 -0.45272 -0.89041 +vn 0.04615 -0.46021 -0.88661 +vn 0.06847 -0.44382 -0.89349 +vn 0.06738 -0.45413 -0.88838 +vn 0.09592 -0.42911 -0.89814 +vn 0.09506 -0.44254 -0.8917 +vn 0.13024 -0.40608 -0.90451 +vn 0.13012 -0.42256 -0.89695 +vn 0.1714 -0.37183 -0.91234 +vn 0.17276 -0.39063 -0.90419 +vn 0.21788 -0.32381 -0.92069 +vn 0.2214 -0.34325 -0.91278 +vn 0.26587 -0.26125 -0.92793 +vn 0.27172 -0.27874 -0.92113 +vn 0.3094 -0.18699 -0.93236 +vn 0.31656 -0.19987 -0.92728 +vn 0.34212 -0.10799 -0.93343 +vn 0.34828 -0.11494 -0.93032 +vn 0.35992 -0.03327 -0.93239 +vn 0.36247 -0.03505 -0.93134 +vn 0.36263 0.0184 -0.93175 +vn 0.36236 0.01853 -0.93186 +vn 0.35798 0.0529 -0.93223 +vn 0.35823 0.05282 -0.93214 +vn 0.35057 0.08452 -0.93271 +vn 0.35244 0.08414 -0.93204 +vn 0.34212 0.11386 -0.93273 +vn 0.34635 0.11345 -0.93122 +vn 0.33363 0.14169 -0.93199 +vn 0.34064 0.14171 -0.92945 +vn 0.32561 0.1688 -0.93031 +vn 0.33555 0.1698 -0.92659 +vn 0.31817 0.19586 -0.92758 +vn 0.331 0.19839 -0.92254 +vn 0.31113 0.22337 -0.92375 +vn 0.32663 0.22796 -0.91725 +vn 0.30411 0.25161 -0.91881 +vn 0.32183 0.25866 -0.91078 +vn 0.29652 0.28053 -0.91289 +vn 0.31577 0.29025 -0.90335 +vn 0.28763 0.3097 -0.90629 +vn 0.30741 0.32192 -0.89547 +vn 0.27659 0.33815 -0.89953 +vn 0.29563 0.35223 -0.888 +vn 0.26256 0.36439 -0.89347 +vn 0.27937 0.37904 -0.8822 +vn 0.24485 0.38643 -0.88922 +vn 0.25796 0.39973 -0.87959 +vn -0.29544 0.9545 -0.04057 +vn 0.29544 0.9545 -0.04057 +vn 0.65668 -0.58229 -0.47928 +vn -0.65668 -0.58229 -0.47928 +vn -0.3792 0.36291 -0.85118 +vn 0.47949 -0.11107 -0.87049 +vn 0.46033 -0.07773 -0.88434 +vn -0.19994 0.28953 -0.93605 +vn 0.04653 0.99487 -0.08982 +vn -0.04653 0.99487 -0.08982 +vn 0.21903 0.44622 -0.8677 +vn 0.25003 0.86821 -0.42859 +vn -0.22799 0.86853 -0.44009 +vn -0.25421 0.86343 -0.43574 +vn 0.22799 0.86853 -0.44009 +vn 0.48224 -0.64422 -0.59365 +vn -0.48224 -0.64422 -0.59365 +vn -0.3616 0.8942 -0.26391 +vn 0.3616 0.8942 -0.26391 +vn -0.89727 0.42458 -0.121 +vn -0.89733 0.42513 -0.11859 +vn -0.89378 0.43687 -0.10147 +vn -0.89788 0.42827 -0.10194 +vn 0.1079 0.08905 -0.99017 +vn 0.0975 0.10696 -0.98947 +vn -0.04562 0.20139 -0.97845 +vn 0.27228 0.93038 -0.24547 +vn -0.27228 0.93038 -0.24547 +vn 0.90644 -0.40598 -0.11642 +vn 0.99784 -0.06568 0.00325 +vn 0.30892 -0.91024 -0.27572 +vn 0.30961 -0.90958 -0.27715 +vn 0.16758 0.97421 -0.15108 +vn -0.17579 0.97401 -0.1428 +vn -0.16465 0.97512 -0.14844 +vn 0.65947 -0.748 -0.07487 +vn -0.65947 -0.748 -0.07487 +vn -0.15097 0.93899 -0.30903 +vn 0.9448 0.30851 -0.11038 +vn -0.7636 0.36762 -0.53082 +vn -0.76922 0.35722 -0.52981 +vn 0.83435 -0.21191 -0.50887 +vn 0.81702 -0.18449 -0.5463 +vn -0.074 0.96666 -0.24515 +vn -0.12711 0.95245 -0.27691 +vn -0.15497 0.94711 -0.28099 +vn 0.37675 -0.88513 -0.27313 +vn 0.37623 -0.88575 -0.27184 +vn -0.19415 0.93995 -0.2807 +vn 0.26087 -0.03826 -0.96462 +vn 0.24466 -0.00897 -0.96957 +vn -0.0484 0.20615 -0.97732 +vn -0.19805 0.29621 -0.93436 +vn 0.44359 -0.13989 -0.88524 +vn 0.42469 -0.10497 -0.89923 +vn 0.33287 0.59223 -0.7338 +vn 0.34237 0.60158 -0.72173 +vn 0.2971 0.60526 -0.73851 +vn 0.22841 0.52989 -0.81673 +vn -0.29121 -0.60563 -0.74055 +vn -0.33872 -0.65775 -0.67278 +vn -0.27974 -0.57885 -0.76595 +vn -0.89587 0.43521 -0.08948 +vn -0.89316 0.44273 -0.07904 +vn 0.0018 -0.68866 -0.72508 +vn 0.00332 -0.67967 -0.73351 +vn 0.01118 -0.67957 -0.73353 +vn 0.01083 -0.68237 -0.73092 +vn 0.03535 -0.67672 -0.7354 +vn 0.03444 -0.68496 -0.72777 +vn 0.06728 -0.67096 -0.73843 +vn 0.08641 -0.58244 -0.80827 +vn 0.08061 -0.68165 -0.72722 +vn 0.13852 -0.64491 -0.7516 +vn 0.13599 -0.65954 -0.73926 +vn 0.19021 -0.61768 -0.76308 +vn 0.18795 -0.63634 -0.74816 +vn 0.25411 -0.5746 -0.77799 +vn 0.25306 -0.59703 -0.76126 +vn 0.32881 -0.50976 -0.795 +vn 0.33021 -0.53454 -0.77796 +vn 0.40846 -0.41901 -0.81092 +vn 0.41326 -0.44299 -0.7956 +vn 0.48205 -0.30436 -0.82158 +vn 0.48964 -0.32328 -0.80978 +vn 0.53697 -0.17721 -0.82478 +vn 0.5444 -0.188 -0.81749 +vn 0.56574 -0.05471 -0.82277 +vn 0.569 -0.05762 -0.82031 +vn 0.56971 0.02913 -0.82133 +vn 0.56935 0.02934 -0.82157 +vn 0.56286 0.08299 -0.82237 +vn 0.56318 0.08285 -0.82217 +vn 0.55191 0.13176 -0.82343 +vn 0.55436 0.13102 -0.8219 +vn 0.53921 0.17662 -0.82345 +vn 0.54473 0.17557 -0.82003 +vn 0.52608 0.21886 -0.82179 +vn 0.53518 0.21807 -0.81611 +vn 0.51312 0.25965 -0.8181 +vn 0.52596 0.25977 -0.80987 +vn 0.50042 0.29993 -0.81217 +vn 0.51683 0.30161 -0.8012 +vn 0.48766 0.34034 -0.80396 +vn 0.50722 0.34416 -0.79012 +vn 0.47425 0.38116 -0.7936 +vn 0.49626 0.38753 -0.77689 +vn 0.4594 0.42227 -0.78144 +vn 0.48285 0.43132 -0.76212 +vn 0.44215 0.46302 -0.76819 +vn 0.46578 0.47453 -0.7469 +vn 0.42156 0.50227 -0.755 +vn 0.44389 0.51555 -0.73292 +vn 0.39677 0.53832 -0.74349 +vn 0.41623 0.55217 -0.7224 +vn -0.28596 0.54215 -0.79013 +vn -0.28702 0.5595 -0.77755 +vn -0.36136 0.46807 -0.80643 +vn -0.36478 0.48609 -0.79414 +vn -0.43618 0.37253 -0.81912 +vn -0.44209 0.38868 -0.80838 +vn -0.50011 0.26198 -0.82538 +vn -0.5073 0.27373 -0.81714 +vn -0.54462 0.14861 -0.82541 +vn -0.55069 0.15487 -0.82022 +vn -0.56686 0.04519 -0.82257 +vn -0.56933 0.0468 -0.82078 +vn -0.56972 -0.02824 -0.82135 +vn -0.56946 -0.02836 -0.82153 +vn -0.56276 -0.08373 -0.82237 +vn -0.56301 -0.08365 -0.82221 +vn -0.5506 -0.13706 -0.82344 +vn -0.55256 -0.13665 -0.82219 +vn -0.53529 -0.18776 -0.82353 +vn -0.53982 -0.18729 -0.82068 +vn -0.51836 -0.23588 -0.82199 +vn -0.52591 -0.23587 -0.81718 +vn -0.50079 -0.28178 -0.81842 +vn -0.51147 -0.28285 -0.81141 +vn -0.48309 -0.32585 -0.81268 +vn -0.4967 -0.32858 -0.80332 +vn -0.46539 -0.3684 -0.80479 +vn -0.48147 -0.37325 -0.79301 +vn -0.44757 -0.40954 -0.79496 +vn -0.4654 -0.41676 -0.78084 +vn -0.42928 -0.44908 -0.78361 +vn -0.44798 -0.45861 -0.76746 +vn -0.4101 -0.48651 -0.77144 +vn -0.42862 -0.49798 -0.75386 +vn -0.38956 -0.52104 -0.75945 +vn -0.40679 -0.53366 -0.74144 +vn -0.36728 -0.55154 -0.74893 +vn -0.3821 -0.56417 -0.73192 +vn -0.3166 -0.59527 -0.73852 +vn -0.32378 -0.60327 -0.72886 +vn -0.34299 -0.57675 -0.74143 +vn -0.3544 -0.5879 -0.72717 +vn -0.21771 0.59488 -0.77377 +vn -0.21723 0.60993 -0.7621 +vn -0.16027 0.6301 -0.7598 +vn -0.15907 0.64221 -0.74984 +vn -0.11422 0.65245 -0.74918 +vn -0.11286 0.66167 -0.74125 +vn -0.07851 0.66595 -0.74185 +vn -0.07731 0.67262 -0.73594 +vn -0.04124 0.67529 -0.7364 +vn -0.04067 0.68238 -0.72987 +vn -0.01298 0.67954 -0.73352 +vn -0.01272 0.68195 -0.73129 +vn -0.90786 0.40872 -0.09346 +vn -0.00075 0.68849 -0.72525 +vn -0.00193 0.67968 -0.7335 +vn 0.36725 0.56909 -0.73571 +vn 0.38233 0.58176 -0.71789 +vn -0.25981 0.92529 -0.27629 +vn 0.49085 -0.83064 -0.2629 +vn 0.45462 -0.86183 -0.22487 +vn -0.19157 0.94159 -0.27695 +vn -0.20626 0.97809 -0.02833 +vn 0.20626 0.97809 -0.02833 +vn 0.20449 0.97443 -0.09306 +vn -0.20449 0.97443 -0.09306 +vn 0.28932 0.60095 -0.74509 +vn 0.92267 -0.2374 -0.30385 +vn 0.91949 -0.22512 -0.32227 +vn -0.82848 0.44358 -0.34185 +vn -0.86015 0.38655 -0.33276 +vn -0.20141 0.9602 -0.19352 +vn -0.26097 0.93728 -0.23109 +vn -0.33678 0.91309 -0.22988 +vn 0.53073 -0.81867 -0.21931 +vn 0.53078 -0.81863 -0.21936 +vn -0.05066 0.19279 -0.97993 +vn 0.09222 0.07055 -0.99324 +vn 0.08327 0.08768 -0.99266 +vn 0.77018 -0.6318 -0.08744 +vn -0.77018 -0.6318 -0.08744 +vn -0.57032 -0.6783 -0.46329 +vn -0.59386 -0.67784 -0.43343 +vn 0.59951 -0.67017 -0.43755 +vn 0.57032 -0.6783 -0.46329 +vn -0.24205 0.95993 -0.14121 +vn 0.24205 0.95993 -0.14121 +vn -0.31903 0.86254 -0.39274 +vn -0.29227 0.86846 -0.40045 +vn 0.23272 0.86259 -0.44921 +vn 0.29741 0.86342 -0.40749 +vn -0.19366 0.28833 -0.93774 +vn -0.19181 0.2967 -0.93551 +vn -0.05226 0.19583 -0.97924 +vn 0.23559 -0.06785 -0.96948 +vn 0.22091 -0.03835 -0.97454 +vn 0.94369 -0.31301 -0.10714 +vn -0.94369 -0.31301 -0.10714 +vn 0.60474 -0.76748 -0.21277 +vn 0.60524 -0.76693 -0.2133 +vn -0.41181 0.88282 -0.22591 +vn -0.33352 0.91478 -0.2279 +vn -0.88518 0.44535 -0.13459 +vn -0.86107 0.499 -0.09776 +vn -0.895 0.42602 -0.13224 +vn -0.89693 0.42928 -0.10599 +vn -0.8971 0.4303 -0.10031 +vn -0.89718 0.43148 -0.09425 +vn -0.8974 0.4293 -0.10188 +vn 0.86107 0.499 -0.09776 +vn 0.62053 -0.22426 -0.75143 +vn 0.60509 -0.19111 -0.77288 +vn -0.35885 0.34346 -0.8679 +vn -0.54114 0.40755 -0.73557 +vn -0.56382 0.36161 -0.74253 +vn -0.34877 0.37257 -0.85997 +vn 0.40841 -0.17452 -0.89596 +vn 0.3904 -0.13833 -0.91019 +vn -0.05394 0.18177 -0.98186 +vn 0.07921 0.0472 -0.99574 +vn 0.0718 0.06323 -0.99541 +vn -0.75924 0.64508 -0.0862 +vn 0.75924 0.64508 -0.0862 +vn -0.40942 0.8843 -0.22448 +vn -0.48802 0.84425 -0.22154 +vn 0.67434 -0.70917 -0.20577 +vn 0.67519 -0.70808 -0.20674 +vn 0.06168 0.73774 -0.67226 +vn -0.06168 0.73774 -0.67226 +vn -0.79237 -0.39809 -0.46225 +vn -0.8635 0.02457 -0.50375 +vn 0.8635 0.02457 -0.50375 +vn 0.79237 -0.39809 -0.46225 +vn 0.76101 0.47303 -0.44396 +vn -0.76101 0.47303 -0.44396 +vn -0.0638 0.99487 -0.07854 +vn 0.05941 0.99491 -0.08141 +vn -0.87905 0.4587 -0.12989 +vn 0.34315 0.69105 -0.63616 +vn 0.21319 -0.10448 -0.97141 +vn 0.2003 -0.07511 -0.97685 +vn -0.05436 0.18266 -0.98167 +vn -0.18486 0.29683 -0.93687 +vn -0.18663 0.28641 -0.93976 +vn -0.07907 -0.50092 -0.86187 +vn 0.07907 -0.50092 -0.86187 +vn 0.1866 0.73756 -0.64898 +vn -0.1866 0.73756 -0.64898 +vn -0.59325 0.80219 -0.06735 +vn 0.59325 0.80219 -0.06735 +vn 0.95128 0.29321 -0.09533 +vn 0.92175 -0.37654 -0.09272 +vn 0.99728 -0.07373 0.00091 +vn 0.73705 -0.64601 -0.19854 +vn 0.73815 -0.64434 -0.19991 +vn -0.56279 0.79769 -0.2167 +vn -0.48651 0.84535 -0.22064 +vn -0.60955 0.70852 -0.3556 +vn 0.60955 0.70852 -0.3556 +vn 0.06885 0.01719 -0.99748 +vn 0.06298 0.03177 -0.99751 +vn -0.05558 0.16725 -0.98435 +vn -0.36346 0.40242 -0.84021 +vn 0.37463 -0.21591 -0.90168 +vn 0.3581 -0.17888 -0.91639 +vn -0.75087 0.35123 -0.55931 +vn -0.7316 0.38917 -0.55974 +vn 0.78771 -0.26751 -0.55494 +vn 0.76588 -0.23383 -0.59896 +vn -0.23919 -0.50073 -0.8319 +vn 0.23919 -0.50073 -0.8319 +vn 0.58202 -0.26343 -0.76932 +vn 0.56658 -0.22838 -0.79172 +vn 0.36429 0.73433 -0.57276 +vn -0.44428 -0.6769 -0.58687 +vn -0.45617 -0.68502 -0.56803 +vn -0.38196 -0.72374 -0.57473 +vn -0.3877 -0.72894 -0.56421 +vn -0.35521 -0.73627 -0.57596 +vn -0.31688 -0.65893 -0.6822 +vn -0.00131 0.82284 -0.56828 +vn 0.09584 -0.81045 -0.57792 +vn 0.09365 -0.82337 -0.55973 +vn 0.1635 -0.79294 -0.58695 +vn 0.15934 -0.8044 -0.57232 +vn 0.22666 -0.7674 -0.59977 +vn 0.22191 -0.78258 -0.58166 +vn 0.30702 -0.72434 -0.6173 +vn 0.30239 -0.74365 -0.59627 +vn 0.40441 -0.65464 -0.63867 +vn 0.4013 -0.67763 -0.61626 +vn 0.51228 -0.54913 -0.66032 +vn 0.51249 -0.57346 -0.63914 +vn 0.61477 -0.4059 -0.67623 +vn 0.61896 -0.42689 -0.65928 +vn 0.69132 -0.23874 -0.68197 +vn 0.69715 -0.25166 -0.6713 +vn 0.72981 -0.0739 -0.67965 +vn 0.73275 -0.07761 -0.67605 +vn 0.73444 0.03785 -0.67761 +vn 0.73411 0.03813 -0.67796 +vn 0.72627 0.10684 -0.67906 +vn 0.72657 0.10665 -0.67876 +vn 0.71311 0.16854 -0.68049 +vn 0.71544 0.16743 -0.67831 +vn 0.69744 0.22479 -0.68048 +vn 0.70271 0.22297 -0.67563 +vn 0.6806 0.27732 -0.67814 +vn 0.68928 0.27529 -0.67016 +vn 0.66315 0.32753 -0.67302 +vn 0.67532 0.32589 -0.66162 +vn 0.64511 0.37648 -0.66491 +vn 0.66053 0.3758 -0.64998 +vn 0.62609 0.42481 -0.65387 +vn 0.64426 0.4256 -0.63544 +vn 0.60546 0.4728 -0.64022 +vn 0.62562 0.4754 -0.61854 +vn 0.58243 0.52027 -0.62457 +vn 0.60361 0.5248 -0.6002 +vn 0.55618 0.56663 -0.60795 +vn 0.57721 0.57295 -0.58185 +vn -0.05104 0.81885 -0.57174 +vn -0.05031 0.82387 -0.56454 +vn -0.09753 0.80991 -0.57839 +vn -0.09604 0.81471 -0.57186 +vn -0.20133 0.77406 -0.60024 +vn -0.19922 0.7832 -0.58898 +vn -0.01602 0.82266 -0.5683 +vn -0.01574 0.82437 -0.56583 +vn -0.14255 0.79675 -0.58726 +vn -0.14066 0.80351 -0.57843 +vn -0.27578 0.73656 -0.6176 +vn -0.27387 0.74835 -0.60412 +vn -0.36571 0.67736 -0.63831 +vn -0.36481 0.69163 -0.62335 +vn -0.46631 0.58978 -0.65933 +vn -0.4674 0.60541 -0.64422 +vn -0.56619 0.47193 -0.6758 +vn -0.5698 0.48665 -0.66219 +vn -0.64984 0.33206 -0.68369 +vn -0.65517 0.34321 -0.67302 +vn -0.70561 0.18772 -0.68329 +vn -0.71047 0.19387 -0.67649 +vn -0.73167 0.05684 -0.67928 +vn -0.73371 0.05849 -0.67694 +vn -0.73449 -0.03626 -0.67765 +vn -0.73426 -0.03639 -0.67789 +vn -0.72608 -0.10816 -0.67905 +vn -0.7263 -0.10807 -0.67883 +vn -0.7108 -0.17792 -0.68052 +vn -0.71252 -0.17737 -0.67886 +vn -0.69061 -0.24447 -0.68065 +vn -0.69463 -0.24364 -0.67686 +vn -0.66719 -0.30735 -0.67853 +vn -0.67393 -0.30667 -0.67214 +vn -0.64179 -0.36647 -0.67365 +vn -0.65132 -0.36648 -0.66444 +vn -0.61526 -0.42194 -0.66589 +vn -0.62732 -0.42314 -0.65378 +vn -0.58808 -0.4739 -0.65543 +vn -0.60213 -0.47664 -0.64051 +vn -0.56043 -0.52238 -0.64269 +vn -0.57575 -0.52683 -0.62526 +vn -0.53231 -0.56726 -0.62837 +vn -0.54808 -0.57335 -0.609 +vn -0.50365 -0.60828 -0.61345 +vn -0.51897 -0.61567 -0.59298 +vn -0.47433 -0.64501 -0.59914 +vn -0.48833 -0.65314 -0.57874 +vn -0.41348 -0.70336 -0.57821 +vn -0.42256 -0.71055 -0.56264 +vn 0.40731 0.7157 -0.56734 +vn 0.41569 0.72179 -0.55336 +vn 0.45156 0.6871 -0.56921 +vn 0.46474 0.69502 -0.5486 +vn 0.49114 0.65154 -0.57816 +vn 0.50814 0.65989 -0.55348 +vn 0.52593 0.61084 -0.59184 +vn 0.54558 0.61855 -0.56546 +vn 0.04126 -0.82049 -0.57018 +vn 0.04004 -0.82662 -0.56133 +vn 0.01305 -0.82271 -0.56831 +vn 0.01263 -0.8248 -0.56528 +vn 0.00348 -0.81756 -0.57583 +vn 0.00209 -0.82283 -0.56828 +vn -0.27593 0.96067 -0.03133 +vn 0.27593 0.96067 -0.03133 +vn 0.3179 0.69479 -0.64514 +vn -0.88682 0.45774 -0.06338 +vn -0.91483 0.39595 -0.07941 +vn -0.92005 0.3854 -0.07051 +vn -0.00243 0.81701 -0.57661 +vn -0.35567 -0.71889 -0.59724 +vn -0.17898 0.28368 -0.94207 +vn 0.19369 -0.15039 -0.96947 +vn 0.18272 -0.1215 -0.97563 +vn -0.05487 0.16551 -0.98468 +vn -0.17739 0.29621 -0.9385 +vn 0.29611 0.93038 -0.21612 +vn -0.29611 0.93038 -0.21612 +vn 0.70221 -0.5823 -0.40966 +vn -0.70221 -0.5823 -0.40966 +vn 0.17904 0.97512 -0.13067 +vn 0.17184 0.97519 -0.13959 +vn -0.17184 0.97519 -0.13959 +vn -0.18225 0.97421 -0.13301 +vn 0.061 -0.02221 -0.99789 +vn 0.05656 -0.00934 -0.99836 +vn -0.05571 0.14761 -0.98748 +vn -0.62278 0.74 -0.25406 +vn 0.79118 -0.58086 -0.19141 +vn 0.7924 -0.57861 -0.19315 +vn 0.91717 -0.23256 -0.32361 +vn 0.91208 -0.2175 -0.34756 +vn -0.8589 0.37746 -0.34615 +vn -0.87016 0.35382 -0.34297 +vn 0.33199 0.86843 -0.36825 +vn -0.31228 0.86873 -0.38443 +vn -0.33781 0.86342 -0.3747 +vn 0.31228 0.86873 -0.38443 +vn 0.3681 0.92885 0.04179 +vn -0.3681 0.92885 0.04179 +vn -0.92995 -0.3522 0.10558 +vn -0.91628 -0.38027 0.12584 +vn -0.73539 0.67248 0.08349 +vn 0.75509 0.65 0.08572 +vn 0.91892 -0.3804 0.10432 +vn -0.90561 0.4086 -0.11365 +vn -0.90702 0.40829 -0.10298 +vn -0.90915 0.40566 -0.09426 +vn -0.9123 0.40032 -0.0863 +vn -0.90491 0.41301 -0.10273 +vn -0.38667 0.89421 -0.22558 +vn 0.38667 0.89421 -0.22558 +vn -0.05399 0.1427 -0.98829 +vn -0.05449 0.1204 -0.99123 +vn 0.05542 -0.075 -0.99564 +vn 0.05218 -0.06383 -0.9966 +vn 0.92526 0.3645 0.10504 +vn -0.92526 0.3645 0.10504 +vn -0.31406 0.39274 -0.86436 +vn -0.3236 0.35388 -0.87753 +vn 0.34268 -0.26545 -0.90117 +vn 0.32811 -0.22816 -0.91667 +vn 0.92731 -0.35195 0.12735 +vn 0.98896 -0.0592 0.13582 +vn -0.98499 -0.1072 0.13527 +vn -0.9919 -0.05881 0.11261 +vn 0.17684 -0.20866 -0.96187 +vn 0.16778 -0.18053 -0.96915 +vn -0.16957 0.29435 -0.94053 +vn -0.17093 0.27964 -0.94477 +vn 0.05228 0.00662 -0.99861 +vn 0.04843 0.02176 -0.99859 +vn -0.05112 0.21012 -0.97634 +vn -0.05196 0.11181 -0.99237 +vn 0.98788 -0.10728 0.11215 +vn -0.75313 0.64969 0.10343 +vn 0.47701 0.87723 0.05415 +vn 0.31069 0.73743 -0.59972 +vn -0.31069 0.73743 -0.59972 +vn 0.54175 -0.30907 -0.78165 +vn 0.527 -0.27259 -0.80497 +vn -0.48945 0.44354 -0.7508 +vn -0.51566 0.3808 -0.76752 +vn -0.16266 0.27368 -0.94797 +vn -0.16155 0.29055 -0.94312 +vn 0.16204 -0.28318 -0.94528 +vn 0.15474 -0.25584 -0.95425 +vn -0.59774 0.77267 -0.21377 +vn -0.72561 0.65756 -0.20273 +vn 0.83595 -0.51676 -0.1848 +vn 0.83721 -0.51396 -0.18689 +vn 0.15615 -0.22002 -0.96292 +vn 0.14862 -0.1875 -0.97095 +vn -0.04988 0.2053 -0.97743 +vn -0.1481 0.3795 -0.91326 +vn -0.15435 0.26491 -0.95184 +vn 0.04334 0.29332 -0.95503 +vn 0.03688 0.31856 -0.94719 +vn -0.04829 0.45625 -0.88854 +vn -0.07537 0.56514 -0.82155 +vn 0.07537 0.56514 -0.82155 +vn 0.37296 0.75565 -0.53842 +vn -0.99201 -0.04384 -0.11831 +vn 0.59365 -0.64422 -0.48224 +vn -0.59365 -0.64422 -0.48224 +vn 0.06748 0.99491 -0.07485 +vn 0.06298 0.995 -0.07753 +vn -0.39822 -0.50058 -0.76867 +vn 0.39822 -0.50058 -0.76867 +vn -0.30433 0.36859 -0.87837 +vn 0.31258 -0.32497 -0.89257 +vn 0.30031 -0.28811 -0.90929 +vn -0.2969 0.40457 -0.86497 +vn 0.15648 0.98745 -0.02149 +vn -0.15648 0.98745 -0.02149 +vn -0.14316 0.35876 -0.92239 +vn 0.1479 0.08169 -0.98562 +vn 0.13683 0.12762 -0.98234 +vn -0.05006 0.46338 -0.88475 +vn -0.12788 0.5791 -0.80517 +vn -0.22801 0.56494 -0.79301 +vn 0.22801 0.56494 -0.79301 +vn 0.87154 -0.45644 -0.1791 +vn 0.87276 -0.45313 -0.18155 +vn -0.99717 0.03363 -0.0672 +vn -0.99461 -0.03832 -0.09635 +vn -0.99621 -0.02731 -0.0826 +vn -0.99728 -0.01006 -0.07302 +vn -0.9977 0.01511 -0.06601 +vn -0.99772 0.00657 -0.06723 +vn -0.99315 0.09577 -0.06693 +vn 0.28389 -0.39648 -0.87305 +vn 0.27408 -0.36082 -0.89145 +vn -0.2801 0.4178 -0.86428 +vn -0.2872 0.3769 -0.8806 +vn -0.36855 -0.76828 -0.52337 +vn -0.98633 0.15077 -0.06647 +vn -0.64108 -0.67019 -0.374 +vn -0.57712 -0.66869 -0.46881 +vn 0.63535 -0.67746 -0.37065 +vn 0.66014 -0.66878 -0.34199 +vn 0.5004 -0.36159 -0.78668 +vn 0.48702 -0.32436 -0.81093 +vn -0.97778 0.199 -0.06589 +vn 0.95333 0.28996 -0.08423 +vn 0.92356 -0.37498 -0.08015 +vn -0.68358 0.43007 -0.5897 +vn -0.71411 0.36765 -0.59572 +vn 0.7332 -0.32342 -0.59818 +vn 0.72454 -0.2956 -0.62262 +vn -0.27069 0.3861 -0.88185 +vn -0.26378 0.43284 -0.86202 +vn 0.25562 -0.48154 -0.83832 +vn 0.24826 -0.44782 -0.85897 +vn 0.08843 -0.25129 -0.96386 +vn -0.08843 -0.25129 -0.96386 +vn -0.96358 0.25942 -0.06493 +vn 0.24896 -0.44273 -0.8614 +vn 0.24184 -0.40345 -0.88246 +vn -0.23783 0.51602 -0.8229 +vn -0.04643 0.72297 -0.68932 +vn 0.02223 0.63724 -0.77034 +vn 0.0134 0.66437 -0.74729 +vn -0.2549 0.39643 -0.88197 +vn 0.91497 -0.39666 -0.07408 +vn 0.89226 -0.44571 -0.07223 +vn 0.89944 -0.43282 -0.06061 +vn -0.89133 -0.4363 -0.12317 +vn 0.17204 0.98426 -0.04044 +vn -0.17204 0.98426 -0.04044 +vn -0.72638 0.65624 -0.20427 +vn -0.8189 0.54074 -0.19236 +vn 0.90936 -0.37905 -0.17143 +vn 0.90996 -0.37454 -0.17801 +vn 0.08627 0.32931 -0.94027 +vn -0.08627 0.32931 -0.94027 +vn 0.89741 -0.26371 -0.35372 +vn 0.8901 -0.24516 -0.38422 +vn -0.86703 0.34198 -0.36236 +vn -0.86249 0.35229 -0.36333 +vn -0.39274 0.86254 -0.31903 +vn -0.36825 0.86843 -0.33199 +vn 0.31903 0.86254 -0.39274 +vn 0.3747 0.86342 -0.33781 +vn 0.93755 -0.33413 -0.09677 +vn -0.92677 -0.36694 -0.08034 +vn -0.05047 0.73695 -0.67406 +vn 0.11042 0.512 -0.85186 +vn 0.0949 0.55856 -0.82402 +vn -0.10291 0.78444 -0.6116 +vn -0.12666 0.57344 -0.80939 +vn 0.26747 -0.25116 -0.93026 +vn -0.26747 -0.25116 -0.93026 +vn -0.232 0.48609 -0.84255 +vn 0.25773 -0.17082 -0.951 +vn 0.2459 -0.11041 -0.96299 +vn -0.19899 0.67312 -0.71225 +vn -0.89302 -0.43879 -0.09991 +vn -0.89121 -0.4462 -0.08158 +vn -0.88674 -0.45711 -0.06895 +vn -0.87994 -0.4713 -0.05977 +vn -0.87263 -0.48539 -0.05396 +vn -0.86294 -0.503 -0.04814 +vn -0.88231 -0.46691 -0.05946 +vn -0.85081 -0.52234 -0.05733 +vn 0.85081 -0.52234 -0.05733 +vn -0.25505 0.95993 -0.11607 +vn 0.25505 0.95993 -0.11607 +vn 0.45842 -0.4215 -0.78243 +vn 0.44702 -0.38446 -0.80769 +vn -0.44149 0.47032 -0.76413 +vn -0.46264 0.40844 -0.78685 +vn -0.94456 0.32212 -0.06365 +vn 0.94451 0.32213 -0.06425 +vn 0.95041 0.30262 -0.07167 +vn 0.93033 0.36094 -0.06483 +vn 0.89975 0.4321 -0.06121 +vn -0.37961 0.56478 -0.73275 +vn 0.37961 0.56478 -0.73275 +vn 0.26093 0.32916 -0.90751 +vn -0.26093 0.32916 -0.90751 +vn -0.8019 -0.59501 -0.05404 +vn 0.8019 -0.59501 -0.05404 +vn 0.69429 -0.37257 -0.61575 +vn 0.68574 -0.34326 -0.64182 +vn -0.00504 -0.92688 -0.37532 +vn 0.00227 -0.89303 -0.44998 +vn 0.01354 -0.88443 -0.46647 +vn 0.00859 -0.91208 -0.40993 +vn 0.55345 0.71873 -0.42085 +vn 0.56623 0.72154 -0.39846 +vn 0.45487 0.78982 -0.41144 +vn 0.4613 0.79253 -0.39887 +vn 0.40208 0.81466 -0.41792 +vn 0.38179 0.8038 -0.45623 +vn -0.018 0.91037 -0.4134 +vn -0.01774 0.91135 -0.41125 +vn -0.39235 -0.8179 -0.42083 +vn -0.39597 -0.80167 -0.44781 +vn -0.42159 -0.80383 -0.41966 +vn -0.42558 -0.80638 -0.41065 +vn -0.05748 0.90728 -0.41659 +vn -0.05673 0.91017 -0.41034 +vn -0.11017 0.89948 -0.42284 +vn -0.10865 0.9023 -0.41719 +vn -0.1616 0.88769 -0.43115 +vn -0.15955 0.89175 -0.42346 +vn -0.22941 0.86646 -0.44341 +vn -0.22684 0.87214 -0.4335 +vn -0.31635 0.82966 -0.45999 +vn -0.3135 0.83731 -0.44793 +vn -0.42279 0.7686 -0.4801 +vn -0.42025 0.77838 -0.46639 +vn -0.54313 0.67394 -0.50081 +vn -0.54185 0.6853 -0.48658 +vn -0.66268 0.54169 -0.51714 +vn -0.66347 0.55301 -0.50397 +vn -0.76111 0.38125 -0.52475 +vn -0.76372 0.39025 -0.51423 +vn -0.82419 0.21486 -0.52398 +vn -0.82708 0.22004 -0.51723 +vn -0.85185 0.06482 -0.51976 +vn -0.85316 0.06627 -0.51742 +vn -0.85428 -0.04205 -0.51811 +vn -0.85413 -0.04217 -0.51834 +vn -0.8451 -0.12601 -0.51954 +vn -0.84525 -0.12591 -0.51933 +vn -0.82775 -0.2081 -0.52107 +vn -0.82896 -0.20749 -0.5194 +vn -0.80384 -0.28666 -0.52122 +vn -0.8067 -0.28556 -0.51738 +vn -0.775 -0.36055 -0.51901 +vn -0.77987 -0.35926 -0.51258 +vn -0.74273 -0.42917 -0.51397 +vn -0.74965 -0.42806 -0.50478 +vn -0.70824 -0.49226 -0.50604 +vn -0.71699 -0.4917 -0.49412 +vn -0.67245 -0.54979 -0.49552 +vn -0.68262 -0.55008 -0.48109 +vn -0.63604 -0.60183 -0.48296 +vn -0.64705 -0.60311 -0.46646 +vn -0.59945 -0.6485 -0.46915 +vn -0.61066 -0.65076 -0.45122 +vn -0.56297 -0.6899 -0.45508 +vn -0.57377 -0.69297 -0.43656 +vn -0.52682 -0.7261 -0.44186 +vn -0.53661 -0.72969 -0.42379 +vn -0.49114 -0.75714 -0.43072 +vn -0.4994 -0.76088 -0.41431 +vn -0.45603 -0.78306 -0.4229 +vn -0.46234 -0.78648 -0.40949 +vn 0.50628 0.75714 -0.41283 +vn 0.51626 0.76026 -0.3943 +vn 0.59612 0.67585 -0.43343 +vn 0.61084 0.67786 -0.40913 +vn 0.63431 0.62963 -0.44857 +vn 0.65008 0.63055 -0.42403 +vn 0.6683 0.58104 -0.46452 +vn 0.68422 0.58076 -0.44109 +vn 0.69856 0.53081 -0.47985 +vn 0.71379 0.52938 -0.45853 +vn 0.7257 0.4794 -0.4935 +vn 0.7395 0.477 -0.47498 +vn 0.75034 0.42689 -0.50473 +vn 0.76211 0.42384 -0.48943 +vn 0.77302 0.37303 -0.51311 +vn 0.78233 0.36974 -0.50124 +vn 0.7941 0.31715 -0.51848 +vn 0.80074 0.31408 -0.51006 +vn 0.8136 0.25816 -0.52097 +vn 0.81763 0.25577 -0.51582 +vn 0.83108 0.19449 -0.52104 +vn 0.83285 0.19316 -0.5187 +vn 0.84538 0.12409 -0.51956 +vn 0.8456 0.12387 -0.51924 +vn 0.8542 0.04437 -0.51805 +vn 0.85395 0.04469 -0.51843 +vn 0.84928 -0.08995 -0.52022 +vn 0.85126 -0.09393 -0.51627 +vn 0.80222 -0.28959 -0.52209 +vn 0.80492 -0.30257 -0.51045 +vn 0.70578 -0.48677 -0.51471 +vn 0.70511 -0.5061 -0.49666 +vn 0.57821 -0.64699 -0.49707 +vn 0.57334 -0.66725 -0.47545 +vn 0.44838 -0.75713 -0.47509 +vn 0.44128 -0.77453 -0.45318 +vn 0.33545 -0.82496 -0.45489 +vn 0.32821 -0.83846 -0.43504 +vn 0.24508 -0.86431 -0.43921 +vn 0.23882 -0.87432 -0.42253 +vn 0.1756 -0.88644 -0.42824 +vn 0.17064 -0.8937 -0.41495 +vn 0.1025 -0.90119 -0.42112 +vn 0.09976 -0.90901 -0.40465 +vn 0.04402 -0.90882 -0.41485 +vn 0.0427 -0.9125 -0.40685 +vn -0.93778 0.34422 -0.04556 +vn -0.00212 0.91244 -0.4092 +vn -0.0027 0.91055 -0.41338 +vn -0.09114 0.06969 -0.9934 +vn 0.09114 0.06969 -0.9934 +vn 0.2127 0.97444 -0.07234 +vn -0.2127 0.97444 -0.07234 +vn 0.41591 -0.48927 -0.76657 +vn 0.40693 -0.45355 -0.7929 +vn -0.41439 0.4938 -0.76449 +vn -0.4316 0.43965 -0.78767 +vn 0.83494 -0.39811 -0.37998 +vn -0.83494 -0.39811 -0.37998 +vn -0.9099 0.02457 -0.41409 +vn 0.9099 0.02457 -0.41409 +vn -0.07854 0.99487 -0.0638 +vn 0.07854 0.99487 -0.0638 +vn 0.42591 0.73736 -0.52431 +vn -0.42591 0.73736 -0.52431 +vn 0.8019 0.47304 -0.36494 +vn -0.8019 0.47304 -0.36494 +vn 0.99649 -0.08374 -0.00175 +vn 0.31458 -0.9291 -0.19444 +vn 0.31423 -0.92937 -0.19374 +vn 0.31664 0.93038 -0.18472 +vn -0.31664 0.93038 -0.18472 +vn 0.17579 0.97401 -0.1428 +vn 0.19488 0.97422 -0.11369 +vn -0.20106 0.97403 -0.10416 +vn -0.19163 0.97508 -0.11179 +vn -0.15753 0.95743 -0.24188 +vn 0.9279 0.36754 -0.06253 +vn -0.9279 0.36754 -0.06253 +vn 0.94447 0.32236 -0.06365 +vn 0.38337 -0.90367 -0.1908 +vn 0.38295 -0.90405 -0.18985 +vn -0.0372 0.98788 -0.15068 +vn -0.14127 0.9707 -0.19439 +vn -0.15772 0.96774 -0.19647 +vn -0.198 0.96035 -0.19626 +vn -0.75597 -0.65262 -0.05094 +vn 0.75597 -0.65262 -0.05094 +vn -0.27566 0.06965 -0.95873 +vn 0.27566 0.06965 -0.95873 +vn -0.54586 -0.50049 -0.67197 +vn 0.54586 -0.50049 -0.67197 +vn -0.15244 0.83088 -0.53516 +vn 0.22567 0.32514 -0.91834 +vn 0.20324 0.39793 -0.89462 +vn -0.10408 0.7897 -0.60459 +vn -0.19698 0.65993 -0.72504 +vn 0.37257 -0.56482 -0.73632 +vn 0.36618 -0.53166 -0.76371 +vn -0.38755 0.51992 -0.76124 +vn -0.40512 0.46023 -0.78998 +vn 0.64229 0.70853 -0.2923 +vn -0.64229 0.70853 -0.2923 +vn -0.0445 0.90309 -0.42715 +vn -0.00425 0.87654 -0.4813 +vn -0.00933 0.89081 -0.45427 +vn 0.45832 -0.86909 -0.18607 +vn -0.19595 0.96133 -0.19353 +vn 0.44526 -0.25107 -0.85948 +vn -0.44526 -0.25107 -0.85948 +vn -0.66223 0.4019 -0.63239 +vn -0.62252 0.48561 -0.61371 +vn 0.65061 -0.42813 -0.62723 +vn 0.64271 -0.39789 -0.65468 +vn -0.37928 0.48337 -0.78899 +vn -0.36097 0.54933 -0.75362 +vn 0.32768 -0.64682 -0.68866 +vn 0.3238 -0.61733 -0.71698 +vn -0.82011 0.53761 -0.19594 +vn -0.87771 0.44163 -0.18597 +vn 0.93808 -0.30258 -0.16868 +vn 0.93826 -0.29701 -0.17733 +vn -0.71514 -0.69732 -0.04819 +vn 0.71514 -0.69732 -0.04819 +vn 0.43438 0.32904 -0.83848 +vn -0.43438 0.32904 -0.83848 +vn -0.06649 0.98091 -0.18275 +vn -0.04563 0.95486 -0.29352 +vn 0.04872 0.83962 -0.54099 +vn 0.03908 0.86093 -0.50722 +vn -0.06497 0.95834 -0.27814 +vn 0.31971 -0.62977 -0.70794 +vn 0.31666 -0.59624 -0.73771 +vn -0.32128 0.62504 -0.71141 +vn -0.3541 0.50972 -0.78409 +vn 0.73994 -0.58231 -0.33674 +vn -0.73994 -0.58231 -0.33674 +vn 0.91489 0.39898 -0.06165 +vn -0.91489 0.39898 -0.06165 +vn -0.40743 0.89421 -0.18542 +vn 0.40743 0.89421 -0.18542 +vn -0.31758 0.59294 -0.73998 +vn 0.35448 -0.42659 -0.83208 +vn 0.34826 -0.36884 -0.86178 +vn -0.26462 0.7469 -0.61001 +vn 0.9962 -0.0871 -0.00244 +vn 0.85952 -0.3307 -0.38969 +vn 0.85014 -0.30808 -0.42702 +vn -0.85688 0.33716 -0.38998 +vn -0.83808 0.38002 -0.39141 +vn -0.6682 -0.74262 -0.04503 +vn 0.6682 -0.74262 -0.04503 +vn -0.02193 0.97494 -0.2214 +vn -0.02605 0.97999 -0.19732 +vn -0.45888 0.06963 -0.88577 +vn 0.45888 0.06963 -0.88577 +vn 0.60255 -0.48942 -0.6304 +vn 0.59585 -0.45911 -0.65892 +vn 0.40045 0.86846 -0.29227 +vn -0.38443 0.86873 -0.31228 +vn -0.40749 0.86342 -0.29741 +vn 0.38443 0.86873 -0.31228 +vn 0.00181 0.96818 -0.25025 +vn -0.00519 0.97459 -0.22393 +vn -0.52036 0.5647 -0.64058 +vn 0.52036 0.5647 -0.64058 +vn -0.08536 0.96701 -0.24001 +vn -0.1524 0.83053 -0.53572 +vn 0.123 0.78544 -0.6066 +vn 0.10647 0.81754 -0.56595 +vn -0.06711 0.96358 -0.25885 +vn 0.41145 0.83068 -0.37506 +vn -0.39953 -0.83716 -0.37354 +vn 0.90383 0.42354 -0.06091 +vn -0.90719 0.4131 -0.07975 +vn -0.90927 0.41018 -0.07061 +vn -0.91317 0.40278 -0.06231 +vn -0.91961 0.38907 -0.05422 +vn -0.92949 0.36598 -0.04599 +vn -0.90896 0.41236 -0.06125 +vn 0.36595 0.05929 -0.92874 +vn 0.34281 0.15657 -0.92626 +vn -0.26386 0.7308 -0.62952 +vn -0.19813 0.86757 -0.45614 +vn -0.89979 0.42861 -0.08172 +vn -0.56386 0.52946 -0.63382 +vn -0.59976 0.44966 -0.66189 +vn 0.55058 -0.55556 -0.62307 +vn 0.54555 -0.52626 -0.65225 +vn -0.1489 0.98864 -0.02045 +vn 0.1489 0.98864 -0.02045 +vn -0.0247 0.97409 0.22483 +vn -0.04277 0.97763 0.20592 +vn -0.0459 0.9756 0.21471 +vn 0.67552 -0.6702 -0.30742 +vn 0.65268 -0.67799 -0.33813 +vn -0.65268 -0.67799 -0.33813 +vn -0.66939 -0.67759 -0.30463 +vn -0.8789 0.43668 -0.19196 +vn -0.90954 0.37186 -0.1856 +vn 0.95078 -0.25737 -0.17258 +vn -0.63504 -0.77129 -0.04279 +vn 0.63504 -0.77129 -0.04279 +vn -0.02742 0.9713 0.23627 +vn -0.05823 0.98094 0.18537 +vn -0.06144 0.97952 0.19174 +vn -0.00277 0.9704 0.24149 +vn 0.61032 -0.25102 -0.75133 +vn -0.61032 -0.25102 -0.75133 +vn 0.03417 0.96018 -0.27729 +vn 0.02343 0.9682 -0.24906 +vn -0.5737 0.6018 -0.5556 +vn 0.49518 -0.62529 -0.60317 +vn 0.49205 -0.59818 -0.63251 +vn 0.59542 0.32898 -0.73298 +vn -0.59542 0.32898 -0.73298 +vn 0.81246 -0.39953 -0.4246 +vn 0.81036 -0.38005 -0.44596 +vn -0.82961 0.36075 -0.42615 +vn -0.79594 0.43348 -0.42257 +vn 0.43681 -0.69669 -0.56906 +vn 0.43555 -0.67287 -0.59794 +vn -0.5317 0.50862 -0.6772 +vn -0.49021 0.6019 -0.63041 +vn 0.67905 -0.6443 -0.35179 +vn -0.67905 -0.6443 -0.35179 +vn -0.6622 -0.748 -0.04462 +vn 0.6622 -0.748 -0.04462 +vn 0.88557 -0.45608 -0.08806 +vn 0.52431 0.73736 -0.42591 +vn -0.52431 0.73736 -0.42591 +vn -0.48666 0.56721 -0.66441 +vn -0.45187 0.64217 -0.61922 +vn 0.37599 -0.76702 -0.51992 +vn 0.37631 -0.74724 -0.54774 +vn -0.0857 0.97058 -0.22503 +vn 0.23253 0.70131 -0.67386 +vn 0.20606 0.75042 -0.62802 +vn -0.19831 0.86405 -0.4627 +vn -0.10349 0.97403 -0.2014 +vn 0.36532 -0.76407 -0.53174 +vn 0.36674 -0.74234 -0.56074 +vn -0.39828 0.71085 -0.57971 +vn 0.02464 0.96685 0.25415 +vn -0.07193 0.98398 0.16312 +vn -0.07497 0.98305 0.16733 +vn -0.00468 0.96674 0.25573 +vn -0.45015 0.60667 -0.65522 +vn -0.62898 0.06961 -0.7743 +vn 0.62898 0.06961 -0.7743 +vn -0.0024 0.99965 -0.02616 +vn 0.0024 0.99965 -0.02616 +vn 0.33365 0.93039 -0.15184 +vn -0.33365 0.93039 -0.15184 +vn 0.20186 0.9751 -0.09187 +vn 0.19672 0.97515 -0.10191 +vn -0.19672 0.97515 -0.10191 +vn -0.20535 0.97422 -0.09345 +vn -0.67197 -0.50049 -0.54586 +vn 0.67197 -0.50049 -0.54586 +vn 0.99604 -0.08891 -0.00278 +vn 0.8918 -0.44653 -0.07276 +vn -0.27017 0.95967 -0.07768 +vn -0.26051 0.9614 -0.08861 +vn 0.26528 0.95994 -0.09023 +vn -0.39895 0.68275 -0.61212 +vn -0.32566 0.80529 -0.49544 +vn 0.42106 -0.63518 -0.6475 +vn 0.423 -0.59542 -0.68304 +vn 0.00726 0.99965 -0.02526 +vn -0.00726 0.99965 -0.02526 +vn 0.77402 -0.45665 -0.4386 +vn 0.7723 -0.43646 -0.46159 +vn 0.42623 0.8607 -0.27843 +vn -0.44422 -0.85095 -0.28028 +vn -0.44672 -0.85175 -0.27381 +vn -0.41342 -0.86603 -0.28122 +vn -0.51783 -0.80534 -0.2886 +vn -0.52296 -0.8062 -0.27668 +vn -0.48019 -0.83034 -0.28275 +vn -0.48412 -0.83129 -0.2731 +vn -0.59777 -0.74055 -0.30701 +vn -0.60445 -0.74073 -0.2932 +vn -0.55707 -0.77555 -0.29697 +vn -0.56313 -0.77614 -0.28369 +vn -0.68238 -0.65296 -0.32863 +vn -0.68917 -0.6521 -0.31593 +vn -0.63967 -0.69985 -0.31784 +vn -0.64661 -0.69952 -0.30426 +vn -0.76757 -0.53886 -0.34708 +vn -0.77291 -0.53722 -0.33764 +vn -0.72529 -0.59942 -0.33861 +vn -0.73153 -0.59809 -0.32733 +vn -0.84559 -0.39628 -0.35768 +vn -0.84848 -0.39474 -0.35252 +vn -0.80813 -0.47111 -0.35354 +vn -0.8123 -0.46938 -0.34619 +vn -0.90485 -0.22823 -0.35938 +vn -0.90553 -0.22766 -0.35804 +vn -0.87839 -0.31495 -0.3595 +vn -0.88004 -0.31383 -0.35641 +vn -0.933 -0.04582 -0.35694 +vn -0.93292 -0.04592 -0.35713 +vn -0.92345 -0.13779 -0.35812 +vn -0.92353 -0.1377 -0.35795 +vn -0.90296 0.23188 -0.36179 +vn -0.90411 0.23569 -0.35642 +vn -0.931 0.06976 -0.35828 +vn -0.93163 0.07089 -0.35642 +vn -0.72746 0.58614 -0.3567 +vn -0.72629 0.59369 -0.34646 +vn -0.83567 0.41248 -0.36264 +vn -0.83609 0.41881 -0.35433 +vn -0.46026 0.82528 -0.32721 +vn -0.45711 0.831 -0.31698 +vn -0.59429 0.72712 -0.34368 +vn -0.59171 0.73423 -0.33284 +vn -0.2473 0.92183 -0.29845 +vn -0.24485 0.92478 -0.29125 +vn -0.34256 0.88639 -0.31138 +vn -0.33959 0.8906 -0.30252 +vn -0.11806 0.95195 -0.28259 +vn -0.11676 0.95331 -0.27851 +vn -0.1736 0.94146 -0.28898 +vn -0.17176 0.94349 -0.28342 +vn -0.06147 0.95868 -0.27776 +vn -0.06082 0.96003 -0.27322 +vn -0.01922 0.96116 -0.27533 +vn -0.01901 0.96161 -0.27376 +vn 0.00561 -0.97044 -0.24126 +vn 0.00868 -0.95318 -0.30228 +vn 0.00873 -0.92815 -0.3721 +vn 0.00876 -0.96205 -0.27272 +vn 0.04493 -0.96003 -0.27626 +vn 0.04375 -0.96179 -0.27025 +vn 0.10471 -0.95413 -0.28048 +vn 0.10207 -0.95795 -0.26817 +vn 0.17977 -0.94149 -0.28509 +vn 0.17509 -0.94529 -0.27526 +vn 0.25195 -0.92238 -0.29281 +vn 0.24574 -0.9279 -0.28038 +vn 0.34724 -0.88706 -0.30421 +vn 0.33952 -0.89502 -0.28925 +vn 0.46908 -0.82331 -0.31958 +vn 0.4605 -0.83446 -0.30267 +vn 0.61353 -0.71402 -0.33727 +vn 0.60589 -0.72834 -0.32003 +vn 0.76023 -0.54566 -0.35257 +vn 0.75601 -0.56076 -0.33763 +vn 0.87337 -0.3283 -0.35978 +vn 0.87317 -0.33936 -0.34986 +vn 0.92782 -0.10238 -0.35872 +vn 0.92872 -0.106 -0.35531 +vn 0.93287 0.04882 -0.35689 +vn 0.93273 0.04911 -0.35722 +vn 0.92381 0.13532 -0.35814 +vn 0.92395 0.13511 -0.35787 +vn 0.90908 0.21083 -0.35935 +vn 0.88372 0.23931 -0.40221 +vn 0.87422 0.27348 -0.40118 +vn 0.903 0.24453 -0.35326 +vn 0.86955 0.34107 -0.35714 +vn 0.87371 0.3377 -0.35014 +vn 0.84602 0.39984 -0.35266 +vn 0.85189 0.39587 -0.34289 +vn 0.82003 0.45606 -0.34577 +vn 0.8275 0.45183 -0.33332 +vn 0.7913 0.51041 -0.33663 +vn 0.8001 0.50626 -0.32177 +vn 0.75942 0.56322 -0.32568 +vn 0.76919 0.55944 -0.30883 +vn 0.72395 0.61449 -0.31354 +vn 0.73423 0.6113 -0.29532 +vn 0.68449 0.66394 -0.30109 +vn 0.69476 0.66152 -0.28231 +vn 0.64077 0.71108 -0.28945 +vn 0.65046 0.70951 -0.2711 +vn 0.48393 0.83139 -0.27313 +vn 0.48835 0.83182 -0.2638 +vn 0.59267 0.75524 -0.27992 +vn 0.60118 0.75453 -0.26319 +vn 0.54028 0.79563 -0.27397 +vn 0.54703 0.79564 -0.26021 +vn -0.00236 0.96135 -0.27531 +vn 0.37108 0.84461 -0.38592 +vn -0.43038 -0.82661 -0.36261 +vn -0.94859 0.31476 -0.03316 +vn -0.00664 0.95276 -0.30365 +vn -0.91042 0.36504 -0.19465 +vn -0.92221 0.33557 -0.19215 +vn 0.94771 -0.26096 -0.18368 +vn 0.94688 -0.25194 -0.19985 +vn -0.77338 -0.6318 -0.05212 +vn 0.77338 -0.6318 -0.05212 +vn 0.00195 0.70469 0.70951 +vn -0.05419 0.82897 0.55667 +vn -0.07959 0.77662 0.62492 +vn 0.41088 0.85809 -0.30798 +vn -0.9461 -0.31752 -0.06376 +vn 0.9461 -0.31752 -0.06376 +vn 0.93998 -0.33411 -0.06931 +vn 0.07882 0.95116 -0.29846 +vn 0.06318 0.96098 -0.2693 +vn 0.86464 0.499 -0.05827 +vn -0.90047 0.42913 -0.07074 +vn -0.90053 0.43046 -0.06133 +vn -0.90017 0.43243 -0.05194 +vn -0.90094 0.42967 -0.06071 +vn -0.86464 0.499 -0.05827 +vn -0.41938 -0.85659 -0.30062 +vn -0.44921 0.86259 -0.23272 +vn -0.42859 0.86821 -0.25003 +vn 0.39274 0.86254 -0.31903 +vn 0.43574 0.86343 -0.25421 +vn 0.86847 -0.39812 -0.29539 +vn -0.86847 -0.39812 -0.29539 +vn -0.94645 0.02457 -0.32192 +vn 0.94645 0.02457 -0.32192 +vn 0.05031 0.77174 0.63394 +vn -0.10489 0.79916 0.5919 +vn 0.8341 0.47306 -0.2837 +vn -0.8341 0.47306 -0.2837 +vn 0.76238 0.64508 -0.05137 +vn -0.76238 0.64508 -0.05137 +vn -0.32764 0.79025 -0.51784 +vn -0.24101 0.89717 -0.37014 +vn 0.5019 -0.25733 -0.82576 +vn 0.49245 -0.16175 -0.85518 +vn 0.72801 -0.51956 -0.44729 +vn 0.72694 -0.49921 -0.47154 +vn -0.78495 0.40911 -0.46527 +vn -0.73499 0.50754 -0.44967 +vn -0.66807 0.70855 -0.22723 +vn 0.66807 0.70855 -0.22723 +vn -0.0121 0.99965 -0.02335 +vn 0.0121 0.99965 -0.02335 +vn 0.74546 0.6657 -0.03356 +vn 0.59675 0.80198 -0.02686 +vn -0.59675 0.80198 -0.02686 +vn -0.74546 0.6657 -0.03356 +vn -0.64058 0.5647 -0.52036 +vn 0.64058 0.5647 -0.52036 +vn -0.08982 0.99487 -0.04653 +vn 0.08982 0.99487 -0.04653 +vn -0.76965 -0.58233 -0.26178 +vn 0.76965 -0.58233 -0.26178 +vn 0.02411 0.96223 0.27117 +vn -0.08435 0.98674 0.13868 +vn -0.08699 0.98617 0.14108 +vn -0.10267 0.97627 -0.19065 +vn 0.05945 0.96399 0.25922 +vn 0.27761 0.96061 -0.0125 +vn -0.27761 0.96061 -0.0125 +vn 0.03631 0.67691 0.73517 +vn 0.15518 0.58959 0.79265 +vn -0.14858 0.84119 0.51992 +vn -0.14685 0.84185 0.51936 +vn -0.42378 0.89422 -0.14414 +vn 0.42378 0.89422 -0.14414 +vn 0.67446 -0.58639 -0.44861 +vn 0.67428 -0.56663 -0.47358 +vn -0.37033 0.92875 0.01667 +vn 0.37033 0.92875 0.01667 +vn -0.93506 -0.35197 0.04209 +vn 0.93506 -0.35197 0.04209 +vn 0.75941 0.64972 0.03419 +vn -0.75941 0.64972 0.03419 +vn 0.21869 0.97444 -0.05141 +vn -0.21869 0.97444 -0.05141 +vn -0.93035 0.36427 0.04188 +vn 0.93035 0.36427 0.04188 +vn -0.92258 0.32672 -0.20518 +vn -0.9202 0.33311 -0.20559 +vn 0.93327 -0.2962 -0.20314 +vn 0.93204 -0.28616 -0.22227 +vn 0.75133 -0.25102 -0.61032 +vn -0.75133 -0.25102 -0.61032 +vn -0.99323 -0.10721 0.04471 +vn 0.99323 -0.10721 0.04471 +vn 0.07037 0.25629 0.96404 +vn -0.08908 0.50572 0.85809 +vn -0.0867 0.50958 0.85604 +vn 0.47986 0.87708 0.0216 +vn -0.47986 0.87708 0.0216 +vn -0.24247 0.89258 -0.38015 +vn -0.11989 0.97967 -0.16085 +vn 0.3965 0.56502 -0.72356 +vn 0.35854 0.63967 -0.67991 +vn 0.73298 0.32898 -0.59542 +vn -0.73298 0.32898 -0.59542 +vn -0.17629 0.98431 0.00794 +vn 0.17629 0.98431 0.00794 +vn 0.61396 -0.65486 -0.4407 +vn 0.61477 -0.63651 -0.46573 +vn -0.65576 0.59585 -0.46363 +vn -0.72311 0.47761 -0.499 +vn -0.17629 0.98431 -0.00794 +vn 0.17629 0.98431 -0.00794 +vn 0.47986 0.87708 -0.0216 +vn -0.47986 0.87708 -0.0216 +vn -0.70263 -0.67022 -0.23899 +vn -0.66014 -0.66878 -0.34199 +vn 0.69687 -0.6769 -0.23703 +vn 0.71439 -0.66892 -0.2054 +vn 0.75941 0.64972 -0.03419 +vn -0.75941 0.64972 -0.03419 +vn 0.89546 -0.44114 -0.05956 +vn 0.54762 -0.72237 -0.42225 +vn 0.54937 -0.70623 -0.44658 +vn -0.7743 0.06961 -0.62898 +vn 0.7743 0.06961 -0.62898 +vn 0.13987 0.94197 -0.30517 +vn 0.11832 0.95344 -0.27739 +vn 0.01658 0.99965 -0.02042 +vn -0.01658 0.99965 -0.02042 +vn 0.43048 0.86922 -0.24319 +vn 0.15599 0.59226 0.7905 +vn -0.18692 0.8793 0.43805 +vn -0.18526 0.87965 0.43806 +vn 0.06102 0.95848 0.27855 +vn 0.26482 0.51909 0.81266 +vn 0.98149 0.18632 -0.04419 +vn -0.98149 0.18632 -0.04419 +vn -0.86028 0.50834 -0.03873 +vn 0.86028 0.50834 -0.03873 +vn 0.07582 0.27285 0.95907 +vn 0.21601 0.06883 0.97396 +vn -0.18527 0.67085 0.71808 +vn -0.1852 0.67084 0.71811 +vn 0.47707 -0.78621 -0.39278 +vn 0.47954 -0.77282 -0.41569 +vn -0.58223 0.66282 -0.47083 +vn -0.64591 0.56141 -0.51732 +vn -0.4178 -0.87542 -0.24305 +vn -0.62836 0.77741 -0.02829 +vn 0.62836 0.77741 -0.02829 +vn 0.08573 0.00754 0.99629 +vn 0.15006 -0.39457 0.90653 +vn 0.08565 -0.06989 0.99387 +vn 0.01791 0.10888 0.99389 +vn -0.08948 0.30381 0.94852 +vn 0.17507 0.98426 -0.02404 +vn -0.17507 0.98426 -0.02404 +vn 0.99624 -0.08658 -0.00241 +vn 0.31849 -0.94101 -0.11428 +vn 0.31794 -0.94132 -0.11325 +vn -0.58508 0.63591 -0.50329 +vn -0.53201 0.71133 -0.45932 +vn 0.40429 -0.84381 -0.3529 +vn 0.40715 -0.83335 -0.37384 +vn -0.1598 0.97605 -0.1476 +vn 0.39047 -0.84793 -0.35853 +vn 0.39422 -0.83686 -0.37981 +vn -0.46574 0.77474 -0.42763 +vn -0.53633 0.68545 -0.49245 +vn -0.00599 0.99787 -0.06493 +vn -0.08585 0.99208 -0.09166 +vn -0.13742 0.98334 -0.11899 +vn -0.19944 0.97148 -0.12828 +vn 0.38742 -0.91514 -0.1115 +vn 0.38713 -0.91533 -0.11092 +vn 0.41591 0.90921 -0.01872 +vn -0.41591 0.90921 -0.01872 +vn -0.91895 0.36089 -0.15903 +vn 0.90109 -0.37064 -0.22506 +vn 0.89964 -0.35876 -0.24887 +vn 0.50188 -0.85827 -0.10718 +vn 0.46346 -0.8833 -0.07063 +vn -0.26981 0.95628 -0.11282 +vn -0.18979 0.97529 -0.11311 +vn -0.00226 -0.17636 0.98432 +vn 2E-05 1 4E-05 +vn -0.00028 1 -0.00052 +vn -0.02035 -0.0816 0.99646 +vn -0 1 0 +vn -0 1 0 +vn 0.45149 0.8683 -0.20547 +vn -0.44009 0.86853 -0.22799 +vn -0.45915 0.86344 -0.20895 +vn 0.44009 0.86853 -0.22799 +vn -0 1 -0 +vn -0.08446 0.22765 0.97007 +vn -0 1 0 +vn -0.11853 0.98093 -0.15404 +vn 0.10317 0.96266 0.25027 +vn -0.09553 0.98917 0.11145 +vn -0.09762 0.98885 0.1125 +vn 0.45628 -0.77247 -0.44171 +vn 0.46279 -0.75209 -0.46923 +vn -0.47104 0.75483 -0.45646 +vn -0.38004 0.84962 -0.36568 +vn -0.00297 0.97228 -0.2338 +vn 0.2641 0.9615 -0.07593 +vn 0.35335 0.92996 -0.1016 +vn -0.35335 0.92996 -0.1016 +vn 0.20106 0.97403 -0.10416 +vn 0.21358 0.97422 -0.07265 +vn -0.21754 0.97405 -0.06255 +vn -0.21031 0.97501 -0.07153 +vn -0.20377 0.97834 -0.03651 +vn -0.2703 0.96003 -0.07264 +vn 0.53981 -0.83897 -0.06885 +vn 0.53981 -0.83896 -0.06886 +vn -0.34695 0.9351 -0.07223 +vn 0.59972 0.73743 -0.31069 +vn -0.59972 0.73743 -0.31069 +vn 0.61422 -0.7863 -0.06674 +vn 0.6144 -0.78615 -0.06691 +vn -0.34571 0.93561 -0.07157 +vn -0.42524 0.9023 -0.0709 +vn 0.29789 0.95451 -0.01341 +vn -0.29789 0.95451 -0.01341 +vn -2E-05 1 -3E-05 +vn -0.14963 0.42325 0.89357 +vn 2E-05 1 1E-05 +vn 0.22836 -0.19752 0.95333 +vn 0.28121 -0.45138 0.84686 +vn 0.2384 -0.27106 0.93257 +vn 0.20026 -0.18355 0.9624 +vn -0.20588 0.53199 0.82134 +vn 0.22563 0.07631 0.97122 +vn -0.76867 -0.50058 -0.39822 +vn 0.76867 -0.50058 -0.39822 +vn -0.42433 0.90276 -0.07042 +vn -0.50381 0.86102 -0.06943 +vn -0.5044 0.8607 -0.06912 +vn 0.6841 -0.72653 -0.06449 +vn 0.68442 -0.7262 -0.06482 +vn 0.58994 -0.53208 -0.60734 +vn 0.59885 -0.47159 -0.64729 +vn -0.38489 0.83853 -0.38566 +vn -0.2798 0.92022 -0.27368 +vn -0.23842 0.76225 0.60177 +vn -0.23933 0.76249 0.60111 +vn 0.33227 -0.07412 0.94027 +vn 0.26537 0.5219 0.81068 +vn 4E-05 1 5E-05 +vn -0.19504 0.48396 0.85308 +vn -2E-05 1 -2E-05 +vn 0.74696 -0.66195 -0.06218 +vn 0.74738 -0.66143 -0.06265 +vn -0.61771 0.78355 -0.06691 +vn 0 1 0 +vn -0.20797 0.97809 -0.00936 +vn 0.20797 0.97809 -0.00936 +vn -0.2641 0.9615 -0.07593 +vn -0.27276 0.95994 -0.06411 +vn 0.26773 0.96144 -0.06293 +vn -0.90844 0.33573 -0.24904 +vn -0.87081 0.42476 -0.24753 +vn 0.85928 -0.44808 -0.24672 +vn 0.86078 -0.43731 -0.26043 +vn 0.10764 0.95669 0.27048 +vn -0.21938 0.91202 0.34654 +vn -0.21793 0.91218 0.34703 +vn 0.40997 0.43672 0.80075 +vn 0.80113 -0.59549 -0.05991 +vn 0.80161 -0.59478 -0.06051 +vn -0.2311 0.5922 0.77194 +vn -0 1 0 +vn -0.73275 0.56478 -0.37961 +vn 0.73275 0.56478 -0.37961 +vn 0.89298 -0.39814 -0.2099 +vn -0.89298 -0.39814 -0.2099 +vn -0.97317 0.02457 -0.22875 +vn 0.97317 0.02457 -0.22875 +vn 0.85764 0.47308 -0.2016 +vn -0.85764 0.47308 -0.2016 +vn 0.62232 0.35155 -0.69938 +vn 0.58221 0.45298 -0.67516 +vn -0.2828 0.91628 -0.28365 +vn -0.13422 0.984 -0.11718 +vn 0.33086 -0.34019 0.88023 +vn 0.34997 -0.45638 0.81807 +vn 0.29951 -0.31102 0.90198 +vn -0.27037 0.66902 0.69233 +vn 0.34452 -0.06333 0.93664 +vn 0.84588 -0.53023 -0.0578 +vn 0.84639 -0.52933 -0.05853 +vn -0.74743 0.66134 -0.06305 +vn -0.61764 0.78362 -0.06682 +vn 0.99648 -0.08377 -0.0021 +vn 0.89711 -0.43921 -0.04774 +vn -0.02042 0.99965 -0.01658 +vn 0.02042 0.99965 -0.01658 +vn 0 1 0 +vn 0.82128 -0.51021 -0.25531 +vn 0.82324 -0.49936 -0.27003 +vn 0.00217 -0.99569 -0.09274 +vn 0.0065 -0.99067 -0.13615 +vn 0.00895 -0.98264 -0.18531 +vn 0.00915 -0.98825 -0.15257 +vn 0.50036 0.85229 -0.15244 +vn 0.50291 0.85175 -0.14698 +vn 0.43838 0.88516 -0.15593 +vn 0.61549 0.77248 -0.15635 +vn 0.62023 0.77062 -0.1465 +vn 0.7138 0.67964 -0.16908 +vn 0.71931 0.67652 -0.15785 +vn 0.66683 0.72737 -0.16205 +vn 0.67213 0.72484 -0.15117 +vn 0.7949 0.57813 -0.18411 +vn 0.79996 0.57432 -0.17384 +vn 0.75642 0.62977 -0.17666 +vn 0.76184 0.62622 -0.16566 +vn 0.86056 0.46988 -0.1966 +vn 0.86429 0.46618 -0.18887 +vn 0.8295 0.52486 -0.1909 +vn 0.83399 0.521 -0.18175 +vn 0.91318 0.35296 -0.20378 +vn 0.91519 0.35027 -0.19937 +vn 0.88837 0.41282 -0.20094 +vn 0.89126 0.40951 -0.19482 +vn 0.94469 0.25583 -0.20521 +vn 0.94588 0.25451 -0.20136 +vn 0.97768 0.05148 -0.20368 +vn 0.97763 0.0517 -0.20389 +vn 0.96857 0.14164 -0.20447 +vn 0.96863 0.14148 -0.20429 +vn 0.91224 -0.35454 -0.20524 +vn 0.9107 -0.36201 -0.19893 +vn 0.97248 -0.11099 -0.20484 +vn 0.97265 -0.11357 -0.20263 +vn 0.62786 -0.75475 -0.19013 +vn 0.62093 -0.76296 -0.1798 +vn 0.78693 -0.5837 -0.2001 +vn 0.78212 -0.59317 -0.19088 +vn 0.34952 -0.92136 -0.17011 +vn 0.34357 -0.92515 -0.16144 +vn 0.47534 -0.86136 -0.1792 +vn 0.46834 -0.86718 -0.1693 +vn 0.17981 -0.97073 -0.15925 +vn 0.17642 -0.97226 -0.15357 +vn 0.25257 -0.95365 -0.16357 +vn 0.24796 -0.95606 -0.1564 +vn 0.10464 -0.98206 -0.15687 +vn 0.1027 -0.9834 -0.1496 +vn 0.04489 -0.98696 -0.15458 +vn 0.04406 -0.98755 -0.15101 +vn 0.55989 0.81435 -0.15284 +vn 0.56372 0.81318 -0.14478 +vn -0.00302 0.98805 -0.15409 +vn -0.0199 0.98786 -0.1541 +vn -0.01976 0.988 -0.15318 +vn -0.06368 0.98577 -0.15556 +vn -0.06324 0.98621 -0.15293 +vn -0.12246 0.97974 -0.15848 +vn -0.12157 0.98022 -0.15614 +vn -0.18032 0.97012 -0.16234 +vn -0.17903 0.97088 -0.15916 +vn -0.25738 0.95158 -0.16808 +vn -0.2556 0.95278 -0.16395 +vn -0.35746 0.91721 -0.17594 +vn -0.35518 0.91905 -0.17083 +vn -0.48175 0.85642 -0.18563 +vn -0.47915 0.85915 -0.17968 +vn -0.62387 0.75661 -0.19576 +vn -0.62139 0.76027 -0.18937 +vn -0.76504 0.6109 -0.20377 +vn -0.76333 0.61504 -0.19764 +vn -0.87879 0.42979 -0.20738 +vn -0.87817 0.43346 -0.20233 +vn -0.94819 0.24122 -0.20676 +vn -0.94831 0.24352 -0.20347 +vn -0.97617 0.07245 -0.20455 +vn -0.97636 0.07316 -0.20341 +vn -0.97785 -0.04795 -0.20372 +vn -0.97783 -0.04802 -0.20384 +vn -0.96815 -0.14452 -0.20446 +vn -0.96818 -0.14446 -0.20435 +vn -0.94887 -0.23981 -0.20525 +vn -0.94916 -0.2394 -0.20442 +vn -0.9209 -0.33133 -0.20532 +vn -0.92164 -0.33046 -0.20342 +vn -0.88569 -0.41698 -0.20418 +vn -0.88702 -0.4157 -0.20099 +vn -0.84499 -0.49533 -0.20158 +vn -0.84698 -0.49376 -0.19706 +vn -0.80065 -0.56563 -0.19756 +vn -0.80326 -0.56392 -0.19178 +vn -0.75434 -0.62768 -0.19231 +vn -0.75745 -0.626 -0.18546 +vn -0.70747 -0.68178 -0.18618 +vn -0.7109 -0.68025 -0.17854 +vn -0.66112 -0.72847 -0.17961 +vn -0.66466 -0.72719 -0.17153 +vn -0.61605 -0.76846 -0.17308 +vn -0.6195 -0.76747 -0.16494 +vn -0.57278 -0.8025 -0.16708 +vn -0.57593 -0.80182 -0.15932 +vn -0.5316 -0.83134 -0.16209 +vn -0.53429 -0.83094 -0.15519 +vn -0.49265 -0.85565 -0.15862 +vn -0.49472 -0.85547 -0.15307 +vn -0.45597 -0.87601 -0.15713 +vn -0.45729 -0.87598 -0.15343 +vn -0.42533 -0.89121 -0.1576 +vn -0.43753 -0.87701 -0.19854 +vn 0.39112 0.88555 -0.25067 +vn -0.01639 0.9723 -0.23317 +vn 0.42191 0.88646 -0.19019 +vn -0.99891 -0.01068 -0.04551 +vn 0.68692 0.70857 -0.16147 +vn -0.68692 0.70857 -0.16147 +vn -0.00845 0.9825 -0.18606 +vn -0.24399 0.52557 0.81501 +vn -0 1 0 +vn -0.79137 -0.58236 -0.18602 +vn 0.79137 -0.58236 -0.18602 +vn 0.88145 -0.46895 -0.05599 +vn 0.88196 -0.46789 -0.05685 +vn 0.85948 -0.25107 -0.44526 +vn -0.85948 -0.25107 -0.44526 +vn -0.70695 -0.67742 -0.20327 +vn 0.73487 -0.64445 -0.21129 +vn -0.73487 -0.64445 -0.21129 +vn 0.2186 0.93439 -0.28129 +vn 0.1918 0.94652 -0.25947 +vn -0.2711 0.65731 0.70317 +vn 0 1 0 +vn 0.83848 0.32904 -0.43438 +vn -0.83848 0.32904 -0.43438 +vn -0.43573 0.89423 -0.10242 +vn 0.43573 0.89423 -0.10242 +vn -0.86958 0.40815 -0.27792 +vn 0.77377 -0.57745 -0.26043 +vn 0.77624 -0.56689 -0.27585 +vn -0.81553 0.51261 -0.2686 +vn 0.9191 -0.39036 -0.05356 +vn 0.91955 -0.389 -0.05574 +vn -0.84073 0.53817 -0.05957 +vn -0.74784 0.66083 -0.06363 +vn 0.46482 -0.2245 0.85647 +vn -0.2811 0.83637 0.4706 +vn -0.28245 0.83671 0.46919 +vn 0.41029 0.43947 0.79908 +vn -2E-05 1 -2E-05 +vn -0.88577 0.06963 -0.45888 +vn 0.88577 0.06963 -0.45888 +vn 0.44921 0.86259 -0.23272 +vn -0.10506 0.99114 0.08121 +vn -0.10651 0.99097 0.08139 +vn -0.1329 0.9846 -0.1136 +vn 0.15493 0.96366 0.21763 +vn 0.71653 -0.647 -0.26071 +vn 0.71946 -0.63717 -0.27638 +vn -0.48607 0.86267 -0.13976 +vn 0.48607 0.86267 -0.13976 +vn 0.15778 0.98745 -0.0071 +vn -0.15778 0.98745 -0.0071 +vn -0.71638 -0.67709 -0.16839 +vn 0.72245 -0.67024 -0.16982 +vn 0.70695 -0.67742 -0.20327 +vn -0.99933 0.00193 -0.0366 +vn -0.99842 0.04683 -0.03096 +vn -0.98408 0.17565 -0.02696 +vn -0.99906 0.03363 -0.02737 +vn -0.99904 0.03773 -0.02228 +vn -0.99516 0.09578 -0.02219 +vn -0.98832 0.15077 -0.02204 +vn 0.94546 0.32216 -0.04818 +vn -0.29258 0.71841 0.63109 +vn 2E-05 1 3E-05 +vn -0.42992 -0.88825 -0.16181 +vn -0.97976 0.199 -0.02185 +vn -0.73375 0.61872 -0.28071 +vn 0.65027 -0.71563 -0.25499 +vn 0.65354 -0.70695 -0.27039 +vn -0.81472 0.49347 -0.3045 +vn -0.96552 0.25942 -0.02153 +vn 0.2132 0.97508 -0.0613 +vn -0.09718 0.99487 -0.02794 +vn 0.09718 0.99487 -0.02794 +vn 0.87629 -0.47887 -0.05292 +vn 0.8982 -0.43913 -0.02003 +vn 0.47967 -0.21124 0.85164 +vn 0.44243 -0.4533 0.77381 +vn 0.44907 -0.64415 0.6192 +vn 0.42262 -0.48032 0.76856 +vn -0.32173 0.77603 0.54247 +vn 0.94821 -0.31324 -0.05269 +vn 0.9486 -0.31155 -0.05554 +vn -0.89891 0.43435 -0.05743 +vn -0.84141 0.53697 -0.06085 +vn -0.8834 -0.467 -0.03893 +vn -0.93404 -0.35615 -0.02673 +vn 0 -1 0 +vn 0.9413 -0.33414 -0.04796 +vn 0.85252 -0.52235 -0.01901 +vn -0.87947 -0.47503 -0.02966 +vn -0.86665 -0.49854 -0.01913 +vn -0.83058 -0.55685 -0.00689 +vn -0.88027 -0.47408 -0.01963 +vn -0.85252 -0.52235 -0.01901 +vn 0.57674 -0.78006 -0.24266 +vn 0.58015 -0.77283 -0.25723 +vn -0.94646 0.32213 -0.02111 +vn 2E-05 1 1E-05 +vn -0.32055 0.75703 0.56935 +vn -1E-05 1 -1E-05 +vn 0.80352 -0.59501 -0.01792 +vn -0.80352 -0.59501 -0.01792 +vn 0.27017 0.95967 -0.07768 +vn 0.21615 0.97504 -0.05081 +vn -0.2132 0.97508 -0.0613 +vn -0.2196 0.97422 -0.05162 +vn 0.49853 -0.83749 -0.22376 +vn 0.50186 -0.83183 -0.23706 +vn -0.73459 0.59845 -0.31975 +vn -0.65344 0.70043 -0.28707 +vn 0.22255 0.97444 -0.03056 +vn -0.22255 0.97444 -0.03056 +vn -0.2448 0.93744 0.24755 +vn -0.24369 0.93753 0.2483 +vn 0.16249 0.95816 0.23563 +vn 0.59858 0.34242 0.72419 +vn -0.6099 0.77436 -0.1685 +vn 0.41866 -0.88605 -0.19909 +vn 0.42173 -0.88186 -0.21087 +vn 0.94623 0.32281 -0.0211 +vn 0.92977 0.36755 -0.02074 +vn -0.92977 0.36755 -0.02074 +vn 0.75749 -0.65263 -0.01689 +vn -0.75749 -0.65263 -0.01689 +vn -0.51753 0.8156 -0.25877 +vn -0.62851 0.71149 -0.31425 +vn 0.40241 -0.89307 -0.20121 +vn 0.40595 -0.88877 -0.21282 +vn -0.42262 0.87874 -0.22183 +vn -0.52459 0.80502 -0.27704 +vn 0.47082 -0.84668 -0.24791 +vn 0.47692 -0.83881 -0.26258 +vn 0.71658 -0.69732 -0.01598 +vn -0.71658 -0.69732 -0.01598 +vn 0.96054 -0.27282 -0.05411 +vn 0.96071 -0.27037 -0.06277 +vn -0.93072 0.36121 -0.05728 +vn -0.8997 0.43243 -0.05953 +vn 0.94352 0.32912 -0.03802 +vn 0.88521 -0.46355 -0.03909 +vn 0.43787 0.88823 -0.13898 +vn 0.91673 0.39898 -0.02044 +vn -0.91673 0.39898 -0.02044 +vn -0.90251 0.42882 -0.03993 +vn -0.00379 0.99056 -0.13702 +vn 0.66954 -0.74262 -0.01493 +vn -0.66954 -0.74262 -0.01493 +vn -0.31071 0.93581 -0.1665 +vn -0.42832 0.87269 -0.23442 +vn 0.62481 -0.69859 -0.34869 +vn 0.6383 -0.67352 -0.37275 +vn 0.02335 0.99965 -0.0121 +vn -0.02335 0.99965 -0.0121 +vn -0.31228 0.8903 0.33144 +vn -0.31354 0.89052 0.32964 +vn 0.59871 0.34484 0.72293 +vn 0.60661 -0.37383 0.70163 +vn 0 1 0 +vn 0.90565 0.42354 -0.0202 +vn -0.9102 0.41245 -0.03757 +vn -0.91337 0.4062 -0.02765 +vn -0.9205 0.39035 -0.01771 +vn -0.93277 0.3604 -0.00656 +vn -0.91119 0.41149 -0.02032 +vn -0.33841 0.82523 0.45219 +vn 0 1 0 +vn -0.15013 0.98864 -0.00676 +vn 0.15013 0.98864 -0.00676 +vn 0.63632 -0.7713 -0.01419 +vn -0.63632 -0.7713 -0.01419 +vn 0.64898 0.73756 -0.1866 +vn -0.64898 0.73756 -0.1866 +vn -0.9447 0.32251 -0.0594 +vn -0.93156 0.35855 -0.0604 +vn -0.8319 -0.50073 -0.23919 +vn 0.8319 -0.50073 -0.23919 +vn -0.14521 0.9869 -0.07038 +vn -0.31418 0.93346 -0.17306 +vn 0.85251 0.08978 -0.51495 +vn 0.8352 0.18415 -0.5182 +vn -0.71439 -0.66892 -0.2054 +vn 0.54429 -0.58662 0.59968 +vn 0.53448 -0.6628 0.52443 +vn 0.49722 -0.53173 0.68559 +vn -0.35421 0.85595 0.37669 +vn 0.62257 -0.36005 0.69482 +vn 0.66353 -0.748 -0.0148 +vn -0.66353 -0.748 -0.0148 +vn -0.42688 -0.89683 -0.11605 +vn 0.30331 0.93051 -0.20529 +vn 0.27744 0.94075 -0.19498 +vn -0.35937 0.80017 0.48019 +vn 0 1 0 +vn -0.27981 0.95971 -0.02567 +vn -0.27313 0.96124 -0.03751 +vn 0.27757 0.95995 -0.03812 +vn 0.77493 -0.63181 -0.01728 +vn -0.77493 -0.63181 -0.01728 +vn -0.79301 0.56494 -0.22801 +vn 0.79301 0.56494 -0.22801 +vn 0.94231 -0.33408 -0.02101 +vn -0.93419 -0.35617 -0.02083 +vn -0.94218 -0.33403 -0.02696 +vn 0.86638 0.49901 -0.01932 +vn -0.90264 0.42945 -0.02864 +vn -0.90208 0.43122 -0.0173 +vn -0.90237 0.43048 -0.02012 +vn -0.86638 0.49901 -0.01932 +vn 0 -1 -0 +vn 0.94852 -0.31024 -0.06368 +vn 0.94904 -0.30731 -0.06994 +vn -0.94045 0.33381 -0.06417 +vn -0.94558 0.31905 -0.06387 +vn 0.90878 -0.39816 -0.12481 +vn -0.90878 -0.39816 -0.12481 +vn -0.9904 0.02457 -0.13601 +vn 0.9904 0.02457 -0.13601 +vn 0.87281 0.47311 -0.11987 +vn -0.87281 0.47311 -0.11987 +vn 0.76392 0.64509 -0.01704 +vn -0.76392 0.64509 -0.01704 +vn 0.20744 0.96644 0.15156 +vn -0.14432 0.98712 -0.06898 +vn -0.11213 0.9925 0.04864 +vn -0.11295 0.99242 0.04844 +vn 0.21754 0.97405 -0.06255 +vn -0.70376 0.7075 -0.06457 +vn -0.65895 0.74673 -0.09049 +vn 0.69906 0.70859 -0.096 +vn 0.93026 -0.25116 -0.26747 +vn -0.93026 -0.25116 -0.26747 +vn 0.90751 0.32916 -0.26093 +vn -0.90751 0.32916 -0.26093 +vn -0.80536 -0.58238 -0.1106 +vn 0.80536 -0.58238 -0.1106 +vn -1E-05 1 -1E-05 +vn -0.35963 0.86725 0.34431 +vn 0 1 0 +vn 0.66131 0.74766 -0.06067 +vn -0.44682 0.89369 -0.04099 +vn 0.44682 0.89369 -0.04099 +vn -0.95873 0.06965 -0.27566 +vn 0.95873 0.06965 -0.27566 +vn 0.91896 -0.38797 -0.07072 +vn 0.91972 -0.38465 -0.07849 +vn 0.44301 0.89153 -0.0944 +vn 0.94498 0.32602 -0.02689 +vn 0.89108 -0.45305 -0.02691 +vn 0.31963 -0.94552 -0.06188 +vn 0.81193 0.24569 0.52954 +vn 0.21608 0.96268 0.16298 +vn -0.26194 0.95406 0.14545 +vn -0.26126 0.95414 0.14615 +vn 0.99811 -0.06138 -0.00038 +vn 0.31998 -0.94672 -0.03666 +vn 0.31992 -0.94674 -0.03656 +vn 0.72456 -0.68199 -0.09951 +vn 0.74005 -0.66912 -0.0679 +vn -0.73522 -0.67026 -0.10097 +vn -0.00277 0.99567 -0.09295 +vn -0.19115 0.97956 -0.06262 +vn 0.38922 -0.92044 -0.03599 +vn 0.38912 -0.92049 -0.0358 +vn 0.46453 -0.88486 -0.03507 +vn -0.17404 0.98466 -0.01211 +vn -0.18557 0.98194 -0.03688 +vn -0.19135 0.98084 -0.03651 +vn 0.17653 0.98426 -0.00795 +vn -0.17653 0.98426 -0.00795 +vn 0.2742 0.96134 -0.02516 +vn 0.36597 0.93002 -0.03358 +vn -0.36597 0.93002 -0.03358 +vn 0.22529 0.97407 -0.02067 +vn -0.22529 0.97407 -0.02067 +vn 0.87962 -0.46928 -0.07773 +vn 0.88093 -0.46606 -0.08215 +vn -0.90722 0.41331 -0.07832 +vn -0.94103 0.32905 -0.07862 +vn 0.73384 -0.49883 0.46113 +vn 0.81191 0.24744 0.52875 +vn -0.33185 0.92352 0.19232 +vn -0.33268 0.92354 0.1908 +vn 0.84188 -0.53362 -0.0805 +vn 0.84341 -0.53048 -0.08519 +vn -0.00279 0.99885 -0.04777 +vn 0.00488 -0.99984 -0.01693 +vn 0.00789 -0.99857 -0.05282 +vn 0.0092 -0.99569 -0.09223 +vn 0.00896 -0.99884 -0.04728 +vn -0.99677 -0.04886 -0.06368 +vn -0.99677 -0.04888 -0.06372 +vn -0.71799 -0.69363 -0.05801 +vn -0.71895 -0.69284 -0.05559 +vn 0.44443 0.89451 -0.04831 +vn -0.5373 -0.84189 -0.05032 +vn -0.5381 -0.84151 -0.04818 +vn -0.46079 -0.88617 -0.04875 +vn -0.46118 -0.88603 -0.04761 +vn -0.42931 -0.90183 -0.04892 +vn -0.49779 -0.8659 -0.04922 +vn -0.49841 -0.86564 -0.0475 +vn -0.62367 -0.77983 -0.05382 +vn -0.62467 -0.77921 -0.05126 +vn -0.57931 -0.81346 -0.05191 +vn -0.58023 -0.81295 -0.04948 +vn -0.67008 -0.74018 -0.05591 +vn -0.67109 -0.73945 -0.05335 +vn -0.90264 -0.42564 -0.06383 +vn -0.90296 -0.42511 -0.06281 +vn -0.81459 -0.57674 -0.06168 +vn -0.81528 -0.57596 -0.05983 +vn -0.76656 -0.63937 -0.05999 +vn -0.7674 -0.63855 -0.0578 +vn -0.86056 -0.50544 -0.06299 +vn -0.86107 -0.50476 -0.06154 +vn -0.96748 -0.24469 -0.06418 +vn -0.96753 -0.24453 -0.06391 +vn -0.93888 -0.33819 -0.0642 +vn -0.93905 -0.33785 -0.06359 +vn -0.98702 -0.14735 -0.06392 +vn -0.98702 -0.14733 -0.06389 +vn -0.26143 0.96381 -0.05224 +vn -0.26076 0.96406 -0.05098 +vn -0.7808 0.62153 -0.06372 +vn -0.77994 0.6228 -0.0618 +vn -0.96729 0.24527 -0.06467 +vn -0.96717 0.24604 -0.06362 +vn -0.99523 0.07362 -0.06395 +vn -0.99524 0.07387 -0.06358 +vn -0.89698 0.43728 -0.06488 +vn -0.89652 0.43846 -0.06328 +vn -0.49056 0.86948 -0.05787 +vn -0.4895 0.8702 -0.05605 +vn -0.63615 0.76914 -0.06114 +vn -0.63506 0.77019 -0.05916 +vn -0.3635 0.92998 -0.05476 +vn -0.36261 0.93042 -0.0532 +vn -0.06456 0.99675 -0.04824 +vn -0.0644 0.9968 -0.04742 +vn -0.12421 0.99104 -0.04917 +vn -0.12388 0.99111 -0.04845 +vn -0.18301 0.98182 -0.0504 +vn -0.18253 0.98196 -0.04943 +vn -0.02017 0.99865 -0.04777 +vn -0.02012 0.99867 -0.04749 +vn 0.50786 0.86015 -0.04717 +vn 0.50868 0.85975 -0.04549 +vn 0.04452 -0.99786 -0.04791 +vn 0.04421 -0.99793 -0.04679 +vn 0.10375 -0.99342 -0.04859 +vn 0.10301 -0.9936 -0.04632 +vn 0.17832 -0.98274 -0.04927 +vn 0.17705 -0.98305 -0.04755 +vn 0.25073 -0.96674 -0.05058 +vn 0.24897 -0.9673 -0.04842 +vn 0.34765 -0.93615 -0.0526 +vn 0.34534 -0.93714 -0.05 +vn 0.47446 -0.87853 -0.05546 +vn 0.47166 -0.88022 -0.05248 +vn 0.63012 -0.77425 -0.05898 +vn 0.62721 -0.77684 -0.05583 +vn 0.79522 -0.60311 -0.06231 +vn 0.793 -0.60631 -0.05943 +vn 0.92736 -0.36863 -0.06411 +vn 0.92644 -0.37129 -0.06208 +vn 0.99121 -0.11574 -0.06405 +vn 0.99115 -0.1167 -0.06332 +vn 0.99657 0.05278 -0.06367 +vn 0.99658 0.0527 -0.06369 +vn 0.99657 0.05278 -0.06374 +vn 0.98748 0.14424 -0.06393 +vn 0.98749 0.14418 -0.06387 +vn 0.96366 0.25929 -0.06417 +vn 0.96389 0.25875 -0.06291 +vn 0.93204 0.35672 -0.06369 +vn 0.93255 0.35564 -0.06226 +vn 0.90688 0.41669 -0.06276 +vn 0.90763 0.41534 -0.06078 +vn 0.87848 0.47383 -0.06134 +vn 0.87948 0.47228 -0.05886 +vn 0.84661 0.52888 -0.05949 +vn 0.84784 0.52722 -0.05656 +vn 0.811 0.58224 -0.05729 +vn 0.81243 0.58055 -0.05402 +vn 0.77135 0.63403 -0.05489 +vn 0.77293 0.63241 -0.05141 +vn 0.72744 0.68417 -0.05246 +vn 0.72908 0.68268 -0.04892 +vn 0.67909 0.73234 -0.05021 +vn 0.6807 0.73107 -0.0468 +vn 0.62626 0.77811 -0.04839 +vn 0.62773 0.77711 -0.04532 +vn 0.56908 0.82092 -0.04728 +vn 0.57029 0.82022 -0.04478 +vn -0.45291 -0.88438 -0.11288 +vn -0.01131 0.99562 -0.09284 +vn 0.42046 0.90219 -0.09624 +vn -0.02526 0.99965 -0.00726 +vn 0.02526 0.99965 -0.00726 +vn 0.62958 -0.67894 0.37772 +vn 0.6062 -0.72978 0.31613 +vn 0.59998 -0.66384 0.44648 +vn 0.74663 -0.48727 0.4529 +vn -0.37641 0.90041 0.21813 +vn 0.79373 -0.6027 -0.08212 +vn 0.79544 -0.59976 -0.08697 +vn -0.85713 0.50787 -0.08599 +vn -0.90896 0.40732 -0.08872 +vn -0.42965 -0.90186 -0.04527 +vn -0.95406 -0.29963 -0.00033 +vn 4E-05 1 1E-05 +vn -0.37951 0.89478 0.23523 +vn -0 1 -0 +vn 0.7348 -0.67329 -0.08214 +vn 0.73662 -0.67068 -0.08699 +vn 0.76128 -0.64465 -0.06985 +vn -0.73024 -0.6824 -0.03287 +vn -0.74005 -0.66912 -0.0679 +vn -0.76128 -0.64465 -0.06985 +vn 0.6659 -0.74172 -0.08018 +vn 0.66775 -0.73954 -0.08486 +vn -0.77615 0.62399 -0.09071 +vn -0.85955 0.50151 -0.0983 +vn 0.58913 -0.80445 -0.07607 +vn 0.59088 -0.80274 -0.08042 +vn 0.50755 -0.85878 -0.06989 +vn 0.50913 -0.85752 -0.07378 +vn -0.66101 0.74506 -0.08923 +vn -0.77929 0.61798 -0.10394 +vn 0.50345 0.86279 -0.04619 +vn -0.50345 0.86279 -0.04619 +vn 0.42466 -0.90323 -0.06194 +vn 0.42601 -0.90236 -0.06532 +vn -0 1 -0 +vn 0.4072 -0.9112 -0.06244 +vn 0.40868 -0.91031 -0.06568 +vn -0.66459 0.74023 -0.1019 +vn -0.5507 0.83042 -0.08444 +vn -0.54686 0.83294 -0.08458 +vn 0.47585 -0.87617 -0.0768 +vn 0.47831 -0.87448 -0.08064 +vn -0.55047 0.83008 -0.08918 +vn -0.44714 0.89156 -0.07205 +vn -0.10065 0.99488 -0.00923 +vn 0.10065 0.99488 -0.00923 +vn 0.63415 -0.76558 -0.10833 +vn 0.63998 -0.75987 -0.11416 +vn -0.44993 0.88986 -0.07561 +vn -0.32869 0.94288 -0.05418 +vn 0.22439 0.97445 -0.0101 +vn -0.22439 0.97445 -0.0101 +vn 0.4368 0.89789 -0.05475 +vn 0.94593 0.32398 -0.01603 +vn 0.99865 -0.05198 -0.00014 +vn 0.89466 -0.44647 -0.01576 +vn -0.00568 0.99857 -0.05313 +vn 0.98029 -0.08008 -0.18062 +vn 0.98171 -0.04417 -0.18521 +vn -0.33038 0.94219 -0.05602 +vn -0.15107 0.98826 -0.02266 +vn 0.35814 0.93079 -0.07332 +vn 0.34672 0.93512 -0.0731 +vn 0.67226 0.73774 -0.06168 +vn -0.67226 0.73774 -0.06168 +vn -0.86187 -0.50092 -0.07907 +vn 0.86187 -0.50092 -0.07907 +vn -0.11592 0.99313 0.01564 +vn -0.11618 0.99311 0.01549 +vn -0.15076 0.98832 -0.02239 +vn 0.24428 0.96822 0.05359 +vn -0.2742 0.96134 -0.02516 +vn -0.27988 0.95995 -0.0126 +vn 0.27525 0.96129 -0.01239 +vn -0.82155 0.56514 -0.07537 +vn 0.82155 0.56514 -0.07537 +vn 0.91638 -0.39819 -0.04125 +vn -0.91638 -0.39819 -0.04125 +vn -0.99869 0.02457 -0.04496 +vn 0.99869 0.02457 -0.04496 +vn 0.8801 0.47313 -0.03962 +vn -0.8801 0.47313 -0.03962 +vn -0.37963 0.91177 0.15671 +vn 0 1 0 +vn 0.66312 0.74792 -0.02985 +vn -0.66131 0.74766 -0.06067 +vn -0.70488 0.70862 -0.03173 +vn 0.96386 -0.25129 -0.08843 +vn -0.96386 -0.25129 -0.08843 +vn -0.2702 0.9617 0.04618 +vn -0.26998 0.96174 0.04649 +vn 0.24864 0.96695 0.05645 +vn 0.96508 0.17802 0.19217 +vn 0.94027 0.32931 -0.08627 +vn -0.94027 0.32931 -0.08627 +vn -0.81207 -0.58241 -0.03656 +vn 0.81207 -0.58241 -0.03656 +vn 0.70376 0.7075 -0.06457 +vn -0.9934 0.06969 -0.09114 +vn 0.9934 0.06969 -0.09114 +vn 0.74135 -0.67029 -0.03337 +vn -0.34085 0.93816 0.06065 +vn -0.34112 0.9381 0.06004 +vn 0.96501 0.1787 0.1919 +vn 0.80947 -0.56609 0.15588 +vn 0.27981 0.95971 -0.02567 +vn 0.67335 -0.72887 0.12388 +vn 0.64087 -0.76347 0.07999 +vn 0.66111 -0.72125 0.20671 +vn -0.38435 0.92066 0.0683 +vn 0.81403 -0.56078 0.15129 +vn -0 1 -0 +vn -0.38969 0.91696 0.08556 +vn -0 1 -0 +vn 0.02616 0.99965 -0.0024 +vn -0.02616 0.99965 -0.0024 +vn 0.44421 0.89575 -0.01756 +vn -0.99941 0.03381 -0.00583 +vn 0.94639 0.32298 -0.00532 +vn 0.89636 -0.4433 -0.00519 +vn -0.90328 0.42902 -0.00573 +vn -0.00312 0.99985 -0.017 +vn -0.38451 0.92297 0.01648 +vn 0 1 0 +vn 0 1 -0 +vn -0.38414 0.92207 -0.04718 +vn 0 1 -0 +vn 0 1 -0 +vn 1E-05 1 -0 +vn -1E-05 1 1E-05 +vn 0 1 -0 +vn 0 1 -0 +vn 2E-05 1 -1E-05 +vn -4E-05 1 3E-05 +vn 0 1 -0 +vn 0 1 -0 +vn 0 1 -0 +vn 2E-05 1 -2E-05 +vn -2E-05 1 3E-05 +vn -0 1 0 +vn 0 1 -0 +vn -0 1 -0 +vn -0.17237 0.98302 0.06296 +vn -0.1853 0.98199 0.03689 +vn -0.19146 0.98143 0.01205 +vn -0.19166 0.98078 0.03651 +vn -0.5507 0.83042 0.08444 +vn -0.54661 0.83269 0.08854 +vn 0.24867 0.96706 -0.05443 +vn 0.24381 0.96823 -0.05551 +vn 0.96496 0.1787 -0.19215 +vn 0.96514 0.17796 -0.19192 +vn -0.3304 0.94227 0.05449 +vn -0.32853 0.94285 0.05567 +vn -0.15076 0.98831 0.0226 +vn -0.1511 0.98826 0.02245 +vn -0.45003 0.89006 0.07252 +vn -0.44691 0.89143 0.07508 +vn -0.93173 0.35861 0.05719 +vn -0.93046 0.36138 0.06048 +vn -0.90976 0.40768 0.07836 +vn -0.9062 0.41346 0.08859 +vn -0.78028 0.61876 0.0911 +vn -0.77497 0.62348 0.10341 +vn -0.66537 0.74109 0.08977 +vn -0.66016 0.74427 0.10123 +vn -0.86052 0.50208 0.08619 +vn -0.85592 0.50774 0.09798 +vn -0.94202 0.32939 0.06408 +vn -0.93915 0.33438 0.07862 +vn -0.94585 0.31914 0.05931 +vn -0.94432 0.32275 0.06395 +vn -0.61764 0.78361 0.06691 +vn -0.61772 0.78356 0.06682 +vn -0.84147 0.53701 0.05953 +vn -0.84061 0.53821 0.06089 +vn -0.89982 0.43248 0.05736 +vn -0.89872 0.43445 0.05959 +vn -0.74787 0.66085 0.06303 +vn -0.74737 0.66135 0.06364 +vn -0.19468 0.97432 0.11312 +vn -0.27083 0.96194 0.03642 +vn -0.27191 0.95958 0.07264 +vn -0.42432 0.90273 0.07091 +vn -0.42527 0.90232 0.07042 +vn -0.50381 0.86102 0.06943 +vn -0.5044 0.8607 0.06912 +vn 0.61441 -0.78616 0.06673 +vn 0.61422 -0.7863 0.06692 +vn 0.7474 -0.66147 0.06216 +vn 0.74694 -0.66193 0.06267 +vn 0.5014 -0.86452 0.03462 +vn 0.46366 -0.88319 0.07063 +vn -0.02616 0.99965 0.0024 +vn 0.93506 -0.35197 -0.04209 +vn -0.90328 0.42902 0.00573 +vn -0.90257 0.4302 0.01724 +vn -0.90113 0.43258 0.02895 +vn -0.90266 0.42988 0.02013 +vn -0.66954 -0.74262 0.01493 +vn -0.66353 -0.748 0.0148 +vn -0.77493 -0.63181 0.01728 +vn -0.50345 0.86279 0.04619 +vn -0.15778 0.98745 0.0071 +vn -0.29789 0.95451 0.01341 +vn -0.62836 0.77741 0.02829 +vn -0.86028 0.50834 0.03873 +vn 0.29789 0.95451 0.01341 +vn 0.15778 0.98745 0.0071 +vn 0.17653 0.98426 0.00795 +vn -0.17653 0.98426 0.00795 +vn -0.27981 0.95971 0.02567 +vn -0.27525 0.96129 0.01239 +vn -0.15013 0.98864 0.00676 +vn 0.50345 0.86279 0.04619 +vn 0.2742 0.96134 0.02516 +vn 0.27988 0.95995 0.0126 +vn -0.74135 -0.67029 0.03337 +vn -0.72456 -0.68199 0.09951 +vn -0.74005 -0.66912 0.0679 +vn -0.86187 -0.50092 0.07907 +vn -0.9934 0.06969 0.09114 +vn -0.82155 0.56514 0.07537 +vn 0.73024 -0.6824 0.03287 +vn 0.74005 -0.66912 0.0679 +vn 0.91638 -0.39819 0.04125 +vn -0.70376 0.7075 0.06457 +vn -0.66312 0.74792 0.02985 +vn -0.91638 -0.39819 0.04125 +vn 0.66131 0.74766 0.06067 +vn 0.70488 0.70862 0.03173 +vn 0.8801 0.47313 0.03962 +vn -0.8801 0.47313 0.03962 +vn 0.02616 0.99965 0.0024 +vn 0.22529 0.97407 0.02067 +vn -0.22529 0.97407 0.02067 +vn -0.10065 0.99488 0.00923 +vn 0.10065 0.99488 0.00923 +vn -0.44682 0.89369 0.04099 +vn 0.44682 0.89369 0.04099 +vn -0.99869 0.02457 0.04496 +vn 0.99869 0.02457 0.04496 +vn -0.81207 -0.58241 0.03656 +vn 0.81207 -0.58241 0.03656 +vn -0.76128 -0.64465 0.06985 +vn 0.76128 -0.64465 0.06985 +vn 0.86187 -0.50092 0.07907 +vn -0.96386 -0.25129 0.08843 +vn 0.96386 -0.25129 0.08843 +vn 0.9934 0.06969 0.09114 +vn -0.94027 0.32931 0.08627 +vn 0.94027 0.32931 0.08627 +vn 0.82155 0.56514 0.07537 +vn 0.67226 0.73774 0.06168 +vn -0.67226 0.73774 0.06168 +vn 0.36597 0.93002 0.03358 +vn -0.36597 0.93002 0.03358 +vn 0.22439 0.97445 0.0101 +vn -0.22439 0.97445 0.0101 +vn -0.20797 0.97809 0.00936 +vn 0.15013 0.98864 0.00676 +vn -0.41591 0.90921 0.01872 +vn 0.20797 0.97809 0.00936 +vn 0.41591 0.90921 0.01872 +vn 0.62836 0.77741 0.02829 +vn 0.86028 0.50834 0.03873 +vn -0.85252 -0.52235 0.01901 +vn -0.75749 -0.65263 0.01689 +vn -0.27761 0.96061 0.0125 +vn -0.94646 0.32213 0.02111 +vn 0.93035 0.36427 -0.04188 +vn -0.76392 0.64509 0.01704 +vn -0.74546 0.6657 0.03356 +vn -0.91673 0.39898 0.02044 +vn -0.97976 0.199 0.02185 +vn -0.99516 0.09578 0.02219 +vn -0.88042 -0.47416 0.00471 +vn -0.86757 -0.49696 0.01898 +vn -0.79523 -0.60395 0.05343 +vn -0.03983 -0.97723 0.20842 +vn -0.88409 -0.4669 0.01972 +vn -0.80352 -0.59501 0.01792 +vn 0.00308 -0.99569 0.09267 +vn 0.00714 -0.99858 0.05285 +vn 0.00897 -0.99982 0.01688 +vn 0.00921 -0.99884 0.04729 +vn 0.99657 0.05278 0.06367 +vn 0.99657 0.0527 0.06374 +vn 0.81228 0.58045 0.05727 +vn 0.81114 0.58234 0.05406 +vn 0.17703 -0.98297 0.04922 +vn 0.17834 -0.98282 0.04761 +vn 0.62764 0.777 0.04835 +vn 0.62635 0.77822 0.04537 +vn 0.93246 0.35561 0.06368 +vn 0.93212 0.35675 0.06227 +vn 0.6271 -0.77671 0.05887 +vn 0.63023 -0.77439 0.05596 +vn 0.04421 -0.99787 0.04791 +vn 0.04452 -0.99791 0.0468 +vn 0.50864 0.85969 0.04715 +vn 0.5079 0.86021 0.04552 +vn -0.99941 0.03381 0.00583 +vn -0.99904 0.03773 0.02228 +vn 0.44443 0.89451 0.04831 +vn 0.42046 0.90219 0.09624 +vn 0.4368 0.89789 0.05475 +vn 0.44421 0.89575 0.01756 +vn 0.57022 0.82013 0.04725 +vn 0.56915 0.82101 0.04483 +vn 0.72895 0.68256 0.05243 +vn 0.72757 0.68429 0.04896 +vn 0.68058 0.73095 0.05017 +vn 0.6792 0.73246 0.04685 +vn 0.77278 0.63229 0.05486 +vn 0.7715 0.63415 0.05145 +vn 0.87935 0.47221 0.06133 +vn 0.87861 0.4739 0.05888 +vn 0.8477 0.52713 0.05947 +vn 0.84675 0.52897 0.05659 +vn 0.90752 0.41529 0.06275 +vn 0.90699 0.41674 0.0608 +vn 0.96382 0.25873 0.06417 +vn 0.96374 0.25931 0.06292 +vn 0.98748 0.14418 0.06393 +vn 0.98748 0.14424 0.06387 +vn 0.92632 -0.37125 0.06409 +vn 0.92748 -0.36868 0.06213 +vn 0.9911 -0.11669 0.06405 +vn 0.99126 -0.11574 0.06333 +vn 0.79287 -0.60621 0.06223 +vn 0.79536 -0.60321 0.05953 +vn 0.3453 -0.93702 0.05251 +vn 0.3477 -0.93627 0.0501 +vn 0.47159 -0.88008 0.05535 +vn 0.47454 -0.87866 0.05261 +vn 0.24894 -0.9672 0.05051 +vn 0.25075 -0.96684 0.0485 +vn 0.103 -0.99349 0.04857 +vn 0.10376 -0.99352 0.04635 +vn -0.92977 0.36755 0.02074 +vn -0.96552 0.25942 0.02153 +vn -0.98832 0.15077 0.02204 +vn -0.06439 0.99676 0.04824 +vn -0.06456 0.99679 0.04742 +vn -0.12387 0.99108 0.04916 +vn -0.12421 0.99107 0.04847 +vn -0.18252 0.98191 0.05039 +vn -0.18302 0.98187 0.04945 +vn -0.26074 0.964 0.05222 +vn -0.26145 0.96387 0.05101 +vn -0.36258 0.93035 0.05473 +vn -0.36353 0.93006 0.05324 +vn -0.48945 0.87011 0.05784 +vn -0.49061 0.86957 0.05609 +vn -0.63499 0.7701 0.0611 +vn -0.63622 0.76923 0.0592 +vn -0.77985 0.62272 0.0637 +vn -0.78089 0.6216 0.06184 +vn -0.89643 0.43842 0.06487 +vn -0.89707 0.43733 0.0633 +vn -0.9671 0.24603 0.06467 +vn -0.96736 0.24529 0.06363 +vn -0.99522 0.07386 0.06395 +vn -0.99526 0.07362 0.06359 +vn -0.99677 -0.04888 0.06368 +vn -0.99677 -0.04886 0.06372 +vn -0.98702 -0.14733 0.06392 +vn -0.98702 -0.14735 0.06389 +vn -0.96752 -0.24452 0.06418 +vn -0.96749 -0.24469 0.06391 +vn -0.93901 -0.33784 0.0642 +vn -0.93892 -0.33821 0.06359 +vn -0.9029 -0.42508 0.06383 +vn -0.9027 -0.42567 0.06281 +vn -0.86099 -0.50471 0.06299 +vn -0.86064 -0.50548 0.06154 +vn -0.81519 -0.5759 0.06168 +vn -0.81469 -0.57681 0.05984 +vn -0.7673 -0.63847 0.05999 +vn -0.76666 -0.63945 0.05781 +vn -0.71885 -0.69274 0.05801 +vn -0.71809 -0.69372 0.05559 +vn -0.671 -0.73935 0.0559 +vn -0.67018 -0.74028 0.05336 +vn -0.62458 -0.7791 0.05381 +vn -0.62375 -0.77994 0.05128 +vn -0.58016 -0.81285 0.0519 +vn -0.57938 -0.81356 0.0495 +vn -0.53804 -0.84142 0.05031 +vn -0.53736 -0.84198 0.0482 +vn -0.42931 -0.90183 0.04892 +vn -0.45291 -0.88438 0.11288 +vn -0.42965 -0.90186 0.04527 +vn -0.95406 -0.29963 0.00033 +vn -0.46116 -0.88598 0.04874 +vn -0.46081 -0.88622 0.04762 +vn -0.49836 -0.86557 0.04921 +vn -0.49783 -0.86597 0.04752 +vn -0.00894 0.99982 0.01698 +vn -0.00312 0.99885 0.04777 +vn -0.02012 0.99866 0.04777 +vn -0.02017 0.99867 0.04749 +vn -0.86638 0.49901 0.01932 +vn 0.37033 0.92875 -0.01667 +vn 0.99323 -0.10721 -0.04471 +vn -0.59675 0.80198 0.02686 +vn -0.91136 0.41157 0.0054 +vn -0.91597 0.4009 0.01696 +vn -0.92624 0.37563 0.03142 +vn -0.94533 0.32167 0.05375 +vn -0.91079 0.41237 0.02031 +vn -0.71658 -0.69732 0.01598 +vn 0.98149 0.18632 0.04419 +vn -0.98149 0.18632 0.04419 +vn -0.63632 -0.7713 0.01419 +vn -0.93506 -0.35197 -0.04209 +vn -0.99323 -0.10721 -0.04471 +vn -0.93035 0.36427 -0.04188 +vn -0.37033 0.92875 -0.01667 +vn 0.27761 0.96061 0.0125 +vn 0.59675 0.80198 0.02686 +vn 0.74546 0.6657 0.03356 +vn 0.76392 0.64509 0.01704 +vn 0.86638 0.49901 0.01932 +vn 0.90565 0.42354 0.0202 +vn 0.91673 0.39898 0.02044 +vn 0.92977 0.36755 0.02074 +vn 0.94567 0.32445 0.02109 +vn 0.94639 0.32298 0.00532 +vn 0.38912 -0.92048 0.03599 +vn 0.38922 -0.92045 0.0358 +vn 0.99865 -0.05198 0.00014 +vn 0.99811 -0.06138 0.00038 +vn 0.31992 -0.94674 0.03666 +vn 0.31998 -0.94672 0.03656 +vn 0.88683 -0.46207 0.00543 +vn 0.89619 -0.44322 0.01999 +vn 0.85252 -0.52235 0.01901 +vn 0.80352 -0.59501 0.01792 +vn 0.75749 -0.65263 0.01689 +vn 0.71658 -0.69732 0.01598 +vn 0.66954 -0.74262 0.01493 +vn 0.63632 -0.7713 0.01419 +vn 0.66353 -0.748 0.0148 +vn 0.77493 -0.63181 0.01728 +vn 0.94231 -0.33408 0.02101 +vn -0.94231 -0.33408 0.02101 +vn 0.53981 -0.83896 0.06885 +vn 0.53981 -0.83897 0.06886 +vn -0.34569 0.93556 0.07224 +vn -0.34699 0.93513 0.07157 +vn 0.66794 -0.73987 0.08038 +vn 0.66566 -0.74144 0.08463 +vn 0.79568 -0.60011 0.08225 +vn 0.79341 -0.60246 0.08681 +vn 0.88117 -0.46636 0.07777 +vn 0.87931 -0.46911 0.08209 +vn 0.84641 -0.52938 0.05776 +vn 0.84585 -0.5302 0.05856 +vn 0.92014 -0.38515 0.0707 +vn 0.91842 -0.38774 0.07848 +vn 0.94935 -0.3077 0.06362 +vn 0.94812 -0.31011 0.06997 +vn 0.96109 -0.2709 0.05404 +vn 0.96005 -0.27268 0.06282 +vn 0.94871 -0.31173 0.05263 +vn 0.94806 -0.3132 0.0556 +vn 0.91962 -0.38914 0.05351 +vn 0.91899 -0.39031 0.05579 +vn 0.88199 -0.46794 0.05595 +vn 0.8814 -0.46893 0.05689 +vn 0.80163 -0.59482 0.05988 +vn 0.8011 -0.59547 0.06053 +vn 0.84365 -0.53081 0.08058 +vn 0.84156 -0.53342 0.08508 +vn 0.73685 -0.67103 0.0823 +vn 0.73451 -0.67303 0.08679 +vn -0.38435 0.92066 -0.0683 +vn -0.40088 0.90782 -0.12314 +vn -0.34109 0.93807 -0.0607 +vn -0.34087 0.9382 -0.05999 +vn -0.27001 0.96175 -0.04614 +vn -0.2702 0.96168 -0.04653 +vn -0.11616 0.99311 -0.01569 +vn -0.11593 0.99314 -0.01544 +vn 0.34726 0.93505 0.07129 +vn 0.35808 0.93065 0.07526 +vn 0.98239 -0.0457 0.18119 +vn 0.97955 -0.08002 0.18458 +vn 0.63989 -0.76064 0.10935 +vn 0.63382 -0.76518 0.113 +vn 0.47832 -0.87479 0.07721 +vn 0.47572 -0.87593 0.08018 +vn 0.40873 -0.9105 0.06267 +vn 0.40712 -0.91103 0.06542 +vn 0.42609 -0.90254 0.06214 +vn 0.42457 -0.90305 0.0651 +vn 0.50924 -0.85776 0.07011 +vn 0.50742 -0.85856 0.07354 +vn 0.59103 -0.80303 0.07629 +vn 0.58894 -0.80419 0.08017 +vn 0.68443 -0.72623 0.06448 +vn 0.68408 -0.72652 0.06483 +vn 0.67335 -0.72887 -0.12388 +vn 0.59799 -0.80107 -0.02645 +vn 0.81334 -0.5603 -0.15668 +vn 0.80987 -0.56698 -0.15047 +vn 0 1 0 +vn -0 1 -0 +vn 2E-05 1 -1E-05 +vn -5E-05 1 4E-05 +vn -0 1 -0 +vn 0 1 -0 +vn 0 1 -0 +vn 1E-05 1 -1E-05 +vn -1E-05 1 2E-05 +vn 0 1 -0 +vn 0 1 -0 +vn 0 1 -0 +vn -0 1 0 +vn 0 1 -0 +vn -0 1 0 +vn 0.02526 0.99965 0.00726 +vn -0.02526 0.99965 0.00726 +vn -0.02335 0.99965 0.0121 +vn 0.02335 0.99965 0.0121 +vn 0.02042 0.99965 0.01658 +vn -0.02042 0.99965 0.01658 +vn -0.01658 0.99965 0.02042 +vn 0.01658 0.99965 0.02042 +vn 0.66681 -0.73006 -0.14961 +vn 0.0121 0.99965 0.02335 +vn -0.0121 0.99965 0.02335 +vn -0.00726 0.99965 0.02526 +vn 0.00726 0.99965 0.02526 +vn 0.0024 0.99965 0.02616 +vn -0.0024 0.99965 0.02616 +vn -0.00467 0.99858 0.05314 +vn 0.89205 -0.45166 0.01597 +vn 0.94524 0.32599 0.0161 +vn -0.98408 0.17565 0.02696 +vn -0.99906 0.03363 0.02737 +vn -0.09718 0.99487 0.02794 +vn 0.09718 0.99487 0.02794 +vn -0.37677 0.90594 -0.19319 +vn 0.62958 -0.67894 -0.37772 +vn 0.57387 -0.78236 -0.24204 +vn 0.74158 -0.4821 -0.46651 +vn 0.73807 -0.50512 -0.44734 +vn -0.33203 0.92385 -0.19039 +vn -0.37641 0.90041 -0.21813 +vn -0.38769 0.87704 -0.28371 +vn -0.2742 0.96134 0.02516 +vn 0.27981 0.95971 0.02567 +vn 0.27313 0.96124 0.03751 +vn -0.26184 0.95392 -0.14652 +vn -0.33245 0.92322 -0.19272 +vn 0.81151 0.24754 -0.52932 +vn 0.81237 0.24541 -0.52899 +vn 0.73522 -0.67026 0.10097 +vn -0.80536 -0.58238 0.1106 +vn 0.80536 -0.58238 0.1106 +vn 0.95873 0.06965 0.27566 +vn -0.95873 0.06965 0.27566 +vn -0.93026 -0.25116 0.26747 +vn 0.93026 -0.25116 0.26747 +vn -0.90751 0.32916 0.26093 +vn 0.90751 0.32916 0.26093 +vn 0.70376 0.7075 0.06457 +vn 0.65895 0.74673 0.09049 +vn -0.66131 0.74766 0.06067 +vn 0.90878 -0.39816 0.12481 +vn -0.90878 -0.39816 0.12481 +vn 0.79301 0.56494 0.22801 +vn -0.79301 0.56494 0.22801 +vn -0.11221 0.99253 -0.04796 +vn -0.26142 0.95426 -0.14511 +vn 0.21749 0.96322 -0.15781 +vn 0.20513 0.96622 -0.156 +vn 0.8319 -0.50073 0.23919 +vn -0.8319 -0.50073 0.23919 +vn 0.87281 0.47311 0.11987 +vn -0.69906 0.70859 0.096 +vn -0.87281 0.47311 0.11987 +vn -0.9904 0.02457 0.13601 +vn 0.9904 0.02457 0.13601 +vn 0.61497 -0.68593 -0.38899 +vn 0.64898 0.73756 0.1866 +vn -0.64898 0.73756 0.1866 +vn -0.27757 0.95995 0.03812 +vn 0.22255 0.97444 0.03056 +vn -0.22255 0.97444 0.03056 +vn 0.30165 0.93002 0.20995 +vn -0.1128 0.99241 -0.04906 +vn -0.1442 0.98709 0.06977 +vn -0.14541 0.98692 0.06967 +vn -0.73487 -0.64445 0.21129 +vn 0.73487 -0.64445 0.21129 +vn 0.48607 0.86267 0.13976 +vn -0.48607 0.86267 0.13976 +vn 0.84683 0.09354 0.52357 +vn 0.27997 0.94079 0.19112 +vn 0.62259 -0.69329 0.36295 +vn 0.84174 0.17719 0.50998 +vn -0.31477 0.93403 0.16885 +vn -0.30986 0.93538 0.17042 +vn -0.00277 0.99567 0.09295 +vn 0.89539 -0.4445 0.02632 +vn 0.94577 0.32372 0.02675 +vn -0.99842 0.04683 0.03096 +vn 0.17507 0.98426 0.02404 +vn -0.17507 0.98426 0.02404 +vn 0.46987 -0.84404 0.25849 +vn 0.63967 -0.68051 0.35739 +vn -0.42966 0.87434 0.22564 +vn -0.42103 0.87735 0.2302 +vn 0.2132 0.97508 0.0613 +vn 0.2196 0.97422 0.05162 +vn -0.21754 0.97405 0.06255 +vn 0.4017 -0.89125 0.21052 +vn 0.47759 -0.84179 0.25158 +vn -0.52688 0.80808 0.26344 +vn -0.51522 0.81277 0.27196 +vn 0.41781 -0.88419 0.20891 +vn 0.40663 -0.89068 0.20331 +vn -0.63229 0.71551 0.29708 +vn -0.61796 0.72295 0.30898 +vn 0.49726 -0.83518 0.23496 +vn 0.4226 -0.88377 0.20089 +vn 0.35335 0.92996 0.1016 +vn -0.35335 0.92996 0.1016 +vn 0.57497 -0.77739 0.25512 +vn 0.50312 -0.83424 0.22565 +vn -0.74407 0.60482 0.28382 +vn -0.72423 0.61309 0.31561 +vn -0.62505 0.73033 0.27554 +vn 0.64801 -0.71277 0.26841 +vn 0.58187 -0.77565 0.24453 +vn 0.65572 -0.71003 0.2567 +vn 0.71388 -0.64415 0.27468 +vn -0.82432 0.49747 0.27023 +vn -0.80567 0.50965 0.30192 +vn 0.71439 -0.66892 0.2054 +vn -0.72245 -0.67024 0.16982 +vn -0.70695 -0.67742 0.20327 +vn 0.77088 -0.57478 0.27453 +vn 0.72201 -0.64031 0.26213 +vn -0.35919 0.86636 -0.34698 +vn 0.54429 -0.58662 -0.59968 +vn 0.53414 -0.6647 -0.52237 +vn 0.779 -0.56989 0.26149 +vn 0.81833 -0.50784 0.26913 +vn -0.87772 0.41004 0.24794 +vn -0.86231 0.42404 0.27678 +vn -0.31275 0.89114 -0.32873 +vn -0.35418 0.85597 -0.37666 +vn -0.35958 0.79408 -0.49004 +vn 0.61236 -0.34873 -0.70951 +vn 0.6158 -0.38685 -0.68639 +vn -0.08982 0.99487 0.04653 +vn 0.08982 0.99487 0.04653 +vn 0.44301 0.89153 0.0944 +vn -0.013 0.9956 0.09281 +vn -0.00272 0.98805 0.15409 +vn 0.0092 -0.99569 0.09223 +vn -0.42688 -0.89683 0.11605 +vn -0.45703 -0.87548 0.15703 +vn -0.45623 -0.87651 0.15357 +vn -0.42533 -0.89121 0.1576 +vn -0.43753 -0.87701 0.19854 +vn -0.42992 -0.88825 0.16181 +vn -0.01976 0.98786 0.1541 +vn -0.0199 0.988 0.15319 +vn -0.06321 0.98581 0.15554 +vn -0.06371 0.98617 0.15297 +vn -0.49429 -0.85472 0.15849 +vn -0.49307 -0.85638 0.15325 +vn -0.5337 -0.83002 0.16197 +vn -0.53218 -0.83225 0.15538 +vn -0.57519 -0.80079 0.16698 +vn -0.57351 -0.80353 0.15949 +vn -0.61863 -0.7664 0.17302 +vn -0.61691 -0.76953 0.16508 +vn -0.66369 -0.72613 0.17958 +vn -0.66207 -0.72952 0.17163 +vn -0.70988 -0.67928 0.18617 +vn -0.70848 -0.68275 0.17862 +vn -0.75643 -0.62516 0.19231 +vn -0.75535 -0.62852 0.18552 +vn -0.80232 -0.56326 0.19756 +vn -0.80158 -0.56628 0.19182 +vn -0.84618 -0.49329 0.20159 +vn -0.84578 -0.4958 0.1971 +vn -0.88642 -0.41542 0.20418 +vn -0.88628 -0.41726 0.20102 +vn -0.92126 -0.33033 0.20532 +vn -0.92128 -0.33146 0.20344 +vn -0.94899 -0.23936 0.20525 +vn -0.94904 -0.23986 0.20443 +vn -0.96816 -0.14446 0.20446 +vn -0.96817 -0.14452 0.20435 +vn -0.97785 -0.04802 0.20372 +vn -0.97783 -0.04795 0.20384 +vn -0.97612 0.07314 0.20456 +vn -0.97641 0.07247 0.20342 +vn -0.94764 0.24335 0.20676 +vn -0.94885 0.24138 0.20353 +vn -0.87724 0.433 0.2073 +vn -0.87971 0.43024 0.20248 +vn -0.76238 0.61428 0.20356 +vn -0.76597 0.61164 0.19793 +vn -0.62064 0.75935 0.19545 +vn -0.62462 0.75753 0.18975 +vn -0.47864 0.85824 0.1853 +vn -0.48226 0.85732 0.18006 +vn -0.35488 0.91826 0.17566 +vn -0.35776 0.91799 0.17116 +vn -0.25543 0.95214 0.16787 +vn -0.25755 0.95221 0.16419 +vn -0.17894 0.9704 0.1622 +vn -0.18041 0.9706 0.15932 +vn -0.12152 0.97987 0.1584 +vn -0.1225 0.98009 0.15625 +vn -0.00098 -0.97173 0.23608 +vn 0.00509 -0.98273 0.18498 +vn 0.00843 -0.99068 0.13595 +vn 0.00903 -0.98825 0.15256 +vn 0.04403 -0.98701 0.15453 +vn 0.04492 -0.9875 0.1511 +vn 0.10259 -0.98231 0.15668 +vn 0.10475 -0.98314 0.14987 +vn 0.17627 -0.97144 0.15883 +vn 0.17996 -0.97154 0.15405 +vn 0.24769 -0.95504 0.16295 +vn 0.25283 -0.95467 0.15709 +vn 0.34311 -0.92391 0.16929 +vn 0.34998 -0.92258 0.16236 +vn 0.46759 -0.86579 0.17823 +vn 0.4761 -0.86272 0.1704 +vn 0.61982 -0.7616 0.18918 +vn 0.62897 -0.75609 0.18091 +vn 0.78076 -0.59214 0.19948 +vn 0.78827 -0.5847 0.19171 +vn 0.90953 -0.36154 0.20505 +vn 0.91338 -0.35498 0.19929 +vn 0.97219 -0.11352 0.20485 +vn 0.97293 -0.11104 0.20269 +vn 0.97767 0.0517 0.20368 +vn 0.97764 0.05148 0.20389 +vn 0.9686 0.14148 0.20447 +vn 0.96861 0.14164 0.2043 +vn 0.94469 0.25583 0.20521 +vn 0.94549 0.2544 0.20329 +vn 0.94545 0.25603 0.20141 +vn 0.91435 0.34994 0.20374 +vn 0.91401 0.35328 0.19946 +vn 0.89015 0.409 0.20087 +vn 0.88947 0.41333 0.19496 +vn 0.86297 0.46547 0.1965 +vn 0.86186 0.47059 0.18905 +vn 0.83254 0.52009 0.19076 +vn 0.83093 0.52577 0.18197 +vn 0.79847 0.57325 0.18394 +vn 0.79637 0.5792 0.17412 +vn 0.7604 0.62503 0.17645 +vn 0.75785 0.63096 0.16599 +vn 0.71798 0.67527 0.16883 +vn 0.7151 0.68088 0.15823 +vn 0.67099 0.72361 0.16176 +vn 0.66795 0.7286 0.1516 +vn 0.61931 0.76948 0.15604 +vn 0.61639 0.77361 0.14694 +vn 0.56305 0.81222 0.15254 +vn 0.56054 0.8153 0.1452 +vn 0.50251 0.85107 0.1522 +vn 0.50076 0.85296 0.1473 +vn 0.43836 0.88517 0.15593 +vn 0.42187 0.88645 0.19033 +vn 0.43787 0.88823 0.13898 +vn 0.85644 -0.44605 0.25992 +vn 0.82605 -0.5021 0.25598 +vn -0.24449 0.93706 -0.24927 +vn -0.31301 0.88971 -0.33233 +vn 0.59788 0.34512 -0.72348 +vn 0.59948 0.34187 -0.72371 +vn 0.86349 -0.43974 0.24703 +vn 0.89612 -0.36755 0.24877 +vn -0.9144 0.33615 0.22558 +vn -0.9032 0.34963 0.24896 +vn -0.21615 0.97504 0.05081 +vn -0.43573 0.89423 0.10242 +vn 0.43573 0.89423 0.10242 +vn -0.27017 0.95967 0.07768 +vn 0.2641 0.9615 0.07593 +vn 0.27276 0.95994 0.06411 +vn -0.1489 0.98864 0.02045 +vn 0.1489 0.98864 0.02045 +vn 0.46247 -0.87995 0.1087 +vn -0.1906 0.97795 0.0854 +vn -0.16694 0.97946 0.11306 +vn 0.38744 -0.9152 0.11092 +vn 0.31842 -0.94116 0.11324 +vn 0.38712 -0.91526 0.11151 +vn -0.11274 0.99157 0.06388 +vn -0.90251 0.42882 0.03993 +vn -0.00666 0.99055 0.13696 +vn 0.71638 -0.67709 0.16839 +vn -0.79137 -0.58236 0.18602 +vn 0.79137 -0.58236 0.18602 +vn 0.34716 -0.93581 0.06113 +vn 0.16567 0.95902 -0.22983 +vn 0.15093 0.96325 -0.22217 +vn -0.10535 0.99121 -0.08001 +vn -0.24407 0.93786 -0.24666 +vn 0.99648 -0.08377 0.0021 +vn 0.99624 -0.08658 0.00241 +vn 0.31791 -0.9412 0.11431 +vn 0.89706 -0.44038 0.0368 +vn 0.94585 0.32245 0.03741 +vn -0.20333 0.97504 0.08916 +vn -0.99933 0.00193 0.0366 +vn 0.92949 -0.29409 0.22261 +vn 0.90439 -0.36265 0.22487 +vn 0.88577 0.06963 0.45888 +vn -0.88577 0.06963 0.45888 +vn -0.85948 -0.25107 0.44526 +vn 0.85948 -0.25107 0.44526 +vn -0.83848 0.32904 0.43438 +vn 0.83848 0.32904 0.43438 +vn -0.68692 0.70857 0.16147 +vn 0.68692 0.70857 0.16147 +vn 0.49916 -0.53534 -0.68136 +vn 0.89298 -0.39814 0.2099 +vn -0.89298 -0.39814 0.2099 +vn 0.73275 0.56478 0.37961 +vn -0.73275 0.56478 0.37961 +vn 0.76867 -0.50058 0.39822 +vn -0.76867 -0.50058 0.39822 +vn 0.85764 0.47308 0.2016 +vn -0.85764 0.47308 0.2016 +vn 0.21754 0.97405 0.06255 +vn 0.21031 0.97501 0.07153 +vn -0.2132 0.97508 0.0613 +vn -0.13244 0.98447 0.1152 +vn -0.1348 0.98408 0.11581 +vn 0.21525 0.93374 0.28601 +vn -0.10612 0.99093 -0.08245 +vn 0.86464 0.499 0.05827 +vn -0.76238 0.64508 0.05137 +vn -0.86464 0.499 0.05827 +vn 0.76238 0.64508 0.05137 +vn -0.97317 0.02457 0.22875 +vn 0.97317 0.02457 0.22875 +vn 0.94476 -0.25933 0.20043 +vn 0.93564 -0.289 0.20264 +vn -0.92558 0.32662 0.19135 +vn -0.91893 0.33647 0.20579 +vn -0.91444 0.34807 0.20649 +vn 0.90383 0.42354 0.06091 +vn -0.90169 0.42931 0.05138 +vn -0.90018 0.43092 0.06308 +vn -0.89795 0.43363 0.07519 +vn -0.89485 0.43755 0.08823 +vn -0.90121 0.4291 0.06073 +vn 0.9413 -0.33414 0.04796 +vn -0.94135 -0.33415 0.04692 +vn -0.77338 -0.6318 0.05212 +vn 0.77338 -0.6318 0.05212 +vn 0.9461 -0.31752 0.06376 +vn -0.94543 -0.31953 0.06371 +vn -0.59972 0.73743 0.31069 +vn 0.57913 0.75802 0.30003 +vn 0.61347 0.73873 0.27918 +vn 0.6622 -0.748 0.04462 +vn -0.6622 -0.748 0.04462 +vn -0.26773 0.96144 0.06293 +vn 0.21869 0.97444 0.05141 +vn -0.21869 0.97444 0.05141 +vn -0.3368 0.82213 -0.45899 +vn 0.4423 -0.45386 -0.77355 +vn 0.44861 -0.65097 -0.61236 +vn 0.61196 0.35774 0.70535 +vn 0.19576 0.94668 0.2559 +vn 0.63504 -0.77129 0.04279 +vn -0.63504 -0.77129 0.04279 +vn 0.4669 -0.19615 -0.86228 +vn 0.47681 -0.24171 -0.84512 +vn -0.2818 0.83761 -0.46797 +vn -0.32173 0.77603 -0.54247 +vn -0.32024 0.75267 -0.57527 +vn 0.70695 -0.67742 0.20327 +vn -0.69687 -0.6769 0.23703 +vn -0.71439 -0.66892 0.2054 +vn -0.28418 0.91748 0.27833 +vn -0.27822 0.91926 0.27849 +vn 0.58268 -0.51586 0.628 +vn 0.5937 0.44462 0.67069 +vn -0.67905 -0.6443 0.35179 +vn 0.67905 -0.6443 0.35179 +vn -0.91247 0.365 0.18488 +vn -0.90726 0.37249 0.19526 +vn -0.44921 0.86259 0.23272 +vn 0.45915 0.86344 0.20895 +vn 0.6682 -0.74262 0.04503 +vn -0.6682 -0.74262 0.04503 +vn 0.15648 0.98745 0.02149 +vn -0.15648 0.98745 0.02149 +vn -0.9102 0.41245 0.03757 +vn 0.91489 0.39898 0.06165 +vn -0.9104 0.41087 0.04862 +vn -0.91369 0.40175 0.06142 +vn -0.92054 0.38241 0.07973 +vn -0.93638 0.33042 0.1184 +vn -0.90872 0.41288 0.06124 +vn -0.91489 0.39898 0.06165 +vn 0.42419 -0.48278 -0.76615 +vn 0.40913 0.43997 -0.7994 +vn 0.4112 0.43591 -0.80056 +vn -0.21881 0.91133 -0.34872 +vn -0.28169 0.83551 -0.47177 +vn -0.07854 0.99487 0.0638 +vn 0.07854 0.99487 0.0638 +vn -0.38813 0.84242 0.37374 +vn -0.37667 0.84621 0.37688 +vn 0.45324 -0.76415 0.45896 +vn 0.60606 -0.49186 0.62511 +vn 0.71514 -0.69732 0.04819 +vn -0.71514 -0.69732 0.04819 +vn -0.00302 0.98243 0.18663 +vn 0.9279 0.36754 0.06253 +vn -0.9279 0.36754 0.06253 +vn -0.99891 -0.01071 0.04553 +vn 0.89711 -0.43921 0.04774 +vn 0.94546 0.32216 0.04818 +vn -0.25993 0.95877 0.11485 +vn 0.93667 -0.30167 0.17787 +vn 0.95078 -0.25737 0.17258 +vn 0.95182 -0.2561 0.16868 +vn -0.88027 0.43675 0.18541 +vn -0.87616 0.44194 0.19244 +vn 0.75597 -0.65262 0.05094 +vn -0.75597 -0.65262 0.05094 +vn -0.47663 0.76243 0.43764 +vn -0.4604 0.76764 0.44582 +vn 0.38825 -0.84232 0.37386 +vn 0.46563 -0.7614 0.45106 +vn -0.57948 0.6818 0.44649 +vn -0.52461 0.70197 0.48169 +vn 0.40169 -0.83822 0.36883 +vn 0.39648 -0.84278 0.36404 +vn 0.8019 -0.59501 0.05404 +vn -0.8019 -0.59501 0.05404 +vn 0.94447 0.32236 0.06365 +vn -0.94456 0.32212 0.06365 +vn 0.47329 -0.77942 0.41049 +vn 0.40985 -0.83915 0.35755 +vn -0.94006 -0.3341 0.06826 +vn -0.57332 0.6751 0.46426 +vn -0.58856 0.66896 0.45397 +vn -0.09617 0.9893 -0.10974 +vn -0.21859 0.9128 -0.34499 +vn 0.11187 0.9575 -0.26584 +vn 0.0984 0.96231 -0.25352 +vn 0.17204 0.98426 0.04044 +vn -0.17204 0.98426 0.04044 +vn -0.66807 0.57666 0.47026 +vn -0.63449 0.58164 0.50904 +vn 0.48343 -0.77991 0.39753 +vn 0.5425 -0.71469 0.44149 +vn -0.21358 0.97422 0.07265 +vn -0.42378 0.89422 0.14414 +vn 0.42378 0.89422 0.14414 +vn -0.2641 0.9615 0.07593 +vn 0.27017 0.95967 0.07768 +vn 0.26051 0.9614 0.08861 +vn 0.85081 -0.52234 0.05733 +vn -0.85081 -0.52234 0.05733 +vn -0.2837 0.70055 -0.65478 +vn 0.33086 -0.34019 -0.88023 +vn 0.35688 -0.50881 -0.78342 +vn -0.96358 0.25942 0.06493 +vn 0.60754 -0.64676 0.46109 +vn 0.55461 -0.71431 0.42681 +vn 0.89639 -0.43914 0.0604 +vn -0.8834 -0.467 0.03893 +vn -0.88251 -0.4678 0.04832 +vn -0.87878 -0.47332 0.061 +vn -0.86192 -0.49885 0.0908 +vn -0.79776 -0.57889 0.16872 +vn -0.12412 -0.83871 0.53025 +vn -0.89466 -0.44266 0.06029 +vn 0.93998 -0.33411 0.06931 +vn 0.90833 -0.37827 0.17847 +vn 0.93956 -0.29829 0.1681 +vn -0.82093 0.53777 0.19202 +vn -0.81795 0.54079 0.19624 +vn 0.33196 -0.04749 -0.9421 +vn 0.34439 -0.09214 -0.93429 +vn -0.27004 0.67016 -0.69135 +vn -0.2562 0.59132 -0.76466 +vn -0.23901 0.76332 -0.60018 +vn 0.8906 -0.45209 0.04942 +vn 0.19672 0.97515 0.10191 +vn 0.20535 0.97422 0.09345 +vn -0.20106 0.97403 0.10416 +vn -0.97778 0.199 0.06589 +vn -0.74622 0.48743 0.4534 +vn -0.71241 0.49889 0.49354 +vn 0.66699 -0.57839 0.46968 +vn 0.62131 -0.6451 0.44477 +vn -0.98633 0.15077 0.06647 +vn 0.94451 0.32213 0.06425 +vn 0.89975 0.4321 0.06121 +vn -0.99315 0.09577 0.06693 +vn 0.32775 -0.37716 -0.86622 +vn -0.99717 0.03363 0.0672 +vn -0.99815 0.00149 0.06079 +vn -0.9938 0.05595 0.09603 +vn -0.82818 0.46889 0.30703 +vn -0.99764 -0.01362 0.06723 +vn 0.70263 -0.67022 0.23899 +vn -0.76965 -0.58233 0.26178 +vn 0.76965 -0.58233 0.26178 +vn -0.20626 0.97809 0.02833 +vn 0.20626 0.97809 0.02833 +vn -0.45149 0.8683 0.20547 +vn 0.33365 0.93039 0.15184 +vn -0.33365 0.93039 0.15184 +vn 0.71988 -0.51208 0.46856 +vn 0.68185 -0.57519 0.45193 +vn 0.7743 0.06961 0.62898 +vn -0.7743 0.06961 0.62898 +vn -0.75133 -0.25102 0.61032 +vn 0.75133 -0.25102 0.61032 +vn -0.09689 0.98875 -0.11395 +vn 0.13583 0.94143 0.30864 +vn -0.11745 0.98066 0.15654 +vn -0.12108 0.97986 0.15877 +vn -0.44009 0.86853 0.22799 +vn 0.43574 0.86343 0.25421 +vn 0.58219 0.73871 0.33964 +vn -0.73298 0.32898 0.59542 +vn 0.73298 0.32898 0.59542 +vn 0.26399 0.52262 -0.81066 +vn 0.26627 0.51803 -0.81286 +vn -0.2387 0.76147 -0.60265 +vn -0.18605 0.87828 -0.44046 +vn 0.87114 -0.45609 0.18194 +vn 0.91088 -0.37559 0.17094 +vn -0.72672 0.65638 0.20259 +vn -0.72521 0.6575 0.20438 +vn -0.80558 0.41405 0.42381 +vn -0.77546 0.42979 0.46253 +vn 0.73512 -0.5073 0.44971 +vn 0.76571 -0.44996 0.45959 +vn 0.66807 0.70855 0.22723 +vn -0.66807 0.70855 0.22723 +vn 0.64058 0.5647 0.52036 +vn -0.64058 0.5647 0.52036 +vn 0.38599 0.57024 0.72514 +vn 0.12269 0.95358 0.27502 +vn -0.67552 -0.6702 0.30742 +vn -0.65268 -0.67799 0.33813 +vn 0.66014 -0.66878 0.34199 +vn 0.27214 -0.27039 -0.92349 +vn 0.67197 -0.50049 0.54586 +vn -0.67197 -0.50049 0.54586 +vn 0.83562 -0.51643 0.18721 +vn 0.87312 -0.45358 0.1787 +vn 0.86847 -0.39812 0.29539 +vn -0.86847 -0.39812 0.29539 +vn -0.2476 0.62656 -0.739 +vn 0.22828 -0.20075 -0.95267 +vn 0.2635 -0.36193 -0.89419 +vn 0.8341 0.47306 0.2837 +vn -0.8341 0.47306 0.2837 +vn 0.00889 -0.97209 0.23445 +vn -0.41356 -0.86597 0.28119 +vn -0.43076 -0.82589 0.36379 +vn -0.41972 -0.8555 0.30326 +vn -0.41762 -0.87504 0.24473 +vn 0.48711 0.82973 0.27253 +vn 0.48512 0.83345 0.2646 +vn 0.42677 0.86047 0.27831 +vn 0.37634 0.84615 0.37736 +vn 0.41448 0.85956 0.29893 +vn 0.43092 0.87015 0.23903 +vn 0.59838 0.75101 0.27914 +vn 0.5954 0.75871 0.2643 +vn 0.54499 0.79268 0.27321 +vn 0.54227 0.79856 0.26126 +vn 0.69076 0.6577 0.30048 +vn 0.68841 0.66773 0.28326 +vn 0.64698 0.70572 0.28873 +vn 0.64416 0.71483 0.27216 +vn 0.76475 0.5562 0.32527 +vn 0.76377 0.56645 0.3095 +vn 0.72989 0.60768 0.31303 +vn 0.7282 0.61809 0.29613 +vn 0.82363 0.44972 0.34553 +vn 0.82383 0.45817 0.33374 +vn 0.79582 0.50355 0.33632 +vn 0.7955 0.51312 0.32231 +vn 0.87127 0.33676 0.35705 +vn 0.87194 0.34201 0.35036 +vn 0.84866 0.39436 0.3525 +vn 0.84919 0.40134 0.34321 +vn 0.90077 0.24393 0.35932 +vn 0.89165 0.20679 0.40273 +vn 0.88372 0.23931 0.40221 +vn 0.89221 0.27911 0.35506 +vn 0.93286 0.04912 0.35689 +vn 0.93275 0.04881 0.35721 +vn 0.92384 0.1351 0.35814 +vn 0.92391 0.13534 0.35787 +vn 0.86981 -0.33805 0.35937 +vn 0.87661 -0.32952 0.35068 +vn 0.92742 -0.10585 0.35874 +vn 0.92906 -0.10251 0.35544 +vn 0.60255 -0.72433 0.33507 +vn 0.61686 -0.71789 0.32268 +vn 0.75202 -0.55781 0.35116 +vn 0.76414 -0.54847 0.33953 +vn 0.3381 -0.89127 0.30219 +vn 0.34868 -0.89074 0.29154 +vn 0.45821 -0.83031 0.31722 +vn 0.47139 -0.82737 0.30538 +vn 0.17463 -0.94278 0.28402 +vn 0.18024 -0.94397 0.27648 +vn 0.24491 -0.92476 0.29127 +vn 0.25279 -0.92547 0.28213 +vn 0.10171 -0.9546 0.28001 +vn 0.10508 -0.95743 0.26885 +vn 0.04367 -0.96012 0.27615 +vn 0.04501 -0.96167 0.27047 +vn -0.00052 -0.93124 0.36441 +vn 0.0064 -0.95641 0.29197 +vn 0.00921 -0.96203 0.27277 +vn -0.17148 0.94197 0.2886 +vn -0.17388 0.94297 0.28387 +vn -0.24433 0.9228 0.29789 +vn -0.24782 0.92378 0.2919 +vn -0.33865 0.88816 0.31063 +vn -0.34349 0.8888 0.30339 +vn -0.45558 0.82822 0.32634 +vn -0.46179 0.82802 0.318 +vn -0.58945 0.73143 0.34287 +vn -0.59654 0.72986 0.33384 +vn -0.72348 0.59139 0.35615 +vn -0.73024 0.58838 0.34721 +vn -0.83331 0.41742 0.36243 +vn -0.8384 0.41383 0.35473 +vn -0.90211 0.23517 0.36178 +vn -0.90491 0.23238 0.35655 +vn -0.93091 0.07083 0.3583 +vn -0.9317 0.06981 0.35645 +vn -0.933 -0.04592 0.35694 +vn -0.93293 -0.04581 0.35713 +vn -0.92346 -0.13769 0.35812 +vn -0.92352 -0.13779 0.35795 +vn -0.90503 -0.22753 0.35938 +vn -0.90534 -0.22835 0.35806 +vn -0.87893 -0.31343 0.3595 +vn -0.87948 -0.31535 0.35646 +vn -0.8467 -0.39391 0.35768 +vn -0.84734 -0.3971 0.35259 +vn -0.80992 -0.468 0.35355 +vn -0.81047 -0.47247 0.34628 +vn -0.77009 -0.53525 0.3471 +vn -0.77035 -0.54082 0.33775 +vn -0.72845 -0.59557 0.33861 +vn -0.72832 -0.60193 0.32748 +vn -0.68604 -0.64914 0.3286 +vn -0.68545 -0.65591 0.31614 +vn -0.64361 -0.69628 0.31775 +vn -0.64261 -0.70307 0.30454 +vn -0.60174 -0.7374 0.30684 +vn -0.60043 -0.74385 0.29357 +vn -0.56081 -0.77295 0.29672 +vn -0.55934 -0.77872 0.28414 +vn -0.5211 -0.80334 0.28828 +vn -0.51965 -0.80817 0.27718 +vn -0.44589 -0.85017 0.27999 +vn -0.44504 -0.8525 0.27419 +vn -0.48276 -0.82897 0.28241 +vn -0.48152 -0.83264 0.27359 +vn -0.11662 0.95219 0.28236 +vn -0.1182 0.95305 0.27879 +vn -0.06074 0.95875 0.2777 +vn -0.06155 0.95994 0.27335 +vn -0.01901 0.96116 0.27533 +vn -0.01923 0.9616 0.27379 +vn -0.00795 0.9702 0.24219 +vn -0.00296 0.96135 0.27532 +vn 0.80438 -0.39375 0.44489 +vn 0.78063 -0.44378 0.44008 +vn -0.21021 0.53549 -0.81796 +vn -0.0638 0.99487 0.07854 +vn 0.0638 0.99487 0.07854 +vn 0.89507 -0.44192 0.05968 +vn -0.28369 0.94833 0.14208 +vn 0.93033 0.36094 0.06483 +vn 0.8375 -0.51436 0.18446 +vn 0.79091 -0.58057 0.1934 +vn -0.5977 0.77264 0.21399 +vn -0.59808 0.7724 0.21375 +vn -0.18521 0.67075 -0.71818 +vn 0.21488 0.09074 -0.97242 +vn 0.22655 0.05249 -0.97258 +vn -0.20588 0.53199 -0.82134 +vn -0.18446 0.43828 -0.8797 +vn 0.48718 -0.22983 0.84252 +vn 0.36957 0.63349 0.67979 +vn -0.2442 0.89406 0.37554 +vn -0.23921 0.89594 0.37426 +vn -0.94645 0.02457 0.32192 +vn 0.94645 0.02457 0.32192 +vn -0.52431 0.73736 0.42591 +vn 0.52431 0.73736 0.42591 +vn 0.21518 -0.20904 -0.95394 +vn 0.73685 -0.64576 0.20009 +vn 0.79263 -0.57896 0.19115 +vn 0.06551 0.95904 -0.27558 +vn 0.05463 0.96383 -0.26087 +vn -0.1862 0.88054 -0.43586 +vn -0.08543 0.98694 -0.13655 +vn -0.86182 0.35038 0.36675 +vn -0.82154 0.37951 0.4255 +vn 0.81843 -0.38648 0.42521 +vn 0.84513 -0.3217 0.42693 +vn -0.26528 0.95994 0.09023 +vn 0.2127 0.97444 0.07234 +vn -0.2127 0.97444 0.07234 +vn 0.29544 0.9545 0.04057 +vn -0.29544 0.9545 0.04057 +vn 0.73832 -0.64463 0.19835 +vn 0.6742 -0.70898 0.20686 +vn -0.48636 0.84518 0.22163 +vn -0.48821 0.84439 0.22057 +vn -0.59799 0.77236 0.21417 +vn -0.14963 0.42325 -0.89357 +vn 0.08573 0.00754 -0.99629 +vn 0.15363 -0.42046 -0.89421 +vn -0.14745 0.8399 -0.52233 +vn -0.18525 0.67093 -0.718 +vn 0.15448 0.59319 -0.7901 +vn 0.15676 0.58831 -0.79329 +vn 0.41436 -0.61824 0.66789 +vn 0.50851 -0.19405 0.83891 +vn -0.33229 0.79598 0.50596 +vn -0.32108 0.80018 0.50658 +vn -0.40921 0.88401 0.226 +vn -0.41207 0.88308 0.22441 +vn 0.60467 -0.76736 0.21336 +vn 0.6753 -0.70829 0.20565 +vn -0.59365 -0.64422 0.48224 +vn 0.59365 -0.64422 0.48224 +vn 0.20106 0.97403 0.10416 +vn 0.19163 0.97508 0.11179 +vn -0.20186 0.9751 0.09187 +vn -0.19672 0.97515 0.10191 +vn 0.07283 0.00546 -0.99733 +vn -0.0869 0.50174 -0.86064 +vn 0.06883 0.28242 -0.95682 +vn 0.07719 0.24442 -0.96659 +vn -0.08948 0.30383 -0.94851 +vn -0.00201 -0.1777 -0.98408 +vn -0.02035 -0.0816 -0.99646 +vn -0.08446 0.22765 -0.97007 +vn -0.41248 0.9092 0.05665 +vn 0.41248 0.9092 0.05665 +vn 0.6053 -0.76705 0.21271 +vn 0.53073 -0.81866 0.21937 +vn -0.33328 0.91435 0.22997 +vn -0.33708 0.91349 0.22785 +vn -0.39274 0.86254 0.31903 +vn 0.38443 0.86873 0.31228 +vn 0.40749 0.86342 0.29741 +vn -0.43574 0.86343 0.25421 +vn 0.45515 -0.86156 0.22484 +vn -0.18286 0.94333 0.27694 +vn -0.26426 0.94493 0.19306 +vn -0.2654 0.93604 0.23106 +vn 0.53078 -0.81864 0.21931 +vn -0.40743 0.89421 0.18542 +vn 0.40743 0.89421 0.18542 +vn -0.25505 0.95993 0.11607 +vn 0.25505 0.95993 0.11607 +vn 0.36061 -0.75258 0.55099 +vn 0.42993 -0.61423 0.66173 +vn -0.40735 0.69463 0.59292 +vn -0.39039 0.69961 0.59845 +vn -0.10075 0.97582 0.19395 +vn -0.1055 0.97436 0.19871 +vn -0.08582 0.98602 -0.14281 +vn 0.07478 0.95082 0.30058 +vn 0.31664 0.93038 0.18472 +vn -0.31664 0.93038 0.18472 +vn -0.00202 0.14563 -0.98934 +vn 0.4953 -0.84908 0.18366 +vn -0.16119 0.95852 0.23507 +vn -0.1982 0.96087 0.19353 +vn 0.38343 -0.90385 0.18983 +vn 0.88622 -0.25738 0.38518 +vn 0.86445 -0.31834 0.38909 +vn 0.62317 0.77739 0.08558 +vn -0.62317 0.77739 0.08558 +vn -0.86331 0.35044 0.36316 +vn -0.86095 0.35243 0.36682 +vn -0.13414 0.96071 0.24298 +vn -0.26851 0.9448 0.18775 +vn -0.15795 0.9591 0.23492 +vn 0.31462 -0.92924 0.19373 +vn 0.38289 -0.90387 0.19083 +vn 0.37166 -0.75447 0.54097 +vn -0.46196 0.62187 0.63236 +vn -0.44093 0.62744 0.6418 +vn 0.37073 -0.75589 0.53962 +vn 0.42944 -0.68376 0.58996 +vn -0.50031 0.5811 0.64188 +vn -0.47745 0.58849 0.65247 +vn 0.38187 -0.75879 0.52764 +vn 0.99604 -0.08891 0.00278 +vn 0.9962 -0.0871 0.00244 +vn 0.99649 -0.08374 0.00175 +vn 0.3142 -0.92923 0.19448 +vn -0.14632 0.98864 0.03439 +vn 0.14632 0.98864 0.03439 +vn -0.08899 0.51299 -0.85377 +vn 0.85316 0.50831 0.11717 +vn -0.85316 0.50831 0.11717 +vn 0.44329 -0.68636 0.57655 +vn -0.54745 0.52015 0.65555 +vn -0.52282 0.53048 0.66727 +vn 0.48552 -0.61119 0.62507 +vn -0.07996 0.77097 -0.63184 +vn -0.14804 0.84296 -0.5172 +vn 0.03474 0.67795 -0.73429 +vn 0.03713 0.66953 -0.74186 +vn 0.97335 0.18631 0.13367 +vn -0.97335 0.18631 0.13367 +vn 0.75313 0.64969 0.10343 +vn -0.07354 0.98425 -0.16078 +vn 0.02838 0.96251 -0.26974 +vn 0.02017 0.96689 -0.2544 +vn -0.04653 0.99487 0.08982 +vn 0.04653 0.99487 0.08982 +vn -0.00302 0.95224 0.30533 +vn 0.06738 0.96103 0.26812 +vn 0.22401 0.70491 0.67299 +vn 0.62898 0.06961 0.7743 +vn -0.62898 0.06961 0.7743 +vn -0.61032 -0.25102 0.75133 +vn 0.61032 -0.25102 0.75133 +vn -0.59542 0.32898 0.73298 +vn 0.59542 0.32898 0.73298 +vn 0.53875 -0.54109 0.64574 +vn 0.50214 -0.61294 0.61005 +vn 0.89801 -0.43433 0.07034 +vn 0.95041 0.30262 0.07167 +vn 0.47591 0.87706 0.06536 +vn 0.65268 -0.67799 0.33813 +vn 0.66939 -0.67759 0.30463 +vn -0.63535 -0.67746 0.37065 +vn -0.66014 -0.66878 0.34199 +vn -0.73994 -0.58231 0.33674 +vn 0.73994 -0.58231 0.33674 +vn 0.55785 -0.54148 0.62897 +vn 0.58895 -0.47532 0.65362 +vn -0.63302 0.46501 0.61892 +vn -0.59071 0.47124 0.65498 +vn -0.55231 0.55224 0.62448 +vn 0.47701 0.87723 -0.05415 +vn 0.43652 0.89769 -0.05995 +vn 0.52036 0.5647 0.64058 +vn -0.52036 0.5647 0.64058 +vn -0.19961 0.86518 0.46002 +vn -0.19682 0.86661 0.45853 +vn 0.21478 0.74632 0.62998 +vn 0.34752 0.08788 0.93355 +vn -0.7333 0.67241 -0.10071 +vn -0.75509 0.65 -0.08572 +vn 0.75509 0.65 -0.08572 +vn -0.89578 0.42713 -0.12302 +vn -0.92526 0.3645 -0.10504 +vn -0.98499 -0.1072 -0.13527 +vn 0.98499 -0.1072 -0.13527 +vn 0.9919 -0.05881 -0.11261 +vn 0.92526 0.3645 -0.10504 +vn -0.09532 0.86279 -0.4965 +vn -0.05529 0.75659 -0.65155 +vn -0.98162 -0.1549 -0.11144 +vn -0.92995 -0.3522 -0.10558 +vn 0.92995 -0.3522 -0.10558 +vn 0.91628 -0.38027 -0.12584 +vn 0.54586 -0.50049 0.67197 +vn -0.54586 -0.50049 0.67197 +vn -0.87563 0.34177 0.34128 +vn -0.8613 0.35494 0.36357 +vn 0.90896 -0.22798 0.34902 +vn 0.90115 -0.25261 0.35231 +vn -0.3681 0.92885 -0.04179 +vn 0.3681 0.92885 -0.04179 +vn 0.39274 0.86254 0.31903 +vn 0.36825 0.86843 0.33199 +vn -0.40045 0.86846 0.29227 +vn -0.38443 0.86873 0.31228 +vn 0.16732 0.98426 0.05691 +vn -0.16732 0.98426 0.05691 +vn 0.27593 0.96067 0.03133 +vn -0.27593 0.96067 0.03133 +vn 0.63586 -0.41499 0.65075 +vn 0.60993 -0.474 0.63507 +vn -0.64229 0.70853 0.2923 +vn 0.64229 0.70853 0.2923 +vn -0.07328 0.98286 -0.16915 +vn -0.00083 0.9668 -0.25553 +vn -0.02027 0.9783 -0.20618 +vn -0.06041 0.98125 -0.18303 +vn 0.59325 0.80219 0.06735 +vn -0.59325 0.80219 0.06735 +vn 0.03044 0.96001 0.2783 +vn -0.08278 0.96993 0.22889 +vn -0.08833 0.96751 0.23692 +vn 0.83494 -0.39811 0.37998 +vn -0.83494 -0.39811 0.37998 +vn 0.17184 0.97519 0.13959 +vn 0.18225 0.97421 0.13301 +vn -0.17579 0.97401 0.1428 +vn -0.19488 0.97422 0.11369 +vn -0.42591 0.73736 0.52431 +vn 0.42591 0.73736 0.52431 +vn 0.75924 0.64508 0.0862 +vn -0.75924 0.64508 0.0862 +vn -0.02794 0.99487 0.09718 +vn 0.02794 0.99487 0.09718 +vn 0.8019 0.47304 0.36494 +vn -0.8019 0.47304 0.36494 +vn 0.65791 -0.41185 0.6305 +vn -0.69358 0.41059 0.59191 +vn -0.65324 0.42232 0.62842 +vn 0.67908 -0.36075 0.63931 +vn -0.26874 0.73708 0.62008 +vn -0.2599 0.74118 0.61895 +vn 0.36253 0.12526 0.92352 +vn 0.34375 -0.40203 0.84865 +vn -0.02566 0.97833 -0.20544 +vn -0.0183 0.97352 -0.22785 +vn 0.86107 0.499 0.09776 +vn -0.86107 0.499 0.09776 +vn -0.9099 0.02457 0.41409 +vn 0.9099 0.02457 0.41409 +vn -0.04554 0.97795 -0.20382 +vn -0.05922 0.97932 -0.19343 +vn -0.29611 0.93038 0.21612 +vn 0.29611 0.93038 0.21612 +vn 0.9001 0.42353 0.10219 +vn -0.89956 0.42863 0.08412 +vn -0.89833 0.42914 0.09401 +vn -0.89668 0.43025 0.10419 +vn -0.89418 0.43229 0.1165 +vn -0.89586 0.43091 0.10837 +vn -0.89732 0.42947 0.10187 +vn 0.93755 -0.33413 0.09677 +vn -0.93776 -0.33413 0.09464 +vn 0.11652 0.78787 0.60472 +vn 0.02725 0.96816 0.24884 +vn -0.77018 -0.6318 0.08744 +vn 0.77018 -0.6318 0.08744 +vn 0.94369 -0.31301 0.10714 +vn -0.94374 -0.31286 0.10714 +vn -0.00267 0.92608 0.37732 +vn -0.04312 0.97543 -0.21604 +vn 0.65947 -0.748 0.07487 +vn -0.65947 -0.748 0.07487 +vn -0.86481 0.37739 0.33119 +vn -0.85399 0.3873 0.34741 +vn 0.91674 -0.23389 0.32385 +vn 0.92014 -0.22303 0.32188 +vn 0.00082 -0.93136 0.3641 +vn 0.00883 -0.91593 0.40125 +vn 0.41337 0.83311 0.3675 +vn -0.39944 -0.83659 0.37492 +vn -0.93629 0.34799 0.04754 +vn -0.0027 0.91084 0.41276 +vn -0.00262 0.91055 0.41338 +vn -0.49536 -0.75472 0.43013 +vn -0.49507 -0.76321 0.41522 +vn -0.42377 -0.80295 0.41915 +vn -0.42335 -0.8072 0.41135 +vn -0.39223 -0.81794 0.42086 +vn -0.40386 -0.75193 0.52106 +vn -0.39604 -0.80184 0.44744 +vn -0.45938 -0.78144 0.42228 +vn -0.45892 -0.78802 0.41039 +vn -0.64057 -0.59708 0.48288 +vn -0.64237 -0.60781 0.46683 +vn -0.56799 -0.68599 0.45476 +vn -0.5686 -0.69679 0.43723 +vn -0.53161 -0.72289 0.4414 +vn -0.53169 -0.73281 0.42461 +vn -0.60437 -0.64405 0.46897 +vn -0.60559 -0.65514 0.45173 +vn -0.77635 -0.35764 0.51901 +vn -0.77845 -0.36216 0.5127 +vn -0.71131 -0.48781 0.50605 +vn -0.7138 -0.49613 0.49431 +vn -0.67634 -0.54502 0.4955 +vn -0.67859 -0.55481 0.48135 +vn -0.74492 -0.42535 0.51398 +vn -0.74736 -0.43185 0.50493 +vn -0.85428 -0.04218 0.5181 +vn -0.85414 -0.04204 0.51834 +vn -0.82797 -0.20724 0.52107 +vn -0.82872 -0.20835 0.51944 +vn -0.80451 -0.28479 0.52122 +vn -0.80599 -0.28742 0.51746 +vn -0.84512 -0.12589 0.51955 +vn -0.84523 -0.12603 0.51933 +vn -0.6579 0.54837 0.51619 +vn -0.66815 0.54616 0.50526 +vn -0.82311 0.21898 0.52396 +vn -0.82803 0.21586 0.51747 +vn -0.85173 0.06616 0.51979 +vn -0.85323 0.06492 0.51747 +vn -0.75823 0.38745 0.52438 +vn -0.76646 0.38393 0.51492 +vn -0.22574 0.86793 0.44242 +vn -0.23051 0.8706 0.43466 +vn -0.41714 0.77262 0.4786 +vn -0.42589 0.77423 0.46817 +vn -0.53733 0.6796 0.49942 +vn -0.54759 0.67949 0.4883 +vn -0.31158 0.83218 0.45868 +vn -0.31826 0.83468 0.44946 +vn -0.05656 0.90739 0.41647 +vn -0.05765 0.91001 0.41056 +vn -0.10836 0.89989 0.42244 +vn -0.11046 0.90185 0.41769 +vn -0.15896 0.88849 0.43048 +vn -0.16219 0.8909 0.42426 +vn -0.01773 0.91038 0.4134 +vn -0.01802 0.91132 0.41129 +vn 0.40208 0.81466 0.41792 +vn 0.38392 0.805 0.45231 +vn 0.45873 0.7881 0.41044 +vn 0.45736 0.79414 0.40021 +vn 0.51199 0.75397 0.41157 +vn 0.5104 0.7633 0.39605 +vn 0.56038 0.71409 0.41958 +vn 0.55909 0.72606 0.40031 +vn 0.60365 0.66988 0.43228 +vn 0.60307 0.68373 0.41088 +vn 0.64188 0.62261 0.4476 +vn 0.64224 0.63751 0.42557 +vn 0.67546 0.57332 0.46374 +vn 0.6768 0.58843 0.44238 +vn 0.70496 0.52283 0.47926 +vn 0.70714 0.53734 0.45958 +vn 0.7311 0.47158 0.49305 +vn 0.73388 0.4848 0.47581 +vn 0.75462 0.41968 0.5044 +vn 0.75764 0.43105 0.49007 +vn 0.77614 0.36681 0.51289 +vn 0.77906 0.37595 0.50172 +vn 0.79612 0.31227 0.51835 +vn 0.7986 0.31895 0.51039 +vn 0.81468 0.25485 0.52092 +vn 0.81646 0.25907 0.51602 +vn 0.83147 0.19284 0.52103 +vn 0.83241 0.1948 0.51879 +vn 0.84541 0.12384 0.51956 +vn 0.84556 0.12412 0.51925 +vn 0.85418 0.0447 0.51805 +vn 0.85397 0.04436 0.51842 +vn 0.84886 -0.09366 0.52026 +vn 0.85155 -0.09019 0.51645 +vn 0.79865 -0.30021 0.52156 +vn 0.8082 -0.29175 0.51156 +vn 0.69746 -0.50061 0.51277 +vn 0.71321 -0.4919 0.49936 +vn 0.5667 -0.65952 0.49385 +vn 0.58479 -0.65436 0.47941 +vn 0.43656 -0.76623 0.47149 +vn 0.45312 -0.76515 0.45741 +vn 0.32522 -0.8308 0.45167 +vn 0.33848 -0.83242 0.43875 +vn 0.23704 -0.86781 0.43671 +vn 0.24689 -0.87068 0.42539 +vn 0.16964 -0.88845 0.42648 +vn 0.17661 -0.89159 0.41699 +vn 0.09899 -0.90196 0.42033 +vn 0.10329 -0.90811 0.4058 +vn 0.04254 -0.90898 0.41466 +vn 0.04419 -0.91226 0.40722 +vn 0.00746 -0.91216 0.40977 +vn 0.71818 -0.31306 0.62145 +vn 0.70134 -0.3559 0.61762 +vn -0.00923 0.99488 0.10065 +vn 0.00923 0.99488 0.10065 +vn -0.32706 0.60709 0.7242 +vn -0.31235 0.6114 0.72707 +vn 0.35963 -0.39549 0.84514 +vn 0.31216 -0.61207 0.72659 +vn 0.20449 0.97443 0.09306 +vn -0.20449 0.97443 0.09306 +vn 0.8995 -0.4292 0.08173 +vn -0.48224 -0.64422 0.59365 +vn 0.48224 -0.64422 0.59365 +vn -0.38667 0.89421 0.22558 +vn 0.38667 0.89421 0.22558 +vn 0.45888 0.06963 0.88577 +vn -0.45888 0.06963 0.88577 +vn -0.44526 -0.25107 0.85948 +vn 0.44526 -0.25107 0.85948 +vn -0.24205 0.95993 0.14121 +vn 0.24205 0.95993 0.14121 +vn -0.43438 0.32904 0.83848 +vn 0.43438 0.32904 0.83848 +vn -0.06306 0.96273 0.263 +vn -0.06902 0.95899 0.27489 +vn -0.36731 0.5277 0.76591 +vn -0.34861 0.5316 0.77193 +vn -0.00154 0.96813 0.25043 +vn 0.32463 -0.61473 0.71883 +vn 0.31958 -0.63016 0.70764 +vn 0.20947 0.34641 0.9144 +vn 0.11305 0.81478 0.56865 +vn -0.15253 0.83064 0.53551 +vn -0.15232 0.83078 0.53535 +vn 0.3618 -0.54657 0.75522 +vn -0.39393 0.49923 0.77174 +vn -0.37379 0.50435 0.77841 +vn 0.33236 -0.63448 0.69783 +vn -0.31903 0.86254 0.39274 +vn 0.31228 0.86873 0.38443 +vn 0.33781 0.86342 0.3747 +vn -0.3747 0.86342 0.33781 +vn 0.91497 -0.39666 0.07408 +vn 0.8985 -0.4329 0.07274 +vn -0.63242 -0.77129 0.0718 +vn 0.63242 -0.77129 0.0718 +vn 0.64108 -0.67019 0.374 +vn 0.57712 -0.66869 0.46881 +vn -0.59951 -0.67017 0.43755 +vn -0.57032 -0.6783 0.46329 +vn 0.37752 -0.55051 0.74459 +vn -0.4407 0.46783 0.7661 +vn -0.39948 0.48036 0.78081 +vn 0.40235 -0.47023 0.78549 +vn 0.73986 -0.30676 0.59875 +vn 0.76021 -0.251 0.59923 +vn -0.74072 0.37162 0.55967 +vn -0.70554 0.3861 0.59426 +vn 0.37961 0.56478 0.73275 +vn -0.37961 0.56478 0.73275 +vn 0.44221 -0.40247 0.80154 +vn 0.42116 -0.47329 0.7737 +vn -0.44202 0.46886 0.76472 +vn -0.44022 0.46941 0.76541 +vn -0.00179 0.97449 0.22443 +vn 0.04386 0.8413 0.53878 +vn 0.39822 -0.50058 0.76867 +vn -0.39822 -0.50058 0.76867 +vn -0.02489 0.97497 0.22094 +vn -0.04292 0.95433 0.29566 +vn -0.04625 0.9483 0.314 +vn 0.17579 0.97401 0.1428 +vn 0.16465 0.97512 0.14844 +vn -0.17904 0.97512 0.13067 +vn -0.17184 0.97519 0.13959 +vn -0.66544 -0.74262 0.07555 +vn 0.66544 -0.74262 0.07555 +vn -0.83235 0.44382 0.332 +vn -0.82438 0.45038 0.34286 +vn 0.92526 -0.22939 0.30211 +vn 0.90947 -0.27504 0.3118 +vn -0.90736 0.41297 0.07844 +vn -0.70221 -0.5823 0.40966 +vn 0.70221 -0.5823 0.40966 +vn -0.033 0.9462 0.32191 +vn 0.15377 0.98745 0.03614 +vn -0.15377 0.98745 0.03614 +vn 0.46398 -0.40424 0.78824 +vn -0.49711 0.426 0.75591 +vn -0.45673 0.42662 0.78064 +vn 0.48195 -0.34328 0.80615 +vn 0.24547 -0.1455 0.95842 +vn 0.22007 0.37557 0.90029 +vn -0.20078 0.6651 0.71926 +vn -0.19531 0.6683 0.71779 +vn -0.90653 0.41259 0.08927 +vn 0.01005 -0.89639 0.44315 +vn 0.91111 0.39897 0.10344 +vn -0.90702 0.40832 0.10289 +vn -0.90891 0.3981 0.12412 +vn -0.90566 0.41386 0.09221 +vn -0.91222 0.39904 0.09288 +vn -0.9947 -0.03811 0.09554 +vn -0.10233 0.7881 0.60698 +vn -0.10462 0.78589 0.60945 +vn 0.04401 0.859 0.51008 +vn 0.0987 0.52534 0.84515 +vn -0.31069 0.73743 0.59972 +vn 0.31069 0.73743 0.59972 +vn -0.33199 0.86843 0.36825 +vn 0.31903 0.86254 0.39274 +vn 0.29227 0.86846 0.40045 +vn -0.31228 0.86873 0.38443 +vn -0.02418 0.8829 0.46893 +vn -0.27228 0.93038 0.24547 +vn 0.27228 0.93038 0.24547 +vn 0.27566 0.06965 0.95873 +vn -0.27566 0.06965 0.95873 +vn -0.26747 -0.25116 0.93026 +vn 0.26747 -0.25116 0.93026 +vn 0.50626 -0.34345 0.79104 +vn 0.52166 -0.292 0.80163 +vn -0.26093 0.32916 0.90751 +vn 0.26093 0.32916 0.90751 +vn -0.01255 0.94251 0.33395 +vn -0.041 0.94749 0.31715 +vn -0.71219 -0.69732 0.08085 +vn 0.71219 -0.69732 0.08085 +vn 0.8121 -0.19989 0.54821 +vn 0.79375 -0.2519 0.55363 +vn -0.77166 0.35263 0.52934 +vn -0.74304 0.36705 0.55961 +vn 0.92356 -0.37498 0.08015 +vn 0.95333 0.28996 0.08423 +vn 0.2398 -0.42234 0.87414 +vn 0.25876 -0.13701 0.95618 +vn -0.24052 0.49958 0.83221 +vn -0.22971 0.50274 0.83336 +vn 0.60955 0.70852 0.3556 +vn -0.60955 0.70852 0.3556 +vn 0.92407 0.36754 0.10491 +vn -0.91143 0.39531 0.1141 +vn -0.91111 0.39897 0.10344 +vn -0.92407 0.36754 0.10491 +vn 0.79237 -0.39809 0.46225 +vn -0.79237 -0.39809 0.46225 +vn 0.24614 -0.46274 0.85164 +vn 0.25142 -0.42433 0.8699 +vn -0.26673 0.41356 0.87053 +vn -0.25253 0.41565 0.87376 +vn 0.0147 0.64486 0.76416 +vn 0.10691 0.54463 0.83183 +vn -0.04615 0.73277 0.67891 +vn -0.05065 0.72684 0.68494 +vn 0.22801 0.56494 0.79301 +vn -0.22801 0.56494 0.79301 +vn -0.75285 -0.65262 0.08547 +vn 0.75285 -0.65262 0.08547 +vn -0.77158 0.53626 0.3422 +vn -0.76636 0.53972 0.34841 +vn 0.91629 -0.27128 0.29466 +vn 0.88276 -0.35045 0.31292 +vn 0.27194 -0.37703 0.88538 +vn 0.25818 -0.46685 0.84581 +vn -0.28318 0.40056 0.87141 +vn -0.26824 0.40338 0.87483 +vn -0.54918 0.39172 0.73821 +vn -0.50912 0.39721 0.76356 +vn 0.54789 -0.29046 0.78451 +vn 0.56099 -0.2479 0.78983 +vn 0.57032 -0.6783 0.46329 +vn 0.59386 -0.67784 0.43343 +vn -0.54609 -0.67779 0.49233 +vn -0.57712 -0.66869 0.46881 +vn 0.23919 -0.50073 0.8319 +vn -0.23919 -0.50073 0.8319 +vn 0.45098 -0.8518 0.26657 +vn -0.19123 0.94054 0.28074 +vn -0.19452 0.94099 0.27695 +vn 0.37687 -0.88549 0.27181 +vn 0.0211 0.65632 0.75419 +vn 0.76101 0.47303 0.44396 +vn -0.76101 0.47303 0.44396 +vn 0.09114 0.06969 0.9934 +vn -0.09114 0.06969 0.9934 +vn -0.08843 -0.25129 0.96386 +vn 0.08843 -0.25129 0.96386 +vn 0.28659 -0.38059 0.87921 +vn -0.30018 0.38904 0.87094 +vn -0.28457 0.39254 0.8746 +vn 0.29799 -0.30538 0.9044 +vn -0.1282 0.57567 0.80757 +vn -0.12638 0.57698 0.80692 +vn 0.13781 0.10051 0.98535 +vn -0.35179 -0.6443 0.67905 +vn 0.35179 -0.6443 0.67905 +vn -0.08627 0.32931 0.94027 +vn 0.08627 0.32931 0.94027 +vn -0.79859 -0.595 0.09066 +vn 0.79859 -0.595 0.09066 +vn 0.30881 -0.90984 0.27719 +vn -0.08304 0.94642 0.31209 +vn -0.13674 0.95125 0.27646 +vn -0.15753 0.95743 0.24188 +vn -0.15325 0.94739 0.281 +vn 0.37612 -0.88539 0.27318 +vn 0.94066 0.32212 0.10679 +vn -0.94066 0.32212 0.10679 +vn -0.3616 0.8942 0.26391 +vn 0.3616 0.8942 0.26391 +vn -0.93533 -0.33413 0.11624 +vn -0.22636 0.95993 0.16521 +vn 0.22636 0.95993 0.16521 +vn 0.99728 -0.07373 -0.00091 +vn 0.99784 -0.06568 -0.00325 +vn 0.30973 -0.91 0.27562 +vn -0.8635 0.02457 0.50375 +vn 0.8635 0.02457 0.50375 +vn -0.23272 0.86259 0.44921 +vn 0.22799 0.86853 0.44009 +vn 0.25421 0.86343 0.43574 +vn -0.29741 0.86342 0.40749 +vn 0.13959 0.97519 0.17184 +vn 0.15108 0.97421 0.16758 +vn -0.1428 0.97401 0.17579 +vn -0.16758 0.97421 0.15108 +vn 0.32549 -0.24623 0.91292 +vn -0.3176 0.37868 0.86933 +vn -0.30146 0.38279 0.87326 +vn 0.31556 -0.30811 0.89749 +vn 0.16087 0.98426 0.07321 +vn -0.16087 0.98426 0.07321 +vn -0.8909 -0.43563 0.1285 +vn -0.36441 -0.75997 0.53819 +vn 0.49847 0.64733 0.57662 +vn 0.50041 0.66383 0.5558 +vn 0.4114 0.71434 0.5661 +vn 0.41143 0.72293 0.55506 +vn 0.61206 0.46509 0.63959 +vn 0.61856 0.48304 0.61972 +vn 0.5641 0.55993 0.60685 +vn 0.56878 0.57947 0.58369 +vn 0.68262 0.27263 0.67802 +vn 0.68706 0.27995 0.6705 +vn 0.64946 0.3695 0.66459 +vn 0.65585 0.38275 0.65066 +vn 0.73444 0.03815 0.6776 +vn 0.73414 0.03783 0.67795 +vn 0.71349 0.16697 0.68048 +vn 0.71499 0.16898 0.6784 +vn 0.50237 -0.56213 0.65699 +vn 0.52221 -0.55978 0.64339 +vn 0.68834 -0.24848 0.6815 +vn 0.69966 -0.24162 0.67238 +vn 0.15762 -0.79572 0.58479 +vn 0.16524 -0.8014 0.57486 +vn 0.29743 -0.73147 0.61358 +vn 0.31201 -0.7361 0.60067 +vn 0.03975 -0.82073 0.56993 +vn 0.04155 -0.82622 0.56181 +vn 0.09231 -0.81156 0.57693 +vn 0.0972 -0.82196 0.56119 +vn -0.88686 0.45766 0.06343 +vn 0.00917 -0.81819 0.57487 +vn 0.00359 -0.79787 0.60282 +vn 0.00652 -0.79693 0.60404 +vn 0.01309 -0.82474 0.56536 +vn 0.2189 -0.77197 0.59677 +vn 0.22971 -0.7777 0.58516 +vn 0.39376 -0.66491 0.6347 +vn 0.41191 -0.6668 0.62105 +vn 0.60785 -0.41923 0.67436 +vn 0.62547 -0.41297 0.662 +vn 0.72941 -0.07725 0.6797 +vn 0.73294 -0.07422 0.67623 +vn 0.7263 0.10661 0.67906 +vn 0.72653 0.10688 0.67877 +vn 0.6985 0.22164 0.68042 +vn 0.70151 0.2261 0.67584 +vn 0.6663 0.32153 0.6728 +vn 0.67191 0.33186 0.66212 +vn 0.63162 0.41725 0.65342 +vn 0.63833 0.43312 0.63635 +vn 0.58987 0.51285 0.62373 +vn 0.59567 0.5321 0.6017 +vn 0.53385 0.60525 0.59048 +vn 0.53718 0.6239 0.56761 +vn 0.45761 0.68436 0.56766 +vn 0.45839 0.69748 0.55082 +vn -0.99338 -0.04107 0.1073 +vn 0.3648 0.73421 0.57258 +vn 0.30593 0.6834 0.66285 +vn 0.36855 0.74937 0.5501 +vn 0.38405 0.77813 0.49702 +vn -0.91731 0.39102 0.07512 +vn -0.00114 0.81618 0.5778 +vn -0.00244 0.82283 0.56828 +vn -0.01571 0.82267 0.56831 +vn -0.01605 0.82433 0.56589 +vn -0.05002 0.81902 0.57158 +vn -0.05134 0.82359 0.56485 +vn -0.09555 0.81054 0.57784 +vn -0.09802 0.81399 0.57254 +vn -0.13969 0.79792 0.58635 +vn -0.14353 0.80222 0.57952 +vn -0.19741 0.7761 0.59892 +vn -0.20314 0.78101 0.59056 +vn -0.27077 0.73986 0.61587 +vn -0.27888 0.74484 0.60617 +vn -0.35988 0.68229 0.63636 +vn -0.3706 0.68642 0.62569 +vn -0.46041 0.59636 0.65755 +vn -0.4732 0.59849 0.64645 +vn -0.56132 0.47941 0.6746 +vn -0.57448 0.47884 0.66384 +vn -0.64684 0.33885 0.68321 +vn -0.65791 0.33618 0.6739 +vn -0.70443 0.19222 0.68325 +vn -0.71142 0.18927 0.6768 +vn -0.73152 0.05831 0.67932 +vn -0.73378 0.057 0.677 +vn -0.73448 -0.0364 0.67765 +vn -0.73427 -0.03625 0.67788 +vn -0.7261 -0.10804 0.67905 +vn -0.72628 -0.10819 0.67884 +vn -0.71103 -0.177 0.68052 +vn -0.71225 -0.17828 0.67891 +vn -0.69132 -0.24248 0.68065 +vn -0.69384 -0.24561 0.67696 +vn -0.66861 -0.30425 0.67852 +vn -0.67237 -0.30974 0.67229 +vn -0.64409 -0.36241 0.67365 +vn -0.64884 -0.37049 0.66464 +vn -0.61851 -0.41719 0.66588 +vn -0.62385 -0.42783 0.65404 +vn -0.59221 -0.46879 0.65538 +vn -0.59773 -0.48168 0.64086 +vn -0.56529 -0.51726 0.64256 +vn -0.57059 -0.53184 0.62576 +vn -0.53768 -0.56247 0.62812 +vn -0.54239 -0.578 0.60969 +vn -0.50921 -0.60409 0.61301 +vn -0.5131 -0.61969 0.5939 +vn -0.47972 -0.64162 0.5985 +vn -0.48266 -0.65633 0.57989 +vn -0.4491 -0.67441 0.58607 +vn -0.45111 -0.6873 0.56932 +vn -0.41735 -0.70177 0.57735 +vn -0.41852 -0.71194 0.5639 +vn -0.38451 -0.72296 0.57401 +vn -0.38505 -0.72958 0.5652 +vn -0.35521 -0.73627 0.57596 +vn -0.35583 -0.70714 0.61102 +vn 0.59931 -0.21042 0.77237 +vn 0.58836 -0.24471 0.77068 +vn -0.84729 -0.52234 0.09619 +vn 0.84729 -0.52234 0.09619 +vn -0.99156 -0.04409 0.12189 +vn 0.07537 0.56514 0.82155 +vn -0.07537 0.56514 0.82155 +vn -0.1866 0.73756 0.64898 +vn 0.1866 0.73756 0.64898 +vn 0.94885 0.2968 0.10772 +vn -0.9596 0.25942 0.10894 +vn 0.34607 -0.24787 0.90488 +vn -0.33667 0.36127 0.86956 +vn -0.32063 0.36628 0.87352 +vn 0.35505 -0.19747 0.91375 +vn 0.19407 0.97443 0.11322 +vn -0.19407 0.97443 0.11322 +vn -0.89499 -0.43408 0.10277 +vn -0.89573 -0.43282 0.10169 +vn 0.89573 -0.43282 0.10169 +vn -0.14882 0.3683 0.91772 +vn -0.14263 0.36994 0.91804 +vn 0.14723 0.10831 0.98315 +vn 0.14832 -0.20352 0.96777 +vn 0.07907 -0.50092 0.86187 +vn -0.07907 -0.50092 0.86187 +vn 0.03741 0.30337 0.95214 +vn -0.04823 0.46054 0.88633 +vn -0.05007 0.459 0.88702 +vn 0.93506 -0.33413 0.11837 +vn -0.24547 0.93038 0.27228 +vn 0.24547 0.93038 0.27228 +vn 0.83939 -0.19792 0.50622 +vn 0.84584 -0.17906 0.50248 +vn -0.78441 0.3577 0.5067 +vn -0.76231 0.36998 0.53104 +vn -0.67726 0.64265 0.35822 +vn -0.67514 0.64364 0.36044 +vn 0.8885 -0.34757 0.29962 +vn 0.84647 -0.42645 0.31879 +vn -0.14231 0.98864 0.0484 +vn 0.14231 0.98864 0.0484 +vn 0.92115 -0.3749 0.10458 +vn 0.04295 0.3083 0.95032 +vn -0.16242 0.27734 0.94694 +vn -0.15377 0.2779 0.94822 +vn 0.1567 -0.20404 0.96634 +vn 0.1542 -0.26826 0.95092 +vn -0.97375 0.199 0.11055 +vn 0.89713 -0.43131 0.09556 +vn -0.17058 0.28349 0.94368 +vn -0.16196 0.28445 0.94491 +vn 0.16716 -0.19364 0.96673 +vn 0.16285 -0.27065 0.9488 +vn 0.62699 -0.20577 0.75136 +vn -0.59365 0.36766 0.71582 +vn -0.55692 0.37601 0.74058 +vn 0.64165 -0.16058 0.75 +vn 0.23272 0.86259 0.44921 +vn 0.20547 0.8683 0.45149 +vn -0.25003 0.86821 0.42859 +vn -0.22799 0.86853 0.44009 +vn 0.91028 -0.40158 0.10058 +vn 0.94275 0.31741 0.10231 +vn -0.98226 0.15077 0.11152 +vn 0.38681 -0.15719 0.90866 +vn 0.37854 -0.19785 0.90419 +vn -0.65668 -0.58229 0.47928 +vn 0.65668 -0.58229 0.47928 +vn -0.98905 0.09577 0.11229 +vn -0.17853 0.2873 0.94106 +vn -0.17011 0.28855 0.94223 +vn 0.18188 -0.13534 0.97396 +vn 0.17782 -0.19555 0.96444 +vn -0.99306 0.03363 0.11274 +vn -0.98484 -0.0385 0.16911 +vn -0.95875 -0.00413 0.28423 +vn -0.99159 -0.06385 0.11257 +vn 0.81102 -0.48463 0.32767 +vn 0.85034 -0.42313 0.31287 +vn -0.06168 0.73774 0.67226 +vn 0.06168 0.73774 0.67226 +vn 0.04852 0.0141 0.99872 +vn -0.05115 0.20758 0.97688 +vn -0.04988 0.20782 0.97689 +vn -0.08902 -0.77608 0.62432 +vn -0.93927 -0.3258 0.10787 +vn 0.1428 0.97401 0.17579 +vn 0.13067 0.97512 0.17904 +vn -0.14844 0.97512 0.16465 +vn -0.13959 0.97519 0.17184 +vn -0.20268 0.97808 0.04764 +vn 0.20268 0.97808 0.04764 +vn -0.1861 0.28955 0.9389 +vn -0.17806 0.29099 0.94001 +vn 0.19912 -0.08959 0.97587 +vn 0.19499 -0.13665 0.97124 +vn -0.21129 -0.64445 0.73487 +vn 0.21129 -0.64445 0.73487 +vn -0.75877 -0.5598 0.33301 +vn 0.55126 -0.67017 0.49698 +vn -0.49698 -0.67017 0.55126 +vn -0.46329 -0.6783 0.57032 +vn 0.46881 -0.66869 0.57712 +vn 0.05228 0.01438 0.99853 +vn 0.05216 -0.06907 0.99625 +vn -0.05459 0.11611 0.99174 +vn -0.05193 0.11599 0.99189 +vn -0.54486 0.73892 0.39638 +vn -0.58689 0.71969 0.37096 +vn 0.81463 -0.48195 0.32266 +vn 0.76642 -0.54618 0.33805 +vn -0.05582 0.14512 0.98784 +vn -0.05394 0.14515 0.98794 +vn 0.05646 -0.01553 0.99828 +vn 0.05553 -0.06964 0.99603 +vn 0.4205 -0.12386 0.8988 +vn 0.41291 -0.15624 0.89727 +vn -0.3458 0.38089 0.85752 +vn -0.38393 0.35296 0.85324 +vn -0.35536 0.35371 0.86522 +vn 0.13976 0.86267 0.48607 +vn -0.13976 0.86267 0.48607 +vn -0.20895 0.86344 0.45915 +vn -0.89881 0.42463 0.10873 +vn -0.90385 0.41388 0.10844 +vn 0.47398 0.87723 -0.07627 +vn 0.75029 0.64999 -0.12073 +vn -0.73102 0.67214 -0.11763 +vn 0.91938 0.3645 -0.14794 +vn 0.98896 -0.0592 -0.13582 +vn 0.9816 -0.10728 -0.15796 +vn -0.92264 0.36424 -0.12671 +vn -0.89297 0.42657 -0.14369 +vn -0.9788 -0.15457 -0.13442 +vn -0.92404 -0.3522 -0.14869 +vn -0.9816 -0.10728 -0.15796 +vn 0.06124 -0.01594 0.998 +vn 0.06273 0.02456 0.99773 +vn -0.05565 0.16635 0.9845 +vn -0.05483 0.1664 0.98453 +vn 0.91325 -0.37996 -0.14696 +vn 0.92731 -0.35195 -0.12735 +vn 0.21495 -0.09017 0.97245 +vn -0.19485 0.29046 0.93684 +vn -0.18563 0.29234 0.93813 +vn 0.21925 -0.05336 0.97421 +vn -0.36576 0.92885 -0.05886 +vn 0.36576 0.92885 -0.05886 +vn -0.57003 0.70851 0.41604 +vn 0.57003 0.70851 0.41604 +vn -0.9031 0.41199 0.12114 +vn -0.90275 0.40872 0.13413 +vn -0.90175 0.40158 0.15997 +vn -0.90285 0.41267 0.12072 +vn -0.9027 0.41517 0.113 +vn 0.27417 0.96067 0.04412 +vn -0.27417 0.96067 0.04412 +vn -0.21612 0.93038 0.29611 +vn 0.21612 0.93038 0.29611 +vn -0.55227 0.74436 0.37541 +vn -0.51258 0.76042 0.39878 +vn 0.86221 -0.18945 0.46979 +vn 0.867 -0.176 0.46619 +vn -0.77658 0.38927 0.49538 +vn -0.76027 0.39829 0.51319 +vn 0.71264 -0.60844 0.3492 +vn 0.76966 -0.54415 0.33395 +vn 0.06933 0.02443 0.9973 +vn -0.3325 0.8942 0.29976 +vn 0.3325 0.8942 0.29976 +vn 0.74098 -0.39808 0.54081 +vn -0.74098 -0.39808 0.54081 +vn 0.20814 0.95993 0.18765 +vn -0.20814 0.95993 0.18765 +vn 0.07129 0.05507 0.99593 +vn -0.05389 0.18224 0.98178 +vn -0.0544 0.18219 0.98176 +vn -0.88001 -0.42681 0.20835 +vn -0.30841 -0.64178 0.70214 +vn -0.90921 0.4064 0.0904 +vn -0.00196 0.68982 0.72397 +vn -0.00057 0.6797 0.73349 +vn -0.89319 0.44268 0.0791 +vn 0.00348 -0.69 0.7238 +vn 0.33796 0.67919 0.65153 +vn 0.58949 0.80219 0.09486 +vn -0.58949 0.80219 0.09486 +vn -0.291 -0.60564 0.74062 +vn -0.32325 -0.64132 0.69586 +vn -0.31923 -0.59479 0.73777 +vn -0.32098 -0.6035 0.72991 +vn -0.37212 -0.54943 0.7481 +vn -0.37686 -0.56593 0.73328 +vn -0.34694 -0.57553 0.74054 +vn -0.35015 -0.58878 0.72851 +vn -0.41545 -0.48268 0.77099 +vn -0.42276 -0.50154 0.75481 +vn -0.39485 -0.518 0.75879 +vn -0.40102 -0.53636 0.74263 +vn -0.45209 -0.40483 0.79481 +vn -0.46044 -0.42132 0.78134 +vn -0.43435 -0.44466 0.78334 +vn -0.44242 -0.46282 0.76816 +vn -0.48603 -0.32152 0.81265 +vn -0.49345 -0.33284 0.80357 +vn -0.46918 -0.36372 0.80472 +vn -0.4773 -0.37783 0.79336 +vn -0.51965 -0.23307 0.82198 +vn -0.52444 -0.23865 0.81732 +vn -0.50287 -0.27809 0.8184 +vn -0.50915 -0.28648 0.8116 +vn -0.55081 -0.13622 0.82344 +vn -0.55229 -0.13748 0.82223 +vn -0.53594 -0.18594 0.82353 +vn -0.53906 -0.18908 0.82077 +vn -0.56972 -0.02837 0.82135 +vn -0.56947 -0.02822 0.82153 +vn -0.56278 -0.08362 0.82237 +vn -0.56298 -0.08377 0.82221 +vn -0.54351 0.15285 0.82537 +vn -0.55147 0.15048 0.82051 +vn -0.5667 0.04658 0.8226 +vn -0.56936 0.04539 0.82083 +vn -0.43198 0.37979 0.81801 +vn -0.446 0.38092 0.80993 +vn -0.49745 0.26841 0.82492 +vn -0.50958 0.26695 0.81796 +vn -0.28086 0.54748 0.78828 +vn -0.29206 0.55371 0.77981 +vn -0.35628 0.47476 0.80478 +vn -0.3697 0.47887 0.79624 +vn -0.15668 0.63258 0.75848 +vn -0.16265 0.63946 0.75142 +vn -0.21322 0.59868 0.77209 +vn -0.22169 0.60577 0.76413 +vn -0.07664 0.6668 0.74129 +vn -0.07918 0.67163 0.73664 +vn -0.11155 0.65395 0.74827 +vn -0.11553 0.65996 0.74236 +vn -0.04026 0.67553 0.73623 +vn -0.04165 0.68197 0.7302 +vn -0.01268 0.67954 0.73352 +vn -0.01302 0.68189 0.73134 +vn 0.2971 0.60526 0.73851 +vn 0.27457 0.58105 0.76616 +vn 0.33663 0.5915 0.73267 +vn 0.33834 0.60196 0.7233 +vn 0.37281 0.56727 0.73432 +vn 0.37631 0.58314 0.71996 +vn 0.40346 0.53522 0.74213 +vn 0.40893 0.55482 0.72453 +vn 0.42871 0.49792 0.75384 +vn 0.43602 0.5195 0.73485 +vn 0.44923 0.45766 0.76729 +vn 0.45797 0.47959 0.7485 +vn 0.46597 0.41624 0.78078 +vn 0.47558 0.43714 0.76337 +vn 0.48002 0.37485 0.79314 +vn 0.48987 0.39371 0.77783 +vn 0.49245 0.33414 0.80364 +vn 0.50191 0.35028 0.79082 +vn 0.50415 0.29421 0.81196 +vn 0.51268 0.30727 0.80171 +vn 0.5158 0.25475 0.81796 +vn 0.52295 0.26462 0.81024 +vn 0.52777 0.21505 0.82171 +vn 0.53324 0.22184 0.81636 +vn 0.54009 0.17408 0.82341 +vn 0.54368 0.17809 0.82018 +vn 0.55222 0.13051 0.82342 +vn 0.55397 0.13225 0.82197 +vn 0.56289 0.08281 0.82238 +vn 0.56314 0.08303 0.82218 +vn 0.5697 0.02936 0.82132 +vn 0.56938 0.02911 0.82156 +vn 0.56543 -0.05725 0.82281 +vn 0.56909 -0.05503 0.82043 +vn 0.53488 -0.18472 0.82449 +vn 0.54594 -0.18017 0.81822 +vn 0.47726 -0.31511 0.82032 +vn 0.49387 -0.31182 0.8117 +vn 0.40142 -0.4303 0.80852 +vn 0.41996 -0.4308 0.79878 +vn 0.32091 -0.51948 0.79193 +vn 0.33798 -0.52398 0.7818 +vn 0.24666 -0.58193 0.77493 +vn 0.26049 -0.58903 0.76498 +vn 0.18393 -0.62273 0.76051 +vn 0.19424 -0.63078 0.75125 +vn 0.13364 -0.64816 0.74969 +vn 0.14089 -0.65592 0.74156 +vn 0.08176 -0.66448 0.74282 +vn 0.07967 -0.6737 0.7347 +vn 0.08365 -0.67982 0.72859 +vn 0.03404 -0.67703 0.73517 +vn 0.03575 -0.68442 0.72821 +vn 0.01078 -0.67957 0.73353 +vn 0.01123 -0.68229 0.731 +vn 0.00178 -0.67968 0.7335 +vn 0.45551 -0.09644 0.88499 +vn 0.44872 -0.12162 0.88536 +vn -0.06985 -0.64465 0.76128 +vn 0.06985 -0.64465 0.76128 +vn -0.62562 0.35722 0.69354 +vn -0.5945 0.36618 0.71588 +vn 0.68876 -0.16614 0.70569 +vn 0.70392 -0.12415 0.69935 +vn 0.24238 -0.02435 0.96988 +vn 0.23795 -0.05309 0.96983 +vn 0.08004 0.05533 0.99526 +vn -0.19896 0.293 0.93518 +vn -0.19415 0.29393 0.9359 +vn 0.71166 0.47302 0.51941 +vn -0.71166 0.47302 0.51941 +vn 0.71536 -0.60706 0.34603 +vn 0.65052 -0.66853 0.36041 +vn -0.44754 0.8066 0.38614 +vn -0.45087 0.80566 0.38423 +vn 0.91894 -0.3796 0.107 +vn 0.94683 0.30286 0.10854 +vn 0.75441 0.64508 0.1214 +vn -0.75441 0.64508 0.1214 +vn 0.04619 0.86279 0.50345 +vn -0.04619 0.86279 0.50345 +vn -0.05038 0.19444 0.97962 +vn -0.05246 0.19417 0.97956 +vn 0.08238 0.0787 0.99349 +vn -0.89595 0.42836 0.11742 +vn -0.8974 0.42529 0.11745 +vn -0.89735 0.42535 0.1176 +vn 0.10191 0.97515 0.19672 +vn 0.11369 0.97422 0.19488 +vn -0.10416 0.97403 0.20106 +vn -0.13301 0.97421 0.18225 +vn -0.8075 0.02457 0.58936 +vn 0.8075 0.02457 0.58936 +vn -0.37606 0.83935 0.39253 +vn -0.3808 0.83846 0.38985 +vn 0.58184 -0.72371 0.37109 +vn 0.65256 -0.66773 0.3582 +vn 0.8556 0.499 0.13768 +vn -0.8556 0.499 0.13768 +vn 0.09352 0.07945 0.99244 +vn 0.46329 -0.6783 0.57032 +vn 0.49233 -0.67779 0.54609 +vn -0.43343 -0.67784 0.59386 +vn -0.46881 -0.66869 0.57712 +vn 0.26394 -0.02319 0.96426 +vn -0.20852 0.29325 0.93302 +vn -0.19905 0.29268 0.93526 +vn 0.26836 -0.00098 0.96332 +vn 0.48523 -0.09302 0.86943 +vn -0.41311 0.343 0.84362 +vn -0.38741 0.34555 0.85469 +vn 0.49549 -0.05911 0.8666 +vn 0.89438 0.42353 0.14392 +vn -0.85486 0.42102 0.30325 +vn -0.89271 0.42764 0.14207 +vn -0.88708 0.42741 0.1744 +vn -0.89257 0.42743 0.14363 +vn 0.93113 -0.33409 0.14623 +vn -0.93162 -0.33411 0.14299 +vn 0.58303 -0.72338 0.36986 +vn 0.50904 -0.77189 0.38087 +vn -0.3064 0.86453 0.39838 +vn -0.31243 0.86395 0.39494 +vn -0.76529 -0.6318 0.12315 +vn 0.76529 -0.6318 0.12315 +vn 0.93464 -0.32223 0.1504 +vn -0.93695 -0.31527 0.15077 +vn 0.09611 0.09728 0.99061 +vn -0.04501 0.20405 0.97793 +vn -0.04885 0.20346 0.97786 +vn -0.91796 -0.36335 0.15913 +vn -0.26936 -0.55738 0.78535 +vn -0.18472 0.93038 0.31664 +vn 0.18472 0.93038 0.31664 +vn 0.18149 0.97443 0.13246 +vn -0.18149 0.97443 0.13246 +vn -0.60382 -0.58228 0.54437 +vn 0.60382 -0.58228 0.54437 +vn 0.65528 -0.74799 0.10544 +vn -0.65528 -0.74799 0.10544 +vn -0.9906 -0.06851 0.11841 +vn -0.98533 -0.12353 0.11776 +vn 0.10981 0.0986 0.98905 +vn -0.24037 0.88262 0.40399 +vn -0.24754 0.88256 0.39977 +vn 0.43487 -0.81181 0.38968 +vn 0.50927 -0.77185 0.38065 +vn 0.87855 -0.18636 0.4398 +vn 0.86041 -0.2315 0.45399 +vn -0.74426 0.44681 0.49643 +vn -0.73311 0.45229 0.50792 +vn 0.10416 0.97403 0.20106 +vn 0.09187 0.9751 0.20186 +vn -0.11179 0.97508 0.19163 +vn -0.10191 0.97515 0.19672 +vn 0.15267 0.98426 0.08907 +vn -0.15267 0.98426 0.08907 +vn -0.29032 0.95449 0.06824 +vn 0.29032 0.95449 0.06824 +vn 0.43406 -0.81186 0.39048 +vn -0.17921 0.89443 0.40973 +vn -0.18735 0.89506 0.40469 +vn 0.36188 -0.84316 0.39765 +vn -0.98188 -0.14676 0.11988 +vn -0.93788 -0.3209 0.13194 +vn 0.22587 0.40185 0.88741 +vn 0.22837 0.41141 0.88238 +vn 0.20016 0.40921 0.89022 +vn 0.1738 0.3761 0.91013 +vn 0.24029 0.48954 0.83822 +vn 0.26732 0.36268 0.89275 +vn 0.27397 0.38024 0.88338 +vn 0.24884 0.38561 0.88847 +vn 0.25347 0.40005 0.88074 +vn 0.29254 0.30635 0.90585 +vn 0.30178 0.32493 0.8963 +vn 0.28162 0.33554 0.89894 +vn 0.28988 0.35439 0.88903 +vn 0.30801 0.24755 0.91861 +vn 0.31736 0.26257 0.91123 +vn 0.30102 0.27669 0.91259 +vn 0.31061 0.29386 0.90397 +vn 0.32064 0.19218 0.9275 +vn 0.32816 0.20201 0.92277 +vn 0.31434 0.21938 0.92362 +vn 0.32295 0.23186 0.91757 +vn 0.33474 0.13926 0.93196 +vn 0.33933 0.14411 0.92957 +vn 0.32737 0.16566 0.93026 +vn 0.33351 0.17289 0.92676 +vn 0.35077 0.08374 0.93271 +vn 0.35218 0.08491 0.93207 +vn 0.34269 0.11225 0.93272 +vn 0.34565 0.11503 0.93129 +vn 0.36263 0.01854 0.93175 +vn 0.36237 0.01839 0.93185 +vn 0.358 0.05278 0.93223 +vn 0.3582 0.05293 0.93214 +vn 0.34094 -0.11251 0.93333 +vn 0.34903 -0.11017 0.93061 +vn 0.35973 -0.03479 0.93241 +vn 0.36249 -0.0335 0.93139 +vn 0.26196 -0.26873 0.92691 +vn 0.27527 -0.27049 0.92253 +vn 0.30678 -0.1937 0.93186 +vn 0.3187 -0.19261 0.92808 +vn 0.16693 -0.37745 0.91086 +vn 0.17715 -0.38431 0.90605 +vn 0.21334 -0.33074 0.91929 +vn 0.22575 -0.33552 0.91458 +vn 0.09277 -0.43191 0.89713 +vn 0.09821 -0.43933 0.89294 +vn 0.12632 -0.41021 0.9032 +vn 0.13402 -0.41788 0.89856 +vn 0.05511 -0.4479 0.89239 +vn 0.04436 -0.42582 0.90372 +vn 0.05161 -0.41943 0.90632 +vn 0.06975 -0.45208 0.88924 +vn 0.02396 -0.45864 0.8883 +vn 0.02525 -0.46579 0.88454 +vn 0.00759 -0.46121 0.88726 +vn 0.00791 -0.46382 0.88589 +vn -0.89826 0.42726 0.10279 +vn 0.00121 -0.46109 0.88735 +vn 0.00123 -0.46129 0.88725 +vn -0.19765 -0.409 0.89087 +vn -0.23031 -0.45072 0.86244 +vn -0.21815 -0.40229 0.88914 +vn -0.2205 -0.41083 0.88465 +vn -0.23746 -0.38794 0.89057 +vn -0.24165 -0.40087 0.88369 +vn -0.25372 -0.36755 0.89473 +vn -0.25963 -0.38334 0.88637 +vn -0.26719 -0.34298 0.90054 +vn -0.27447 -0.36008 0.89163 +vn -0.2784 -0.31595 0.90701 +vn -0.28658 -0.33296 0.89834 +vn -0.28801 -0.28776 0.91337 +vn -0.29655 -0.3036 0.90548 +vn -0.29668 -0.25928 0.91911 +vn -0.30509 -0.2732 0.9123 +vn -0.305 -0.23094 0.92393 +vn -0.31283 -0.24252 0.91832 +vn -0.31344 -0.20283 0.92769 +vn -0.32032 -0.2119 0.92331 +vn -0.32226 -0.17474 0.93038 +vn -0.32791 -0.18134 0.92714 +vn -0.33154 -0.14626 0.93204 +vn -0.33576 -0.15059 0.92983 +vn -0.34105 -0.11685 0.93275 +vn -0.34376 -0.11927 0.93145 +vn -0.35022 -0.08595 0.93272 +vn -0.35149 -0.08692 0.93215 +vn -0.35796 -0.0531 0.93223 +vn -0.35813 -0.05321 0.93215 +vn -0.36263 -0.01816 0.93176 +vn -0.36241 -0.01805 0.93184 +vn -0.36025 0.03067 0.93235 +vn -0.36253 0.0298 0.9315 +vn -0.34413 0.10019 0.93356 +vn -0.3508 0.09866 0.93124 +vn -0.31395 0.17526 0.93312 +vn -0.32388 0.17476 0.92982 +vn -0.27275 0.24793 0.92959 +vn -0.28405 0.24974 0.92571 +vn -0.22605 0.31123 0.92306 +vn -0.23682 0.31558 0.91887 +vn -0.17959 0.36145 0.91493 +vn -0.18861 0.36765 0.91064 +vn -0.1375 0.39836 0.90686 +vn -0.14437 0.40535 0.90269 +vn -0.10181 0.42385 0.89999 +vn -0.10667 0.43066 0.89619 +vn -0.07292 0.44051 0.89478 +vn -0.07616 0.44651 0.89153 +vn -0.05032 0.45081 0.8912 +vn -0.05237 0.45568 0.8886 +vn -0.02652 0.4578 0.88866 +vn -0.02767 0.46436 0.88521 +vn -0.00838 0.46119 0.88726 +vn -0.00865 0.46359 0.88601 +vn -0.90042 0.42004 0.11319 +vn -0.00128 0.461 0.8874 +vn -0.00131 0.46129 0.88725 +vn -0.89722 0.42416 0.12285 +vn 0.29265 0.00107 0.95622 +vn 0.29685 0.01781 0.95476 +vn 0.1125 0.11209 0.98731 +vn -0.0301 0.21355 0.97647 +vn -0.04247 0.21514 0.97566 +vn 0.297 -0.86483 0.4048 +vn -0.05098 0.90755 0.41683 +vn -0.11836 0.9186 0.37705 +vn -0.14816 0.92824 0.34121 +vn -0.06796 0.91004 0.40891 +vn 0.36001 -0.84307 0.39952 +vn -0.6977 0.36832 0.61446 +vn -0.60869 0.38287 0.69491 +vn 0.7449 -0.12609 0.65515 +vn 0.75011 -0.11276 0.65163 +vn 0.94897 0.2936 0.11508 +vn 0.6284 -0.77129 0.10112 +vn -0.6284 -0.77129 0.10112 +vn -0.97757 -0.16953 0.12499 +vn -0.29976 0.8942 0.3325 +vn 0.29976 0.8942 0.3325 +vn 0.99918 -0.03836 -0.01318 +vn 0.99948 -0.02669 -0.01789 +vn 0.32408 -0.87465 0.3605 +vn 0.92335 -0.36675 0.11364 +vn 0.18765 0.95993 0.20814 +vn -0.18765 0.95993 0.20814 +vn 0.14685 0.11607 0.98233 +vn -0.8997 0.4196 0.1203 +vn 0.52415 0.7085 0.47254 +vn -0.52415 0.7085 0.47254 +vn 0.43755 -0.67017 0.59951 +vn 0.34199 -0.66878 0.66014 +vn -0.374 -0.67019 0.64108 +vn -0.33813 -0.67799 0.65268 +vn -0.15184 0.93039 0.33365 +vn 0.15184 0.93039 0.33365 +vn -0.9484 -0.29261 0.12217 +vn -0.15992 -0.32957 0.93049 +vn 0.0613 0.97508 0.2132 +vn 0.07265 0.97422 0.21358 +vn -0.06255 0.97405 0.21754 +vn -0.09345 0.97422 0.20535 +vn 0.32354 0.02068 0.94599 +vn -0.21265 0.29468 0.93163 +vn -0.2079 0.29471 0.9327 +vn 0.33064 0.04391 0.94273 +vn 0.55042 -0.06727 0.83217 +vn 0.68134 -0.39808 0.61426 +vn -0.68134 -0.39808 0.61426 +vn -0.40533 0.90919 0.09528 +vn 0.40533 0.90919 0.09528 +vn -0.97182 -0.19067 0.13863 +vn -0.95366 -0.27613 0.11948 +vn -0.1045 -0.08893 0.99054 +vn -0.10821 -0.09457 0.98962 +vn -0.09196 -0.13048 0.98718 +vn -0.0949 -0.13747 0.98595 +vn -0.07905 -0.14413 0.9864 +vn -0.08024 -0.14797 0.98573 +vn -0.09961 -0.1102 0.98891 +vn -0.10345 -0.1174 0.98768 +vn -0.12467 -0.00628 0.99218 +vn -0.12458 -0.00624 0.99219 +vn -0.1143 -0.04951 0.99221 +vn -0.11603 -0.05119 0.99193 +vn -0.10897 -0.06883 0.99166 +vn -0.11187 -0.07239 0.99108 +vn -0.12035 -0.02929 0.9923 +vn -0.12087 -0.02967 0.99222 +vn -0.03511 0.15126 0.98787 +vn -0.03706 0.1543 0.98733 +vn -0.09291 0.08766 0.99181 +vn -0.09741 0.08855 0.9913 +vn -0.11779 0.03565 0.9924 +vn -0.12051 0.03509 0.99209 +vn -0.06144 0.12817 0.98985 +vn -0.06504 0.13091 0.98926 +vn -0.89868 0.42174 0.12045 +vn -0.00045 0.16543 0.98622 +vn -0.00046 0.16554 0.9862 +vn -0.00921 0.16418 0.98639 +vn -0.00969 0.16717 0.98588 +vn -0.01745 0.16155 0.98671 +vn -0.01828 0.16375 0.98633 +vn -0.00292 0.16551 0.9862 +vn -0.00303 0.1666 0.98602 +vn -0.02522 0.15759 0.98718 +vn -0.02653 0.16029 0.98671 +vn -0.04723 0.14172 0.98878 +vn -0.04999 0.14481 0.9882 +vn -0.07709 0.11009 0.99093 +vn -0.08137 0.11204 0.99037 +vn -0.10709 0.0621 0.99231 +vn -0.11109 0.06201 0.99187 +vn -0.12373 0.01096 0.99226 +vn -0.12467 0.01061 0.99214 +vn -0.12301 -0.01821 0.99224 +vn -0.12309 -0.01826 0.99223 +vn -0.11732 -0.03964 0.9923 +vn -0.11842 -0.04057 0.99213 +vn -0.1115 -0.05916 0.992 +vn -0.11384 -0.06173 0.99158 +vn -0.10668 -0.07872 0.99117 +vn -0.11005 -0.08333 0.99043 +vn -0.10224 -0.09948 0.98977 +vn -0.10612 -0.10603 0.98868 +vn -0.09631 -0.12073 0.988 +vn -0.09983 -0.12815 0.98672 +vn -0.08627 -0.1386 0.98658 +vn -0.08839 -0.1444 0.98556 +vn -0.89903 0.41967 0.12498 +vn -0.89896 0.42225 0.11656 +vn 0.00044 -0.16544 0.98622 +vn 0.00045 -0.16554 0.9862 +vn 0.00282 -0.16551 0.9862 +vn 0.00294 -0.16664 0.98601 +vn 0.00891 -0.1643 0.98637 +vn 0.00939 -0.16738 0.98585 +vn 0.01687 -0.16196 0.98665 +vn 0.01774 -0.16423 0.98626 +vn 0.02442 -0.1583 0.98709 +vn 0.02578 -0.16108 0.9866 +vn 0.03406 -0.15236 0.98774 +vn 0.03609 -0.1555 0.98718 +vn 0.04596 -0.1433 0.98861 +vn 0.04882 -0.1465 0.98801 +vn 0.06003 -0.13022 0.98967 +vn 0.06379 -0.13307 0.98905 +vn 0.0757 -0.1125 0.99076 +vn 0.08019 -0.11452 0.99018 +vn 0.09174 -0.09014 0.99169 +vn 0.09649 -0.09104 0.99116 +vn 0.10631 -0.06425 0.99225 +vn 0.11055 -0.06411 0.9918 +vn 0.11743 -0.03707 0.99239 +vn 0.12033 -0.03642 0.99207 +vn 0.12367 -0.01143 0.99226 +vn 0.12467 -0.01104 0.99214 +vn 0.12467 0.00633 0.99218 +vn 0.12458 0.00628 0.99219 +vn 0.12302 0.01818 0.99224 +vn 0.1231 0.01823 0.99223 +vn 0.12042 0.02903 0.9923 +vn 0.12095 0.02943 0.99222 +vn 0.11751 0.03911 0.9923 +vn 0.11865 0.04009 0.99213 +vn 0.11468 0.0487 0.99221 +vn 0.11645 0.05044 0.99191 +vn 0.1121 0.05811 0.992 +vn 0.1145 0.06075 0.99156 +vn 0.10982 0.0676 0.99165 +vn 0.1128 0.07125 0.99106 +vn 0.10778 0.07738 0.99116 +vn 0.11126 0.0821 0.99039 +vn 0.10585 0.08758 0.99052 +vn 0.10969 0.09335 0.98957 +vn 0.1038 0.0982 0.98974 +vn 0.10784 0.10493 0.98862 +vn 0.10133 0.1091 0.98885 +vn 0.10533 0.11652 0.98759 +vn 0.09808 0.1199 0.98793 +vn 0.10177 0.12757 0.98659 +vn 0.09365 0.12998 0.98708 +vn 0.09672 0.13723 0.9858 +vn 0.0877 0.13841 0.98648 +vn 0.08991 0.14444 0.98542 +vn 0.08002 0.14416 0.98631 +vn 0.08125 0.14816 0.98562 +vn 0.07132 0.14637 0.98666 +vn 0.04034 0.10442 0.99371 +vn 0.12193 0.24928 0.96072 +vn -0.071 -0.14631 0.98669 +vn -0.14638 -0.24873 0.95745 +vn 0.14691 0.11597 0.98233 +vn -0.88811 0.41395 0.19975 +vn 0.56271 -0.03558 0.82589 +vn -0.43344 0.34103 0.83416 +vn -0.41251 0.34398 0.84351 +vn -0.89616 0.41531 0.15627 +vn -0.9638 -0.21448 0.15842 +vn -0.94249 -0.25627 0.21456 +vn -0.97161 -0.20287 0.12173 +vn -0.04863 -0.0998 0.99382 +vn -0.88995 0.41957 0.17874 +vn 0.65438 0.47301 0.58995 +vn -0.65438 0.47301 0.58995 +vn -0.8867 0.41237 0.20908 +vn 0.66121 -0.74261 0.1064 +vn -0.66121 -0.74261 0.1064 +vn 0.83644 -0.30441 0.45574 +vn 0.87335 -0.22895 0.42992 +vn -0.68299 0.52485 0.508 +vn -0.67675 0.5272 0.51388 +vn 0.9264 -0.35637 0.12159 +vn 0.06255 0.97405 0.21754 +vn 0.05081 0.97504 0.21615 +vn -0.07153 0.97501 0.21031 +vn -0.0613 0.97508 0.2132 +vn 0.14955 0.98744 0.05087 +vn -0.14955 0.98744 0.05087 +vn -0.1016 0.92996 0.35335 +vn 0.1016 0.92996 0.35335 +vn 0.90532 0.39897 0.14568 +vn -0.89438 0.42353 0.14392 +vn -0.90532 0.39897 0.14568 +vn -0.7425 0.02457 0.6694 +vn 0.7425 0.02457 0.6694 +vn 0.61236 0.77737 0.14394 +vn -0.61236 0.77737 0.14394 +vn 0.33813 -0.67799 0.65268 +vn 0.37065 -0.67746 0.63535 +vn -0.30463 -0.67759 0.66939 +vn -0.34199 -0.66878 0.66014 +vn 0.94985 0.28759 0.12282 +vn -0.54437 -0.58228 0.60382 +vn 0.54437 -0.58228 0.60382 +vn 0.15511 0.1406 0.97784 +vn -0.00607 0.22423 0.97452 +vn -0.02563 0.22545 0.97392 +vn 0.38367 0.03634 0.92275 +vn 0.02067 0.97407 0.22529 +vn -0.02067 0.97407 0.22529 +vn -0.05162 0.97422 0.2196 +vn -0.13682 0.98864 0.06227 +vn 0.13682 0.98864 0.06227 +vn -0.63397 0.39033 0.66763 +vn 0.77721 -0.12767 0.61616 +vn 0.78358 -0.11295 0.61094 +vn 0.83834 0.50829 0.19706 +vn -0.83834 0.50829 0.19706 +vn 0.1956 0.13605 0.9712 +vn -0.26391 0.8942 0.3616 +vn 0.26391 0.8942 0.3616 +vn -0.95643 0.1863 0.22482 +vn 0.93269 0.28641 0.21924 +vn 0.96154 0.18645 0.20169 +vn 0.16521 0.95993 0.22636 +vn -0.16521 0.95993 0.22636 +vn -0.74005 0.64967 0.17396 +vn 0.16688 0.97443 0.15045 +vn -0.16688 0.97443 0.15045 +vn -0.70766 -0.69731 0.11387 +vn 0.70766 -0.69731 0.11387 +vn 0.9182 0.36754 0.14775 +vn -0.9182 0.36754 0.14775 +vn -0.72434 0.67249 0.15194 +vn -0.03358 0.93002 0.36597 +vn 0.03358 0.93002 0.36597 +vn 0.30742 -0.6702 0.67552 +vn -0.23899 -0.67022 0.70263 +vn -0.20327 -0.67742 0.70695 +vn 0.2054 -0.66892 0.71439 +vn 0.84702 -0.30272 0.43693 +vn 0.80178 -0.37697 0.46373 +vn -0.59142 0.61154 0.52558 +vn -0.59008 0.61185 0.52673 +vn 0.61444 -0.04057 0.78792 +vn -0.20953 0.29862 0.93109 +vn -0.21031 0.29859 0.93092 +vn 0.3933 0.05849 0.91755 +vn 0.74806 -0.65262 0.12038 +vn -0.74806 -0.65262 0.12038 +vn -0.47254 0.7085 0.52415 +vn 0.47254 0.7085 0.52415 +vn 0.61847 -0.03194 0.78516 +vn -0.43931 0.35942 0.8233 +vn -0.41945 0.35954 0.83354 +vn 0.92745 -0.34894 0.13449 +vn 0.61426 -0.39808 0.68134 +vn -0.61426 -0.39808 0.68134 +vn 0.94928 0.28513 0.13253 +vn 0.20327 -0.67742 0.70695 +vn 0.23703 -0.6769 0.69687 +vn -0.16839 -0.67709 0.71638 +vn -0.2054 -0.66892 0.71439 +vn 0.14278 0.98425 0.1042 +vn -0.14278 0.98425 0.1042 +vn 0.79352 -0.595 0.12769 +vn -0.79352 -0.595 0.12769 +vn 0.93468 0.32212 0.1504 +vn -0.93468 0.32212 0.1504 +vn 0.74376 0.64999 -0.15601 +vn 0.76661 -0.43132 0.47568 +vn 0.80825 -0.37364 0.4551 +vn -0.91137 0.3645 -0.19117 +vn -0.97305 -0.10728 -0.20411 +vn 0.97305 -0.10728 -0.20411 +vn 0.91137 0.3645 -0.19117 +vn -0.92801 -0.33414 0.16478 +vn -0.91599 -0.3522 -0.19214 +vn 0.91599 -0.3522 -0.19214 +vn 0.58995 0.47301 0.65438 +vn -0.58995 0.47301 0.65438 +vn -0.36258 0.92885 -0.07605 +vn 0.36258 0.92885 -0.07605 +vn -0.47928 -0.58229 0.65668 +vn 0.47928 -0.58229 0.65668 +vn -0.22558 0.89421 0.38667 +vn 0.22558 0.89421 0.38667 +vn 0.20262 0.15023 0.96767 +vn 0.02457 0.23148 0.97253 +vn -0.00154 0.23236 0.97263 +vn 0.44781 0.05286 0.89257 +vn 0.14121 0.95993 0.24205 +vn -0.14121 0.95993 0.24205 +vn 0.31994 -0.85741 0.4031 +vn -0.05347 0.88516 0.4622 +vn -0.06679 0.90671 0.41642 +vn -0.15012 0.89964 0.41002 +vn 0.27179 0.96067 0.05701 +vn -0.27179 0.96067 0.05701 +vn 0.84191 -0.52234 0.13548 +vn -0.84191 -0.52234 0.13548 +vn -0.60249 0.43514 0.66907 +vn -0.5923 0.43768 0.67648 +vn 0.80385 -0.12741 0.58103 +vn 0.78275 -0.1697 0.59875 +vn 0.0679 -0.66912 0.74005 +vn 0.16982 -0.67024 0.72245 +vn -0.10097 -0.67026 0.73522 +vn -0.03287 -0.6824 0.73024 +vn -0.0679 -0.66912 0.74005 +vn -0.6694 0.02457 0.7425 +vn 0.6694 0.02457 0.7425 +vn 0.77253 -0.42875 0.46838 +vn 0.72243 -0.48833 0.48952 +vn -0.50724 0.67238 0.53908 +vn -0.50894 0.67187 0.53812 +vn 0.24846 0.14653 0.95749 +vn 0.99959 -0.00425 -0.02835 +vn 0.99922 0.01324 -0.03723 +vn 0.29232 -0.84597 0.44597 +vn 0.94566 0.28737 0.15217 +vn -0.9535 0.25942 0.15343 +vn 0.58435 0.80219 0.12257 +vn -0.58435 0.80219 0.12257 +vn 0.03337 -0.67029 0.74135 +vn 0.09951 -0.68199 0.72456 +vn -0.89003 -0.43282 0.14322 +vn 0.89003 -0.43282 0.14322 +vn 0.99614 0.07916 0.03799 +vn 0.92743 -0.33415 0.16801 +vn 0.92541 -0.34727 0.15172 +vn 0.74784 0.64507 0.15687 +vn -0.74784 0.64507 0.15687 +vn 0.92585 -0.34729 0.14898 +vn -0.93344 -0.32579 0.15021 +vn -0.44606 0.70819 0.54727 +vn -0.44952 0.70745 0.54538 +vn 0.66942 -0.54554 0.50425 +vn 0.72765 -0.48651 0.48356 +vn -0.96755 0.19899 0.1557 +vn -0.15045 0.97443 0.16688 +vn 0.15045 0.97443 0.16688 +vn 0.66366 -0.03533 0.7472 +vn -0.18363 0.30918 0.93311 +vn -0.19991 0.31068 0.92925 +vn 0.45083 0.05818 0.89071 +vn 0.99547 0.08555 0.04141 +vn 0.94445 0.2935 0.14786 +vn 0.92653 -0.34485 0.15043 +vn 0.41604 0.70851 0.57003 +vn -0.41604 0.70851 0.57003 +vn -0.97601 0.15077 0.15706 +vn 0.84815 0.49899 0.17791 +vn -0.84815 0.49899 0.17791 +vn -0.96678 -0.20283 0.15557 +vn 0.65582 -0.0496 0.75329 +vn -0.18542 0.89421 0.40743 +vn 0.18542 0.89421 0.40743 +vn -0.98276 0.09577 0.15814 +vn -0.98498 -0.0685 0.1585 +vn 0.11607 0.95993 0.25505 +vn -0.11607 0.95993 0.25505 +vn -0.98674 0.03363 0.15878 +vn 0.54081 -0.39808 0.74098 +vn -0.54081 -0.39808 0.74098 +vn 0.67377 -0.54442 0.49964 +vn 0.60861 -0.6003 0.51888 +vn -0.38352 0.73839 0.55469 +vn -0.38863 0.73776 0.55198 +vn 0.88659 0.42353 0.18597 +vn -0.88659 0.42353 0.18597 +vn 0.92247 -0.33407 0.1935 +vn -0.92282 -0.33408 0.1918 +vn -0.40966 -0.5823 0.70221 +vn 0.40966 -0.5823 0.70221 +vn -0.75863 -0.63179 0.15913 +vn 0.75863 -0.63179 0.15913 +vn -0.92468 -0.32764 0.19396 +vn -0.19713 0.97808 0.06705 +vn 0.19713 0.97808 0.06705 +vn -0.64957 -0.74799 0.13625 +vn 0.64957 -0.74799 0.13625 +vn 0.51941 0.47302 0.71166 +vn -0.51941 0.47302 0.71166 +vn -0.54434 0.49286 0.67882 +vn -0.54066 0.49343 0.68133 +vn 0.76287 -0.23799 0.60116 +vn 0.80403 -0.16974 0.56985 +vn -0.3217 0.76245 0.56141 +vn -0.32827 0.7622 0.55793 +vn 0.54185 -0.65015 0.53263 +vn 0.61189 -0.59977 0.51562 +vn 0.07389 0.23406 0.96941 +vn 0.02784 0.23574 0.97142 +vn 0.25105 0.15034 0.95623 +vn 0.5024 0.0533 0.86299 +vn 0.92998 -0.32999 0.16197 +vn -0.14414 0.89422 0.42378 +vn 0.14414 0.89422 0.42378 +vn -0.58936 0.02457 0.8075 +vn 0.58936 0.02457 0.8075 +vn 0.07593 0.9615 0.2641 +vn 0.09023 0.95994 0.26528 +vn -0.07768 0.95967 0.27017 +vn 0.54387 -0.65003 0.53072 +vn 0.47155 -0.69323 0.54504 +vn -0.26234 0.78035 0.56765 +vn -0.27018 0.78073 0.56343 +vn 0.29852 0.14657 0.94308 +vn 0.94551 0.28604 0.15553 +vn 0.62293 -0.77128 0.13067 +vn -0.62293 -0.77128 0.13067 +vn 0.13128 0.98425 0.11836 +vn -0.13128 0.98425 0.11836 +vn -0.3556 0.70852 0.60955 +vn 0.3556 0.70852 0.60955 +vn 0.40032 -0.72843 0.55599 +vn -0.20676 0.79249 0.57376 +vn -0.21566 0.79371 0.56878 +vn 0.47218 -0.69326 0.54446 +vn -0.33674 -0.58231 0.73994 +vn 0.33674 -0.58231 0.73994 +vn 0.07768 0.95967 0.27017 +vn 0.06293 0.96144 0.26773 +vn -0.08861 0.9614 0.26051 +vn -0.07593 0.9615 0.2641 +vn -0.13246 0.97443 0.18149 +vn 0.13246 0.97443 0.18149 +vn -0.10242 0.89423 0.43573 +vn 0.10242 0.89423 0.43573 +vn -0.12985 0.98864 0.07575 +vn 0.12985 0.98864 0.07575 +vn 0.6935 -0.05256 0.71854 +vn 0.49407 0.04153 0.86843 +vn -0.39996 0.39655 0.8263 +vn -0.39882 0.39664 0.82681 +vn 0.6696 -0.08934 0.73733 +vn 0.46225 -0.39809 0.79237 +vn -0.46225 -0.39809 0.79237 +vn 0.3995 -0.72832 0.55673 +vn -0.1558 0.7995 0.58011 +vn -0.16555 0.80172 0.57432 +vn 0.33053 -0.75546 0.5657 +vn 0.27061 -0.77283 0.57402 +vn 0.2823 -0.81343 0.50856 +vn -0.12588 0.80334 0.58207 +vn -0.13095 0.80376 0.58036 +vn 0.32829 -0.7549 0.56776 +vn 0.95078 0.18645 0.24749 +vn -0.72051 0.67245 0.16936 +vn 0.99357 0.10137 0.0504 +vn 0.93174 -0.31759 0.17609 +vn -0.46244 0.55347 0.69269 +vn -0.46453 0.55341 0.69134 +vn 0.78003 -0.2388 0.57838 +vn 0.731 -0.30492 0.61047 +vn -0.04099 0.89369 0.44682 +vn 0.04099 0.89369 0.44682 +vn 0.44396 0.47303 0.76101 +vn -0.44396 0.47303 0.76101 +vn 0.36703 -0.78988 0.4913 +vn 0.02516 0.96134 0.2742 +vn 0.03812 0.95995 0.27757 +vn -0.02567 0.95971 0.27981 +vn -0.06411 0.95994 0.27276 +vn -0.65546 -0.74261 0.13749 +vn 0.65546 -0.74261 0.13749 +vn 0.02567 0.95971 0.27981 +vn 0.01239 0.96129 0.27525 +vn -0.03751 0.96124 0.27313 +vn -0.02516 0.96134 0.2742 +vn 0.99236 0.10967 0.0565 +vn 0.94576 0.27524 0.17255 +vn -0.26178 -0.58233 0.76965 +vn 0.26178 -0.58233 0.76965 +vn -0.14379 0.98744 0.06544 +vn 0.14379 0.98744 0.06544 +vn -0.50375 0.02457 0.8635 +vn 0.50375 0.02457 0.8635 +vn -0.0126 0.95995 0.27988 +vn 0.2923 0.70853 0.64229 +vn -0.2923 0.70853 0.64229 +vn 0.89743 0.39897 0.18825 +vn -0.89743 0.39897 0.18825 +vn 0.29224 0.13942 0.94613 +vn 0.53974 0.03646 0.84104 +vn 0.69676 -0.3535 0.62415 +vn 0.74085 -0.30244 0.59973 +vn 0.37998 -0.39811 0.83494 +vn -0.37998 -0.39811 0.83494 +vn 0.33756 0.13475 0.93161 +vn 0.08374 0.22626 0.97046 +vn -0.18602 -0.58236 0.79137 +vn 0.18602 -0.58236 0.79137 +vn -0.73544 0.64999 -0.19143 +vn -0.11322 0.97443 0.19407 +vn 0.11322 0.97443 0.19407 +vn 0.32356 -0.77881 0.53736 +vn 0.94962 -0.26681 0.16445 +vn 0.93156 -0.32585 0.16132 +vn 0.96217 -0.10728 -0.25045 +vn 0.90118 0.36449 -0.23458 +vn -0.96217 -0.10728 -0.25045 +vn -0.90118 0.36449 -0.23458 +vn 0.90574 -0.3522 -0.23576 +vn -0.90574 -0.3522 -0.23576 +vn 0.36494 0.47304 0.8019 +vn -0.36494 0.47304 0.8019 +vn 0.35852 0.92884 -0.09332 +vn -0.35852 0.92884 -0.09332 +vn 0.70561 -0.35179 0.6151 +vn 0.65388 -0.40384 0.63981 +vn -0.39185 0.59416 0.70245 +vn -0.39606 0.59364 0.70052 +vn -0.3515 0.42965 0.83178 +vn -0.35611 0.42967 0.8298 +vn 0.65542 -0.15004 0.74021 +vn 0.70035 -0.09261 0.70777 +vn 0.27614 0.95652 0.09392 +vn 0.28441 0.95457 0.08897 +vn -0.28441 0.95457 0.08897 +vn -0.27614 0.95652 0.09392 +vn -0.7015 -0.69731 0.14715 +vn 0.7015 -0.69731 0.14715 +vn -0.1488 0.32403 0.93427 +vn -0.16433 0.32462 0.93146 +vn 0.51519 0.00783 0.85704 +vn -0.26875 0.96067 0.06996 +vn 0.26875 0.96067 0.06996 +vn -0.22723 0.70855 0.66807 +vn 0.22723 0.70855 0.66807 +vn -0.1106 -0.58238 0.80536 +vn 0.1106 -0.58238 0.80536 +vn 0.9102 0.36754 0.19092 +vn -0.9102 0.36754 0.19092 +vn -0.11836 0.98425 0.13128 +vn 0.11836 0.98425 0.13128 +vn -0.41409 0.02457 0.9099 +vn 0.41409 0.02457 0.9099 +vn -0.03656 -0.58241 0.81207 +vn 0.03656 -0.58241 0.81207 +vn -0.57782 0.80219 0.15041 +vn 0.57782 0.80219 0.15041 +vn 0.29539 -0.39812 0.86847 +vn -0.29539 -0.39812 0.86847 +vn -0.34223 0.61708 0.70858 +vn -0.34799 0.61679 0.70602 +vn 0.60287 -0.45378 0.65623 +vn 0.66159 -0.40287 0.63244 +vn 0.74155 -0.65262 0.15555 +vn -0.74155 -0.65262 0.15555 +vn -0.73948 0.64507 0.19249 +vn 0.73948 0.64507 0.19249 +vn 0.28862 -0.76099 0.58103 +vn 0.95338 -0.24696 0.17345 +vn 0.16147 0.70857 0.68692 +vn -0.16147 0.70857 0.68692 +vn 0.2837 0.47306 0.8341 +vn -0.2837 0.47306 0.8341 +vn -0.09306 0.97443 0.20449 +vn 0.09306 0.97443 0.20449 +vn -0.39711 0.90933 0.12422 +vn 0.39711 0.90933 0.12422 +vn -0.78661 -0.595 0.165 +vn 0.78661 -0.595 0.165 +vn 0.60926 -0.45346 0.65052 +vn 0.54497 -0.50106 0.67227 +vn -0.29286 0.63572 0.7142 +vn -0.29995 0.63592 0.71108 +vn 0.92654 0.32212 0.19435 +vn -0.92654 0.32212 0.19435 +vn 0.31778 0.11659 0.94097 +vn 0.55378 0.00204 0.83266 +vn 0.11665 0.22328 0.96775 +vn 0.08453 0.22689 0.97025 +vn -0.83866 0.49899 0.2183 +vn 0.83866 0.49899 0.2183 +vn 0.2099 -0.39814 0.89298 +vn -0.2099 -0.39814 0.89298 +vn -0.91798 -0.33415 0.21368 +vn -0.32192 0.02457 0.94645 +vn 0.32192 0.02457 0.94645 +vn -0.06457 0.7075 0.70376 +vn 0.06067 0.74766 0.66131 +vn 0.096 0.70859 0.69906 +vn 0.35811 0.11056 0.92711 +vn -0.28196 0.45644 0.8439 +vn -0.31314 0.4536 0.83438 +vn 0.68019 -0.15405 0.71667 +vn 0.62825 -0.2087 0.7495 +vn 0.06457 0.7075 0.70376 +vn 0.02985 0.74792 0.66312 +vn -0.09049 0.74673 0.65895 +vn -0.06067 0.74766 0.66131 +vn -0.87667 0.42352 0.2282 +vn 0.87667 0.42352 0.2282 +vn 0.91696 -0.33415 0.21801 +vn -0.91216 -0.33406 0.23743 +vn -0.83458 -0.52233 0.17506 +vn 0.83458 -0.52233 0.17506 +vn -0.24517 0.64987 0.71942 +vn -0.25334 0.65075 0.71578 +vn 0.48206 -0.54364 0.68708 +vn 0.54983 -0.50122 0.66819 +vn 0.2016 0.47308 0.85764 +vn -0.2016 0.47308 0.85764 +vn -0.75014 -0.63179 0.19526 +vn 0.75014 -0.63179 0.19526 +vn 0.91544 -0.32433 0.23829 +vn -0.03173 0.70862 0.70488 +vn 0.12481 -0.39816 0.90878 +vn -0.12481 -0.39816 0.90878 +vn -0.11685 0.33154 0.93618 +vn -0.1342 0.33358 0.93312 +vn 0.50873 -0.04152 0.85993 +vn -0.60005 0.77763 0.1877 +vn 0.60005 0.77763 0.1877 +vn 0.94069 0.27502 0.19866 +vn 0.941 0.27488 0.19738 +vn -0.9452 0.25942 0.19826 +vn 0.26384 -0.73713 0.62211 +vn 0.95247 -0.23678 0.19165 +vn 0.64231 -0.74799 0.16719 +vn -0.64231 -0.74799 0.16719 +vn -0.12143 0.98864 0.08863 +vn 0.12143 0.98864 0.08863 +vn 0.04125 -0.39819 0.91638 +vn -0.04125 -0.39819 0.91638 +vn -0.07234 0.97444 0.2127 +vn 0.07234 0.97444 0.2127 +vn -0.88228 -0.43281 0.18507 +vn 0.88228 -0.43281 0.18507 +vn -0.22875 0.02457 0.97317 +vn 0.22875 0.02457 0.97317 +vn 0.48523 -0.54403 0.68454 +vn 0.41645 -0.57998 0.70014 +vn -0.20025 0.65961 0.72444 +vn -0.20929 0.66134 0.7203 +vn 0.11987 0.47311 0.87281 +vn -0.11987 0.47311 0.87281 +vn 0.91146 -0.33408 0.24005 +vn 0.5965 -0.2496 0.76281 +vn 0.64195 -0.20771 0.73807 +vn -0.1042 0.98425 0.14278 +vn 0.1042 0.98425 0.14278 +vn 0.82173 0.50861 0.25704 +vn -0.82173 0.50861 0.25704 +vn 0.03962 0.47313 0.8801 +vn -0.03962 0.47313 0.8801 +vn 0.92531 -0.32578 0.19409 +vn -0.92531 -0.32578 0.19409 +vn -0.95913 0.19899 0.20119 +vn -0.15889 0.66522 0.72954 +vn -0.16858 0.66795 0.72486 +vn 0.35048 -0.60919 0.71137 +vn 0.41783 -0.58028 0.69906 +vn -0.93766 0.18645 0.29331 +vn 0.93766 0.18645 0.29331 +vn -0.13601 0.02457 0.9904 +vn 0.13601 0.02457 0.9904 +vn -0.96751 0.15076 0.20295 +vn -0.95836 -0.20282 0.20103 +vn 0.95088 -0.23674 0.19946 +vn 0.61597 -0.77128 0.16034 +vn -0.61597 -0.77128 0.16034 +vn -0.05141 0.97444 0.21869 +vn 0.05141 0.97444 0.21869 +vn 0.35007 -0.60906 0.71168 +vn -0.12153 0.66713 0.73496 +vn -0.13167 0.67096 0.72971 +vn 0.28626 -0.63103 0.72101 +vn 0.94991 -0.24279 0.19677 +vn -0.9742 0.09577 0.20435 +vn -0.04496 0.02457 0.99869 +vn 0.04496 0.02457 0.99869 +vn 0.25486 -0.71742 0.64835 +vn 0.95221 -0.22766 0.20364 +vn -0.9764 -0.0685 0.20481 +vn -0.97815 0.03363 0.20518 +vn -0.27914 0.46672 0.8392 +vn 0.60867 -0.24932 0.75324 +vn 0.55689 -0.29137 0.7778 +vn -0.24211 0.48116 0.84253 +vn -0.24983 0.48131 0.8402 +vn 0.32146 0.08286 0.94329 +vn 0.54012 -0.04824 0.8402 +vn 0.12967 0.20752 0.9696 +vn 0.1008 0.21294 0.97185 +vn -0.0964 0.66669 0.73908 +vn -0.10857 0.66925 0.73506 +vn 0.23369 -0.6437 0.72872 +vn 0.28414 -0.63011 0.72265 +vn 0.99022 0.12213 0.06749 +vn 0.94071 0.27031 0.20495 +vn 0.35973 -0.68066 0.6382 +vn 0.95314 -0.2199 0.20776 +vn -0.03056 0.97444 0.22255 +vn 0.03056 0.97444 0.22255 +vn -0.18953 0.97808 0.08625 +vn 0.1878 0.97848 0.08547 +vn 0.19146 0.97812 0.08138 +vn 0.35522 0.07543 0.93174 +vn -0.09603 0.3363 0.93685 +vn -0.10779 0.33645 0.93551 +vn 0.48925 -0.08903 0.86759 +vn 0.28648 -0.65772 0.69666 +vn 0.95512 -0.19476 0.22318 +vn 0.98974 0.12447 0.07016 +vn 0.93936 0.26099 0.22245 +vn -0.0101 0.97445 0.22439 +vn 0.0101 0.97445 0.22439 +vn -0.20939 0.49114 0.84554 +vn -0.21785 0.49185 0.84298 +vn 0.51025 -0.33227 0.79324 +vn 0.56738 -0.29174 0.77004 +vn -0.64813 -0.74261 0.16871 +vn 0.64813 -0.74261 0.16871 +vn 0.13646 0.98744 0.07961 +vn -0.13646 0.98744 0.07961 +vn -0.88874 0.36449 -0.278 +vn -0.94889 -0.10728 -0.29682 +vn 0.94889 -0.10728 -0.29682 +vn 0.88874 0.36449 -0.278 +vn -0.89325 -0.35219 -0.27941 +vn 0.89325 -0.35219 -0.27941 +vn -0.35358 0.92884 -0.1106 +vn 0.35358 0.92884 -0.1106 +vn -0.08907 0.98426 0.15267 +vn 0.08907 0.98426 0.15267 +vn 0.51893 -0.33315 0.78723 +vn 0.45799 -0.37056 0.80804 +vn -0.178 0.49846 0.84845 +vn -0.18697 0.49984 0.8457 +vn -0.8874 0.39897 0.23099 +vn 0.8874 0.39897 0.23099 +vn -0.08117 0.33714 0.93795 +vn -0.09284 0.33786 0.93661 +vn 0.46292 -0.12073 0.87814 +vn 0.50637 -0.08961 0.85765 +vn 0.26504 0.96067 0.08291 +vn -0.26504 0.96067 0.08291 +vn 0.2797 0.95457 0.10282 +vn -0.2797 0.95457 0.10282 +vn -0.39053 0.90933 0.14356 +vn 0.39053 0.90933 0.14356 +vn 0.31376 0.04942 0.94822 +vn 0.12589 0.19518 0.97265 +vn 0.10906 0.19638 0.97444 +vn 0.56985 0.80218 0.17825 +vn -0.56985 0.80218 0.17825 +vn -0.14863 0.5031 0.85135 +vn -0.15791 0.50524 0.84841 +vn 0.40193 -0.40469 0.82139 +vn 0.4647 -0.37173 0.80366 +vn 0.47802 -0.12193 0.86984 +vn 0.43 -0.15268 0.88983 +vn -0.06766 0.33676 0.93916 +vn -0.07902 0.33809 0.93779 +vn 0.33239 0.04794 0.94192 +vn 0.72928 0.64507 0.22812 +vn -0.72928 0.64507 0.22812 +vn 0.69366 -0.69731 0.18056 +vn -0.69366 -0.69731 0.18056 +vn 0.23267 -0.61045 0.75711 +vn 0.95146 -0.17113 0.25581 +vn 0.11166 0.98864 0.10066 +vn -0.11166 0.98864 0.10066 +vn 0.40657 -0.40589 0.81851 +vn 0.3441 -0.43354 0.83285 +vn -0.12178 0.50519 0.85437 +vn -0.1312 0.50815 0.85122 +vn 0.96773 -0.13517 0.21269 +vn 0.95638 -0.20286 0.21018 +vn -0.90002 0.36753 0.23427 +vn 0.90002 0.36753 0.23427 +vn 0.12224 0.18398 0.9753 +vn 0.10685 0.1858 0.97676 +vn 0.29717 0.0279 0.95442 +vn 0.07321 0.98426 0.16087 +vn -0.07321 0.98426 0.16087 +vn 0.59012 0.77763 0.21693 +vn -0.59012 0.77763 0.21693 +vn 0.82709 0.49899 0.25872 +vn -0.82709 0.49899 0.25872 +vn 0.28648 -0.45644 0.84237 +vn -0.09774 0.50492 0.85762 +vn -0.10715 0.50875 0.85422 +vn 0.34667 -0.43444 0.83132 +vn -0.05578 0.33521 0.94049 +vn -0.06667 0.33716 0.93909 +vn 0.39151 -0.18364 0.90166 +vn 0.44299 -0.15441 0.88313 +vn 0.73326 -0.65261 0.19087 +vn -0.73326 -0.65261 0.19087 +vn 0.31369 0.02584 0.94917 +vn 0.86457 0.42352 0.27045 +vn -0.86457 0.42352 0.27045 +vn 0.90358 -0.33414 0.26815 +vn -0.90516 -0.33415 0.26273 +vn 0.21072 -0.57237 0.79246 +vn 0.96898 -0.10936 0.22164 +vn 0.28704 -0.45669 0.84205 +vn -0.07662 0.50253 0.86116 +vn -0.08591 0.50726 0.8575 +vn 0.23076 -0.47319 0.8502 +vn -0.73979 -0.63179 0.23141 +vn 0.73979 -0.63179 0.23141 +vn 0.90703 -0.31112 0.28373 +vn -0.90365 -0.32173 0.28267 +vn 0.93322 0.25523 0.25289 +vn 0.80813 0.50861 0.29707 +vn -0.80813 0.50861 0.29707 +vn 0.27566 0.00627 0.96123 +vn 0.11544 0.17236 0.97825 +vn 0.10159 0.17472 0.97936 +vn -0.92213 0.18645 0.33898 +vn 0.92213 0.18645 0.33898 +vn 0.63345 -0.74799 0.19815 +vn -0.63345 -0.74799 0.19815 +vn 0.18496 -0.48252 0.85613 +vn -0.06625 0.50197 0.86234 +vn -0.0707 0.50344 0.86113 +vn 0.22946 -0.47245 0.85096 +vn 0.40231 -0.18575 0.89646 +vn 0.34884 -0.21243 0.91279 +vn -0.04568 0.33261 0.94196 +vn -0.05597 0.33514 0.9405 +vn -0.77781 -0.59499 0.20246 +vn 0.77781 -0.59499 0.20246 +vn 0.9896 0.1251 0.07102 +vn 0.34716 -0.54381 0.76404 +vn -0.91617 0.32211 0.23848 +vn 0.91617 0.32211 0.23848 +vn -0.8985 -0.33409 0.28475 +vn 0.29002 0.00373 0.95701 +vn 0.05691 0.98426 0.16732 +vn -0.05691 0.98426 0.16732 +vn 0.23936 -0.49967 0.83249 +vn 0.9649 -0.07886 0.25049 +vn -0.27147 0.95449 0.12354 +vn 0.27426 0.95457 0.11657 +vn 0.98969 0.12475 0.0704 +vn 0.95118 0.21866 0.21783 +vn 0.94138 0.25948 0.21559 +vn -0.03739 0.32909 0.94356 +vn -0.04702 0.33218 0.94204 +vn 0.30355 -0.23801 0.92261 +vn 0.3574 -0.21469 0.90894 +vn 0.10596 0.16072 0.9813 +vn 0.0937 0.16354 0.98208 +vn 0.25015 -0.01472 0.96809 +vn 0.82524 -0.52233 0.21481 +vn -0.82524 -0.52233 0.21481 +vn -0.60747 -0.77128 0.19002 +vn 0.60747 -0.77128 0.19002 +vn 0.26233 -0.0176 0.96482 +vn -0.93462 0.25941 0.24328 +vn 0.93462 0.25941 0.24328 +vn 0.30987 -0.24018 0.91994 +vn 0.25727 -0.25962 0.93081 +vn -0.03087 0.3248 0.94528 +vn -0.03979 0.32843 0.94369 +vn 0.98984 0.12416 0.06927 +vn 0.95029 0.21277 0.22733 +vn 0.04044 0.98426 0.17204 +vn -0.04044 0.98426 0.17204 +vn 0.87241 -0.43281 0.22709 +vn -0.87241 -0.43281 0.22709 +vn 0.22172 -0.03434 0.97451 +vn 0.09436 0.14944 0.98426 +vn 0.08368 0.15261 0.98474 +vn 0.89677 -0.33412 0.29012 +vn -0.87402 0.36449 -0.32129 +vn -0.93318 -0.10728 -0.34304 +vn 0.87402 0.36449 -0.32129 +vn 0.93318 -0.10728 -0.34304 +vn -0.026 0.31992 0.94709 +vn -0.03418 0.32403 0.94543 +vn 0.21146 -0.27682 0.93737 +vn 0.26142 -0.26142 0.92915 +vn -0.87846 -0.35219 -0.32292 +vn 0.87846 -0.35219 -0.32292 +vn 0.17993 -0.43738 0.88109 +vn 0.94524 -0.06637 0.31956 +vn 0.91496 -0.32578 0.23816 +vn -0.91496 -0.32578 0.23816 +vn -0.34772 0.92884 -0.12782 +vn 0.34772 0.92884 -0.12782 +vn 0.23174 -0.03739 0.97206 +vn 0.94507 0.21179 0.24899 +vn -0.9484 0.19899 0.24687 +vn 0.94587 0.21143 0.24621 +vn 0.99007 0.12332 0.06754 +vn -0.26825 0.95658 0.11402 +vn -0.38293 0.90932 0.16276 +vn 0.38293 0.90932 0.16276 +vn 0.02404 0.98426 0.17507 +vn -0.02404 0.98426 0.17507 +vn 0.10066 0.98864 0.11166 +vn -0.10066 0.98864 0.11166 +vn 0.08123 0.13883 0.98698 +vn 0.0721 0.14224 0.9872 +vn 0.19148 -0.052 0.98012 +vn -0.95669 0.15076 0.24903 +vn -0.12984 0.98747 0.08973 +vn -0.1267 0.98762 0.09247 +vn 0.1267 0.98762 0.09247 +vn 0.12984 0.98747 0.08973 +vn 0.26065 0.96067 0.09582 +vn -0.26065 0.96067 0.09582 +vn 0.21358 -0.27795 0.93655 +vn -0.0226 0.31459 0.94896 +vn -0.03006 0.31914 0.94723 +vn 0.16736 -0.28943 0.94245 +vn -0.94764 -0.20282 0.24667 +vn 0.94764 -0.20282 0.24667 +vn 0.00795 0.98426 0.17653 +vn -0.00795 0.98426 0.17653 +vn -0.9633 0.09577 0.25075 +vn 0.16318 -0.40237 0.90082 +vn 0.97363 0.00393 0.22812 +vn 0.97134 -0.06852 0.22758 +vn 0.96548 -0.0685 0.25131 +vn -0.96548 -0.0685 0.25131 +vn -0.63919 -0.74261 0.19994 +vn 0.63919 -0.74261 0.19994 +vn -0.9672 0.03363 0.25176 +vn 0.94623 0.20418 0.25091 +vn 0.13315 -0.29619 0.9458 +vn -0.02086 0.31022 0.95043 +vn -0.02891 0.31365 0.9491 +vn 0.16764 -0.28962 0.94235 +vn 0.96782 -0.00766 0.25151 +vn 0.96774 0.00393 0.2519 +vn 0.19941 -0.05503 0.97837 +vn 0.56042 0.80218 0.20601 +vn -0.56042 0.80218 0.20601 +vn 0.16052 -0.06724 0.98474 +vn 0.06714 0.12917 0.98935 +vn 0.05948 0.13269 0.98937 +vn 0.99105 0.11973 0.05901 +vn 0.94632 0.19832 0.25522 +vn 0.24699 -0.34867 0.90412 +vn 0.96753 0.00525 0.25269 +vn 0.17818 0.97849 0.10395 +vn 0.18232 0.97812 0.10021 +vn -0.17987 0.97808 0.10493 +vn 0.18715 0.97812 0.09087 +vn 0.87515 0.39896 0.27375 +vn -0.87515 0.39896 0.27375 +vn -0.57863 0.77762 0.24594 +vn 0.57863 0.77762 0.24594 +vn 0.99135 0.11879 0.05581 +vn 0.94575 0.18947 0.26393 +vn 0.7172 0.64507 0.26364 +vn -0.7172 0.64507 0.26364 +vn 0.16648 -0.07004 0.98356 +vn 0.14916 -0.28541 0.94673 +vn 0.96527 0.02852 0.25971 +vn 0.1298 -0.07976 0.98833 +vn 0.05262 0.12066 0.9913 +vn 0.04632 0.12417 0.99118 +vn 0.9471 0.19901 0.25179 +vn 0.94962 0.18571 0.25246 +vn 0.99169 0.11777 0.05187 +vn 0.95164 0.17368 0.25343 +vn 0.13394 -0.08212 0.98758 +vn 0.0381 0.11344 0.99281 +vn 0.03306 0.11681 0.9926 +vn 0.1001 -0.08941 0.99095 +vn 0.81339 0.49898 0.299 +vn -0.81339 0.49898 0.299 +vn 0.79239 0.50861 0.3368 +vn -0.79239 0.50861 0.3368 +vn -0.90418 0.18645 0.38431 +vn 0.90418 0.18645 0.38431 +vn -0.26524 0.9566 0.12071 +vn 0.95256 0.16218 0.25754 +vn 0.26807 0.95456 0.13016 +vn 0.10641 -0.20829 0.97226 +vn 0.95966 0.04878 0.27689 +vn 0.07509 -0.09565 0.99258 +vn 0.02473 0.11009 0.99361 +vn 0.02266 0.1111 0.99355 +vn 0.10261 -0.09112 0.99054 +vn -0.68409 -0.6973 0.21399 +vn 0.68409 -0.6973 0.21399 +vn 0.99258 0.11498 0.03968 +vn 0.99336 0.11504 0.00223 +vn 0.99342 0.11405 0.01059 +vn 0.07892 -0.09758 0.99209 +vn 0.85026 0.42352 0.31256 +vn -0.85026 0.42352 0.31256 +vn 0.88721 -0.33411 0.31817 +vn -0.8895 -0.33414 0.31169 +vn 0.99292 0.11428 0.03248 +vn 0.95213 0.14442 0.26942 +vn 0.99339 0.1146 0.00626 +vn 0.95418 0.06224 0.2927 +vn 0.96366 0.06912 0.25805 +vn 0.96542 0.03363 0.25852 +vn -0.72754 -0.63178 0.26745 +vn 0.72754 -0.63178 0.26745 +vn 0.89151 -0.31273 0.32772 +vn -0.89208 -0.31091 0.32793 +vn 0.8876 0.36753 0.27765 +vn -0.8876 0.36753 0.27765 +vn 0.96036 0.09058 0.26365 +vn 0.99318 0.11397 0.02475 +vn 0.94701 0.1245 0.2961 +vn 0.95817 0.12356 0.25815 +vn 0.95453 0.15079 0.25717 +vn 0.62296 -0.74798 0.229 +vn -0.62296 -0.74798 0.229 +vn 0.95967 0.09579 0.2643 +vn 0.95184 0.11309 0.28497 +vn 0.95443 0.10693 0.27862 +vn 0.08863 0.98864 0.12143 +vn -0.08863 0.98864 0.12143 +vn -0.72314 -0.65261 0.2262 +vn 0.72314 -0.65261 0.2262 +vn 0.3743 0.90932 0.18174 +vn -0.26807 0.95456 0.13016 +vn -0.3743 0.90932 0.18174 +vn -0.76708 -0.59499 0.23995 +vn 0.76708 -0.59499 0.23995 +vn 0.90353 0.32211 0.28263 +vn -0.90353 0.32211 0.28263 +vn 0.59741 -0.77128 0.21961 +vn -0.59741 -0.77128 0.21961 +vn 0.85701 0.36449 -0.36426 +vn 0.91501 -0.10728 -0.38892 +vn -0.91501 -0.10728 -0.38892 +vn -0.85701 0.36449 -0.36426 +vn 0.86135 -0.35219 -0.36611 +vn -0.86135 -0.35219 -0.36611 +vn -0.88154 -0.33412 0.33356 +vn 0.34096 0.92884 -0.14492 +vn -0.34096 0.92884 -0.14492 +vn -0.25558 0.96066 0.10863 +vn 0.25558 0.96066 0.10863 +vn 0.81386 -0.52233 0.25458 +vn -0.81386 -0.52233 0.25458 +vn 0.11649 0.98762 0.10502 +vn 0.11992 0.98747 0.10262 +vn -0.12506 0.98747 0.09629 +vn -0.11992 0.98747 0.10262 +vn -0.11649 0.98762 0.10502 +vn 0.12506 0.98747 0.09629 +vn 0.56559 0.77762 0.27462 +vn -0.56559 0.77762 0.27462 +vn -0.54951 0.80218 0.23356 +vn 0.54951 0.80218 0.23356 +vn 0.92172 0.25941 0.28832 +vn -0.92172 0.25941 0.28832 +vn -0.86037 -0.43281 0.26913 +vn 0.86037 -0.43281 0.26913 +vn 0.87907 -0.33414 0.33998 +vn -0.25763 0.95448 0.1503 +vn 0.26116 0.95456 0.14354 +vn -0.07575 0.98864 0.12985 +vn 0.07575 0.98864 0.12985 +vn -0.70324 0.64506 0.29891 +vn 0.70324 0.64506 0.29891 +vn 0.62861 -0.7426 0.23108 +vn -0.62861 -0.7426 0.23108 +vn 0.77453 0.5086 0.37608 +vn -0.77453 0.5086 0.37608 +vn -0.88379 0.18645 0.42913 +vn 0.88379 0.18645 0.42913 +vn -0.90233 -0.32578 0.28226 +vn 0.90233 -0.32578 0.28226 +vn 0.93531 0.19899 0.29257 +vn -0.93531 0.19899 0.29257 +vn 0.86066 0.39896 0.31638 +vn -0.86066 0.39896 0.31638 +vn -0.79756 0.49898 0.339 +vn 0.79756 0.49898 0.339 +vn -0.94349 0.15076 0.29513 +vn 0.94349 0.15076 0.29513 +vn -0.93456 -0.20282 0.29234 +vn 0.93456 -0.20282 0.29234 +vn -0.95001 0.09577 0.29717 +vn 0.95001 0.09577 0.29717 +vn 0.95215 -0.0685 0.29784 +vn -0.95215 -0.0685 0.29784 +vn -0.95386 0.03363 0.29837 +vn 0.95386 0.03363 0.29837 +vn 0.17698 0.97812 0.10936 +vn -0.17115 0.97812 0.11828 +vn 0.17115 0.97812 0.11828 +vn -0.8337 0.42352 0.35436 +vn 0.8337 0.42352 0.35436 +vn 0.86781 -0.33406 0.36783 +vn -0.87094 -0.33411 0.36033 +vn -0.71338 -0.63178 0.30322 +vn 0.71338 -0.63178 0.30322 +vn 0.86868 -0.33024 0.36923 +vn -0.87487 -0.31037 0.37186 +vn -0.25526 0.95664 0.1403 +vn 0.36464 0.90932 0.20042 +vn -0.36464 0.90932 0.20042 +vn -0.61083 -0.74798 0.25963 +vn 0.61083 -0.74798 0.25963 +vn -0.67276 -0.6973 0.24731 +vn 0.67276 -0.6973 0.24731 +vn 0.06227 0.98864 0.13682 +vn -0.06227 0.98864 0.13682 +vn 0.8729 0.36753 0.32088 +vn -0.8729 0.36753 0.32088 +vn -0.83768 0.36448 -0.40674 +vn -0.89437 -0.10728 -0.43427 +vn 0.83768 0.36448 -0.40674 +vn 0.89437 -0.10728 -0.43427 +vn -0.84193 -0.35219 -0.4088 +vn 0.84193 -0.35219 -0.4088 +vn -0.33327 0.92884 -0.16182 +vn 0.33327 0.92884 -0.16182 +vn 0.71117 -0.65261 0.26143 +vn -0.71117 -0.65261 0.26143 +vn -0.55099 0.77762 0.30285 +vn 0.55099 0.77762 0.30285 +vn 0.58578 -0.77128 0.24898 +vn -0.58578 -0.77128 0.24898 +vn 0.24982 0.96066 0.1213 +vn -0.24982 0.96066 0.1213 +vn -0.25154 0.95666 0.14674 +vn 0.25351 0.95456 0.15665 +vn 0.11446 0.98747 0.10868 +vn -0.10868 0.98747 0.11446 +vn -0.10502 0.98762 0.11649 +vn 0.10502 0.98762 0.11649 +vn 0.10868 0.98747 0.11446 +vn -0.11446 0.98747 0.10868 +vn 0.53712 0.80218 0.2608 +vn -0.53712 0.80218 0.2608 +vn 0.0484 0.98864 0.14231 +vn -0.0484 0.98864 0.14231 +vn 0.16484 0.97812 0.12692 +vn -0.16484 0.97812 0.12692 +vn 0.75454 0.5086 0.41473 +vn -0.75454 0.5086 0.41473 +vn 0.75438 -0.59499 0.27731 +vn -0.75438 -0.59499 0.27731 +vn 0.88857 0.32211 0.32664 +vn -0.88857 0.32211 0.32664 +vn -0.86167 -0.33414 0.38194 +vn -0.86098 0.18645 0.47324 +vn 0.86098 0.18645 0.47324 +vn 0.68738 0.64506 0.33376 +vn -0.68738 0.64506 0.33376 +vn 0.80038 -0.52233 0.29422 +vn -0.80038 -0.52233 0.29422 +vn -0.61637 -0.7426 0.26198 +vn 0.61637 -0.7426 0.26198 +vn 0.77957 0.49898 0.37853 +vn -0.77957 0.49898 0.37853 +vn 0.03439 0.98864 0.14632 +vn -0.03439 0.98864 0.14632 +vn -0.25351 0.95456 0.15665 +vn 0.35397 0.90932 0.21872 +vn -0.35397 0.90932 0.21872 +vn 0.90646 0.25941 0.33322 +vn -0.90646 0.25941 0.33322 +vn 0.85834 -0.33415 0.38935 +vn -0.84613 -0.43281 0.31104 +vn 0.84613 -0.43281 0.31104 +vn -0.8439 0.39896 0.35869 +vn 0.8439 0.39896 0.35869 +vn 0.8149 0.42352 0.39568 +vn -0.8149 0.42352 0.39568 +vn 0.84789 -0.33406 0.4117 +vn -0.84947 -0.33408 0.40839 +vn -0.69729 -0.63178 0.33858 +vn 0.69729 -0.63178 0.33858 +vn -0.85201 -0.32084 0.4137 +vn 0.02045 0.98864 0.1489 +vn -0.02045 0.98864 0.1489 +vn 0.88739 -0.32578 0.3262 +vn -0.88739 -0.32578 0.3262 +vn 0.91982 0.19899 0.33813 +vn -0.91982 0.19899 0.33813 +vn 0.59706 -0.74798 0.28991 +vn -0.59706 -0.74798 0.28991 +vn -0.24516 0.95456 0.16942 +vn 0.24516 0.95456 0.16942 +vn 0.15807 0.97812 0.13526 +vn -0.15807 0.97812 0.13526 +vn 0.00676 0.98864 0.15013 +vn -0.00676 0.98864 0.15013 +vn 0.87129 -0.10728 -0.4789 +vn 0.81606 0.36448 -0.44855 +vn -0.81606 0.36448 -0.44855 +vn -0.87129 -0.10728 -0.4789 +vn 0.53486 0.77762 0.3305 +vn -0.53486 0.77762 0.3305 +vn 0.92786 0.15076 0.34108 +vn -0.92786 0.15076 0.34108 +vn 0.8202 -0.35219 -0.45082 +vn -0.8202 -0.35219 -0.45082 +vn 0.91909 -0.20282 0.33786 +vn -0.91909 -0.20282 0.33786 +vn 0.32467 0.92884 -0.17845 +vn -0.32467 0.92884 -0.17845 +vn 0.93428 0.09577 0.34344 +vn -0.93428 0.09577 0.34344 +vn -0.10262 0.98747 0.11992 +vn 0.09247 0.98762 0.1267 +vn 0.09629 0.98747 0.12506 +vn 0.10262 0.98747 0.11992 +vn -0.09314 0.98744 0.12761 +vn 0.93639 -0.0685 0.34422 +vn -0.93639 -0.0685 0.34422 +vn 0.93806 0.03363 0.34483 +vn -0.93806 0.03363 0.34483 +vn -0.65967 -0.6973 0.28038 +vn 0.65967 -0.6973 0.28038 +vn -0.24337 0.96066 0.13377 +vn 0.24337 0.96066 0.13377 +vn 0.73245 0.5086 0.45259 +vn -0.73245 0.5086 0.45259 +vn -0.85591 0.36753 0.3638 +vn 0.85591 0.36753 0.3638 +vn 0.57257 -0.77127 0.27802 +vn -0.57257 -0.77127 0.27802 +vn -0.83578 0.18645 0.51644 +vn 0.83578 0.18645 0.51644 +vn -0.52325 0.80218 0.28761 +vn 0.52325 0.80218 0.28761 +vn -0.69732 -0.6526 0.29639 +vn 0.69732 -0.6526 0.29639 +vn 0.34231 0.90932 0.23656 +vn -0.34231 0.90932 0.23656 +vn -0.66964 0.64506 0.36807 +vn 0.66964 0.64506 0.36807 +vn 0.15087 0.97812 0.14325 +vn -0.15087 0.97812 0.14325 +vn -0.75945 0.49898 0.41743 +vn 0.75945 0.49898 0.41743 +vn -0.73969 -0.59498 0.3144 +vn 0.73969 -0.59498 0.3144 +vn -0.8389 -0.33415 0.42964 +vn -0.87127 0.32211 0.37032 +vn 0.87127 0.32211 0.37032 +vn -0.23612 0.95456 0.18181 +vn 0.23612 0.95456 0.18181 +vn -0.60247 -0.7426 0.29253 +vn 0.60247 -0.7426 0.29253 +vn -0.79387 0.42351 0.43635 +vn 0.79387 0.42351 0.43635 +vn 0.83458 -0.33414 0.43797 +vn -0.826 -0.33405 0.45401 +vn -0.51724 0.77762 0.35745 +vn 0.51724 0.77762 0.35745 +vn -0.07961 0.98744 0.13646 +vn 0.07961 0.98744 0.13646 +vn 0.08973 0.98747 0.12984 +vn -0.6793 -0.63178 0.37338 +vn 0.6793 -0.63178 0.37338 +vn 0.83165 -0.31527 0.45712 +vn -0.7848 -0.52232 0.33357 +vn 0.7848 -0.52232 0.33357 +vn -0.79218 0.36448 -0.4895 +vn -0.84579 -0.10728 -0.52262 +vn 0.79218 0.36448 -0.4895 +vn 0.84579 -0.10728 -0.52262 +vn 0.82487 0.39896 0.40052 +vn -0.82487 0.39896 0.40052 +vn -0.79619 -0.35219 -0.49198 +vn 0.79619 -0.35219 -0.49198 +vn 0.58165 -0.74798 0.3197 +vn -0.58165 -0.74798 0.3197 +vn -0.31517 0.92884 -0.19475 +vn 0.31517 0.92884 -0.19475 +vn -0.88881 0.25941 0.37778 +vn 0.88881 0.25941 0.37778 +vn 0.82322 -0.33409 0.45901 +vn 0.70832 0.5086 0.4895 +vn -0.70832 0.5086 0.4895 +vn 0.23625 0.96066 0.14598 +vn -0.23625 0.96066 0.14598 +vn -0.82965 -0.4328 0.35264 +vn 0.82965 -0.4328 0.35264 +vn -0.80825 0.18645 0.55855 +vn 0.80825 0.18645 0.55855 +vn -0.14325 0.97812 0.15087 +vn 0.14325 0.97812 0.15087 +vn 0.32969 0.90932 0.25385 +vn -0.32969 0.90932 0.25385 +vn 0.50794 0.80218 0.31386 +vn -0.50794 0.80218 0.31386 +vn 0.87011 -0.32578 0.36983 +vn -0.87011 -0.32578 0.36983 +vn -0.90191 0.19899 0.38335 +vn 0.90191 0.19899 0.38335 +vn 0.64479 -0.6973 0.31308 +vn -0.64479 -0.6973 0.31308 +vn -0.5578 -0.77127 0.30659 +vn 0.5578 -0.77127 0.30659 +vn -0.9098 0.15076 0.3867 +vn 0.9098 0.15076 0.3867 +vn -0.90119 -0.20282 0.38304 +vn 0.90119 -0.20282 0.38304 +vn -0.22643 0.95456 0.19375 +vn 0.22643 0.95456 0.19375 +vn 0.65005 0.64506 0.40167 +vn -0.65005 0.64506 0.40167 +vn 0.83661 0.36752 0.40622 +vn -0.83661 0.36752 0.40622 +vn -0.91609 0.09577 0.38937 +vn 0.91609 0.09577 0.38937 +vn 0.06544 0.98744 0.14379 +vn -0.06544 0.98744 0.14379 +vn -0.91816 -0.0685 0.39025 +vn 0.91816 -0.0685 0.39025 +vn -0.9198 0.03363 0.39095 +vn 0.9198 0.03363 0.39095 +vn 0.73723 0.49898 0.45554 +vn -0.73723 0.49898 0.45554 +vn 0.49818 0.77762 0.38358 +vn -0.49818 0.77762 0.38358 +vn 0.6816 -0.6526 0.33096 +vn -0.6816 -0.6526 0.33096 +vn -0.13526 0.97812 0.15807 +vn 0.13526 0.97812 0.15807 +vn 0.81792 -0.10728 -0.56524 +vn 0.76608 0.36448 -0.52941 +vn -0.81792 -0.10728 -0.56524 +vn -0.76608 0.36448 -0.52941 +vn 0.77064 0.42351 0.47619 +vn -0.77064 0.42351 0.47619 +vn 0.80783 -0.33412 0.48556 +vn -0.81326 -0.33415 0.4764 +vn 0.76996 -0.35218 -0.53209 +vn -0.76996 -0.35218 -0.53209 +vn -0.65942 -0.63178 0.40746 +vn 0.65942 -0.63178 0.40746 +vn 0.80938 -0.30786 0.50013 +vn -0.80402 -0.3267 0.49681 +vn 0.30478 0.92884 -0.21063 +vn -0.30478 0.92884 -0.21063 +vn 0.68221 0.5086 0.52528 +vn -0.68221 0.5086 0.52528 +vn -0.80085 -0.33407 0.49703 +vn -0.58692 -0.7426 0.3226 +vn 0.58692 -0.7426 0.3226 +vn 0.72301 -0.59498 0.35106 +vn -0.72301 -0.59498 0.35106 +vn 0.85162 0.32211 0.41351 +vn -0.85162 0.32211 0.41351 +vn -0.77845 0.18645 0.59938 +vn 0.77845 0.18645 0.59938 +vn 0.31615 0.90932 0.27052 +vn -0.31615 0.90932 0.27052 +vn 0.56463 -0.74798 0.34889 +vn -0.56463 -0.74798 0.34889 +vn -0.05087 0.98744 0.14955 +vn 0.05087 0.98744 0.14955 +vn -0.22847 0.96066 0.15789 +vn 0.22847 0.96066 0.15789 +vn -0.80358 0.39896 0.44169 +vn 0.80358 0.39896 0.44169 +vn 0.21611 0.95456 0.2052 +vn -0.21611 0.95456 0.2052 +vn -0.49121 0.80217 0.33946 +vn 0.49121 0.80217 0.33946 +vn -0.12277 0.97808 0.16821 +vn 0.12692 0.97812 0.16484 +vn 0.7671 -0.52232 0.37247 +vn -0.7671 -0.52232 0.37247 +vn 0.79516 -0.33413 0.50604 +vn 0.86877 0.25941 0.42184 +vn -0.86877 0.25941 0.42184 +vn -0.62863 0.64506 0.43442 +vn 0.62863 0.64506 0.43442 +vn -0.03614 0.98745 0.15377 +vn 0.03614 0.98745 0.15377 +vn -0.47772 0.77762 0.40878 +vn 0.47772 0.77762 0.40878 +vn 0.54147 -0.77127 0.33458 +vn -0.54147 -0.77127 0.33458 +vn 0.81095 -0.4328 0.39376 +vn -0.81095 -0.4328 0.39376 +vn 0.62815 -0.6973 0.34526 +vn -0.62815 -0.6973 0.34526 +vn -0.71294 0.49898 0.49269 +vn 0.71294 0.49898 0.49269 +vn 0.85049 -0.32577 0.41296 +vn -0.85049 -0.32577 0.41296 +vn 0.88157 0.19899 0.42805 +vn -0.88157 0.19899 0.42805 +vn -0.12587 0.97849 0.16347 +vn -0.12159 0.9785 0.1666 +vn -0.02149 0.98745 0.15648 +vn 0.02149 0.98745 0.15648 +vn 0.11828 0.97812 0.17115 +vn -0.81501 0.36752 0.44797 +vn 0.81501 0.36752 0.44797 +vn 0.65419 0.5086 0.55978 +vn -0.65419 0.5086 0.55978 +vn -0.73784 0.36448 -0.56811 +vn -0.78777 -0.10728 -0.60656 +vn 0.78777 -0.10728 -0.60656 +vn 0.73784 0.36448 -0.56811 +vn 0.30174 0.90932 0.28651 +vn -0.30174 0.90932 0.28651 +vn -0.74158 -0.35218 -0.57099 +vn 0.74158 -0.35218 -0.57099 +vn -0.2052 0.95456 0.21611 +vn 0.2052 0.95456 0.21611 +vn -0.74648 0.18645 0.63875 +vn 0.74648 0.18645 0.63875 +vn 0.88928 0.15076 0.4318 +vn -0.88928 0.15076 0.4318 +vn -0.29355 0.92884 -0.22602 +vn 0.29355 0.92884 -0.22602 +vn -0.88087 -0.20282 0.42771 +vn 0.88087 -0.20282 0.42771 +vn -0.74525 0.42351 0.51502 +vn 0.74525 0.42351 0.51502 +vn 0.77815 -0.33409 0.53186 +vn -0.7848 -0.33414 0.52196 +vn 0.0071 0.98745 0.15778 +vn -0.0071 0.98745 0.15778 +vn 0.89543 0.09577 0.43478 +vn -0.89543 0.09577 0.43478 +vn -0.63769 -0.63178 0.44069 +vn 0.63769 -0.63178 0.44069 +vn 0.7802 -0.31714 0.53917 +vn -0.78173 -0.31152 0.54023 +vn -0.66401 -0.6526 0.36497 +vn 0.66401 -0.6526 0.36497 +vn 0.89745 -0.0685 0.43576 +vn -0.89745 -0.0685 0.43576 +vn 0.89906 0.03363 0.43654 +vn -0.89906 0.03363 0.43654 +vn 0.22005 0.96066 0.16943 +vn -0.22005 0.96066 0.16943 +vn -0.54603 -0.74798 0.37734 +vn 0.54603 -0.74798 0.37734 +vn -0.56975 -0.7426 0.35205 +vn 0.56975 -0.7426 0.35205 +vn 0.4731 0.80217 0.36427 +vn -0.4731 0.80217 0.36427 +vn -0.77115 -0.3341 0.54195 +vn 0.10493 0.97808 0.17987 +vn -0.10493 0.97808 0.17987 +vn -0.11828 0.97812 0.17115 +vn 0.45594 0.77762 0.43293 +vn -0.45594 0.77762 0.43293 +vn -0.70435 -0.59498 0.38715 +vn 0.70435 -0.59498 0.38715 +vn -0.82964 0.32211 0.45601 +vn 0.82964 0.32211 0.45601 +vn 0.78006 0.39895 0.48201 +vn -0.78006 0.39895 0.48201 +vn 0.60546 0.64506 0.46618 +vn -0.60546 0.64506 0.46618 +vn -0.19375 0.95456 0.22643 +vn 0.19375 0.95456 0.22643 +vn 0.28651 0.90932 0.30174 +vn -0.28651 0.90932 0.30174 +vn 0.52364 -0.77127 0.36187 +vn -0.52364 -0.77127 0.36187 +vn 0.62437 0.5086 0.59286 +vn -0.62437 0.5086 0.59286 +vn -0.7473 -0.52232 0.41075 +vn 0.7473 -0.52232 0.41075 +vn -0.71245 0.18645 0.6765 +vn 0.71245 0.18645 0.6765 +vn 0.68666 0.49897 0.5287 +vn -0.68666 0.49897 0.5287 +vn 0.75542 -0.10728 -0.6464 +vn 0.70754 0.36448 -0.60543 +vn -0.70754 0.36448 -0.60543 +vn -0.75542 -0.10728 -0.6464 +vn 0.76422 -0.33415 0.55165 +vn 0.71112 -0.35218 -0.6085 +vn -0.71112 -0.35218 -0.6085 +vn 0.28149 0.92884 -0.24087 +vn -0.28149 0.92884 -0.24087 +vn -0.84635 0.25941 0.46519 +vn 0.84635 0.25941 0.46519 +vn 0.60977 -0.69729 0.37678 +vn -0.60977 -0.69729 0.37678 +vn -0.79002 -0.4328 0.43423 +vn 0.79002 -0.4328 0.43423 +vn 0.71778 0.42351 0.55266 +vn -0.71778 0.42351 0.55266 +vn 0.74683 -0.33405 0.57503 +vn -0.7536 -0.33412 0.56608 +vn -0.21101 0.96066 0.18056 +vn 0.21101 0.96066 0.18056 +vn -0.61419 -0.63177 0.4729 +vn 0.61419 -0.63177 0.4729 +vn -0.75396 -0.30747 0.58052 +vn 0.79116 0.36752 0.48887 +vn -0.79116 0.36752 0.48887 +vn -0.43293 0.77762 0.45594 +vn 0.43293 0.77762 0.45594 +vn 0.08625 0.97808 0.18953 +vn -0.08625 0.97808 0.18953 +vn 0.5259 -0.74798 0.40492 +vn -0.5259 -0.74798 0.40492 +vn -0.82854 -0.32577 0.45541 +vn 0.82854 -0.32577 0.45541 +vn -0.18181 0.95456 0.23612 +vn 0.18181 0.95456 0.23612 +vn -0.45367 0.80217 0.3882 +vn 0.45367 0.80217 0.3882 +vn -0.85882 0.19899 0.47205 +vn 0.85882 0.19899 0.47205 +vn 0.27052 0.90932 0.31615 +vn -0.27052 0.90932 0.31615 +vn 0.64458 -0.6526 0.39829 +vn -0.64458 -0.6526 0.39829 +vn -0.86633 0.15076 0.47618 +vn 0.86633 0.15076 0.47618 +vn -0.55098 -0.74259 0.38076 +vn 0.55098 -0.74259 0.38076 +vn -0.85813 -0.20282 0.47167 +vn 0.85813 -0.20282 0.47167 +vn 0.59286 0.5086 0.62437 +vn -0.59286 0.5086 0.62437 +vn -0.87232 0.09577 0.47947 +vn 0.87232 0.09577 0.47947 +vn -0.58059 0.64506 0.4968 +vn 0.58059 0.64506 0.4968 +vn 0.87429 -0.0685 0.48055 +vn -0.87429 -0.0685 0.48055 +vn -0.87585 0.03363 0.48141 +vn 0.87585 0.03363 0.48141 +vn -0.6765 0.18645 0.71245 +vn 0.6765 0.18645 0.71245 +vn -0.73876 -0.33413 0.58532 +vn -0.75437 0.39895 0.52131 +vn 0.75437 0.39895 0.52131 +vn -0.67529 0.36448 -0.6412 +vn -0.72098 -0.10728 -0.6846 +vn 0.67529 0.36448 -0.6412 +vn 0.72098 -0.10728 -0.6846 +vn -0.67871 -0.35218 -0.64445 +vn 0.67871 -0.35218 -0.64445 +vn 0.68374 -0.59498 0.42249 +vn -0.68374 -0.59498 0.42249 +vn 0.80536 0.3221 0.49764 +vn -0.80536 0.3221 0.49764 +vn -0.26866 0.92884 -0.2551 +vn 0.26866 0.92884 -0.2551 +vn -0.65846 0.49897 0.56343 +vn 0.65846 0.49897 0.56343 +vn 0.50433 -0.77127 0.38832 +vn -0.50433 -0.77127 0.38832 +vn 0.16942 0.95456 0.24516 +vn -0.16942 0.95456 0.24516 +vn 0.06705 0.97808 0.19713 +vn -0.06705 0.97808 0.19713 +vn 0.40878 0.77762 0.47772 +vn -0.40878 0.77762 0.47772 +vn 0.20139 0.96066 0.19123 +vn -0.20139 0.96066 0.19123 +vn 0.25385 0.90932 0.32969 +vn -0.25385 0.90932 0.32969 +vn -0.6883 0.42351 0.58897 +vn 0.6883 0.42351 0.58897 +vn 0.7305 -0.33415 0.59558 +vn -0.71979 -0.33409 0.60851 +vn -0.58896 -0.63177 0.50397 +vn 0.58896 -0.63177 0.50397 +vn 0.71824 -0.32623 0.61458 +vn -0.72111 -0.31503 0.61705 +vn 0.72543 -0.52232 0.44825 +vn -0.72543 -0.52232 0.44825 +vn 0.71489 -0.33407 0.61428 +vn 0.43299 0.80217 0.41114 +vn -0.43299 0.80217 0.41114 +vn 0.58968 -0.69729 0.40751 +vn -0.58968 -0.69729 0.40751 +vn 0.55978 0.5086 0.65419 +vn -0.55978 0.5086 0.65419 +vn 0.5043 -0.74797 0.43152 +vn -0.5043 -0.74797 0.43152 +vn 0.82158 0.25941 0.50766 +vn -0.82158 0.25941 0.50766 +vn -0.63875 0.18645 0.74648 +vn 0.63875 0.18645 0.74648 +vn 0.04764 0.97808 0.20268 +vn -0.04764 0.97808 0.20268 +vn -0.7651 0.36752 0.52873 +vn 0.7651 0.36752 0.52873 +vn -0.1503 0.95448 0.25763 +vn 0.14674 0.95666 0.25154 +vn 0.15665 0.95456 0.25351 +vn 0.7669 -0.4328 0.47387 +vn -0.7669 -0.4328 0.47387 +vn 0.55413 0.64505 0.52616 +vn -0.55413 0.64505 0.52616 +vn 0.6412 0.36448 -0.67529 +vn 0.6846 -0.10728 -0.72098 +vn -0.6412 0.36448 -0.67529 +vn -0.6846 -0.10728 -0.72098 +vn -0.53066 -0.74259 0.40859 +vn 0.53066 -0.74259 0.40859 +vn 0.64445 -0.35218 -0.67871 +vn -0.64445 -0.35218 -0.67871 +vn -0.38358 0.77762 0.49818 +vn 0.38358 0.77762 0.49818 +vn 0.2551 0.92884 -0.26866 +vn -0.2551 0.92884 -0.26866 +vn 0.23656 0.90932 0.34231 +vn -0.23656 0.90932 0.34231 +vn -0.62334 -0.6526 0.43077 +vn 0.62334 -0.6526 0.43077 +vn 0.80429 -0.32577 0.49698 +vn -0.80429 -0.32577 0.49698 +vn 0.83369 0.19898 0.51514 +vn -0.83369 0.19898 0.51514 +vn 0.62844 0.49897 0.59673 +vn -0.62844 0.49897 0.59673 +vn 0.02833 0.97809 0.20626 +vn -0.02833 0.97809 0.20626 +vn -0.70381 -0.33414 0.6269 +vn -0.19123 0.96066 0.20139 +vn 0.19123 0.96066 0.20139 +vn 0.72656 0.39895 0.55942 +vn -0.72656 0.39895 0.55942 +vn -0.48362 -0.77127 0.41383 +vn 0.48362 -0.77127 0.41383 +vn 0.84097 0.15076 0.51965 +vn -0.84097 0.15076 0.51965 +vn 0.83302 -0.20282 0.51473 +vn -0.83302 -0.20282 0.51473 +vn -0.15314 0.95662 0.24783 +vn -0.14674 0.95666 0.25154 +vn 0.1503 0.95448 0.25763 +vn 0.1403 0.95664 0.25526 +vn 0.00936 0.97809 0.20797 +vn -0.00936 0.97809 0.20797 +vn 0.52528 0.5086 0.68221 +vn -0.52528 0.5086 0.68221 +vn 0.84679 0.09577 0.52324 +vn -0.84679 0.09577 0.52324 +vn 0.65693 0.42351 0.62377 +vn -0.65693 0.42351 0.62377 +vn 0.69415 -0.33414 0.63758 +vn -0.68351 -0.33405 0.64902 +vn 0.8487 -0.0685 0.52442 +vn -0.8487 -0.0685 0.52442 +vn -0.85022 0.03363 0.52536 +vn 0.85022 0.03363 0.52536 +vn -0.41114 0.80217 0.43299 +vn 0.41114 0.80217 0.43299 +vn -0.59938 0.18645 0.77845 +vn 0.59938 0.18645 0.77845 +vn -0.66122 -0.59498 0.45694 +vn 0.66122 -0.59498 0.45694 +vn -0.56212 -0.63177 0.53375 +vn 0.56212 -0.63177 0.53375 +vn 0.68962 -0.30924 0.65482 +vn -0.77883 0.3221 0.53822 +vn 0.77883 0.3221 0.53822 +vn 0.21872 0.90932 0.35397 +vn -0.21872 0.90932 0.35397 +vn 0.35745 0.77762 0.51724 +vn -0.35745 0.77762 0.51724 +vn 0.48131 -0.74797 0.45702 +vn -0.48131 -0.74797 0.45702 +vn -0.52616 0.64505 0.55413 +vn 0.52616 0.64505 0.55413 +vn 0.67742 -0.33411 0.65534 +vn -0.6464 -0.10728 -0.75542 +vn -0.60543 0.36448 -0.70754 +vn 0.60543 0.36448 -0.70754 +vn 0.6464 -0.10728 -0.75542 +vn -0.14354 0.95456 0.26116 +vn -0.12354 0.95449 0.27147 +vn 0.12071 0.9566 0.26524 +vn 0.13016 0.95456 0.26807 +vn -0.6085 -0.35218 -0.71112 +vn 0.6085 -0.35218 -0.71112 +vn -0.24087 0.92884 -0.28149 +vn 0.24087 0.92884 -0.28149 +vn -0.70153 -0.52232 0.4848 +vn 0.70153 -0.52232 0.4848 +vn 0.56794 -0.69729 0.4373 +vn -0.56794 -0.69729 0.4373 +vn 0.4895 0.5086 0.70832 +vn -0.4895 0.5086 0.70832 +vn 0.18056 0.96066 0.21101 +vn -0.18056 0.96066 0.21101 +vn 0.73689 0.36752 0.56738 +vn -0.73689 0.36752 0.56738 +vn -0.59673 0.49897 0.62844 +vn 0.59673 0.49897 0.62844 +vn -0.79451 0.25941 0.54906 +vn 0.79451 0.25941 0.54906 +vn -0.50887 -0.74259 0.43543 +vn 0.50887 -0.74259 0.43543 +vn -0.55855 0.18645 0.80825 +vn 0.55855 0.18645 0.80825 +vn 0.20042 0.90932 0.36464 +vn -0.20042 0.90932 0.36464 +vn 0.12354 0.95449 0.27147 +vn 0.11402 0.95658 0.26825 +vn -0.12734 0.95656 0.26225 +vn -0.12071 0.9566 0.26524 +vn -0.74163 -0.4328 0.51251 +vn 0.74163 -0.4328 0.51251 +vn -0.3305 0.77762 0.53486 +vn 0.3305 0.77762 0.53486 +vn 0.46158 -0.77127 0.43828 +vn -0.46158 -0.77127 0.43828 +vn 0.3882 0.80217 0.45367 +vn -0.3882 0.80217 0.45367 +vn -0.60036 -0.6526 0.46226 +vn 0.60036 -0.6526 0.46226 +vn -0.62377 0.42351 0.65693 +vn 0.62377 0.42351 0.65693 +vn 0.65534 -0.33411 0.67742 +vn -0.64902 -0.33405 0.68351 +vn -0.69672 0.39895 0.59617 +vn 0.69672 0.39895 0.59617 +vn -0.53375 -0.63177 0.56212 +vn 0.53375 -0.63177 0.56212 +vn 0.65482 -0.30924 0.68962 +vn -0.77779 -0.32577 0.5375 +vn 0.77779 -0.32577 0.5375 +vn -0.80622 0.19898 0.55715 +vn 0.80622 0.19898 0.55715 +vn 0.60656 -0.10728 -0.78777 +vn 0.56811 0.36448 -0.73784 +vn -0.60656 -0.10728 -0.78777 +vn -0.56811 0.36448 -0.73784 +vn 0.57099 -0.35218 -0.74158 +vn -0.57099 -0.35218 -0.74158 +vn -0.10282 0.95457 0.2797 +vn -0.09392 0.95652 0.27614 +vn -0.11657 0.95457 0.27426 +vn 0.09392 0.95652 0.27614 +vn 0.10282 0.95457 0.2797 +vn -0.45702 -0.74797 0.48131 +vn 0.45702 -0.74797 0.48131 +vn 0.4968 0.64506 0.58059 +vn -0.4968 0.64506 0.58059 +vn 0.22602 0.92884 -0.29355 +vn -0.22602 0.92884 -0.29355 +vn 0.45259 0.5086 0.73245 +vn -0.45259 0.5086 0.73245 +vn 0.18174 0.90932 0.3743 +vn -0.18174 0.90932 0.3743 +vn -0.81327 0.15076 0.56202 +vn 0.81327 0.15076 0.56202 +vn -0.80557 -0.20282 0.5567 +vn 0.80557 -0.20282 0.5567 +vn -0.63684 -0.59498 0.49035 +vn 0.63684 -0.59498 0.49035 +vn -0.51644 0.18645 0.83578 +vn 0.51644 0.18645 0.83578 +vn 0.75011 0.3221 0.57756 +vn -0.75011 0.3221 0.57756 +vn 0.81889 0.09577 0.5659 +vn -0.81889 0.09577 0.5659 +vn 0.30285 0.77762 0.55099 +vn -0.30285 0.77762 0.55099 +vn -0.16943 0.96066 0.22005 +vn 0.16943 0.96066 0.22005 +vn -0.82074 -0.0685 0.56718 +vn 0.82074 -0.0685 0.56718 +vn -0.82221 0.03363 0.5682 +vn 0.82221 0.03363 0.5682 +vn 0.63758 -0.33414 0.69415 +vn 0.56343 0.49897 0.65846 +vn -0.56343 0.49897 0.65846 +vn 0.54462 -0.69729 0.46602 +vn -0.54462 -0.69729 0.46602 +vn -0.36427 0.80217 0.4731 +vn 0.36427 0.80217 0.4731 +vn 0.16276 0.90932 0.38293 +vn -0.16276 0.90932 0.38293 +vn 0.48568 -0.74259 0.46117 +vn -0.48568 -0.74259 0.46117 +vn 0.67567 -0.52232 0.52024 +vn -0.67567 -0.52232 0.52024 +vn 0.06824 0.95449 0.29032 +vn -0.08897 0.95457 0.28441 +vn -0.06824 0.95449 0.29032 +vn 0.08897 0.95457 0.28441 +vn 0.58897 0.42351 0.6883 +vn -0.58897 0.42351 0.6883 +vn 0.61428 -0.33407 0.71489 +vn -0.6269 -0.33414 0.70381 +vn 0.41473 0.5086 0.75454 +vn -0.41473 0.5086 0.75454 +vn -0.70663 0.36752 0.60465 +vn 0.70663 0.36752 0.60465 +vn -0.56524 -0.10728 -0.81792 +vn -0.52941 0.36448 -0.76608 +vn 0.52941 0.36448 -0.76608 +vn 0.56524 -0.10728 -0.81792 +vn 0.43828 -0.77127 0.46158 +vn -0.43828 -0.77127 0.46158 +vn -0.53209 -0.35218 -0.76996 +vn 0.53209 -0.35218 -0.76996 +vn -0.50397 -0.63177 0.58896 +vn 0.50397 -0.63177 0.58896 +vn 0.61458 -0.32623 0.71824 +vn -0.61705 -0.31503 0.72111 +vn -0.27462 0.77762 0.56559 +vn 0.27462 0.77762 0.56559 +vn -0.47324 0.18645 0.86098 +vn 0.47324 0.18645 0.86098 +vn -0.21063 0.92884 -0.30478 +vn 0.21063 0.92884 -0.30478 +vn 0.76522 0.2594 0.58919 +vn -0.76522 0.2594 0.58919 +vn -0.46618 0.64506 0.60546 +vn 0.46618 0.64506 0.60546 +vn -0.60851 -0.33409 0.71979 +vn 0.66496 0.39895 0.6314 +vn -0.66496 0.39895 0.6314 +vn 0.43152 -0.74797 0.5043 +vn -0.43152 -0.74797 0.5043 +vn 0.14356 0.90933 0.39053 +vn -0.14356 0.90933 0.39053 +vn -0.57571 -0.6526 0.49262 +vn 0.57571 -0.6526 0.49262 +vn 0.71429 -0.4328 0.54998 +vn -0.71429 -0.4328 0.54998 +vn 0.15789 0.96066 0.22847 +vn -0.15789 0.96066 0.22847 +vn -0.04057 0.9545 0.29544 +vn 0.04057 0.9545 0.29544 +vn -0.5287 0.49897 0.68666 +vn 0.5287 0.49897 0.68666 +vn 0.37608 0.5086 0.77453 +vn -0.37608 0.5086 0.77453 +vn 0.24594 0.77762 0.57863 +vn -0.24594 0.77762 0.57863 +vn 0.33946 0.80217 0.49121 +vn -0.33946 0.80217 0.49121 +vn 0.12422 0.90933 0.39711 +vn -0.12422 0.90933 0.39711 +vn 0.01341 0.95451 0.29789 +vn -0.01341 0.95451 0.29789 +vn 0.74912 -0.32577 0.5768 +vn -0.74912 -0.32577 0.5768 +vn -0.42913 0.18645 0.88379 +vn 0.42913 0.18645 0.88379 +vn 0.7765 0.19898 0.59788 +vn -0.7765 0.19898 0.59788 +vn -0.4895 0.36448 -0.79218 +vn -0.52262 -0.10728 -0.84579 +vn 0.52262 -0.10728 -0.84579 +vn 0.4895 0.36448 -0.79218 +vn -0.49198 -0.35219 -0.79619 +vn 0.49198 -0.35219 -0.79619 +vn 0.59558 -0.33415 0.7305 +vn -0.61069 -0.59498 0.52256 +vn 0.61069 -0.59498 0.52256 +vn -0.19475 0.92884 -0.31517 +vn 0.19475 0.92884 -0.31517 +vn -0.71931 0.3221 0.6155 +vn 0.71931 0.3221 0.6155 +vn -0.78329 0.15076 0.6031 +vn 0.78329 0.15076 0.6031 +vn -0.55266 0.42351 0.71778 +vn 0.55266 0.42351 0.71778 +vn 0.57503 -0.33405 0.74683 +vn -0.58532 -0.33413 0.73876 +vn 0.77587 -0.20281 0.5974 +vn -0.77587 -0.20281 0.5974 +vn 0.09528 0.90919 0.40533 +vn -0.09528 0.90919 0.40533 +vn -0.4729 -0.63177 0.61419 +vn 0.4729 -0.63177 0.61419 +vn -0.58052 -0.30747 0.75396 +vn 0.43442 0.64506 0.62863 +vn -0.43442 0.64506 0.62863 +vn 0.51979 -0.69729 0.49356 +vn -0.51979 -0.69729 0.49356 +vn 0.41383 -0.77127 0.48362 +vn -0.41383 -0.77127 0.48362 +vn 0.7887 0.09577 0.60727 +vn -0.7887 0.09577 0.60727 +vn -0.21693 0.77763 0.59012 +vn 0.21693 0.77763 0.59012 +vn -0.46117 -0.74259 0.48568 +vn 0.46117 -0.74259 0.48568 +vn 0.3368 0.50861 0.79239 +vn -0.3368 0.50861 0.79239 +vn 0.14598 0.96066 0.23625 +vn -0.14598 0.96066 0.23625 +vn 0.79048 -0.0685 0.60864 +vn -0.79048 -0.0685 0.60864 +vn 0.79189 0.03363 0.60973 +vn -0.79189 0.03363 0.60973 +vn -0.38431 0.18645 0.90418 +vn 0.38431 0.18645 0.90418 +vn 0.40492 -0.74798 0.5259 +vn -0.40492 -0.74798 0.5259 +vn 0.67442 0.36752 0.64038 +vn -0.67442 0.36752 0.64038 +vn -0.56608 -0.33412 0.7536 +vn -0.64792 -0.52231 0.55442 +vn 0.64792 -0.52231 0.55442 +vn -0.6314 0.39895 0.66496 +vn 0.6314 0.39895 0.66496 +vn 0.49269 0.49898 0.71294 +vn -0.49269 0.49898 0.71294 +vn 0.31386 0.80218 0.50794 +vn -0.31386 0.80218 0.50794 +vn 0.4789 -0.10728 -0.87129 +vn 0.44855 0.36448 -0.81606 +vn -0.4789 -0.10728 -0.87129 +vn -0.44855 0.36448 -0.81606 +vn 0.1877 0.77763 0.60005 +vn -0.1877 0.77763 0.60005 +vn 0.05665 0.9092 0.41248 +vn -0.05665 0.9092 0.41248 +vn 0.45082 -0.35219 -0.8202 +vn -0.45082 -0.35219 -0.8202 +vn 0.17845 0.92884 -0.32467 +vn -0.17845 0.92884 -0.32467 +vn 0.29707 0.50861 0.80813 +vn -0.29707 0.50861 0.80813 +vn -0.73379 0.2594 0.6279 +vn 0.73379 0.2594 0.6279 +vn -0.54947 -0.6526 0.52173 +vn 0.54947 -0.6526 0.52173 +vn -0.33898 0.18645 0.92213 +vn 0.33898 0.18645 0.92213 +vn 0.01872 0.90921 0.41591 +vn -0.01872 0.90921 0.41591 +vn -0.68496 -0.4328 0.58611 +vn 0.68496 -0.4328 0.58611 +vn 0.51502 0.42351 0.74525 +vn -0.51502 0.42351 0.74525 +vn 0.55165 -0.33415 0.76422 +vn -0.54195 -0.3341 0.77115 +vn -0.13377 0.96066 0.24337 +vn 0.13377 0.96066 0.24337 +vn 0.14394 0.77737 0.61236 +vn -0.14394 0.77737 0.61236 +vn 0.40167 0.64506 0.65005 +vn -0.40167 0.64506 0.65005 +vn -0.44069 -0.63178 0.63769 +vn 0.44069 -0.63178 0.63769 +vn 0.53917 -0.31714 0.7802 +vn -0.54023 -0.31152 0.78173 +vn 0.53186 -0.33409 0.77815 +vn 0.25704 0.50861 0.82173 +vn -0.25704 0.50861 0.82173 +vn -0.38832 -0.77127 0.50433 +vn 0.38832 -0.77127 0.50433 +vn -0.40674 0.36448 -0.83768 +vn -0.43427 -0.10728 -0.89437 +vn 0.43427 -0.10728 -0.89437 +vn 0.40674 0.36448 -0.83768 +vn -0.29331 0.18645 0.93766 +vn 0.29331 0.18645 0.93766 +vn 0.37734 -0.74798 0.54603 +vn -0.37734 -0.74798 0.54603 +vn -0.4088 -0.35219 -0.84193 +vn 0.4088 -0.35219 -0.84193 +vn -0.28761 0.80218 0.52325 +vn 0.28761 0.80218 0.52325 +vn -0.71836 -0.32577 0.61469 +vn 0.71836 -0.32577 0.61469 +vn -0.43543 -0.74259 0.50887 +vn 0.43543 -0.74259 0.50887 +vn -0.16182 0.92884 -0.33327 +vn 0.16182 0.92884 -0.33327 +vn 0.58285 -0.59498 0.55343 +vn -0.58285 -0.59498 0.55343 +vn 0.74461 0.19898 0.63715 +vn -0.74461 0.19898 0.63715 +vn 0.68652 0.3221 0.65187 +vn -0.68652 0.3221 0.65187 +vn 0.45554 0.49898 0.73723 +vn -0.45554 0.49898 0.73723 +vn 0.49356 -0.69729 0.51979 +vn -0.49356 -0.69729 0.51979 +vn 0.08558 0.77739 0.62317 +vn -0.08558 0.77739 0.62317 +vn 0.19706 0.50829 0.83834 +vn -0.19706 0.50829 0.83834 +vn -0.52196 -0.33414 0.7848 +vn -0.75112 0.15076 0.64272 +vn 0.75112 0.15076 0.64272 +vn 0.1213 0.96066 0.24982 +vn -0.1213 0.96066 0.24982 +vn -0.74401 -0.20281 0.63664 +vn 0.74401 -0.20281 0.63664 +vn -0.22482 0.1863 0.95643 +vn 0.22482 0.1863 0.95643 +vn 0.16936 0.67245 0.72051 +vn -0.17396 0.64967 0.74005 +vn -0.64038 0.36752 0.67442 +vn 0.64038 0.36752 0.67442 +vn 0.59617 0.39895 0.69672 +vn -0.59617 0.39895 0.69672 +vn -0.36807 0.64506 0.66964 +vn 0.36807 0.64506 0.66964 +vn -0.75631 0.09577 0.64716 +vn 0.75631 0.09577 0.64716 +vn 0.47619 0.42351 0.77064 +vn -0.47619 0.42351 0.77064 +vn 0.50604 -0.33413 0.79516 +vn -0.49703 -0.33407 0.80085 +vn 0.02829 0.77741 0.62836 +vn -0.02829 0.77741 0.62836 +vn -0.36426 0.36449 -0.85701 +vn -0.38892 -0.10728 -0.91501 +vn 0.36426 0.36449 -0.85701 +vn 0.38892 -0.10728 -0.91501 +vn -0.75802 -0.0685 0.64863 +vn 0.75802 -0.0685 0.64863 +vn -0.75937 0.03363 0.64978 +vn 0.75937 0.03363 0.64978 +vn -0.36611 -0.35219 -0.86135 +vn 0.36611 -0.35219 -0.86135 +vn -0.40746 -0.63178 0.65942 +vn 0.40746 -0.63178 0.65942 +vn 0.50013 -0.30786 0.80938 +vn -0.49681 -0.3267 0.80402 +vn 0.61839 -0.52231 0.58718 +vn -0.61839 -0.52231 0.58718 +vn -0.14492 0.92884 -0.34096 +vn 0.14492 0.92884 -0.34096 +vn 0.17396 0.64967 0.74005 +vn 0.15194 0.67249 0.72434 +vn -0.1865 0.6722 0.7165 +vn -0.16936 0.67245 0.72051 +vn 0.2608 0.80218 0.53712 +vn -0.2608 0.80218 0.53712 +vn 0.11717 0.50831 0.85316 +vn -0.11717 0.50831 0.85316 +vn -0.52173 -0.6526 0.54947 +vn 0.52173 -0.6526 0.54947 +vn -0.34889 -0.74798 0.56463 +vn 0.34889 -0.74798 0.56463 +vn -0.41743 0.49898 0.75945 +vn 0.41743 0.49898 0.75945 +vn 0.36187 -0.77127 0.52364 +vn -0.36187 -0.77127 0.52364 +vn 0.48556 -0.33412 0.80783 +vn -0.13367 0.18631 0.97335 +vn 0.13367 0.18631 0.97335 +vn 0.10863 0.96066 0.25558 +vn -0.10863 0.96066 0.25558 +vn 0.70035 0.2594 0.665 +vn -0.70035 0.2594 0.665 +vn 0.10343 0.64969 0.75313 +vn -0.10343 0.64969 0.75313 +vn 0.32129 0.36449 -0.87402 +vn 0.34304 -0.10728 -0.93318 +vn -0.32129 0.36449 -0.87402 +vn -0.34304 -0.10728 -0.93318 +vn 0.03873 0.50834 0.86028 +vn -0.03873 0.50834 0.86028 +vn 0.32292 -0.35219 -0.87846 +vn -0.32292 -0.35219 -0.87846 +vn 0.65373 -0.4328 0.62074 +vn -0.65373 -0.4328 0.62074 +vn 0.33376 0.64506 0.68738 +vn -0.33376 0.64506 0.68738 +vn -0.40859 -0.74259 0.53066 +vn 0.40859 -0.74259 0.53066 +vn 0.12782 0.92884 -0.34772 +vn -0.12782 0.92884 -0.34772 +vn -0.04419 0.18632 0.98149 +vn 0.04419 0.18632 0.98149 +vn -0.4764 -0.33415 0.81326 +vn -0.43635 0.42351 0.79387 +vn 0.43635 0.42351 0.79387 +vn 0.45901 -0.33409 0.82322 +vn -0.45401 -0.33405 0.826 +vn 0.23356 0.80218 0.54951 +vn -0.23356 0.80218 0.54951 +vn 0.46602 -0.69729 0.54462 +vn -0.46602 -0.69729 0.54462 +vn -0.37338 -0.63178 0.6793 +vn 0.37338 -0.63178 0.6793 +vn 0.45712 -0.31527 0.83165 +vn -0.06536 0.87706 0.47591 +vn 0.06536 0.87706 0.47591 +vn -0.55343 -0.59498 0.58285 +vn 0.55343 -0.59498 0.58285 +vn -0.65187 0.3221 0.68652 +vn 0.65187 0.3221 0.68652 +vn -0.09582 0.96067 0.26065 +vn 0.09582 0.96067 0.26065 +vn -0.29682 -0.10728 -0.94889 +vn -0.278 0.36449 -0.88874 +vn 0.278 0.36449 -0.88874 +vn 0.29682 -0.10728 -0.94889 +vn -0.55942 0.39895 0.72656 +vn 0.55942 0.39895 0.72656 +vn 0.68561 -0.32577 0.65101 +vn -0.68561 -0.32577 0.65101 +vn -0.27941 -0.35219 -0.89325 +vn 0.27941 -0.35219 -0.89325 +vn 0.71067 0.19898 0.6748 +vn -0.71067 0.19898 0.6748 +vn 0.37853 0.49898 0.77957 +vn -0.37853 0.49898 0.77957 +vn 0.60465 0.36752 0.70663 +vn -0.60465 0.36752 0.70663 +vn -0.1106 0.92884 -0.35358 +vn 0.1106 0.92884 -0.35358 +vn 0.3197 -0.74798 0.58165 +vn -0.3197 -0.74798 0.58165 +vn 0.29891 0.64506 0.70324 +vn -0.29891 0.64506 0.70324 +vn 0.33458 -0.77127 0.54147 +vn -0.33458 -0.77127 0.54147 +vn 0.71688 0.15076 0.6807 +vn -0.71688 0.15076 0.6807 +vn 0.19143 0.64999 -0.73544 +vn 0.43797 -0.33414 0.83458 +vn -0.20601 0.80218 0.56042 +vn 0.20601 0.80218 0.56042 +vn 0.7101 -0.20281 0.67426 +vn -0.7101 -0.20281 0.67426 +vn 0.25045 -0.10728 -0.96217 +vn 0.23458 0.36449 -0.90118 +vn -0.25045 -0.10728 -0.96217 +vn -0.23458 0.36449 -0.90118 +vn 0.08291 0.96067 0.26504 +vn -0.08291 0.96067 0.26504 +vn 0.23576 -0.3522 -0.90574 +vn -0.23576 -0.3522 -0.90574 +vn 0.72184 0.09577 0.68541 +vn -0.72184 0.09577 0.68541 +vn -0.58718 -0.52231 0.61839 +vn 0.58718 -0.52231 0.61839 +vn 0.39568 0.42352 0.8149 +vn -0.39568 0.42352 0.8149 +vn 0.4117 -0.33406 0.84789 +vn -0.42964 -0.33415 0.8389 +vn 0.09332 0.92884 -0.35852 +vn -0.09332 0.92884 -0.35852 +vn -0.49262 -0.6526 0.57571 +vn 0.49262 -0.6526 0.57571 +vn 0.72347 -0.0685 0.68695 +vn -0.72347 -0.0685 0.68695 +vn 0.72476 0.03363 0.68818 +vn -0.72476 0.03363 0.68818 +vn -0.33858 -0.63178 0.69729 +vn 0.33858 -0.63178 0.69729 +vn -0.4137 -0.32084 0.85201 +vn -0.40839 -0.33408 0.84947 +vn -0.38076 -0.74259 0.55098 +vn 0.38076 -0.74259 0.55098 +vn -0.15601 0.64999 -0.74376 +vn 0.07627 0.87723 -0.47398 +vn 0.05995 0.89769 -0.43652 +vn -0.05995 0.89769 -0.43652 +vn -0.07627 0.87723 -0.47398 +vn 0.339 0.49898 0.79756 +vn -0.339 0.49898 0.79756 +vn -0.20411 -0.10728 -0.97305 +vn -0.19117 0.3645 -0.91137 +vn 0.19117 0.3645 -0.91137 +vn 0.20411 -0.10728 -0.97305 +vn -0.19214 -0.3522 -0.91599 +vn 0.19214 -0.3522 -0.91599 +vn -0.26364 0.64507 0.7172 +vn 0.26364 0.64507 0.7172 +vn 0.17825 0.80218 0.56985 +vn -0.17825 0.80218 0.56985 +vn -0.665 0.2594 0.70035 +vn 0.665 0.2594 0.70035 +vn -0.06996 0.96067 0.26875 +vn 0.06996 0.96067 0.26875 +vn -0.07605 0.92885 -0.36258 +vn 0.07605 0.92885 -0.36258 +vn 0.28991 -0.74798 0.59706 +vn -0.28991 -0.74798 0.59706 +vn 0.12073 0.64999 -0.75029 +vn -0.12073 0.64999 -0.75029 +vn -0.14794 0.3645 -0.91938 +vn 0.13527 -0.1072 -0.98499 +vn 0.15859 -0.05956 -0.98555 +vn 0.14794 0.3645 -0.91938 +vn -0.15796 -0.10728 -0.9816 +vn 0.05415 0.87723 -0.47701 +vn -0.05415 0.87723 -0.47701 +vn 0.4373 -0.69729 0.56794 +vn -0.4373 -0.69729 0.56794 +vn -0.62074 -0.4328 0.65373 +vn 0.62074 -0.4328 0.65373 +vn 0.52131 0.39895 0.75437 +vn -0.52131 0.39895 0.75437 +vn 0.14869 -0.3522 -0.92404 +vn 0.12584 -0.38027 -0.91628 +vn -0.12735 -0.35195 -0.92731 +vn -0.13582 -0.0592 -0.98896 +vn -0.08572 0.65 -0.75509 +vn 0.08572 0.65 -0.75509 +vn 0.30659 -0.77127 0.5578 +vn -0.30659 -0.77127 0.5578 +vn -0.05886 0.92885 -0.36576 +vn 0.05886 0.92885 -0.36576 +vn 0.35436 0.42352 0.8337 +vn -0.35436 0.42352 0.8337 +vn 0.38935 -0.33415 0.85834 +vn -0.38194 -0.33414 0.86167 +vn 0.05701 0.96067 0.27179 +vn -0.05701 0.96067 0.27179 +vn 0.36783 -0.33406 0.86781 +vn 0.36923 -0.33024 0.86868 +vn 0.13582 -0.0592 -0.98896 +vn 0.11215 -0.10728 -0.98788 +vn 0.10504 0.3645 -0.92526 +vn -0.11261 -0.05881 -0.9919 +vn -0.10504 0.3645 -0.92526 +vn -0.52256 -0.59498 0.61069 +vn 0.52256 -0.59498 0.61069 +vn -0.15041 0.80219 0.57782 +vn 0.15041 0.80219 0.57782 +vn 0.6155 0.3221 0.71931 +vn -0.6155 0.3221 0.71931 +vn -0.12584 -0.38027 -0.91628 +vn 0.10432 -0.3804 -0.91892 +vn 0.12735 -0.35195 -0.92731 +vn -0.14696 -0.37996 -0.91325 +vn -0.13527 -0.1072 -0.98499 +vn -0.30322 -0.63178 0.71338 +vn 0.30322 -0.63178 0.71338 +vn -0.37186 -0.31037 0.87487 +vn -0.299 0.49898 0.81339 +vn 0.299 0.49898 0.81339 +vn 0.22812 0.64507 0.72928 +vn -0.22812 0.64507 0.72928 +vn -0.56738 0.36752 0.73689 +vn 0.56738 0.36752 0.73689 +vn 0.04179 0.92885 -0.3681 +vn -0.04179 0.92885 -0.3681 +vn -0.04188 0.36427 -0.93035 +vn -0.04471 -0.10721 -0.99323 +vn 0.04188 0.36427 -0.93035 +vn 0.04471 -0.10721 -0.99323 +vn -0.36033 -0.33411 0.87094 +vn -0.04209 -0.35197 -0.93506 +vn -0.10558 -0.3522 -0.92995 +vn 0.04209 -0.35197 -0.93506 +vn 0.04412 0.96067 0.27417 +vn -0.04412 0.96067 0.27417 +vn -0.65101 -0.32577 0.68561 +vn 0.65101 -0.32577 0.68561 +vn -0.01667 0.92875 -0.37033 +vn 0.01667 0.92875 -0.37033 +vn -0.6748 0.19898 0.71067 +vn 0.6748 0.19898 0.71067 +vn 0.25963 -0.74798 0.61083 +vn -0.25963 -0.74798 0.61083 +vn 0.12257 0.80219 0.58435 +vn -0.12257 0.80219 0.58435 +vn -0.35205 -0.7426 0.56975 +vn 0.35205 -0.7426 0.56975 +vn -0.03133 0.96067 0.27593 +vn 0.03133 0.96067 0.27593 +vn -0.19249 0.64507 0.73948 +vn 0.19249 0.64507 0.73948 +vn -0.31256 0.42352 0.85026 +vn 0.31256 0.42352 0.85026 +vn 0.33998 -0.33414 0.87907 +vn -0.33356 -0.33412 0.88154 +vn -0.46226 -0.6526 0.60036 +vn 0.46226 -0.6526 0.60036 +vn -0.6807 0.15076 0.71688 +vn 0.6807 0.15076 0.71688 +vn 0.25872 0.49899 0.82709 +vn -0.25872 0.49899 0.82709 +vn 0.0125 0.96061 0.27761 +vn -0.0125 0.96061 0.27761 +vn -0.67426 -0.20281 0.7101 +vn 0.67426 -0.20281 0.7101 +vn 0.55442 -0.52231 0.64792 +vn -0.55442 -0.52231 0.64792 +vn -0.26745 -0.63178 0.72754 +vn 0.26745 -0.63178 0.72754 +vn 0.32772 -0.31273 0.89151 +vn -0.32793 -0.31091 0.89208 +vn 0.09486 0.80219 0.58949 +vn -0.09486 0.80219 0.58949 +vn -0.27802 -0.77127 0.57257 +vn 0.27802 -0.77127 0.57257 +vn 0.31817 -0.33411 0.88721 +vn -0.68541 0.09577 0.72184 +vn 0.68541 0.09577 0.72184 +vn 0.48201 0.39895 0.78006 +vn -0.48201 0.39895 0.78006 +vn -0.68695 -0.0685 0.72347 +vn 0.68695 -0.0685 0.72347 +vn -0.31169 -0.33414 0.8895 +vn 0.15687 0.64507 0.74784 +vn -0.15687 0.64507 0.74784 +vn -0.06735 0.80219 0.59325 +vn 0.06735 0.80219 0.59325 +vn -0.68818 0.03363 0.72476 +vn 0.68818 0.03363 0.72476 +vn 0.40751 -0.69729 0.58968 +vn -0.40751 -0.69729 0.58968 +vn -0.229 -0.74798 0.62296 +vn 0.229 -0.74798 0.62296 +vn 0.6279 0.2594 0.73379 +vn -0.6279 0.2594 0.73379 +vn -0.2183 0.49899 0.83866 +vn 0.2183 0.49899 0.83866 +vn 0.02686 0.80198 0.59675 +vn -0.02686 0.80198 0.59675 +vn 0.27045 0.42352 0.86457 +vn -0.27045 0.42352 0.86457 +vn 0.29012 -0.33412 0.89677 +vn -0.28475 -0.33409 0.8985 +vn 0.1214 0.64508 0.75441 +vn -0.1214 0.64508 0.75441 +vn -0.23141 -0.63179 0.73979 +vn 0.23141 -0.63179 0.73979 +vn 0.28373 -0.31112 0.90703 +vn -0.28267 -0.32173 0.90365 +vn 0.58611 -0.4328 0.68496 +vn -0.58611 -0.4328 0.68496 +vn 0.52873 0.36752 0.7651 +vn -0.52873 0.36752 0.7651 +vn -0.49035 -0.59498 0.63684 +vn 0.49035 -0.59498 0.63684 +vn -0.57756 0.3221 0.75011 +vn 0.57756 0.3221 0.75011 +vn -0.3226 -0.7426 0.58692 +vn 0.3226 -0.7426 0.58692 +vn 0.26815 -0.33414 0.90358 +vn -0.0862 0.64508 0.75924 +vn 0.0862 0.64508 0.75924 +vn 0.17791 0.49899 0.84815 +vn -0.17791 0.49899 0.84815 +vn 0.24898 -0.77128 0.58578 +vn -0.24898 -0.77128 0.58578 +vn -0.26273 -0.33415 0.90516 +vn 0.19815 -0.74799 0.63345 +vn -0.19815 -0.74799 0.63345 +vn -0.2282 0.42352 0.87667 +vn 0.2282 0.42352 0.87667 +vn 0.24005 -0.33408 0.91146 +vn -0.23743 -0.33406 0.91216 +vn 0.03356 0.6657 0.74546 +vn 0.05137 0.64508 0.76238 +vn -0.03437 0.6448 0.76358 +vn -0.19526 -0.63179 0.75014 +vn 0.19526 -0.63179 0.75014 +vn 0.23829 -0.32433 0.91544 +vn 0.01704 0.64509 0.76392 +vn 0.13768 0.499 0.8556 +vn -0.13768 0.499 0.8556 +vn 0.61469 -0.32577 0.71836 +vn -0.61469 -0.32577 0.71836 +vn -0.43077 -0.6526 0.62334 +vn 0.43077 -0.6526 0.62334 +vn 0.63715 0.19898 0.74461 +vn -0.63715 0.19898 0.74461 +vn -0.44169 0.39896 0.80358 +vn 0.44169 0.39896 0.80358 +vn 0.21801 -0.33415 0.91696 +vn 0.18597 0.42353 0.88659 +vn -0.18597 0.42353 0.88659 +vn 0.1935 -0.33407 0.92247 +vn -0.21368 -0.33415 0.91798 +vn -0.09776 0.499 0.86107 +vn 0.09776 0.499 0.86107 +vn -0.19396 -0.32764 0.92468 +vn -0.1918 -0.33408 0.92282 +vn -0.52024 -0.52232 0.67567 +vn 0.52024 -0.52232 0.67567 +vn 0.16719 -0.74799 0.64231 +vn -0.16719 -0.74799 0.64231 +vn 0.37678 -0.69729 0.60977 +vn -0.37678 -0.69729 0.60977 +vn -0.15913 -0.63179 0.75863 +vn 0.15913 -0.63179 0.75863 +vn 0.64272 0.15076 0.75112 +vn -0.64272 0.15076 0.75112 +vn 0.21961 -0.77128 0.59741 +vn -0.21961 -0.77128 0.59741 +vn 0.05827 0.499 0.86464 +vn -0.03898 0.49872 0.86589 +vn 0.63664 -0.20281 0.74401 +vn -0.63664 -0.20281 0.74401 +vn -0.05739 0.52086 0.85171 +vn -0.03838 0.52114 0.85261 +vn -0.29253 -0.7426 0.60247 +vn 0.29253 -0.7426 0.60247 +vn 0.01932 0.49901 0.86638 +vn 0.14392 0.42353 0.89438 +vn -0.14392 0.42353 0.89438 +vn 0.16801 -0.33415 0.92743 +vn -0.16478 -0.33414 0.92801 +vn -0.01932 0.49901 0.86638 +vn 0.14623 -0.33409 0.93113 +vn 0.1504 -0.32223 0.93464 +vn 0.64716 0.09577 0.75631 +vn -0.64716 0.09577 0.75631 +vn -0.15077 -0.31527 0.93695 +vn -0.14299 -0.33411 0.93162 +vn 0.48887 0.36752 0.79116 +vn -0.48887 0.36752 0.79116 +vn -0.12315 -0.6318 0.76529 +vn 0.12315 -0.6318 0.76529 +vn -0.58919 0.2594 0.76522 +vn 0.58919 0.2594 0.76522 +vn 0.13625 -0.74799 0.64957 +vn -0.13625 -0.74799 0.64957 +vn 0.64863 -0.0685 0.75802 +vn -0.64863 -0.0685 0.75802 +vn 0.64978 0.03363 0.75937 +vn -0.64978 0.03363 0.75937 +vn -0.10219 0.42353 0.9001 +vn 0.10219 0.42353 0.9001 +vn 0.11837 -0.33413 0.93506 +vn -0.11624 -0.33413 0.93533 +vn 0.45694 -0.59498 0.66122 +vn -0.45694 -0.59498 0.66122 +vn 0.53822 0.3221 0.77883 +vn -0.53822 0.3221 0.77883 +vn 0.09677 -0.33413 0.93755 +vn 0.10714 -0.31301 0.94369 +vn -0.10714 -0.31286 0.94374 +vn -0.09464 -0.33413 0.93776 +vn -0.08744 -0.6318 0.77018 +vn 0.08744 -0.6318 0.77018 +vn -0.54998 -0.4328 0.71429 +vn 0.54998 -0.4328 0.71429 +vn 0.06091 0.42354 0.90383 +vn -0.06091 0.42354 0.90383 +vn 0.06931 -0.33411 0.93998 +vn -0.06826 -0.3341 0.94006 +vn 0.19002 -0.77128 0.60747 +vn -0.19002 -0.77128 0.60747 +vn 0.40052 0.39896 0.82487 +vn -0.40052 0.39896 0.82487 +vn -0.10544 -0.74799 0.65528 +vn 0.10544 -0.74799 0.65528 +vn 0.04796 -0.33414 0.9413 +vn 0.06376 -0.31752 0.9461 +vn -0.06371 -0.31953 0.94543 +vn -0.04692 -0.33415 0.94135 +vn 0.0202 0.42354 0.90565 +vn -0.0202 0.42354 0.90565 +vn 0.02101 -0.33408 0.94231 +vn -0.02101 -0.33408 0.94231 +vn -0.05212 -0.6318 0.77338 +vn 0.05212 -0.6318 0.77338 +vn -0.39829 -0.6526 0.64458 +vn 0.39829 -0.6526 0.64458 +vn -0.01728 -0.63181 0.77493 +vn 0.01728 -0.63181 0.77493 +vn 0.07487 -0.748 0.65947 +vn -0.07487 -0.748 0.65947 +vn 0.26198 -0.7426 0.61637 +vn -0.26198 -0.7426 0.61637 +vn 0.34526 -0.6973 0.62815 +vn -0.34526 -0.6973 0.62815 +vn 0.04462 -0.748 0.6622 +vn -0.04462 -0.748 0.6622 +vn -0.5768 -0.32577 0.74912 +vn 0.5768 -0.32577 0.74912 +vn -0.16034 -0.77128 0.61597 +vn 0.16034 -0.77128 0.61597 +vn -0.59788 0.19898 0.7765 +vn 0.59788 0.19898 0.7765 +vn 0.0148 -0.748 0.66353 +vn -0.0148 -0.748 0.66353 +vn 0.4848 -0.52232 0.70153 +vn -0.4848 -0.52232 0.70153 +vn -0.44797 0.36752 0.81501 +vn 0.44797 0.36752 0.81501 +vn 0.35869 0.39896 0.8439 +vn -0.35869 0.39896 0.8439 +vn -0.6031 0.15076 0.78329 +vn 0.6031 0.15076 0.78329 +vn -0.5974 -0.20281 0.77587 +vn 0.5974 -0.20281 0.77587 +vn 0.13067 -0.77128 0.62293 +vn -0.13067 -0.77128 0.62293 +vn 0.54906 0.25941 0.79451 +vn -0.54906 0.25941 0.79451 +vn -0.42249 -0.59498 0.68374 +vn 0.42249 -0.59498 0.68374 +vn -0.23108 -0.7426 0.62861 +vn 0.23108 -0.7426 0.62861 +vn 0.49764 0.3221 0.80536 +vn -0.49764 0.3221 0.80536 +vn -0.60727 0.09577 0.7887 +vn 0.60727 0.09577 0.7887 +vn -0.60864 -0.0685 0.79048 +vn 0.60864 -0.0685 0.79048 +vn -0.60973 0.03363 0.79189 +vn 0.60973 0.03363 0.79189 +vn 0.10112 -0.77129 0.6284 +vn -0.10112 -0.77129 0.6284 +vn -0.36497 -0.6526 0.66401 +vn 0.36497 -0.6526 0.66401 +vn 0.51251 -0.4328 0.74163 +vn -0.51251 -0.4328 0.74163 +vn 0.31308 -0.6973 0.64479 +vn -0.31308 -0.6973 0.64479 +vn 0.0718 -0.77129 0.63242 +vn -0.0718 -0.77129 0.63242 +vn -0.31638 0.39896 0.86066 +vn 0.31638 0.39896 0.86066 +vn -0.19994 -0.74261 0.63919 +vn 0.19994 -0.74261 0.63919 +vn 0.40622 0.36752 0.83661 +vn -0.40622 0.36752 0.83661 +vn -0.04279 -0.77129 0.63504 +vn 0.04279 -0.77129 0.63504 +vn 0.01419 -0.7713 0.63632 +vn -0.01419 -0.7713 0.63632 +vn -0.44825 -0.52232 0.72543 +vn 0.44825 -0.52232 0.72543 +vn 0.5375 -0.32577 0.77779 +vn -0.5375 -0.32577 0.77779 +vn 0.55715 0.19898 0.80622 +vn -0.55715 0.19898 0.80622 +vn -0.38715 -0.59498 0.70435 +vn 0.38715 -0.59498 0.70435 +vn -0.45601 0.32211 0.82964 +vn 0.45601 0.32211 0.82964 +vn 0.28038 -0.6973 0.65967 +vn -0.28038 -0.6973 0.65967 +vn 0.27375 0.39896 0.87515 +vn -0.27375 0.39896 0.87515 +vn -0.16871 -0.74261 0.64813 +vn 0.16871 -0.74261 0.64813 +vn -0.56202 0.15076 0.81327 +vn 0.56202 0.15076 0.81327 +vn -0.33096 -0.6526 0.6816 +vn 0.33096 -0.6526 0.6816 +vn 0.50766 0.25941 0.82158 +vn -0.50766 0.25941 0.82158 +vn 0.5567 -0.20282 0.80557 +vn -0.5567 -0.20282 0.80557 +vn 0.5659 0.09577 0.81889 +vn -0.5659 0.09577 0.81889 +vn -0.47387 -0.4328 0.7669 +vn 0.47387 -0.4328 0.7669 +vn 0.3638 0.36753 0.85591 +vn -0.3638 0.36753 0.85591 +vn 0.56718 -0.0685 0.82074 +vn -0.56718 -0.0685 0.82074 +vn 0.5682 0.03363 0.82221 +vn -0.5682 0.03363 0.82221 +vn -0.13749 -0.74261 0.65546 +vn 0.13749 -0.74261 0.65546 +vn -0.23099 0.39897 0.8874 +vn 0.23099 0.39897 0.8874 +vn 0.24731 -0.6973 0.67276 +vn -0.24731 -0.6973 0.67276 +vn 0.41075 -0.52232 0.7473 +vn -0.41075 -0.52232 0.7473 +vn -0.1064 -0.74261 0.66121 +vn 0.1064 -0.74261 0.66121 +vn -0.49698 -0.32577 0.80429 +vn 0.49698 -0.32577 0.80429 +vn -0.29639 -0.6526 0.69732 +vn 0.29639 -0.6526 0.69732 +vn -0.35106 -0.59498 0.72301 +vn 0.35106 -0.59498 0.72301 +vn 0.41351 0.32211 0.85162 +vn -0.41351 0.32211 0.85162 +vn 0.51514 0.19898 0.83369 +vn -0.51514 0.19898 0.83369 +vn 0.18825 0.39897 0.89743 +vn -0.18825 0.39897 0.89743 +vn -0.07555 -0.74262 0.66544 +vn 0.07555 -0.74262 0.66544 +vn -0.32088 0.36753 0.8729 +vn 0.32088 0.36753 0.8729 +vn -0.46519 0.25941 0.84635 +vn 0.46519 0.25941 0.84635 +vn -0.04503 -0.74262 0.6682 +vn 0.04503 -0.74262 0.6682 +vn -0.51965 0.15076 0.84097 +vn 0.51965 0.15076 0.84097 +vn 0.14568 0.39897 0.90532 +vn -0.14568 0.39897 0.90532 +vn -0.51473 -0.20282 0.83302 +vn 0.51473 -0.20282 0.83302 +vn 0.01493 -0.74262 0.66954 +vn -0.01493 -0.74262 0.66954 +vn 0.21399 -0.6973 0.68409 +vn -0.21399 -0.6973 0.68409 +vn 0.43423 -0.4328 0.79002 +vn -0.43423 -0.4328 0.79002 +vn -0.52324 0.09577 0.84679 +vn 0.52324 0.09577 0.84679 +vn -0.10344 0.39897 0.91111 +vn 0.10344 0.39897 0.91111 +vn -0.52442 -0.0685 0.8487 +vn 0.52442 -0.0685 0.8487 +vn -0.26143 -0.65261 0.71117 +vn 0.26143 -0.65261 0.71117 +vn -0.52536 0.03363 0.85022 +vn 0.52536 0.03363 0.85022 +vn -0.37247 -0.52232 0.7671 +vn 0.37247 -0.52232 0.7671 +vn 0.27765 0.36753 0.8876 +vn -0.27765 0.36753 0.8876 +vn 0.3144 -0.59498 0.73969 +vn -0.3144 -0.59498 0.73969 +vn 0.06165 0.39898 0.91489 +vn -0.06165 0.39898 0.91489 +vn 0.37032 0.32211 0.87127 +vn -0.37032 0.32211 0.87127 +vn 0.02044 0.39898 0.91673 +vn -0.02044 0.39898 0.91673 +vn 0.18056 -0.69731 0.69366 +vn -0.18056 -0.69731 0.69366 +vn 0.45541 -0.32577 0.82854 +vn -0.45541 -0.32577 0.82854 +vn 0.47205 0.19899 0.85882 +vn -0.47205 0.19899 0.85882 +vn -0.42184 0.25941 0.86877 +vn 0.42184 0.25941 0.86877 +vn -0.23427 0.36753 0.90002 +vn 0.23427 0.36753 0.90002 +vn -0.2262 -0.65261 0.72314 +vn 0.2262 -0.65261 0.72314 +vn 0.14715 -0.69731 0.7015 +vn -0.14715 -0.69731 0.7015 +vn 0.47618 0.15076 0.86633 +vn -0.47618 0.15076 0.86633 +vn -0.39376 -0.4328 0.81095 +vn 0.39376 -0.4328 0.81095 +vn 0.47167 -0.20282 0.85813 +vn -0.47167 -0.20282 0.85813 +vn -0.27731 -0.59499 0.75438 +vn 0.27731 -0.59499 0.75438 +vn -0.32664 0.32211 0.88857 +vn 0.32664 0.32211 0.88857 +vn 0.33357 -0.52232 0.7848 +vn -0.33357 -0.52232 0.7848 +vn 0.47947 0.09577 0.87232 +vn -0.47947 0.09577 0.87232 +vn 0.11387 -0.69731 0.70766 +vn -0.11387 -0.69731 0.70766 +vn 0.19092 0.36754 0.9102 +vn -0.19092 0.36754 0.9102 +vn 0.48055 -0.0685 0.87429 +vn -0.48055 -0.0685 0.87429 +vn 0.48141 0.03363 0.87585 +vn -0.48141 0.03363 0.87585 +vn -0.19087 -0.65261 0.73326 +vn 0.19087 -0.65261 0.73326 +vn 0.08085 -0.69732 0.71219 +vn -0.08085 -0.69732 0.71219 +vn -0.41296 -0.32577 0.85049 +vn 0.41296 -0.32577 0.85049 +vn 0.37778 0.25941 0.88881 +vn -0.37778 0.25941 0.88881 +vn -0.42805 0.19899 0.88157 +vn 0.42805 0.19899 0.88157 +vn 0.14775 0.36754 0.9182 +vn -0.14775 0.36754 0.9182 +vn 0.04819 -0.69732 0.71514 +vn -0.04819 -0.69732 0.71514 +vn -0.23995 -0.59499 0.76708 +vn 0.23995 -0.59499 0.76708 +vn 0.28263 0.32211 0.90353 +vn -0.28263 0.32211 0.90353 +vn 0.01598 -0.69732 0.71658 +vn -0.01598 -0.69732 0.71658 +vn -0.15555 -0.65262 0.74155 +vn 0.15555 -0.65262 0.74155 +vn 0.35264 -0.4328 0.82965 +vn -0.35264 -0.4328 0.82965 +vn -0.10491 0.36754 0.92407 +vn 0.10491 0.36754 0.92407 +vn -0.29422 -0.52233 0.80038 +vn 0.29422 -0.52233 0.80038 +vn -0.4318 0.15076 0.88928 +vn 0.4318 0.15076 0.88928 +vn -0.42771 -0.20282 0.88087 +vn 0.42771 -0.20282 0.88087 +vn 0.06253 0.36754 0.9279 +vn -0.06253 0.36754 0.9279 +vn 0.02074 0.36755 0.92977 +vn -0.02074 0.36755 0.92977 +vn -0.43478 0.09577 0.89543 +vn 0.43478 0.09577 0.89543 +vn -0.12038 -0.65262 0.74806 +vn 0.12038 -0.65262 0.74806 +vn -0.20246 -0.59499 0.77781 +vn 0.20246 -0.59499 0.77781 +vn -0.43576 -0.0685 0.89745 +vn 0.43576 -0.0685 0.89745 +vn -0.23848 0.32211 0.91617 +vn 0.23848 0.32211 0.91617 +vn -0.33322 0.25941 0.90646 +vn 0.33322 0.25941 0.90646 +vn -0.43654 0.03363 0.89906 +vn 0.43654 0.03363 0.89906 +vn 0.36983 -0.32578 0.87011 +vn -0.36983 -0.32578 0.87011 +vn -0.08547 -0.65262 0.75285 +vn 0.08547 -0.65262 0.75285 +vn 0.38335 0.19899 0.90191 +vn -0.38335 0.19899 0.90191 +vn 0.25458 -0.52233 0.81386 +vn -0.25458 -0.52233 0.81386 +vn -0.31104 -0.43281 0.84613 +vn 0.31104 -0.43281 0.84613 +vn -0.05094 -0.65262 0.75597 +vn 0.05094 -0.65262 0.75597 +vn 0.165 -0.595 0.78661 +vn -0.165 -0.595 0.78661 +vn -0.01689 -0.65263 0.75749 +vn 0.01689 -0.65263 0.75749 +vn 0.19435 0.32212 0.92654 +vn -0.19435 0.32212 0.92654 +vn 0.3867 0.15076 0.9098 +vn -0.3867 0.15076 0.9098 +vn 0.38304 -0.20282 0.90119 +vn -0.38304 -0.20282 0.90119 +vn 0.28832 0.25941 0.92172 +vn -0.28832 0.25941 0.92172 +vn 0.38937 0.09577 0.91609 +vn -0.38937 0.09577 0.91609 +vn -0.12769 -0.595 0.79352 +vn 0.12769 -0.595 0.79352 +vn -0.21481 -0.52233 0.82524 +vn 0.21481 -0.52233 0.82524 +vn 0.1504 0.32212 0.93468 +vn -0.1504 0.32212 0.93468 +vn 0.39025 -0.0685 0.91816 +vn -0.39025 -0.0685 0.91816 +vn -0.3262 -0.32578 0.88739 +vn 0.3262 -0.32578 0.88739 +vn 0.39095 0.03363 0.9198 +vn -0.39095 0.03363 0.9198 +vn -0.33813 0.19899 0.91982 +vn 0.33813 0.19899 0.91982 +vn 0.26913 -0.43281 0.86037 +vn -0.26913 -0.43281 0.86037 +vn -0.09066 -0.595 0.79859 +vn 0.09066 -0.595 0.79859 +vn -0.10679 0.32212 0.94066 +vn 0.10679 0.32212 0.94066 +vn -0.24328 0.25941 0.93462 +vn 0.24328 0.25941 0.93462 +vn 0.17506 -0.52233 0.83458 +vn -0.17506 -0.52233 0.83458 +vn -0.05404 -0.59501 0.8019 +vn 0.05404 -0.59501 0.8019 +vn 0.06365 0.32212 0.94456 +vn -0.06365 0.32212 0.94456 +vn -0.34108 0.15076 0.92786 +vn 0.34108 0.15076 0.92786 +vn -0.33786 -0.20282 0.91909 +vn 0.33786 -0.20282 0.91909 +vn 0.01792 -0.59501 0.80352 +vn -0.01792 -0.59501 0.80352 +vn 0.02111 0.32213 0.94646 +vn -0.02111 0.32213 0.94646 +vn -0.22709 -0.43281 0.87241 +vn 0.22709 -0.43281 0.87241 +vn -0.34344 0.09577 0.93428 +vn 0.34344 0.09577 0.93428 +vn 0.28226 -0.32578 0.90233 +vn -0.28226 -0.32578 0.90233 +vn -0.13548 -0.52234 0.84191 +vn 0.13548 -0.52234 0.84191 +vn 0.29257 0.19899 0.93531 +vn -0.29257 0.19899 0.93531 +vn -0.34422 -0.0685 0.93639 +vn 0.34422 -0.0685 0.93639 +vn -0.34483 0.03363 0.93806 +vn 0.34483 0.03363 0.93806 +vn 0.19826 0.25942 0.9452 +vn -0.19826 0.25942 0.9452 +vn 0.09619 -0.52234 0.84729 +vn -0.09619 -0.52234 0.84729 +vn 0.29513 0.15076 0.94349 +vn -0.29513 0.15076 0.94349 +vn 0.18507 -0.43281 0.88228 +vn -0.18507 -0.43281 0.88228 +vn 0.29234 -0.20282 0.93456 +vn -0.29234 -0.20282 0.93456 +vn 0.15343 0.25942 0.9535 +vn -0.15343 0.25942 0.9535 +vn -0.05733 -0.52234 0.85081 +vn 0.05733 -0.52234 0.85081 +vn -0.23816 -0.32578 0.91496 +vn 0.23816 -0.32578 0.91496 +vn -0.24687 0.19899 0.9484 +vn 0.24687 0.19899 0.9484 +vn 0.01901 -0.52235 0.85252 +vn -0.01901 -0.52235 0.85252 +vn 0.29717 0.09577 0.95001 +vn -0.29717 0.09577 0.95001 +vn 0.29784 -0.0685 0.95215 +vn -0.29784 -0.0685 0.95215 +vn -0.14322 -0.43282 0.89003 +vn 0.14322 -0.43282 0.89003 +vn -0.10894 0.25942 0.9596 +vn 0.10894 0.25942 0.9596 +vn 0.29837 0.03363 0.95386 +vn -0.29837 0.03363 0.95386 +vn -0.24903 0.15076 0.95669 +vn 0.24903 0.15076 0.95669 +vn -0.06493 0.25942 0.96358 +vn 0.06493 0.25942 0.96358 +vn -0.24667 -0.20282 0.94764 +vn 0.24667 -0.20282 0.94764 +vn 0.19409 -0.32578 0.92531 +vn -0.19409 -0.32578 0.92531 +vn 0.10169 -0.43282 0.89573 +vn -0.10169 -0.43282 0.89573 +vn 0.20119 0.19899 0.95913 +vn -0.20119 0.19899 0.95913 +vn 0.02153 0.25942 0.96552 +vn -0.02153 0.25942 0.96552 +vn -0.25075 0.09577 0.9633 +vn 0.25075 0.09577 0.9633 +vn -0.06061 -0.43282 0.89944 +vn 0.06061 -0.43282 0.89944 +vn -0.25131 -0.0685 0.96548 +vn 0.25131 -0.0685 0.96548 +vn 0.0201 -0.43283 0.90125 +vn -0.0201 -0.43283 0.90125 +vn -0.25176 0.03363 0.9672 +vn 0.25176 0.03363 0.9672 +vn -0.15021 -0.32579 0.93344 +vn 0.15021 -0.32579 0.93344 +vn -0.20295 0.15076 0.96751 +vn 0.20295 0.15076 0.96751 +vn 0.1557 0.19899 0.96755 +vn -0.1557 0.19899 0.96755 +vn 0.20103 -0.20282 0.95836 +vn -0.20103 -0.20282 0.95836 +vn 0.10665 -0.32579 0.93941 +vn -0.10665 -0.32579 0.93941 +vn 0.20435 0.09577 0.9742 +vn -0.20435 0.09577 0.9742 +vn 0.11055 0.199 0.97375 +vn -0.11055 0.199 0.97375 +vn 0.20481 -0.0685 0.9764 +vn -0.20481 -0.0685 0.9764 +vn -0.15706 0.15077 0.97601 +vn 0.15706 0.15077 0.97601 +vn 0.20518 0.03363 0.97815 +vn -0.20518 0.03363 0.97815 +vn -0.15557 -0.20283 0.96678 +vn 0.15557 -0.20283 0.96678 +vn -0.06357 -0.32579 0.9433 +vn 0.06357 -0.32579 0.9433 +vn -0.06589 0.199 0.97778 +vn 0.06589 0.199 0.97778 +vn 0.02108 -0.32579 0.94521 +vn -0.02108 -0.32579 0.94521 +vn 0.02185 0.199 0.97976 +vn -0.02185 0.199 0.97976 +vn -0.15814 0.09577 0.98276 +vn 0.15814 0.09577 0.98276 +vn 0.11152 0.15077 0.98226 +vn -0.11152 0.15077 0.98226 +vn 0.11046 -0.20283 0.97296 +vn -0.11046 -0.20283 0.97296 +vn -0.1585 -0.0685 0.98498 +vn 0.1585 -0.0685 0.98498 +vn -0.15878 0.03363 0.98674 +vn 0.15878 0.03363 0.98674 +vn -0.06647 0.15077 0.98633 +vn 0.06647 0.15077 0.98633 +vn 0.11229 0.09577 0.98905 +vn -0.11229 0.09577 0.98905 +vn -0.06584 -0.20283 0.977 +vn 0.06584 -0.20283 0.977 +vn 0.02204 0.15077 0.98832 +vn -0.02204 0.15077 0.98832 +vn 0.11254 -0.0685 0.99128 +vn -0.11254 -0.0685 0.99128 +vn 0.02183 -0.20283 0.97897 +vn -0.02183 -0.20283 0.97897 +vn 0.11274 0.03363 0.99306 +vn -0.11274 0.03363 0.99306 +vn -0.06693 0.09577 0.99315 +vn 0.06693 0.09577 0.99315 +vn -0.06708 -0.0685 0.99539 +vn 0.06708 -0.0685 0.99539 +vn 0.02219 0.09578 0.99516 +vn -0.02219 0.09578 0.99516 +vn -0.0672 0.03363 0.99717 +vn 0.0672 0.03363 0.99717 +vn 0.02224 -0.0685 0.9974 +vn -0.02224 -0.0685 0.9974 +vn 0.02228 0.03363 0.99919 +vn -0.02228 0.03363 0.99919 +f 1//1 2//1 3//1 +f 1//2 4//2 5//2 +f 1//2 3//2 4//2 +f 1//3 6//3 7//3 +f 1//3 7//3 2//3 +f 1//4 5//4 6//4 +f 3//1 2//1 8//1 +f 6//5 9//5 10//5 +f 6//6 10//6 11//6 +f 6//6 11//6 7//6 +f 6//4 5//4 9//4 +f 3//7 12//7 4//7 +f 3//7 13//7 12//7 +f 3//8 8//8 13//8 +f 5//9 14//9 15//9 +f 5//9 4//9 14//9 +f 5//10 15//10 9//10 +f 9//11 16//11 17//11 +f 9//5 17//5 10//5 +f 9//10 15//10 16//10 +f 4//12 18//12 14//12 +f 4//12 12//12 18//12 +f 2//13 19//13 8//13 +f 2//14 7//14 20//14 +f 2//14 20//14 19//14 +f 8//13 19//13 21//13 +f 7//15 11//15 22//15 +f 7//15 22//15 20//15 +f 8//8 23//8 13//8 +f 8//16 21//16 23//16 +f 13//17 24//17 12//17 +f 13//17 25//17 24//17 +f 13//18 23//18 25//18 +f 10//19 17//19 26//19 +f 10//20 26//20 27//20 +f 10//20 27//20 11//20 +f 12//21 28//21 18//21 +f 12//21 24//21 28//21 +f 17//11 16//11 29//11 +f 17//22 29//22 30//22 +f 17//19 30//19 26//19 +f 15//23 31//23 32//23 +f 15//23 14//23 31//23 +f 15//24 32//24 16//24 +f 16//25 33//25 29//25 +f 16//24 32//24 33//24 +f 14//26 34//26 31//26 +f 14//26 18//26 34//26 +f 23//18 35//18 25//18 +f 23//27 36//27 35//27 +f 11//28 27//28 37//28 +f 11//28 37//28 22//28 +f 23//16 21//16 36//16 +f 26//29 38//29 39//29 +f 26//29 39//29 27//29 +f 26//30 30//30 38//30 +f 25//31 35//31 40//31 +f 25//32 41//32 24//32 +f 25//32 40//32 41//32 +f 18//33 42//33 34//33 +f 18//33 28//33 42//33 +f 29//25 33//25 43//25 +f 29//34 43//34 44//34 +f 29//22 44//22 30//22 +f 30//35 44//35 45//35 +f 30//30 45//30 38//30 +f 24//36 46//36 28//36 +f 24//36 41//36 46//36 +f 19//37 47//37 21//37 +f 19//38 20//38 48//38 +f 19//38 48//38 47//38 +f 21//37 47//37 49//37 +f 20//39 22//39 50//39 +f 20//39 50//39 48//39 +f 21//40 49//40 36//40 +f 35//27 36//27 51//27 +f 27//41 39//41 52//41 +f 27//41 52//41 37//41 +f 35//42 51//42 53//42 +f 35//31 53//31 40//31 +f 32//43 54//43 55//43 +f 32//43 31//43 54//43 +f 32//44 55//44 33//44 +f 33//45 56//45 43//45 +f 33//44 55//44 56//44 +f 31//46 57//46 54//46 +f 31//46 34//46 57//46 +f 36//47 58//47 51//47 +f 22//48 37//48 59//48 +f 22//48 59//48 50//48 +f 36//40 49//40 58//40 +f 44//35 60//35 45//35 +f 44//49 61//49 60//49 +f 44//34 43//34 61//34 +f 28//50 62//50 42//50 +f 28//50 46//50 62//50 +f 34//51 63//51 57//51 +f 34//51 42//51 63//51 +f 43//45 56//45 64//45 +f 43//52 64//52 61//52 +f 40//53 53//53 65//53 +f 40//54 66//54 41//54 +f 40//54 65//54 66//54 +f 38//55 67//55 68//55 +f 38//55 68//55 39//55 +f 38//56 45//56 67//56 +f 41//57 69//57 46//57 +f 41//57 66//57 69//57 +f 45//56 70//56 67//56 +f 45//58 60//58 70//58 +f 53//53 71//53 65//53 +f 53//59 72//59 71//59 +f 39//60 68//60 73//60 +f 39//60 73//60 52//60 +f 53//42 51//42 72//42 +f 51//47 58//47 74//47 +f 37//61 52//61 75//61 +f 37//61 75//61 59//61 +f 51//62 74//62 72//62 +f 55//63 76//63 77//63 +f 55//63 54//63 76//63 +f 55//64 77//64 56//64 +f 42//65 78//65 63//65 +f 42//65 62//65 78//65 +f 61//66 79//66 80//66 +f 61//49 80//49 60//49 +f 61//52 64//52 79//52 +f 60//58 81//58 70//58 +f 60//67 80//67 81//67 +f 46//68 82//68 62//68 +f 46//68 69//68 82//68 +f 56//69 83//69 64//69 +f 56//64 77//64 83//64 +f 54//70 84//70 76//70 +f 54//70 57//70 84//70 +f 47//71 85//71 49//71 +f 47//72 48//72 86//72 +f 47//72 86//72 85//72 +f 49//71 85//71 87//71 +f 48//73 50//73 88//73 +f 48//73 88//73 86//73 +f 49//74 87//74 58//74 +f 64//69 83//69 89//69 +f 64//75 89//75 79//75 +f 57//76 90//76 84//76 +f 57//76 63//76 90//76 +f 67//77 70//77 91//77 +f 67//78 91//78 92//78 +f 67//78 92//78 68//78 +f 65//79 93//79 66//79 +f 65//79 94//79 93//79 +f 65//80 71//80 94//80 +f 58//81 95//81 74//81 +f 50//82 59//82 96//82 +f 50//82 96//82 88//82 +f 58//74 87//74 95//74 +f 72//83 97//83 98//83 +f 72//59 98//59 71//59 +f 52//84 73//84 99//84 +f 52//84 99//84 75//84 +f 72//62 74//62 97//62 +f 70//85 81//85 100//85 +f 70//77 100//77 91//77 +f 66//86 101//86 69//86 +f 66//86 93//86 101//86 +f 62//87 102//87 78//87 +f 62//87 82//87 102//87 +f 80//66 79//66 103//66 +f 80//88 103//88 104//88 +f 80//67 104//67 81//67 +f 68//89 92//89 105//89 +f 68//89 105//89 73//89 +f 71//80 106//80 94//80 +f 71//90 98//90 106//90 +f 63//91 107//91 90//91 +f 63//91 78//91 107//91 +f 79//92 108//92 103//92 +f 79//75 89//75 108//75 +f 81//93 104//93 109//93 +f 81//85 109//85 100//85 +f 69//94 110//94 82//94 +f 69//94 101//94 110//94 +f 74//81 95//81 111//81 +f 59//95 75//95 112//95 +f 59//95 112//95 96//95 +f 74//96 111//96 97//96 +f 98//83 97//83 113//83 +f 73//97 105//97 114//97 +f 73//97 114//97 99//97 +f 98//90 115//90 106//90 +f 98//98 113//98 115//98 +f 78//99 116//99 107//99 +f 78//99 102//99 116//99 +f 103//92 108//92 117//92 +f 103//88 118//88 104//88 +f 103//100 117//100 118//100 +f 104//101 118//101 119//101 +f 104//93 119//93 109//93 +f 82//102 120//102 102//102 +f 82//102 110//102 120//102 +f 94//103 121//103 93//103 +f 94//103 122//103 121//103 +f 94//104 106//104 122//104 +f 91//105 100//105 123//105 +f 91//106 123//106 124//106 +f 91//106 124//106 92//106 +f 85//107 125//107 87//107 +f 85//108 86//108 126//108 +f 85//108 126//108 125//108 +f 97//109 127//109 113//109 +f 75//110 99//110 128//110 +f 75//110 128//110 112//110 +f 97//96 111//96 127//96 +f 93//111 129//111 101//111 +f 93//111 121//111 129//111 +f 100//112 109//112 130//112 +f 100//105 130//105 123//105 +f 87//107 125//107 131//107 +f 86//113 88//113 132//113 +f 86//113 132//113 126//113 +f 87//114 131//114 95//114 +f 106//104 133//104 122//104 +f 106//115 115//115 133//115 +f 92//116 124//116 134//116 +f 92//116 134//116 105//116 +f 95//117 135//117 111//117 +f 88//118 96//118 136//118 +f 88//118 136//118 132//118 +f 95//114 131//114 135//114 +f 101//119 137//119 110//119 +f 101//119 129//119 137//119 +f 109//120 119//120 138//120 +f 109//112 138//112 130//112 +f 77//121 139//121 140//121 +f 77//121 76//121 139//121 +f 77//122 140//122 83//122 +f 76//123 141//123 139//123 +f 76//123 84//123 141//123 +f 83//124 142//124 89//124 +f 83//122 140//122 142//122 +f 118//101 143//101 119//101 +f 118//100 117//100 144//100 +f 118//125 144//125 143//125 +f 102//126 145//126 116//126 +f 102//126 120//126 145//126 +f 96//127 112//127 146//127 +f 96//127 146//127 136//127 +f 111//117 135//117 147//117 +f 111//128 147//128 127//128 +f 113//109 127//109 148//109 +f 99//129 114//129 149//129 +f 99//129 149//129 128//129 +f 113//98 150//98 115//98 +f 113//130 148//130 150//130 +f 115//115 151//115 133//115 +f 115//131 150//131 151//131 +f 105//132 134//132 152//132 +f 105//132 152//132 114//132 +f 89//124 142//124 153//124 +f 89//133 153//133 108//133 +f 84//134 154//134 141//134 +f 84//134 90//134 154//134 +f 110//135 155//135 120//135 +f 110//135 137//135 155//135 +f 119//136 143//136 156//136 +f 119//120 156//120 138//120 +f 123//137 157//137 158//137 +f 123//137 158//137 124//137 +f 123//138 130//138 157//138 +f 122//139 133//139 159//139 +f 122//140 160//140 121//140 +f 122//140 159//140 160//140 +f 130//141 138//141 161//141 +f 130//138 161//138 157//138 +f 121//142 162//142 129//142 +f 121//142 160//142 162//142 +f 90//143 163//143 154//143 +f 90//143 107//143 163//143 +f 108//144 164//144 117//144 +f 108//133 153//133 164//133 +f 127//145 165//145 148//145 +f 112//146 128//146 166//146 +f 112//146 166//146 146//146 +f 127//128 147//128 165//128 +f 124//147 158//147 167//147 +f 124//147 167//147 134//147 +f 133//148 151//148 168//148 +f 133//139 168//139 159//139 +f 125//149 169//149 131//149 +f 125//150 126//150 170//150 +f 125//150 170//150 169//150 +f 138//141 171//141 161//141 +f 138//151 156//151 171//151 +f 129//152 172//152 137//152 +f 129//152 162//152 172//152 +f 131//149 169//149 173//149 +f 126//153 132//153 174//153 +f 126//153 174//153 170//153 +f 131//154 173//154 135//154 +f 120//155 175//155 145//155 +f 120//155 155//155 175//155 +f 143//125 144//125 176//125 +f 143//156 176//156 177//156 +f 143//136 177//136 156//136 +f 150//131 178//131 151//131 +f 150//157 179//157 178//157 +f 114//158 152//158 180//158 +f 114//158 180//158 149//158 +f 150//130 148//130 179//130 +f 132//159 136//159 181//159 +f 132//159 181//159 174//159 +f 135//154 173//154 182//154 +f 135//160 182//160 147//160 +f 107//161 183//161 163//161 +f 107//161 116//161 183//161 +f 117//144 164//144 184//144 +f 117//162 184//162 144//162 +f 134//163 167//163 185//163 +f 134//163 185//163 152//163 +f 151//164 178//164 186//164 +f 151//148 186//148 168//148 +f 148//145 165//145 187//145 +f 128//165 149//165 188//165 +f 128//165 188//165 166//165 +f 148//166 187//166 179//166 +f 156//167 177//167 189//167 +f 156//151 189//151 171//151 +f 137//168 190//168 155//168 +f 137//168 172//168 190//168 +f 136//169 146//169 191//169 +f 136//169 191//169 181//169 +f 147//160 182//160 192//160 +f 147//170 192//170 165//170 +f 159//171 168//171 193//171 +f 159//172 194//172 160//172 +f 159//172 193//172 194//172 +f 157//173 195//173 196//173 +f 157//173 196//173 158//173 +f 157//174 161//174 195//174 +f 144//162 184//162 197//162 +f 144//175 197//175 176//175 +f 116//176 198//176 183//176 +f 116//176 145//176 198//176 +f 160//177 199//177 162//177 +f 160//177 194//177 199//177 +f 161//174 200//174 195//174 +f 161//178 171//178 200//178 +f 168//171 201//171 193//171 +f 168//179 186//179 201//179 +f 158//180 196//180 202//180 +f 158//180 202//180 167//180 +f 177//167 203//167 189//167 +f 177//181 204//181 203//181 +f 177//156 176//156 204//156 +f 155//182 205//182 175//182 +f 155//182 190//182 205//182 +f 165//183 206//183 187//183 +f 146//184 166//184 207//184 +f 146//184 207//184 191//184 +f 165//170 192//170 206//170 +f 178//157 179//157 208//157 +f 152//185 185//185 209//185 +f 152//185 209//185 180//185 +f 178//186 208//186 210//186 +f 178//164 210//164 186//164 +f 162//187 211//187 172//187 +f 162//187 199//187 211//187 +f 171//178 212//178 200//178 +f 171//188 189//188 212//188 +f 179//189 213//189 208//189 +f 149//190 180//190 214//190 +f 149//190 214//190 188//190 +f 179//166 187//166 213//166 +f 140//191 215//191 216//191 +f 140//191 139//191 215//191 +f 140//192 216//192 142//192 +f 139//193 217//193 215//193 +f 139//193 141//193 217//193 +f 142//194 218//194 153//194 +f 142//192 216//192 218//192 +f 169//195 170//195 219//195 +f 169//195 219//195 220//195 +f 169//196 220//196 173//196 +f 170//197 174//197 221//197 +f 170//197 221//197 219//197 +f 173//196 220//196 222//196 +f 173//198 222//198 182//198 +f 186//199 210//199 223//199 +f 186//179 223//179 201//179 +f 167//200 202//200 224//200 +f 167//200 224//200 185//200 +f 172//201 225//201 190//201 +f 172//201 211//201 225//201 +f 189//188 226//188 212//188 +f 189//202 203//202 226//202 +f 153//194 218//194 227//194 +f 153//203 227//203 164//203 +f 141//204 228//204 217//204 +f 141//204 154//204 228//204 +f 174//205 181//205 229//205 +f 174//205 229//205 221//205 +f 182//198 222//198 230//198 +f 182//206 230//206 192//206 +f 187//183 206//183 231//183 +f 166//207 188//207 232//207 +f 166//207 232//207 207//207 +f 187//208 231//208 213//208 +f 145//209 233//209 198//209 +f 145//209 175//209 233//209 +f 176//210 234//210 204//210 +f 176//175 197//175 234//175 +f 154//211 235//211 228//211 +f 154//211 163//211 235//211 +f 164//212 236//212 184//212 +f 164//203 227//203 236//203 +f 181//213 191//213 237//213 +f 181//213 237//213 229//213 +f 192//206 230//206 238//206 +f 192//214 238//214 206//214 +f 195//215 200//215 239//215 +f 195//216 239//216 240//216 +f 195//216 240//216 196//216 +f 193//217 241//217 194//217 +f 193//217 242//217 241//217 +f 193//218 201//218 242//218 +f 180//219 209//219 243//219 +f 180//219 243//219 214//219 +f 208//189 213//189 244//189 +f 208//220 244//220 245//220 +f 208//186 245//186 210//186 +f 190//221 246//221 205//221 +f 190//221 225//221 246//221 +f 203//181 204//181 247//181 +f 203//202 248//202 226//202 +f 203//222 247//222 248//222 +f 200//223 212//223 249//223 +f 200//215 249//215 239//215 +f 194//224 250//224 199//224 +f 194//224 241//224 250//224 +f 210//199 251//199 223//199 +f 210//225 245//225 251//225 +f 185//226 224//226 252//226 +f 185//226 252//226 209//226 +f 196//227 240//227 253//227 +f 196//227 253//227 202//227 +f 201//218 254//218 242//218 +f 201//228 223//228 254//228 +f 163//229 255//229 235//229 +f 163//229 183//229 255//229 +f 184//212 236//212 256//212 +f 184//230 256//230 197//230 +f 188//231 214//231 257//231 +f 188//231 257//231 232//231 +f 213//208 231//208 258//208 +f 213//232 258//232 244//232 +f 191//233 207//233 259//233 +f 191//233 259//233 237//233 +f 206//214 238//214 260//214 +f 206//234 260//234 231//234 +f 212//235 226//235 261//235 +f 212//223 261//223 249//223 +f 199//236 262//236 211//236 +f 199//236 250//236 262//236 +f 204//237 263//237 247//237 +f 204//210 234//210 263//210 +f 175//238 264//238 233//238 +f 175//238 205//238 264//238 +f 202//239 253//239 265//239 +f 202//239 265//239 224//239 +f 223//228 266//228 254//228 +f 223//240 251//240 266//240 +f 226//241 248//241 267//241 +f 226//235 267//235 261//235 +f 211//242 268//242 225//242 +f 211//242 262//242 268//242 +f 220//243 269//243 222//243 +f 220//244 219//244 270//244 +f 220//244 270//244 269//244 +f 197//230 256//230 271//230 +f 197//245 271//245 234//245 +f 183//246 272//246 255//246 +f 183//246 198//246 272//246 +f 222//247 273//247 230//247 +f 222//243 269//243 273//243 +f 219//248 221//248 274//248 +f 219//248 274//248 270//248 +f 207//249 232//249 275//249 +f 207//249 275//249 259//249 +f 231//234 260//234 276//234 +f 231//250 276//250 258//250 +f 230//251 277//251 238//251 +f 230//247 273//247 277//247 +f 221//252 229//252 278//252 +f 221//252 278//252 274//252 +f 245//253 279//253 280//253 +f 245//225 280//225 251//225 +f 209//254 252//254 281//254 +f 209//254 281//254 243//254 +f 245//220 244//220 279//220 +f 214//255 243//255 282//255 +f 214//255 282//255 257//255 +f 244//232 258//232 283//232 +f 244//256 283//256 279//256 +f 248//257 284//257 285//257 +f 248//241 285//241 267//241 +f 248//222 247//222 284//222 +f 225//258 286//258 246//258 +f 225//258 268//258 286//258 +f 238//259 287//259 260//259 +f 238//251 277//251 287//251 +f 229//260 237//260 288//260 +f 229//260 288//260 278//260 +f 224//261 265//261 289//261 +f 224//261 289//261 252//261 +f 251//240 290//240 266//240 +f 251//262 280//262 290//262 +f 242//263 291//263 241//263 +f 242//263 292//263 291//263 +f 242//264 254//264 292//264 +f 239//265 249//265 293//265 +f 239//266 293//266 294//266 +f 239//266 294//266 240//266 +f 241//267 295//267 250//267 +f 241//267 291//267 295//267 +f 249//268 261//268 296//268 +f 249//265 296//265 293//265 +f 205//269 297//269 264//269 +f 205//269 246//269 297//269 +f 247//237 263//237 298//237 +f 247//270 298//270 284//270 +f 198//271 299//271 272//271 +f 198//271 233//271 299//271 +f 234//272 300//272 263//272 +f 234//245 271//245 300//245 +f 254//264 301//264 292//264 +f 254//273 266//273 301//273 +f 240//274 294//274 302//274 +f 240//274 302//274 253//274 +f 232//275 257//275 303//275 +f 232//275 303//275 275//275 +f 258//250 276//250 304//250 +f 258//276 304//276 283//276 +f 216//277 305//277 306//277 +f 216//277 215//277 305//277 +f 216//278 306//278 218//278 +f 260//279 307//279 276//279 +f 260//259 287//259 307//259 +f 237//280 259//280 308//280 +f 237//280 308//280 288//280 +f 250//281 309//281 262//281 +f 250//281 295//281 309//281 +f 261//282 267//282 310//282 +f 261//268 310//268 296//268 +f 215//283 311//283 305//283 +f 215//283 217//283 311//283 +f 218//284 312//284 227//284 +f 218//278 306//278 312//278 +f 227//284 312//284 313//284 +f 227//285 313//285 236//285 +f 217//286 314//286 311//286 +f 217//286 228//286 314//286 +f 266//273 315//273 301//273 +f 266//287 290//287 315//287 +f 253//288 302//288 316//288 +f 253//288 316//288 265//288 +f 262//289 317//289 268//289 +f 262//289 309//289 317//289 +f 267//290 285//290 318//290 +f 267//282 318//282 310//282 +f 279//253 319//253 280//253 +f 279//291 320//291 319//291 +f 243//292 281//292 321//292 +f 243//292 321//292 282//292 +f 279//256 283//256 320//256 +f 228//293 322//293 314//293 +f 228//293 235//293 322//293 +f 236//294 323//294 256//294 +f 236//285 313//285 323//285 +f 269//295 324//295 273//295 +f 269//296 270//296 325//296 +f 269//296 325//296 324//296 +f 252//297 289//297 326//297 +f 252//297 326//297 281//297 +f 280//262 327//262 290//262 +f 280//298 319//298 327//298 +f 276//299 328//299 304//299 +f 276//279 307//279 328//279 +f 259//300 275//300 329//300 +f 259//300 329//300 308//300 +f 273//295 324//295 330//295 +f 270//301 274//301 331//301 +f 270//301 331//301 325//301 +f 273//302 330//302 277//302 +f 263//303 332//303 298//303 +f 263//272 300//272 332//272 +f 233//304 333//304 299//304 +f 233//304 264//304 333//304 +f 257//305 282//305 334//305 +f 257//305 334//305 303//305 +f 283//276 304//276 335//276 +f 283//306 335//306 320//306 +f 274//307 278//307 336//307 +f 274//307 336//307 331//307 +f 277//302 330//302 337//302 +f 277//308 337//308 287//308 +f 235//309 338//309 322//309 +f 235//309 255//309 338//309 +f 256//294 323//294 339//294 +f 256//310 339//310 271//310 +f 285//257 284//257 340//257 +f 285//311 340//311 341//311 +f 285//290 341//290 318//290 +f 268//312 342//312 286//312 +f 268//312 317//312 342//312 +f 246//313 343//313 297//313 +f 246//313 286//313 343//313 +f 284//314 344//314 340//314 +f 284//270 298//270 344//270 +f 290//287 345//287 315//287 +f 290//315 327//315 345//315 +f 265//316 316//316 346//316 +f 265//316 346//316 289//316 +f 278//317 288//317 347//317 +f 278//317 347//317 336//317 +f 287//308 337//308 348//308 +f 287//318 348//318 307//318 +f 293//319 349//319 350//319 +f 293//319 350//319 294//319 +f 293//320 296//320 349//320 +f 292//321 301//321 351//321 +f 292//322 352//322 291//322 +f 292//322 351//322 352//322 +f 304//323 353//323 335//323 +f 304//299 328//299 353//299 +f 275//324 303//324 354//324 +f 275//324 354//324 329//324 +f 296//325 310//325 355//325 +f 296//320 355//320 349//320 +f 291//326 356//326 295//326 +f 291//326 352//326 356//326 +f 294//327 350//327 357//327 +f 294//327 357//327 302//327 +f 301//328 315//328 358//328 +f 301//321 358//321 351//321 +f 271//310 339//310 359//310 +f 271//329 359//329 300//329 +f 255//330 360//330 338//330 +f 255//330 272//330 360//330 +f 288//331 308//331 361//331 +f 288//331 361//331 347//331 +f 307//318 348//318 362//318 +f 307//332 362//332 328//332 +f 310//325 363//325 355//325 +f 310//333 318//333 363//333 +f 295//334 364//334 309//334 +f 295//334 356//334 364//334 +f 319//291 320//291 365//291 +f 281//335 326//335 366//335 +f 281//335 366//335 321//335 +f 319//298 367//298 327//298 +f 319//336 365//336 367//336 +f 264//337 368//337 333//337 +f 264//337 297//337 368//337 +f 298//303 332//303 369//303 +f 298//338 369//338 344//338 +f 282//339 321//339 370//339 +f 282//339 370//339 334//339 +f 320//306 335//306 371//306 +f 320//340 371//340 365//340 +f 302//341 357//341 372//341 +f 302//341 372//341 316//341 +f 315//342 345//342 373//342 +f 315//328 373//328 358//328 +f 327//315 374//315 345//315 +f 327//343 367//343 374//343 +f 289//344 346//344 375//344 +f 289//344 375//344 326//344 +f 309//345 376//345 317//345 +f 309//345 364//345 376//345 +f 318//346 341//346 377//346 +f 318//333 377//333 363//333 +f 308//347 329//347 378//347 +f 308//347 378//347 361//347 +f 328//332 362//332 379//332 +f 328//348 379//348 353//348 +f 335//349 380//349 371//349 +f 335//323 353//323 380//323 +f 303//350 334//350 381//350 +f 303//350 381//350 354//350 +f 272//351 382//351 360//351 +f 272//351 299//351 382//351 +f 300//352 383//352 332//352 +f 300//329 359//329 383//329 +f 340//314 344//314 384//314 +f 340//353 384//353 385//353 +f 340//311 385//311 341//311 +f 286//354 386//354 343//354 +f 286//354 342//354 386//354 +f 317//355 387//355 342//355 +f 317//355 376//355 387//355 +f 341//356 385//356 388//356 +f 341//346 388//346 377//346 +f 316//357 372//357 389//357 +f 316//357 389//357 346//357 +f 345//358 374//358 390//358 +f 345//342 390//342 373//342 +f 306//359 391//359 392//359 +f 306//359 305//359 391//359 +f 306//360 392//360 312//360 +f 329//361 354//361 393//361 +f 329//361 393//361 378//361 +f 353//348 379//348 394//348 +f 353//362 394//362 380//362 +f 305//363 395//363 391//363 +f 305//363 311//363 395//363 +f 312//364 396//364 313//364 +f 312//360 392//360 396//360 +f 297//365 397//365 368//365 +f 297//365 343//365 397//365 +f 344//366 398//366 384//366 +f 344//338 369//338 398//338 +f 313//364 396//364 399//364 +f 313//367 399//367 323//367 +f 311//368 400//368 395//368 +f 311//368 314//368 400//368 +f 321//369 366//369 401//369 +f 321//369 401//369 370//369 +f 365//340 371//340 402//340 +f 365//370 402//370 403//370 +f 365//336 403//336 367//336 +f 332//371 404//371 369//371 +f 332//352 383//352 404//352 +f 299//372 405//372 382//372 +f 299//372 333//372 405//372 +f 351//373 358//373 406//373 +f 351//374 407//374 352//374 +f 351//374 406//374 407//374 +f 349//375 408//375 409//375 +f 349//375 409//375 350//375 +f 349//376 355//376 408//376 +f 367//343 410//343 374//343 +f 326//377 375//377 411//377 +f 326//377 411//377 366//377 +f 367//378 403//378 410//378 +f 352//379 412//379 356//379 +f 352//379 407//379 412//379 +f 355//376 413//376 408//376 +f 355//380 363//380 413//380 +f 371//381 414//381 402//381 +f 371//349 380//349 414//349 +f 334//382 370//382 415//382 +f 334//382 415//382 381//382 +f 358//373 416//373 406//373 +f 358//383 373//383 416//383 +f 350//384 409//384 417//384 +f 350//384 417//384 357//384 +f 314//385 418//385 400//385 +f 314//385 322//385 418//385 +f 323//386 419//386 339//386 +f 323//367 399//367 419//367 +f 363//380 420//380 413//380 +f 363//387 377//387 420//387 +f 356//388 421//388 364//388 +f 356//388 412//388 421//388 +f 346//389 389//389 422//389 +f 346//389 422//389 375//389 +f 374//390 410//390 423//390 +f 374//358 423//358 390//358 +f 324//391 424//391 330//391 +f 324//392 325//392 425//392 +f 324//392 425//392 424//392 +f 354//393 381//393 426//393 +f 354//393 426//393 393//393 +f 380//362 394//362 427//362 +f 380//394 427//394 414//394 +f 325//395 331//395 428//395 +f 325//395 428//395 425//395 +f 330//396 429//396 337//396 +f 330//391 424//391 429//391 +f 373//397 390//397 430//397 +f 373//383 430//383 416//383 +f 357//398 417//398 431//398 +f 357//398 431//398 372//398 +f 322//399 432//399 418//399 +f 322//399 338//399 432//399 +f 339//386 419//386 433//386 +f 339//400 433//400 359//400 +f 364//401 434//401 376//401 +f 364//401 421//401 434//401 +f 377//402 388//402 435//402 +f 377//387 435//387 420//387 +f 337//403 436//403 348//403 +f 337//396 429//396 436//396 +f 331//404 336//404 437//404 +f 331//404 437//404 428//404 +f 342//405 438//405 386//405 +f 342//405 387//405 438//405 +f 385//406 439//406 440//406 +f 385//356 440//356 388//356 +f 385//353 384//353 439//353 +f 333//407 441//407 405//407 +f 333//407 368//407 441//407 +f 369//371 404//371 442//371 +f 369//408 442//408 398//408 +f 348//403 436//403 443//403 +f 348//409 443//409 362//409 +f 336//410 347//410 444//410 +f 336//410 444//410 437//410 +f 359//400 433//400 445//400 +f 359//411 445//411 383//411 +f 338//412 446//412 432//412 +f 338//412 360//412 446//412 +f 376//413 447//413 387//413 +f 376//413 434//413 447//413 +f 388//402 448//402 435//402 +f 388//414 440//414 448//414 +f 384//366 398//366 449//366 +f 384//415 449//415 439//415 +f 343//416 450//416 397//416 +f 343//416 386//416 450//416 +f 366//417 411//417 451//417 +f 366//417 451//417 401//417 +f 403//370 402//370 452//370 +f 403//418 452//418 453//418 +f 403//378 453//378 410//378 +f 402//419 454//419 452//419 +f 402//381 414//381 454//381 +f 370//420 401//420 455//420 +f 370//420 455//420 415//420 +f 390//397 456//397 430//397 +f 390//421 423//421 456//421 +f 372//422 431//422 457//422 +f 372//422 457//422 389//422 +f 362//423 458//423 379//423 +f 362//409 443//409 458//409 +f 347//424 361//424 459//424 +f 347//424 459//424 444//424 +f 375//425 422//425 460//425 +f 375//425 460//425 411//425 +f 410//426 453//426 461//426 +f 410//390 461//390 423//390 +f 414//427 462//427 454//427 +f 381//428 415//428 463//428 +f 381//428 463//428 426//428 +f 414//394 427//394 462//394 +f 360//429 464//429 446//429 +f 360//429 382//429 464//429 +f 383//430 465//430 404//430 +f 383//411 445//411 465//411 +f 408//431 413//431 466//431 +f 408//432 466//432 467//432 +f 408//432 467//432 409//432 +f 406//433 468//433 407//433 +f 406//433 469//433 468//433 +f 406//434 416//434 469//434 +f 361//435 378//435 470//435 +f 361//435 470//435 459//435 +f 379//436 471//436 394//436 +f 379//423 458//423 471//423 +f 413//437 420//437 472//437 +f 413//431 472//431 466//431 +f 407//438 473//438 412//438 +f 407//438 468//438 473//438 +f 409//439 467//439 474//439 +f 409//439 474//439 417//439 +f 416//434 475//434 469//434 +f 416//440 430//440 475//440 +f 368//441 476//441 441//441 +f 368//441 397//441 476//441 +f 398//442 477//442 449//442 +f 398//408 442//408 477//408 +f 423//443 461//443 478//443 +f 423//421 478//421 456//421 +f 389//444 457//444 479//444 +f 389//444 479//444 422//444 +f 420//445 435//445 480//445 +f 420//437 480//437 472//437 +f 412//446 481//446 421//446 +f 412//446 473//446 481//446 +f 417//447 474//447 482//447 +f 417//447 482//447 431//447 +f 430//440 483//440 475//440 +f 430//448 456//448 483//448 +f 387//449 484//449 438//449 +f 387//449 447//449 484//449 +f 440//406 439//406 485//406 +f 440//414 486//414 448//414 +f 440//450 485//450 486//450 +f 452//418 487//418 453//418 +f 452//451 488//451 487//451 +f 452//419 454//419 488//419 +f 401//452 451//452 489//452 +f 401//452 489//452 455//452 +f 435//453 448//453 490//453 +f 435//445 490//445 480//445 +f 421//454 491//454 434//454 +f 421//454 481//454 491//454 +f 394//455 492//455 427//455 +f 394//436 471//436 492//436 +f 378//456 393//456 493//456 +f 378//456 493//456 470//456 +f 404//457 494//457 442//457 +f 404//430 465//430 494//430 +f 382//458 495//458 464//458 +f 382//458 405//458 495//458 +f 454//427 462//427 496//427 +f 415//459 455//459 497//459 +f 415//459 497//459 463//459 +f 454//460 496//460 488//460 +f 386//461 498//461 450//461 +f 386//461 438//461 498//461 +f 439//462 499//462 485//462 +f 439//415 449//415 499//415 +f 411//463 460//463 500//463 +f 411//463 500//463 451//463 +f 453//464 487//464 501//464 +f 453//426 501//426 461//426 +f 448//453 502//453 490//453 +f 448//465 486//465 502//465 +f 434//466 503//466 447//466 +f 434//466 491//466 503//466 +f 431//467 482//467 504//467 +f 431//467 504//467 457//467 +f 456//448 505//448 483//448 +f 456//468 478//468 505//468 +f 424//469 506//469 429//469 +f 424//470 425//470 507//470 +f 424//470 507//470 506//470 +f 461//443 508//443 478//443 +f 461//471 501//471 508//471 +f 422//472 479//472 509//472 +f 422//472 509//472 460//472 +f 429//469 506//469 510//469 +f 429//473 510//473 436//473 +f 425//474 428//474 511//474 +f 425//474 511//474 507//474 +f 436//475 512//475 443//475 +f 436//473 510//473 512//473 +f 428//476 437//476 513//476 +f 428//476 513//476 511//476 +f 449//442 477//442 514//442 +f 449//477 514//477 499//477 +f 397//478 515//478 476//478 +f 397//478 450//478 515//478 +f 427//455 492//455 516//455 +f 427//479 516//479 462//479 +f 393//480 426//480 517//480 +f 393//480 517//480 493//480 +f 405//481 518//481 495//481 +f 405//481 441//481 518//481 +f 442//457 494//457 519//457 +f 442//482 519//482 477//482 +f 437//483 444//483 520//483 +f 437//483 520//483 513//483 +f 443//484 521//484 458//484 +f 443//475 512//475 521//475 +f 455//485 489//485 522//485 +f 455//485 522//485 497//485 +f 488//460 496//460 523//460 +f 488//486 523//486 524//486 +f 488//451 524//451 487//451 +f 469//487 525//487 468//487 +f 469//487 526//487 525//487 +f 469//488 475//488 526//488 +f 466//489 472//489 527//489 +f 466//490 527//490 528//490 +f 466//490 528//490 467//490 +f 457//491 504//491 529//491 +f 457//491 529//491 479//491 +f 478//468 530//468 505//468 +f 478//492 508//492 530//492 +f 487//464 531//464 501//464 +f 487//493 524//493 531//493 +f 451//494 500//494 532//494 +f 451//494 532//494 489//494 +f 458//495 533//495 471//495 +f 458//484 521//484 533//484 +f 444//496 459//496 534//496 +f 444//496 534//496 520//496 +f 468//497 535//497 473//497 +f 468//497 525//497 535//497 +f 472//498 480//498 536//498 +f 472//489 536//489 527//489 +f 475//488 537//488 526//488 +f 475//499 483//499 537//499 +f 467//500 528//500 538//500 +f 467//500 538//500 474//500 +f 473//501 539//501 481//501 +f 473//501 535//501 539//501 +f 480//502 490//502 540//502 +f 480//498 540//498 536//498 +f 438//503 541//503 498//503 +f 438//503 484//503 541//503 +f 485//462 499//462 542//462 +f 485//450 543//450 486//450 +f 485//504 542//504 543//504 +f 462//505 544//505 496//505 +f 462//479 516//479 544//479 +f 426//506 463//506 545//506 +f 426//506 545//506 517//506 +f 460//507 509//507 546//507 +f 460//507 546//507 500//507 +f 501//508 531//508 547//508 +f 501//471 547//471 508//471 +f 486//509 543//509 548//509 +f 486//465 548//465 502//465 +f 447//510 549//510 484//510 +f 447//510 503//510 549//510 +f 471//495 533//495 550//495 +f 471//511 550//511 492//511 +f 459//512 470//512 551//512 +f 459//512 551//512 534//512 +f 483//499 552//499 537//499 +f 483//513 505//513 552//513 +f 474//514 538//514 553//514 +f 474//514 553//514 482//514 +f 481//515 554//515 491//515 +f 481//515 539//515 554//515 +f 490//516 502//516 555//516 +f 490//502 555//502 540//502 +f 441//517 556//517 518//517 +f 441//517 476//517 556//517 +f 477//518 557//518 514//518 +f 477//482 519//482 557//482 +f 450//519 558//519 515//519 +f 450//519 498//519 558//519 +f 499//520 559//520 542//520 +f 499//477 514//477 559//477 +f 479//521 529//521 560//521 +f 479//521 560//521 509//521 +f 508//492 561//492 530//492 +f 508//522 547//522 561//522 +f 506//523 562//523 510//523 +f 506//524 507//524 563//524 +f 506//524 563//524 562//524 +f 507//525 511//525 564//525 +f 507//525 564//525 563//525 +f 510//523 562//523 565//523 +f 510//526 565//526 512//526 +f 491//527 566//527 503//527 +f 491//527 554//527 566//527 +f 502//528 548//528 567//528 +f 502//516 567//516 555//516 +f 492//529 568//529 516//529 +f 492//511 550//511 568//511 +f 470//530 493//530 569//530 +f 470//530 569//530 551//530 +f 505//513 570//513 552//513 +f 505//531 530//531 570//531 +f 482//532 553//532 571//532 +f 482//532 571//532 504//532 +f 512//533 572//533 521//533 +f 512//526 565//526 572//526 +f 511//534 513//534 573//534 +f 511//534 573//534 564//534 +f 489//535 532//535 574//535 +f 489//535 574//535 522//535 +f 524//486 523//486 575//486 +f 524//536 575//536 576//536 +f 524//493 576//493 531//493 +f 463//537 497//537 577//537 +f 463//537 577//537 545//537 +f 496//538 578//538 523//538 +f 496//505 544//505 578//505 +f 513//539 520//539 579//539 +f 513//539 579//539 573//539 +f 521//533 572//533 580//533 +f 521//540 580//540 533//540 +f 562//541 563//541 581//541 +f 562//542 581//542 582//542 +f 562//543 582//543 565//543 +f 563//544 564//544 583//544 +f 563//545 583//545 581//545 +f 565//546 582//546 584//546 +f 565//546 584//546 585//546 +f 565//547 585//547 572//547 +f 531//508 586//508 547//508 +f 531//548 576//548 586//548 +f 500//549 546//549 587//549 +f 500//549 587//549 532//549 +f 392//550 588//550 589//550 +f 392//550 391//550 588//550 +f 392//551 589//551 396//551 +f 582//552 590//552 584//552 +f 582//552 581//552 590//552 +f 564//553 573//553 591//553 +f 564//554 591//554 592//554 +f 564//554 592//554 583//554 +f 572//555 585//555 593//555 +f 572//555 593//555 594//555 +f 572//556 594//556 580//556 +f 391//557 595//557 588//557 +f 391//557 395//557 595//557 +f 396//558 596//558 399//558 +f 396//559 589//559 596//559 +f 584//552 597//552 585//552 +f 584//552 590//552 597//552 +f 581//552 583//552 590//552 +f 585//552 597//552 593//552 +f 583//552 592//552 590//552 +f 533//560 598//560 550//560 +f 533//540 580//540 598//540 +f 520//561 534//561 599//561 +f 520//561 599//561 579//561 +f 514//518 557//518 600//518 +f 514//562 600//562 559//562 +f 476//563 601//563 556//563 +f 476//563 515//563 601//563 +f 493//564 517//564 602//564 +f 493//564 602//564 569//564 +f 516//565 603//565 544//565 +f 516//529 568//529 603//529 +f 399//566 596//566 604//566 +f 399//567 604//567 419//567 +f 395//568 605//568 595//568 +f 395//568 400//568 605//568 +f 593//552 597//552 594//552 +f 592//552 591//552 590//552 +f 530//531 606//531 570//531 +f 530//569 561//569 606//569 +f 504//570 571//570 607//570 +f 504//570 607//570 529//570 +f 573//571 579//571 608//571 +f 573//572 608//572 609//572 +f 573//572 609//572 591//572 +f 580//573 594//573 610//573 +f 580//573 610//573 611//573 +f 580//574 611//574 598//574 +f 594//552 597//552 610//552 +f 591//552 609//552 590//552 +f 543//504 542//504 612//504 +f 543//575 612//575 613//575 +f 543//509 613//509 548//509 +f 484//576 614//576 541//576 +f 484//576 549//576 614//576 +f 509//577 560//577 615//577 +f 509//577 615//577 546//577 +f 547//578 586//578 616//578 +f 547//522 616//522 561//522 +f 400//579 617//579 605//579 +f 400//579 418//579 617//579 +f 419//580 618//580 433//580 +f 419//567 604//567 618//567 +f 610//552 597//552 611//552 +f 609//552 608//552 590//552 +f 527//581 619//581 620//581 +f 527//581 620//581 528//581 +f 527//582 536//582 619//582 +f 526//583 537//583 621//583 +f 526//584 622//584 525//584 +f 526//584 621//584 622//584 +f 536//585 540//585 623//585 +f 536//582 623//582 619//582 +f 525//586 624//586 535//586 +f 525//586 622//586 624//586 +f 528//587 620//587 625//587 +f 528//587 625//587 538//587 +f 537//588 552//588 626//588 +f 537//583 626//583 621//583 +f 534//589 551//589 627//589 +f 534//589 627//589 599//589 +f 550//560 598//560 628//560 +f 550//590 628//590 568//590 +f 503//591 629//591 549//591 +f 503//591 566//591 629//591 +f 548//592 613//592 630//592 +f 548//528 630//528 567//528 +f 579//593 599//593 631//593 +f 579//594 631//594 632//594 +f 579//594 632//594 608//594 +f 598//595 611//595 633//595 +f 598//596 633//596 628//596 +f 498//597 634//597 558//597 +f 498//597 541//597 634//597 +f 542//520 559//520 635//520 +f 542//598 635//598 612//598 +f 540//585 636//585 623//585 +f 540//599 555//599 636//599 +f 535//600 637//600 539//600 +f 535//600 624//600 637//600 +f 611//552 597//552 633//552 +f 608//552 632//552 590//552 +f 589//601 588//601 638//601 +f 589//602 638//602 596//602 +f 418//603 639//603 617//603 +f 418//603 432//603 639//603 +f 433//580 618//580 640//580 +f 433//604 640//604 445//604 +f 633//605 641//605 628//605 +f 633//552 597//552 641//552 +f 632//552 631//552 590//552 +f 588//606 642//606 638//606 +f 588//607 595//607 642//607 +f 523//608 643//608 575//608 +f 523//538 578//538 643//538 +f 497//609 522//609 644//609 +f 497//609 644//609 577//609 +f 596//602 645//602 604//602 +f 596//602 638//602 645//602 +f 538//610 625//610 646//610 +f 538//610 646//610 553//610 +f 552//611 570//611 647//611 +f 552//588 647//588 626//588 +f 604//612 645//612 618//612 +f 595//613 648//613 642//613 +f 595//613 605//613 648//613 +f 544//614 649//614 578//614 +f 544//565 603//565 649//565 +f 517//615 545//615 650//615 +f 517//615 650//615 602//615 +f 555//616 567//616 651//616 +f 555//599 651//599 636//599 +f 539//617 652//617 554//617 +f 539//617 637//617 652//617 +f 599//618 627//618 653//618 +f 599//619 653//619 631//619 +f 628//605 641//605 654//605 +f 628//620 654//620 655//620 +f 628//590 655//590 568//590 +f 532//621 587//621 656//621 +f 532//621 656//621 574//621 +f 576//536 575//536 657//536 +f 576//622 657//622 658//622 +f 576//548 658//548 586//548 +f 568//623 655//623 603//623 +f 551//624 569//624 659//624 +f 551//624 659//624 627//624 +f 561//569 660//569 606//569 +f 529//625 607//625 661//625 +f 529//625 661//625 560//625 +f 561//626 616//626 660//626 +f 605//627 662//627 648//627 +f 605//627 617//627 662//627 +f 618//628 663//628 640//628 +f 618//612 645//612 663//612 +f 445//604 640//604 664//604 +f 445//629 664//629 465//629 +f 432//630 665//630 639//630 +f 432//630 446//630 665//630 +f 641//552 597//552 654//552 +f 631//552 653//552 590//552 +f 653//631 627//631 666//631 +f 654//632 667//632 655//632 +f 654//552 597//552 667//552 +f 653//552 666//552 590//552 +f 515//633 668//633 601//633 +f 515//633 558//633 668//633 +f 559//634 669//634 635//634 +f 559//562 600//562 669//562 +f 567//616 670//616 651//616 +f 567//635 630//635 670//635 +f 554//636 671//636 566//636 +f 554//636 652//636 671//636 +f 586//578 672//578 616//578 +f 586//637 658//637 672//637 +f 546//638 615//638 673//638 +f 546//638 673//638 587//638 +f 553//639 646//639 674//639 +f 553//639 674//639 571//639 +f 570//640 606//640 675//640 +f 570//611 675//611 647//611 +f 617//641 676//641 662//641 +f 617//641 639//641 676//641 +f 640//628 663//628 677//628 +f 640//642 677//642 664//642 +f 638//643 678//643 679//643 +f 638//643 642//643 678//643 +f 638//644 679//644 645//644 +f 627//645 659//645 680//645 +f 627//631 680//631 666//631 +f 655//623 681//623 603//623 +f 655//632 667//632 682//632 +f 655//646 682//646 681//646 +f 645//647 683//647 663//647 +f 645//644 679//644 683//644 +f 642//648 684//648 678//648 +f 642//648 648//648 684//648 +f 446//649 685//649 665//649 +f 446//649 464//649 685//649 +f 465//650 686//650 494//650 +f 465//629 664//629 686//629 +f 667//552 597//552 682//552 +f 666//552 680//552 590//552 +f 569//651 602//651 687//651 +f 569//651 687//651 659//651 +f 603//652 681//652 649//652 +f 578//614 649//614 688//614 +f 578//653 688//653 643//653 +f 545//654 577//654 689//654 +f 545//654 689//654 650//654 +f 664//642 677//642 690//642 +f 664//655 690//655 686//655 +f 639//656 691//656 676//656 +f 639//656 665//656 691//656 +f 648//657 692//657 684//657 +f 648//657 662//657 692//657 +f 663//658 693//658 677//658 +f 663//647 683//647 693//647 +f 680//659 659//659 694//659 +f 682//660 695//660 681//660 +f 682//552 597//552 695//552 +f 680//552 694//552 590//552 +f 575//608 643//608 696//608 +f 575//661 696//661 657//661 +f 522//662 574//662 697//662 +f 522//662 697//662 644//662 +f 549//663 698//663 614//663 +f 549//663 629//663 698//663 +f 613//592 699//592 630//592 +f 613//664 700//664 699//664 +f 613//575 612//575 700//575 +f 560//665 661//665 701//665 +f 560//665 701//665 615//665 +f 616//666 672//666 702//666 +f 616//626 702//626 660//626 +f 612//598 635//598 703//598 +f 612//667 703//667 700//667 +f 541//668 704//668 634//668 +f 541//668 614//668 704//668 +f 571//669 674//669 705//669 +f 571//669 705//669 607//669 +f 606//670 660//670 706//670 +f 606//640 706//640 675//640 +f 659//671 687//671 707//671 +f 659//659 707//659 694//659 +f 681//660 695//660 708//660 +f 681//672 708//672 709//672 +f 681//652 709//652 649//652 +f 662//673 710//673 692//673 +f 662//673 676//673 710//673 +f 677//658 693//658 711//658 +f 677//674 711//674 690//674 +f 679//675 712//675 713//675 +f 679//675 678//675 712//675 +f 679//676 713//676 683//676 +f 494//677 714//677 519//677 +f 494//650 686//650 714//650 +f 464//678 715//678 685//678 +f 464//678 495//678 715//678 +f 695//552 597//552 708//552 +f 694//552 707//552 590//552 +f 683//679 716//679 693//679 +f 683//676 713//676 716//676 +f 678//680 717//680 712//680 +f 678//680 684//680 717//680 +f 665//681 718//681 691//681 +f 665//681 685//681 718//681 +f 686//682 719//682 714//682 +f 686//655 690//655 719//655 +f 630//683 699//683 720//683 +f 630//635 720//635 670//635 +f 566//684 721//684 629//684 +f 566//684 671//684 721//684 +f 649//685 709//685 688//685 +f 602//686 650//686 722//686 +f 602//686 722//686 687//686 +f 621//687 626//687 723//687 +f 621//688 724//688 622//688 +f 621//688 723//688 724//688 +f 619//689 725//689 726//689 +f 619//689 726//689 620//689 +f 619//690 623//690 725//690 +f 587//691 673//691 727//691 +f 587//691 727//691 656//691 +f 658//622 657//622 728//622 +f 658//692 728//692 729//692 +f 658//637 729//637 672//637 +f 622//693 730//693 624//693 +f 622//693 724//693 730//693 +f 623//690 731//690 725//690 +f 623//694 636//694 731//694 +f 684//695 732//695 717//695 +f 684//695 692//695 732//695 +f 693//696 733//696 711//696 +f 693//679 716//679 733//679 +f 690//674 711//674 734//674 +f 690//697 734//697 719//697 +f 676//698 735//698 710//698 +f 676//698 691//698 735//698 +f 626//687 736//687 723//687 +f 626//699 647//699 736//699 +f 620//700 726//700 737//700 +f 620//700 737//700 625//700 +f 558//701 738//701 668//701 +f 558//701 634//701 738//701 +f 635//634 669//634 739//634 +f 635//702 739//702 703//702 +f 624//703 740//703 637//703 +f 624//703 730//703 740//703 +f 636//694 741//694 731//694 +f 636//704 651//704 741//704 +f 707//705 687//705 742//705 +f 708//706 743//706 709//706 +f 708//552 597//552 743//552 +f 707//552 742//552 590//552 +f 713//707 744//707 745//707 +f 713//707 712//707 744//707 +f 713//708 745//708 716//708 +f 643//709 746//709 696//709 +f 643//653 688//653 746//653 +f 577//710 644//710 747//710 +f 577//710 747//710 689//710 +f 692//711 748//711 732//711 +f 692//711 710//711 748//711 +f 711//696 733//696 749//696 +f 711//712 749//712 734//712 +f 750//713 751//713 752//713 +f 750//714 753//714 754//714 +f 750//714 752//714 753//714 +f 750//715 755//715 756//715 +f 750//715 756//715 751//715 +f 750//716 754//716 755//716 +f 687//717 722//717 757//717 +f 687//705 757//705 742//705 +f 709//685 758//685 688//685 +f 709//706 743//706 759//706 +f 709//718 759//718 758//718 +f 607//719 705//719 760//719 +f 607//719 760//719 661//719 +f 660//720 702//720 761//720 +f 660//670 761//670 706//670 +f 647//721 675//721 762//721 +f 647//699 762//699 736//699 +f 625//722 737//722 763//722 +f 625//722 763//722 646//722 +f 716//723 764//723 733//723 +f 716//708 745//708 764//708 +f 712//724 765//724 744//724 +f 712//724 717//724 765//724 +f 714//725 766//725 767//725 +f 714//677 767//677 519//677 +f 714//682 719//682 766//682 +f 685//726 768//726 718//726 +f 685//726 715//726 768//726 +f 637//727 769//727 652//727 +f 637//727 740//727 769//727 +f 651//704 770//704 741//704 +f 651//728 670//728 770//728 +f 672//666 771//666 702//666 +f 672//729 729//729 771//729 +f 615//730 701//730 772//730 +f 615//730 772//730 673//730 +f 495//731 773//731 715//731 +f 495//731 518//731 773//731 +f 519//732 767//732 557//732 +f 752//713 751//713 774//713 +f 752//733 774//733 775//733 +f 752//734 776//734 753//734 +f 752//734 775//734 776//734 +f 755//735 777//735 778//735 +f 755//736 778//736 779//736 +f 755//737 779//737 756//737 +f 755//716 754//716 777//716 +f 743//552 597//552 759//552 +f 742//552 757//552 590//552 +f 691//738 780//738 735//738 +f 691//738 718//738 780//738 +f 719//739 781//739 766//739 +f 719//697 734//697 781//697 +f 717//740 782//740 765//740 +f 717//740 732//740 782//740 +f 733//741 783//741 749//741 +f 733//723 764//723 783//723 +f 657//742 784//742 728//742 +f 657//661 696//661 784//661 +f 574//743 656//743 785//743 +f 574//743 785//743 697//743 +f 745//744 786//744 787//744 +f 745//744 744//744 786//744 +f 745//745 787//745 764//745 +f 775//746 774//746 788//746 +f 778//747 789//747 790//747 +f 778//735 777//735 789//735 +f 778//748 790//748 791//748 +f 778//749 791//749 779//749 +f 775//750 792//750 776//750 +f 775//750 793//750 792//750 +f 775//751 788//751 793//751 +f 734//712 749//712 794//712 +f 734//752 794//752 781//752 +f 710//753 795//753 748//753 +f 710//753 735//753 795//753 +f 650//754 689//754 796//754 +f 650//754 796//754 722//754 +f 688//755 758//755 746//755 +f 652//756 797//756 671//756 +f 652//756 769//756 797//756 +f 670//728 798//728 770//728 +f 670//757 720//757 798//757 +f 751//758 787//758 774//758 +f 751//759 756//759 799//759 +f 751//759 799//759 787//759 +f 764//760 799//760 783//760 +f 764//745 787//745 799//745 +f 744//761 800//761 786//761 +f 744//761 765//761 800//761 +f 675//721 801//721 762//721 +f 675//762 706//762 801//762 +f 646//763 763//763 802//763 +f 646//763 802//763 674//763 +f 787//758 786//758 774//758 +f 732//764 803//764 782//764 +f 732//764 748//764 803//764 +f 749//741 783//741 804//741 +f 749//765 804//765 794//765 +f 756//766 779//766 805//766 +f 756//767 805//767 799//767 +f 774//768 786//768 788//768 +f 793//769 806//769 792//769 +f 793//769 807//769 806//769 +f 793//770 808//770 807//770 +f 790//747 789//747 809//747 +f 790//771 810//771 811//771 +f 790//771 811//771 791//771 +f 790//772 809//772 810//772 +f 793//773 788//773 808//773 +f 754//774 812//774 813//774 +f 754//774 753//774 812//774 +f 754//775 813//775 777//775 +f 799//760 805//760 783//760 +f 786//776 800//776 788//776 +f 765//777 814//777 800//777 +f 765//777 782//777 814//777 +f 783//778 805//778 804//778 +f 614//779 815//779 704//779 +f 614//779 698//779 815//779 +f 700//664 816//664 699//664 +f 700//780 817//780 816//780 +f 700//667 703//667 817//667 +f 766//725 818//725 767//725 +f 766//781 819//781 818//781 +f 766//739 781//739 819//739 +f 718//782 820//782 780//782 +f 718//782 768//782 820//782 +f 715//783 821//783 768//783 +f 715//783 773//783 821//783 +f 767//732 822//732 557//732 +f 767//784 818//784 822//784 +f 722//785 796//785 823//785 +f 722//786 823//786 824//786 +f 722//786 824//786 757//786 +f 758//787 759//787 825//787 +f 758//788 825//788 826//788 +f 758//755 826//755 746//755 +f 777//789 827//789 789//789 +f 777//775 813//775 827//775 +f 753//790 776//790 812//790 +f 779//791 791//791 828//791 +f 779//792 828//792 805//792 +f 788//793 800//793 808//793 +f 699//683 829//683 720//683 +f 699//794 816//794 829//794 +f 629//795 830//795 698//795 +f 629//795 721//795 830//795 +f 735//796 831//796 795//796 +f 735//796 780//796 831//796 +f 781//797 832//797 819//797 +f 781//752 794//752 832//752 +f 661//798 760//798 833//798 +f 661//798 833//798 701//798 +f 702//799 771//799 834//799 +f 702//720 834//720 761//720 +f 805//778 828//778 804//778 +f 800//800 814//800 808//800 +f 759//552 597//552 825//552 +f 757//552 824//552 590//552 +f 794//765 804//765 835//765 +f 794//801 835//801 832//801 +f 748//802 836//802 803//802 +f 748//802 795//802 836//802 +f 518//803 837//803 773//803 +f 518//803 556//803 837//803 +f 557//804 822//804 600//804 +f 825//805 838//805 826//805 +f 825//552 597//552 838//552 +f 824//552 823//552 590//552 +f 782//806 839//806 814//806 +f 782//806 803//806 839//806 +f 804//807 828//807 835//807 +f 644//808 697//808 840//808 +f 644//808 840//808 747//808 +f 696//809 841//809 784//809 +f 696//709 746//709 841//709 +f 789//810 842//810 809//810 +f 789//811 827//811 842//811 +f 776//812 843//812 812//812 +f 776//813 792//813 843//813 +f 813//814 844//814 845//814 +f 813//814 812//814 844//814 +f 813//815 845//815 827//815 +f 807//770 808//770 846//770 +f 810//772 809//772 847//772 +f 810//816 847//816 848//816 +f 810//817 848//817 849//817 +f 810//817 849//817 811//817 +f 807//818 850//818 806//818 +f 807//818 851//818 850//818 +f 807//819 846//819 851//819 +f 808//820 814//820 846//820 +f 791//821 811//821 852//821 +f 791//821 852//821 828//821 +f 703//702 739//702 853//702 +f 703//822 853//822 817//822 +f 634//823 854//823 738//823 +f 634//823 704//823 854//823 +f 706//824 761//824 855//824 +f 706//762 855//762 801//762 +f 674//825 802//825 856//825 +f 674//825 856//825 705//825 +f 673//826 772//826 857//826 +f 673//826 857//826 727//826 +f 729//692 728//692 858//692 +f 729//827 858//827 859//827 +f 729//729 859//729 771//729 +f 827//828 860//828 842//828 +f 827//815 845//815 860//815 +f 812//829 861//829 844//829 +f 812//829 843//829 861//829 +f 814//820 839//820 846//820 +f 828//807 852//807 835//807 +f 792//830 862//830 843//830 +f 792//830 806//830 862//830 +f 809//831 842//831 847//831 +f 746//832 826//832 841//832 +f 689//833 747//833 863//833 +f 689//833 863//833 796//833 +f 835//834 852//834 864//834 +f 835//801 864//801 832//801 +f 803//835 865//835 839//835 +f 803//835 836//835 865//835 +f 845//836 866//836 860//836 +f 845//837 867//837 866//837 +f 845//837 844//837 867//837 +f 795//838 868//838 836//838 +f 795//838 831//838 868//838 +f 832//797 869//797 819//797 +f 832//839 864//839 869//839 +f 671//840 870//840 721//840 +f 671//840 797//840 870//840 +f 720//757 871//757 798//757 +f 720//841 829//841 871//841 +f 819//842 869//842 872//842 +f 819//781 872//781 818//781 +f 780//843 873//843 831//843 +f 780//843 820//843 873//843 +f 768//844 874//844 820//844 +f 768//844 821//844 874//844 +f 818//784 875//784 822//784 +f 818//845 872//845 875//845 +f 811//846 849//846 876//846 +f 811//846 876//846 852//846 +f 846//819 877//819 851//819 +f 846//847 839//847 877//847 +f 851//848 878//848 850//848 +f 851//848 879//848 878//848 +f 851//849 877//849 879//849 +f 848//850 880//850 881//850 +f 848//850 881//850 849//850 +f 848//851 882//851 880//851 +f 848//816 847//816 882//816 +f 860//852 883//852 884//852 +f 860//828 884//828 842//828 +f 860//836 866//836 883//836 +f 844//853 885//853 867//853 +f 844//853 861//853 885//853 +f 852//834 876//834 864//834 +f 839//847 865//847 877//847 +f 773//854 886//854 821//854 +f 773//854 837//854 886//854 +f 822//855 875//855 887//855 +f 822//804 887//804 600//804 +f 843//856 888//856 861//856 +f 843//856 862//856 888//856 +f 842//831 889//831 847//831 +f 842//857 884//857 889//857 +f 847//858 889//858 882//858 +f 806//859 890//859 862//859 +f 806//859 850//859 890//859 +f 656//860 727//860 891//860 +f 656//860 891//860 785//860 +f 728//861 892//861 858//861 +f 728//742 784//742 892//742 +f 725//862 731//862 893//862 +f 725//863 893//863 894//863 +f 725//863 894//863 726//863 +f 723//864 895//864 724//864 +f 723//864 896//864 895//864 +f 723//865 736//865 896//865 +f 796//866 863//866 897//866 +f 796//867 897//867 823//867 +f 826//832 898//832 841//832 +f 826//805 838//805 899//805 +f 826//868 899//868 898//868 +f 731//869 741//869 900//869 +f 731//862 900//862 893//862 +f 724//870 901//870 730//870 +f 724//870 895//870 901//870 +f 866//871 902//871 903//871 +f 866//871 867//871 902//871 +f 866//872 903//872 883//872 +f 726//873 894//873 904//873 +f 726//873 904//873 737//873 +f 736//865 905//865 896//865 +f 736//874 762//874 905//874 +f 771//799 906//799 834//799 +f 771//875 859//875 906//875 +f 701//876 833//876 907//876 +f 701//876 907//876 772//876 +f 836//877 908//877 865//877 +f 836//877 868//877 908//877 +f 864//839 909//839 869//839 +f 864//878 876//878 909//878 +f 600//879 887//879 669//879 +f 556//880 910//880 837//880 +f 556//880 601//880 910//880 +f 761//824 911//824 855//824 +f 761//881 834//881 911//881 +f 705//882 856//882 912//882 +f 705//882 912//882 760//882 +f 838//552 597//552 899//552 +f 823//552 897//552 590//552 +f 741//883 770//883 913//883 +f 741//869 913//869 900//869 +f 730//884 914//884 740//884 +f 730//884 901//884 914//884 +f 883//885 915//885 916//885 +f 883//852 916//852 884//852 +f 883//872 903//872 915//872 +f 867//886 917//886 902//886 +f 867//886 885//886 917//886 +f 877//849 918//849 879//849 +f 877//887 865//887 918//887 +f 849//888 881//888 919//888 +f 849//888 919//888 876//888 +f 869//842 920//842 872//842 +f 869//889 909//889 920//889 +f 831//890 921//890 868//890 +f 831//890 873//890 921//890 +f 861//891 922//891 885//891 +f 861//891 888//891 922//891 +f 884//857 923//857 889//857 +f 884//892 916//892 923//892 +f 865//887 908//887 918//887 +f 876//878 919//878 909//878 +f 889//893 923//893 924//893 +f 889//858 924//858 882//858 +f 862//894 925//894 888//894 +f 862//894 890//894 925//894 +f 880//895 926//895 927//895 +f 880//896 927//896 928//896 +f 880//896 928//896 881//896 +f 880//851 882//851 926//851 +f 879//897 918//897 929//897 +f 879//898 930//898 878//898 +f 879//898 929//898 930//898 +f 737//899 904//899 931//899 +f 737//899 931//899 763//899 +f 762//874 932//874 905//874 +f 762//900 801//900 932//900 +f 820//901 933//901 873//901 +f 820//901 874//901 933//901 +f 872//845 934//845 875//845 +f 872//902 920//902 934//902 +f 903//903 935//903 936//903 +f 903//903 902//903 935//903 +f 903//904 936//904 915//904 +f 897//905 863//905 937//905 +f 899//906 938//906 898//906 +f 899//552 597//552 938//552 +f 897//552 937//552 590//552 +f 850//907 939//907 890//907 +f 850//907 878//907 939//907 +f 882//908 924//908 926//908 +f 770//909 798//909 940//909 +f 770//883 940//883 913//883 +f 740//910 941//910 769//910 +f 740//910 914//910 941//910 +f 784//911 942//911 892//911 +f 784//809 841//809 942//809 +f 697//912 785//912 943//912 +f 697//912 943//912 840//912 +f 821//913 944//913 874//913 +f 821//913 886//913 944//913 +f 875//914 934//914 945//914 +f 875//855 945//855 887//855 +f 902//915 946//915 935//915 +f 902//915 917//915 946//915 +f 915//916 947//916 948//916 +f 915//904 936//904 947//904 +f 915//885 948//885 916//885 +f 885//917 949//917 917//917 +f 885//917 922//917 949//917 +f 916//892 950//892 923//892 +f 916//918 948//918 950//918 +f 747//919 840//919 951//919 +f 747//919 951//919 863//919 +f 841//920 898//920 942//920 +f 923//921 950//921 952//921 +f 923//893 952//893 924//893 +f 888//922 953//922 922//922 +f 888//922 925//922 953//922 +f 909//923 919//923 954//923 +f 909//889 954//889 920//889 +f 868//924 955//924 908//924 +f 868//924 921//924 955//924 +f 816//925 956//925 957//925 +f 816//794 957//794 829//794 +f 816//780 817//780 956//780 +f 698//926 958//926 815//926 +f 698//926 830//926 958//926 +f 890//927 959//927 925//927 +f 890//927 939//927 959//927 +f 924//908 960//908 926//908 +f 924//928 952//928 960//928 +f 887//929 945//929 961//929 +f 887//879 961//879 669//879 +f 837//930 962//930 886//930 +f 837//930 910//930 962//930 +f 798//931 871//931 963//931 +f 798//909 963//909 940//909 +f 769//932 964//932 797//932 +f 769//932 941//932 964//932 +f 881//933 928//933 965//933 +f 881//933 965//933 919//933 +f 918//934 908//934 966//934 +f 918//897 966//897 929//897 +f 763//935 931//935 967//935 +f 763//935 967//935 802//935 +f 801//900 968//900 932//900 +f 801//936 855//936 968//936 +f 704//937 969//937 854//937 +f 704//937 815//937 969//937 +f 817//938 970//938 956//938 +f 817//822 853//822 970//822 +f 919//923 965//923 954//923 +f 908//934 955//934 966//934 +f 873//939 971//939 921//939 +f 873//939 933//939 971//939 +f 920//902 972//902 934//902 +f 920//940 954//940 972//940 +f 721//941 973//941 830//941 +f 721//941 870//941 973//941 +f 829//841 974//841 871//841 +f 829//942 957//942 974//942 +f 926//895 975//895 927//895 +f 926//943 960//943 975//943 +f 878//944 976//944 939//944 +f 878//944 930//944 976//944 +f 760//945 912//945 977//945 +f 760//945 977//945 833//945 +f 834//946 906//946 978//946 +f 834//881 978//881 911//881 +f 917//947 979//947 946//947 +f 917//948 949//948 979//948 +f 948//916 947//916 980//916 +f 948//949 980//949 981//949 +f 948//918 981//918 950//918 +f 929//950 982//950 930//950 +f 929//950 983//950 982//950 +f 929//951 966//951 983//951 +f 927//952 984//952 985//952 +f 927//952 985//952 928//952 +f 927//953 975//953 984//953 +f 950//954 981//954 986//954 +f 950//921 986//921 952//921 +f 922//955 987//955 949//955 +f 922//955 953//955 987//955 +f 863//956 951//956 988//956 +f 863//905 988//905 937//905 +f 898//906 938//906 989//906 +f 898//957 989//957 990//957 +f 898//920 990//920 942//920 +f 936//958 991//958 947//958 +f 936//959 992//959 991//959 +f 936//959 935//959 992//959 +f 772//960 907//960 993//960 +f 772//960 993//960 857//960 +f 859//827 858//827 994//827 +f 859//961 994//961 995//961 +f 859//875 995//875 906//875 +f 925//962 996//962 953//962 +f 925//962 959//962 996//962 +f 952//928 997//928 960//928 +f 952//963 986//963 997//963 +f 991//964 998//964 999//964 +f 991//964 992//964 998//964 +f 991//965 999//965 1000//965 +f 991//958 1000//958 947//958 +f 874//966 1001//966 933//966 +f 874//966 944//966 1001//966 +f 934//967 972//967 1002//967 +f 934//914 1002//914 945//914 +f 601//968 1003//968 910//968 +f 601//968 668//968 1003//968 +f 669//969 961//969 739//969 +f 938//552 597//552 989//552 +f 937//552 988//552 590//552 +f 947//970 1000//970 980//970 +f 935//971 1004//971 992//971 +f 935//971 946//971 1004//971 +f 992//972 1005//972 998//972 +f 992//972 1004//972 1005//972 +f 1000//965 999//965 1006//965 +f 1000//973 1006//973 1007//973 +f 1000//970 1007//970 980//970 +f 960//974 997//974 1008//974 +f 960//943 1008//943 975//943 +f 939//975 1009//975 959//975 +f 939//975 976//975 1009//975 +f 921//976 1010//976 955//976 +f 921//976 971//976 1010//976 +f 954//940 1011//940 972//940 +f 954//977 965//977 1011//977 +f 999//978 1012//978 1013//978 +f 999//978 998//978 1012//978 +f 999//979 1013//979 1006//979 +f 949//980 1014//980 979//980 +f 949//981 987//981 1014//981 +f 981//982 1015//982 1016//982 +f 981//983 980//983 1015//983 +f 981//954 1016//954 986//954 +f 858//984 1017//984 994//984 +f 858//861 892//861 1017//861 +f 727//985 857//985 1018//985 +f 727//985 1018//985 891//985 +f 945//986 1002//986 1019//986 +f 945//929 1019//929 961//929 +f 886//987 1020//987 944//987 +f 886//987 962//987 1020//987 +f 802//988 967//988 1021//988 +f 802//988 1021//988 856//988 +f 855//936 1022//936 968//936 +f 855//989 911//989 1022//989 +f 966//951 1023//951 983//951 +f 966//990 955//990 1023//990 +f 928//991 985//991 1024//991 +f 928//991 1024//991 965//991 +f 953//992 1025//992 987//992 +f 953//992 996//992 1025//992 +f 986//963 1026//963 997//963 +f 986//993 1016//993 1026//993 +f 998//994 1027//994 1012//994 +f 998//994 1005//994 1027//994 +f 1006//995 1028//995 1029//995 +f 1006//979 1013//979 1028//979 +f 1006//973 1029//973 1007//973 +f 955//990 1010//990 1023//990 +f 965//977 1024//977 1011//977 +f 930//996 1030//996 976//996 +f 930//996 982//996 1030//996 +f 975//953 1031//953 984//953 +f 975//997 1008//997 1031//997 +f 980//998 1007//998 1015//998 +f 946//999 979//999 1004//999 +f 997//974 1032//974 1008//974 +f 997//1000 1026//1000 1032//1000 +f 959//1001 1033//1001 996//1001 +f 959//1001 1009//1001 1033//1001 +f 797//1002 1034//1002 870//1002 +f 797//1002 964//1002 1034//1002 +f 871//1003 974//1003 1035//1003 +f 871//931 1035//931 963//931 +f 933//1004 1036//1004 971//1004 +f 933//1004 1001//1004 1036//1004 +f 972//1005 1011//1005 1037//1005 +f 972//967 1037//967 1002//967 +f 1004//1006 1038//1006 1005//1006 +f 1004//1006 1039//1006 1038//1006 +f 1007//1007 1029//1007 1040//1007 +f 1007//998 1040//998 1015//998 +f 1004//999 979//999 1039//999 +f 988//1008 951//1008 1041//1008 +f 989//1009 1042//1009 990//1009 +f 989//552 597//552 1042//552 +f 988//552 1041//552 590//552 +f 892//911 942//911 1043//911 +f 892//1010 1043//1010 1017//1010 +f 785//1011 891//1011 1044//1011 +f 785//1011 1044//1011 943//1011 +f 983//1012 1023//1012 1045//1012 +f 983//1013 1046//1013 982//1013 +f 983//1013 1045//1013 1046//1013 +f 984//1014 1031//1014 1047//1014 +f 984//1015 1047//1015 1048//1015 +f 984//1015 1048//1015 985//1015 +f 910//1016 1049//1016 962//1016 +f 910//1016 1003//1016 1049//1016 +f 961//1017 1019//1017 1050//1017 +f 961//969 1050//969 739//969 +f 942//1018 990//1018 1043//1018 +f 840//1019 943//1019 1051//1019 +f 840//1019 1051//1019 951//1019 +f 987//1020 1052//1020 1014//1020 +f 987//1020 1025//1020 1052//1020 +f 1016//1021 1015//1021 1053//1021 +f 1016//1022 1053//1022 1054//1022 +f 1016//993 1054//993 1026//993 +f 906//946 1055//946 978//946 +f 906//1023 995//1023 1055//1023 +f 833//1024 977//1024 1056//1024 +f 833//1024 1056//1024 907//1024 +f 1005//1025 1057//1025 1027//1025 +f 1005//1025 1038//1025 1057//1025 +f 1029//995 1028//995 1058//995 +f 1029//1026 1058//1026 1059//1026 +f 1029//1007 1059//1007 1040//1007 +f 976//1027 1060//1027 1009//1027 +f 976//1027 1030//1027 1060//1027 +f 1008//997 1061//997 1031//997 +f 1008//1028 1032//1028 1061//1028 +f 996//1029 1062//1029 1025//1029 +f 996//1029 1033//1029 1062//1029 +f 1026//1030 1054//1030 1063//1030 +f 1026//1000 1063//1000 1032//1000 +f 1002//1031 1037//1031 1064//1031 +f 1002//986 1064//986 1019//986 +f 944//1032 1065//1032 1001//1032 +f 944//1032 1020//1032 1065//1032 +f 1015//998 1040//998 1053//998 +f 979//999 1014//999 1039//999 +f 971//1033 1066//1033 1010//1033 +f 971//1033 1036//1033 1066//1033 +f 1011//1034 1024//1034 1067//1034 +f 1011//1005 1067//1005 1037//1005 +f 856//1035 1021//1035 1068//1035 +f 856//1035 1068//1035 912//1035 +f 911//989 1069//989 1022//989 +f 911//1036 978//1036 1069//1036 +f 1013//1037 1070//1037 1071//1037 +f 1013//1037 1012//1037 1070//1037 +f 1013//1038 1071//1038 1028//1038 +f 896//1039 1072//1039 895//1039 +f 896//1039 1073//1039 1072//1039 +f 896//1040 905//1040 1073//1040 +f 893//1041 900//1041 1074//1041 +f 893//1042 1074//1042 1075//1042 +f 893//1042 1075//1042 894//1042 +f 951//1043 1051//1043 1076//1043 +f 951//1008 1076//1008 1041//1008 +f 990//1018 1077//1018 1043//1018 +f 990//1009 1042//1009 1078//1009 +f 990//1044 1078//1044 1077//1044 +f 1023//1045 1010//1045 1079//1045 +f 1023//1012 1079//1012 1045//1012 +f 985//1046 1048//1046 1080//1046 +f 985//1046 1080//1046 1024//1046 +f 895//1047 1081//1047 901//1047 +f 895//1047 1072//1047 1081//1047 +f 900//1048 913//1048 1082//1048 +f 900//1041 1082//1041 1074//1041 +f 905//1040 1083//1040 1073//1040 +f 905//1049 932//1049 1083//1049 +f 894//1050 1075//1050 1084//1050 +f 894//1050 1084//1050 904//1050 +f 1010//1045 1066//1045 1079//1045 +f 1024//1034 1080//1034 1067//1034 +f 1012//1051 1085//1051 1070//1051 +f 1012//1051 1027//1051 1085//1051 +f 1028//1038 1071//1038 1086//1038 +f 1028//1052 1086//1052 1058//1052 +f 668//1053 1087//1053 1003//1053 +f 668//1053 738//1053 1087//1053 +f 739//1054 1050//1054 853//1054 +f 1032//1028 1088//1028 1061//1028 +f 1032//1055 1063//1055 1088//1055 +f 1009//1056 1089//1056 1033//1056 +f 1009//1056 1060//1056 1089//1056 +f 1042//552 597//552 1078//552 +f 1041//552 1076//552 590//552 +f 1025//1057 1090//1057 1052//1057 +f 1025//1057 1062//1057 1090//1057 +f 1054//1058 1091//1058 1092//1058 +f 1054//1022 1053//1022 1091//1022 +f 1054//1030 1092//1030 1063//1030 +f 901//1059 1093//1059 914//1059 +f 901//1059 1081//1059 1093//1059 +f 913//1060 940//1060 1094//1060 +f 913//1048 1094//1048 1082//1048 +f 982//1061 1095//1061 1030//1061 +f 982//1061 1046//1061 1095//1061 +f 1031//1062 1061//1062 1096//1062 +f 1031//1014 1096//1014 1047//1014 +f 962//1063 1097//1063 1020//1063 +f 962//1063 1049//1063 1097//1063 +f 1019//1064 1064//1064 1098//1064 +f 1019//1017 1098//1017 1050//1017 +f 956//1065 1099//1065 1100//1065 +f 956//925 1100//925 957//925 +f 956//938 970//938 1099//938 +f 815//1066 1101//1066 969//1066 +f 815//1066 958//1066 1101//1066 +f 830//1067 1102//1067 958//1067 +f 830//1067 973//1067 1102//1067 +f 957//942 1103//942 974//942 +f 957//1068 1100//1068 1103//1068 +f 1053//1069 1040//1069 1091//1069 +f 1014//1070 1104//1070 1039//1070 +f 1014//1070 1052//1070 1104//1070 +f 1039//1071 1105//1071 1038//1071 +f 1039//1071 1104//1071 1105//1071 +f 1040//1072 1059//1072 1106//1072 +f 1040//1069 1106//1069 1091//1069 +f 932//1049 1107//1049 1083//1049 +f 932//1073 968//1073 1107//1073 +f 904//1074 1084//1074 1108//1074 +f 904//1074 1108//1074 931//1074 +f 1037//1075 1067//1075 1109//1075 +f 1037//1031 1109//1031 1064//1031 +f 1001//1076 1110//1076 1036//1076 +f 1001//1076 1065//1076 1110//1076 +f 914//1077 1111//1077 941//1077 +f 914//1077 1093//1077 1111//1077 +f 940//1078 963//1078 1112//1078 +f 940//1060 1112//1060 1094//1060 +f 1047//1079 1096//1079 1113//1079 +f 1047//1080 1113//1080 1114//1080 +f 1047//1080 1114//1080 1048//1080 +f 1045//1081 1115//1081 1046//1081 +f 1045//1081 1116//1081 1115//1081 +f 1045//1082 1079//1082 1116//1082 +f 1033//1083 1117//1083 1062//1083 +f 1033//1083 1089//1083 1117//1083 +f 1063//1084 1092//1084 1118//1084 +f 1063//1055 1118//1055 1088//1055 +f 1030//1085 1119//1085 1060//1085 +f 1030//1085 1095//1085 1119//1085 +f 1061//1086 1088//1086 1120//1086 +f 1061//1062 1120//1062 1096//1062 +f 1038//1087 1121//1087 1057//1087 +f 1038//1087 1105//1087 1121//1087 +f 1059//1026 1058//1026 1122//1026 +f 1059//1072 1123//1072 1106//1072 +f 1059//1088 1122//1088 1123//1088 +f 1027//1089 1124//1089 1085//1089 +f 1027//1089 1057//1089 1124//1089 +f 1058//1052 1086//1052 1125//1052 +f 1058//1090 1125//1090 1122//1090 +f 995//1091 1126//1091 1127//1091 +f 907//1092 1056//1092 1128//1092 +f 907//1092 1128//1092 993//1092 +f 995//961 994//961 1126//961 +f 995//1023 1127//1023 1055//1023 +f 1003//1093 1129//1093 1049//1093 +f 1003//1093 1087//1093 1129//1093 +f 1050//1054 1130//1054 853//1054 +f 1050//1094 1098//1094 1130//1094 +f 870//1095 1131//1095 973//1095 +f 870//1095 1034//1095 1131//1095 +f 974//1096 1103//1096 1132//1096 +f 974//1003 1132//1003 1035//1003 +f 963//1097 1035//1097 1133//1097 +f 963//1078 1133//1078 1112//1078 +f 941//1098 1134//1098 964//1098 +f 941//1098 1111//1098 1134//1098 +f 912//1099 1068//1099 1135//1099 +f 912//1099 1135//1099 977//1099 +f 978//1100 1055//1100 1136//1100 +f 978//1036 1136//1036 1069//1036 +f 1067//1101 1080//1101 1137//1101 +f 1067//1075 1137//1075 1109//1075 +f 1036//1102 1138//1102 1066//1102 +f 1036//1102 1110//1102 1138//1102 +f 994//984 1017//984 1139//984 +f 994//1103 1139//1103 1126//1103 +f 857//1104 993//1104 1140//1104 +f 857//1104 1140//1104 1018//1104 +f 968//1073 1141//1073 1107//1073 +f 968//1105 1022//1105 1141//1105 +f 931//1106 1108//1106 1142//1106 +f 931//1106 1142//1106 967//1106 +f 1062//1107 1143//1107 1090//1107 +f 1062//1107 1117//1107 1143//1107 +f 1092//1058 1091//1058 1144//1058 +f 1092//1108 1144//1108 1145//1108 +f 1092//1084 1145//1084 1118//1084 +f 1091//1109 1106//1109 1144//1109 +f 1052//1110 1146//1110 1104//1110 +f 1052//1110 1090//1110 1146//1110 +f 1020//1111 1147//1111 1065//1111 +f 1020//1111 1097//1111 1147//1111 +f 1064//1112 1109//1112 1148//1112 +f 1064//1064 1148//1064 1098//1064 +f 1048//1113 1114//1113 1149//1113 +f 1048//1113 1149//1113 1080//1113 +f 1079//1082 1150//1082 1116//1082 +f 1079//1114 1066//1114 1150//1114 +f 943//1115 1044//1115 1151//1115 +f 943//1115 1151//1115 1051//1115 +f 1043//1116 1077//1116 1152//1116 +f 1043//1010 1152//1010 1017//1010 +f 1088//1117 1118//1117 1153//1117 +f 1088//1086 1153//1086 1120//1086 +f 1060//1118 1154//1118 1089//1118 +f 1060//1118 1119//1118 1154//1118 +f 1104//1119 1155//1119 1105//1119 +f 1104//1119 1146//1119 1155//1119 +f 1106//1120 1123//1120 1156//1120 +f 1106//1109 1156//1109 1144//1109 +f 1080//1101 1149//1101 1137//1101 +f 1066//1114 1138//1114 1150//1114 +f 1017//1121 1152//1121 1139//1121 +f 891//1122 1018//1122 1157//1122 +f 891//1122 1157//1122 1044//1122 +f 1096//1123 1120//1123 1158//1123 +f 1096//1079 1158//1079 1113//1079 +f 1046//1124 1159//1124 1095//1124 +f 1046//1124 1115//1124 1159//1124 +f 1123//1125 1160//1125 1161//1125 +f 1123//1120 1161//1120 1156//1120 +f 1105//1126 1162//1126 1121//1126 +f 1105//1126 1155//1126 1162//1126 +f 1123//1088 1122//1088 1160//1088 +f 1076//1127 1051//1127 1163//1127 +f 1078//1128 1164//1128 1077//1128 +f 1078//552 597//552 1164//552 +f 1076//552 1163//552 590//552 +f 1118//1117 1165//1117 1153//1117 +f 1118//1129 1145//1129 1165//1129 +f 1089//1130 1166//1130 1117//1130 +f 1089//1130 1154//1130 1166//1130 +f 1051//1131 1151//1131 1167//1131 +f 1051//1127 1167//1127 1163//1127 +f 1077//1132 1164//1132 1168//1132 +f 1077//1116 1168//1116 1152//1116 +f 1071//1133 1169//1133 1170//1133 +f 1071//1133 1070//1133 1169//1133 +f 1071//1134 1170//1134 1086//1134 +f 1049//1135 1171//1135 1097//1135 +f 1049//1135 1129//1135 1171//1135 +f 1098//1094 1172//1094 1130//1094 +f 1098//1136 1148//1136 1172//1136 +f 1057//1137 1173//1137 1124//1137 +f 1057//1137 1121//1137 1173//1137 +f 1122//1090 1125//1090 1174//1090 +f 1122//1138 1174//1138 1160//1138 +f 1065//1139 1175//1139 1110//1139 +f 1065//1139 1147//1139 1175//1139 +f 1109//1140 1137//1140 1176//1140 +f 1109//1112 1176//1112 1148//1112 +f 853//1141 1130//1141 970//1141 +f 738//1142 1177//1142 1087//1142 +f 738//1142 854//1142 1177//1142 +f 1022//1105 1178//1105 1141//1105 +f 1022//1143 1069//1143 1178//1143 +f 967//1144 1142//1144 1179//1144 +f 967//1144 1179//1144 1021//1144 +f 1164//1145 1180//1145 1168//1145 +f 1164//552 597//552 1180//552 +f 1163//552 1167//552 590//552 +f 1120//1146 1153//1146 1181//1146 +f 1120//1123 1181//1123 1158//1123 +f 1095//1147 1182//1147 1119//1147 +f 1095//1147 1159//1147 1182//1147 +f 1086//1148 1183//1148 1125//1148 +f 1086//1134 1170//1134 1183//1134 +f 1070//1149 1184//1149 1169//1149 +f 1070//1149 1085//1149 1184//1149 +f 1116//1150 1150//1150 1185//1150 +f 1116//1151 1186//1151 1115//1151 +f 1116//1151 1185//1151 1186//1151 +f 1113//1152 1158//1152 1187//1152 +f 1113//1153 1187//1153 1188//1153 +f 1113//1153 1188//1153 1114//1153 +f 1144//1108 1189//1108 1145//1108 +f 1144//1154 1156//1154 1189//1154 +f 1090//1155 1190//1155 1146//1155 +f 1090//1155 1143//1155 1190//1155 +f 1146//1156 1191//1156 1155//1156 +f 1146//1156 1190//1156 1191//1156 +f 1156//1157 1161//1157 1192//1157 +f 1156//1154 1192//1154 1189//1154 +f 1117//1158 1193//1158 1143//1158 +f 1117//1158 1166//1158 1193//1158 +f 1145//1159 1189//1159 1194//1159 +f 1145//1129 1194//1129 1165//1129 +f 1055//1100 1195//1100 1136//1100 +f 1055//1160 1127//1160 1195//1160 +f 977//1161 1135//1161 1196//1161 +f 977//1161 1196//1161 1056//1161 +f 1035//1162 1132//1162 1197//1162 +f 1035//1097 1197//1097 1133//1097 +f 964//1163 1198//1163 1034//1163 +f 964//1163 1134//1163 1198//1163 +f 1155//1164 1199//1164 1162//1164 +f 1155//1164 1191//1164 1199//1164 +f 1161//1125 1160//1125 1200//1125 +f 1161//1157 1201//1157 1192//1157 +f 1161//1165 1200//1165 1201//1165 +f 1153//1166 1165//1166 1202//1166 +f 1153//1146 1202//1146 1181//1146 +f 1119//1167 1203//1167 1154//1167 +f 1119//1167 1182//1167 1203//1167 +f 1110//1168 1204//1168 1138//1168 +f 1110//1168 1175//1168 1204//1168 +f 1137//1169 1149//1169 1205//1169 +f 1137//1140 1205//1140 1176//1140 +f 1150//1170 1138//1170 1206//1170 +f 1150//1150 1206//1150 1185//1150 +f 1114//1171 1188//1171 1207//1171 +f 1114//1171 1207//1171 1149//1171 +f 1085//1172 1208//1172 1184//1172 +f 1085//1172 1124//1172 1208//1172 +f 1125//1148 1183//1148 1209//1148 +f 1125//1173 1209//1173 1174//1173 +f 1121//1174 1210//1174 1173//1174 +f 1121//1174 1162//1174 1210//1174 +f 1160//1138 1174//1138 1211//1138 +f 1160//1175 1211//1175 1200//1175 +f 1138//1170 1204//1170 1206//1170 +f 1149//1169 1207//1169 1205//1169 +f 1097//1176 1212//1176 1147//1176 +f 1097//1176 1171//1176 1212//1176 +f 1148//1136 1213//1136 1172//1136 +f 1148//1177 1176//1177 1213//1177 +f 1130//1178 1172//1178 1214//1178 +f 1130//1141 1214//1141 970//1141 +f 1087//1179 1215//1179 1129//1179 +f 1087//1179 1177//1179 1215//1179 +f 958//1180 1216//1180 1101//1180 +f 958//1180 1102//1180 1216//1180 +f 1100//1065 1099//1065 1217//1065 +f 1100//1068 1218//1068 1103//1068 +f 1100//1181 1217//1181 1218//1181 +f 1115//1182 1219//1182 1159//1182 +f 1115//1182 1186//1182 1219//1182 +f 1158//1183 1181//1183 1220//1183 +f 1158//1152 1220//1152 1187//1152 +f 1165//1184 1194//1184 1221//1184 +f 1165//1166 1221//1166 1202//1166 +f 1154//1185 1222//1185 1166//1185 +f 1154//1185 1203//1185 1222//1185 +f 1069//1143 1223//1143 1178//1143 +f 1021//1186 1179//1186 1224//1186 +f 1021//1186 1224//1186 1068//1186 +f 1069//1187 1136//1187 1223//1187 +f 973//1188 1225//1188 1102//1188 +f 973//1188 1131//1188 1225//1188 +f 1103//1189 1218//1189 1226//1189 +f 1103//1096 1226//1096 1132//1096 +f 1189//1159 1227//1159 1194//1159 +f 1189//1190 1192//1190 1227//1190 +f 1143//1191 1228//1191 1190//1191 +f 1143//1191 1193//1191 1228//1191 +f 1152//1192 1168//1192 1229//1192 +f 1152//1121 1229//1121 1139//1121 +f 1044//1193 1157//1193 1230//1193 +f 1044//1193 1230//1193 1151//1193 +f 1190//1194 1231//1194 1191//1194 +f 1190//1194 1228//1194 1231//1194 +f 1192//1195 1201//1195 1232//1195 +f 1192//1190 1232//1190 1227//1190 +f 1074//1196 1233//1196 1234//1196 +f 1074//1196 1234//1196 1075//1196 +f 1074//1197 1082//1197 1233//1197 +f 1073//1198 1083//1198 1235//1198 +f 1073//1199 1236//1199 1072//1199 +f 1073//1199 1235//1199 1236//1199 +f 1159//1200 1237//1200 1182//1200 +f 1159//1200 1219//1200 1237//1200 +f 1181//1201 1202//1201 1238//1201 +f 1181//1183 1238//1183 1220//1183 +f 1082//1202 1094//1202 1239//1202 +f 1082//1197 1239//1197 1233//1197 +f 1072//1203 1240//1203 1081//1203 +f 1072//1203 1236//1203 1240//1203 +f 1166//1204 1241//1204 1193//1204 +f 1166//1204 1222//1204 1241//1204 +f 1194//1205 1227//1205 1242//1205 +f 1194//1184 1242//1184 1221//1184 +f 1075//1206 1234//1206 1243//1206 +f 1075//1206 1243//1206 1084//1206 +f 1083//1207 1107//1207 1244//1207 +f 1083//1198 1244//1198 1235//1198 +f 1147//1208 1245//1208 1175//1208 +f 1147//1208 1212//1208 1245//1208 +f 1176//1177 1246//1177 1213//1177 +f 1176//1209 1205//1209 1246//1209 +f 1201//1210 1247//1210 1248//1210 +f 1201//1195 1248//1195 1232//1195 +f 1191//1211 1249//1211 1199//1211 +f 1191//1211 1231//1211 1249//1211 +f 1201//1165 1200//1165 1247//1165 +f 1126//1091 1250//1091 1127//1091 +f 1126//1212 1251//1212 1250//1212 +f 1126//1103 1139//1103 1251//1103 +f 993//1213 1128//1213 1252//1213 +f 993//1213 1252//1213 1140//1213 +f 1162//1214 1253//1214 1210//1214 +f 1162//1214 1199//1214 1253//1214 +f 1200//1175 1211//1175 1254//1175 +f 1200//1215 1254//1215 1247//1215 +f 1094//1202 1255//1202 1239//1202 +f 1094//1216 1112//1216 1255//1216 +f 1081//1217 1256//1217 1093//1217 +f 1081//1217 1240//1217 1256//1217 +f 1018//1218 1140//1218 1257//1218 +f 1018//1218 1257//1218 1157//1218 +f 1139//1219 1229//1219 1251//1219 +f 1185//1220 1258//1220 1186//1220 +f 1185//1220 1259//1220 1258//1220 +f 1185//1221 1206//1221 1259//1221 +f 1187//1222 1260//1222 1261//1222 +f 1187//1222 1261//1222 1188//1222 +f 1187//1223 1220//1223 1260//1223 +f 1056//1224 1196//1224 1262//1224 +f 1056//1224 1262//1224 1128//1224 +f 1127//1225 1250//1225 1263//1225 +f 1127//1160 1263//1160 1195//1160 +f 1172//1226 1213//1226 1264//1226 +f 1172//1178 1264//1178 1214//1178 +f 1129//1227 1265//1227 1171//1227 +f 1129//1227 1215//1227 1265//1227 +f 1151//1228 1230//1228 1266//1228 +f 1151//1229 1266//1229 1167//1229 +f 1168//1192 1267//1192 1229//1192 +f 1168//1145 1180//1145 1268//1145 +f 1168//1230 1268//1230 1267//1230 +f 1174//1231 1269//1231 1211//1231 +f 1174//1173 1209//1173 1269//1173 +f 1124//1232 1173//1232 1208//1232 +f 1084//1233 1243//1233 1270//1233 +f 1084//1233 1270//1233 1108//1233 +f 1107//1234 1141//1234 1271//1234 +f 1107//1207 1271//1207 1244//1207 +f 1202//1235 1221//1235 1272//1235 +f 1202//1201 1272//1201 1238//1201 +f 1182//1236 1273//1236 1203//1236 +f 1182//1236 1237//1236 1273//1236 +f 854//1237 1274//1237 1177//1237 +f 854//1237 969//1237 1274//1237 +f 970//1238 1214//1238 1099//1238 +f 1180//552 597//552 1268//552 +f 1167//552 1266//552 590//552 +f 1093//1239 1275//1239 1111//1239 +f 1093//1239 1256//1239 1275//1239 +f 1112//1240 1133//1240 1276//1240 +f 1112//1216 1276//1216 1255//1216 +f 1132//1241 1226//1241 1277//1241 +f 1132//1162 1277//1162 1197//1162 +f 1034//1242 1278//1242 1131//1242 +f 1034//1242 1198//1242 1278//1242 +f 1175//1243 1279//1243 1204//1243 +f 1175//1243 1245//1243 1279//1243 +f 1205//1209 1280//1209 1246//1209 +f 1205//1244 1207//1244 1280//1244 +f 1068//1245 1224//1245 1281//1245 +f 1068//1245 1281//1245 1135//1245 +f 1136//1246 1195//1246 1282//1246 +f 1136//1187 1282//1187 1223//1187 +f 1266//1247 1230//1247 1283//1247 +f 1268//1248 1284//1248 1267//1248 +f 1268//552 597//552 1284//552 +f 1266//552 1283//552 590//552 +f 1206//1221 1285//1221 1259//1221 +f 1206//1249 1204//1249 1285//1249 +f 1188//1250 1261//1250 1286//1250 +f 1188//1250 1286//1250 1207//1250 +f 1170//1251 1287//1251 1288//1251 +f 1170//1251 1169//1251 1287//1251 +f 1170//1252 1288//1252 1183//1252 +f 1204//1249 1279//1249 1285//1249 +f 1207//1244 1286//1244 1280//1244 +f 1221//1253 1242//1253 1289//1253 +f 1221//1235 1289//1235 1272//1235 +f 1203//1254 1290//1254 1222//1254 +f 1203//1254 1273//1254 1290//1254 +f 1227//1205 1291//1205 1242//1205 +f 1227//1255 1232//1255 1291//1255 +f 1193//1256 1292//1256 1228//1256 +f 1193//1256 1241//1256 1292//1256 +f 1111//1257 1293//1257 1134//1257 +f 1111//1257 1275//1257 1293//1257 +f 1133//1258 1197//1258 1294//1258 +f 1133//1240 1294//1240 1276//1240 +f 1228//1259 1295//1259 1231//1259 +f 1228//1259 1292//1259 1295//1259 +f 1232//1260 1248//1260 1296//1260 +f 1232//1255 1296//1255 1291//1255 +f 1108//1261 1270//1261 1297//1261 +f 1108//1261 1297//1261 1142//1261 +f 1141//1262 1178//1262 1298//1262 +f 1141//1234 1298//1234 1271//1234 +f 1186//1263 1299//1263 1219//1263 +f 1186//1263 1258//1263 1299//1263 +f 1220//1223 1300//1223 1260//1223 +f 1220//1264 1238//1264 1300//1264 +f 1169//1265 1301//1265 1287//1265 +f 1169//1265 1184//1265 1301//1265 +f 1183//1252 1288//1252 1302//1252 +f 1183//1266 1302//1266 1209//1266 +f 1211//1267 1303//1267 1254//1267 +f 1211//1268 1269//1268 1303//1268 +f 1173//1269 1304//1269 1208//1269 +f 1173//1270 1210//1270 1304//1270 +f 1213//1271 1246//1271 1305//1271 +f 1213//1226 1305//1226 1264//1226 +f 1171//1272 1306//1272 1212//1272 +f 1171//1272 1265//1272 1306//1272 +f 1247//1210 1307//1210 1248//1210 +f 1199//1273 1308//1273 1253//1273 +f 1199//1273 1249//1273 1308//1273 +f 1247//1215 1254//1215 1309//1215 +f 1247//1274 1309//1274 1307//1274 +f 1231//1275 1310//1275 1249//1275 +f 1231//1275 1295//1275 1310//1275 +f 1248//1260 1311//1260 1296//1260 +f 1248//1276 1307//1276 1311//1276 +f 1177//1277 1312//1277 1215//1277 +f 1177//1277 1274//1277 1312//1277 +f 1214//1238 1313//1238 1099//1238 +f 1214//1278 1264//1278 1313//1278 +f 1222//1279 1314//1279 1241//1279 +f 1222//1279 1290//1279 1314//1279 +f 1242//1280 1291//1280 1315//1280 +f 1242//1253 1315//1253 1289//1253 +f 1219//1281 1316//1281 1237//1281 +f 1219//1281 1299//1281 1316//1281 +f 1238//1264 1317//1264 1300//1264 +f 1238//1282 1272//1282 1317//1282 +f 1184//1283 1318//1283 1301//1283 +f 1184//1283 1208//1283 1318//1283 +f 1209//1266 1302//1266 1319//1266 +f 1209//1284 1319//1284 1269//1284 +f 1246//1285 1280//1285 1320//1285 +f 1246//1271 1320//1271 1305//1271 +f 1212//1286 1321//1286 1245//1286 +f 1212//1286 1306//1286 1321//1286 +f 1142//1287 1297//1287 1322//1287 +f 1142//1287 1322//1287 1179//1287 +f 1178//1288 1223//1288 1323//1288 +f 1178//1262 1323//1262 1298//1262 +f 1195//1246 1324//1246 1282//1246 +f 1195//1289 1263//1289 1324//1289 +f 1135//1290 1281//1290 1325//1290 +f 1135//1290 1325//1290 1196//1290 +f 1260//1291 1300//1291 1326//1291 +f 1260//1292 1326//1292 1327//1292 +f 1260//1292 1327//1292 1261//1292 +f 1259//1293 1328//1293 1258//1293 +f 1259//1293 1329//1293 1328//1293 +f 1259//1294 1285//1294 1329//1294 +f 1210//1295 1330//1295 1304//1295 +f 1210//1296 1253//1296 1330//1296 +f 1254//1297 1303//1297 1309//1297 +f 1157//1298 1257//1298 1331//1298 +f 1157//1298 1331//1298 1230//1298 +f 1229//1299 1267//1299 1332//1299 +f 1229//1219 1332//1219 1251//1219 +f 1237//1300 1333//1300 1273//1300 +f 1237//1300 1316//1300 1333//1300 +f 1272//1282 1334//1282 1317//1282 +f 1272//1301 1289//1301 1334//1301 +f 1102//1302 1335//1302 1216//1302 +f 1102//1302 1225//1302 1335//1302 +f 1218//1303 1336//1303 1337//1303 +f 1218//1189 1337//1189 1226//1189 +f 1218//1181 1217//1181 1336//1181 +f 1215//1304 1338//1304 1265//1304 +f 1215//1304 1312//1304 1338//1304 +f 1264//1278 1339//1278 1313//1278 +f 1264//1305 1305//1305 1339//1305 +f 1134//1306 1340//1306 1198//1306 +f 1134//1306 1293//1306 1340//1306 +f 1197//1307 1277//1307 1341//1307 +f 1197//1258 1341//1258 1294//1258 +f 1291//1280 1342//1280 1315//1280 +f 1291//1308 1296//1308 1342//1308 +f 1241//1309 1343//1309 1292//1309 +f 1241//1309 1314//1309 1343//1309 +f 1280//1310 1286//1310 1344//1310 +f 1280//1285 1344//1285 1320//1285 +f 1245//1311 1345//1311 1279//1311 +f 1245//1311 1321//1311 1345//1311 +f 1292//1312 1346//1312 1295//1312 +f 1292//1312 1343//1312 1346//1312 +f 1296//1313 1311//1313 1347//1313 +f 1296//1308 1347//1308 1342//1308 +f 1249//1314 1348//1314 1308//1314 +f 1249//1314 1310//1314 1348//1314 +f 1307//1274 1309//1274 1349//1274 +f 1307//1276 1350//1276 1311//1276 +f 1307//1315 1349//1315 1350//1315 +f 1273//1316 1351//1316 1290//1316 +f 1273//1316 1333//1316 1351//1316 +f 1289//1301 1352//1301 1334//1301 +f 1289//1317 1315//1317 1352//1317 +f 1230//1318 1331//1318 1353//1318 +f 1230//1247 1353//1247 1283//1247 +f 1267//1248 1284//1248 1354//1248 +f 1267//1319 1354//1319 1355//1319 +f 1267//1299 1355//1299 1332//1299 +f 1261//1320 1327//1320 1356//1320 +f 1261//1320 1356//1320 1286//1320 +f 1285//1294 1357//1294 1329//1294 +f 1285//1321 1279//1321 1357//1321 +f 1251//1322 1332//1322 1358//1322 +f 1251//1212 1358//1212 1250//1212 +f 1140//1323 1252//1323 1359//1323 +f 1140//1323 1359//1323 1257//1323 +f 1286//1310 1356//1310 1344//1310 +f 1279//1321 1345//1321 1357//1321 +f 1226//1324 1337//1324 1360//1324 +f 1226//1241 1360//1241 1277//1241 +f 1131//1325 1361//1325 1225//1325 +f 1131//1325 1278//1325 1361//1325 +f 1311//1326 1350//1326 1362//1326 +f 1311//1313 1362//1313 1347//1313 +f 1295//1327 1363//1327 1310//1327 +f 1295//1327 1346//1327 1363//1327 +f 1099//1328 1313//1328 1217//1328 +f 969//1329 1364//1329 1274//1329 +f 969//1329 1101//1329 1364//1329 +f 1284//552 597//552 1354//552 +f 1283//552 1353//552 590//552 +f 1208//1330 1365//1330 1318//1330 +f 1208//1330 1304//1330 1365//1330 +f 1269//1284 1319//1284 1366//1284 +f 1269//1331 1366//1331 1303//1331 +f 1300//1332 1317//1332 1367//1332 +f 1300//1291 1367//1291 1326//1291 +f 1258//1333 1368//1333 1299//1333 +f 1258//1333 1328//1333 1368//1333 +f 1179//1334 1322//1334 1369//1334 +f 1179//1334 1369//1334 1224//1334 +f 1223//1335 1282//1335 1370//1335 +f 1223//1288 1370//1288 1323//1288 +f 1128//1336 1262//1336 1371//1336 +f 1128//1336 1371//1336 1252//1336 +f 1250//1225 1372//1225 1263//1225 +f 1250//1337 1358//1337 1372//1337 +f 1290//1338 1373//1338 1314//1338 +f 1290//1338 1351//1338 1373//1338 +f 1315//1339 1342//1339 1374//1339 +f 1315//1317 1374//1317 1352//1317 +f 1309//1340 1375//1340 1349//1340 +f 1309//1341 1303//1341 1375//1341 +f 1253//1342 1376//1342 1330//1342 +f 1253//1343 1308//1343 1376//1343 +f 1265//1344 1377//1344 1306//1344 +f 1265//1344 1338//1344 1377//1344 +f 1305//1305 1378//1305 1339//1305 +f 1305//1345 1320//1345 1378//1345 +f 1196//1346 1325//1346 1379//1346 +f 1196//1346 1379//1346 1262//1346 +f 1263//1347 1372//1347 1380//1347 +f 1263//1289 1380//1289 1324//1289 +f 1317//1348 1334//1348 1381//1348 +f 1317//1332 1381//1332 1367//1332 +f 1299//1349 1382//1349 1316//1349 +f 1299//1349 1368//1349 1382//1349 +f 1313//1350 1339//1350 1383//1350 +f 1313//1328 1383//1328 1217//1328 +f 1274//1351 1384//1351 1312//1351 +f 1274//1351 1364//1351 1384//1351 +f 1353//1352 1331//1352 1385//1352 +f 1354//1353 1386//1353 1355//1353 +f 1354//552 597//552 1386//552 +f 1353//552 1385//552 590//552 +f 1235//1354 1244//1354 1387//1354 +f 1235//1355 1388//1355 1236//1355 +f 1235//1355 1387//1355 1388//1355 +f 1233//1356 1389//1356 1390//1356 +f 1233//1356 1390//1356 1234//1356 +f 1233//1357 1239//1357 1389//1357 +f 1236//1358 1391//1358 1240//1358 +f 1236//1358 1388//1358 1391//1358 +f 1239//1357 1392//1357 1389//1357 +f 1239//1359 1255//1359 1392//1359 +f 1244//1354 1393//1354 1387//1354 +f 1244//1360 1271//1360 1393//1360 +f 1234//1361 1390//1361 1394//1361 +f 1234//1361 1394//1361 1243//1361 +f 1334//1362 1352//1362 1395//1362 +f 1334//1348 1395//1348 1381//1348 +f 1316//1363 1396//1363 1333//1363 +f 1316//1363 1382//1363 1396//1363 +f 1306//1364 1397//1364 1321//1364 +f 1306//1364 1377//1364 1397//1364 +f 1320//1345 1398//1345 1378//1345 +f 1320//1365 1344//1365 1398//1365 +f 1350//1326 1399//1326 1362//1326 +f 1310//1366 1400//1366 1348//1366 +f 1310//1366 1363//1366 1400//1366 +f 1350//1315 1349//1315 1401//1315 +f 1350//1367 1401//1367 1399//1367 +f 1255//1359 1402//1359 1392//1359 +f 1255//1368 1276//1368 1402//1368 +f 1240//1369 1403//1369 1256//1369 +f 1240//1369 1391//1369 1403//1369 +f 1342//1339 1404//1339 1374//1339 +f 1342//1370 1347//1370 1404//1370 +f 1314//1371 1405//1371 1343//1371 +f 1314//1371 1373//1371 1405//1371 +f 1329//1372 1406//1372 1328//1372 +f 1329//1372 1407//1372 1406//1372 +f 1329//1373 1357//1373 1407//1373 +f 1326//1374 1408//1374 1409//1374 +f 1326//1374 1409//1374 1327//1374 +f 1326//1375 1367//1375 1408//1375 +f 1198//1376 1410//1376 1278//1376 +f 1198//1376 1340//1376 1410//1376 +f 1277//1377 1360//1377 1411//1377 +f 1277//1307 1411//1307 1341//1307 +f 1343//1378 1412//1378 1346//1378 +f 1343//1378 1405//1378 1412//1378 +f 1347//1379 1362//1379 1413//1379 +f 1347//1370 1413//1370 1404//1370 +f 1224//1380 1369//1380 1414//1380 +f 1224//1380 1414//1380 1281//1380 +f 1282//1381 1324//1381 1415//1381 +f 1282//1335 1415//1335 1370//1335 +f 1271//1382 1298//1382 1416//1382 +f 1271//1360 1416//1360 1393//1360 +f 1243//1383 1394//1383 1417//1383 +f 1243//1383 1417//1383 1270//1383 +f 1256//1384 1418//1384 1275//1384 +f 1256//1384 1403//1384 1418//1384 +f 1276//1385 1294//1385 1419//1385 +f 1276//1368 1419//1368 1402//1368 +f 1352//1386 1374//1386 1420//1386 +f 1352//1362 1420//1362 1395//1362 +f 1333//1387 1421//1387 1351//1387 +f 1333//1387 1396//1387 1421//1387 +f 1349//1388 1422//1388 1401//1388 +f 1349//1389 1375//1389 1422//1389 +f 1308//1390 1423//1390 1376//1390 +f 1308//1391 1348//1391 1423//1391 +f 1346//1392 1424//1392 1363//1392 +f 1346//1392 1412//1392 1424//1392 +f 1362//1379 1425//1379 1413//1379 +f 1362//1393 1399//1393 1425//1393 +f 1321//1394 1426//1394 1345//1394 +f 1321//1394 1397//1394 1426//1394 +f 1344//1365 1427//1365 1398//1365 +f 1344//1395 1356//1395 1427//1395 +f 1339//1350 1428//1350 1383//1350 +f 1339//1396 1378//1396 1428//1396 +f 1312//1397 1429//1397 1338//1397 +f 1312//1397 1384//1397 1429//1397 +f 1332//1322 1430//1322 1358//1322 +f 1332//1398 1355//1398 1430//1398 +f 1257//1399 1359//1399 1431//1399 +f 1257//1399 1431//1399 1331//1399 +f 1304//1400 1330//1400 1365//1400 +f 1303//1331 1366//1331 1432//1331 +f 1303//1401 1432//1401 1375//1401 +f 1357//1373 1433//1373 1407//1373 +f 1357//1402 1345//1402 1433//1402 +f 1327//1403 1409//1403 1434//1403 +f 1327//1403 1434//1403 1356//1403 +f 1345//1402 1426//1402 1433//1402 +f 1356//1395 1434//1395 1427//1395 +f 1275//1404 1435//1404 1293//1404 +f 1275//1404 1418//1404 1435//1404 +f 1294//1405 1341//1405 1436//1405 +f 1294//1385 1436//1385 1419//1385 +f 1351//1406 1437//1406 1373//1406 +f 1351//1406 1421//1406 1437//1406 +f 1374//1407 1404//1407 1438//1407 +f 1374//1386 1438//1386 1420//1386 +f 1298//1382 1439//1382 1416//1382 +f 1298//1408 1323//1408 1439//1408 +f 1270//1409 1417//1409 1440//1409 +f 1270//1409 1440//1409 1297//1409 +f 1328//1410 1441//1410 1368//1410 +f 1328//1410 1406//1410 1441//1410 +f 1367//1375 1442//1375 1408//1375 +f 1367//1411 1381//1411 1442//1411 +f 1331//1412 1431//1412 1443//1412 +f 1331//1352 1443//1352 1385//1352 +f 1355//1398 1444//1398 1430//1398 +f 1355//1353 1386//1353 1445//1353 +f 1355//1413 1445//1413 1444//1413 +f 1337//1303 1336//1303 1446//1303 +f 1337//1414 1446//1414 1447//1414 +f 1337//1324 1447//1324 1360//1324 +f 1225//1415 1448//1415 1335//1415 +f 1225//1415 1361//1415 1448//1415 +f 1101//1416 1449//1416 1364//1416 +f 1101//1416 1216//1416 1449//1416 +f 1217//1417 1383//1417 1336//1417 +f 1386//552 597//552 1445//552 +f 1385//552 1443//552 590//552 +f 1324//1381 1450//1381 1415//1381 +f 1324//1418 1380//1418 1450//1418 +f 1281//1419 1414//1419 1451//1419 +f 1281//1419 1451//1419 1325//1419 +f 1368//1420 1452//1420 1382//1420 +f 1368//1420 1441//1420 1452//1420 +f 1381//1411 1453//1411 1442//1411 +f 1381//1421 1395//1421 1453//1421 +f 1378//1422 1398//1422 1454//1422 +f 1378//1396 1454//1396 1428//1396 +f 1338//1423 1455//1423 1377//1423 +f 1338//1423 1429//1423 1455//1423 +f 1358//1424 1430//1424 1456//1424 +f 1358//1337 1456//1337 1372//1337 +f 1252//1425 1371//1425 1457//1425 +f 1252//1425 1457//1425 1359//1425 +f 1363//1426 1458//1426 1400//1426 +f 1363//1426 1424//1426 1458//1426 +f 1399//1367 1401//1367 1459//1367 +f 1399//1393 1460//1393 1425//1393 +f 1399//1427 1459//1427 1460//1427 +f 1323//1428 1370//1428 1461//1428 +f 1323//1408 1461//1408 1439//1408 +f 1297//1429 1440//1429 1462//1429 +f 1297//1429 1462//1429 1322//1429 +f 1330//1400 1463//1400 1365//1400 +f 1330//1400 1376//1400 1463//1400 +f 1375//1401 1464//1401 1422//1401 +f 1375//1401 1432//1401 1464//1401 +f 1404//1407 1465//1407 1438//1407 +f 1404//1430 1413//1430 1465//1430 +f 1373//1431 1466//1431 1405//1431 +f 1373//1431 1437//1431 1466//1431 +f 1401//1432 1467//1432 1459//1432 +f 1401//1433 1422//1433 1467//1433 +f 1348//1434 1468//1434 1423//1434 +f 1348//1435 1400//1435 1468//1435 +f 1382//1436 1469//1436 1396//1436 +f 1382//1436 1452//1436 1469//1436 +f 1395//1421 1470//1421 1453//1421 +f 1395//1437 1420//1437 1470//1437 +f 1405//1438 1471//1438 1412//1438 +f 1405//1438 1466//1438 1471//1438 +f 1413//1439 1425//1439 1472//1439 +f 1413//1430 1472//1430 1465//1430 +f 1372//1440 1456//1440 1473//1440 +f 1372//1347 1473//1347 1380//1347 +f 1262//1441 1379//1441 1474//1441 +f 1262//1441 1474//1441 1371//1441 +f 1293//1442 1475//1442 1340//1442 +f 1293//1442 1435//1442 1475//1442 +f 1341//1443 1411//1443 1476//1443 +f 1341//1405 1476//1405 1436//1405 +f 1364//1444 1477//1444 1384//1444 +f 1364//1444 1449//1444 1477//1444 +f 1383//1417 1478//1417 1336//1417 +f 1383//1445 1428//1445 1478//1445 +f 1278//1446 1479//1446 1361//1446 +f 1278//1446 1410//1446 1479//1446 +f 1360//1447 1447//1447 1480//1447 +f 1360//1377 1480//1377 1411//1377 +f 1398//1422 1481//1422 1454//1422 +f 1398//1448 1427//1448 1481//1448 +f 1377//1449 1482//1449 1397//1449 +f 1377//1449 1455//1449 1482//1449 +f 1425//1450 1460//1450 1483//1450 +f 1425//1439 1483//1439 1472//1439 +f 1412//1451 1484//1451 1424//1451 +f 1412//1451 1471//1451 1484//1451 +f 1408//1452 1485//1452 1486//1452 +f 1408//1452 1486//1452 1409//1452 +f 1408//1453 1442//1453 1485//1453 +f 1407//1454 1433//1454 1487//1454 +f 1407//1455 1488//1455 1406//1455 +f 1407//1455 1487//1455 1488//1455 +f 1396//1456 1489//1456 1421//1456 +f 1396//1456 1469//1456 1489//1456 +f 1420//1437 1490//1437 1470//1437 +f 1420//1457 1438//1457 1490//1457 +f 1325//1458 1451//1458 1491//1458 +f 1325//1458 1491//1458 1379//1458 +f 1380//1459 1473//1459 1492//1459 +f 1380//1418 1492//1418 1450//1418 +f 1370//1428 1493//1428 1461//1428 +f 1370//1460 1415//1460 1493//1460 +f 1322//1461 1462//1461 1494//1461 +f 1322//1461 1494//1461 1369//1461 +f 1427//1462 1434//1462 1495//1462 +f 1427//1448 1495//1448 1481//1448 +f 1397//1463 1496//1463 1426//1463 +f 1397//1463 1482//1463 1496//1463 +f 1421//1464 1497//1464 1437//1464 +f 1421//1464 1489//1464 1497//1464 +f 1438//1465 1465//1465 1498//1465 +f 1438//1457 1498//1457 1490//1457 +f 1409//1466 1486//1466 1499//1466 +f 1409//1466 1499//1466 1434//1466 +f 1433//1467 1426//1467 1500//1467 +f 1433//1454 1500//1454 1487//1454 +f 1376//1468 1423//1468 1463//1468 +f 1422//1469 1464//1469 1467//1469 +f 1434//1462 1499//1462 1495//1462 +f 1426//1467 1496//1467 1500//1467 +f 1443//1470 1431//1470 1501//1470 +f 1445//1471 1502//1471 1444//1471 +f 1445//552 597//552 1502//552 +f 1443//552 1501//552 590//552 +f 1384//1472 1503//1472 1429//1472 +f 1384//1472 1477//1472 1503//1472 +f 1428//1445 1504//1445 1478//1445 +f 1428//1473 1454//1473 1504//1473 +f 1442//1453 1505//1453 1485//1453 +f 1442//1474 1453//1474 1505//1474 +f 1406//1475 1506//1475 1441//1475 +f 1406//1475 1488//1475 1506//1475 +f 1359//1476 1457//1476 1507//1476 +f 1359//1476 1507//1476 1431//1476 +f 1430//1477 1444//1477 1508//1477 +f 1430//1424 1508//1424 1456//1424 +f 1460//1450 1509//1450 1483//1450 +f 1424//1478 1510//1478 1458//1478 +f 1424//1478 1484//1478 1510//1478 +f 1460//1427 1459//1427 1511//1427 +f 1460//1479 1511//1479 1509//1479 +f 1400//1480 1512//1480 1468//1480 +f 1400//1480 1458//1480 1512//1480 +f 1459//1481 1467//1481 1513//1481 +f 1459//1482 1513//1482 1511//1482 +f 1453//1483 1470//1483 1514//1483 +f 1453//1474 1514//1474 1505//1474 +f 1441//1484 1515//1484 1452//1484 +f 1441//1484 1506//1484 1515//1484 +f 1465//1465 1516//1465 1498//1465 +f 1465//1485 1472//1485 1516//1485 +f 1437//1486 1517//1486 1466//1486 +f 1437//1486 1497//1486 1517//1486 +f 1340//1487 1518//1487 1410//1487 +f 1340//1487 1475//1487 1518//1487 +f 1411//1488 1480//1488 1519//1488 +f 1411//1443 1519//1443 1476//1443 +f 1431//1489 1507//1489 1520//1489 +f 1431//1470 1520//1470 1501//1470 +f 1444//1471 1502//1471 1521//1471 +f 1444//1490 1521//1490 1522//1490 +f 1444//1477 1522//1477 1508//1477 +f 1369//1491 1494//1491 1523//1491 +f 1369//1491 1523//1491 1414//1491 +f 1415//1492 1450//1492 1524//1492 +f 1415//1460 1524//1460 1493//1460 +f 1389//1493 1392//1493 1525//1493 +f 1389//1494 1525//1494 1526//1494 +f 1389//1494 1526//1494 1390//1494 +f 1387//1495 1527//1495 1388//1495 +f 1387//1495 1528//1495 1527//1495 +f 1387//1496 1393//1496 1528//1496 +f 1466//1497 1529//1497 1471//1497 +f 1466//1497 1517//1497 1529//1497 +f 1472//1498 1483//1498 1530//1498 +f 1472//1485 1530//1485 1516//1485 +f 1429//1499 1531//1499 1455//1499 +f 1429//1499 1503//1499 1531//1499 +f 1454//1473 1532//1473 1504//1473 +f 1454//1500 1481//1500 1532//1500 +f 1392//1501 1402//1501 1533//1501 +f 1392//1493 1533//1493 1525//1493 +f 1388//1502 1534//1502 1391//1502 +f 1388//1502 1527//1502 1534//1502 +f 1390//1503 1526//1503 1535//1503 +f 1390//1503 1535//1503 1394//1503 +f 1393//1496 1536//1496 1528//1496 +f 1393//1504 1416//1504 1536//1504 +f 1288//1505 1537//1505 1538//1505 +f 1288//1505 1287//1505 1537//1505 +f 1288//1506 1538//1506 1302//1506 +f 1216//1507 1539//1507 1449//1507 +f 1216//1507 1335//1507 1539//1507 +f 1336//1508 1478//1508 1446//1508 +f 1502//552 597//552 1521//552 +f 1501//552 1520//552 590//552 +f 1470//1483 1540//1483 1514//1483 +f 1470//1509 1490//1509 1540//1509 +f 1452//1510 1541//1510 1469//1510 +f 1452//1510 1515//1510 1541//1510 +f 1402//1511 1419//1511 1542//1511 +f 1402//1501 1542//1501 1533//1501 +f 1391//1512 1543//1512 1403//1512 +f 1391//1512 1534//1512 1543//1512 +f 1471//1513 1544//1513 1484//1513 +f 1471//1513 1529//1513 1544//1513 +f 1483//1498 1545//1498 1530//1498 +f 1483//1514 1509//1514 1545//1514 +f 1302//1515 1546//1515 1319//1515 +f 1302//1506 1538//1506 1546//1506 +f 1287//1516 1547//1516 1537//1516 +f 1287//1516 1301//1516 1547//1516 +f 1423//1468 1548//1468 1463//1468 +f 1423//1468 1468//1468 1548//1468 +f 1467//1469 1549//1469 1513//1469 +f 1467//1469 1464//1469 1549//1469 +f 1394//1517 1535//1517 1550//1517 +f 1394//1517 1550//1517 1417//1517 +f 1416//1504 1551//1504 1536//1504 +f 1416//1518 1439//1518 1551//1518 +f 1419//1519 1436//1519 1552//1519 +f 1419//1511 1552//1511 1542//1511 +f 1403//1520 1553//1520 1418//1520 +f 1403//1520 1543//1520 1553//1520 +f 1456//1440 1554//1440 1473//1440 +f 1456//1521 1508//1521 1554//1521 +f 1371//1522 1474//1522 1555//1522 +f 1371//1522 1555//1522 1457//1522 +f 1469//1523 1556//1523 1489//1523 +f 1469//1523 1541//1523 1556//1523 +f 1490//1524 1498//1524 1557//1524 +f 1490//1509 1557//1509 1540//1509 +f 1361//1525 1558//1525 1448//1525 +f 1361//1525 1479//1525 1558//1525 +f 1447//1526 1559//1526 1560//1526 +f 1447//1447 1560//1447 1480//1447 +f 1447//1414 1446//1414 1559//1414 +f 1455//1527 1561//1527 1482//1527 +f 1455//1527 1531//1527 1561//1527 +f 1481//1500 1562//1500 1532//1500 +f 1481//1528 1495//1528 1562//1528 +f 1487//1529 1500//1529 1563//1529 +f 1487//1530 1564//1530 1488//1530 +f 1487//1530 1563//1530 1564//1530 +f 1485//1531 1565//1531 1566//1531 +f 1485//1531 1566//1531 1486//1531 +f 1485//1532 1505//1532 1565//1532 +f 1319//1533 1567//1533 1366//1533 +f 1319//1515 1546//1515 1567//1515 +f 1301//1534 1568//1534 1547//1534 +f 1301//1534 1318//1534 1568//1534 +f 1449//1535 1569//1535 1477//1535 +f 1449//1535 1539//1535 1569//1535 +f 1478//1536 1504//1536 1570//1536 +f 1478//1508 1570//1508 1446//1508 +f 1436//1519 1571//1519 1552//1519 +f 1436//1537 1476//1537 1571//1537 +f 1418//1538 1572//1538 1435//1538 +f 1418//1538 1553//1538 1572//1538 +f 1417//1539 1550//1539 1573//1539 +f 1417//1539 1573//1539 1440//1539 +f 1439//1518 1574//1518 1551//1518 +f 1439//1540 1461//1540 1574//1540 +f 1489//1541 1575//1541 1497//1541 +f 1489//1541 1556//1541 1575//1541 +f 1498//1542 1516//1542 1576//1542 +f 1498//1524 1576//1524 1557//1524 +f 1450//1492 1577//1492 1524//1492 +f 1450//1543 1492//1543 1577//1543 +f 1414//1544 1523//1544 1578//1544 +f 1414//1544 1578//1544 1451//1544 +f 1511//1545 1579//1545 1580//1545 +f 1511//1482 1513//1482 1579//1482 +f 1458//1546 1581//1546 1512//1546 +f 1458//1546 1510//1546 1581//1546 +f 1511//1479 1580//1479 1509//1479 +f 1482//1547 1582//1547 1496//1547 +f 1482//1547 1561//1547 1582//1547 +f 1495//1528 1583//1528 1562//1528 +f 1495//1548 1499//1548 1583//1548 +f 1484//1549 1584//1549 1510//1549 +f 1484//1549 1544//1549 1584//1549 +f 1509//1514 1585//1514 1545//1514 +f 1509//1550 1580//1550 1585//1550 +f 1500//1529 1586//1529 1563//1529 +f 1500//1551 1496//1551 1586//1551 +f 1486//1552 1566//1552 1587//1552 +f 1486//1552 1587//1552 1499//1552 +f 1473//1459 1588//1459 1492//1459 +f 1473//1553 1554//1553 1588//1553 +f 1379//1554 1491//1554 1589//1554 +f 1379//1554 1589//1554 1474//1554 +f 1496//1551 1582//1551 1586//1551 +f 1499//1548 1587//1548 1583//1548 +f 1488//1555 1590//1555 1506//1555 +f 1488//1555 1564//1555 1590//1555 +f 1505//1532 1591//1532 1565//1532 +f 1505//1556 1514//1556 1591//1556 +f 1477//1557 1592//1557 1503//1557 +f 1477//1557 1569//1557 1592//1557 +f 1504//1558 1532//1558 1593//1558 +f 1504//1536 1593//1536 1570//1536 +f 1440//1559 1573//1559 1594//1559 +f 1440//1559 1594//1559 1462//1559 +f 1461//1540 1595//1540 1574//1540 +f 1461//1560 1493//1560 1595//1560 +f 1468//1561 1596//1561 1548//1561 +f 1468//1561 1512//1561 1596//1561 +f 1513//1562 1549//1562 1579//1562 +f 1410//1563 1597//1563 1479//1563 +f 1410//1563 1518//1563 1597//1563 +f 1480//1564 1560//1564 1598//1564 +f 1480//1488 1598//1488 1519//1488 +f 1366//1565 1599//1565 1432//1565 +f 1366//1533 1567//1533 1599//1533 +f 1318//1566 1600//1566 1568//1566 +f 1318//1566 1365//1566 1600//1566 +f 1516//1542 1601//1542 1576//1542 +f 1516//1567 1530//1567 1601//1567 +f 1497//1568 1602//1568 1517//1568 +f 1497//1568 1575//1568 1602//1568 +f 1506//1569 1603//1569 1515//1569 +f 1506//1569 1590//1569 1603//1569 +f 1514//1556 1604//1556 1591//1556 +f 1514//1570 1540//1570 1604//1570 +f 1517//1571 1605//1571 1529//1571 +f 1517//1571 1602//1571 1605//1571 +f 1530//1572 1545//1572 1606//1572 +f 1530//1567 1606//1567 1601//1567 +f 1476//1537 1607//1537 1571//1537 +f 1476//1573 1519//1573 1607//1573 +f 1435//1574 1608//1574 1475//1574 +f 1435//1574 1572//1574 1608//1574 +f 1508//1575 1522//1575 1609//1575 +f 1508//1521 1609//1521 1554//1521 +f 1457//1576 1555//1576 1610//1576 +f 1457//1576 1610//1576 1507//1576 +f 1545//1577 1585//1577 1611//1577 +f 1545//1572 1611//1572 1606//1572 +f 1529//1578 1612//1578 1544//1578 +f 1529//1578 1605//1578 1612//1578 +f 1451//1579 1578//1579 1613//1579 +f 1451//1579 1613//1579 1491//1579 +f 1492//1580 1588//1580 1614//1580 +f 1492//1543 1614//1543 1577//1543 +f 1540//1570 1615//1570 1604//1570 +f 1540//1581 1557//1581 1615//1581 +f 1515//1582 1616//1582 1541//1582 +f 1515//1582 1603//1582 1616//1582 +f 1503//1583 1617//1583 1531//1583 +f 1503//1583 1592//1583 1617//1583 +f 1532//1584 1562//1584 1618//1584 +f 1532//1558 1618//1558 1593//1558 +f 1520//1585 1507//1585 1619//1585 +f 1521//1586 1620//1586 1522//1586 +f 1521//552 597//552 1620//552 +f 1520//552 1619//552 590//552 +f 1462//1587 1594//1587 1621//1587 +f 1462//1587 1621//1587 1494//1587 +f 1493//1560 1622//1560 1595//1560 +f 1493//1588 1524//1588 1622//1588 +f 1507//1589 1610//1589 1623//1589 +f 1507//1585 1623//1585 1619//1585 +f 1522//1575 1624//1575 1609//1575 +f 1522//1590 1620//1590 1624//1590 +f 1446//1591 1570//1591 1559//1591 +f 1335//1592 1625//1592 1539//1592 +f 1335//1592 1448//1592 1625//1592 +f 1541//1593 1626//1593 1556//1593 +f 1541//1593 1616//1593 1626//1593 +f 1557//1594 1576//1594 1627//1594 +f 1557//1581 1627//1581 1615//1581 +f 1620//1595 1628//1595 1624//1595 +f 1620//552 597//552 1628//552 +f 1619//552 1623//552 590//552 +f 1580//1596 1629//1596 1630//1596 +f 1580//1545 1579//1545 1629//1545 +f 1510//1597 1631//1597 1581//1597 +f 1510//1597 1584//1597 1631//1597 +f 1580//1550 1630//1550 1585//1550 +f 1531//1598 1632//1598 1561//1598 +f 1531//1598 1617//1598 1632//1598 +f 1562//1599 1583//1599 1633//1599 +f 1562//1584 1633//1584 1618//1584 +f 1563//1600 1586//1600 1634//1600 +f 1563//1601 1635//1601 1564//1601 +f 1563//1601 1634//1601 1635//1601 +f 1565//1602 1591//1602 1636//1602 +f 1565//1603 1636//1603 1637//1603 +f 1565//1603 1637//1603 1566//1603 +f 1585//1577 1638//1577 1611//1577 +f 1544//1604 1639//1604 1584//1604 +f 1544//1604 1612//1604 1639//1604 +f 1585//1605 1630//1605 1638//1605 +f 1556//1606 1640//1606 1575//1606 +f 1556//1606 1626//1606 1640//1606 +f 1576//1607 1601//1607 1641//1607 +f 1576//1594 1641//1594 1627//1594 +f 1365//1608 1642//1608 1600//1608 +f 1365//1608 1463//1608 1642//1608 +f 1432//1565 1599//1565 1643//1565 +f 1432//1609 1643//1609 1464//1609 +f 1579//1610 1644//1610 1629//1610 +f 1512//1611 1645//1611 1596//1611 +f 1512//1611 1581//1611 1645//1611 +f 1579//1612 1549//1612 1644//1612 +f 1474//1613 1589//1613 1646//1613 +f 1474//1613 1646//1613 1555//1613 +f 1554//1553 1647//1553 1588//1553 +f 1554//1614 1609//1614 1647//1614 +f 1570//1615 1593//1615 1648//1615 +f 1570//1591 1648//1591 1559//1591 +f 1539//1616 1649//1616 1569//1616 +f 1539//1616 1625//1616 1649//1616 +f 1561//1617 1650//1617 1582//1617 +f 1561//1617 1632//1617 1650//1617 +f 1583//1618 1587//1618 1651//1618 +f 1583//1599 1651//1599 1633//1599 +f 1519//1573 1652//1573 1607//1573 +f 1519//1619 1598//1619 1652//1619 +f 1475//1620 1653//1620 1518//1620 +f 1475//1620 1608//1620 1653//1620 +f 1494//1621 1621//1621 1654//1621 +f 1494//1621 1654//1621 1523//1621 +f 1524//1622 1577//1622 1655//1622 +f 1524//1588 1655//1588 1622//1588 +f 1586//1623 1582//1623 1656//1623 +f 1586//1600 1656//1600 1634//1600 +f 1566//1624 1637//1624 1657//1624 +f 1566//1624 1657//1624 1587//1624 +f 1582//1623 1650//1623 1656//1623 +f 1587//1618 1657//1618 1651//1618 +f 1564//1625 1658//1625 1590//1625 +f 1564//1625 1635//1625 1658//1625 +f 1591//1626 1604//1626 1659//1626 +f 1591//1602 1659//1602 1636//1602 +f 1479//1627 1660//1627 1558//1627 +f 1479//1627 1597//1627 1660//1627 +f 1560//1526 1559//1526 1661//1526 +f 1560//1628 1661//1628 1662//1628 +f 1560//1564 1662//1564 1598//1564 +f 1601//1607 1663//1607 1641//1607 +f 1601//1629 1606//1629 1663//1629 +f 1575//1630 1664//1630 1602//1630 +f 1575//1630 1640//1630 1664//1630 +f 1525//1631 1533//1631 1665//1631 +f 1525//1632 1665//1632 1666//1632 +f 1525//1632 1666//1632 1526//1632 +f 1528//1633 1667//1633 1527//1633 +f 1528//1633 1668//1633 1667//1633 +f 1528//1634 1536//1634 1668//1634 +f 1602//1635 1669//1635 1605//1635 +f 1602//1635 1664//1635 1669//1635 +f 1606//1636 1611//1636 1670//1636 +f 1606//1629 1670//1629 1663//1629 +f 1533//1637 1542//1637 1671//1637 +f 1533//1631 1671//1631 1665//1631 +f 1527//1638 1672//1638 1534//1638 +f 1527//1638 1667//1638 1672//1638 +f 1526//1639 1666//1639 1673//1639 +f 1526//1639 1673//1639 1535//1639 +f 1536//1634 1674//1634 1668//1634 +f 1536//1640 1551//1640 1674//1640 +f 1593//1641 1618//1641 1675//1641 +f 1593//1615 1675//1615 1648//1615 +f 1569//1642 1676//1642 1592//1642 +f 1569//1642 1649//1642 1676//1642 +f 1542//1643 1552//1643 1677//1643 +f 1542//1637 1677//1637 1671//1637 +f 1534//1644 1678//1644 1543//1644 +f 1534//1644 1672//1644 1678//1644 +f 1590//1645 1679//1645 1603//1645 +f 1590//1645 1658//1645 1679//1645 +f 1604//1646 1615//1646 1680//1646 +f 1604//1626 1680//1626 1659//1626 +f 1605//1647 1681//1647 1612//1647 +f 1605//1647 1669//1647 1681//1647 +f 1611//1636 1682//1636 1670//1636 +f 1611//1648 1638//1648 1682//1648 +f 1551//1640 1683//1640 1674//1640 +f 1551//1649 1574//1649 1683//1649 +f 1535//1650 1673//1650 1684//1650 +f 1535//1650 1684//1650 1550//1650 +f 1588//1580 1685//1580 1614//1580 +f 1588//1651 1647//1651 1685//1651 +f 1491//1652 1613//1652 1686//1652 +f 1491//1652 1686//1652 1589//1652 +f 1552//1653 1571//1653 1687//1653 +f 1552//1643 1687//1643 1677//1643 +f 1543//1654 1688//1654 1553//1654 +f 1543//1654 1678//1654 1688//1654 +f 1577//1622 1689//1622 1655//1622 +f 1577//1655 1614//1655 1689//1655 +f 1523//1656 1654//1656 1690//1656 +f 1523//1656 1690//1656 1578//1656 +f 1615//1657 1627//1657 1691//1657 +f 1615//1646 1691//1646 1680//1646 +f 1603//1658 1692//1658 1616//1658 +f 1603//1658 1679//1658 1692//1658 +f 1630//1659 1693//1659 1694//1659 +f 1630//1596 1629//1596 1693//1596 +f 1584//1660 1695//1660 1631//1660 +f 1584//1660 1639//1660 1695//1660 +f 1630//1605 1694//1605 1638//1605 +f 1571//1661 1607//1661 1696//1661 +f 1571//1653 1696//1653 1687//1653 +f 1553//1662 1697//1662 1572//1662 +f 1553//1662 1688//1662 1697//1662 +f 1618//1663 1633//1663 1698//1663 +f 1618//1641 1698//1641 1675//1641 +f 1592//1664 1699//1664 1617//1664 +f 1592//1664 1676//1664 1699//1664 +f 1629//1665 1700//1665 1693//1665 +f 1629//1666 1644//1666 1700//1666 +f 1581//1667 1701//1667 1645//1667 +f 1581//1667 1631//1667 1701//1667 +f 1574//1649 1702//1649 1683//1649 +f 1574//1668 1595//1668 1702//1668 +f 1550//1669 1684//1669 1703//1669 +f 1550//1669 1703//1669 1573//1669 +f 1555//1670 1646//1670 1704//1670 +f 1555//1670 1704//1670 1610//1670 +f 1609//1671 1624//1671 1705//1671 +f 1609//1614 1705//1614 1647//1614 +f 1627//1657 1706//1657 1691//1657 +f 1627//1672 1641//1672 1706//1672 +f 1616//1673 1707//1673 1626//1673 +f 1616//1673 1692//1673 1707//1673 +f 1464//1674 1708//1674 1549//1674 +f 1464//1609 1643//1609 1708//1609 +f 1463//1675 1709//1675 1642//1675 +f 1463//1675 1548//1675 1709//1675 +f 1612//1676 1710//1676 1639//1676 +f 1612//1676 1681//1676 1710//1676 +f 1638//1648 1711//1648 1682//1648 +f 1638//1677 1694//1677 1711//1677 +f 1598//1619 1712//1619 1652//1619 +f 1598//1678 1662//1678 1712//1678 +f 1518//1679 1713//1679 1597//1679 +f 1518//1679 1653//1679 1713//1679 +f 1610//1680 1704//1680 1714//1680 +f 1610//1681 1714//1681 1623//1681 +f 1624//1595 1628//1595 1715//1595 +f 1624//1682 1715//1682 1716//1682 +f 1624//1671 1716//1671 1705//1671 +f 1626//1683 1717//1683 1640//1683 +f 1626//1683 1707//1683 1717//1683 +f 1641//1684 1663//1684 1718//1684 +f 1641//1672 1718//1672 1706//1672 +f 1633//1685 1651//1685 1719//1685 +f 1633//1663 1719//1663 1698//1663 +f 1617//1686 1720//1686 1632//1686 +f 1617//1686 1699//1686 1720//1686 +f 1448//1687 1721//1687 1625//1687 +f 1448//1687 1558//1687 1721//1687 +f 1559//1688 1648//1688 1661//1688 +f 1628//552 597//552 1715//552 +f 1623//552 1714//552 590//552 +f 1595//1668 1722//1668 1702//1668 +f 1595//1689 1622//1689 1722//1689 +f 1573//1690 1703//1690 1723//1690 +f 1573//1690 1723//1690 1594//1690 +f 1636//1691 1659//1691 1724//1691 +f 1636//1692 1724//1692 1725//1692 +f 1636//1692 1725//1692 1637//1692 +f 1634//1693 1726//1693 1635//1693 +f 1634//1693 1727//1693 1726//1693 +f 1634//1694 1656//1694 1727//1694 +f 1578//1695 1690//1695 1728//1695 +f 1578//1695 1728//1695 1613//1695 +f 1614//1696 1685//1696 1729//1696 +f 1614//1655 1729//1655 1689//1655 +f 1607//1697 1652//1697 1730//1697 +f 1607//1661 1730//1661 1696//1661 +f 1572//1698 1731//1698 1608//1698 +f 1572//1698 1697//1698 1731//1698 +f 1651//1699 1657//1699 1732//1699 +f 1651//1685 1732//1685 1719//1685 +f 1632//1700 1733//1700 1650//1700 +f 1632//1700 1720//1700 1733//1700 +f 1637//1701 1725//1701 1734//1701 +f 1637//1701 1734//1701 1657//1701 +f 1656//1694 1735//1694 1727//1694 +f 1656//1702 1650//1702 1735//1702 +f 1714//1703 1704//1703 1736//1703 +f 1715//1704 1737//1704 1716//1704 +f 1715//552 597//552 1737//552 +f 1714//552 1736//552 590//552 +f 1663//1684 1738//1684 1718//1684 +f 1663//1705 1670//1705 1738//1705 +f 1640//1706 1739//1706 1664//1706 +f 1640//1706 1717//1706 1739//1706 +f 1657//1699 1734//1699 1732//1699 +f 1650//1702 1733//1702 1735//1702 +f 1625//1707 1740//1707 1649//1707 +f 1625//1707 1721//1707 1740//1707 +f 1648//1708 1675//1708 1741//1708 +f 1648//1688 1741//1688 1661//1688 +f 1664//1709 1742//1709 1669//1709 +f 1664//1709 1739//1709 1742//1709 +f 1670//1710 1682//1710 1743//1710 +f 1670//1705 1743//1705 1738//1705 +f 1659//1711 1680//1711 1744//1711 +f 1659//1691 1744//1691 1724//1691 +f 1635//1712 1745//1712 1658//1712 +f 1635//1712 1726//1712 1745//1712 +f 1622//1689 1746//1689 1722//1689 +f 1594//1713 1723//1713 1747//1713 +f 1594//1713 1747//1713 1621//1713 +f 1622//1714 1655//1714 1746//1714 +f 1682//1715 1711//1715 1748//1715 +f 1682//1710 1748//1710 1743//1710 +f 1669//1716 1749//1716 1681//1716 +f 1669//1716 1742//1716 1749//1716 +f 1647//1717 1705//1717 1750//1717 +f 1647//1651 1750//1651 1685//1651 +f 1589//1718 1686//1718 1751//1718 +f 1589//1718 1751//1718 1646//1718 +f 1639//1719 1752//1719 1695//1719 +f 1639//1719 1710//1719 1752//1719 +f 1694//1659 1693//1659 1753//1659 +f 1694//1720 1753//1720 1754//1720 +f 1694//1677 1754//1677 1711//1677 +f 1680//1721 1691//1721 1755//1721 +f 1680//1711 1755//1711 1744//1711 +f 1658//1722 1756//1722 1679//1722 +f 1658//1722 1745//1722 1756//1722 +f 1693//1723 1757//1723 1753//1723 +f 1693//1665 1700//1665 1757//1665 +f 1631//1724 1758//1724 1701//1724 +f 1631//1724 1695//1724 1758//1724 +f 1649//1725 1759//1725 1676//1725 +f 1649//1725 1740//1725 1759//1725 +f 1675//1726 1698//1726 1760//1726 +f 1675//1708 1760//1708 1741//1708 +f 1691//1727 1706//1727 1761//1727 +f 1691//1721 1761//1721 1755//1721 +f 1679//1728 1762//1728 1692//1728 +f 1679//1728 1756//1728 1762//1728 +f 1662//1678 1763//1678 1712//1678 +f 1662//1729 1764//1729 1763//1729 +f 1662//1628 1661//1628 1764//1628 +f 1597//1730 1765//1730 1660//1730 +f 1597//1730 1713//1730 1765//1730 +f 1652//1731 1712//1731 1766//1731 +f 1652//1697 1766//1697 1730//1697 +f 1608//1732 1767//1732 1653//1732 +f 1608//1732 1731//1732 1767//1732 +f 1621//1733 1747//1733 1768//1733 +f 1621//1733 1768//1733 1654//1733 +f 1655//1734 1689//1734 1769//1734 +f 1655//1714 1769//1714 1746//1714 +f 1711//1715 1770//1715 1748//1715 +f 1681//1735 1771//1735 1710//1735 +f 1681//1735 1749//1735 1771//1735 +f 1711//1736 1754//1736 1770//1736 +f 1706//1737 1718//1737 1772//1737 +f 1706//1727 1772//1727 1761//1727 +f 1692//1738 1773//1738 1707//1738 +f 1692//1738 1762//1738 1773//1738 +f 1549//1674 1708//1674 1774//1674 +f 1548//1739 1596//1739 1709//1739 +f 1549//1740 1774//1740 1644//1740 +f 1676//1741 1775//1741 1699//1741 +f 1676//1741 1759//1741 1775//1741 +f 1698//1742 1719//1742 1776//1742 +f 1698//1726 1776//1726 1760//1726 +f 1613//1743 1728//1743 1777//1743 +f 1613//1743 1777//1743 1686//1743 +f 1685//1696 1778//1696 1729//1696 +f 1685//1744 1750//1744 1778//1744 +f 1707//1745 1779//1745 1717//1745 +f 1707//1745 1773//1745 1779//1745 +f 1718//1746 1738//1746 1780//1746 +f 1718//1737 1780//1737 1772//1737 +f 1705//1717 1781//1717 1750//1717 +f 1705//1747 1716//1747 1781//1747 +f 1646//1748 1751//1748 1782//1748 +f 1646//1748 1782//1748 1704//1748 +f 1668//1749 1674//1749 1783//1749 +f 1668//1750 1784//1750 1667//1750 +f 1668//1750 1783//1750 1784//1750 +f 1665//1751 1785//1751 1786//1751 +f 1665//1751 1786//1751 1666//1751 +f 1665//1752 1671//1752 1785//1752 +f 1699//1753 1787//1753 1720//1753 +f 1699//1753 1775//1753 1787//1753 +f 1719//1754 1732//1754 1788//1754 +f 1719//1742 1788//1742 1776//1742 +f 1667//1755 1789//1755 1672//1755 +f 1667//1755 1784//1755 1789//1755 +f 1671//1752 1790//1752 1785//1752 +f 1671//1756 1677//1756 1790//1756 +f 1674//1757 1683//1757 1791//1757 +f 1674//1749 1791//1749 1783//1749 +f 1666//1758 1786//1758 1792//1758 +f 1666//1758 1792//1758 1673//1758 +f 1727//1759 1735//1759 1793//1759 +f 1727//1760 1794//1760 1726//1760 +f 1727//1760 1793//1760 1794//1760 +f 1724//1761 1744//1761 1795//1761 +f 1724//1762 1795//1762 1796//1762 +f 1724//1762 1796//1762 1725//1762 +f 1689//1734 1797//1734 1769//1734 +f 1689//1763 1729//1763 1797//1763 +f 1654//1764 1768//1764 1798//1764 +f 1654//1764 1798//1764 1690//1764 +f 1538//1765 1799//1765 1800//1765 +f 1538//1765 1537//1765 1799//1765 +f 1538//1766 1800//1766 1546//1766 +f 1704//1767 1782//1767 1801//1767 +f 1704//1703 1801//1703 1736//1703 +f 1716//1747 1802//1747 1781//1747 +f 1716//1704 1737//1704 1803//1704 +f 1716//1768 1803//1768 1802//1768 +f 1672//1769 1804//1769 1678//1769 +f 1672//1769 1789//1769 1804//1769 +f 1677//1756 1805//1756 1790//1756 +f 1677//1770 1687//1770 1805//1770 +f 1537//1771 1806//1771 1799//1771 +f 1537//1771 1547//1771 1806//1771 +f 1546//1766 1800//1766 1807//1766 +f 1546//1772 1807//1772 1567//1772 +f 1558//1773 1808//1773 1721//1773 +f 1558//1773 1660//1773 1808//1773 +f 1661//1774 1741//1774 1764//1774 +f 1737//552 597//552 1803//552 +f 1736//552 1801//552 590//552 +f 1738//1746 1809//1746 1780//1746 +f 1738//1775 1743//1775 1809//1775 +f 1717//1776 1810//1776 1739//1776 +f 1717//1776 1779//1776 1810//1776 +f 1673//1777 1792//1777 1811//1777 +f 1673//1777 1811//1777 1684//1777 +f 1683//1778 1702//1778 1812//1778 +f 1683//1757 1812//1757 1791//1757 +f 1720//1779 1813//1779 1733//1779 +f 1720//1779 1787//1779 1813//1779 +f 1732//1780 1734//1780 1814//1780 +f 1732//1754 1814//1754 1788//1754 +f 1678//1781 1815//1781 1688//1781 +f 1678//1781 1804//1781 1815//1781 +f 1687//1770 1816//1770 1805//1770 +f 1687//1782 1696//1782 1816//1782 +f 1739//1783 1817//1783 1742//1783 +f 1739//1783 1810//1783 1817//1783 +f 1743//1784 1748//1784 1818//1784 +f 1743//1775 1818//1775 1809//1775 +f 1753//1720 1819//1720 1754//1720 +f 1753//1785 1820//1785 1819//1785 +f 1753//1723 1757//1723 1820//1723 +f 1695//1786 1821//1786 1758//1786 +f 1695//1786 1752//1786 1821//1786 +f 1735//1787 1733//1787 1822//1787 +f 1735//1759 1822//1759 1793//1759 +f 1725//1788 1796//1788 1823//1788 +f 1725//1788 1823//1788 1734//1788 +f 1754//1789 1819//1789 1824//1789 +f 1710//1790 1825//1790 1752//1790 +f 1710//1790 1771//1790 1825//1790 +f 1754//1736 1824//1736 1770//1736 +f 1733//1787 1813//1787 1822//1787 +f 1734//1780 1823//1780 1814//1780 +f 1742//1791 1826//1791 1749//1791 +f 1742//1791 1817//1791 1826//1791 +f 1748//1784 1827//1784 1818//1784 +f 1748//1792 1770//1792 1827//1792 +f 1712//1793 1763//1793 1828//1793 +f 1712//1731 1828//1731 1766//1731 +f 1653//1794 1829//1794 1713//1794 +f 1653//1794 1767//1794 1829//1794 +f 1596//1795 1830//1795 1709//1795 +f 1596//1796 1645//1796 1830//1796 +f 1547//1797 1831//1797 1806//1797 +f 1547//1797 1568//1797 1831//1797 +f 1567//1772 1807//1772 1832//1772 +f 1567//1798 1832//1798 1599//1798 +f 1726//1799 1833//1799 1745//1799 +f 1726//1799 1794//1799 1833//1799 +f 1744//1800 1755//1800 1834//1800 +f 1744//1761 1834//1761 1795//1761 +f 1644//1740 1835//1740 1700//1740 +f 1644//1740 1774//1740 1835//1740 +f 1688//1801 1836//1801 1697//1801 +f 1688//1801 1815//1801 1836//1801 +f 1696//1782 1837//1782 1816//1782 +f 1696//1802 1730//1802 1837//1802 +f 1684//1803 1811//1803 1838//1803 +f 1684//1803 1838//1803 1703//1803 +f 1702//1804 1722//1804 1839//1804 +f 1702//1778 1839//1778 1812//1778 +f 1721//1805 1840//1805 1740//1805 +f 1721//1805 1808//1805 1840//1805 +f 1741//1806 1760//1806 1841//1806 +f 1741//1774 1841//1774 1764//1774 +f 1690//1807 1798//1807 1842//1807 +f 1690//1807 1842//1807 1728//1807 +f 1729//1808 1778//1808 1843//1808 +f 1729//1763 1843//1763 1797//1763 +f 1745//1809 1844//1809 1756//1809 +f 1745//1809 1833//1809 1844//1809 +f 1755//1810 1761//1810 1845//1810 +f 1755//1800 1845//1800 1834//1800 +f 1761//1811 1772//1811 1846//1811 +f 1761//1810 1846//1810 1845//1810 +f 1756//1812 1847//1812 1762//1812 +f 1756//1812 1844//1812 1847//1812 +f 1703//1813 1838//1813 1848//1813 +f 1703//1813 1848//1813 1723//1813 +f 1722//1814 1746//1814 1849//1814 +f 1722//1804 1849//1804 1839//1804 +f 1750//1815 1781//1815 1850//1815 +f 1750//1744 1850//1744 1778//1744 +f 1686//1816 1777//1816 1851//1816 +f 1686//1816 1851//1816 1751//1816 +f 1749//1817 1852//1817 1771//1817 +f 1749//1817 1826//1817 1852//1817 +f 1770//1792 1853//1792 1827//1792 +f 1770//1818 1824//1818 1853//1818 +f 1568//1819 1854//1819 1831//1819 +f 1568//1819 1600//1819 1854//1819 +f 1599//1798 1832//1798 1855//1798 +f 1599//1820 1855//1820 1643//1820 +f 1740//1821 1856//1821 1759//1821 +f 1740//1821 1840//1821 1856//1821 +f 1760//1822 1776//1822 1857//1822 +f 1760//1806 1857//1806 1841//1806 +f 1697//1823 1858//1823 1731//1823 +f 1697//1823 1836//1823 1858//1823 +f 1730//1802 1859//1802 1837//1802 +f 1730//1824 1766//1824 1859//1824 +f 1801//1825 1782//1825 1860//1825 +f 1803//1826 1861//1826 1802//1826 +f 1803//552 597//552 1861//552 +f 1801//552 1860//552 590//552 +f 1772//1827 1780//1827 1862//1827 +f 1772//1811 1862//1811 1846//1811 +f 1762//1828 1863//1828 1773//1828 +f 1762//1828 1847//1828 1863//1828 +f 1773//1829 1864//1829 1779//1829 +f 1773//1829 1863//1829 1864//1829 +f 1780//1830 1809//1830 1865//1830 +f 1780//1827 1865//1827 1862//1827 +f 1723//1831 1848//1831 1866//1831 +f 1723//1831 1866//1831 1747//1831 +f 1746//1832 1769//1832 1867//1832 +f 1746//1814 1867//1814 1849//1814 +f 1700//1833 1835//1833 1757//1833 +f 1645//1834 1701//1834 1830//1834 +f 1759//1835 1868//1835 1775//1835 +f 1759//1835 1856//1835 1868//1835 +f 1776//1836 1788//1836 1869//1836 +f 1776//1822 1869//1822 1857//1822 +f 1819//1789 1870//1789 1824//1789 +f 1819//1785 1820//1785 1871//1785 +f 1752//1837 1872//1837 1821//1837 +f 1752//1837 1825//1837 1872//1837 +f 1819//1838 1871//1838 1870//1838 +f 1763//1839 1873//1839 1874//1839 +f 1763//1793 1874//1793 1828//1793 +f 1713//1840 1875//1840 1765//1840 +f 1713//1840 1829//1840 1875//1840 +f 1763//1729 1764//1729 1873//1729 +f 1775//1841 1876//1841 1787//1841 +f 1775//1841 1868//1841 1876//1841 +f 1788//1842 1814//1842 1877//1842 +f 1788//1836 1877//1836 1869//1836 +f 1600//1843 1878//1843 1854//1843 +f 1600//1843 1642//1843 1878//1843 +f 1643//1820 1855//1820 1879//1820 +f 1643//1844 1879//1844 1708//1844 +f 1751//1845 1851//1845 1880//1845 +f 1751//1845 1880//1845 1782//1845 +f 1781//1846 1802//1846 1881//1846 +f 1781//1815 1881//1815 1850//1815 +f 1809//1830 1882//1830 1865//1830 +f 1809//1847 1818//1847 1882//1847 +f 1779//1848 1883//1848 1810//1848 +f 1779//1848 1864//1848 1883//1848 +f 1824//1849 1870//1849 1884//1849 +f 1771//1850 1885//1850 1825//1850 +f 1771//1850 1852//1850 1885//1850 +f 1824//1818 1884//1818 1853//1818 +f 1793//1851 1886//1851 1794//1851 +f 1793//1851 1887//1851 1886//1851 +f 1793//1852 1822//1852 1887//1852 +f 1795//1853 1834//1853 1888//1853 +f 1795//1854 1888//1854 1889//1854 +f 1795//1854 1889//1854 1796//1854 +f 1810//1855 1890//1855 1817//1855 +f 1810//1855 1883//1855 1890//1855 +f 1818//1856 1827//1856 1891//1856 +f 1818//1847 1891//1847 1882//1847 +f 1731//1857 1892//1857 1767//1857 +f 1731//1857 1858//1857 1892//1857 +f 1766//1824 1893//1824 1859//1824 +f 1766//1858 1828//1858 1893//1858 +f 1747//1859 1866//1859 1894//1859 +f 1747//1859 1894//1859 1768//1859 +f 1769//1860 1797//1860 1895//1860 +f 1769//1832 1895//1832 1867//1832 +f 1778//1861 1850//1861 1896//1861 +f 1778//1808 1896//1808 1843//1808 +f 1728//1862 1842//1862 1897//1862 +f 1728//1862 1897//1862 1777//1862 +f 1827//1863 1853//1863 1898//1863 +f 1827//1856 1898//1856 1891//1856 +f 1817//1864 1899//1864 1826//1864 +f 1817//1864 1890//1864 1899//1864 +f 1787//1865 1900//1865 1813//1865 +f 1787//1865 1876//1865 1900//1865 +f 1814//1866 1823//1866 1901//1866 +f 1814//1842 1901//1842 1877//1842 +f 1782//1867 1880//1867 1902//1867 +f 1782//1825 1902//1825 1860//1825 +f 1802//1826 1861//1826 1903//1826 +f 1802//1868 1903//1868 1904//1868 +f 1802//1846 1904//1846 1881//1846 +f 1822//1852 1905//1852 1887//1852 +f 1822//1869 1813//1869 1905//1869 +f 1796//1870 1889//1870 1906//1870 +f 1796//1870 1906//1870 1823//1870 +f 1764//1871 1841//1871 1873//1871 +f 1660//1872 1907//1872 1808//1872 +f 1660//1872 1765//1872 1907//1872 +f 1813//1869 1900//1869 1905//1869 +f 1823//1866 1906//1866 1901//1866 +f 1861//552 597//552 1903//552 +f 1860//552 1902//552 590//552 +f 1794//1873 1908//1873 1833//1873 +f 1794//1873 1886//1873 1908//1873 +f 1834//1874 1845//1874 1909//1874 +f 1834//1853 1909//1853 1888//1853 +f 1757//1875 1910//1875 1820//1875 +f 1757//1876 1835//1876 1910//1876 +f 1701//1877 1911//1877 1830//1877 +f 1701//1878 1758//1878 1911//1878 +f 1833//1879 1912//1879 1844//1879 +f 1833//1879 1908//1879 1912//1879 +f 1845//1880 1846//1880 1913//1880 +f 1845//1874 1913//1874 1909//1874 +f 1797//1860 1914//1860 1895//1860 +f 1797//1881 1843//1881 1914//1881 +f 1768//1882 1894//1882 1915//1882 +f 1768//1882 1915//1882 1798//1882 +f 1853//1863 1916//1863 1898//1863 +f 1826//1883 1917//1883 1852//1883 +f 1826//1883 1899//1883 1917//1883 +f 1853//1884 1884//1884 1916//1884 +f 1841//1871 1918//1871 1873//1871 +f 1841//1885 1857//1885 1918//1885 +f 1808//1886 1919//1886 1840//1886 +f 1808//1886 1907//1886 1919//1886 +f 1844//1887 1920//1887 1847//1887 +f 1844//1887 1912//1887 1920//1887 +f 1846//1888 1862//1888 1921//1888 +f 1846//1880 1921//1880 1913//1880 +f 1785//1889 1790//1889 1922//1889 +f 1785//1890 1922//1890 1923//1890 +f 1785//1890 1923//1890 1786//1890 +f 1783//1891 1791//1891 1924//1891 +f 1783//1892 1925//1892 1784//1892 +f 1783//1892 1924//1892 1925//1892 +f 1790//1893 1805//1893 1926//1893 +f 1790//1889 1926//1889 1922//1889 +f 1784//1894 1927//1894 1789//1894 +f 1784//1894 1925//1894 1927//1894 +f 1791//1891 1928//1891 1924//1891 +f 1791//1895 1812//1895 1928//1895 +f 1786//1896 1923//1896 1929//1896 +f 1786//1896 1929//1896 1792//1896 +f 1708//1897 1930//1897 1774//1897 +f 1642//1898 1931//1898 1878//1898 +f 1642//1898 1709//1898 1931//1898 +f 1708//1844 1879//1844 1930//1844 +f 1805//1893 1932//1893 1926//1893 +f 1789//1899 1933//1899 1804//1899 +f 1789//1899 1927//1899 1933//1899 +f 1805//1900 1816//1900 1932//1900 +f 1767//1901 1934//1901 1829//1901 +f 1767//1901 1892//1901 1934//1901 +f 1828//1858 1935//1858 1893//1858 +f 1828//1902 1874//1902 1935//1902 +f 1847//1903 1936//1903 1863//1903 +f 1847//1903 1920//1903 1936//1903 +f 1862//1904 1865//1904 1937//1904 +f 1862//1888 1937//1888 1921//1888 +f 1857//1885 1938//1885 1918//1885 +f 1857//1905 1869//1905 1938//1905 +f 1840//1906 1939//1906 1856//1906 +f 1840//1906 1919//1906 1939//1906 +f 1870//1849 1940//1849 1884//1849 +f 1825//1907 1941//1907 1872//1907 +f 1825//1908 1885//1908 1941//1908 +f 1870//1838 1871//1838 1942//1838 +f 1870//1909 1942//1909 1940//1909 +f 1812//1910 1839//1910 1943//1910 +f 1812//1895 1943//1895 1928//1895 +f 1792//1911 1929//1911 1944//1911 +f 1792//1911 1944//1911 1811//1911 +f 1816//1912 1837//1912 1945//1912 +f 1804//1913 1946//1913 1815//1913 +f 1804//1913 1933//1913 1946//1913 +f 1816//1900 1945//1900 1932//1900 +f 1850//1861 1947//1861 1896//1861 +f 1850//1914 1881//1914 1947//1914 +f 1777//1915 1897//1915 1948//1915 +f 1777//1915 1948//1915 1851//1915 +f 1863//1916 1949//1916 1864//1916 +f 1863//1916 1936//1916 1949//1916 +f 1865//1917 1882//1917 1950//1917 +f 1865//1904 1950//1904 1937//1904 +f 1798//1918 1915//1918 1951//1918 +f 1798//1918 1951//1918 1842//1918 +f 1843//1919 1896//1919 1952//1919 +f 1843//1881 1952//1881 1914//1881 +f 1837//1920 1859//1920 1953//1920 +f 1837//1912 1953//1912 1945//1912 +f 1815//1921 1954//1921 1836//1921 +f 1815//1921 1946//1921 1954//1921 +f 1839//1910 1955//1910 1943//1910 +f 1839//1922 1849//1922 1955//1922 +f 1811//1923 1944//1923 1956//1923 +f 1811//1923 1956//1923 1838//1923 +f 1869//1905 1957//1905 1938//1905 +f 1869//1924 1877//1924 1957//1924 +f 1856//1925 1958//1925 1868//1925 +f 1856//1925 1939//1925 1958//1925 +f 1884//1926 1940//1926 1959//1926 +f 1852//1927 1960//1927 1885//1927 +f 1852//1927 1917//1927 1960//1927 +f 1884//1884 1959//1884 1916//1884 +f 1882//1917 1961//1917 1950//1917 +f 1882//1928 1891//1928 1961//1928 +f 1864//1929 1962//1929 1883//1929 +f 1864//1929 1949//1929 1962//1929 +f 1758//1930 1821//1930 1911//1930 +f 1820//1931 1910//1931 1871//1931 +f 1883//1932 1963//1932 1890//1932 +f 1883//1932 1962//1932 1963//1932 +f 1891//1933 1898//1933 1964//1933 +f 1891//1928 1964//1928 1961//1928 +f 1849//1934 1867//1934 1965//1934 +f 1849//1922 1965//1922 1955//1922 +f 1838//1935 1956//1935 1966//1935 +f 1838//1935 1966//1935 1848//1935 +f 1877//1924 1967//1924 1957//1924 +f 1877//1936 1901//1936 1967//1936 +f 1868//1937 1968//1937 1876//1937 +f 1868//1937 1958//1937 1968//1937 +f 1890//1938 1969//1938 1899//1938 +f 1890//1938 1963//1938 1969//1938 +f 1898//1933 1970//1933 1964//1933 +f 1898//1939 1916//1939 1970//1939 +f 1888//1940 1971//1940 1972//1940 +f 1888//1940 1972//1940 1889//1940 +f 1888//1941 1909//1941 1971//1941 +f 1887//1942 1973//1942 1886//1942 +f 1887//1942 1974//1942 1973//1942 +f 1887//1943 1905//1943 1974//1943 +f 1902//1944 1880//1944 1975//1944 +f 1903//1945 1976//1945 1904//1945 +f 1903//552 597//552 1976//552 +f 1902//552 1975//552 590//552 +f 1859//1946 1893//1946 1977//1946 +f 1859//1920 1977//1920 1953//1920 +f 1836//1947 1978//1947 1858//1947 +f 1836//1947 1954//1947 1978//1947 +f 1901//1936 1979//1936 1967//1936 +f 1901//1948 1906//1948 1979//1948 +f 1876//1949 1980//1949 1900//1949 +f 1876//1949 1968//1949 1980//1949 +f 1881//1950 1904//1950 1981//1950 +f 1881//1914 1981//1914 1947//1914 +f 1851//1951 1948//1951 1982//1951 +f 1851//1951 1982//1951 1880//1951 +f 1889//1952 1972//1952 1983//1952 +f 1889//1952 1983//1952 1906//1952 +f 1905//1943 1984//1943 1974//1943 +f 1905//1953 1900//1953 1984//1953 +f 1874//1839 1873//1839 1985//1839 +f 1829//1954 1986//1954 1875//1954 +f 1829//1954 1934//1954 1986//1954 +f 1874//1902 1987//1902 1935//1902 +f 1874//1955 1985//1955 1987//1955 +f 1906//1948 1983//1948 1979//1948 +f 1900//1953 1980//1953 1984//1953 +f 1867//1934 1988//1934 1965//1934 +f 1867//1956 1895//1956 1988//1956 +f 1848//1957 1966//1957 1989//1957 +f 1848//1957 1989//1957 1866//1957 +f 1909//1941 1990//1941 1971//1941 +f 1909//1958 1913//1958 1990//1958 +f 1886//1959 1991//1959 1908//1959 +f 1886//1959 1973//1959 1991//1959 +f 1880//1960 1982//1960 1992//1960 +f 1880//1944 1992//1944 1975//1944 +f 1904//1950 1993//1950 1981//1950 +f 1904//1961 1976//1961 1993//1961 +f 1774//1897 1930//1897 1994//1897 +f 1709//1962 1995//1962 1931//1962 +f 1709//1962 1830//1962 1995//1962 +f 1774//1963 1994//1963 1835//1963 +f 1899//1964 1996//1964 1917//1964 +f 1899//1964 1969//1964 1996//1964 +f 1916//1939 1997//1939 1970//1939 +f 1916//1965 1959//1965 1997//1965 +f 1873//1966 1918//1966 1985//1966 +f 1765//1967 1998//1967 1907//1967 +f 1765//1967 1875//1967 1998//1967 +f 1976//1968 1999//1968 1993//1968 +f 1976//552 597//552 1999//552 +f 1975//552 1992//552 590//552 +f 1913//1958 2000//1958 1990//1958 +f 1913//1969 1921//1969 2000//1969 +f 1908//1970 2001//1970 1912//1970 +f 1908//1970 1991//1970 2001//1970 +f 1896//1919 2002//1919 1952//1919 +f 1896//1971 1947//1971 2002//1971 +f 1842//1972 1951//1972 2003//1972 +f 1842//1972 2003//1972 1897//1972 +f 1940//1926 2004//1926 1959//1926 +f 1885//1973 2005//1973 1941//1973 +f 1885//1974 1960//1974 2005//1974 +f 1940//1909 1942//1909 2006//1909 +f 1940//1975 2006//1975 2004//1975 +f 1921//1969 2007//1969 2000//1969 +f 1921//1976 1937//1976 2007//1976 +f 1912//1977 2008//1977 1920//1977 +f 1912//1977 2001//1977 2008//1977 +f 1893//1978 1935//1978 2009//1978 +f 1893//1946 2009//1946 1977//1946 +f 1858//1979 2010//1979 1892//1979 +f 1858//1979 1978//1979 2010//1979 +f 1895//1980 1914//1980 2011//1980 +f 1895//1956 2011//1956 1988//1956 +f 1866//1981 1989//1981 2012//1981 +f 1866//1981 2012//1981 1894//1981 +f 1918//1982 1938//1982 2013//1982 +f 1918//1966 2013//1966 1985//1966 +f 1907//1983 2014//1983 1919//1983 +f 1907//1983 1998//1983 2014//1983 +f 1937//1976 2015//1976 2007//1976 +f 1937//1984 1950//1984 2015//1984 +f 1920//1985 2016//1985 1936//1985 +f 1920//1985 2008//1985 2016//1985 +f 1821//1986 2017//1986 1911//1986 +f 1821//1987 1872//1987 2017//1987 +f 1871//1988 2018//1988 1942//1988 +f 1871//1989 1910//1989 2018//1989 +f 1936//1990 2019//1990 1949//1990 +f 1936//1990 2016//1990 2019//1990 +f 1950//1991 1961//1991 2020//1991 +f 1950//1984 2020//1984 2015//1984 +f 1938//1992 1957//1992 2021//1992 +f 1938//1982 2021//1982 2013//1982 +f 1919//1993 2022//1993 1939//1993 +f 1919//1993 2014//1993 2022//1993 +f 1917//1994 2023//1994 1960//1994 +f 1917//1995 1996//1995 2023//1995 +f 1959//1996 2004//1996 2024//1996 +f 1959//1965 2024//1965 1997//1965 +f 1914//1980 2025//1980 2011//1980 +f 1914//1997 1952//1997 2025//1997 +f 1894//1998 2012//1998 2026//1998 +f 1894//1998 2026//1998 1915//1998 +f 1961//1991 2027//1991 2020//1991 +f 1961//1999 1964//1999 2027//1999 +f 1949//2000 2028//2000 1962//2000 +f 1949//2000 2019//2000 2028//2000 +f 1957//2001 1967//2001 2029//2001 +f 1957//1992 2029//1992 2021//1992 +f 1939//2002 2030//2002 1958//2002 +f 1939//2002 2022//2002 2030//2002 +f 1962//2003 2031//2003 1963//2003 +f 1962//2003 2028//2003 2031//2003 +f 1964//2004 1970//2004 2032//2004 +f 1964//1999 2032//1999 2027//1999 +f 1897//2005 2003//2005 2033//2005 +f 1897//2005 2033//2005 1948//2005 +f 1947//1971 2034//1971 2002//1971 +f 1947//2006 1981//2006 2034//2006 +f 1935//2007 1987//2007 2035//2007 +f 1935//1978 2035//1978 2009//1978 +f 1892//2008 2036//2008 1934//2008 +f 1892//2008 2010//2008 2036//2008 +f 1970//2009 1997//2009 2037//2009 +f 1970//2004 2037//2004 2032//2004 +f 1963//2010 2038//2010 1969//2010 +f 1963//2010 2031//2010 2038//2010 +f 1967//2011 1979//2011 2039//2011 +f 1967//2001 2039//2001 2029//2001 +f 1958//2012 2040//2012 1968//2012 +f 1958//2012 2030//2012 2040//2012 +f 1952//2013 2002//2013 2041//2013 +f 1915//2014 2026//2014 2042//2014 +f 1915//2014 2042//2014 1951//2014 +f 1952//1997 2041//1997 2025//1997 +f 1924//2015 2043//2015 1925//2015 +f 1924//2015 2044//2015 2043//2015 +f 1924//2016 1928//2016 2044//2016 +f 1922//2017 2045//2017 2046//2017 +f 1922//2017 2046//2017 1923//2017 +f 1922//2018 1926//2018 2045//2018 +f 1971//2019 1990//2019 2047//2019 +f 1971//2020 2047//2020 2048//2020 +f 1971//2020 2048//2020 1972//2020 +f 1974//2021 2049//2021 1973//2021 +f 1974//2021 2050//2021 2049//2021 +f 1974//2022 1984//2022 2050//2022 +f 1925//2023 2051//2023 1927//2023 +f 1925//2023 2043//2023 2051//2023 +f 1926//2018 2052//2018 2045//2018 +f 1926//2024 1932//2024 2052//2024 +f 1923//2025 2046//2025 2053//2025 +f 1923//2025 2053//2025 1929//2025 +f 1928//2016 2054//2016 2044//2016 +f 1928//2026 1943//2026 2054//2026 +f 1830//2027 2055//2027 1995//2027 +f 1830//2027 1911//2027 2055//2027 +f 1835//1963 1994//1963 2056//1963 +f 1835//2028 2056//2028 1910//2028 +f 1932//2029 1945//2029 2057//2029 +f 1927//2030 2058//2030 1933//2030 +f 1927//2030 2051//2030 2058//2030 +f 1932//2024 2057//2024 2052//2024 +f 1979//2031 1983//2031 2059//2031 +f 1979//2011 2059//2011 2039//2011 +f 1968//2032 2060//2032 1980//2032 +f 1968//2032 2040//2032 2060//2032 +f 1929//2033 2053//2033 2061//2033 +f 1929//2033 2061//2033 1944//2033 +f 1943//2026 2062//2026 2054//2026 +f 1943//2034 1955//2034 2062//2034 +f 1800//2035 2063//2035 2064//2035 +f 1800//2035 1799//2035 2063//2035 +f 1800//2036 2064//2036 1807//2036 +f 1972//2037 2048//2037 2065//2037 +f 1972//2037 2065//2037 1983//2037 +f 1984//2022 2066//2022 2050//2022 +f 1984//2038 1980//2038 2066//2038 +f 1945//2029 2067//2029 2057//2029 +f 1933//2039 2068//2039 1946//2039 +f 1933//2039 2058//2039 2068//2039 +f 1945//2040 1953//2040 2067//2040 +f 1997//2009 2069//2009 2037//2009 +f 1969//2041 2070//2041 1996//2041 +f 1969//2041 2038//2041 2070//2041 +f 1997//2042 2024//2042 2069//2042 +f 1983//2031 2065//2031 2059//2031 +f 1980//2038 2060//2038 2066//2038 +f 1799//2043 2071//2043 2063//2043 +f 1799//2043 1806//2043 2071//2043 +f 1807//2044 2072//2044 1832//2044 +f 1807//2036 2064//2036 2072//2036 +f 1942//2045 2018//2045 2006//2045 +f 1872//2046 1941//2046 2017//2046 +f 2004//2047 2073//2047 2024//2047 +f 1960//2048 2023//2048 2005//2048 +f 2004//1975 2006//1975 2074//1975 +f 2004//2049 2074//2049 2073//2049 +f 1990//2019 2075//2019 2047//2019 +f 1973//2050 2076//2050 1991//2050 +f 1973//2050 2049//2050 2076//2050 +f 1990//2051 2000//2051 2075//2051 +f 1948//2052 2033//2052 2077//2052 +f 1948//2052 2077//2052 1982//2052 +f 1981//2053 1993//2053 2078//2053 +f 1981//2006 2078//2006 2034//2006 +f 1946//2054 2079//2054 1954//2054 +f 1946//2054 2068//2054 2079//2054 +f 1953//2040 2080//2040 2067//2040 +f 1953//2055 1977//2055 2080//2055 +f 1944//2056 2061//2056 2081//2056 +f 1944//2056 2081//2056 1956//2056 +f 1955//2034 2082//2034 2062//2034 +f 1955//2057 1965//2057 2082//2057 +f 1991//2058 2083//2058 2001//2058 +f 1991//2058 2076//2058 2083//2058 +f 2000//2051 2084//2051 2075//2051 +f 2000//2059 2007//2059 2084//2059 +f 1806//2060 2085//2060 2071//2060 +f 1806//2060 1831//2060 2085//2060 +f 1832//2044 2072//2044 2086//2044 +f 1832//2061 2086//2061 1855//2061 +f 1982//2062 2077//2062 2087//2062 +f 1982//2063 2087//2063 1992//2063 +f 1993//1968 1999//1968 2088//1968 +f 1993//2064 2088//2064 2089//2064 +f 1993//2053 2089//2053 2078//2053 +f 1875//2065 2090//2065 1998//2065 +f 1875//2065 1986//2065 2090//2065 +f 1985//1955 2091//1955 1987//1955 +f 1985//2066 2013//2066 2091//2066 +f 1999//552 597//552 2088//552 +f 1992//552 2087//552 590//552 +f 2001//2067 2092//2067 2008//2067 +f 2001//2067 2083//2067 2092//2067 +f 2007//2059 2093//2059 2084//2059 +f 2007//2068 2015//2068 2093//2068 +f 1987//2069 2091//2069 2094//2069 +f 1987//2007 2094//2007 2035//2007 +f 1934//2070 2095//2070 1986//2070 +f 1934//2070 2036//2070 2095//2070 +f 1956//2071 2081//2071 2096//2071 +f 1956//2071 2096//2071 1966//2071 +f 1965//2057 2097//2057 2082//2057 +f 1965//2072 1988//2072 2097//2072 +f 2087//2073 2077//2073 2098//2073 +f 2088//2074 2099//2074 2089//2074 +f 2088//552 597//552 2099//552 +f 2087//552 2098//552 590//552 +f 2008//2075 2100//2075 2016//2075 +f 2008//2075 2092//2075 2100//2075 +f 2015//2068 2101//2068 2093//2068 +f 2015//2076 2020//2076 2101//2076 +f 1954//2077 2102//2077 1978//2077 +f 1954//2077 2079//2077 2102//2077 +f 1977//2055 2103//2055 2080//2055 +f 1977//2078 2009//2078 2103//2078 +f 2024//2079 2073//2079 2104//2079 +f 1996//2080 2105//2080 2023//2080 +f 1996//2081 2070//2081 2105//2081 +f 2024//2042 2104//2042 2069//2042 +f 1831//2082 2106//2082 2085//2082 +f 1831//2082 1854//2082 2106//2082 +f 1855//2083 2107//2083 1879//2083 +f 1855//2061 2086//2061 2107//2061 +f 1998//2084 2108//2084 2014//2084 +f 1998//2084 2090//2084 2108//2084 +f 2013//2066 2109//2066 2091//2066 +f 2013//2085 2021//2085 2109//2085 +f 2002//2013 2110//2013 2041//2013 +f 2002//2086 2034//2086 2110//2086 +f 1951//2087 2042//2087 2111//2087 +f 1951//2087 2111//2087 2003//2087 +f 2016//2088 2112//2088 2019//2088 +f 2016//2088 2100//2088 2112//2088 +f 2020//2089 2027//2089 2113//2089 +f 2020//2076 2113//2076 2101//2076 +f 1966//2090 2096//2090 2114//2090 +f 1966//2090 2114//2090 1989//2090 +f 1988//2072 2115//2072 2097//2072 +f 1988//2091 2011//2091 2115//2091 +f 2014//2092 2116//2092 2022//2092 +f 2014//2092 2108//2092 2116//2092 +f 2021//2085 2117//2085 2109//2085 +f 2021//2093 2029//2093 2117//2093 +f 2027//2089 2118//2089 2113//2089 +f 2027//2094 2032//2094 2118//2094 +f 2019//2095 2119//2095 2028//2095 +f 2019//2095 2112//2095 2119//2095 +f 2028//2096 2120//2096 2031//2096 +f 2028//2096 2119//2096 2120//2096 +f 2032//2097 2037//2097 2121//2097 +f 2032//2094 2121//2094 2118//2094 +f 1978//2098 2122//2098 2010//2098 +f 1978//2098 2102//2098 2122//2098 +f 2009//2078 2123//2078 2103//2078 +f 2009//2099 2035//2099 2123//2099 +f 1989//2100 2114//2100 2124//2100 +f 1989//2100 2124//2100 2012//2100 +f 2011//2101 2025//2101 2125//2101 +f 2011//2091 2125//2091 2115//2091 +f 2031//2102 2126//2102 2038//2102 +f 2031//2102 2120//2102 2126//2102 +f 2037//2097 2127//2097 2121//2097 +f 2037//2103 2069//2103 2127//2103 +f 2006//2104 2128//2104 2074//2104 +f 2006//2105 2018//2105 2128//2105 +f 1941//2046 2129//2046 2017//2046 +f 1941//2046 2005//2046 2129//2046 +f 1854//2106 2130//2106 2106//2106 +f 1854//2106 1878//2106 2130//2106 +f 1879//2083 2107//2083 2131//2083 +f 1879//2107 2131//2107 1930//2107 +f 2022//2108 2132//2108 2030//2108 +f 2022//2108 2116//2108 2132//2108 +f 2029//2093 2133//2093 2117//2093 +f 2029//2109 2039//2109 2133//2109 +f 1911//2110 2134//2110 2055//2110 +f 1911//2110 2017//2110 2134//2110 +f 1910//2028 2056//2028 2135//2028 +f 1910//2111 2135//2111 2018//2111 +f 2073//2112 2136//2112 2104//2112 +f 2023//2048 2137//2048 2005//2048 +f 2023//2048 2105//2048 2137//2048 +f 2073//2049 2138//2049 2136//2049 +f 2073//2049 2074//2049 2138//2049 +f 2030//2113 2139//2113 2040//2113 +f 2030//2113 2132//2113 2139//2113 +f 2039//2109 2140//2109 2133//2109 +f 2039//2114 2059//2114 2140//2114 +f 2034//2115 2078//2115 2141//2115 +f 2034//2086 2141//2086 2110//2086 +f 2003//2116 2111//2116 2142//2116 +f 2003//2116 2142//2116 2033//2116 +f 2050//2117 2066//2117 2143//2117 +f 2050//2118 2144//2118 2049//2118 +f 2050//2118 2143//2118 2144//2118 +f 2047//2119 2145//2119 2146//2119 +f 2047//2119 2146//2119 2048//2119 +f 2047//2120 2075//2120 2145//2120 +f 2038//2121 2147//2121 2070//2121 +f 2038//2121 2126//2121 2147//2121 +f 2069//2103 2148//2103 2127//2103 +f 2069//2122 2104//2122 2148//2122 +f 2012//2123 2124//2123 2149//2123 +f 2012//2123 2149//2123 2026//2123 +f 2025//2101 2150//2101 2125//2101 +f 2025//2124 2041//2124 2150//2124 +f 2040//2125 2151//2125 2060//2125 +f 2040//2125 2139//2125 2151//2125 +f 2059//2114 2152//2114 2140//2114 +f 2059//2126 2065//2126 2152//2126 +f 2066//2127 2060//2127 2153//2127 +f 2066//2117 2153//2117 2143//2117 +f 2048//2128 2146//2128 2154//2128 +f 2048//2128 2154//2128 2065//2128 +f 2060//2127 2151//2127 2153//2127 +f 2065//2126 2154//2126 2152//2126 +f 2075//2129 2084//2129 2155//2129 +f 2049//2130 2156//2130 2076//2130 +f 2049//2130 2144//2130 2156//2130 +f 2075//2120 2155//2120 2145//2120 +f 2010//2131 2157//2131 2036//2131 +f 2010//2131 2122//2131 2157//2131 +f 2035//2099 2158//2099 2123//2099 +f 2035//2132 2094//2132 2158//2132 +f 1930//2133 2159//2133 1994//2133 +f 1878//2134 2160//2134 2130//2134 +f 1878//2134 1931//2134 2160//2134 +f 1930//2107 2131//2107 2159//2107 +f 2084//2135 2093//2135 2161//2135 +f 2084//2129 2161//2129 2155//2129 +f 2076//2136 2162//2136 2083//2136 +f 2076//2136 2156//2136 2162//2136 +f 2026//2137 2149//2137 2163//2137 +f 2026//2137 2163//2137 2042//2137 +f 2041//2138 2110//2138 2164//2138 +f 2041//2124 2164//2124 2150//2124 +f 2078//2115 2165//2115 2141//2115 +f 2078//2139 2089//2139 2165//2139 +f 2033//2140 2142//2140 2166//2140 +f 2033//2140 2166//2140 2077//2140 +f 2093//2135 2167//2135 2161//2135 +f 2093//2141 2101//2141 2167//2141 +f 2083//2142 2168//2142 2092//2142 +f 2083//2142 2162//2142 2168//2142 +f 2104//2143 2136//2143 2169//2143 +f 2070//2144 2170//2144 2105//2144 +f 2070//2145 2147//2145 2170//2145 +f 2104//2122 2169//2122 2148//2122 +f 2077//2146 2166//2146 2171//2146 +f 2077//2073 2171//2073 2098//2073 +f 2089//2139 2172//2139 2165//2139 +f 2089//2074 2099//2074 2173//2074 +f 2089//2147 2173//2147 2172//2147 +f 2092//2148 2174//2148 2100//2148 +f 2092//2148 2168//2148 2174//2148 +f 2101//2149 2113//2149 2175//2149 +f 2101//2141 2175//2141 2167//2141 +f 2091//2150 2109//2150 2176//2150 +f 2091//2069 2176//2069 2094//2069 +f 1986//2151 2177//2151 2090//2151 +f 1986//2151 2095//2151 2177//2151 +f 2099//552 597//552 2173//552 +f 2098//552 2171//552 590//552 +f 2045//2152 2052//2152 2178//2152 +f 2044//2153 2179//2153 2043//2153 +f 2044//2153 2180//2153 2179//2153 +f 2044//2154 2054//2154 2180//2154 +f 2045//2155 2178//2155 2181//2155 +f 2045//2155 2181//2155 2046//2155 +f 2074//2156 2128//2156 2138//2156 +f 2005//2157 2182//2157 2129//2157 +f 2005//2157 2137//2157 2182//2157 +f 2052//2158 2183//2158 2178//2158 +f 2052//2159 2184//2159 2183//2159 +f 2052//2160 2185//2160 2184//2160 +f 2052//2160 2186//2160 2185//2160 +f 2043//2161 2187//2161 2051//2161 +f 2043//2161 2179//2161 2187//2161 +f 2052//2162 2057//2162 2186//2162 +f 2054//2154 2188//2154 2180//2154 +f 2054//2163 2062//2163 2188//2163 +f 2046//2164 2181//2164 2189//2164 +f 2046//2164 2189//2164 2053//2164 +f 2100//2165 2190//2165 2112//2165 +f 2100//2165 2174//2165 2190//2165 +f 2113//2166 2118//2166 2191//2166 +f 2113//2149 2191//2149 2175//2149 +f 2051//2167 2192//2167 2058//2167 +f 2051//2167 2187//2167 2192//2167 +f 2057//2168 2193//2168 2186//2168 +f 2057//2169 2194//2169 2193//2169 +f 2057//2170 2195//2170 2194//2170 +f 2057//2171 2196//2171 2195//2171 +f 2057//2172 2197//2172 2196//2172 +f 2057//2173 2067//2173 2197//2173 +f 2062//2163 2198//2163 2188//2163 +f 2062//2174 2082//2174 2198//2174 +f 2053//2175 2189//2175 2199//2175 +f 2053//2175 2199//2175 2061//2175 +f 2058//2176 2200//2176 2068//2176 +f 2058//2176 2192//2176 2200//2176 +f 2067//2177 2201//2177 2197//2177 +f 2067//2178 2202//2178 2201//2178 +f 2067//2179 2203//2179 2202//2179 +f 2067//2179 2204//2179 2203//2179 +f 2067//2180 2205//2180 2204//2180 +f 2067//2181 2206//2181 2205//2181 +f 2067//2182 2080//2182 2206//2182 +f 2109//2183 2117//2183 2207//2183 +f 2109//2150 2207//2150 2176//2150 +f 2090//2184 2208//2184 2108//2184 +f 2090//2184 2177//2184 2208//2184 +f 2036//2185 2209//2185 2095//2185 +f 2036//2185 2157//2185 2209//2185 +f 2094//2132 2210//2132 2158//2132 +f 2094//2186 2176//2186 2210//2186 +f 2080//2187 2103//2187 2211//2187 +f 2068//2188 2212//2188 2079//2188 +f 2068//2188 2200//2188 2212//2188 +f 2080//2189 2211//2189 2206//2189 +f 2118//2166 2213//2166 2191//2166 +f 2118//2190 2121//2190 2213//2190 +f 2112//2191 2214//2191 2119//2191 +f 2112//2191 2190//2191 2214//2191 +f 2082//2174 2215//2174 2198//2174 +f 2082//2192 2097//2192 2215//2192 +f 2061//2193 2199//2193 2216//2193 +f 2061//2193 2216//2193 2081//2193 +f 2119//2194 2217//2194 2120//2194 +f 2119//2194 2214//2194 2217//2194 +f 2121//2195 2127//2195 2218//2195 +f 2121//2190 2218//2190 2213//2190 +f 2127//2196 2148//2196 2219//2196 +f 2127//2195 2219//2195 2218//2195 +f 2120//2197 2220//2197 2126//2197 +f 2120//2197 2217//2197 2220//2197 +f 2042//2198 2163//2198 2221//2198 +f 2042//2198 2221//2198 2111//2198 +f 2110//2138 2222//2138 2164//2138 +f 2110//2199 2141//2199 2222//2199 +f 2117//2200 2133//2200 2223//2200 +f 2117//2183 2223//2183 2207//2183 +f 2108//2201 2224//2201 2116//2201 +f 2108//2201 2208//2201 2224//2201 +f 1994//2202 2225//2202 2056//2202 +f 1994//2133 2159//2133 2225//2133 +f 1931//2203 2226//2203 2160//2203 +f 1931//2203 1995//2203 2226//2203 +f 2136//2204 2227//2204 2169//2204 +f 2105//2205 2170//2205 2137//2205 +f 2136//2206 2138//2206 2227//2206 +f 2171//2207 2166//2207 2228//2207 +f 2173//2208 2229//2208 2172//2208 +f 2173//552 597//552 2229//552 +f 2171//552 2228//552 590//552 +f 2097//2192 2230//2192 2215//2192 +f 2097//2209 2115//2209 2230//2209 +f 2081//2210 2216//2210 2231//2210 +f 2081//2210 2231//2210 2096//2210 +f 2103//2211 2123//2211 2232//2211 +f 2103//2187 2232//2187 2211//2187 +f 2079//2212 2233//2212 2102//2212 +f 2079//2212 2212//2212 2233//2212 +f 2133//2213 2140//2213 2234//2213 +f 2133//2200 2234//2200 2223//2200 +f 2116//2214 2235//2214 2132//2214 +f 2116//2214 2224//2214 2235//2214 +f 2148//2196 2236//2196 2219//2196 +f 2126//2215 2237//2215 2147//2215 +f 2126//2215 2220//2215 2237//2215 +f 2148//2216 2169//2216 2236//2216 +f 2018//2217 2238//2217 2128//2217 +f 2017//2218 2239//2218 2134//2218 +f 2017//2218 2129//2218 2239//2218 +f 2018//2111 2135//2111 2238//2111 +f 2115//2209 2240//2209 2230//2209 +f 2115//2219 2125//2219 2240//2219 +f 2096//2220 2231//2220 2241//2220 +f 2096//2220 2241//2220 2114//2220 +f 2140//2221 2152//2221 2242//2221 +f 2140//2213 2242//2213 2234//2213 +f 2132//2222 2243//2222 2139//2222 +f 2132//2222 2235//2222 2243//2222 +f 2145//2223 2244//2223 2245//2223 +f 2145//2223 2245//2223 2146//2223 +f 2143//2224 2246//2224 2144//2224 +f 2143//2224 2247//2224 2246//2224 +f 2143//2225 2153//2225 2247//2225 +f 2145//2226 2155//2226 2244//2226 +f 2152//2227 2154//2227 2248//2227 +f 2152//2221 2248//2221 2242//2221 +f 2139//2228 2249//2228 2151//2228 +f 2139//2228 2243//2228 2249//2228 +f 2146//2229 2245//2229 2250//2229 +f 2146//2229 2250//2229 2154//2229 +f 2153//2225 2251//2225 2247//2225 +f 2153//2230 2151//2230 2251//2230 +f 2154//2227 2250//2227 2248//2227 +f 2151//2230 2249//2230 2251//2230 +f 2141//2231 2165//2231 2252//2231 +f 2141//2199 2252//2199 2222//2199 +f 2111//2232 2221//2232 2253//2232 +f 2111//2232 2253//2232 2142//2232 +f 2123//2233 2158//2233 2254//2233 +f 2123//2211 2254//2211 2232//2211 +f 2102//2234 2255//2234 2122//2234 +f 2102//2234 2233//2234 2255//2234 +f 2125//2235 2150//2235 2256//2235 +f 2125//2219 2256//2219 2240//2219 +f 2114//2236 2241//2236 2257//2236 +f 2114//2236 2257//2236 2124//2236 +f 2144//2237 2258//2237 2156//2237 +f 2144//2237 2246//2237 2258//2237 +f 2155//2226 2259//2226 2244//2226 +f 2155//2238 2161//2238 2259//2238 +f 2169//2239 2227//2239 2260//2239 +f 2147//2240 2261//2240 2170//2240 +f 2147//2241 2237//2241 2261//2241 +f 2169//2216 2260//2216 2236//2216 +f 2161//2242 2167//2242 2262//2242 +f 2156//2243 2263//2243 2162//2243 +f 2156//2243 2258//2243 2263//2243 +f 2161//2238 2262//2238 2259//2238 +f 2167//2242 2264//2242 2262//2242 +f 2167//2244 2175//2244 2264//2244 +f 2162//2245 2265//2245 2168//2245 +f 2162//2245 2263//2245 2265//2245 +f 2150//2235 2266//2235 2256//2235 +f 2150//2246 2164//2246 2266//2246 +f 2124//2247 2257//2247 2267//2247 +f 2124//2247 2267//2247 2149//2247 +f 2056//2248 2268//2248 2135//2248 +f 2056//2202 2225//2202 2268//2202 +f 1995//2249 2269//2249 2226//2249 +f 1995//2249 2055//2249 2269//2249 +f 2168//2250 2270//2250 2174//2250 +f 2168//2250 2265//2250 2270//2250 +f 2175//2251 2191//2251 2271//2251 +f 2175//2244 2271//2244 2264//2244 +f 2195//2252 2196//2252 2197//2252 +f 2195//2253 2197//2253 2202//2253 +f 2195//2254 2202//2254 2203//2254 +f 2195//2255 2203//2255 2272//2255 +f 2195//2256 2185//2256 2194//2256 +f 2195//2257 2273//2257 2185//2257 +f 2195//2258 2272//2258 2273//2258 +f 2194//2259 2186//2259 2193//2259 +f 2194//2259 2185//2259 2186//2259 +f 2142//2260 2253//2260 2274//2260 +f 2142//2260 2274//2260 2166//2260 +f 2165//2261 2172//2261 2275//2261 +f 2165//2231 2275//2231 2252//2231 +f 2197//2262 2201//2262 2202//2262 +f 2272//2263 2203//2263 2276//2263 +f 2272//2264 2277//2264 2273//2264 +f 2272//2265 2278//2265 2277//2265 +f 2272//2266 2276//2266 2278//2266 +f 2174//2267 2279//2267 2190//2267 +f 2174//2267 2270//2267 2279//2267 +f 2191//2268 2213//2268 2280//2268 +f 2191//2251 2280//2251 2271//2251 +f 2158//2269 2210//2269 2281//2269 +f 2158//2233 2281//2233 2254//2233 +f 2122//2270 2282//2270 2157//2270 +f 2122//2270 2255//2270 2282//2270 +f 2166//2271 2274//2271 2283//2271 +f 2166//2207 2283//2207 2228//2207 +f 2172//2208 2229//2208 2284//2208 +f 2172//2272 2284//2272 2285//2272 +f 2172//2261 2285//2261 2275//2261 +f 2095//2273 2286//2273 2177//2273 +f 2095//2273 2209//2273 2286//2273 +f 2176//2186 2287//2186 2210//2186 +f 2176//2274 2207//2274 2287//2274 +f 2229//552 597//552 2284//552 +f 2228//552 2283//552 590//552 +f 2185//2275 2288//2275 2184//2275 +f 2185//2276 2273//2276 2288//2276 +f 2203//2277 2204//2277 2205//2277 +f 2203//2278 2205//2278 2206//2278 +f 2203//2278 2206//2278 2289//2278 +f 2203//2279 2289//2279 2290//2279 +f 2203//2280 2290//2280 2276//2280 +f 2278//2281 2291//2281 2292//2281 +f 2278//2282 2293//2282 2277//2282 +f 2278//2283 2292//2283 2293//2283 +f 2278//2284 2276//2284 2291//2284 +f 2164//2285 2222//2285 2294//2285 +f 2164//2246 2294//2246 2266//2246 +f 2149//2286 2267//2286 2295//2286 +f 2149//2286 2295//2286 2163//2286 +f 2184//2287 2288//2287 2183//2287 +f 2276//2288 2290//2288 2296//2288 +f 2273//2289 2297//2289 2288//2289 +f 2273//2290 2277//2290 2297//2290 +f 2276//2291 2296//2291 2291//2291 +f 2213//2268 2298//2268 2280//2268 +f 2213//2292 2218//2292 2298//2292 +f 2190//2293 2299//2293 2214//2293 +f 2190//2293 2279//2293 2299//2293 +f 2227//2294 2300//2294 2260//2294 +f 2170//2205 2301//2205 2137//2205 +f 2170//2205 2261//2205 2301//2205 +f 2227//2206 2302//2206 2300//2206 +f 2227//2206 2138//2206 2302//2206 +f 2214//2295 2303//2295 2217//2295 +f 2214//2295 2299//2295 2303//2295 +f 2218//2296 2219//2296 2304//2296 +f 2218//2292 2304//2292 2298//2292 +f 2292//2297 2291//2297 2305//2297 +f 2292//2298 2305//2298 2306//2298 +f 2292//2299 2307//2299 2293//2299 +f 2292//2300 2306//2300 2307//2300 +f 2217//2301 2308//2301 2220//2301 +f 2217//2301 2303//2301 2308//2301 +f 2219//2296 2309//2296 2304//2296 +f 2219//2302 2236//2302 2309//2302 +f 2177//2303 2310//2303 2208//2303 +f 2177//2303 2286//2303 2310//2303 +f 2207//2274 2311//2274 2287//2274 +f 2207//2304 2223//2304 2311//2304 +f 2277//2305 2312//2305 2297//2305 +f 2277//2306 2293//2306 2312//2306 +f 2291//2307 2313//2307 2305//2307 +f 2291//2308 2296//2308 2313//2308 +f 2206//2309 2211//2309 2289//2309 +f 2305//2310 2313//2310 2314//2310 +f 2305//2311 2314//2311 2315//2311 +f 2305//2312 2315//2312 2306//2312 +f 2293//2313 2316//2313 2312//2313 +f 2293//2314 2307//2314 2316//2314 +f 2289//2315 2211//2315 2290//2315 +f 2306//2316 2317//2316 2307//2316 +f 2306//2317 2318//2317 2317//2317 +f 2306//2318 2315//2318 2318//2318 +f 2208//2319 2319//2319 2224//2319 +f 2208//2319 2310//2319 2319//2319 +f 2223//2304 2320//2304 2311//2304 +f 2223//2320 2234//2320 2320//2320 +f 2220//2321 2321//2321 2237//2321 +f 2220//2321 2308//2321 2321//2321 +f 2236//2302 2322//2302 2309//2302 +f 2236//2322 2260//2322 2322//2322 +f 2210//2323 2287//2323 2323//2323 +f 2210//2269 2323//2269 2281//2269 +f 2157//2324 2324//2324 2209//2324 +f 2157//2324 2282//2324 2324//2324 +f 2183//2325 2288//2325 2325//2325 +f 2183//2326 2325//2326 2178//2326 +f 2138//2327 2326//2327 2302//2327 +f 2138//2156 2128//2156 2326//2156 +f 2137//2328 2327//2328 2182//2328 +f 2137//2328 2301//2328 2327//2328 +f 2325//2329 2328//2329 2329//2329 +f 2325//2330 2288//2330 2328//2330 +f 2325//2331 2329//2331 2178//2331 +f 2290//2332 2330//2332 2331//2332 +f 2290//2332 2331//2332 2332//2332 +f 2290//2333 2332//2333 2333//2333 +f 2290//2334 2333//2334 2334//2334 +f 2290//2335 2334//2335 2335//2335 +f 2290//2336 2335//2336 2296//2336 +f 2290//2337 2211//2337 2330//2337 +f 2307//2338 2336//2338 2316//2338 +f 2307//2339 2317//2339 2336//2339 +f 2315//2340 2337//2340 2318//2340 +f 2315//2341 2338//2341 2337//2341 +f 2315//2342 2314//2342 2338//2342 +f 2224//2343 2339//2343 2235//2343 +f 2224//2343 2319//2343 2339//2343 +f 2234//2320 2340//2320 2320//2320 +f 2234//2344 2242//2344 2340//2344 +f 2318//2345 2337//2345 2341//2345 +f 2318//2346 2342//2346 2317//2346 +f 2318//2347 2341//2347 2342//2347 +f 2178//2331 2329//2331 2343//2331 +f 2178//2348 2343//2348 2344//2348 +f 2178//2349 2344//2349 2181//2349 +f 2180//2350 2188//2350 2345//2350 +f 2180//2351 2346//2351 2179//2351 +f 2180//2351 2345//2351 2346//2351 +f 2329//2329 2328//2329 2343//2329 +f 2296//2352 2335//2352 2347//2352 +f 2288//2353 2348//2353 2328//2353 +f 2288//2354 2297//2354 2348//2354 +f 2296//2355 2347//2355 2313//2355 +f 2330//2356 2211//2356 2331//2356 +f 2179//2357 2349//2357 2187//2357 +f 2179//2357 2346//2357 2349//2357 +f 2222//2358 2252//2358 2350//2358 +f 2222//2285 2350//2285 2294//2285 +f 2163//2359 2295//2359 2351//2359 +f 2163//2359 2351//2359 2221//2359 +f 2064//2360 2352//2360 2072//2360 +f 2064//2361 2353//2361 2352//2361 +f 2064//2361 2063//2361 2353//2361 +f 2181//2362 2354//2362 2355//2362 +f 2181//2363 2356//2363 2354//2363 +f 2181//2363 2357//2363 2356//2363 +f 2181//2364 2344//2364 2357//2364 +f 2181//2365 2355//2365 2358//2365 +f 2181//2366 2358//2366 2189//2366 +f 2188//2367 2198//2367 2359//2367 +f 2188//2350 2359//2350 2345//2350 +f 2343//2368 2328//2368 2344//2368 +f 2187//2369 2360//2369 2192//2369 +f 2187//2369 2349//2369 2360//2369 +f 2072//2370 2361//2370 2086//2370 +f 2072//2360 2352//2360 2361//2360 +f 2063//2371 2362//2371 2353//2371 +f 2063//2371 2071//2371 2362//2371 +f 2189//2372 2358//2372 2363//2372 +f 2189//2372 2363//2372 2199//2372 +f 2198//2373 2215//2373 2364//2373 +f 2198//2367 2364//2367 2359//2367 +f 2313//2374 2365//2374 2314//2374 +f 2297//2375 2366//2375 2348//2375 +f 2297//2376 2312//2376 2366//2376 +f 2313//2377 2347//2377 2365//2377 +f 2235//2378 2367//2378 2243//2378 +f 2235//2378 2339//2378 2367//2378 +f 2242//2344 2368//2344 2340//2344 +f 2242//2379 2248//2379 2368//2379 +f 2128//2217 2238//2217 2369//2217 +f 2129//2380 2370//2380 2239//2380 +f 2129//2380 2182//2380 2370//2380 +f 2128//2381 2369//2381 2326//2381 +f 2192//2382 2371//2382 2200//2382 +f 2192//2382 2360//2382 2371//2382 +f 2244//2383 2259//2383 2372//2383 +f 2247//2384 2251//2384 2373//2384 +f 2247//2385 2374//2385 2246//2385 +f 2247//2385 2373//2385 2374//2385 +f 2244//2386 2372//2386 2375//2386 +f 2244//2386 2375//2386 2245//2386 +f 2337//2387 2338//2387 2376//2387 +f 2337//2388 2376//2388 2377//2388 +f 2337//2389 2377//2389 2341//2389 +f 2317//2390 2378//2390 2336//2390 +f 2317//2391 2342//2391 2378//2391 +f 2135//2392 2379//2392 2238//2392 +f 2135//2248 2268//2248 2379//2248 +f 2055//2393 2380//2393 2269//2393 +f 2055//2393 2134//2393 2380//2393 +f 2331//2356 2211//2356 2332//2356 +f 2086//2394 2381//2394 2107//2394 +f 2086//2370 2361//2370 2381//2370 +f 2071//2395 2382//2395 2362//2395 +f 2071//2395 2085//2395 2382//2395 +f 2237//2396 2321//2396 2261//2396 +f 2260//2397 2300//2397 2383//2397 +f 2260//2322 2383//2322 2322//2322 +f 2332//2398 2211//2398 2333//2398 +f 2211//2399 2334//2399 2333//2399 +f 2200//2400 2384//2400 2212//2400 +f 2200//2400 2371//2400 2384//2400 +f 2211//2401 2232//2401 2334//2401 +f 2341//2402 2385//2402 2342//2402 +f 2341//2403 2386//2403 2385//2403 +f 2341//2404 2377//2404 2386//2404 +f 2243//2405 2387//2405 2249//2405 +f 2243//2405 2367//2405 2387//2405 +f 2248//2379 2388//2379 2368//2379 +f 2248//2406 2250//2406 2388//2406 +f 2199//2407 2363//2407 2389//2407 +f 2199//2407 2389//2407 2216//2407 +f 2215//2408 2230//2408 2390//2408 +f 2215//2373 2390//2373 2364//2373 +f 2344//2409 2328//2409 2357//2409 +f 2251//2384 2391//2384 2373//2384 +f 2251//2410 2249//2410 2391//2410 +f 2245//2411 2375//2411 2392//2411 +f 2245//2411 2392//2411 2250//2411 +f 2314//2412 2365//2412 2393//2412 +f 2314//2413 2393//2413 2338//2413 +f 2312//2414 2394//2414 2366//2414 +f 2312//2415 2316//2415 2394//2415 +f 2249//2410 2387//2410 2391//2410 +f 2250//2406 2392//2406 2388//2406 +f 2259//2383 2395//2383 2372//2383 +f 2246//2416 2396//2416 2258//2416 +f 2246//2416 2374//2416 2396//2416 +f 2259//2417 2262//2417 2395//2417 +f 2283//2418 2274//2418 2397//2418 +f 2284//2419 2398//2419 2285//2419 +f 2284//552 597//552 2398//552 +f 2283//552 2397//552 590//552 +f 2342//2420 2399//2420 2378//2420 +f 2342//2421 2385//2421 2399//2421 +f 2377//2422 2400//2422 2386//2422 +f 2377//2423 2401//2423 2400//2423 +f 2377//2424 2376//2424 2401//2424 +f 2216//2425 2389//2425 2402//2425 +f 2216//2425 2402//2425 2231//2425 +f 2230//2426 2240//2426 2403//2426 +f 2230//2408 2403//2408 2390//2408 +f 2107//2427 2404//2427 2131//2427 +f 2107//2394 2381//2394 2404//2394 +f 2085//2428 2405//2428 2382//2428 +f 2085//2428 2106//2428 2405//2428 +f 2258//2429 2406//2429 2263//2429 +f 2258//2429 2396//2429 2406//2429 +f 2262//2417 2407//2417 2395//2417 +f 2262//2430 2264//2430 2407//2430 +f 2316//2431 2408//2431 2394//2431 +f 2316//2432 2336//2432 2408//2432 +f 2338//2433 2409//2433 2376//2433 +f 2338//2434 2393//2434 2409//2434 +f 2212//2435 2410//2435 2233//2435 +f 2212//2435 2384//2435 2410//2435 +f 2232//2436 2411//2436 2334//2436 +f 2232//2437 2254//2437 2411//2437 +f 2386//2438 2400//2438 2412//2438 +f 2386//2439 2413//2439 2385//2439 +f 2386//2440 2412//2440 2413//2440 +f 2264//2441 2271//2441 2414//2441 +f 2263//2442 2415//2442 2265//2442 +f 2263//2442 2406//2442 2415//2442 +f 2264//2430 2414//2430 2407//2430 +f 2252//2358 2416//2358 2350//2358 +f 2252//2443 2275//2443 2416//2443 +f 2221//2444 2351//2444 2417//2444 +f 2221//2444 2417//2444 2253//2444 +f 2231//2445 2402//2445 2418//2445 +f 2231//2445 2418//2445 2241//2445 +f 2240//2446 2256//2446 2419//2446 +f 2240//2426 2419//2426 2403//2426 +f 2271//2441 2420//2441 2414//2441 +f 2271//2447 2280//2447 2420//2447 +f 2265//2448 2421//2448 2270//2448 +f 2265//2448 2415//2448 2421//2448 +f 2400//2449 2401//2449 2422//2449 +f 2400//2450 2422//2450 2423//2450 +f 2400//2451 2423//2451 2412//2451 +f 2385//2452 2424//2452 2399//2452 +f 2385//2453 2413//2453 2424//2453 +f 2376//2454 2409//2454 2425//2454 +f 2376//2455 2425//2455 2401//2455 +f 2336//2456 2426//2456 2408//2456 +f 2336//2457 2378//2457 2426//2457 +f 2334//2458 2411//2458 2335//2458 +f 2270//2459 2427//2459 2279//2459 +f 2270//2459 2421//2459 2427//2459 +f 2280//2460 2298//2460 2428//2460 +f 2280//2447 2428//2447 2420//2447 +f 2261//2461 2321//2461 2429//2461 +f 2300//2462 2430//2462 2383//2462 +f 2261//2463 2431//2463 2301//2463 +f 2261//2463 2429//2463 2431//2463 +f 2300//2464 2302//2464 2430//2464 +f 2357//2465 2328//2465 2356//2465 +f 2131//2466 2432//2466 2159//2466 +f 2131//2427 2404//2427 2432//2427 +f 2106//2467 2433//2467 2405//2467 +f 2106//2467 2130//2467 2433//2467 +f 2412//2468 2423//2468 2434//2468 +f 2412//2469 2435//2469 2413//2469 +f 2412//2470 2434//2470 2435//2470 +f 2233//2471 2436//2471 2255//2471 +f 2233//2471 2410//2471 2436//2471 +f 2254//2437 2437//2437 2411//2437 +f 2254//2472 2281//2472 2437//2472 +f 2356//2473 2438//2473 2354//2473 +f 2356//2474 2328//2474 2438//2474 +f 2335//2475 2439//2475 2440//2475 +f 2335//2476 2440//2476 2441//2476 +f 2335//2477 2441//2477 2347//2477 +f 2335//2458 2411//2458 2439//2458 +f 2241//2478 2418//2478 2442//2478 +f 2241//2478 2442//2478 2257//2478 +f 2256//2479 2266//2479 2443//2479 +f 2256//2446 2443//2446 2419//2446 +f 2378//2480 2444//2480 2426//2480 +f 2378//2481 2399//2481 2444//2481 +f 2401//2482 2445//2482 2422//2482 +f 2401//2483 2425//2483 2445//2483 +f 2328//2484 2446//2484 2438//2484 +f 2328//2485 2348//2485 2446//2485 +f 2347//2486 2447//2486 2365//2486 +f 2347//2487 2441//2487 2447//2487 +f 2275//2488 2285//2488 2448//2488 +f 2275//2443 2448//2443 2416//2443 +f 2253//2489 2417//2489 2449//2489 +f 2253//2489 2449//2489 2274//2489 +f 2298//2460 2450//2460 2428//2460 +f 2298//2490 2304//2490 2450//2490 +f 2279//2491 2451//2491 2299//2491 +f 2279//2491 2427//2491 2451//2491 +f 2299//2492 2452//2492 2303//2492 +f 2299//2492 2451//2492 2452//2492 +f 2304//2493 2309//2493 2453//2493 +f 2304//2490 2453//2490 2450//2490 +f 2423//2494 2454//2494 2434//2494 +f 2423//2495 2455//2495 2454//2495 +f 2413//2496 2456//2496 2424//2496 +f 2413//2497 2435//2497 2456//2497 +f 2423//2498 2422//2498 2455//2498 +f 2309//2499 2322//2499 2457//2499 +f 2309//2493 2457//2493 2453//2493 +f 2303//2500 2458//2500 2308//2500 +f 2303//2500 2452//2500 2458//2500 +f 2439//2501 2411//2501 2440//2501 +f 2274//2502 2449//2502 2459//2502 +f 2274//2418 2459//2418 2397//2418 +f 2285//2488 2460//2488 2448//2488 +f 2285//2419 2398//2419 2461//2419 +f 2285//2503 2461//2503 2460//2503 +f 2348//2504 2462//2504 2446//2504 +f 2348//2505 2366//2505 2462//2505 +f 2365//2506 2463//2506 2393//2506 +f 2365//2507 2447//2507 2463//2507 +f 2354//2508 2438//2508 2355//2508 +f 2287//2509 2311//2509 2464//2509 +f 2287//2323 2464//2323 2323//2323 +f 2209//2510 2465//2510 2286//2510 +f 2209//2510 2324//2510 2465//2510 +f 2398//552 597//552 2461//552 +f 2397//552 2459//552 590//552 +f 2434//2511 2466//2511 2435//2511 +f 2434//2512 2467//2512 2466//2512 +f 2434//2513 2454//2513 2467//2513 +f 2257//2514 2442//2514 2468//2514 +f 2257//2514 2468//2514 2267//2514 +f 2266//2479 2469//2479 2443//2479 +f 2266//2515 2294//2515 2469//2515 +f 2422//2516 2445//2516 2470//2516 +f 2422//2517 2470//2517 2455//2517 +f 2399//2518 2471//2518 2444//2518 +f 2399//2519 2424//2519 2471//2519 +f 2393//2520 2463//2520 2472//2520 +f 2393//2521 2472//2521 2409//2521 +f 2366//2522 2473//2522 2462//2522 +f 2366//2523 2394//2523 2473//2523 +f 2311//2524 2320//2524 2474//2524 +f 2311//2509 2474//2509 2464//2509 +f 2286//2525 2475//2525 2310//2525 +f 2286//2525 2465//2525 2475//2525 +f 2322//2499 2476//2499 2457//2499 +f 2308//2526 2477//2526 2321//2526 +f 2308//2526 2458//2526 2477//2526 +f 2322//2527 2383//2527 2476//2527 +f 2159//2528 2478//2528 2225//2528 +f 2159//2466 2432//2466 2478//2466 +f 2130//2529 2479//2529 2433//2529 +f 2130//2529 2160//2529 2479//2529 +f 2454//2530 2455//2530 2480//2530 +f 2435//2531 2481//2531 2456//2531 +f 2435//2532 2466//2532 2481//2532 +f 2454//2533 2482//2533 2467//2533 +f 2454//2534 2480//2534 2482//2534 +f 2255//2535 2483//2535 2282//2535 +f 2255//2535 2436//2535 2483//2535 +f 2281//2472 2484//2472 2437//2472 +f 2281//2536 2323//2536 2484//2536 +f 2355//2508 2438//2508 2485//2508 +f 2355//2537 2485//2537 2358//2537 +f 2394//2538 2486//2538 2473//2538 +f 2394//2539 2408//2539 2486//2539 +f 2409//2540 2487//2540 2425//2540 +f 2409//2541 2472//2541 2487//2541 +f 2238//2542 2488//2542 2369//2542 +f 2238//2392 2379//2392 2488//2392 +f 2134//2543 2489//2543 2380//2543 +f 2134//2543 2239//2543 2489//2543 +f 2485//2544 2438//2544 2490//2544 +f 2485//2545 2490//2545 2358//2545 +f 2267//2546 2468//2546 2491//2546 +f 2267//2546 2491//2546 2295//2546 +f 2294//2547 2350//2547 2492//2547 +f 2294//2515 2492//2515 2469//2515 +f 2320//2548 2340//2548 2493//2548 +f 2320//2524 2493//2524 2474//2524 +f 2310//2549 2494//2549 2319//2549 +f 2310//2549 2475//2549 2494//2549 +f 2467//2550 2482//2550 2495//2550 +f 2467//2551 2496//2551 2466//2551 +f 2467//2552 2495//2552 2496//2552 +f 2455//2553 2470//2553 2497//2553 +f 2455//2554 2497//2554 2480//2554 +f 2424//2555 2498//2555 2471//2555 +f 2424//2556 2456//2556 2498//2556 +f 2425//2557 2487//2557 2499//2557 +f 2425//2558 2499//2558 2445//2558 +f 2408//2559 2500//2559 2486//2559 +f 2408//2560 2426//2560 2500//2560 +f 2340//2561 2368//2561 2501//2561 +f 2340//2548 2501//2548 2493//2548 +f 2319//2562 2502//2562 2339//2562 +f 2319//2562 2494//2562 2502//2562 +f 2482//2563 2503//2563 2495//2563 +f 2466//2564 2504//2564 2481//2564 +f 2466//2565 2496//2565 2504//2565 +f 2482//2566 2480//2566 2505//2566 +f 2482//2567 2505//2567 2503//2567 +f 2321//2568 2477//2568 2429//2568 +f 2383//2569 2430//2569 2506//2569 +f 2383//2527 2506//2527 2476//2527 +f 2368//2570 2388//2570 2507//2570 +f 2368//2561 2507//2561 2501//2561 +f 2339//2571 2508//2571 2367//2571 +f 2339//2571 2502//2571 2508//2571 +f 2480//2572 2497//2572 2505//2572 +f 2456//2573 2509//2573 2498//2573 +f 2456//2574 2481//2574 2509//2574 +f 2373//2575 2510//2575 2374//2575 +f 2373//2575 2511//2575 2510//2575 +f 2373//2576 2391//2576 2511//2576 +f 2372//2577 2512//2577 2513//2577 +f 2372//2577 2513//2577 2375//2577 +f 2372//2578 2395//2578 2512//2578 +f 2282//2579 2514//2579 2324//2579 +f 2282//2579 2483//2579 2514//2579 +f 2323//2536 2515//2536 2484//2536 +f 2323//2580 2464//2580 2515//2580 +f 2426//2581 2516//2581 2500//2581 +f 2426//2582 2444//2582 2516//2582 +f 2445//2583 2517//2583 2470//2583 +f 2445//2584 2499//2584 2517//2584 +f 2225//2585 2518//2585 2268//2585 +f 2225//2528 2478//2528 2518//2528 +f 2160//2586 2519//2586 2479//2586 +f 2160//2586 2226//2586 2519//2586 +f 2388//2587 2392//2587 2520//2587 +f 2388//2570 2520//2570 2507//2570 +f 2367//2588 2521//2588 2387//2588 +f 2367//2588 2508//2588 2521//2588 +f 2375//2589 2513//2589 2522//2589 +f 2375//2589 2522//2589 2392//2589 +f 2391//2576 2523//2576 2511//2576 +f 2391//2590 2387//2590 2523//2590 +f 2392//2587 2522//2587 2520//2587 +f 2387//2590 2521//2590 2523//2590 +f 2326//2327 2524//2327 2302//2327 +f 2326//2591 2525//2591 2524//2591 +f 2182//2592 2526//2592 2370//2592 +f 2182//2592 2327//2592 2526//2592 +f 2326//2381 2369//2381 2525//2381 +f 2295//2593 2491//2593 2527//2593 +f 2295//2593 2527//2593 2351//2593 +f 2350//2547 2528//2547 2492//2547 +f 2350//2594 2416//2594 2528//2594 +f 2395//2595 2407//2595 2529//2595 +f 2374//2596 2530//2596 2396//2596 +f 2374//2596 2510//2596 2530//2596 +f 2395//2578 2529//2578 2512//2578 +f 2352//2597 2531//2597 2532//2597 +f 2352//2598 2353//2598 2531//2598 +f 2352//2599 2532//2599 2361//2599 +f 2407//2595 2533//2595 2529//2595 +f 2396//2600 2534//2600 2406//2600 +f 2396//2600 2530//2600 2534//2600 +f 2407//2601 2414//2601 2533//2601 +f 2470//2602 2517//2602 2535//2602 +f 2444//2603 2536//2603 2516//2603 +f 2444//2604 2471//2604 2536//2604 +f 2470//2605 2535//2605 2497//2605 +f 2353//2606 2537//2606 2531//2606 +f 2353//2607 2362//2607 2537//2607 +f 2361//2608 2538//2608 2381//2608 +f 2361//2609 2532//2609 2538//2609 +f 2440//2610 2411//2610 2441//2610 +f 2490//2611 2438//2611 2539//2611 +f 2490//2612 2539//2612 2358//2612 +f 2505//2613 2497//2613 2540//2613 +f 2505//2614 2540//2614 2541//2614 +f 2481//2615 2542//2615 2509//2615 +f 2481//2616 2504//2616 2542//2616 +f 2505//2617 2541//2617 2503//2617 +f 2406//2618 2543//2618 2415//2618 +f 2406//2618 2534//2618 2543//2618 +f 2414//2601 2544//2601 2533//2601 +f 2414//2619 2420//2619 2544//2619 +f 2495//2620 2503//2620 2545//2620 +f 2495//2621 2546//2621 2496//2621 +f 2495//2622 2545//2622 2546//2622 +f 2301//2623 2547//2623 2327//2623 +f 2301//2623 2431//2623 2547//2623 +f 2302//2464 2548//2464 2430//2464 +f 2302//2624 2524//2624 2548//2624 +f 2362//2625 2549//2625 2537//2625 +f 2362//2626 2382//2626 2549//2626 +f 2381//2627 2538//2627 2550//2627 +f 2381//2628 2550//2628 2404//2628 +f 2539//2629 2551//2629 2552//2629 +f 2539//2630 2438//2630 2551//2630 +f 2539//2631 2552//2631 2358//2631 +f 2420//2632 2428//2632 2553//2632 +f 2415//2633 2554//2633 2421//2633 +f 2415//2633 2543//2633 2554//2633 +f 2420//2619 2553//2619 2544//2619 +f 2441//2634 2555//2634 2556//2634 +f 2441//2635 2556//2635 2557//2635 +f 2441//2636 2557//2636 2558//2636 +f 2441//2637 2558//2637 2447//2637 +f 2441//2638 2411//2638 2555//2638 +f 2447//2639 2558//2639 2559//2639 +f 2447//2640 2559//2640 2463//2640 +f 2438//2641 2560//2641 2551//2641 +f 2438//2642 2446//2642 2560//2642 +f 2561//2643 2562//2643 2563//2643 +f 2561//2644 2564//2644 2565//2644 +f 2561//2644 2565//2644 2562//2644 +f 2561//2645 2566//2645 2564//2645 +f 2561//2646 2567//2646 2566//2646 +f 2561//2646 2563//2646 2567//2646 +f 2421//2647 2568//2647 2427//2647 +f 2421//2648 2554//2648 2568//2648 +f 2428//2649 2450//2649 2569//2649 +f 2428//2632 2569//2632 2553//2632 +f 2503//2650 2570//2650 2545//2650 +f 2496//2651 2571//2651 2504//2651 +f 2496//2652 2546//2652 2571//2652 +f 2503//2653 2541//2653 2570//2653 +f 2471//2654 2572//2654 2536//2654 +f 2471//2655 2498//2655 2572//2655 +f 2497//2656 2573//2656 2540//2656 +f 2497//2657 2535//2657 2573//2657 +f 2345//2658 2359//2658 2574//2658 +f 2345//2659 2575//2659 2346//2659 +f 2345//2659 2574//2659 2575//2659 +f 2566//2660 2576//2660 2577//2660 +f 2566//2660 2567//2660 2576//2660 +f 2566//2661 2577//2661 2578//2661 +f 2566//2645 2578//2645 2564//2645 +f 2346//2662 2579//2662 2349//2662 +f 2346//2662 2575//2662 2579//2662 +f 2563//2643 2562//2643 2580//2643 +f 2563//2663 2580//2663 2581//2663 +f 2564//2664 2582//2664 2583//2664 +f 2564//2664 2583//2664 2565//2664 +f 2564//2665 2578//2665 2582//2665 +f 2563//2666 2584//2666 2567//2666 +f 2563//2666 2581//2666 2584//2666 +f 2359//2658 2585//2658 2574//2658 +f 2359//2667 2364//2667 2585//2667 +f 2552//2668 2551//2668 2586//2668 +f 2552//2669 2586//2669 2358//2669 +f 2567//2670 2587//2670 2576//2670 +f 2567//2670 2584//2670 2587//2670 +f 2578//2661 2577//2661 2588//2661 +f 2578//2671 2588//2671 2589//2671 +f 2578//2665 2589//2665 2582//2665 +f 2349//2672 2590//2672 2360//2672 +f 2349//2672 2579//2672 2590//2672 +f 2586//2668 2551//2668 2591//2668 +f 2586//2669 2591//2669 2358//2669 +f 2463//2673 2592//2673 2472//2673 +f 2446//2674 2593//2674 2560//2674 +f 2446//2675 2462//2675 2593//2675 +f 2463//2676 2559//2676 2592//2676 +f 2382//2677 2594//2677 2549//2677 +f 2382//2678 2405//2678 2594//2678 +f 2404//2679 2595//2679 2432//2679 +f 2404//2680 2550//2680 2595//2680 +f 2351//2681 2527//2681 2596//2681 +f 2351//2681 2596//2681 2417//2681 +f 2416//2594 2597//2594 2528//2594 +f 2416//2682 2448//2682 2597//2682 +f 2358//2683 2598//2683 2599//2683 +f 2358//2684 2591//2684 2598//2684 +f 2358//2685 2599//2685 2600//2685 +f 2358//2686 2600//2686 2363//2686 +f 2364//2667 2601//2667 2585//2667 +f 2364//2687 2390//2687 2601//2687 +f 2360//2688 2602//2688 2371//2688 +f 2360//2688 2590//2688 2602//2688 +f 2581//2689 2603//2689 2604//2689 +f 2581//2663 2580//2663 2603//2663 +f 2582//2690 2605//2690 2606//2690 +f 2582//2690 2606//2690 2583//2690 +f 2582//2691 2589//2691 2605//2691 +f 2581//2692 2607//2692 2584//2692 +f 2581//2692 2604//2692 2607//2692 +f 2584//2693 2608//2693 2587//2693 +f 2584//2693 2607//2693 2608//2693 +f 2589//2671 2588//2671 2609//2671 +f 2589//2694 2609//2694 2610//2694 +f 2589//2691 2610//2691 2605//2691 +f 2450//2695 2611//2695 2569//2695 +f 2450//2696 2453//2696 2611//2696 +f 2427//2697 2568//2697 2451//2697 +f 2451//2698 2612//2698 2452//2698 +f 2451//2698 2613//2698 2612//2698 +f 2453//2699 2457//2699 2614//2699 +f 2453//2696 2614//2696 2611//2696 +f 2451//2697 2568//2697 2613//2697 +f 2577//2700 2615//2700 2616//2700 +f 2577//2701 2576//2701 2615//2701 +f 2577//2702 2616//2702 2588//2702 +f 2472//2703 2592//2703 2617//2703 +f 2472//2704 2617//2704 2487//2704 +f 2462//2705 2618//2705 2593//2705 +f 2462//2706 2473//2706 2618//2706 +f 2371//2707 2619//2707 2384//2707 +f 2371//2707 2602//2707 2619//2707 +f 2363//2708 2600//2708 2620//2708 +f 2363//2708 2620//2708 2389//2708 +f 2390//2687 2621//2687 2601//2687 +f 2390//2709 2403//2709 2621//2709 +f 2588//2710 2622//2710 2609//2710 +f 2576//2711 2623//2711 2615//2711 +f 2576//2712 2587//2712 2623//2712 +f 2588//2713 2616//2713 2622//2713 +f 2452//2714 2624//2714 2458//2714 +f 2452//2714 2612//2714 2624//2714 +f 2457//2715 2476//2715 2625//2715 +f 2457//2699 2625//2699 2614//2699 +f 2268//2716 2626//2716 2379//2716 +f 2268//2585 2518//2585 2626//2585 +f 2226//2717 2627//2717 2519//2717 +f 2226//2717 2269//2717 2627//2717 +f 2498//2718 2628//2718 2572//2718 +f 2498//2719 2509//2719 2628//2719 +f 2555//2720 2629//2720 2556//2720 +f 2555//2721 2411//2721 2629//2721 +f 2629//2721 2411//2721 2556//2721 +f 2459//2722 2449//2722 2630//2722 +f 2461//2723 2631//2723 2460//2723 +f 2461//552 597//552 2631//552 +f 2459//552 2630//552 590//552 +f 2587//2724 2632//2724 2623//2724 +f 2587//2724 2608//2724 2632//2724 +f 2609//2725 2622//2725 2633//2725 +f 2609//2726 2633//2726 2634//2726 +f 2609//2694 2634//2694 2610//2694 +f 2562//2727 2565//2727 2635//2727 +f 2562//2727 2635//2727 2636//2727 +f 2562//2728 2636//2728 2580//2728 +f 2604//2689 2603//2689 2637//2689 +f 2604//2729 2637//2729 2638//2729 +f 2605//2730 2639//2730 2640//2730 +f 2605//2730 2640//2730 2606//2730 +f 2605//2731 2610//2731 2639//2731 +f 2604//2732 2641//2732 2607//2732 +f 2604//2732 2638//2732 2641//2732 +f 2473//2733 2642//2733 2618//2733 +f 2473//2734 2486//2734 2642//2734 +f 2487//2735 2643//2735 2499//2735 +f 2487//2736 2617//2736 2643//2736 +f 2607//2737 2644//2737 2608//2737 +f 2607//2737 2641//2737 2644//2737 +f 2610//2738 2634//2738 2645//2738 +f 2610//2731 2645//2731 2639//2731 +f 2389//2739 2620//2739 2646//2739 +f 2389//2739 2646//2739 2402//2739 +f 2403//2740 2419//2740 2647//2740 +f 2403//2709 2647//2709 2621//2709 +f 2405//2741 2648//2741 2594//2741 +f 2405//2741 2433//2741 2648//2741 +f 2432//2742 2595//2742 2649//2742 +f 2432//2743 2649//2743 2478//2743 +f 2565//2744 2583//2744 2650//2744 +f 2565//2744 2650//2744 2635//2744 +f 2580//2728 2636//2728 2651//2728 +f 2580//2745 2651//2745 2603//2745 +f 2369//2542 2488//2542 2652//2542 +f 2239//2746 2653//2746 2489//2746 +f 2239//2746 2370//2746 2653//2746 +f 2369//2747 2652//2747 2525//2747 +f 2417//2748 2596//2748 2654//2748 +f 2417//2748 2654//2748 2449//2748 +f 2448//2749 2460//2749 2655//2749 +f 2448//2682 2655//2682 2597//2682 +f 2591//2750 2551//2750 2598//2750 +f 2411//2751 2437//2751 2656//2751 +f 2384//2752 2657//2752 2410//2752 +f 2384//2752 2619//2752 2657//2752 +f 2411//2753 2656//2753 2556//2753 +f 2476//2715 2658//2715 2625//2715 +f 2458//2754 2659//2754 2477//2754 +f 2458//2754 2624//2754 2659//2754 +f 2476//2755 2506//2755 2658//2755 +f 2541//2756 2540//2756 2660//2756 +f 2541//2757 2660//2757 2661//2757 +f 2504//2758 2662//2758 2542//2758 +f 2504//2759 2571//2759 2662//2759 +f 2541//2760 2661//2760 2570//2760 +f 2583//2761 2606//2761 2663//2761 +f 2583//2761 2663//2761 2650//2761 +f 2603//2745 2651//2745 2664//2745 +f 2603//2762 2664//2762 2637//2762 +f 2616//2763 2665//2763 2622//2763 +f 2616//2764 2615//2764 2665//2764 +f 2449//2765 2654//2765 2666//2765 +f 2449//2722 2666//2722 2630//2722 +f 2460//2766 2631//2766 2667//2766 +f 2460//2749 2667//2749 2655//2749 +f 2634//2767 2668//2767 2669//2767 +f 2608//2768 2670//2768 2632//2768 +f 2608//2768 2644//2768 2670//2768 +f 2634//2726 2633//2726 2668//2726 +f 2634//2738 2669//2738 2645//2738 +f 2499//2769 2643//2769 2671//2769 +f 2499//2770 2671//2770 2517//2770 +f 2486//2771 2672//2771 2642//2771 +f 2486//2772 2500//2772 2672//2772 +f 2402//2773 2646//2773 2673//2773 +f 2402//2773 2673//2773 2418//2773 +f 2419//2740 2674//2740 2647//2740 +f 2419//2774 2443//2774 2674//2774 +f 2631//2775 2675//2775 2667//2775 +f 2631//552 597//552 2675//552 +f 2630//552 2666//552 590//552 +f 2324//2776 2676//2776 2465//2776 +f 2324//2776 2514//2776 2676//2776 +f 2464//2580 2677//2580 2515//2580 +f 2464//2777 2474//2777 2677//2777 +f 2622//2763 2678//2763 2633//2763 +f 2622//2763 2665//2763 2678//2763 +f 2615//2764 2679//2764 2665//2764 +f 2615//2764 2623//2764 2679//2764 +f 2509//2778 2680//2778 2628//2778 +f 2509//2779 2542//2779 2680//2779 +f 2540//2780 2681//2780 2660//2780 +f 2540//2781 2573//2781 2681//2781 +f 2545//2782 2570//2782 2682//2782 +f 2545//2783 2683//2783 2546//2783 +f 2545//2784 2682//2784 2683//2784 +f 2633//2785 2678//2785 2668//2785 +f 2623//2786 2684//2786 2679//2786 +f 2623//2786 2632//2786 2684//2786 +f 2638//2787 2685//2787 2686//2787 +f 2638//2729 2637//2729 2685//2729 +f 2639//2788 2687//2788 2688//2788 +f 2639//2788 2688//2788 2640//2788 +f 2639//2789 2645//2789 2687//2789 +f 2638//2790 2689//2790 2641//2790 +f 2638//2790 2686//2790 2689//2790 +f 2641//2791 2690//2791 2644//2791 +f 2641//2791 2689//2791 2690//2791 +f 2645//2792 2669//2792 2691//2792 +f 2645//2789 2691//2789 2687//2789 +f 2606//2793 2640//2793 2692//2793 +f 2606//2793 2692//2793 2663//2793 +f 2637//2762 2664//2762 2693//2762 +f 2637//2794 2693//2794 2685//2794 +f 2556//2795 2656//2795 2557//2795 +f 2465//2796 2694//2796 2475//2796 +f 2465//2796 2676//2796 2694//2796 +f 2474//2777 2695//2777 2677//2777 +f 2474//2797 2493//2797 2695//2797 +f 2570//2798 2696//2798 2682//2798 +f 2570//2799 2697//2799 2696//2799 +f 2546//2800 2698//2800 2571//2800 +f 2546//2801 2683//2801 2698//2801 +f 2570//2802 2661//2802 2697//2802 +f 2437//2751 2699//2751 2656//2751 +f 2437//2803 2484//2803 2699//2803 +f 2410//2804 2700//2804 2436//2804 +f 2410//2804 2657//2804 2700//2804 +f 2500//2805 2701//2805 2672//2805 +f 2500//2806 2516//2806 2701//2806 +f 2517//2807 2702//2807 2535//2807 +f 2517//2808 2671//2808 2702//2808 +f 2418//2809 2673//2809 2703//2809 +f 2418//2809 2703//2809 2442//2809 +f 2443//2810 2469//2810 2704//2810 +f 2443//2774 2704//2774 2674//2774 +f 2506//2811 2430//2811 2705//2811 +f 2477//2812 2706//2812 2429//2812 +f 2477//2812 2659//2812 2706//2812 +f 2506//2755 2705//2755 2658//2755 +f 2433//2813 2707//2813 2648//2813 +f 2433//2813 2479//2813 2707//2813 +f 2478//2814 2708//2814 2518//2814 +f 2478//2743 2649//2743 2708//2743 +f 2644//2815 2709//2815 2670//2815 +f 2644//2815 2690//2815 2709//2815 +f 2669//2767 2668//2767 2710//2767 +f 2669//2816 2710//2816 2711//2816 +f 2669//2792 2711//2792 2691//2792 +f 2668//2817 2712//2817 2710//2817 +f 2668//2785 2678//2785 2712//2785 +f 2632//2818 2713//2818 2684//2818 +f 2632//2818 2670//2818 2713//2818 +f 2598//2819 2551//2819 2599//2819 +f 2475//2820 2714//2820 2494//2820 +f 2475//2820 2694//2820 2714//2820 +f 2493//2797 2715//2797 2695//2797 +f 2493//2821 2501//2821 2715//2821 +f 2442//2822 2703//2822 2716//2822 +f 2442//2822 2716//2822 2468//2822 +f 2469//2810 2717//2810 2704//2810 +f 2469//2823 2492//2823 2717//2823 +f 2535//2824 2702//2824 2718//2824 +f 2516//2825 2719//2825 2701//2825 +f 2516//2826 2536//2826 2719//2826 +f 2535//2827 2718//2827 2573//2827 +f 2636//2828 2720//2828 2651//2828 +f 2636//2829 2635//2829 2721//2829 +f 2636//2830 2721//2830 2720//2830 +f 2685//2787 2722//2787 2686//2787 +f 2640//2831 2688//2831 2723//2831 +f 2640//2831 2723//2831 2692//2831 +f 2685//2794 2693//2794 2724//2794 +f 2685//2832 2724//2832 2722//2832 +f 2494//2833 2725//2833 2502//2833 +f 2494//2833 2714//2833 2725//2833 +f 2501//2821 2726//2821 2715//2821 +f 2501//2834 2507//2834 2726//2834 +f 2651//2835 2720//2835 2664//2835 +f 2635//2836 2650//2836 2721//2836 +f 2686//2837 2722//2837 2727//2837 +f 2687//2838 2728//2838 2729//2838 +f 2687//2838 2729//2838 2688//2838 +f 2687//2839 2691//2839 2728//2839 +f 2686//2840 2730//2840 2689//2840 +f 2686//2840 2727//2840 2730//2840 +f 2689//2841 2731//2841 2690//2841 +f 2689//2841 2730//2841 2731//2841 +f 2691//2842 2711//2842 2732//2842 +f 2691//2839 2732//2839 2728//2839 +f 2379//2843 2733//2843 2488//2843 +f 2379//2716 2626//2716 2733//2716 +f 2269//2844 2734//2844 2627//2844 +f 2269//2844 2380//2844 2734//2844 +f 2484//2803 2735//2803 2699//2803 +f 2484//2845 2515//2845 2735//2845 +f 2436//2846 2736//2846 2483//2846 +f 2436//2846 2700//2846 2736//2846 +f 2664//2847 2720//2847 2737//2847 +f 2664//2848 2737//2848 2693//2848 +f 2650//2849 2663//2849 2738//2849 +f 2650//2850 2738//2850 2721//2850 +f 2710//2816 2739//2816 2711//2816 +f 2710//2851 2740//2851 2739//2851 +f 2710//2817 2712//2817 2740//2817 +f 2670//2852 2741//2852 2713//2852 +f 2670//2852 2709//2852 2741//2852 +f 2502//2853 2742//2853 2508//2853 +f 2502//2853 2725//2853 2742//2853 +f 2507//2834 2743//2834 2726//2834 +f 2507//2854 2520//2854 2743//2854 +f 2661//2855 2660//2855 2744//2855 +f 2661//2856 2744//2856 2745//2856 +f 2571//2857 2746//2857 2662//2857 +f 2571//2858 2698//2858 2746//2858 +f 2661//2859 2745//2859 2697//2859 +f 2512//2860 2747//2860 2748//2860 +f 2512//2860 2748//2860 2513//2860 +f 2511//2861 2523//2861 2749//2861 +f 2511//2862 2750//2862 2510//2862 +f 2511//2862 2749//2862 2750//2862 +f 2512//2863 2529//2863 2747//2863 +f 2468//2864 2716//2864 2751//2864 +f 2468//2864 2751//2864 2491//2864 +f 2492//2865 2528//2865 2752//2865 +f 2492//2823 2752//2823 2717//2823 +f 2430//2811 2753//2811 2705//2811 +f 2430//2866 2548//2866 2753//2866 +f 2429//2867 2754//2867 2431//2867 +f 2429//2867 2706//2867 2754//2867 +f 2542//2868 2755//2868 2680//2868 +f 2542//2869 2662//2869 2755//2869 +f 2660//2870 2756//2870 2744//2870 +f 2660//2871 2681//2871 2756//2871 +f 2573//2872 2757//2872 2681//2872 +f 2536//2873 2758//2873 2719//2873 +f 2536//2874 2572//2874 2758//2874 +f 2573//2875 2718//2875 2757//2875 +f 2508//2876 2759//2876 2521//2876 +f 2508//2876 2742//2876 2759//2876 +f 2520//2854 2760//2854 2743//2854 +f 2520//2877 2522//2877 2760//2877 +f 2711//2878 2739//2878 2761//2878 +f 2690//2879 2762//2879 2709//2879 +f 2690//2879 2731//2879 2762//2879 +f 2711//2842 2761//2842 2732//2842 +f 2523//2880 2521//2880 2763//2880 +f 2523//2861 2763//2861 2749//2861 +f 2513//2881 2748//2881 2764//2881 +f 2513//2881 2764//2881 2522//2881 +f 2521//2880 2759//2880 2763//2880 +f 2522//2877 2764//2877 2760//2877 +f 2599//2882 2551//2882 2765//2882 +f 2599//2883 2765//2883 2600//2883 +f 2479//2884 2766//2884 2707//2884 +f 2479//2884 2519//2884 2766//2884 +f 2518//2814 2708//2814 2767//2814 +f 2518//2885 2767//2885 2626//2885 +f 2529//2886 2533//2886 2768//2886 +f 2510//2887 2769//2887 2530//2887 +f 2510//2887 2750//2887 2769//2887 +f 2529//2863 2768//2863 2747//2863 +f 2663//2888 2692//2888 2770//2888 +f 2663//2889 2770//2889 2738//2889 +f 2693//2890 2737//2890 2771//2890 +f 2693//2891 2771//2891 2724//2891 +f 2682//2892 2772//2892 2683//2892 +f 2682//2893 2696//2893 2772//2893 +f 2722//2837 2773//2837 2727//2837 +f 2688//2894 2729//2894 2774//2894 +f 2688//2894 2774//2894 2723//2894 +f 2722//2832 2724//2832 2775//2832 +f 2722//2895 2775//2895 2773//2895 +f 2533//2896 2544//2896 2776//2896 +f 2533//2886 2776//2886 2768//2886 +f 2530//2897 2777//2897 2534//2897 +f 2530//2897 2769//2897 2777//2897 +f 2544//2896 2778//2896 2776//2896 +f 2534//2898 2779//2898 2543//2898 +f 2534//2898 2777//2898 2779//2898 +f 2544//2899 2553//2899 2778//2899 +f 2572//2900 2780//2900 2758//2900 +f 2572//2901 2628//2901 2780//2901 +f 2683//2902 2781//2902 2698//2902 +f 2683//2903 2772//2903 2781//2903 +f 2515//2845 2782//2845 2735//2845 +f 2515//2904 2677//2904 2782//2904 +f 2483//2905 2783//2905 2514//2905 +f 2483//2906 2784//2906 2783//2906 +f 2483//2907 2785//2907 2784//2907 +f 2483//2908 2786//2908 2785//2908 +f 2483//2909 2787//2909 2786//2909 +f 2483//2910 2736//2910 2787//2910 +f 2739//2878 2788//2878 2761//2878 +f 2739//2911 2789//2911 2788//2911 +f 2739//2851 2740//2851 2789//2851 +f 2709//2912 2790//2912 2741//2912 +f 2709//2912 2762//2912 2790//2912 +f 2553//2913 2569//2913 2791//2913 +f 2543//2914 2792//2914 2554//2914 +f 2543//2914 2779//2914 2792//2914 +f 2553//2899 2791//2899 2778//2899 +f 2727//2915 2773//2915 2793//2915 +f 2728//2916 2794//2916 2795//2916 +f 2728//2916 2795//2916 2729//2916 +f 2728//2917 2732//2917 2794//2917 +f 2727//2918 2796//2918 2730//2918 +f 2727//2918 2793//2918 2796//2918 +f 2532//2919 2797//2919 2538//2919 +f 2532//2920 2531//2920 2797//2920 +f 2730//2921 2798//2921 2731//2921 +f 2730//2921 2796//2921 2798//2921 +f 2732//2922 2761//2922 2799//2922 +f 2732//2917 2799//2917 2794//2917 +f 2557//2923 2656//2923 2558//2923 +f 2665//2924 2800//2924 2801//2924 +f 2665//2924 2679//2924 2800//2924 +f 2665//2925 2801//2925 2678//2925 +f 2524//2591 2525//2591 2802//2591 +f 2327//2926 2803//2926 2526//2926 +f 2327//2926 2547//2926 2803//2926 +f 2524//2624 2804//2624 2548//2624 +f 2524//2927 2802//2927 2804//2927 +f 2724//2928 2805//2928 2775//2928 +f 2724//2929 2771//2929 2805//2929 +f 2692//2930 2723//2930 2806//2930 +f 2692//2931 2806//2931 2770//2931 +f 2554//2932 2807//2932 2568//2932 +f 2554//2933 2792//2933 2807//2933 +f 2569//2934 2611//2934 2808//2934 +f 2569//2913 2808//2913 2791//2913 +f 2538//2919 2809//2919 2550//2919 +f 2538//2919 2797//2919 2809//2919 +f 2531//2920 2810//2920 2797//2920 +f 2531//2920 2537//2920 2810//2920 +f 2491//2935 2751//2935 2811//2935 +f 2491//2935 2811//2935 2527//2935 +f 2528//2865 2812//2865 2752//2865 +f 2528//2936 2597//2936 2812//2936 +f 2550//2937 2809//2937 2595//2937 +f 2537//2938 2549//2938 2810//2938 +f 2765//2939 2813//2939 2814//2939 +f 2765//2940 2551//2940 2813//2940 +f 2765//2883 2814//2883 2600//2883 +f 2731//2941 2815//2941 2762//2941 +f 2731//2941 2798//2941 2815//2941 +f 2761//2942 2788//2942 2816//2942 +f 2761//2922 2816//2922 2799//2922 +f 2679//2943 2817//2943 2800//2943 +f 2679//2944 2684//2944 2817//2944 +f 2678//2925 2801//2925 2818//2925 +f 2678//2945 2818//2945 2712//2945 +f 2681//2946 2819//2946 2756//2946 +f 2681//2947 2757//2947 2819//2947 +f 2628//2948 2820//2948 2780//2948 +f 2628//2949 2680//2949 2820//2949 +f 2814//2950 2821//2950 2822//2950 +f 2814//2951 2813//2951 2821//2951 +f 2814//2952 2822//2952 2600//2952 +f 2558//2953 2823//2953 2824//2953 +f 2558//2954 2824//2954 2825//2954 +f 2558//2955 2825//2955 2559//2955 +f 2558//2923 2656//2923 2823//2923 +f 2611//2956 2826//2956 2808//2956 +f 2611//2696 2614//2696 2826//2696 +f 2568//2697 2807//2697 2613//2697 +f 2559//2957 2825//2957 2827//2957 +f 2559//2958 2827//2958 2828//2958 +f 2551//2959 2829//2959 2813//2959 +f 2551//2960 2560//2960 2829//2960 +f 2559//2961 2828//2961 2592//2961 +f 2560//2962 2830//2962 2829//2962 +f 2560//2963 2593//2963 2830//2963 +f 2592//2961 2828//2961 2831//2961 +f 2592//2964 2831//2964 2832//2964 +f 2592//2965 2832//2965 2617//2965 +f 2773//2915 2833//2915 2793//2915 +f 2729//2966 2795//2966 2834//2966 +f 2729//2966 2834//2966 2774//2966 +f 2773//2895 2775//2895 2835//2895 +f 2773//2967 2835//2967 2833//2967 +f 2744//2968 2836//2968 2745//2968 +f 2662//2969 2837//2969 2755//2969 +f 2662//2970 2746//2970 2837//2970 +f 2744//2971 2838//2971 2839//2971 +f 2744//2972 2839//2972 2836//2972 +f 2744//2973 2756//2973 2838//2973 +f 2698//2974 2840//2974 2746//2974 +f 2698//2975 2781//2975 2840//2975 +f 2525//2976 2841//2976 2802//2976 +f 2370//2977 2842//2977 2653//2977 +f 2370//2977 2526//2977 2842//2977 +f 2525//2747 2652//2747 2841//2747 +f 2684//2978 2843//2978 2817//2978 +f 2684//2979 2713//2979 2843//2979 +f 2712//2980 2844//2980 2740//2980 +f 2712//2981 2818//2981 2844//2981 +f 2519//2982 2845//2982 2766//2982 +f 2519//2982 2627//2982 2845//2982 +f 2626//2983 2846//2983 2733//2983 +f 2626//2885 2767//2885 2846//2885 +f 2595//2937 2847//2937 2649//2937 +f 2595//2937 2809//2937 2847//2937 +f 2549//2938 2848//2938 2810//2938 +f 2549//2938 2594//2938 2848//2938 +f 2775//2984 2805//2984 2849//2984 +f 2775//2985 2849//2985 2835//2985 +f 2723//2986 2774//2986 2850//2986 +f 2723//2987 2850//2987 2806//2987 +f 2617//2988 2832//2988 2851//2988 +f 2617//2989 2851//2989 2643//2989 +f 2593//2990 2852//2990 2830//2990 +f 2593//2991 2618//2991 2852//2991 +f 2788//2942 2853//2942 2816//2942 +f 2788//2992 2854//2992 2853//2992 +f 2788//2911 2789//2911 2854//2911 +f 2762//2993 2855//2993 2790//2993 +f 2762//2993 2815//2993 2855//2993 +f 2488//2994 2856//2994 2652//2994 +f 2488//2843 2733//2843 2856//2843 +f 2380//2995 2857//2995 2734//2995 +f 2380//2995 2489//2995 2857//2995 +f 2597//2996 2655//2996 2858//2996 +f 2527//2997 2811//2997 2859//2997 +f 2527//2997 2859//2997 2596//2997 +f 2597//2936 2858//2936 2812//2936 +f 2823//2998 2656//2998 2824//2998 +f 2696//2999 2697//2999 2860//2999 +f 2696//3000 2861//3000 2772//3000 +f 2696//3001 2860//3001 2861//3001 +f 2618//3002 2862//3002 2852//3002 +f 2618//3003 2642//3003 2862//3003 +f 2643//3004 2863//3004 2671//3004 +f 2643//3005 2851//3005 2863//3005 +f 2649//3006 2847//3006 2708//3006 +f 2594//3007 2864//3007 2848//3007 +f 2594//3007 2648//3007 2864//3007 +f 2793//3008 2833//3008 2865//3008 +f 2794//3009 2866//3009 2867//3009 +f 2794//3009 2867//3009 2795//3009 +f 2794//3010 2799//3010 2866//3010 +f 2793//3011 2868//3011 2796//3011 +f 2793//3011 2865//3011 2868//3011 +f 2796//3012 2869//3012 2798//3012 +f 2796//3012 2868//3012 2869//3012 +f 2799//3013 2816//3013 2870//3013 +f 2799//3010 2870//3010 2866//3010 +f 2713//3014 2871//3014 2843//3014 +f 2713//3015 2741//3015 2871//3015 +f 2740//3016 2844//3016 2872//3016 +f 2740//3017 2872//3017 2789//3017 +f 2822//3018 2821//3018 2873//3018 +f 2822//3019 2873//3019 2600//3019 +f 2697//3020 2874//3020 2860//3020 +f 2772//3021 2875//3021 2781//3021 +f 2772//3022 2861//3022 2875//3022 +f 2697//3023 2745//3023 2874//3023 +f 2671//3024 2863//3024 2876//3024 +f 2671//3025 2876//3025 2702//3025 +f 2642//3026 2877//3026 2862//3026 +f 2642//3027 2672//3027 2877//3027 +f 2756//3028 2819//3028 2878//3028 +f 2756//3029 2878//3029 2838//3029 +f 2680//3030 2879//3030 2820//3030 +f 2680//3031 2755//3031 2879//3031 +f 2816//3032 2853//3032 2880//3032 +f 2798//3033 2881//3033 2815//3033 +f 2798//3033 2869//3033 2881//3033 +f 2816//3013 2880//3013 2870//3013 +f 2655//2996 2882//2996 2858//2996 +f 2655//3034 2667//3034 2882//3034 +f 2596//3035 2859//3035 2883//3035 +f 2596//3035 2883//3035 2654//3035 +f 2548//3036 2804//3036 2884//3036 +f 2548//2866 2884//2866 2753//2866 +f 2431//3037 2885//3037 2547//3037 +f 2431//3037 2754//3037 2885//3037 +f 2654//3038 2883//3038 2886//3038 +f 2654//3039 2886//3039 2666//3039 +f 2667//3034 2887//3034 2882//3034 +f 2667//2775 2675//2775 2888//2775 +f 2667//3040 2888//3040 2887//3040 +f 2835//3041 2889//3041 2890//3041 +f 2835//3042 2849//3042 2889//3042 +f 2774//3043 2834//3043 2891//3043 +f 2774//3044 2891//3044 2850//3044 +f 2835//2967 2890//2967 2833//2967 +f 2675//552 597//552 2888//552 +f 2666//552 2886//552 590//552 +f 2677//2904 2892//2904 2782//2904 +f 2677//3045 2695//3045 2892//3045 +f 2514//3046 2783//3046 2893//3046 +f 2514//3047 2893//3047 2894//3047 +f 2514//3048 2895//3048 2676//3048 +f 2514//3048 2894//3048 2895//3048 +f 2672//3049 2896//3049 2877//3049 +f 2672//3050 2701//3050 2896//3050 +f 2702//3051 2897//3051 2718//3051 +f 2702//3052 2876//3052 2897//3052 +f 2833//3008 2898//3008 2865//3008 +f 2795//3053 2867//3053 2899//3053 +f 2795//3053 2899//3053 2834//3053 +f 2833//3054 2890//3054 2898//3054 +f 2574//3055 2900//3055 2575//3055 +f 2574//3055 2901//3055 2900//3055 +f 2574//3056 2585//3056 2902//3056 +f 2574//3057 2902//3057 2903//3057 +f 2574//3058 2903//3058 2904//3058 +f 2574//3058 2904//3058 2905//3058 +f 2574//3059 2905//3059 2901//3059 +f 2575//3060 2906//3060 2579//3060 +f 2575//3060 2900//3060 2906//3060 +f 2708//3061 2907//3061 2767//3061 +f 2708//3006 2847//3006 2907//3006 +f 2648//3062 2908//3062 2864//3062 +f 2648//3062 2707//3062 2908//3062 +f 2585//3063 2601//3063 2909//3063 +f 2585//3064 2909//3064 2910//3064 +f 2585//3065 2910//3065 2911//3065 +f 2585//3066 2911//3066 2912//3066 +f 2585//3067 2912//3067 2913//3067 +f 2585//3068 2913//3068 2914//3068 +f 2585//3069 2914//3069 2902//3069 +f 2579//3070 2915//3070 2590//3070 +f 2579//3070 2906//3070 2915//3070 +f 2741//3071 2916//3071 2871//3071 +f 2741//3072 2790//3072 2916//3072 +f 2789//3073 2917//3073 2854//3073 +f 2789//3074 2872//3074 2917//3074 +f 2824//3075 2656//3075 2825//3075 +f 2746//3076 2918//3076 2837//3076 +f 2746//3077 2840//3077 2918//3077 +f 2601//3078 2621//3078 2919//3078 +f 2601//3079 2919//3079 2909//3079 +f 2695//3045 2920//3045 2892//3045 +f 2695//3080 2715//3080 2920//3080 +f 2676//3081 2921//3081 2694//3081 +f 2676//3081 2895//3081 2921//3081 +f 2590//3082 2922//3082 2602//3082 +f 2590//3082 2915//3082 2922//3082 +f 2853//3032 2923//3032 2880//3032 +f 2853//3083 2924//3083 2923//3083 +f 2853//2992 2854//2992 2924//2992 +f 2815//3084 2925//3084 2855//3084 +f 2815//3084 2881//3084 2925//3084 +f 2873//3018 2821//3018 2926//3018 +f 2873//3019 2926//3019 2600//3019 +f 2745//3085 2836//3085 2927//3085 +f 2781//3086 2928//3086 2840//3086 +f 2781//3087 2875//3087 2928//3087 +f 2745//3088 2927//3088 2874//3088 +f 2627//3089 2929//3089 2845//3089 +f 2627//3089 2734//3089 2929//3089 +f 2733//2983 2846//2983 2930//2983 +f 2733//3090 2930//3090 2856//3090 +f 2602//3091 2931//3091 2619//3091 +f 2602//3091 2922//3091 2931//3091 +f 2718//3092 2897//3092 2932//3092 +f 2701//3093 2933//3093 2896//3093 +f 2701//3094 2719//3094 2933//3094 +f 2718//3095 2932//3095 2757//3095 +f 2621//3096 2647//3096 2934//3096 +f 2621//3097 2935//3097 2919//3097 +f 2621//3098 2936//3098 2935//3098 +f 2621//3099 2937//3099 2936//3099 +f 2621//3100 2938//3100 2937//3100 +f 2621//3101 2939//3101 2938//3101 +f 2621//3101 2940//3101 2939//3101 +f 2621//3102 2934//3102 2940//3102 +f 2600//3103 2941//3103 2942//3103 +f 2600//3103 2942//3103 2620//3103 +f 2600//3104 2926//3104 2941//3104 +f 2715//3080 2943//3080 2920//3080 +f 2715//3105 2726//3105 2943//3105 +f 2694//3106 2944//3106 2714//3106 +f 2694//3106 2921//3106 2944//3106 +f 2926//3107 2821//3107 2941//3107 +f 2886//3108 2883//3108 2945//3108 +f 2888//3109 2946//3109 2887//3109 +f 2888//552 597//552 2946//552 +f 2886//552 2945//552 590//552 +f 2825//3075 2656//3075 2827//3075 +f 2620//3110 2942//3110 2947//3110 +f 2620//3110 2947//3110 2646//3110 +f 2647//3111 2674//3111 2948//3111 +f 2647//3112 2949//3112 2934//3112 +f 2647//3113 2950//3113 2949//3113 +f 2647//3114 2948//3114 2950//3114 +f 2720//3115 2721//3115 2951//3115 +f 2720//3115 2951//3115 2952//3115 +f 2720//3116 2952//3116 2737//3116 +f 2726//3105 2953//3105 2943//3105 +f 2726//3117 2743//3117 2953//3117 +f 2714//3118 2954//3118 2725//3118 +f 2714//3118 2944//3118 2954//3118 +f 2656//3119 2955//3119 2827//3119 +f 2619//3120 2956//3120 2657//3120 +f 2619//3120 2931//3120 2956//3120 +f 2656//3121 2699//3121 2955//3121 +f 2821//3122 2957//3122 2958//3122 +f 2821//3123 2959//3123 2957//3123 +f 2821//3124 2813//3124 2959//3124 +f 2821//3107 2958//3107 2941//3107 +f 2860//3125 2874//3125 2960//3125 +f 2860//3126 2961//3126 2861//3126 +f 2860//3127 2960//3127 2961//3127 +f 2719//3128 2962//3128 2933//3128 +f 2719//3129 2758//3129 2962//3129 +f 2757//3130 2932//3130 2963//3130 +f 2757//3131 2963//3131 2819//3131 +f 2827//3132 2964//3132 2828//3132 +f 2827//3133 2955//3133 2964//3133 +f 2865//3134 2898//3134 2965//3134 +f 2866//3135 2966//3135 2967//3135 +f 2866//3135 2967//3135 2867//3135 +f 2866//3136 2870//3136 2966//3136 +f 2865//3137 2968//3137 2868//3137 +f 2865//3137 2965//3137 2968//3137 +f 2868//3138 2969//3138 2869//3138 +f 2868//3138 2968//3138 2969//3138 +f 2870//3139 2880//3139 2970//3139 +f 2870//3136 2970//3136 2966//3136 +f 2721//3140 2738//3140 2971//3140 +f 2721//3140 2971//3140 2951//3140 +f 2737//3116 2952//3116 2972//3116 +f 2737//3141 2972//3141 2771//3141 +f 2838//3142 2973//3142 2839//3142 +f 2838//3143 2878//3143 2973//3143 +f 2755//3144 2974//3144 2879//3144 +f 2755//3145 2837//3145 2974//3145 +f 2646//3146 2947//3146 2975//3146 +f 2646//3146 2975//3146 2673//3146 +f 2674//3147 2704//3147 2976//3147 +f 2674//3111 2976//3111 2948//3111 +f 2743//3117 2977//3117 2953//3117 +f 2743//3148 2760//3148 2977//3148 +f 2725//3149 2978//3149 2742//3149 +f 2725//3149 2954//3149 2978//3149 +f 2828//3150 2979//3150 2980//3150 +f 2828//3151 2964//3151 2979//3151 +f 2828//3152 2980//3152 2831//3152 +f 2813//2959 2829//2959 2959//2959 +f 2767//3153 2981//3153 2846//3153 +f 2767//3061 2907//3061 2981//3061 +f 2707//3154 2982//3154 2908//3154 +f 2707//3154 2766//3154 2982//3154 +f 2874//3155 2983//3155 2960//3155 +f 2861//3156 2984//3156 2875//3156 +f 2861//3157 2961//3157 2984//3157 +f 2874//3158 2927//3158 2983//3158 +f 2747//3159 2985//3159 2986//3159 +f 2747//3160 2986//3160 2748//3160 +f 2749//3161 2987//3161 2750//3161 +f 2749//3161 2988//3161 2987//3161 +f 2749//3162 2763//3162 2988//3162 +f 2747//3163 2768//3163 2985//3163 +f 2790//3164 2989//3164 2916//3164 +f 2790//3165 2855//3165 2989//3165 +f 2854//3166 2917//3166 2990//3166 +f 2854//3167 2990//3167 2924//3167 +f 2834//3168 2899//3168 2991//3168 +f 2834//3169 2991//3169 2891//3169 +f 2890//3170 2889//3170 2992//3170 +f 2890//3171 2992//3171 2993//3171 +f 2890//3054 2993//3054 2898//3054 +f 2760//3148 2994//3148 2977//3148 +f 2760//3172 2764//3172 2994//3172 +f 2742//3173 2995//3173 2759//3173 +f 2742//3173 2978//3173 2995//3173 +f 2869//3174 2996//3174 2881//3174 +f 2869//3174 2969//3174 2996//3174 +f 2880//3175 2923//3175 2997//3175 +f 2880//3139 2997//3139 2970//3139 +f 2763//3176 2998//3176 2988//3176 +f 2763//3177 2759//3177 2998//3177 +f 2748//3178 2986//3178 2999//3178 +f 2748//3179 2999//3179 2764//3179 +f 2764//3172 2999//3172 2994//3172 +f 2759//3180 2995//3180 2998//3180 +f 2964//3181 2955//3181 2979//3181 +f 2758//3182 3000//3182 2962//3182 +f 2758//3183 2780//3183 3000//3183 +f 2750//3184 2987//3184 2769//3184 +f 2768//3185 3001//3185 2985//3185 +f 2768//3186 2776//3186 3001//3186 +f 2657//3187 3002//3187 2700//3187 +f 2657//3187 2956//3187 3002//3187 +f 2699//3188 2735//3188 3003//3188 +f 2699//3121 3003//3121 2955//3121 +f 2673//3189 2975//3189 3004//3189 +f 2673//3189 3004//3189 2703//3189 +f 2704//3190 2717//3190 3005//3190 +f 2704//3147 3005//3147 2976//3147 +f 2652//3191 3006//3191 2841//3191 +f 2652//2994 2856//2994 3006//2994 +f 2489//3192 3007//3192 2857//3192 +f 2489//3192 2653//3192 3007//3192 +f 2738//3140 2770//3140 2971//3140 +f 2771//3141 2972//3141 2805//3141 +f 2776//3193 2778//3193 3008//3193 +f 2769//3194 3009//3194 2777//3194 +f 2769//3194 3010//3194 3009//3194 +f 2769//3195 2987//3195 3010//3195 +f 2776//3186 3008//3186 3001//3186 +f 2898//3134 3011//3134 2965//3134 +f 2867//3196 2967//3196 3012//3196 +f 2867//3196 3012//3196 2899//3196 +f 2898//3197 2993//3197 3011//3197 +f 2778//3193 3013//3193 3008//3193 +f 2777//3198 3014//3198 2779//3198 +f 2777//3198 3009//3198 3014//3198 +f 2778//3199 2791//3199 3013//3199 +f 2797//3200 3015//3200 3016//3200 +f 2797//3200 2810//3200 3015//3200 +f 2797//3201 3016//3201 2809//3201 +f 2958//3202 2957//3202 3017//3202 +f 2958//3203 3017//3203 2941//3203 +f 2836//3204 3018//3204 2927//3204 +f 2840//3205 3019//3205 2918//3205 +f 2840//3206 2928//3206 3019//3206 +f 2836//3207 3020//3207 3018//3207 +f 2836//3208 2839//3208 3020//3208 +f 2923//3083 2924//3083 3021//3083 +f 2881//3209 3022//3209 2925//3209 +f 2881//3209 2996//3209 3022//3209 +f 2923//3210 3021//3210 3023//3210 +f 2923//3175 3023//3175 2997//3175 +f 2703//3211 3004//3211 3024//3211 +f 2703//3211 3024//3211 2716//3211 +f 2717//3190 3025//3190 3005//3190 +f 2717//3212 2752//3212 3025//3212 +f 2791//3213 2808//3213 3026//3213 +f 2779//3214 3027//3214 2792//3214 +f 2779//3214 3014//3214 3027//3214 +f 2791//3199 3026//3199 3013//3199 +f 2927//3215 3018//3215 3028//3215 +f 2875//3216 3029//3216 2928//3216 +f 2875//3217 2984//3217 3029//3217 +f 2927//3218 3028//3218 2983//3218 +f 2780//3219 3030//3219 3000//3219 +f 2780//3220 2820//3220 3030//3220 +f 2819//3221 2963//3221 3031//3221 +f 2819//3222 3031//3222 2878//3222 +f 2770//3223 2806//3223 3032//3223 +f 2770//3223 3032//3223 2971//3223 +f 2805//3141 2972//3141 3033//3141 +f 2805//3224 3033//3224 2849//3224 +f 2810//3225 3034//3225 3015//3225 +f 2810//3225 2848//3225 3034//3225 +f 2809//3226 3035//3226 2847//3226 +f 2809//3201 3016//3201 3035//3201 +f 2792//3227 3036//3227 2807//3227 +f 2792//3227 3027//3227 3036//3227 +f 2808//3228 2826//3228 3037//3228 +f 2808//3213 3037//3213 3026//3213 +f 2700//3229 3038//3229 2736//3229 +f 2700//3229 3039//3229 3038//3229 +f 2700//3229 3002//3229 3039//3229 +f 2735//3230 2782//3230 3040//3230 +f 2735//3188 3040//3188 3003//3188 +f 2716//3231 3024//3231 3041//3231 +f 2716//3231 3041//3231 2751//3231 +f 2752//3232 2812//3232 3042//3232 +f 2752//3212 3042//3212 3025//3212 +f 2734//3233 3043//3233 2929//3233 +f 2734//3233 2857//3233 3043//3233 +f 2856//3234 3044//3234 3006//3234 +f 2856//3090 2930//3090 3044//3090 +f 2801//3235 3045//3235 2818//3235 +f 2801//3236 3046//3236 3045//3236 +f 2801//3236 2800//3236 3046//3236 +f 2826//3228 3047//3228 3037//3228 +f 2826//3237 2614//3237 3047//3237 +f 2807//3238 3048//3238 2613//3238 +f 2807//3238 3036//3238 3048//3238 +f 2846//3239 3049//3239 2930//3239 +f 2846//3153 2981//3153 3049//3153 +f 2766//3240 3050//3240 2982//3240 +f 2766//3240 2845//3240 3050//3240 +f 2613//3241 3051//3241 2612//3241 +f 2613//3241 3048//3241 3051//3241 +f 2614//3242 2625//3242 3052//3242 +f 2614//3237 3052//3237 3047//3237 +f 2924//3243 3053//3243 3021//3243 +f 2855//3244 3054//3244 2989//3244 +f 2855//3245 2925//3245 3054//3245 +f 2924//3167 2990//3167 3053//3167 +f 2960//3246 2983//3246 3055//3246 +f 2960//3247 3056//3247 2961//3247 +f 2960//3247 3057//3247 3056//3247 +f 2960//3248 3055//3248 3057//3248 +f 2839//3249 2973//3249 3058//3249 +f 2839//3250 3058//3250 3020//3250 +f 2612//3251 3059//3251 2624//3251 +f 2612//3251 3051//3251 3059//3251 +f 2625//3252 2658//3252 3060//3252 +f 2625//3242 3060//3242 3052//3242 +f 2837//3253 3061//3253 2974//3253 +f 2837//3254 2918//3254 3061//3254 +f 2802//3255 3062//3255 3063//3255 +f 2802//2976 2841//2976 3062//2976 +f 2526//3256 3064//3256 2842//3256 +f 2526//3256 2803//3256 3064//3256 +f 2802//2927 3063//2927 2804//2927 +f 2818//3257 3065//3257 2844//3257 +f 2818//3235 3045//3235 3065//3235 +f 2800//3258 2817//3258 3046//3258 +f 2979//3259 2955//3259 2980//3259 +f 2983//3260 3066//3260 3055//3260 +f 2961//3261 3067//3261 2984//3261 +f 2961//3262 3056//3262 3067//3262 +f 2983//3263 3028//3263 3066//3263 +f 2993//3264 3068//3264 3069//3264 +f 2993//3265 2992//3265 3068//3265 +f 2899//3266 3012//3266 3070//3266 +f 2899//3267 3070//3267 2991//3267 +f 2993//3197 3069//3197 3011//3197 +f 2806//3223 2850//3223 3032//3223 +f 2849//3224 3033//3224 2889//3224 +f 2965//3268 3011//3268 3071//3268 +f 2966//3269 3072//3269 3073//3269 +f 2966//3269 3073//3269 2967//3269 +f 2966//3270 2970//3270 3072//3270 +f 2965//3271 3074//3271 2968//3271 +f 2965//3271 3071//3271 3074//3271 +f 2658//3252 3075//3252 3060//3252 +f 2624//3272 3076//3272 2659//3272 +f 2624//3272 3059//3272 3076//3272 +f 2658//3273 2705//3273 3075//3273 +f 2970//3270 3077//3270 3072//3270 +f 2968//3274 3078//3274 2969//3274 +f 2968//3274 3074//3274 3078//3274 +f 2970//3275 2997//3275 3077//3275 +f 2736//3276 3079//3276 2787//3276 +f 2736//3277 3080//3277 3079//3277 +f 2736//3278 3081//3278 3080//3278 +f 2736//3279 3082//3279 3081//3279 +f 2736//3280 3083//3280 3082//3280 +f 2736//3280 3084//3280 3083//3280 +f 2736//3281 3038//3281 3084//3281 +f 2782//3282 2892//3282 3085//3282 +f 2782//3230 3085//3230 3040//3230 +f 2848//3283 3086//3283 3034//3283 +f 2848//3284 2864//3284 3086//3284 +f 2847//3226 3035//3226 3087//3226 +f 2847//3285 3087//3285 2907//3285 +f 2804//3036 3088//3036 2884//3036 +f 2547//3286 3089//3286 2803//3286 +f 2547//3286 2885//3286 3089//3286 +f 2804//3287 3063//3287 3088//3287 +f 2844//3257 3090//3257 2872//3257 +f 2844//3257 3065//3257 3090//3257 +f 2817//3258 3091//3258 3046//3258 +f 2817//3258 2843//3258 3091//3258 +f 3017//3288 2957//3288 2941//3288 +f 2820//3289 3092//3289 3030//3289 +f 2820//3290 2879//3290 3092//3290 +f 2878//3291 3031//3291 3093//3291 +f 2878//3292 3093//3292 2973//3292 +f 2751//3293 3041//3293 3094//3293 +f 2751//3293 3094//3293 2811//3293 +f 2812//3232 3095//3232 3042//3232 +f 2812//3294 2858//3294 3095//3294 +f 2784//3295 2785//3295 2786//3295 +f 2784//3295 2786//3295 3096//3295 +f 3097//3296 2784//3296 3096//3296 +f 3097//3297 3096//3297 3098//3297 +f 3099//3298 3100//3298 3101//3298 +f 3099//3299 3101//3299 3102//3299 +f 3103//3300 3104//3300 3105//3300 +f 3103//3301 3105//3301 3106//3301 +f 3107//3302 3108//3302 3109//3302 +f 3107//3303 3109//3303 3110//3303 +f 2909//3304 3107//3304 3110//3304 +f 2909//3305 3110//3305 2910//3305 +f 3107//3306 2935//3306 3111//3306 +f 3107//3307 2919//3307 2935//3307 +f 3107//3308 2909//3308 2919//3308 +f 3112//3309 3097//3309 3098//3309 +f 3112//3310 3098//3310 3113//3310 +f 3114//3311 3112//3311 3113//3311 +f 3114//3312 3113//3312 3115//3312 +f 3116//3313 3114//3313 3115//3313 +f 3116//3314 3115//3314 3117//3314 +f 3118//3315 3119//3315 3120//3315 +f 3118//3316 3120//3316 3121//3316 +f 3122//3317 3123//3317 3124//3317 +f 3122//3318 3124//3318 3125//3318 +f 3126//3319 3127//3319 3128//3319 +f 3126//3320 3128//3320 3129//3320 +f 3130//3321 3131//3321 3132//3321 +f 3130//3322 3132//3322 3133//3322 +f 3134//3323 3135//3323 3136//3323 +f 3134//3324 3136//3324 3137//3324 +f 3138//3325 3139//3325 3140//3325 +f 3138//3326 3140//3326 3141//3326 +f 3142//3327 3143//3327 3144//3327 +f 3142//3328 3144//3328 3145//3328 +f 3146//3329 3147//3329 3148//3329 +f 3146//3330 3148//3330 3149//3330 +f 3150//3331 3151//3331 3152//3331 +f 3150//3332 3152//3332 3153//3332 +f 3108//3333 3103//3333 3106//3333 +f 3108//3334 3106//3334 3109//3334 +f 3104//3335 3150//3335 3153//3335 +f 3104//3336 3153//3336 3105//3336 +f 3151//3337 3099//3337 3102//3337 +f 3151//3338 3102//3338 3152//3338 +f 3100//3339 3146//3339 3149//3339 +f 3100//3340 3149//3340 3101//3340 +f 3147//3341 3142//3341 3145//3341 +f 3147//3342 3145//3342 3148//3342 +f 3143//3343 3138//3343 3141//3343 +f 3143//3344 3141//3344 3144//3344 +f 3139//3345 3134//3345 3137//3345 +f 3139//3346 3137//3346 3140//3346 +f 3135//3347 3130//3347 3133//3347 +f 3135//3348 3133//3348 3136//3348 +f 3131//3349 3126//3349 3129//3349 +f 3131//3350 3129//3350 3132//3350 +f 3127//3351 3122//3351 3125//3351 +f 3127//3352 3125//3352 3128//3352 +f 3123//3353 3118//3353 3121//3353 +f 3123//3354 3121//3354 3124//3354 +f 3119//3355 3154//3355 3155//3355 +f 3119//3356 3118//3356 3154//3356 +f 3118//3357 3156//3357 3154//3357 +f 3118//3358 3123//3358 3156//3358 +f 3123//3359 3157//3359 3156//3359 +f 3123//3360 3122//3360 3157//3360 +f 3122//3361 3158//3361 3157//3361 +f 3122//3362 3127//3362 3158//3362 +f 3127//3363 3159//3363 3158//3363 +f 3127//3364 3126//3364 3159//3364 +f 3126//3365 3160//3365 3159//3365 +f 3126//3366 3131//3366 3160//3366 +f 3131//3367 3161//3367 3160//3367 +f 3131//3368 3130//3368 3161//3368 +f 3130//3369 3162//3369 3161//3369 +f 3130//3370 3135//3370 3162//3370 +f 3135//3371 3163//3371 3162//3371 +f 3135//3372 3134//3372 3163//3372 +f 3134//3373 3164//3373 3163//3373 +f 3134//3374 3139//3374 3164//3374 +f 3139//3375 3165//3375 3164//3375 +f 3139//3376 3138//3376 3165//3376 +f 3138//3377 3166//3377 3165//3377 +f 3138//3378 3143//3378 3166//3378 +f 3143//3379 3167//3379 3166//3379 +f 3143//3380 3142//3380 3167//3380 +f 3142//3381 3168//3381 3167//3381 +f 3142//3382 3147//3382 3168//3382 +f 3147//3383 3169//3383 3168//3383 +f 3147//3384 3146//3384 3169//3384 +f 3146//3385 3170//3385 3169//3385 +f 3146//3386 3100//3386 3170//3386 +f 3100//3387 3171//3387 3170//3387 +f 3100//3388 3099//3388 3171//3388 +f 3099//3389 3172//3389 3171//3389 +f 3099//3390 3151//3390 3172//3390 +f 3151//3391 3173//3391 3172//3391 +f 3151//3392 3150//3392 3173//3392 +f 3150//3393 3174//3393 3173//3393 +f 3150//3394 3104//3394 3174//3394 +f 3104//3395 3175//3395 3174//3395 +f 3104//3396 3103//3396 3175//3396 +f 3108//3397 3111//3397 3176//3397 +f 3108//3398 3107//3398 3111//3398 +f 3103//3399 3176//3399 3175//3399 +f 3103//3400 3108//3400 3176//3400 +f 2784//3401 2893//3401 2783//3401 +f 2784//3402 3177//3402 2893//3402 +f 2784//3403 3097//3403 3177//3403 +f 3097//3404 3178//3404 3177//3404 +f 3097//3405 3112//3405 3178//3405 +f 3112//3406 3179//3406 3178//3406 +f 3112//3407 3114//3407 3179//3407 +f 3114//3408 3180//3408 3179//3408 +f 3114//3409 3116//3409 3180//3409 +f 3116//3410 3155//3410 3180//3410 +f 3116//3411 3119//3411 3155//3411 +f 3119//3412 3116//3412 3117//3412 +f 3119//3413 3117//3413 3120//3413 +f 2997//3414 3023//3414 3181//3414 +f 2969//3415 3182//3415 2996//3415 +f 2969//3415 3078//3415 3182//3415 +f 2997//3275 3181//3275 3077//3275 +f 2910//3416 3110//3416 2911//3416 +f 3018//3417 3183//3417 3028//3417 +f 2928//3418 3184//3418 3019//3418 +f 2928//3419 3029//3419 3184//3419 +f 3018//3420 3185//3420 3183//3420 +f 3018//3421 3020//3421 3185//3421 +f 2787//3422 3096//3422 2786//3422 +f 2787//3423 3186//3423 3096//3423 +f 2787//3424 3079//3424 3186//3424 +f 3056//3425 3187//3425 3067//3425 +f 3056//3426 3057//3426 3187//3426 +f 2893//3427 3188//3427 2894//3427 +f 2893//3428 3189//3428 3188//3428 +f 2911//3429 3110//3429 3190//3429 +f 2911//3430 3190//3430 2912//3430 +f 3176//3431 3191//3431 3192//3431 +f 3176//3432 3111//3432 3191//3432 +f 3111//3433 2937//3433 3191//3433 +f 3111//3434 2936//3434 2937//3434 +f 3111//3435 2935//3435 2936//3435 +f 3110//3436 3109//3436 3193//3436 +f 3110//3437 3193//3437 3190//3437 +f 3179//3438 3194//3438 3195//3438 +f 3179//3439 3180//3439 3194//3439 +f 3180//3440 3196//3440 3194//3440 +f 3180//3441 3155//3441 3196//3441 +f 3155//3442 3197//3442 3196//3442 +f 3155//3443 3154//3443 3197//3443 +f 3178//3444 3195//3444 3198//3444 +f 3178//3445 3179//3445 3195//3445 +f 3177//3446 3198//3446 3199//3446 +f 3177//3447 3178//3447 3198//3447 +f 3175//3448 3192//3448 3200//3448 +f 3175//3449 3176//3449 3192//3449 +f 3174//3450 3200//3450 3201//3450 +f 3174//3451 3175//3451 3200//3451 +f 3173//3452 3201//3452 3202//3452 +f 3173//3453 3174//3453 3201//3453 +f 3172//3454 3202//3454 3203//3454 +f 3172//3455 3173//3455 3202//3455 +f 3171//3456 3203//3456 3204//3456 +f 3171//3457 3172//3457 3203//3457 +f 3170//3458 3204//3458 3205//3458 +f 3170//3459 3171//3459 3204//3459 +f 3169//3460 3205//3460 3206//3460 +f 3169//3461 3170//3461 3205//3461 +f 3168//3462 3206//3462 3207//3462 +f 3168//3463 3169//3463 3206//3463 +f 3167//3464 3207//3464 3208//3464 +f 3167//3465 3168//3465 3207//3465 +f 3166//3466 3208//3466 3209//3466 +f 3166//3467 3167//3467 3208//3467 +f 3165//3468 3209//3468 3210//3468 +f 3165//3469 3166//3469 3209//3469 +f 3164//3470 3210//3470 3211//3470 +f 3164//3471 3165//3471 3210//3471 +f 3163//3472 3211//3472 3212//3472 +f 3163//3473 3164//3473 3211//3473 +f 3162//3474 3212//3474 3213//3474 +f 3162//3475 3163//3475 3212//3475 +f 3161//3476 3213//3476 3214//3476 +f 3161//3477 3162//3477 3213//3477 +f 3160//3478 3214//3478 3215//3478 +f 3160//3479 3161//3479 3214//3479 +f 3159//3480 3215//3480 3216//3480 +f 3159//3481 3160//3481 3215//3481 +f 3158//3482 3216//3482 3217//3482 +f 3158//3483 3159//3483 3216//3483 +f 3157//3484 3217//3484 3218//3484 +f 3157//3485 3158//3485 3217//3485 +f 3156//3486 3218//3486 3219//3486 +f 3156//3487 3157//3487 3218//3487 +f 3154//3488 3219//3488 3197//3488 +f 3154//3489 3156//3489 3219//3489 +f 2893//3490 3220//3490 3189//3490 +f 2893//3491 3199//3491 3220//3491 +f 2893//3492 3177//3492 3199//3492 +f 3096//3493 3186//3493 3079//3493 +f 3096//3493 3079//3493 3080//3493 +f 3098//3494 3096//3494 3080//3494 +f 3098//3495 3080//3495 3221//3495 +f 3113//3496 3098//3496 3221//3496 +f 3113//3497 3221//3497 3222//3497 +f 3115//3498 3113//3498 3222//3498 +f 3115//3499 3222//3499 3223//3499 +f 3117//3500 3115//3500 3223//3500 +f 3117//3501 3223//3501 3224//3501 +f 3120//3502 3117//3502 3224//3502 +f 3120//3503 3224//3503 3225//3503 +f 3121//3504 3120//3504 3225//3504 +f 3121//3505 3225//3505 3226//3505 +f 3124//3506 3121//3506 3226//3506 +f 3124//3507 3226//3507 3227//3507 +f 3125//3508 3124//3508 3227//3508 +f 3125//3509 3227//3509 3228//3509 +f 3128//3510 3125//3510 3228//3510 +f 3128//3511 3228//3511 3229//3511 +f 3129//3512 3128//3512 3229//3512 +f 3129//3513 3229//3513 3230//3513 +f 3132//3514 3129//3514 3230//3514 +f 3132//3515 3230//3515 3231//3515 +f 3133//3516 3132//3516 3231//3516 +f 3133//3517 3231//3517 3232//3517 +f 3136//3518 3133//3518 3232//3518 +f 3136//3519 3232//3519 3233//3519 +f 3137//3520 3136//3520 3233//3520 +f 3137//3521 3233//3521 3234//3521 +f 3140//3522 3137//3522 3234//3522 +f 3140//3523 3234//3523 3235//3523 +f 3141//3524 3140//3524 3235//3524 +f 3141//3525 3235//3525 3236//3525 +f 3144//3526 3141//3526 3236//3526 +f 3144//3527 3236//3527 3237//3527 +f 3145//3528 3144//3528 3237//3528 +f 3145//3529 3237//3529 3238//3529 +f 3148//3530 3145//3530 3238//3530 +f 3148//3531 3238//3531 3239//3531 +f 3149//3532 3148//3532 3239//3532 +f 3149//3533 3239//3533 3240//3533 +f 3101//3534 3149//3534 3240//3534 +f 3101//3535 3240//3535 3241//3535 +f 3102//3536 3101//3536 3241//3536 +f 3102//3537 3241//3537 3242//3537 +f 3152//3538 3102//3538 3242//3538 +f 3152//3539 3242//3539 3243//3539 +f 3153//3540 3152//3540 3243//3540 +f 3153//3541 3243//3541 3244//3541 +f 3105//3542 3153//3542 3244//3542 +f 3105//3543 3244//3543 3245//3543 +f 3106//3544 3105//3544 3245//3544 +f 3106//3545 3245//3545 3246//3545 +f 3109//3546 3106//3546 3246//3546 +f 3109//3547 3246//3547 3193//3547 +f 2659//3548 3247//3548 2706//3548 +f 2659//3548 3076//3548 3247//3548 +f 2705//3273 3248//3273 3075//3273 +f 2705//3549 2753//3549 3248//3549 +f 3011//3268 3249//3268 3071//3268 +f 2967//3550 3073//3550 3250//3550 +f 2967//3550 3250//3550 3012//3550 +f 3011//3551 3069//3551 3249//3551 +f 3028//3552 3183//3552 3251//3552 +f 2984//3553 3252//3553 3029//3553 +f 2984//3554 3067//3554 3252//3554 +f 3028//3555 3251//3555 3066//3555 +f 2872//3556 3090//3556 2917//3556 +f 2843//3557 2871//3557 3091//3557 +f 2912//3558 3190//3558 2913//3558 +f 3189//3428 3253//3428 3188//3428 +f 3189//3490 3220//3490 3253//3490 +f 2907//3559 3254//3559 2981//3559 +f 2864//3560 3255//3560 3086//3560 +f 2864//3561 2908//3561 3255//3561 +f 2907//3562 3087//3562 3254//3562 +f 2850//3563 2891//3563 3256//3563 +f 2850//3563 3256//3563 3032//3563 +f 2889//3224 3033//3224 3257//3224 +f 2889//3564 3257//3564 2992//3564 +f 3023//3414 3258//3414 3181//3414 +f 2996//3565 3259//3565 3022//3565 +f 2996//3565 3182//3565 3259//3565 +f 3023//3566 3260//3566 3258//3566 +f 3023//3210 3021//3210 3260//3210 +f 3188//3567 3253//3567 3220//3567 +f 3188//3568 3220//3568 3261//3568 +f 3188//3569 3261//3569 3262//3569 +f 3188//3570 3262//3570 2894//3570 +f 3055//3571 3263//3571 3057//3571 +f 3055//3572 3264//3572 3263//3572 +f 3055//3573 3066//3573 3264//3573 +f 2930//3574 3265//3574 3044//3574 +f 2930//3239 3049//3239 3265//3239 +f 2845//3575 3266//3575 3050//3575 +f 2845//3575 2929//3575 3266//3575 +f 2957//3576 3267//3576 2941//3576 +f 2957//3577 3268//3577 3267//3577 +f 2957//3578 3269//3578 3268//3578 +f 2957//3579 2959//3579 3269//3579 +f 3021//3580 3270//3580 3260//3580 +f 3021//3243 3053//3243 3270//3243 +f 2925//3581 3271//3581 3054//3581 +f 2925//3582 3022//3582 3271//3582 +f 2811//3583 3094//3583 3272//3583 +f 2811//3583 3272//3583 2859//3583 +f 2858//3584 2882//3584 3273//3584 +f 2858//3294 3273//3294 3095//3294 +f 2980//3585 3274//3585 2831//3585 +f 2980//3586 2955//3586 3274//3586 +f 3020//3587 3275//3587 3185//3587 +f 3020//3588 3058//3588 3275//3588 +f 2918//3589 3276//3589 3061//3589 +f 2918//3590 3019//3590 3276//3590 +f 2831//3591 3277//3591 3278//3591 +f 2831//3591 3279//3591 3277//3591 +f 2831//3592 3274//3592 3279//3592 +f 2831//3593 3278//3593 3280//3593 +f 2959//3594 3281//3594 3269//3594 +f 2959//3595 2829//3595 3281//3595 +f 2831//3596 3280//3596 2832//3596 +f 3057//3597 3282//3597 3187//3597 +f 3057//3598 3263//3598 3282//3598 +f 3066//3599 3283//3599 3264//3599 +f 3066//3600 3251//3600 3283//3600 +f 3067//3601 3284//3601 3252//3601 +f 3067//3602 3187//3602 3284//3602 +f 3190//3603 3193//3603 3285//3603 +f 3190//3604 3285//3604 3286//3604 +f 2913//3605 3190//3605 3286//3605 +f 2913//3606 3286//3606 2914//3606 +f 3191//3607 2939//3607 3287//3607 +f 3191//3608 2938//3608 2939//3608 +f 3191//3609 2937//3609 2938//3609 +f 3080//3610 3081//3610 3082//3610 +f 3080//3611 3082//3611 3083//3611 +f 3080//3612 3083//3612 3221//3612 +f 3221//3613 3083//3613 3288//3613 +f 3222//3614 3221//3614 3288//3614 +f 3222//3615 3288//3615 3289//3615 +f 3223//3616 3222//3616 3289//3616 +f 3223//3617 3289//3617 3290//3617 +f 3224//3618 3223//3618 3290//3618 +f 3225//3619 3224//3619 3290//3619 +f 3225//3620 3290//3620 3291//3620 +f 3226//3621 3225//3621 3291//3621 +f 3226//3622 3291//3622 3292//3622 +f 3227//3623 3226//3623 3292//3623 +f 3227//3624 3292//3624 3293//3624 +f 3228//3625 3227//3625 3293//3625 +f 3228//3626 3293//3626 3294//3626 +f 3229//3627 3228//3627 3294//3627 +f 3229//3628 3294//3628 3295//3628 +f 3230//3629 3229//3629 3295//3629 +f 3230//3630 3295//3630 3296//3630 +f 3231//3631 3230//3631 3296//3631 +f 3231//3632 3296//3632 3297//3632 +f 3232//3633 3231//3633 3297//3633 +f 3232//3634 3297//3634 3298//3634 +f 3233//3635 3232//3635 3298//3635 +f 3233//3636 3298//3636 3299//3636 +f 3234//3637 3233//3637 3299//3637 +f 3234//3638 3299//3638 3300//3638 +f 3235//3639 3234//3639 3300//3639 +f 3235//3640 3300//3640 3301//3640 +f 3236//3641 3235//3641 3301//3641 +f 3236//3642 3301//3642 3302//3642 +f 3237//3643 3236//3643 3302//3643 +f 3237//3644 3302//3644 3303//3644 +f 3238//3645 3237//3645 3303//3645 +f 3238//3646 3303//3646 3304//3646 +f 3239//3647 3238//3647 3304//3647 +f 3239//3648 3304//3648 3305//3648 +f 3240//3649 3239//3649 3305//3649 +f 3240//3650 3305//3650 3306//3650 +f 3241//3651 3240//3651 3306//3651 +f 3241//3652 3306//3652 3307//3652 +f 3242//3653 3241//3653 3307//3653 +f 3242//3654 3307//3654 3308//3654 +f 3243//3655 3242//3655 3308//3655 +f 3243//3656 3308//3656 3309//3656 +f 3244//3657 3243//3657 3309//3657 +f 3244//3658 3309//3658 3310//3658 +f 3245//3659 3244//3659 3310//3659 +f 3245//3660 3310//3660 3311//3660 +f 3246//3661 3245//3661 3311//3661 +f 3246//3662 3311//3662 3312//3662 +f 3219//3663 3313//3663 3314//3663 +f 3219//3664 3218//3664 3313//3664 +f 3218//3665 3315//3665 3313//3665 +f 3218//3666 3217//3666 3315//3666 +f 3217//3667 3316//3667 3315//3667 +f 3217//3668 3216//3668 3316//3668 +f 3216//3669 3317//3669 3316//3669 +f 3216//3670 3215//3670 3317//3670 +f 3215//3671 3318//3671 3317//3671 +f 3215//3672 3214//3672 3318//3672 +f 3214//3673 3319//3673 3318//3673 +f 3214//3674 3213//3674 3319//3674 +f 3213//3675 3320//3675 3319//3675 +f 3213//3676 3212//3676 3320//3676 +f 3212//3677 3321//3677 3320//3677 +f 3212//3678 3211//3678 3321//3678 +f 3211//3679 3322//3679 3321//3679 +f 3211//3680 3210//3680 3322//3680 +f 3210//3681 3323//3681 3322//3681 +f 3210//3682 3209//3682 3323//3682 +f 3209//3683 3324//3683 3323//3683 +f 3209//3684 3208//3684 3324//3684 +f 3208//3685 3325//3685 3324//3685 +f 3208//3686 3207//3686 3325//3686 +f 3207//3687 3326//3687 3325//3687 +f 3207//3688 3206//3688 3326//3688 +f 3206//3689 3327//3689 3326//3689 +f 3206//3690 3205//3690 3327//3690 +f 3205//3691 3328//3691 3327//3691 +f 3205//3692 3204//3692 3328//3692 +f 3204//3693 3329//3693 3328//3693 +f 3204//3694 3203//3694 3329//3694 +f 3203//3695 3330//3695 3329//3695 +f 3203//3696 3202//3696 3330//3696 +f 3202//3697 3331//3697 3330//3697 +f 3202//3698 3201//3698 3331//3698 +f 3201//3699 3332//3699 3331//3699 +f 3201//3700 3200//3700 3332//3700 +f 3192//3701 3287//3701 3333//3701 +f 3192//3702 3191//3702 3287//3702 +f 3200//3703 3333//3703 3332//3703 +f 3200//3704 3192//3704 3333//3704 +f 3197//3705 3314//3705 3334//3705 +f 3197//3706 3219//3706 3314//3706 +f 3196//3707 3334//3707 3335//3707 +f 3196//3708 3197//3708 3334//3708 +f 3194//3709 3335//3709 3336//3709 +f 3194//3710 3196//3710 3335//3710 +f 3195//3711 3336//3711 3337//3711 +f 3195//3712 3194//3712 3336//3712 +f 3198//3713 3337//3713 3338//3713 +f 3198//3714 3195//3714 3337//3714 +f 3199//3715 3338//3715 3339//3715 +f 3199//3716 3198//3716 3338//3716 +f 3220//3717 3340//3717 3261//3717 +f 3220//3717 3341//3717 3340//3717 +f 3220//3718 3339//3718 3341//3718 +f 3220//3719 3199//3719 3339//3719 +f 3193//3720 3246//3720 3312//3720 +f 3193//3721 3312//3721 3285//3721 +f 2832//3722 3342//3722 2851//3722 +f 2829//3723 3343//3723 3281//3723 +f 2829//3724 2830//3724 3343//3724 +f 2832//3725 3280//3725 3342//3725 +f 2706//3726 3344//3726 2754//3726 +f 2706//3726 3247//3726 3344//3726 +f 2753//3549 3345//3549 3248//3549 +f 2753//3727 2884//3727 3345//3727 +f 2841//3728 3346//3728 3062//3728 +f 2841//3191 3006//3191 3346//3191 +f 2653//3729 3347//3729 3007//3729 +f 2653//3729 2842//3729 3347//3729 +f 2917//3556 3348//3556 2990//3556 +f 2917//3556 3090//3556 3348//3556 +f 2871//3557 3349//3557 3091//3557 +f 2871//3557 2916//3557 3349//3557 +f 2914//3730 3286//3730 2902//3730 +f 2879//3731 3350//3731 3092//3731 +f 2879//3732 2974//3732 3350//3732 +f 2973//3733 3093//3733 3351//3733 +f 2973//3734 3351//3734 3058//3734 +f 2851//3735 3342//3735 3352//3735 +f 2851//3736 3352//3736 3353//3736 +f 2851//3737 3353//3737 2863//3737 +f 2830//3738 3354//3738 3343//3738 +f 2830//3739 2852//3739 3354//3739 +f 3264//3740 3283//3740 3355//3740 +f 3264//3741 3356//3741 3263//3741 +f 3264//3742 3355//3742 3356//3742 +f 2902//3730 3286//3730 2903//3730 +f 2859//3743 3272//3743 3357//3743 +f 2859//3743 3357//3743 2883//3743 +f 2882//3744 2887//3744 3358//3744 +f 2882//3584 3358//3584 3273//3584 +f 3069//3745 3068//3745 3359//3745 +f 3069//3746 3359//3746 3360//3746 +f 3012//3747 3250//3747 3361//3747 +f 3012//3748 3361//3748 3070//3748 +f 3069//3551 3360//3551 3249//3551 +f 2857//3749 3362//3749 3043//3749 +f 2857//3749 3007//3749 3362//3749 +f 3006//3234 3044//3234 3363//3234 +f 3006//3750 3363//3750 3346//3750 +f 2908//3751 3364//3751 3255//3751 +f 2908//3752 2982//3752 3364//3752 +f 2981//3753 3254//3753 3365//3753 +f 2981//3754 3365//3754 3049//3754 +f 3283//3755 3251//3755 3366//3755 +f 3283//3756 3366//3756 3367//3756 +f 3283//3757 3367//3757 3355//3757 +f 3263//3758 3368//3758 3282//3758 +f 3263//3759 3356//3759 3368//3759 +f 2883//3760 3357//3760 3369//3760 +f 2883//3108 3369//3108 2945//3108 +f 2887//3109 2946//3109 3370//3109 +f 2887//3761 3370//3761 3371//3761 +f 2887//3744 3371//3744 3358//3744 +f 2852//3762 3372//3762 3354//3762 +f 2852//3763 2862//3763 3372//3763 +f 2863//3764 3373//3764 2876//3764 +f 2863//3765 3353//3765 3373//3765 +f 3261//3766 3340//3766 3262//3766 +f 2946//552 597//552 3370//552 +f 2945//552 3369//552 590//552 +f 2894//3767 3374//3767 2895//3767 +f 2894//3767 3375//3767 3374//3767 +f 2894//3768 3262//3768 3376//3768 +f 2894//3769 3376//3769 3377//3769 +f 2894//3770 3377//3770 3378//3770 +f 2894//3771 3378//3771 3379//3771 +f 2894//3772 3379//3772 3375//3772 +f 2892//3773 2920//3773 3380//3773 +f 2892//3282 3380//3282 3085//3282 +f 3029//3774 3381//3774 3184//3774 +f 3029//3775 3252//3775 3381//3775 +f 3183//3776 3382//3776 3251//3776 +f 3183//3777 3383//3777 3382//3777 +f 3183//3778 3185//3778 3383//3778 +f 3251//3779 3382//3779 3366//3779 +f 3187//3780 3384//3780 3284//3780 +f 3187//3781 3282//3781 3384//3781 +f 2891//3563 2991//3563 3256//3563 +f 2992//3564 3257//3564 3068//3564 +f 3355//3782 3367//3782 3385//3782 +f 3355//3783 3386//3783 3356//3783 +f 3355//3784 3385//3784 3386//3784 +f 2895//3785 3387//3785 2921//3785 +f 2895//3785 3374//3785 3387//3785 +f 2920//3786 2943//3786 3388//3786 +f 2920//3773 3388//3773 3380//3773 +f 2876//3787 3373//3787 3389//3787 +f 2876//3788 3389//3788 2897//3788 +f 2862//3789 3390//3789 3372//3789 +f 2862//3790 2877//3790 3390//3790 +f 3016//3791 3391//3791 3035//3791 +f 3016//3792 3392//3792 3391//3792 +f 3016//3792 3015//3792 3392//3792 +f 3071//3793 3249//3793 3393//3793 +f 3071//3794 3394//3794 3074//3794 +f 3071//3794 3393//3794 3394//3794 +f 3072//3795 3077//3795 3395//3795 +f 3072//3796 3395//3796 3396//3796 +f 3072//3796 3396//3796 3073//3796 +f 3077//3797 3181//3797 3397//3797 +f 3074//3798 3398//3798 3078//3798 +f 3074//3798 3394//3798 3398//3798 +f 3077//3795 3397//3795 3395//3795 +f 3340//3766 3341//3766 3262//3766 +f 2916//3799 2989//3799 3349//3799 +f 2990//3800 3348//3800 3053//3800 +f 3262//3766 3341//3766 3399//3766 +f 3262//3801 3399//3801 3376//3801 +f 2903//3802 3286//3802 2904//3802 +f 3356//3803 3400//3803 3368//3803 +f 3356//3804 3386//3804 3400//3804 +f 3367//3805 3401//3805 3385//3805 +f 3367//3806 3402//3806 3401//3806 +f 3367//3807 3366//3807 3402//3807 +f 2952//3808 3403//3808 2972//3808 +f 2952//3809 2951//3809 3404//3809 +f 2952//3809 3404//3809 3403//3809 +f 3035//3810 3405//3810 3087//3810 +f 3035//3791 3391//3791 3405//3791 +f 3015//3811 3406//3811 3392//3811 +f 3015//3811 3034//3811 3406//3811 +f 2921//3812 3407//3812 2944//3812 +f 2921//3812 3387//3812 3407//3812 +f 2943//3813 2953//3813 3408//3813 +f 2943//3786 3408//3786 3388//3786 +f 3274//3814 2955//3814 3279//3814 +f 3267//3815 3409//3815 2941//3815 +f 3267//3816 3410//3816 3409//3816 +f 3267//3816 3268//3816 3410//3816 +f 2877//3817 3411//3817 3390//3817 +f 2877//3818 2896//3818 3411//3818 +f 2897//3819 3412//3819 2932//3819 +f 2897//3820 3389//3820 3412//3820 +f 3078//3821 3413//3821 3182//3821 +f 3078//3821 3398//3821 3413//3821 +f 3181//3822 3258//3822 3414//3822 +f 3181//3797 3414//3797 3397//3797 +f 3385//3823 3415//3823 3386//3823 +f 3385//3824 3416//3824 3415//3824 +f 3385//3825 3401//3825 3416//3825 +f 3366//3826 3382//3826 3402//3826 +f 3282//3827 3417//3827 3384//3827 +f 3282//3828 3368//3828 3417//3828 +f 3185//3829 3275//3829 3418//3829 +f 3185//3830 3418//3830 3383//3830 +f 3019//3831 3419//3831 3276//3831 +f 3019//3832 3184//3832 3419//3832 +f 2972//3808 3403//3808 3420//3808 +f 2972//3833 3420//3833 3033//3833 +f 2951//3834 2971//3834 3421//3834 +f 2951//3834 3421//3834 3404//3834 +f 3252//3835 3422//3835 3381//3835 +f 3252//3836 3284//3836 3422//3836 +f 3286//3837 3423//3837 2904//3837 +f 3331//3838 3424//3838 3425//3838 +f 3331//3839 3332//3839 3424//3839 +f 3333//3840 3426//3840 3427//3840 +f 3333//3841 3287//3841 3426//3841 +f 3287//3842 2940//3842 3426//3842 +f 3287//3843 2939//3843 2940//3843 +f 3339//3844 3428//3844 3341//3844 +f 3291//3845 3290//3845 3429//3845 +f 3291//3846 3429//3846 3430//3846 +f 3292//3847 3291//3847 3430//3847 +f 3292//3848 3430//3848 3431//3848 +f 3293//3849 3292//3849 3431//3849 +f 3293//3850 3431//3850 3432//3850 +f 3294//3851 3293//3851 3432//3851 +f 3294//3852 3432//3852 3433//3852 +f 3295//3853 3294//3853 3433//3853 +f 3295//3854 3433//3854 3434//3854 +f 3296//3855 3295//3855 3434//3855 +f 3296//3856 3434//3856 3435//3856 +f 3297//3857 3296//3857 3435//3857 +f 3297//3858 3435//3858 3436//3858 +f 3298//3859 3297//3859 3436//3859 +f 3298//3860 3436//3860 3437//3860 +f 3299//3861 3298//3861 3437//3861 +f 3299//3862 3437//3862 3438//3862 +f 3300//3863 3299//3863 3438//3863 +f 3300//3864 3438//3864 3439//3864 +f 3301//3865 3300//3865 3439//3865 +f 3301//3866 3439//3866 3440//3866 +f 3302//3867 3301//3867 3440//3867 +f 3302//3868 3440//3868 3441//3868 +f 3303//3869 3302//3869 3441//3869 +f 3303//3870 3441//3870 3442//3870 +f 3304//3871 3303//3871 3442//3871 +f 3304//3872 3442//3872 3443//3872 +f 3305//3873 3304//3873 3443//3873 +f 3305//3874 3443//3874 3444//3874 +f 3306//3875 3305//3875 3444//3875 +f 3306//3876 3444//3876 3445//3876 +f 3307//3877 3306//3877 3445//3877 +f 3307//3878 3445//3878 3446//3878 +f 3308//3879 3307//3879 3446//3879 +f 3308//3880 3446//3880 3447//3880 +f 3309//3881 3308//3881 3447//3881 +f 3309//3882 3447//3882 3448//3882 +f 3310//3883 3309//3883 3448//3883 +f 3310//3884 3448//3884 3449//3884 +f 3338//3885 3450//3885 3451//3885 +f 3338//3886 3337//3886 3450//3886 +f 3337//3887 3452//3887 3450//3887 +f 3337//3888 3336//3888 3452//3888 +f 3335//3889 3453//3889 3454//3889 +f 3335//3890 3334//3890 3453//3890 +f 3339//3891 3451//3891 3428//3891 +f 3339//3892 3338//3892 3451//3892 +f 3336//3893 3454//3893 3452//3893 +f 3336//3894 3335//3894 3454//3894 +f 3334//3895 3455//3895 3453//3895 +f 3334//3896 3314//3896 3455//3896 +f 3314//3897 3456//3897 3455//3897 +f 3314//3898 3313//3898 3456//3898 +f 3313//3899 3457//3899 3456//3899 +f 3313//3900 3315//3900 3457//3900 +f 3315//3901 3458//3901 3457//3901 +f 3315//3902 3316//3902 3458//3902 +f 3316//3903 3459//3903 3458//3903 +f 3316//3904 3317//3904 3459//3904 +f 3317//3905 3460//3905 3459//3905 +f 3317//3906 3318//3906 3460//3906 +f 3318//3907 3461//3907 3460//3907 +f 3318//3908 3319//3908 3461//3908 +f 3319//3909 3462//3909 3461//3909 +f 3319//3910 3320//3910 3462//3910 +f 3320//3911 3463//3911 3462//3911 +f 3320//3912 3321//3912 3463//3912 +f 3321//3913 3464//3913 3463//3913 +f 3321//3914 3322//3914 3464//3914 +f 3322//3915 3465//3915 3464//3915 +f 3322//3916 3323//3916 3465//3916 +f 3323//3917 3466//3917 3465//3917 +f 3323//3918 3324//3918 3466//3918 +f 3324//3919 3467//3919 3466//3919 +f 3324//3920 3325//3920 3467//3920 +f 3325//3921 3468//3921 3467//3921 +f 3325//3922 3326//3922 3468//3922 +f 3326//3923 3469//3923 3468//3923 +f 3326//3924 3327//3924 3469//3924 +f 3327//3925 3470//3925 3469//3925 +f 3327//3926 3328//3926 3470//3926 +f 3328//3927 3471//3927 3470//3927 +f 3328//3928 3329//3928 3471//3928 +f 3329//3929 3472//3929 3471//3929 +f 3329//3930 3330//3930 3472//3930 +f 3330//3931 3425//3931 3472//3931 +f 3330//3932 3331//3932 3425//3932 +f 3332//3933 3427//3933 3424//3933 +f 3332//3934 3333//3934 3427//3934 +f 3286//3935 3285//3935 3473//3935 +f 3286//3936 3473//3936 3423//3936 +f 3285//3937 3312//3937 3474//3937 +f 3285//3938 3474//3938 3473//3938 +f 3312//3939 3311//3939 3475//3939 +f 3312//3940 3475//3940 3474//3940 +f 3311//3941 3310//3941 3449//3941 +f 3311//3942 3449//3942 3475//3942 +f 3290//3943 3289//3943 3476//3943 +f 3290//3944 3476//3944 3429//3944 +f 3289//3945 3288//3945 3477//3945 +f 3289//3946 3477//3946 3476//3946 +f 3288//3947 3083//3947 3478//3947 +f 3288//3948 3478//3948 3477//3948 +f 2944//3949 3479//3949 2954//3949 +f 2944//3949 3407//3949 3479//3949 +f 2953//3950 2977//3950 3480//3950 +f 2953//3813 3480//3813 3408//3813 +f 2904//3951 3423//3951 2905//3951 +f 3083//3952 3084//3952 3478//3952 +f 3341//3953 3376//3953 3399//3953 +f 3341//3953 3377//3953 3376//3953 +f 3341//3954 3378//3954 3377//3954 +f 3341//3955 3428//3955 3378//3955 +f 2940//3956 2934//3956 3426//3956 +f 3401//3957 3402//3957 3481//3957 +f 3386//3958 3482//3958 3400//3958 +f 3386//3959 3415//3959 3482//3959 +f 3401//3960 3483//3960 3416//3960 +f 3401//3961 3481//3961 3483//3961 +f 3044//3962 3484//3962 3363//3962 +f 3044//3574 3265//3574 3484//3574 +f 2929//3963 3485//3963 3266//3963 +f 2929//3963 3043//3963 3485//3963 +f 3249//3793 3486//3793 3393//3793 +f 3073//3964 3396//3964 3487//3964 +f 3073//3964 3487//3964 3250//3964 +f 3249//3965 3360//3965 3486//3965 +f 3260//3966 3488//3966 3489//3966 +f 3260//3967 3270//3967 3488//3967 +f 3022//3968 3490//3968 3271//3968 +f 3022//3969 3259//3969 3490//3969 +f 3260//3566 3489//3566 3258//3566 +f 3416//3970 3491//3970 3415//3970 +f 3416//3971 3492//3971 3491//3971 +f 3416//3972 3483//3972 3492//3972 +f 2932//3973 3412//3973 2963//3973 +f 2896//3974 3493//3974 3411//3974 +f 2896//3975 2933//3975 3493//3975 +f 2974//3976 3494//3976 3350//3976 +f 2974//3977 3061//3977 3494//3977 +f 3058//3978 3351//3978 3495//3978 +f 3058//3979 3495//3979 3275//3979 +f 3049//3980 3496//3980 3265//3980 +f 2982//3981 3497//3981 3364//3981 +f 2982//3982 3050//3982 3497//3982 +f 3049//3983 3365//3983 3496//3983 +f 2954//3984 3498//3984 2978//3984 +f 2954//3984 3479//3984 3498//3984 +f 2977//3985 2994//3985 3499//3985 +f 2977//3950 3499//3950 3480//3950 +f 2985//3986 3500//3986 3501//3986 +f 2985//3987 3501//3987 2986//3987 +f 2985//3988 3001//3988 3500//3988 +f 2988//3989 3502//3989 2987//3989 +f 2988//3989 3503//3989 3502//3989 +f 2988//3990 2998//3990 3503//3990 +f 3038//3991 3504//3991 3084//3991 +f 3038//3992 3478//3992 3504//3992 +f 3038//3993 3505//3993 3478//3993 +f 3038//3994 3506//3994 3505//3994 +f 3038//3995 3039//3995 3506//3995 +f 3258//3822 3507//3822 3414//3822 +f 3182//3996 3508//3996 3259//3996 +f 3182//3996 3413//3996 3508//3996 +f 3258//3997 3489//3997 3507//3997 +f 3492//3998 3483//3998 3509//3998 +f 3492//3999 3509//3999 3510//3999 +f 3492//4000 3511//4000 3491//4000 +f 3492//4001 3510//4001 3511//4001 +f 2978//4002 3512//4002 2995//4002 +f 2978//4002 3498//4002 3512//4002 +f 2994//4003 2999//4003 3513//4003 +f 2994//3985 3513//3985 3499//3985 +f 3402//4004 3514//4004 3481//4004 +f 3402//4005 3382//4005 3514//4005 +f 3368//4006 3515//4006 3417//4006 +f 3368//4007 3400//4007 3515//4007 +f 2998//4008 3516//4008 3503//4008 +f 2998//4009 2995//4009 3516//4009 +f 2986//4010 3501//4010 3517//4010 +f 2986//4011 3517//4011 2999//4011 +f 3415//4012 3518//4012 3482//4012 +f 3415//4013 3491//4013 3518//4013 +f 3483//4014 3519//4014 3509//4014 +f 3483//4015 3481//4015 3519//4015 +f 3510//4016 3520//4016 3511//4016 +f 3510//4017 3521//4017 3520//4017 +f 3510//4018 3522//4018 3521//4018 +f 3510//4019 3509//4019 3522//4019 +f 2995//4020 3512//4020 3516//4020 +f 2999//4003 3517//4003 3513//4003 +f 3001//4021 3523//4021 3500//4021 +f 3001//3186 3008//3186 3523//3186 +f 2987//4022 3502//4022 3010//4022 +f 3084//3952 3504//3952 3478//3952 +f 3087//4023 3524//4023 3254//4023 +f 3087//3810 3405//3810 3524//3810 +f 3034//4024 3086//4024 3406//4024 +f 3284//4025 3525//4025 3422//4025 +f 3284//4026 3384//4026 3525//4026 +f 3382//4027 3526//4027 3514//4027 +f 3382//4028 3383//4028 3526//4028 +f 3509//4029 3519//4029 3527//4029 +f 3509//4030 3527//4030 3522//4030 +f 3491//4031 3528//4031 3518//4031 +f 3491//4032 3511//4032 3528//4032 +f 2963//4033 3412//4033 3529//4033 +f 2963//4034 3529//4034 3031//4034 +f 2933//4035 3530//4035 3493//4035 +f 2933//4036 2962//4036 3530//4036 +f 3511//4037 3531//4037 3528//4037 +f 3511//4038 3520//4038 3531//4038 +f 3522//4039 3532//4039 3521//4039 +f 3522//4040 3533//4040 3532//4040 +f 3522//4041 3527//4041 3533//4041 +f 3521//4042 3534//4042 3520//4042 +f 3521//4043 3535//4043 3534//4043 +f 3521//4044 3532//4044 3535//4044 +f 3391//4045 3536//4045 3537//4045 +f 3391//4045 3392//4045 3536//4045 +f 3391//4046 3537//4046 3405//4046 +f 2905//4047 3423//4047 3538//4047 +f 2905//4048 3538//4048 2901//4048 +f 2991//4049 3070//4049 3539//4049 +f 2991//4049 3539//4049 3256//4049 +f 3068//3564 3257//3564 3540//3564 +f 3068//4050 3540//4050 3359//4050 +f 3053//4051 3541//4051 3270//4051 +f 3053//4052 3348//4052 3541//4052 +f 3033//4053 3542//4053 3257//4053 +f 3033//3833 3420//3833 3542//3833 +f 2971//4054 3032//4054 3543//4054 +f 2971//4054 3543//4054 3421//4054 +f 3481//4055 3514//4055 3544//4055 +f 3400//4056 3545//4056 3515//4056 +f 3400//4057 3482//4057 3545//4057 +f 3481//4058 3544//4058 3519//4058 +f 2884//4059 3088//4059 3546//4059 +f 2754//4060 3547//4060 2885//4060 +f 2754//4060 3344//4060 3547//4060 +f 2884//3727 3546//3727 3345//3727 +f 2989//3799 3548//3799 3349//3799 +f 2989//3799 3054//3799 3548//3799 +f 2934//3956 2949//3956 3426//3956 +f 3532//4061 3533//4061 3549//4061 +f 3520//4062 3550//4062 3531//4062 +f 3520//4063 3534//4063 3550//4063 +f 3532//4064 3551//4064 3535//4064 +f 3532//4065 3549//4065 3551//4065 +f 3392//4066 3552//4066 3536//4066 +f 3392//4066 3406//4066 3552//4066 +f 3405//4046 3537//4046 3553//4046 +f 3405//4067 3553//4067 3524//4067 +f 2962//4068 3554//4068 3530//4068 +f 2962//4069 3000//4069 3554//4069 +f 2901//4070 3555//4070 2900//4070 +f 2901//4070 3556//4070 3555//4070 +f 2901//4048 3538//4048 3557//4048 +f 2901//4071 3557//4071 3558//4071 +f 2901//4072 3558//4072 3559//4072 +f 2901//4072 3559//4072 3560//4072 +f 2901//4073 3560//4073 3561//4073 +f 2901//4074 3561//4074 3562//4074 +f 2901//4074 3562//4074 3563//4074 +f 2901//4075 3563//4075 3556//4075 +f 3538//4047 3423//4047 3557//4047 +f 2900//4076 3564//4076 2906//4076 +f 2900//4076 3555//4076 3564//4076 +f 3482//4077 3565//4077 3545//4077 +f 3482//4078 3518//4078 3565//4078 +f 3519//4079 3566//4079 3527//4079 +f 3519//4080 3544//4080 3566//4080 +f 2949//4081 2950//4081 3426//4081 +f 2906//4082 3567//4082 2915//4082 +f 2906//4082 3564//4082 3567//4082 +f 3360//4083 3568//4083 3569//4083 +f 3360//4084 3359//4084 3568//4084 +f 3250//4085 3487//4085 3570//4085 +f 3250//4086 3570//4086 3361//4086 +f 3360//3965 3569//3965 3486//3965 +f 3384//4087 3571//4087 3525//4087 +f 3384//4088 3417//4088 3571//4088 +f 2915//4089 3572//4089 2922//4089 +f 2915//4089 3567//4089 3572//4089 +f 3279//4090 2955//4090 3277//4090 +f 3409//4091 3410//4091 2941//4091 +f 3254//4023 3573//4023 3365//4023 +f 3254//4023 3524//4023 3573//4023 +f 3086//4024 3574//4024 3406//4024 +f 3086//4024 3255//4024 3574//4024 +f 3383//4092 3575//4092 3526//4092 +f 3383//4093 3418//4093 3575//4093 +f 3184//4094 3576//4094 3419//4094 +f 3184//4095 3381//4095 3576//4095 +f 3527//4096 3566//4096 3577//4096 +f 3527//4097 3577//4097 3533//4097 +f 3518//4098 3578//4098 3565//4098 +f 3518//4099 3528//4099 3578//4099 +f 3403//4100 3404//4100 3579//4100 +f 3403//4100 3579//4100 3580//4100 +f 3403//4101 3580//4101 3420//4101 +f 3410//4091 3268//4091 2941//4091 +f 2922//4102 3581//4102 2931//4102 +f 2922//4102 3572//4102 3581//4102 +f 3528//4103 3582//4103 3578//4103 +f 3528//4104 3531//4104 3582//4104 +f 3533//4105 3583//4105 3549//4105 +f 3535//4106 3551//4106 3584//4106 +f 3535//4107 3585//4107 3534//4107 +f 3535//4108 3584//4108 3585//4108 +f 3533//4109 3577//4109 3583//4109 +f 2941//4110 3586//4110 3587//4110 +f 2941//4091 3268//4091 3586//4091 +f 2941//4111 3587//4111 3588//4111 +f 2941//4112 3588//4112 2942//4112 +f 2950//4081 3589//4081 3426//4081 +f 2950//4113 2948//4113 3589//4113 +f 3063//4114 3590//4114 3591//4114 +f 3063//3255 3062//3255 3590//3255 +f 2803//4115 3592//4115 3064//4115 +f 2803//4115 3089//4115 3592//4115 +f 3063//3287 3591//3287 3088//3287 +f 3031//4116 3529//4116 3593//4116 +f 3031//4117 3593//4117 3093//4117 +f 3000//4118 3594//4118 3554//4118 +f 3000//4119 3030//4119 3594//4119 +f 3537//4120 3595//4120 3553//4120 +f 3537//4121 3596//4121 3595//4121 +f 3537//4121 3536//4121 3596//4121 +f 3061//4122 3597//4122 3494//4122 +f 3061//4123 3276//4123 3597//4123 +f 3275//4124 3495//4124 3598//4124 +f 3275//4125 3598//4125 3418//4125 +f 3050//4126 3599//4126 3497//4126 +f 3050//4127 3266//4127 3599//4127 +f 3265//4128 3496//4128 3600//4128 +f 3265//4129 3600//4129 3484//4129 +f 3369//4130 3357//4130 3601//4130 +f 3370//4131 3602//4131 3371//4131 +f 3370//552 597//552 3602//552 +f 3369//552 3601//552 590//552 +f 3551//4132 3603//4132 3584//4132 +f 3534//4133 3604//4133 3550//4133 +f 3534//4134 3585//4134 3604//4134 +f 3551//4135 3605//4135 3603//4135 +f 3551//4136 3549//4136 3605//4136 +f 3404//4137 3421//4137 3606//4137 +f 3404//4137 3606//4137 3579//4137 +f 3420//4101 3580//4101 3607//4101 +f 3420//4138 3607//4138 3542//4138 +f 3549//4139 3583//4139 3608//4139 +f 3531//4140 3609//4140 3582//4140 +f 3531//4141 3550//4141 3609//4141 +f 3549//4142 3608//4142 3605//4142 +f 2948//4143 3610//4143 3589//4143 +f 2948//4144 3611//4144 3610//4144 +f 2948//4144 3612//4144 3611//4144 +f 2948//4145 3613//4145 3612//4145 +f 2948//4146 3614//4146 3613//4146 +f 2948//4147 3615//4147 3614//4147 +f 2948//4148 3616//4148 3615//4148 +f 2948//4149 3617//4149 3616//4149 +f 2948//4150 2976//4150 3617//4150 +f 2942//4151 3588//4151 3618//4151 +f 2942//4151 3618//4151 2947//4151 +f 3007//4152 3619//4152 3362//4152 +f 3007//4152 3347//4152 3619//4152 +f 3346//4153 3620//4153 3621//4153 +f 3346//3750 3363//3750 3620//3750 +f 3346//3728 3621//3728 3062//3728 +f 3417//4154 3622//4154 3571//4154 +f 3417//4155 3515//4155 3622//4155 +f 3514//4156 3623//4156 3544//4156 +f 3514//4157 3526//4157 3623//4157 +f 3277//4090 2955//4090 3278//4090 +f 2931//4158 3624//4158 2956//4158 +f 2931//4158 3581//4158 3624//4158 +f 2955//4159 3003//4159 3625//4159 +f 2955//4090 3626//4090 3278//4090 +f 2955//4160 3627//4160 3626//4160 +f 2955//4161 3628//4161 3627//4161 +f 2955//4161 3629//4161 3628//4161 +f 2955//4162 3625//4162 3629//4162 +f 3406//4163 3630//4163 3552//4163 +f 3406//4163 3574//4163 3630//4163 +f 3524//4067 3553//4067 3631//4067 +f 3524//4164 3631//4164 3573//4164 +f 3553//4165 3632//4165 3631//4165 +f 3553//4120 3595//4120 3632//4120 +f 3536//4166 3633//4166 3596//4166 +f 3536//4166 3552//4166 3633//4166 +f 2976//4150 3634//4150 3617//4150 +f 2976//4167 3005//4167 3634//4167 +f 2947//4168 3618//4168 3635//4168 +f 2947//4168 3635//4168 2975//4168 +f 3381//4169 3636//4169 3576//4169 +f 3381//4170 3422//4170 3636//4170 +f 3477//4171 3506//4171 3637//4171 +f 3477//4171 3505//4171 3506//4171 +f 3477//4172 3478//4172 3505//4172 +f 3476//4173 3477//4173 3637//4173 +f 3476//4174 3637//4174 3638//4174 +f 3474//4175 3475//4175 3639//4175 +f 3474//4176 3639//4176 3640//4176 +f 3423//4177 3473//4177 3641//4177 +f 3423//4178 3641//4178 3642//4178 +f 3423//4179 3642//4179 3557//4179 +f 3557//4180 3642//4180 3558//4180 +f 3428//4181 3643//4181 3644//4181 +f 3428//4182 3451//4182 3643//4182 +f 3426//4183 3589//4183 3645//4183 +f 3589//4184 3610//4184 3645//4184 +f 3427//4185 3645//4185 3646//4185 +f 3427//4186 3426//4186 3645//4186 +f 3451//4187 3647//4187 3643//4187 +f 3451//4188 3450//4188 3647//4188 +f 3450//4189 3648//4189 3647//4189 +f 3450//4190 3452//4190 3648//4190 +f 3452//4191 3649//4191 3648//4191 +f 3452//4192 3454//4192 3649//4192 +f 3454//4193 3650//4193 3649//4193 +f 3454//4194 3453//4194 3650//4194 +f 3453//4195 3651//4195 3650//4195 +f 3453//4196 3455//4196 3651//4196 +f 3455//4197 3652//4197 3651//4197 +f 3455//4198 3456//4198 3652//4198 +f 3456//4199 3653//4199 3652//4199 +f 3456//4200 3457//4200 3653//4200 +f 3457//4201 3654//4201 3653//4201 +f 3457//4202 3458//4202 3654//4202 +f 3458//4203 3655//4203 3654//4203 +f 3458//4204 3459//4204 3655//4204 +f 3459//4205 3656//4205 3655//4205 +f 3459//4206 3460//4206 3656//4206 +f 3460//4207 3657//4207 3656//4207 +f 3460//4208 3461//4208 3657//4208 +f 3461//4209 3658//4209 3657//4209 +f 3461//4210 3462//4210 3658//4210 +f 3462//4211 3659//4211 3658//4211 +f 3462//4212 3463//4212 3659//4212 +f 3463//4213 3660//4213 3659//4213 +f 3463//4214 3464//4214 3660//4214 +f 3464//4215 3661//4215 3660//4215 +f 3464//4216 3465//4216 3661//4216 +f 3465//4217 3662//4217 3661//4217 +f 3465//4218 3466//4218 3662//4218 +f 3466//4219 3663//4219 3662//4219 +f 3466//4220 3467//4220 3663//4220 +f 3467//4221 3664//4221 3663//4221 +f 3467//4222 3468//4222 3664//4222 +f 3468//4223 3665//4223 3664//4223 +f 3468//4224 3469//4224 3665//4224 +f 3469//4225 3666//4225 3665//4225 +f 3469//4226 3470//4226 3666//4226 +f 3470//4227 3667//4227 3666//4227 +f 3470//4228 3471//4228 3667//4228 +f 3471//4229 3668//4229 3667//4229 +f 3471//4230 3472//4230 3668//4230 +f 3472//4231 3669//4231 3668//4231 +f 3472//4232 3425//4232 3669//4232 +f 3425//4233 3670//4233 3669//4233 +f 3425//4234 3424//4234 3670//4234 +f 3424//4235 3646//4235 3670//4235 +f 3424//4236 3427//4236 3646//4236 +f 3473//4237 3474//4237 3640//4237 +f 3473//4238 3640//4238 3641//4238 +f 3475//4239 3449//4239 3671//4239 +f 3475//4240 3671//4240 3639//4240 +f 3449//4241 3448//4241 3672//4241 +f 3449//4242 3672//4242 3671//4242 +f 3448//4243 3447//4243 3673//4243 +f 3448//4244 3673//4244 3672//4244 +f 3447//4245 3446//4245 3674//4245 +f 3447//4246 3674//4246 3673//4246 +f 3446//4247 3445//4247 3675//4247 +f 3446//4248 3675//4248 3674//4248 +f 3445//4249 3444//4249 3676//4249 +f 3445//4250 3676//4250 3675//4250 +f 3444//4251 3443//4251 3677//4251 +f 3444//4252 3677//4252 3676//4252 +f 3443//4253 3442//4253 3678//4253 +f 3443//4254 3678//4254 3677//4254 +f 3442//4255 3441//4255 3679//4255 +f 3442//4256 3679//4256 3678//4256 +f 3441//4257 3440//4257 3680//4257 +f 3441//4258 3680//4258 3679//4258 +f 3440//4259 3439//4259 3681//4259 +f 3440//4260 3681//4260 3680//4260 +f 3439//4261 3438//4261 3682//4261 +f 3439//4262 3682//4262 3681//4262 +f 3438//4263 3437//4263 3683//4263 +f 3438//4264 3683//4264 3682//4264 +f 3437//4265 3436//4265 3684//4265 +f 3437//4266 3684//4266 3683//4266 +f 3436//4267 3435//4267 3685//4267 +f 3436//4268 3685//4268 3684//4268 +f 3435//4269 3434//4269 3686//4269 +f 3435//4270 3686//4270 3685//4270 +f 3434//4271 3433//4271 3687//4271 +f 3434//4272 3687//4272 3686//4272 +f 3433//4273 3432//4273 3688//4273 +f 3433//4274 3688//4274 3687//4274 +f 3432//4275 3431//4275 3689//4275 +f 3432//4276 3689//4276 3688//4276 +f 3431//4277 3430//4277 3690//4277 +f 3431//4278 3690//4278 3689//4278 +f 3430//4279 3429//4279 3691//4279 +f 3430//4280 3691//4280 3690//4280 +f 3429//4281 3476//4281 3638//4281 +f 3429//4282 3638//4282 3691//4282 +f 3378//4283 3692//4283 3379//4283 +f 3378//4283 3693//4283 3692//4283 +f 3378//4284 3644//4284 3693//4284 +f 3378//4285 3428//4285 3644//4285 +f 3595//4286 3607//4286 3580//4286 +f 3595//4286 3596//4286 3607//4286 +f 3595//4287 3580//4287 3632//4287 +f 3062//4288 3621//4288 3590//4288 +f 2842//4289 3694//4289 3347//4289 +f 2842//4289 3064//4289 3694//4289 +f 3515//4290 3695//4290 3622//4290 +f 3515//4291 3545//4291 3695//4291 +f 3544//4292 3696//4292 3566//4292 +f 3544//4293 3623//4293 3696//4293 +f 3395//4294 3697//4294 3698//4294 +f 3395//4294 3698//4294 3396//4294 +f 3393//4295 3486//4295 3699//4295 +f 3393//4296 3700//4296 3394//4296 +f 3393//4296 3699//4296 3700//4296 +f 3395//4297 3397//4297 3697//4297 +f 3054//4298 3271//4298 3548//4298 +f 3270//4299 3541//4299 3488//4299 +f 3365//4300 3573//4300 3496//4300 +f 3255//4301 3364//4301 3574//4301 +f 3397//4302 3414//4302 3701//4302 +f 3394//4303 3702//4303 3398//4303 +f 3394//4303 3700//4303 3702//4303 +f 3397//4297 3701//4297 3697//4297 +f 3268//4304 3703//4304 3586//4304 +f 3268//4305 3704//4305 3703//4305 +f 3268//4306 3269//4306 3704//4306 +f 3580//4287 3579//4287 3632//4287 +f 3363//4307 3705//4307 3620//4307 +f 3363//3962 3484//3962 3705//3962 +f 3043//4308 3706//4308 3485//4308 +f 3043//4308 3362//4308 3706//4308 +f 3489//4309 3488//4309 3707//4309 +f 3489//4310 3707//4310 3708//4310 +f 3259//4311 3709//4311 3490//4311 +f 3259//4312 3508//4312 3709//4312 +f 3489//3997 3708//3997 3507//3997 +f 3278//4313 3626//4313 3280//4313 +f 3003//4314 3040//4314 3710//4314 +f 2956//4315 3711//4315 3002//4315 +f 2956//4315 3624//4315 3711//4315 +f 3003//4316 3710//4316 3625//4316 +f 3269//4317 3712//4317 3704//4317 +f 3269//4318 3281//4318 3712//4318 +f 3280//4319 3627//4319 3628//4319 +f 3280//4320 3626//4320 3627//4320 +f 3280//4321 3628//4321 3713//4321 +f 3280//4322 3713//4322 3342//4322 +f 3005//4323 3025//4323 3714//4323 +f 3005//4167 3714//4167 3634//4167 +f 2975//4324 3635//4324 3715//4324 +f 2975//4324 3715//4324 3004//4324 +f 3596//4325 3716//4325 3607//4325 +f 3596//4325 3633//4325 3716//4325 +f 3632//4326 3579//4326 3717//4326 +f 3632//4165 3717//4165 3631//4165 +f 3257//4053 3542//4053 3718//4053 +f 3257//4327 3718//4327 3540//4327 +f 3032//4328 3256//4328 3719//4328 +f 3032//4328 3719//4328 3543//4328 +f 3605//4329 3720//4329 3721//4329 +f 3550//4330 3722//4330 3609//4330 +f 3550//4331 3604//4331 3722//4331 +f 3605//4332 3721//4332 3603//4332 +f 3605//4333 3608//4333 3720//4333 +f 3545//4334 3723//4334 3695//4334 +f 3545//4335 3565//4335 3723//4335 +f 3566//4336 3724//4336 3577//4336 +f 3566//4337 3696//4337 3724//4337 +f 3579//4326 3606//4326 3717//4326 +f 3607//4138 3716//4138 3542//4138 +f 3414//4338 3507//4338 3725//4338 +f 3414//4302 3725//4302 3701//4302 +f 3398//4339 3726//4339 3413//4339 +f 3398//4339 3702//4339 3726//4339 +f 3584//4340 3603//4340 3727//4340 +f 3584//4341 3728//4341 3585//4341 +f 3584//4342 3727//4342 3728//4342 +f 3281//4343 3343//4343 3712//4343 +f 3342//4344 3713//4344 3352//4344 +f 3421//4345 3543//4345 3729//4345 +f 3421//4345 3729//4345 3606//4345 +f 3542//4346 3716//4346 3718//4346 +f 3070//4049 3361//4049 3539//4049 +f 3359//4050 3540//4050 3568//4050 +f 3526//4347 3575//4347 3730//4347 +f 3526//4348 3730//4348 3623//4348 +f 3422//4349 3731//4349 3636//4349 +f 3422//4350 3525//4350 3731//4350 +f 3577//4351 3724//4351 3732//4351 +f 3577//4352 3732//4352 3583//4352 +f 3565//4353 3733//4353 3723//4353 +f 3565//4354 3578//4354 3733//4354 +f 3093//4355 3593//4355 3734//4355 +f 3093//4356 3734//4356 3351//4356 +f 3030//4357 3735//4357 3594//4357 +f 3030//4358 3092//4358 3735//4358 +f 3025//4323 3736//4323 3714//4323 +f 3025//4359 3042//4359 3736//4359 +f 3004//4360 3715//4360 3737//4360 +f 3004//4360 3737//4360 3024//4360 +f 3631//4164 3738//4164 3573//4164 +f 3631//4361 3717//4361 3738//4361 +f 3552//4362 3739//4362 3633//4362 +f 3552//4362 3630//4362 3739//4362 +f 3603//4363 3740//4363 3727//4363 +f 3603//4364 3741//4364 3740//4364 +f 3585//4365 3742//4365 3604//4365 +f 3585//4366 3728//4366 3742//4366 +f 3603//4367 3721//4367 3741//4367 +f 3578//4368 3743//4368 3733//4368 +f 3578//4369 3582//4369 3743//4369 +f 3583//4370 3744//4370 3608//4370 +f 3583//4371 3732//4371 3744//4371 +f 3396//4372 3698//4372 3745//4372 +f 3396//4372 3745//4372 3487//4372 +f 3486//4295 3746//4295 3699//4295 +f 3486//4373 3569//4373 3746//4373 +f 3040//4314 3747//4314 3710//4314 +f 3040//4374 3085//4374 3747//4374 +f 3002//4375 3748//4375 3039//4375 +f 3002//4375 3711//4375 3748//4375 +f 3507//4338 3749//4338 3725//4338 +f 3413//4376 3750//4376 3508//4376 +f 3413//4376 3726//4376 3750//4376 +f 3507//4377 3708//4377 3749//4377 +f 3608//4378 3744//4378 3751//4378 +f 3582//4379 3752//4379 3743//4379 +f 3582//4380 3609//4380 3752//4380 +f 3608//4381 3751//4381 3720//4381 +f 3586//4382 3703//4382 3587//4382 +f 3276//4383 3753//4383 3597//4383 +f 3276//4384 3419//4384 3753//4384 +f 3418//4385 3598//4385 3754//4385 +f 3418//4386 3754//4386 3575//4386 +f 3042//4387 3095//4387 3755//4387 +f 3042//4359 3755//4359 3736//4359 +f 3024//4388 3737//4388 3756//4388 +f 3024//4388 3756//4388 3041//4388 +f 3727//4389 3757//4389 3728//4389 +f 3727//4390 3740//4390 3757//4390 +f 3633//4391 3758//4391 3716//4391 +f 3633//4391 3739//4391 3758//4391 +f 3717//4392 3606//4392 3759//4392 +f 3717//4361 3759//4361 3738//4361 +f 3525//4393 3760//4393 3731//4393 +f 3525//4394 3571//4394 3760//4394 +f 3606//4392 3729//4392 3759//4392 +f 3716//4346 3758//4346 3718//4346 +f 3484//4395 3761//4395 3705//4395 +f 3266//4396 3762//4396 3599//4396 +f 3266//4397 3485//4397 3762//4397 +f 3484//4398 3600//4398 3761//4398 +f 3728//4399 3763//4399 3742//4399 +f 3728//4400 3757//4400 3763//4400 +f 3496//4300 3764//4300 3600//4300 +f 3496//4300 3573//4300 3764//4300 +f 3364//4301 3765//4301 3574//4301 +f 3364//4301 3497//4301 3765//4301 +f 3574//4401 3766//4401 3630//4401 +f 3574//4401 3765//4401 3766//4401 +f 3573//4402 3738//4402 3764//4402 +f 3721//4403 3767//4403 3768//4403 +f 3721//4404 3720//4404 3767//4404 +f 3604//4405 3769//4405 3722//4405 +f 3604//4406 3742//4406 3769//4406 +f 3721//4407 3768//4407 3741//4407 +f 3558//4408 3642//4408 3559//4408 +f 3610//4409 3611//4409 3645//4409 +f 3085//4374 3770//4374 3747//4374 +f 3085//4410 3380//4410 3770//4410 +f 3039//4411 3637//4411 3506//4411 +f 3039//4411 3771//4411 3637//4411 +f 3039//4412 3772//4412 3771//4412 +f 3039//4413 3773//4413 3772//4413 +f 3039//4414 3774//4414 3773//4414 +f 3039//4415 3775//4415 3774//4415 +f 3039//4416 3748//4416 3775//4416 +f 3609//4417 3776//4417 3752//4417 +f 3609//4418 3722//4418 3776//4418 +f 3720//4419 3751//4419 3777//4419 +f 3720//4420 3777//4420 3767//4420 +f 3379//4421 3692//4421 3375//4421 +f 3623//4422 3778//4422 3696//4422 +f 3623//4423 3730//4423 3778//4423 +f 3571//4424 3779//4424 3760//4424 +f 3571//4425 3622//4425 3779//4425 +f 3088//4059 3780//4059 3546//4059 +f 2885//4426 3781//4426 3089//4426 +f 2885//4426 3547//4426 3781//4426 +f 3088//4427 3591//4427 3780//4427 +f 3740//4428 3741//4428 3782//4428 +f 3740//4429 3783//4429 3757//4429 +f 3740//4430 3782//4430 3783//4430 +f 3487//4431 3745//4431 3784//4431 +f 3487//4432 3784//4432 3570//4432 +f 3569//4433 3568//4433 3785//4433 +f 3569//4434 3785//4434 3786//4434 +f 3569//4373 3786//4373 3746//4373 +f 3351//4435 3734//4435 3787//4435 +f 3351//4436 3787//4436 3495//4436 +f 3092//4437 3350//4437 3735//4437 +f 3095//4438 3273//4438 3788//4438 +f 3095//4387 3788//4387 3755//4387 +f 3041//4439 3756//4439 3789//4439 +f 3041//4439 3789//4439 3094//4439 +f 3271//4298 3790//4298 3548//4298 +f 3271//4298 3490//4298 3790//4298 +f 3488//4299 3791//4299 3707//4299 +f 3488//4299 3541//4299 3791//4299 +f 3741//4440 3792//4440 3782//4440 +f 3757//4441 3793//4441 3763//4441 +f 3757//4442 3783//4442 3793//4442 +f 3741//4443 3768//4443 3792//4443 +f 3718//4327 3794//4327 3540//4327 +f 3543//4444 3719//4444 3795//4444 +f 3543//4444 3795//4444 3729//4444 +f 3718//4445 3758//4445 3794//4445 +f 3742//4446 3796//4446 3769//4446 +f 3742//4447 3763//4447 3796//4447 +f 3696//4448 3778//4448 3724//4448 +f 3622//4449 3797//4449 3779//4449 +f 3622//4450 3695//4450 3797//4450 +f 3738//4402 3798//4402 3764//4402 +f 3738//4451 3759//4451 3798//4451 +f 3630//4452 3799//4452 3739//4452 +f 3630//4452 3766//4452 3799//4452 +f 3419//4453 3800//4453 3753//4453 +f 3419//4454 3576//4454 3800//4454 +f 3575//4455 3754//4455 3801//4455 +f 3575//4456 3801//4456 3730//4456 +f 3695//4457 3802//4457 3797//4457 +f 3695//4458 3723//4458 3802//4458 +f 3724//4459 3778//4459 3803//4459 +f 3724//4460 3803//4460 3732//4460 +f 3361//4461 3570//4461 3804//4461 +f 3361//4461 3804//4461 3539//4461 +f 3568//4050 3540//4050 3805//4050 +f 3568//4462 3805//4462 3785//4462 +f 3692//4421 3693//4421 3375//4421 +f 3273//4438 3806//4438 3788//4438 +f 3273//4463 3358//4463 3806//4463 +f 3094//4464 3789//4464 3807//4464 +f 3094//4464 3807//4464 3272//4464 +f 3587//4382 3703//4382 3808//4382 +f 3587//4465 3808//4465 3588//4465 +f 3600//4466 3764//4466 3761//4466 +f 3497//4467 3599//4467 3765//4467 +f 3732//4468 3803//4468 3809//4468 +f 3732//4469 3809//4469 3744//4469 +f 3723//4470 3810//4470 3802//4470 +f 3723//4471 3733//4471 3810//4471 +f 3767//4472 3811//4472 3768//4472 +f 3722//4473 3812//4473 3776//4473 +f 3722//4474 3769//4474 3812//4474 +f 3767//4475 3777//4475 3813//4475 +f 3767//4476 3813//4476 3811//4476 +f 3733//4477 3814//4477 3810//4477 +f 3733//4478 3743//4478 3814//4478 +f 3744//4479 3815//4479 3751//4479 +f 3768//4480 3811//4480 3816//4480 +f 3763//4481 3817//4481 3796//4481 +f 3763//4482 3793//4482 3817//4482 +f 3768//4483 3816//4483 3792//4483 +f 3744//4484 3809//4484 3815//4484 +f 3739//4485 3818//4485 3758//4485 +f 3739//4485 3799//4485 3818//4485 +f 3759//4486 3729//4486 3819//4486 +f 3759//4451 3819//4451 3798//4451 +f 3045//4487 3820//4487 3821//4487 +f 3045//4487 3046//4487 3820//4487 +f 3045//4488 3821//4488 3065//4488 +f 3620//4153 3822//4153 3621//4153 +f 3620//4489 3823//4489 3822//4489 +f 3620//4307 3705//4307 3823//4307 +f 3362//4490 3824//4490 3706//4490 +f 3362//4490 3619//4490 3824//4490 +f 3729//4486 3795//4486 3819//4486 +f 3758//4445 3818//4445 3794//4445 +f 3708//4491 3825//4491 3826//4491 +f 3708//4492 3707//4492 3825//4492 +f 3508//4493 3827//4493 3709//4493 +f 3508//4494 3750//4494 3827//4494 +f 3708//4377 3826//4377 3749//4377 +f 3540//4495 3794//4495 3805//4495 +f 3256//4496 3539//4496 3828//4496 +f 3256//4496 3828//4496 3719//4496 +f 3808//4497 3703//4497 3829//4497 +f 3808//4498 3829//4498 3588//4498 +f 3347//4499 3830//4499 3619//4499 +f 3347//4500 3694//4500 3830//4500 +f 3621//4501 3822//4501 3831//4501 +f 3621//4288 3831//4288 3590//4288 +f 3751//4502 3815//4502 3832//4502 +f 3751//4503 3832//4503 3777//4503 +f 3743//4504 3833//4504 3814//4504 +f 3743//4505 3752//4505 3833//4505 +f 3065//4506 3834//4506 3090//4506 +f 3046//4507 3835//4507 3820//4507 +f 3046//4507 3091//4507 3835//4507 +f 3065//4488 3821//4488 3834//4488 +f 3576//4508 3836//4508 3800//4508 +f 3576//4509 3636//4509 3836//4509 +f 3642//4510 3837//4510 3559//4510 +f 3646//4511 3838//4511 3839//4511 +f 3646//4512 3645//4512 3838//4512 +f 3645//4513 3611//4513 3838//4513 +f 3669//4514 3840//4514 3841//4514 +f 3669//4515 3670//4515 3840//4515 +f 3670//4516 3839//4516 3840//4516 +f 3670//4517 3646//4517 3839//4517 +f 3667//4518 3842//4518 3843//4518 +f 3667//4519 3668//4519 3842//4519 +f 3668//4520 3841//4520 3842//4520 +f 3668//4521 3669//4521 3841//4521 +f 3665//4522 3844//4522 3845//4522 +f 3665//4523 3666//4523 3844//4523 +f 3666//4524 3843//4524 3844//4524 +f 3666//4525 3667//4525 3843//4525 +f 3663//4526 3846//4526 3847//4526 +f 3663//4527 3664//4527 3846//4527 +f 3664//4528 3845//4528 3846//4528 +f 3664//4529 3665//4529 3845//4529 +f 3661//4530 3848//4530 3849//4530 +f 3661//4531 3662//4531 3848//4531 +f 3662//4532 3847//4532 3848//4532 +f 3662//4533 3663//4533 3847//4533 +f 3659//4534 3850//4534 3851//4534 +f 3659//4535 3660//4535 3850//4535 +f 3660//4536 3849//4536 3850//4536 +f 3660//4537 3661//4537 3849//4537 +f 3657//4538 3852//4538 3853//4538 +f 3657//4539 3658//4539 3852//4539 +f 3658//4540 3851//4540 3852//4540 +f 3658//4541 3659//4541 3851//4541 +f 3655//4542 3854//4542 3855//4542 +f 3655//4543 3656//4543 3854//4543 +f 3656//4544 3853//4544 3854//4544 +f 3656//4545 3657//4545 3853//4545 +f 3653//4546 3856//4546 3857//4546 +f 3653//4547 3654//4547 3856//4547 +f 3654//4548 3855//4548 3856//4548 +f 3654//4549 3655//4549 3855//4549 +f 3651//4550 3858//4550 3859//4550 +f 3651//4551 3652//4551 3858//4551 +f 3652//4552 3857//4552 3858//4552 +f 3652//4553 3653//4553 3857//4553 +f 3649//4554 3860//4554 3861//4554 +f 3649//4555 3650//4555 3860//4555 +f 3650//4556 3859//4556 3860//4556 +f 3650//4557 3651//4557 3859//4557 +f 3647//4558 3862//4558 3863//4558 +f 3647//4559 3648//4559 3862//4559 +f 3648//4560 3861//4560 3862//4560 +f 3648//4561 3649//4561 3861//4561 +f 3643//4562 3863//4562 3864//4562 +f 3643//4563 3647//4563 3863//4563 +f 3644//4564 3864//4564 3865//4564 +f 3644//4565 3643//4565 3864//4565 +f 3638//4566 3772//4566 3773//4566 +f 3638//4567 3771//4567 3772//4567 +f 3638//4568 3637//4568 3771//4568 +f 3638//4569 3773//4569 3866//4569 +f 3691//4570 3638//4570 3866//4570 +f 3691//4571 3866//4571 3867//4571 +f 3690//4572 3691//4572 3867//4572 +f 3690//4573 3867//4573 3868//4573 +f 3689//4574 3690//4574 3868//4574 +f 3689//4575 3868//4575 3869//4575 +f 3688//4576 3689//4576 3869//4576 +f 3688//4577 3869//4577 3870//4577 +f 3687//4578 3688//4578 3870//4578 +f 3687//4579 3870//4579 3871//4579 +f 3686//4580 3687//4580 3871//4580 +f 3686//4581 3871//4581 3872//4581 +f 3685//4582 3686//4582 3872//4582 +f 3685//4583 3872//4583 3873//4583 +f 3684//4584 3685//4584 3873//4584 +f 3684//4585 3873//4585 3874//4585 +f 3683//4586 3684//4586 3874//4586 +f 3683//4587 3874//4587 3875//4587 +f 3682//4588 3683//4588 3875//4588 +f 3682//4589 3875//4589 3876//4589 +f 3681//4590 3682//4590 3876//4590 +f 3681//4591 3876//4591 3877//4591 +f 3680//4592 3681//4592 3877//4592 +f 3680//4593 3877//4593 3878//4593 +f 3679//4594 3680//4594 3878//4594 +f 3679//4595 3878//4595 3879//4595 +f 3678//4596 3679//4596 3879//4596 +f 3678//4597 3879//4597 3880//4597 +f 3677//4598 3678//4598 3880//4598 +f 3677//4599 3880//4599 3881//4599 +f 3676//4600 3677//4600 3881//4600 +f 3676//4601 3881//4601 3882//4601 +f 3675//4602 3676//4602 3882//4602 +f 3675//4603 3882//4603 3883//4603 +f 3674//4604 3675//4604 3883//4604 +f 3674//4605 3883//4605 3884//4605 +f 3673//4606 3674//4606 3884//4606 +f 3673//4607 3884//4607 3885//4607 +f 3672//4608 3673//4608 3885//4608 +f 3672//4609 3885//4609 3886//4609 +f 3671//4610 3672//4610 3886//4610 +f 3671//4611 3886//4611 3887//4611 +f 3639//4612 3671//4612 3887//4612 +f 3639//4613 3887//4613 3888//4613 +f 3642//4614 3641//4614 3889//4614 +f 3642//4615 3889//4615 3837//4615 +f 3640//4616 3639//4616 3888//4616 +f 3640//4617 3888//4617 3890//4617 +f 3641//4618 3640//4618 3890//4618 +f 3641//4619 3890//4619 3889//4619 +f 3644//4620 3865//4620 3693//4620 +f 3559//4621 3837//4621 3560//4621 +f 3611//4622 3612//4622 3838//4622 +f 3693//4421 3891//4421 3375//4421 +f 3693//4623 3892//4623 3891//4623 +f 3693//4624 3865//4624 3892//4624 +f 3495//4625 3787//4625 3893//4625 +f 3495//4626 3893//4626 3598//4626 +f 3350//4627 3894//4627 3735//4627 +f 3350//4628 3494//4628 3894//4628 +f 3358//4629 3371//4629 3895//4629 +f 3358//4463 3895//4463 3806//4463 +f 3272//4630 3807//4630 3896//4630 +f 3272//4630 3896//4630 3357//4630 +f 3782//4631 3792//4631 3897//4631 +f 3782//4632 3898//4632 3783//4632 +f 3782//4633 3897//4633 3898//4633 +f 3560//4634 3837//4634 3561//4634 +f 3371//4629 3899//4629 3895//4629 +f 3371//4131 3602//4131 3900//4131 +f 3371//4635 3900//4635 3899//4635 +f 3357//4636 3896//4636 3901//4636 +f 3357//4637 3901//4637 3601//4637 +f 3602//552 3902//552 3900//552 +f 3602//552 597//552 3902//552 +f 3769//4638 3903//4638 3812//4638 +f 3769//4639 3796//4639 3903//4639 +f 3380//4410 3904//4410 3770//4410 +f 3380//4640 3388//4640 3904//4640 +f 3375//4641 3891//4641 3892//4641 +f 3375//4642 3892//4642 3905//4642 +f 3375//4642 3905//4642 3906//4642 +f 3375//4643 3906//4643 3907//4643 +f 3375//4644 3907//4644 3908//4644 +f 3375//4645 3909//4645 3374//4645 +f 3375//4645 3908//4645 3909//4645 +f 3601//552 3901//552 590//552 +f 3612//4646 3613//4646 3838//4646 +f 3485//4647 3910//4647 3762//4647 +f 3485//4648 3706//4648 3910//4648 +f 3705//4649 3761//4649 3911//4649 +f 3705//4650 3911//4650 3823//4650 +f 3697//4651 3912//4651 3913//4651 +f 3697//4651 3913//4651 3698//4651 +f 3699//4652 3746//4652 3914//4652 +f 3699//4653 3915//4653 3700//4653 +f 3699//4653 3914//4653 3915//4653 +f 3697//4654 3701//4654 3912//4654 +f 3792//4655 3816//4655 3897//4655 +f 3783//4656 3898//4656 3793//4656 +f 3701//4657 3725//4657 3916//4657 +f 3700//4658 3917//4658 3702//4658 +f 3700//4658 3915//4658 3917//4658 +f 3701//4654 3916//4654 3912//4654 +f 3388//4659 3408//4659 3918//4659 +f 3388//4640 3918//4640 3904//4640 +f 3374//4660 3909//4660 3387//4660 +f 3777//4661 3832//4661 3919//4661 +f 3777//4662 3919//4662 3813//4662 +f 3752//4663 3920//4663 3833//4663 +f 3752//4664 3776//4664 3920//4664 +f 3636//4665 3921//4665 3836//4665 +f 3636//4666 3731//4666 3921//4666 +f 3730//4667 3801//4667 3922//4667 +f 3730//4668 3922//4668 3778//4668 +f 3702//4669 3923//4669 3726//4669 +f 3702//4669 3917//4669 3923//4669 +f 3725//4670 3749//4670 3924//4670 +f 3725//4657 3924//4657 3916//4657 +f 3091//4671 3925//4671 3835//4671 +f 3091//4671 3349//4671 3925//4671 +f 3090//4506 3834//4506 3926//4506 +f 3090//4672 3926//4672 3348//4672 +f 3408//4673 3927//4673 3918//4673 +f 3408//4674 3480//4674 3927//4674 +f 3387//4675 3928//4675 3407//4675 +f 3387//4675 3929//4675 3928//4675 +f 3387//4676 3909//4676 3929//4676 +f 3765//4677 3930//4677 3766//4677 +f 3765//4677 3931//4677 3930//4677 +f 3764//4678 3798//4678 3932//4678 +f 3764//4466 3932//4466 3761//4466 +f 3765//4467 3599//4467 3931//4467 +f 3490//4679 3709//4679 3790//4679 +f 3707//4680 3791//4680 3825//4680 +f 3746//4652 3933//4652 3914//4652 +f 3746//4681 3786//4681 3933//4681 +f 3698//4682 3913//4682 3934//4682 +f 3698//4682 3934//4682 3745//4682 +f 3811//4683 3935//4683 3816//4683 +f 3796//4684 3936//4684 3903//4684 +f 3796//4685 3817//4685 3936//4685 +f 3811//4686 3813//4686 3937//4686 +f 3811//4687 3937//4687 3935//4687 +f 3480//4688 3499//4688 3938//4688 +f 3480//4674 3938//4674 3927//4674 +f 3407//4689 3939//4689 3479//4689 +f 3407//4689 3928//4689 3939//4689 +f 3816//4690 3940//4690 3897//4690 +f 3816//4691 3935//4691 3940//4691 +f 3793//4692 3941//4692 3817//4692 +f 3793//4693 3898//4693 3941//4693 +f 3749//4670 3942//4670 3924//4670 +f 3726//4694 3943//4694 3750//4694 +f 3726//4694 3923//4694 3943//4694 +f 3749//4695 3826//4695 3942//4695 +f 3731//4696 3944//4696 3921//4696 +f 3731//4697 3760//4697 3944//4697 +f 3499//4688 3945//4688 3938//4688 +f 3499//4698 3513//4698 3945//4698 +f 3479//4699 3946//4699 3498//4699 +f 3479//4699 3939//4699 3946//4699 +f 3500//4700 3947//4700 3948//4700 +f 3500//4700 3948//4700 3501//4700 +f 3503//4701 3516//4701 3949//4701 +f 3503//4702 3950//4702 3502//4702 +f 3503//4702 3949//4702 3950//4702 +f 3500//4703 3523//4703 3947//4703 +f 3590//4114 3951//4114 3591//4114 +f 3590//4704 3831//4704 3951//4704 +f 3064//4705 3952//4705 3694//4705 +f 3064//4705 3592//4705 3952//4705 +f 3761//4466 3932//4466 3911//4466 +f 3599//4467 3762//4467 3931//4467 +f 3513//4706 3517//4706 3953//4706 +f 3513//4698 3953//4698 3945//4698 +f 3498//4707 3954//4707 3512//4707 +f 3498//4707 3946//4707 3954//4707 +f 3598//4708 3893//4708 3955//4708 +f 3598//4709 3955//4709 3754//4709 +f 3494//4710 3956//4710 3894//4710 +f 3494//4711 3597//4711 3956//4711 +f 3794//4495 3957//4495 3805//4495 +f 3719//4712 3828//4712 3958//4712 +f 3719//4712 3958//4712 3795//4712 +f 3794//4713 3818//4713 3957//4713 +f 3501//4714 3948//4714 3959//4714 +f 3501//4714 3959//4714 3517//4714 +f 3516//4715 3512//4715 3960//4715 +f 3516//4701 3960//4701 3949//4701 +f 3897//4716 3940//4716 3961//4716 +f 3897//4717 3962//4717 3898//4717 +f 3897//4718 3961//4718 3962//4718 +f 3517//4706 3959//4706 3953//4706 +f 3512//4715 3954//4715 3960//4715 +f 3502//4719 3963//4719 3010//4719 +f 3502//4719 3950//4719 3963//4719 +f 3523//4720 3008//4720 3964//4720 +f 3523//4703 3964//4703 3947//4703 +f 3813//4721 3919//4721 3965//4721 +f 3813//4722 3965//4722 3937//4722 +f 3776//4723 3966//4723 3920//4723 +f 3776//4724 3812//4724 3966//4724 +f 3798//4678 3967//4678 3932//4678 +f 3798//4725 3819//4725 3967//4725 +f 3766//4726 3968//4726 3799//4726 +f 3766//4726 3930//4726 3968//4726 +f 3008//4727 3013//4727 3969//4727 +f 3010//4728 3970//4728 3009//4728 +f 3010//4728 3963//4728 3970//4728 +f 3008//4720 3969//4720 3964//4720 +f 3760//4729 3971//4729 3944//4729 +f 3760//4730 3779//4730 3971//4730 +f 3778//4731 3972//4731 3803//4731 +f 3778//4732 3922//4732 3972//4732 +f 3013//4727 3973//4727 3969//4727 +f 3009//4733 3974//4733 3014//4733 +f 3009//4733 3970//4733 3974//4733 +f 3013//4734 3026//4734 3973//4734 +f 3026//4735 3037//4735 3975//4735 +f 3014//4736 3976//4736 3027//4736 +f 3014//4736 3974//4736 3976//4736 +f 3026//4734 3975//4734 3973//4734 +f 3786//4737 3977//4737 3978//4737 +f 3786//4738 3785//4738 3977//4738 +f 3786//4681 3978//4681 3933//4681 +f 3745//4739 3934//4739 3979//4739 +f 3745//4740 3979//4740 3784//4740 +f 3570//4461 3784//4461 3804//4461 +f 3785//4462 3805//4462 3977//4462 +f 3037//4741 3047//4741 3980//4741 +f 3027//4742 3981//4742 3036//4742 +f 3027//4742 3976//4742 3981//4742 +f 3037//4735 3980//4735 3975//4735 +f 3829//4743 3703//4743 3588//4743 +f 3779//4744 3982//4744 3971//4744 +f 3779//4745 3797//4745 3982//4745 +f 3799//4746 3983//4746 3818//4746 +f 3799//4746 3968//4746 3983//4746 +f 3819//4747 3795//4747 3984//4747 +f 3819//4725 3984//4725 3967//4725 +f 3795//4747 3958//4747 3984//4747 +f 3818//4713 3983//4713 3957//4713 +f 3812//4748 3985//4748 3966//4748 +f 3812//4749 3903//4749 3985//4749 +f 3348//4750 3986//4750 3541//4750 +f 3349//4751 3987//4751 3925//4751 +f 3349//4751 3548//4751 3987//4751 +f 3348//4672 3926//4672 3986//4672 +f 3561//4752 3837//4752 3562//4752 +f 3935//4753 3988//4753 3940//4753 +f 3817//4754 3989//4754 3936//4754 +f 3817//4755 3941//4755 3989//4755 +f 3935//4756 3937//4756 3990//4756 +f 3935//4757 3990//4757 3988//4757 +f 3047//4741 3991//4741 3980//4741 +f 3047//4758 3052//4758 3991//4758 +f 3036//4759 3992//4759 3048//4759 +f 3036//4759 3981//4759 3992//4759 +f 3048//4760 3993//4760 3051//4760 +f 3048//4760 3992//4760 3993//4760 +f 3052//4761 3060//4761 3994//4761 +f 3052//4758 3994//4758 3991//4758 +f 3940//4762 3995//4762 3961//4762 +f 3940//4763 3988//4763 3995//4763 +f 3898//4764 3996//4764 3941//4764 +f 3898//4765 3962//4765 3996//4765 +f 3797//4766 3997//4766 3982//4766 +f 3797//4767 3802//4767 3997//4767 +f 3803//4768 3998//4768 3809//4768 +f 3803//4769 3972//4769 3998//4769 +f 3613//4770 3614//4770 3838//4770 +f 3051//4771 3999//4771 3059//4771 +f 3051//4771 3993//4771 3999//4771 +f 3060//4772 3075//4772 4000//4772 +f 3060//4761 4000//4761 3994//4761 +f 3961//4773 3995//4773 4001//4773 +f 3961//4774 4001//4774 4002//4774 +f 3961//4775 4002//4775 4003//4775 +f 3961//4776 4003//4776 4004//4776 +f 3961//4777 4004//4777 3962//4777 +f 3591//4778 3951//4778 4005//4778 +f 3089//4779 4006//4779 3592//4779 +f 3089//4779 3781//4779 4006//4779 +f 3591//4427 4005//4427 3780//4427 +f 3703//4780 4007//4780 4008//4780 +f 3703//4781 4009//4781 4007//4781 +f 3703//4782 3704//4782 4009//4782 +f 3703//4743 4008//4743 3588//4743 +f 3809//4783 3998//4783 4010//4783 +f 3809//4784 4010//4784 3815//4784 +f 3802//4785 4011//4785 3997//4785 +f 3802//4786 3810//4786 4011//4786 +f 3628//4787 3629//4787 3713//4787 +f 3810//4788 4012//4788 4011//4788 +f 3810//4789 3814//4789 4012//4789 +f 3815//4790 4013//4790 3832//4790 +f 3815//4791 4010//4791 4013//4791 +f 3713//4792 4014//4792 4015//4792 +f 3713//4793 4016//4793 4014//4793 +f 3713//4794 4017//4794 4016//4794 +f 3713//4794 3625//4794 4017//4794 +f 3713//4794 3629//4794 3625//4794 +f 3713//4795 4015//4795 3352//4795 +f 3704//4796 4018//4796 4009//4796 +f 3704//4797 3712//4797 4018//4797 +f 3075//4772 4019//4772 4000//4772 +f 3075//4798 3248//4798 4019//4798 +f 3059//4799 4020//4799 3076//4799 +f 3059//4799 3999//4799 4020//4799 +f 3754//4800 3955//4800 3801//4800 +f 3597//4801 4021//4801 3956//4801 +f 3597//4802 3753//4802 4021//4802 +f 3712//4803 4022//4803 4018//4803 +f 3712//4804 3343//4804 4022//4804 +f 3352//4805 4023//4805 3353//4805 +f 3352//4806 4015//4806 4023//4806 +f 4004//4807 4024//4807 3962//4807 +f 4004//4808 4003//4808 4025//4808 +f 4004//4809 4025//4809 4024//4809 +f 4024//4810 4026//4810 3962//4810 +f 4024//4811 4027//4811 4026//4811 +f 4024//4812 4025//4812 4027//4812 +f 3823//4813 4028//4813 4029//4813 +f 3706//4814 4030//4814 3910//4814 +f 3706//4815 3824//4815 4030//4815 +f 3823//4816 3911//4816 4028//4816 +f 3823//4489 4029//4489 3822//4489 +f 4003//4817 4002//4817 4025//4817 +f 4026//4818 4031//4818 3962//4818 +f 4026//4819 4027//4819 4031//4819 +f 3937//4820 3965//4820 4032//4820 +f 3937//4821 4032//4821 3990//4821 +f 3903//4822 4033//4822 3985//4822 +f 3903//4823 3936//4823 4033//4823 +f 3814//4824 4034//4824 4012//4824 +f 3814//4825 3833//4825 4034//4825 +f 3832//4826 4013//4826 4035//4826 +f 3832//4827 4035//4827 3919//4827 +f 3892//4828 3865//4828 3905//4828 +f 3822//4829 4036//4829 3831//4829 +f 3822//4830 4029//4830 4036//4830 +f 3619//4831 3830//4831 3824//4831 +f 3826//4832 3825//4832 4037//4832 +f 3826//4833 4037//4833 4038//4833 +f 3750//4834 4039//4834 3827//4834 +f 3750//4835 3943//4835 4039//4835 +f 3826//4695 4038//4695 3942//4695 +f 3353//4836 4023//4836 4040//4836 +f 3353//4837 4040//4837 4041//4837 +f 3343//4838 4042//4838 4022//4838 +f 3343//4839 3354//4839 4042//4839 +f 3353//4840 4041//4840 3373//4840 +f 3911//4841 3932//4841 4028//4841 +f 3762//4842 3910//4842 3931//4842 +f 3354//4843 4043//4843 4042//4843 +f 3354//4844 3372//4844 4043//4844 +f 3373//4845 4041//4845 4044//4845 +f 3373//4846 4044//4846 3389//4846 +f 3248//4847 3345//4847 4045//4847 +f 3248//4798 4045//4798 4019//4798 +f 3076//4848 4046//4848 3247//4848 +f 3076//4848 4020//4848 4046//4848 +f 4002//4849 4001//4849 4025//4849 +f 4031//4850 4047//4850 3962//4850 +f 4031//4851 4027//4851 4047//4851 +f 3995//4852 4048//4852 4049//4852 +f 3995//4853 4049//4853 4050//4853 +f 3995//4854 4050//4854 4051//4854 +f 3995//4855 4051//4855 4001//4855 +f 3962//4856 4047//4856 3996//4856 +f 3995//4857 3988//4857 4048//4857 +f 3709//4679 4052//4679 3790//4679 +f 3709//4679 3827//4679 4052//4679 +f 3825//4680 4053//4680 4037//4680 +f 3825//4680 3791//4680 4053//4680 +f 3805//4858 3957//4858 4054//4858 +f 3539//4859 3804//4859 4055//4859 +f 3539//4859 4055//4859 3828//4859 +f 3805//4462 4054//4462 3977//4462 +f 3389//4860 4044//4860 4056//4860 +f 3389//4861 4056//4861 4057//4861 +f 3389//4862 4057//4862 3412//4862 +f 3372//4863 4058//4863 4043//4863 +f 3372//4864 3390//4864 4058//4864 +f 3833//4865 4059//4865 4034//4865 +f 3833//4866 3920//4866 4059//4866 +f 3919//4867 4035//4867 4060//4867 +f 3919//4868 4060//4868 3965//4868 +f 3941//4869 4061//4869 3989//4869 +f 3941//4870 3996//4870 4061//4870 +f 3988//4871 4062//4871 4048//4871 +f 3988//4872 3990//4872 4062//4872 +f 4001//4873 4051//4873 4025//4873 +f 4047//4874 4063//4874 3996//4874 +f 4047//4875 4027//4875 4063//4875 +f 3390//4876 4064//4876 4058//4876 +f 3390//4877 3411//4877 4064//4877 +f 3412//4878 4057//4878 3529//4878 +f 4051//4879 4050//4879 4025//4879 +f 3345//4847 4065//4847 4045//4847 +f 3247//4880 4066//4880 3344//4880 +f 3247//4880 4046//4880 4066//4880 +f 3345//4881 3546//4881 4065//4881 +f 3694//4882 4067//4882 3830//4882 +f 3694//4883 3952//4883 4067//4883 +f 3831//4884 4036//4884 4068//4884 +f 3831//4704 4068//4704 3951//4704 +f 3801//4885 3955//4885 4069//4885 +f 3801//4886 4069//4886 3922//4886 +f 3753//4887 4070//4887 4021//4887 +f 3753//4888 3800//4888 4070//4888 +f 3990//4889 4032//4889 4071//4889 +f 3936//4890 4072//4890 4033//4890 +f 3936//4891 3989//4891 4072//4891 +f 3990//4892 4071//4892 4062//4892 +f 3411//4893 4073//4893 4064//4893 +f 3411//4894 3493//4894 4073//4894 +f 4063//4895 4074//4895 3996//4895 +f 4063//4896 4027//4896 4074//4896 +f 3931//4897 4075//4897 3930//4897 +f 3931//4897 4076//4897 4075//4897 +f 3932//4898 3967//4898 4077//4898 +f 3932//4841 4077//4841 4028//4841 +f 3931//4842 3910//4842 4076//4842 +f 3912//4899 4078//4899 4079//4899 +f 3912//4899 4079//4899 3913//4899 +f 3914//4900 3933//4900 4080//4900 +f 3914//4901 4081//4901 3915//4901 +f 3914//4901 4080//4901 4081//4901 +f 3912//4902 3916//4902 4078//4902 +f 3916//4903 3924//4903 4082//4903 +f 3915//4904 4083//4904 3917//4904 +f 3915//4904 4081//4904 4083//4904 +f 3916//4902 4082//4902 4078//4902 +f 3920//4905 4084//4905 4059//4905 +f 3920//4906 3966//4906 4084//4906 +f 3965//4907 4060//4907 4085//4907 +f 3965//4908 4085//4908 4032//4908 +f 4048//4909 4086//4909 4087//4909 +f 4048//4910 4087//4910 4088//4910 +f 4048//4911 4088//4911 4049//4911 +f 3996//4912 4074//4912 4061//4912 +f 4048//4913 4062//4913 4086//4913 +f 3493//4914 4089//4914 4073//4914 +f 3493//4915 3530//4915 4089//4915 +f 3529//4916 4090//4916 3593//4916 +f 3529//4917 4057//4917 4090//4917 +f 4008//4918 4007//4918 4091//4918 +f 4008//4919 4091//4919 3588//4919 +f 3548//4920 4092//4920 3987//4920 +f 3548//4920 3790//4920 4092//4920 +f 3541//4750 3986//4750 4093//4750 +f 3541//4921 4093//4921 3791//4921 +f 4050//4922 4049//4922 4025//4922 +f 3800//4923 4094//4923 4070//4923 +f 3800//4924 3836//4924 4094//4924 +f 3866//4925 4095//4925 4096//4925 +f 3866//4926 3775//4926 4095//4926 +f 3866//4926 3774//4926 3775//4926 +f 3866//4927 3773//4927 3774//4927 +f 3866//4928 4096//4928 4097//4928 +f 3837//4929 3889//4929 4098//4929 +f 3837//4930 4098//4930 4099//4930 +f 3837//4931 4099//4931 3562//4931 +f 3890//4932 3888//4932 4100//4932 +f 3890//4933 4100//4933 4101//4933 +f 3887//4934 3886//4934 4102//4934 +f 3887//4935 4102//4935 4103//4935 +f 3888//4936 3887//4936 4103//4936 +f 3888//4937 4103//4937 4100//4937 +f 3885//4938 3884//4938 4104//4938 +f 3885//4939 4104//4939 4105//4939 +f 3886//4940 3885//4940 4105//4940 +f 3886//4941 4105//4941 4102//4941 +f 3883//4942 3882//4942 4106//4942 +f 3883//4943 4106//4943 4107//4943 +f 3884//4944 3883//4944 4107//4944 +f 3884//4945 4107//4945 4104//4945 +f 3881//4946 3880//4946 4108//4946 +f 3881//4947 4108//4947 4109//4947 +f 3882//4948 3881//4948 4109//4948 +f 3882//4949 4109//4949 4106//4949 +f 3879//4950 3878//4950 4110//4950 +f 3880//4950 3879//4950 4110//4950 +f 3880//4951 4110//4951 4108//4951 +f 3877//4952 3876//4952 4111//4952 +f 3877//4953 4111//4953 4112//4953 +f 3878//4954 3877//4954 4112//4954 +f 3878//4955 4112//4955 4110//4955 +f 3875//4956 3874//4956 4113//4956 +f 3875//4957 4113//4957 4114//4957 +f 3876//4958 3875//4958 4114//4958 +f 3876//4959 4114//4959 4111//4959 +f 3873//4960 3872//4960 4115//4960 +f 3873//4961 4115//4961 4116//4961 +f 3874//4962 3873//4962 4116//4962 +f 3874//4963 4116//4963 4113//4963 +f 3871//4964 3870//4964 4117//4964 +f 3871//4965 4117//4965 4118//4965 +f 3872//4966 3871//4966 4118//4966 +f 3872//4967 4118//4967 4115//4967 +f 3869//4968 3868//4968 4119//4968 +f 3869//4969 4119//4969 4120//4969 +f 3870//4970 3869//4970 4120//4970 +f 3870//4971 4120//4971 4117//4971 +f 3868//4972 3867//4972 4121//4972 +f 3868//4973 4121//4973 4119//4973 +f 3867//4974 3866//4974 4097//4974 +f 3867//4975 4097//4975 4121//4975 +f 3889//4976 3890//4976 4101//4976 +f 3889//4977 4101//4977 4098//4977 +f 3865//4978 4122//4978 3905//4978 +f 3865//4979 4123//4979 4122//4979 +f 3865//4980 3864//4980 4123//4980 +f 3864//4981 4124//4981 4123//4981 +f 3864//4982 3863//4982 4124//4982 +f 3863//4983 4125//4983 4124//4983 +f 3863//4984 3862//4984 4125//4984 +f 3862//4985 4126//4985 4125//4985 +f 3862//4986 3861//4986 4126//4986 +f 3861//4987 4127//4987 4126//4987 +f 3861//4988 3860//4988 4127//4988 +f 3860//4989 4128//4989 4127//4989 +f 3860//4990 3859//4990 4128//4990 +f 3859//4991 4129//4991 4128//4991 +f 3859//4992 3858//4992 4129//4992 +f 3858//4993 4130//4993 4129//4993 +f 3858//4994 3857//4994 4130//4994 +f 3857//4995 4131//4995 4130//4995 +f 3857//4996 3856//4996 4131//4996 +f 3856//4997 4132//4997 4131//4997 +f 3856//4998 3855//4998 4132//4998 +f 3855//4999 4133//4999 4132//4999 +f 3855//5000 3854//5000 4133//5000 +f 3854//5001 4134//5001 4133//5001 +f 3854//5002 3853//5002 4134//5002 +f 3853//5003 4135//5003 4134//5003 +f 3853//5004 3852//5004 4135//5004 +f 3852//5005 4136//5005 4135//5005 +f 3852//5006 3851//5006 4136//5006 +f 3851//5007 4137//5007 4136//5007 +f 3851//5008 3850//5008 4137//5008 +f 3850//5009 4138//5009 4137//5009 +f 3850//5010 3849//5010 4138//5010 +f 3849//5011 4139//5011 4138//5011 +f 3849//5012 3848//5012 4139//5012 +f 3848//5013 4140//5013 4139//5013 +f 3848//5014 3847//5014 4140//5014 +f 3847//5015 4141//5015 4140//5015 +f 3847//5016 3846//5016 4141//5016 +f 3846//5017 4142//5017 4141//5017 +f 3846//5018 3845//5018 4142//5018 +f 3845//5019 4143//5019 4142//5019 +f 3845//5020 3844//5020 4143//5020 +f 3844//5021 4144//5021 4143//5021 +f 3844//5022 3843//5022 4144//5022 +f 3843//5023 4145//5023 4144//5023 +f 3843//5024 3842//5024 4145//5024 +f 3842//5025 4146//5025 4145//5025 +f 3842//5026 3841//5026 4146//5026 +f 3841//5027 4147//5027 4146//5027 +f 3841//5028 3840//5028 4147//5028 +f 3840//5029 4148//5029 4147//5029 +f 3840//5030 3839//5030 4148//5030 +f 3839//5031 4149//5031 4148//5031 +f 3839//5032 3838//5032 4149//5032 +f 3838//5033 3614//5033 4149//5033 +f 3614//5034 3615//5034 4149//5034 +f 3562//5035 4099//5035 3563//5035 +f 3905//5036 4122//5036 3906//5036 +f 3563//5037 4099//5037 4150//5037 +f 3563//5038 4150//5038 3556//5038 +f 3924//5039 3942//5039 4151//5039 +f 3924//4903 4151//4903 4082//4903 +f 3917//5040 4152//5040 3923//5040 +f 3917//5040 4083//5040 4152//5040 +f 3906//5041 4122//5041 3907//5041 +f 4049//4922 4088//4922 4025//4922 +f 4074//5042 4153//5042 4061//5042 +f 4074//5043 4027//5043 4153//5043 +f 3933//4900 4154//4900 4080//4900 +f 3933//5044 3978//5044 4154//5044 +f 3913//5045 4079//5045 4155//5045 +f 3913//5045 4155//5045 3934//5045 +f 3530//5046 4156//5046 4089//5046 +f 3530//5047 3554//5047 4156//5047 +f 3957//4858 4157//4858 4054//4858 +f 3828//5048 4055//5048 4158//5048 +f 3828//5048 4158//5048 3958//5048 +f 3957//5049 3983//5049 4157//5049 +f 3977//5050 4159//5050 3978//5050 +f 3784//5051 3979//5051 4160//5051 +f 3784//5051 4160//5051 3804//5051 +f 3977//5052 4054//5052 4159//5052 +f 3966//5053 4161//5053 4084//5053 +f 3966//5054 3985//5054 4161//5054 +f 4153//5055 4162//5055 4061//5055 +f 4153//5056 4027//5056 4162//5056 +f 3967//4898 4163//4898 4077//4898 +f 3967//5057 3984//5057 4163//5057 +f 3930//5058 4164//5058 3968//5058 +f 3930//5058 4075//5058 4164//5058 +f 3942//5039 4165//5039 4151//5039 +f 3923//5059 4166//5059 3943//5059 +f 3923//5059 4152//5059 4166//5059 +f 3942//5060 4038//5060 4165//5060 +f 3922//5061 4069//5061 4167//5061 +f 3836//5062 4168//5062 4094//5062 +f 3836//5063 3921//5063 4168//5063 +f 3922//5064 4167//5064 3972//5064 +f 3554//5065 4169//5065 4156//5065 +f 3554//5066 3594//5066 4169//5066 +f 3593//5067 4170//5067 3734//5067 +f 3593//5068 4090//5068 4170//5068 +f 4062//5069 4171//5069 4086//5069 +f 3989//5070 4172//5070 4072//5070 +f 3989//5071 4061//5071 4172//5071 +f 4062//5072 4071//5072 4171//5072 +f 4088//5073 4087//5073 4025//5073 +f 3968//5074 4173//5074 3983//5074 +f 3968//5074 4164//5074 4173//5074 +f 3984//5075 3958//5075 4174//5075 +f 3984//5057 4174//5057 4163//5057 +f 4028//5076 4175//5076 4029//5076 +f 4028//4841 4077//4841 4175//4841 +f 3910//4842 4030//4842 4076//4842 +f 3985//5077 4176//5077 4161//5077 +f 3985//5078 4033//5078 4176//5078 +f 4032//5079 4085//5079 4177//5079 +f 4032//5080 4177//5080 4071//5080 +f 3958//5075 4158//5075 4174//5075 +f 3983//5049 4173//5049 4157//5049 +f 3921//5081 4178//5081 4168//5081 +f 3921//5082 3944//5082 4178//5082 +f 3824//5083 4179//5083 4030//5083 +f 3824//5083 4180//5083 4179//5083 +f 4029//5084 4175//5084 4181//5084 +f 4029//4830 4181//4830 4036//4830 +f 3824//4831 3830//4831 4180//4831 +f 3546//5085 3780//5085 4182//5085 +f 3344//5086 4183//5086 3547//5086 +f 3344//5086 4066//5086 4183//5086 +f 3546//4881 4182//4881 4065//4881 +f 3978//5087 4159//5087 4184//5087 +f 3934//5088 4155//5088 4185//5088 +f 3934//5089 4185//5089 3979//5089 +f 3978//5044 4184//5044 4154//5044 +f 4150//5037 4099//5037 4186//5037 +f 4150//5038 4186//5038 3556//5038 +f 3556//5090 4186//5090 4187//5090 +f 3556//5091 4187//5091 4188//5091 +f 3556//5091 4188//5091 4189//5091 +f 3556//5092 4189//5092 4190//5092 +f 3556//5093 4190//5093 3555//5093 +f 3555//5094 4190//5094 4191//5094 +f 3555//5095 4192//5095 3564//5095 +f 3555//5095 4191//5095 4192//5095 +f 3564//5096 4193//5096 3567//5096 +f 3564//5096 4192//5096 4193//5096 +f 3625//5097 3710//5097 4017//5097 +f 4162//5098 4194//5098 4061//5098 +f 4162//5099 4027//5099 4194//5099 +f 3615//5100 3616//5100 4149//5100 +f 3567//5101 4195//5101 3572//5101 +f 3567//5101 4193//5101 4195//5101 +f 3972//5102 4196//5102 3998//5102 +f 3944//5103 4197//5103 4178//5103 +f 3944//5104 3971//5104 4197//5104 +f 3972//5105 4167//5105 4196//5105 +f 3572//5106 4198//5106 3581//5106 +f 3572//5106 4195//5106 4198//5106 +f 4037//5107 4199//5107 4038//5107 +f 3827//5108 4039//5108 4052//5108 +f 4037//5109 4053//5109 4199//5109 +f 4091//5110 4200//5110 4201//5110 +f 4091//5111 4201//5111 3588//5111 +f 4091//4918 4007//4918 4200//4918 +f 4086//5112 4171//5112 4202//5112 +f 4086//5113 4202//5113 4203//5113 +f 4086//5114 4203//5114 4204//5114 +f 4086//5115 4204//5115 4087//5115 +f 4061//5116 4194//5116 4172//5116 +f 3594//5117 4205//5117 4169//5117 +f 3594//5118 3735//5118 4205//5118 +f 3734//5119 4206//5119 3787//5119 +f 3734//5120 4170//5120 4206//5120 +f 3616//5100 4207//5100 4149//5100 +f 3616//5121 3617//5121 4207//5121 +f 3900//5122 3902//5122 3899//5122 +f 3901//5123 4208//5123 590//5123 +f 3901//5124 3896//5124 4208//5124 +f 3588//5125 4201//5125 4209//5125 +f 3588//5125 4209//5125 3618//5125 +f 3617//5126 4210//5126 4207//5126 +f 3617//5126 4211//5126 4210//5126 +f 3617//5127 4212//5127 4211//5127 +f 3617//5128 4213//5128 4212//5128 +f 3617//5129 4214//5129 4213//5129 +f 3617//5130 3634//5130 4214//5130 +f 3971//5131 4215//5131 4197//5131 +f 3971//5132 3982//5132 4215//5132 +f 4017//5097 3710//5097 4016//5097 +f 3581//5133 4216//5133 3624//5133 +f 3581//5133 4198//5133 4216//5133 +f 4087//5134 4204//5134 4025//5134 +f 4194//5135 4217//5135 4172//5135 +f 4194//5136 4027//5136 4217//5136 +f 3618//5137 4209//5137 4218//5137 +f 3618//5137 4218//5137 3635//5137 +f 3634//5130 4219//5130 4214//5130 +f 3634//5138 3714//5138 4219//5138 +f 4036//5139 4220//5139 4068//5139 +f 4036//4830 4181//4830 4220//4830 +f 3830//4831 4067//4831 4180//4831 +f 4038//5140 4199//5140 4221//5140 +f 3943//5141 4222//5141 4039//5141 +f 3943//5142 4166//5142 4222//5142 +f 4038//5060 4221//5060 4165//5060 +f 3982//5143 4223//5143 4215//5143 +f 3982//5144 3997//5144 4223//5144 +f 3998//5145 4196//5145 4224//5145 +f 3998//5146 4224//5146 4010//5146 +f 3951//4778 4225//4778 4005//4778 +f 3951//5147 4068//5147 4225//5147 +f 3592//5148 4226//5148 3952//5148 +f 3592//5148 4006//5148 4226//5148 +f 4033//5149 4227//5149 4176//5149 +f 4033//5150 4072//5150 4227//5150 +f 4071//5151 4177//5151 4228//5151 +f 4071//5152 4228//5152 4171//5152 +f 4010//5153 4224//5153 4013//5153 +f 3997//5154 4229//5154 4223//5154 +f 3997//5155 4011//5155 4229//5155 +f 3710//5156 4230//5156 4016//5156 +f 3710//5157 3747//5157 4230//5157 +f 3624//5158 4231//5158 3711//5158 +f 3624//5158 4216//5158 4231//5158 +f 3635//5159 4218//5159 4232//5159 +f 3635//5159 4232//5159 3715//5159 +f 3714//5160 3736//5160 4233//5160 +f 3714//5138 4233//5138 4219//5138 +f 4013//5161 4234//5161 4035//5161 +f 4013//5162 4224//5162 4234//5162 +f 4011//5163 4235//5163 4229//5163 +f 4011//5164 4012//5164 4235//5164 +f 4035//5165 4236//5165 4060//5165 +f 4035//5166 4234//5166 4236//5166 +f 4012//5167 4237//5167 4235//5167 +f 4012//5168 4034//5168 4237//5168 +f 3715//5169 4232//5169 4238//5169 +f 3715//5169 4238//5169 3737//5169 +f 3736//5160 4239//5160 4233//5160 +f 3736//5170 3755//5170 4239//5170 +f 3735//5171 4240//5171 4205//5171 +f 3735//5172 3894//5172 4240//5172 +f 3787//5173 4241//5173 3893//5173 +f 3787//5174 4206//5174 4241//5174 +f 4016//5175 4230//5175 4014//5175 +f 4200//5176 4007//5176 4201//5176 +f 4186//5177 4099//5177 4187//5177 +f 3747//5178 3770//5178 4242//5178 +f 3747//5157 4242//5157 4230//5157 +f 3711//5179 4243//5179 3748//5179 +f 3711//5179 4231//5179 4243//5179 +f 3907//5180 4244//5180 3908//5180 +f 3907//5181 4122//5181 4244//5181 +f 3737//5182 4238//5182 4245//5182 +f 3737//5182 4245//5182 3756//5182 +f 3755//5183 3788//5183 4246//5183 +f 3755//5170 4246//5170 4239//5170 +f 4060//5184 4247//5184 4085//5184 +f 4060//5185 4236//5185 4247//5185 +f 4034//5186 4248//5186 4237//5186 +f 4034//5187 4059//5187 4248//5187 +f 3791//5188 4249//5188 4053//5188 +f 3791//4921 4093//4921 4249//4921 +f 3790//5189 4250//5189 4092//5189 +f 3790//5189 4052//5189 4250//5189 +f 4072//5190 4251//5190 4227//5190 +f 4072//5191 4172//5191 4251//5191 +f 4171//5192 4228//5192 4252//5192 +f 4171//5193 4252//5193 4202//5193 +f 4204//5194 4203//5194 4025//5194 +f 3770//5195 3904//5195 4253//5195 +f 3770//5178 4253//5178 4242//5178 +f 3748//5196 4095//5196 3775//5196 +f 3748//5197 4096//5197 4095//5197 +f 3748//5197 4254//5197 4096//5197 +f 3748//5198 4255//5198 4254//5198 +f 3748//5199 4256//5199 4255//5199 +f 3748//5200 4243//5200 4256//5200 +f 4217//5201 4257//5201 4172//5201 +f 4217//5202 4027//5202 4257//5202 +f 3780//5085 4258//5085 4182//5085 +f 3547//5203 4259//5203 3781//5203 +f 3547//5203 4183//5203 4259//5203 +f 3780//5204 4005//5204 4258//5204 +f 3756//5205 4245//5205 4260//5205 +f 3756//5205 4260//5205 3789//5205 +f 3788//5183 4261//5183 4246//5183 +f 3788//5206 3806//5206 4261//5206 +f 4175//5084 4262//5084 4181//5084 +f 4175//5207 4077//5207 4262//5207 +f 4030//5208 4263//5208 4076//5208 +f 4030//5208 4179//5208 4263//5208 +f 3893//5209 4264//5209 3955//5209 +f 3893//5210 4241//5210 4264//5210 +f 4054//5211 4157//5211 4265//5211 +f 3804//5212 4160//5212 4266//5212 +f 3804//5212 4266//5212 4055//5212 +f 4054//5052 4267//5052 4159//5052 +f 4054//5052 4265//5052 4267//5052 +f 4085//5213 4268//5213 4177//5213 +f 4085//5214 4247//5214 4268//5214 +f 4059//5215 4269//5215 4248//5215 +f 4059//5216 4084//5216 4269//5216 +f 4159//5217 4267//5217 4184//5217 +f 3979//5051 4185//5051 4160//5051 +f 4202//5218 4270//5218 4271//5218 +f 4202//5219 4271//5219 4272//5219 +f 4202//5220 4272//5220 4203//5220 +f 4172//5221 4257//5221 4251//5221 +f 4202//5222 4252//5222 4270//5222 +f 3789//5223 4260//5223 4273//5223 +f 3789//5223 4273//5223 3807//5223 +f 3806//5206 4274//5206 4261//5206 +f 3806//5224 3895//5224 4274//5224 +f 4244//5180 4275//5180 3908//5180 +f 4244//5181 4122//5181 4275//5181 +f 4207//5225 4210//5225 4149//5225 +f 4084//5226 4276//5226 4269//5226 +f 4084//5227 4161//5227 4276//5227 +f 4203//5194 4272//5194 4025//5194 +f 4257//5228 4277//5228 4251//5228 +f 4257//5229 4027//5229 4277//5229 +f 3952//5230 4278//5230 4067//5230 +f 3952//5231 4226//5231 4278//5231 +f 4068//5232 4220//5232 4279//5232 +f 4068//5147 4279//5147 4225//5147 +f 3807//5233 4273//5233 4280//5233 +f 3807//5233 4280//5233 3896//5233 +f 3895//5234 3899//5234 4281//5234 +f 3895//5224 4281//5224 4274//5224 +f 4076//5235 4282//5235 4075//5235 +f 4076//5235 4263//5235 4282//5235 +f 4077//5236 4163//5236 4283//5236 +f 4077//5207 4283//5207 4262//5207 +f 3896//5237 4280//5237 4284//5237 +f 3896//5237 4284//5237 4208//5237 +f 3899//5234 4285//5234 4281//5234 +f 3899//5238 3902//5238 4285//5238 +f 3902//5239 597//5239 4285//5239 +f 3904//5195 4286//5195 4253//5195 +f 3904//5240 3918//5240 4286//5240 +f 3908//5241 4275//5241 4287//5241 +f 3908//5241 4287//5241 4288//5241 +f 3908//5242 4288//5242 4289//5242 +f 3908//5243 4289//5243 4290//5243 +f 3908//5244 4291//5244 3909//5244 +f 3908//5244 4290//5244 4291//5244 +f 4208//5245 4284//5245 590//5245 +f 3894//5246 4292//5246 4240//5246 +f 3894//5247 3956//5247 4292//5247 +f 3955//5248 4293//5248 4069//5248 +f 3955//5249 4264//5249 4293//5249 +f 4078//5250 4294//5250 4295//5250 +f 4078//5250 4295//5250 4079//5250 +f 4080//5251 4154//5251 4296//5251 +f 4080//5252 4297//5252 4081//5252 +f 4080//5252 4296//5252 4297//5252 +f 4078//5253 4082//5253 4294//5253 +f 4082//5254 4151//5254 4298//5254 +f 4081//5255 4299//5255 4083//5255 +f 4081//5255 4297//5255 4299//5255 +f 4082//5253 4298//5253 4294//5253 +f 3918//5256 3927//5256 4300//5256 +f 3918//5240 4300//5240 4286//5240 +f 3909//5257 4291//5257 3929//5257 +f 4177//5258 4301//5258 4228//5258 +f 4177//5259 4268//5259 4301//5259 +f 4161//5260 4302//5260 4276//5260 +f 4161//5261 4176//5261 4302//5261 +f 4199//5262 4303//5262 4221//5262 +f 4039//5108 4304//5108 4052//5108 +f 4039//5108 4222//5108 4304//5108 +f 4199//5109 4305//5109 4303//5109 +f 4199//5109 4053//5109 4305//5109 +f 4083//5263 4306//5263 4152//5263 +f 4083//5264 4299//5264 4306//5264 +f 4151//5265 4165//5265 4307//5265 +f 4151//5254 4307//5254 4298//5254 +f 4157//5211 4308//5211 4265//5211 +f 4055//5266 4266//5266 4309//5266 +f 4055//5266 4309//5266 4158//5266 +f 4157//5267 4173//5267 4308//5267 +f 4163//5236 4310//5236 4283//5236 +f 4163//5268 4174//5268 4310//5268 +f 4075//5269 4311//5269 4164//5269 +f 4075//5269 4282//5269 4311//5269 +f 4154//5251 4312//5251 4296//5251 +f 4154//5270 4184//5270 4312//5270 +f 4079//5271 4295//5271 4313//5271 +f 4079//5271 4313//5271 4155//5271 +f 4272//5272 4271//5272 4025//5272 +f 4277//5273 4314//5273 4251//5273 +f 4277//5274 4027//5274 4314//5274 +f 4165//5275 4315//5275 4307//5275 +f 4152//5276 4306//5276 4166//5276 +f 4165//5277 4221//5277 4315//5277 +f 4164//5278 4316//5278 4173//5278 +f 4164//5278 4311//5278 4316//5278 +f 4174//5279 4158//5279 4317//5279 +f 4174//5268 4317//5268 4310//5268 +f 4158//5279 4309//5279 4317//5279 +f 4173//5267 4316//5267 4308//5267 +f 3956//5280 4318//5280 4292//5280 +f 3956//5281 4021//5281 4318//5281 +f 4187//5282 4099//5282 4188//5282 +f 4014//5283 4230//5283 4015//5283 +f 4007//5284 4319//5284 4201//5284 +f 4007//5285 4009//5285 4319//5285 +f 4228//5286 4320//5286 4252//5286 +f 4228//5287 4301//5287 4320//5287 +f 4176//5288 4321//5288 4302//5288 +f 4176//5289 4227//5289 4321//5289 +f 4319//5290 4322//5290 4323//5290 +f 4319//5291 4324//5291 4322//5291 +f 4319//5292 4009//5292 4324//5292 +f 4319//5284 4323//5284 4201//5284 +f 4155//5293 4313//5293 4325//5293 +f 4155//5294 4325//5294 4185//5294 +f 4184//5295 4267//5295 4326//5295 +f 4184//5270 4326//5270 4312//5270 +f 4275//5296 4122//5296 4287//5296 +f 4015//5297 4327//5297 4023//5297 +f 4015//5283 4230//5283 4327//5283 +f 4009//5298 4328//5298 4324//5298 +f 4009//5299 4018//5299 4328//5299 +f 4018//5300 4022//5300 4328//5300 +f 4023//5301 4329//5301 4330//5301 +f 4023//5302 4327//5302 4329//5302 +f 4023//5303 4330//5303 4040//5303 +f 4005//5304 4225//5304 4331//5304 +f 3781//5305 4332//5305 4006//5305 +f 3781//5305 4259//5305 4332//5305 +f 4005//5204 4331//5204 4258//5204 +f 4220//5306 4333//5306 4279//5306 +f 4220//5307 4181//5307 4333//5307 +f 4067//5308 4278//5308 4180//5308 +f 4221//5309 4303//5309 4334//5309 +f 4166//5310 4335//5310 4222//5310 +f 4166//5310 4336//5310 4335//5310 +f 4166//5276 4306//5276 4336//5276 +f 4221//5277 4334//5277 4315//5277 +f 4021//5311 4337//5311 4318//5311 +f 4021//5312 4070//5312 4337//5312 +f 4069//5313 4338//5313 4167//5313 +f 4069//5314 4293//5314 4338//5314 +f 4252//5315 4339//5315 4270//5315 +f 4252//5316 4320//5316 4339//5316 +f 4227//5317 4340//5317 4321//5317 +f 4227//5318 4251//5318 4340//5318 +f 4070//5319 4341//5319 4337//5319 +f 4070//5320 4094//5320 4341//5320 +f 4122//5321 4342//5321 4287//5321 +f 4097//5322 4255//5322 4256//5322 +f 4097//5323 4254//5323 4255//5323 +f 4097//5324 4096//5324 4254//5324 +f 4097//5325 4256//5325 4343//5325 +f 4134//5326 4344//5326 4345//5326 +f 4134//5327 4135//5327 4344//5327 +f 4142//5328 4346//5328 4347//5328 +f 4142//5329 4143//5329 4346//5329 +f 4099//5330 4348//5330 4188//5330 +f 4146//5331 4349//5331 4350//5331 +f 4146//5332 4147//5332 4349//5332 +f 4148//5333 4351//5333 4352//5333 +f 4148//5334 4149//5334 4351//5334 +f 4149//5335 4210//5335 4351//5335 +f 4147//5336 4352//5336 4349//5336 +f 4147//5337 4148//5337 4352//5337 +f 4144//5338 4353//5338 4354//5338 +f 4144//5339 4145//5339 4353//5339 +f 4145//5340 4350//5340 4353//5340 +f 4145//5341 4146//5341 4350//5341 +f 4143//5342 4354//5342 4346//5342 +f 4143//5343 4144//5343 4354//5343 +f 4138//5344 4355//5344 4356//5344 +f 4138//5345 4139//5345 4355//5345 +f 4140//5346 4357//5346 4358//5346 +f 4140//5347 4141//5347 4357//5347 +f 4141//5348 4347//5348 4357//5348 +f 4141//5349 4142//5349 4347//5349 +f 4139//5350 4358//5350 4355//5350 +f 4139//5351 4140//5351 4358//5351 +f 4136//5352 4359//5352 4360//5352 +f 4136//5353 4137//5353 4359//5353 +f 4137//5354 4356//5354 4359//5354 +f 4137//5355 4138//5355 4356//5355 +f 4135//5356 4360//5356 4344//5356 +f 4135//5357 4136//5357 4360//5357 +f 4126//5358 4361//5358 4362//5358 +f 4126//5359 4127//5359 4361//5359 +f 4130//5360 4363//5360 4364//5360 +f 4130//5361 4131//5361 4363//5361 +f 4132//5362 4365//5362 4366//5362 +f 4132//5363 4133//5363 4365//5363 +f 4133//5364 4345//5364 4365//5364 +f 4133//5365 4134//5365 4345//5365 +f 4131//5366 4366//5366 4363//5366 +f 4131//5367 4132//5367 4366//5367 +f 4128//5368 4367//5368 4368//5368 +f 4128//5369 4129//5369 4367//5369 +f 4129//5370 4364//5370 4367//5370 +f 4129//5371 4130//5371 4364//5371 +f 4127//5372 4368//5372 4361//5372 +f 4127//5373 4128//5373 4368//5373 +f 4123//5374 4369//5374 4370//5374 +f 4123//5375 4124//5375 4369//5375 +f 4124//5376 4371//5376 4369//5376 +f 4124//5377 4125//5377 4371//5377 +f 4125//5378 4362//5378 4371//5378 +f 4125//5379 4126//5379 4362//5379 +f 4122//5380 4370//5380 4342//5380 +f 4122//5381 4123//5381 4370//5381 +f 4099//5382 4098//5382 4372//5382 +f 4099//5383 4372//5383 4348//5383 +f 4121//5384 4097//5384 4343//5384 +f 4121//5385 4343//5385 4373//5385 +f 4119//5386 4121//5386 4373//5386 +f 4119//5387 4373//5387 4374//5387 +f 4120//5388 4119//5388 4374//5388 +f 4120//5389 4374//5389 4375//5389 +f 4117//5390 4120//5390 4375//5390 +f 4117//5391 4375//5391 4376//5391 +f 4118//5392 4117//5392 4376//5392 +f 4118//5393 4376//5393 4377//5393 +f 4115//5394 4118//5394 4377//5394 +f 4115//5395 4377//5395 4378//5395 +f 4116//5396 4115//5396 4378//5396 +f 4116//5397 4378//5397 4379//5397 +f 4113//5398 4116//5398 4379//5398 +f 4113//5399 4379//5399 4380//5399 +f 4114//5400 4113//5400 4380//5400 +f 4114//5401 4380//5401 4381//5401 +f 4111//5402 4114//5402 4381//5402 +f 4111//5403 4381//5403 4382//5403 +f 4111//5404 4382//5404 4383//5404 +f 4112//5405 4111//5405 4383//5405 +f 4112//5406 4383//5406 4384//5406 +f 4110//5407 4112//5407 4384//5407 +f 4110//5408 4384//5408 4385//5408 +f 4108//5409 4110//5409 4385//5409 +f 4108//5410 4385//5410 4386//5410 +f 4109//5411 4108//5411 4386//5411 +f 4109//5412 4386//5412 4387//5412 +f 4106//5413 4109//5413 4387//5413 +f 4106//5414 4387//5414 4388//5414 +f 4107//5415 4106//5415 4388//5415 +f 4107//5416 4388//5416 4389//5416 +f 4104//5417 4107//5417 4389//5417 +f 4104//5418 4389//5418 4390//5418 +f 4105//5419 4104//5419 4390//5419 +f 4105//5420 4390//5420 4391//5420 +f 4102//5421 4105//5421 4391//5421 +f 4102//5422 4391//5422 4392//5422 +f 4103//5423 4102//5423 4392//5423 +f 4103//5424 4392//5424 4393//5424 +f 4100//5425 4103//5425 4393//5425 +f 4100//5426 4393//5426 4394//5426 +f 4101//5427 4100//5427 4394//5427 +f 4101//5428 4394//5428 4395//5428 +f 4098//5429 4101//5429 4395//5429 +f 4098//5430 4395//5430 4372//5430 +f 4210//5431 4211//5431 4351//5431 +f 4287//5432 4342//5432 4288//5432 +f 4188//5433 4348//5433 4189//5433 +f 4053//5188 4249//5188 4396//5188 +f 4052//5434 4397//5434 4250//5434 +f 4052//5434 4304//5434 4397//5434 +f 4053//5435 4396//5435 4305//5435 +f 4270//5436 4398//5436 4399//5436 +f 4270//5437 4399//5437 4400//5437 +f 4270//5438 4400//5438 4271//5438 +f 4270//5439 4339//5439 4398//5439 +f 4251//5440 4314//5440 4340//5440 +f 4094//5441 4401//5441 4341//5441 +f 4094//5442 4168//5442 4401//5442 +f 4167//5443 4402//5443 4196//5443 +f 4167//5444 4338//5444 4402//5444 +f 4211//5445 4213//5445 4351//5445 +f 4211//5446 4212//5446 4213//5446 +f 4271//5447 4400//5447 4025//5447 +f 4314//5448 4403//5448 4340//5448 +f 4314//5449 4027//5449 4403//5449 +f 4168//5450 4404//5450 4401//5450 +f 4168//5451 4178//5451 4404//5451 +f 4185//5452 4325//5452 4405//5452 +f 4185//5452 4405//5452 4160//5452 +f 4267//5453 4406//5453 4326//5453 +f 4267//5454 4407//5454 4406//5454 +f 4267//5455 4265//5455 4407//5455 +f 4178//5456 4408//5456 4404//5456 +f 4178//5457 4197//5457 4408//5457 +f 4196//5458 4409//5458 4224//5458 +f 4196//5459 4402//5459 4409//5459 +f 4197//5460 4410//5460 4408//5460 +f 4197//5461 4215//5461 4410//5461 +f 4215//5462 4411//5462 4410//5462 +f 4215//5463 4223//5463 4411//5463 +f 4224//5464 4412//5464 4234//5464 +f 4224//5465 4409//5465 4412//5465 +f 4181//5466 4262//5466 4413//5466 +f 4180//5467 4414//5467 4179//5467 +f 4180//5467 4415//5467 4414//5467 +f 4181//5307 4413//5307 4333//5307 +f 4180//5308 4278//5308 4415//5308 +f 4223//5468 4416//5468 4411//5468 +f 4223//5469 4229//5469 4416//5469 +f 4400//5470 4399//5470 4025//5470 +f 4229//5471 4417//5471 4416//5471 +f 4229//5472 4235//5472 4417//5472 +f 4234//5473 4412//5473 4418//5473 +f 4234//5474 4418//5474 4419//5474 +f 4234//5475 4419//5475 4236//5475 +f 4235//5476 4420//5476 4417//5476 +f 4235//5477 4237//5477 4420//5477 +f 4236//5478 4419//5478 4421//5478 +f 4236//5479 4421//5479 4247//5479 +f 4303//5309 4422//5309 4334//5309 +f 4222//5480 4423//5480 4304//5480 +f 4222//5480 4335//5480 4423//5480 +f 4303//5481 4305//5481 4422//5481 +f 4237//5482 4424//5482 4420//5482 +f 4237//5483 4248//5483 4424//5483 +f 4247//5484 4421//5484 4425//5484 +f 4247//5485 4425//5485 4268//5485 +f 4225//5304 4426//5304 4331//5304 +f 4225//5486 4279//5486 4426//5486 +f 4006//5487 4427//5487 4226//5487 +f 4006//5487 4332//5487 4427//5487 +f 4189//5488 4348//5488 4190//5488 +f 4327//5489 4230//5489 4329//5489 +f 4323//5490 4322//5490 4428//5490 +f 4323//5491 4428//5491 4201//5491 +f 4288//5492 4342//5492 4289//5492 +f 4248//5493 4429//5493 4424//5493 +f 4248//5494 4269//5494 4429//5494 +f 4268//5495 4425//5495 4430//5495 +f 4268//5496 4430//5496 4301//5496 +f 4269//5497 4431//5497 4429//5497 +f 4269//5498 4276//5498 4431//5498 +f 4262//5466 4432//5466 4413//5466 +f 4262//5499 4283//5499 4432//5499 +f 4179//5500 4433//5500 4263//5500 +f 4179//5500 4414//5500 4433//5500 +f 4265//5501 4308//5501 4434//5501 +f 4160//5502 4405//5502 4435//5502 +f 4160//5502 4435//5502 4266//5502 +f 4265//5455 4434//5455 4407//5455 +f 4276//5503 4436//5503 4431//5503 +f 4276//5504 4302//5504 4436//5504 +f 4301//5505 4430//5505 4437//5505 +f 4301//5506 4437//5506 4320//5506 +f 4226//5507 4438//5507 4278//5507 +f 4226//5508 4427//5508 4438//5508 +f 4279//5509 4333//5509 4439//5509 +f 4279//5486 4439//5486 4426//5486 +f 4263//5510 4440//5510 4282//5510 +f 4263//5510 4433//5510 4440//5510 +f 4283//5511 4310//5511 4441//5511 +f 4283//5499 4441//5499 4432//5499 +f 4294//5512 4442//5512 4443//5512 +f 4294//5512 4443//5512 4295//5512 +f 4296//5513 4312//5513 4444//5513 +f 4296//5514 4445//5514 4297//5514 +f 4296//5514 4444//5514 4445//5514 +f 4294//5515 4298//5515 4442//5515 +f 4298//5516 4307//5516 4446//5516 +f 4297//5517 4447//5517 4299//5517 +f 4297//5517 4445//5517 4447//5517 +f 4298//5515 4446//5515 4442//5515 +f 4403//5518 4448//5518 4340//5518 +f 4403//5519 4027//5519 4448//5519 +f 4307//5520 4315//5520 4449//5520 +f 4307//5516 4449//5516 4446//5516 +f 4299//5521 4450//5521 4306//5521 +f 4299//5522 4447//5522 4450//5522 +f 4308//5501 4451//5501 4434//5501 +f 4266//5523 4435//5523 4452//5523 +f 4266//5523 4452//5523 4309//5523 +f 4308//5524 4316//5524 4451//5524 +f 4302//5525 4453//5525 4436//5525 +f 4302//5526 4321//5526 4453//5526 +f 4320//5527 4437//5527 4454//5527 +f 4320//5528 4454//5528 4339//5528 +f 4310//5511 4455//5511 4441//5511 +f 4310//5529 4317//5529 4455//5529 +f 4282//5530 4456//5530 4311//5530 +f 4282//5530 4440//5530 4456//5530 +f 4312//5513 4457//5513 4444//5513 +f 4312//5531 4326//5531 4457//5531 +f 4295//5532 4443//5532 4458//5532 +f 4295//5532 4458//5532 4313//5532 +f 4315//5533 4459//5533 4449//5533 +f 4306//5276 4450//5276 4336//5276 +f 4315//5277 4334//5277 4459//5277 +f 4311//5534 4460//5534 4316//5534 +f 4311//5534 4456//5534 4460//5534 +f 4317//5535 4309//5535 4461//5535 +f 4317//5529 4461//5529 4455//5529 +f 4309//5535 4452//5535 4461//5535 +f 4316//5524 4460//5524 4451//5524 +f 4313//5536 4458//5536 4325//5536 +f 4326//5531 4406//5531 4457//5531 +f 4321//5537 4462//5537 4453//5537 +f 4321//5538 4340//5538 4462//5538 +f 4339//5539 4454//5539 4463//5539 +f 4339//5540 4463//5540 4398//5540 +f 4333//5541 4464//5541 4439//5541 +f 4333//5307 4413//5307 4464//5307 +f 4278//5308 4438//5308 4415//5308 +f 4398//5542 4465//5542 4025//5542 +f 4398//5543 4025//5543 4466//5543 +f 4398//5544 4466//5544 4399//5544 +f 4340//5545 4448//5545 4462//5545 +f 4398//5546 4463//5546 4465//5546 +f 4399//5547 4466//5547 4025//5547 +f 4448//5548 4467//5548 4462//5548 +f 4448//5549 4027//5549 4467//5549 +f 4305//5550 4468//5550 4469//5550 +f 4305//5435 4396//5435 4468//5435 +f 4304//5551 4470//5551 4397//5551 +f 4304//5551 4423//5551 4470//5551 +f 4305//5481 4469//5481 4422//5481 +f 4190//5552 4348//5552 4471//5552 +f 4190//5553 4471//5553 4191//5553 +f 4329//5554 4230//5554 4330//5554 +f 4428//5555 4322//5555 4201//5555 +f 4289//5556 4472//5556 4290//5556 +f 4289//5557 4342//5557 4472//5557 +f 4467//5558 4473//5558 4462//5558 +f 4467//5559 4027//5559 4473//5559 +f 4468//5550 4474//5550 4469//5550 +f 4473//5560 4027//5560 4475//5560 +f 4473//5561 4475//5561 4462//5561 +f 4025//5562 4476//5562 4477//5562 +f 4025//5563 4477//5563 4478//5563 +f 4025//5564 4478//5564 4479//5564 +f 4025//5565 4479//5565 4480//5565 +f 4025//5566 4480//5566 4481//5566 +f 4025//5567 4481//5567 4482//5567 +f 4025//5568 4482//5568 4483//5568 +f 4025//5569 4483//5569 4484//5569 +f 4025//5570 4484//5570 4485//5570 +f 4025//5571 4485//5571 4486//5571 +f 4025//5572 4486//5572 4487//5572 +f 4025//5573 4487//5573 4488//5573 +f 4025//5574 4488//5574 4489//5574 +f 4025//5575 4489//5575 4490//5575 +f 4025//5576 4490//5576 4491//5576 +f 4025//5577 4491//5577 4027//5577 +f 4040//5578 4492//5578 4493//5578 +f 4040//5579 4494//5579 4492//5579 +f 4330//5580 4494//5580 4040//5580 +f 4040//5581 4493//5581 4495//5581 +f 4419//5582 4418//5582 4496//5582 +f 4421//5582 4419//5582 4496//5582 +f 4421//5583 4496//5583 4497//5583 +f 4454//5584 4437//5584 4498//5584 +f 4454//5585 4498//5585 4499//5585 +f 4463//5586 4454//5586 4499//5586 +f 4463//5587 4499//5587 4500//5587 +f 4430//5588 4425//5588 4501//5588 +f 4430//5589 4501//5589 4502//5589 +f 4437//5590 4430//5590 4502//5590 +f 4437//5591 4502//5591 4498//5591 +f 4425//5592 4421//5592 4497//5592 +f 4425//5593 4497//5593 4501//5593 +f 4264//5594 4241//5594 4503//5594 +f 4264//5595 4503//5595 4504//5595 +f 4402//5596 4338//5596 4505//5596 +f 4402//5597 4505//5597 4506//5597 +f 4412//5598 4409//5598 4507//5598 +f 4412//5599 4507//5599 4508//5599 +f 4418//5600 4412//5600 4508//5600 +f 4418//5601 4508//5601 4496//5601 +f 4409//5602 4402//5602 4506//5602 +f 4409//5603 4506//5603 4507//5603 +f 4338//5604 4293//5604 4509//5604 +f 4338//5605 4509//5605 4505//5605 +f 4293//5606 4264//5606 4504//5606 +f 4293//5607 4504//5607 4509//5607 +f 4090//5608 4057//5608 4510//5608 +f 4090//5609 4510//5609 4511//5609 +f 4206//5610 4170//5610 4512//5610 +f 4206//5611 4512//5611 4513//5611 +f 4241//5612 4206//5612 4513//5612 +f 4241//5613 4513//5613 4503//5613 +f 4170//5614 4090//5614 4511//5614 +f 4170//5615 4511//5615 4512//5615 +f 4041//5616 4495//5616 4514//5616 +f 4040//5617 4495//5617 4041//5617 +f 4041//5618 4514//5618 4515//5618 +f 4044//5619 4516//5619 4056//5619 +f 4056//5620 4516//5620 4517//5620 +f 4057//5621 4056//5621 4517//5621 +f 4057//5622 4517//5622 4510//5622 +f 4042//5623 4518//5623 4519//5623 +f 4042//5624 4043//5624 4518//5624 +f 4058//5625 4520//5625 4521//5625 +f 4058//5626 4064//5626 4520//5626 +f 4328//5627 4522//5627 4523//5627 +f 4328//5628 4022//5628 4522//5628 +f 597//552 4524//552 4525//552 +f 597//552 4526//552 4524//552 +f 597//552 4527//552 4526//552 +f 597//552 4528//552 4527//552 +f 597//552 4529//552 4528//552 +f 597//552 4530//552 4529//552 +f 597//552 4531//552 4530//552 +f 597//552 4532//552 4531//552 +f 597//552 4533//552 4532//552 +f 597//552 4534//552 4533//552 +f 597//552 4535//552 4534//552 +f 597//552 4536//552 4535//552 +f 597//552 4537//552 4536//552 +f 597//552 4538//552 4537//552 +f 597//552 4539//552 4538//552 +f 597//552 4540//552 4539//552 +f 597//552 4541//552 4540//552 +f 597//552 4542//552 4541//552 +f 597//552 4543//552 4542//552 +f 597//552 4544//552 4543//552 +f 597//552 4545//552 4544//552 +f 597//552 4546//552 4545//552 +f 597//552 4547//552 4546//552 +f 597//552 4548//552 4547//552 +f 597//552 4549//552 4548//552 +f 597//552 4550//552 4549//552 +f 597//552 4551//552 4550//552 +f 597//552 4552//552 4551//552 +f 597//552 4553//552 4552//552 +f 597//552 4554//552 4553//552 +f 597//552 4555//552 4554//552 +f 597//552 4556//552 4555//552 +f 597//552 4557//552 4556//552 +f 597//552 4558//552 4557//552 +f 597//552 4559//552 4558//552 +f 597//552 4560//552 4559//552 +f 597//552 4561//552 4560//552 +f 597//552 4562//552 4561//552 +f 597//552 4563//552 4562//552 +f 597//552 4564//552 4563//552 +f 597//552 4565//552 4564//552 +f 597//552 4566//552 4565//552 +f 597//552 4567//552 4566//552 +f 597//552 4568//552 4567//552 +f 597//552 4569//552 4568//552 +f 597//552 4570//552 4569//552 +f 597//552 4571//552 4570//552 +f 597//552 4572//552 4571//552 +f 597//552 4573//552 4572//552 +f 597//552 4574//552 4573//552 +f 597//552 4575//552 4574//552 +f 597//552 4576//552 4575//552 +f 597//552 4577//552 4576//552 +f 597//552 4578//552 4577//552 +f 597//552 590//552 4578//552 +f 590//552 4579//552 4578//552 +f 590//552 4580//552 4579//552 +f 590//552 4581//552 4580//552 +f 590//552 4582//552 4581//552 +f 590//552 4583//552 4582//552 +f 590//552 4584//552 4583//552 +f 590//552 4585//552 4584//552 +f 590//552 4586//552 4585//552 +f 590//552 4587//552 4586//552 +f 590//552 4588//552 4587//552 +f 590//552 4589//552 4588//552 +f 590//552 4590//552 4589//552 +f 590//552 4591//552 4590//552 +f 590//552 4592//552 4591//552 +f 590//552 4593//552 4592//552 +f 590//552 4594//552 4593//552 +f 590//552 4595//552 4594//552 +f 590//552 4596//552 4595//552 +f 590//552 4597//552 4596//552 +f 590//552 4598//552 4597//552 +f 590//552 4599//552 4598//552 +f 590//552 4600//552 4599//552 +f 590//552 4601//552 4600//552 +f 590//552 4602//552 4601//552 +f 590//552 4603//552 4602//552 +f 590//552 4604//552 4603//552 +f 590//552 4605//552 4604//552 +f 590//552 4606//552 4605//552 +f 590//552 4607//552 4606//552 +f 590//552 4608//552 4607//552 +f 590//552 4609//552 4608//552 +f 590//552 4610//552 4609//552 +f 590//552 4611//552 4610//552 +f 590//552 4612//552 4611//552 +f 590//552 4613//552 4612//552 +f 590//552 4614//552 4613//552 +f 590//552 4615//552 4614//552 +f 590//552 4616//552 4615//552 +f 590//552 4617//552 4616//552 +f 590//552 4618//552 4617//552 +f 590//552 4619//552 4618//552 +f 590//552 4620//552 4619//552 +f 590//552 4621//552 4620//552 +f 590//552 4622//552 4621//552 +f 590//552 4623//552 4622//552 +f 590//552 4624//552 4623//552 +f 590//552 4625//552 4624//552 +f 590//552 4626//552 4625//552 +f 590//552 4627//552 4626//552 +f 590//552 4628//552 4627//552 +f 590//552 4629//552 4628//552 +f 590//552 4630//552 4629//552 +f 590//552 4631//552 4630//552 +f 590//552 4632//552 4631//552 +f 590//552 4633//552 4632//552 +f 590//552 4284//552 4633//552 +f 4470//5629 4423//5629 4634//5629 +f 4423//5629 4635//5629 4634//5629 +f 3949//5630 3960//5630 4636//5630 +f 3960//5630 4637//5630 4636//5630 +f 4290//5631 4472//5631 4638//5631 +f 4290//5632 4638//5632 4639//5632 +f 4290//5633 4639//5633 4640//5633 +f 4290//5633 4640//5633 4641//5633 +f 4290//5634 4641//5634 4642//5634 +f 4246//5635 4261//5635 4643//5635 +f 4261//5635 4644//5635 4643//5635 +f 4274//5636 4281//5636 4645//5636 +f 4281//5636 4646//5636 4645//5636 +f 4281//5637 4285//5637 4646//5637 +f 4285//5637 4647//5637 4646//5637 +f 3969//4736 4648//4736 4649//4736 +f 3964//4736 3969//4736 4649//4736 +f 4414//5638 4415//5638 4650//5638 +f 4415//5638 4651//5638 4650//5638 +f 3981//4703 3976//4703 4652//4703 +f 3976//4703 4653//4703 4652//4703 +f 4183//5639 4066//5639 4654//5639 +f 4066//5639 4655//5639 4654//5639 +f 4046//5640 4020//5640 4656//5640 +f 4020//5640 4657//5640 4656//5640 +f 3999//5641 3993//5641 4658//5641 +f 3993//5641 4659//5641 4658//5641 +f 3993//5642 3992//5642 4659//5642 +f 3992//5642 4660//5642 4659//5642 +f 4065//5643 4661//5643 4662//5643 +f 4045//5643 4065//5643 4662//5643 +f 4258//5644 4663//5644 4664//5644 +f 4182//5644 4258//5644 4664//5644 +f 4426//5645 4665//5645 4666//5645 +f 4331//5645 4426//5645 4666//5645 +f 4332//5646 4259//5646 4667//5646 +f 4259//5646 4668//5646 4667//5646 +f 4438//5647 4427//5647 4669//5647 +f 4427//5648 4670//5648 4669//5648 +f 4259//5649 4183//5649 4668//5649 +f 4183//5649 4654//5649 4668//5649 +f 4432//5650 4671//5650 4672//5650 +f 4413//5650 4432//5650 4672//5650 +f 4464//5651 4673//5651 4674//5651 +f 4439//5652 4464//5652 4674//5652 +f 4406//5653 4407//5653 4675//5653 +f 4407//5654 4676//5654 4675//5654 +f 4407//5655 4677//5655 4676//5655 +f 4434//5656 4451//5656 4678//5656 +f 4451//5656 4679//5656 4678//5656 +f 4460//5657 4456//5657 4680//5657 +f 4456//5657 4681//5657 4680//5657 +f 4440//5658 4433//5658 4682//5658 +f 4433//5658 4683//5658 4682//5658 +f 4458//5659 4684//5659 4685//5659 +f 4325//5660 4458//5660 4685//5660 +f 4442//5661 4686//5661 4687//5661 +f 4443//5661 4442//5661 4687//5661 +f 4450//5662 4447//5662 4688//5662 +f 4447//5663 4689//5663 4688//5663 +f 4444//5664 4457//5664 4690//5664 +f 4457//5664 4691//5664 4690//5664 +f 4459//5665 4692//5665 4693//5665 +f 4449//5666 4459//5666 4693//5666 +f 4449//5667 4693//5667 4694//5667 +f 4446//5667 4449//5667 4694//5667 +f 4445//5668 4689//5668 4447//5668 +f 4445//5668 4695//5668 4689//5668 +f 4474//5669 4696//5669 4697//5669 +f 4469//5669 4474//5669 4697//5669 +f 4422//5670 4698//5670 4699//5670 +f 4334//5670 4422//5670 4699//5670 +f 4335//5671 4336//5671 4700//5671 +f 4336//5671 4701//5671 4700//5671 +f 4335//5672 4635//5672 4423//5672 +f 4335//5672 4700//5672 4635//5672 +f 4469//5673 4697//5673 4698//5673 +f 4422//5673 4469//5673 4698//5673 +f 4450//5674 4688//5674 4336//5674 +f 4336//5674 4688//5674 4701//5674 +f 4334//5675 4699//5675 4692//5675 +f 4459//5675 4334//5675 4692//5675 +f 4444//5676 4695//5676 4445//5676 +f 4444//5676 4690//5676 4695//5676 +f 4446//5677 4694//5677 4686//5677 +f 4442//5677 4446//5677 4686//5677 +f 4406//5678 4691//5678 4457//5678 +f 4406//5678 4675//5678 4691//5678 +f 4443//5679 4687//5679 4684//5679 +f 4458//5679 4443//5679 4684//5679 +f 4434//5680 4677//5680 4407//5680 +f 4434//5680 4678//5680 4677//5680 +f 4325//5681 4685//5681 4702//5681 +f 4405//5681 4325//5681 4702//5681 +f 4405//5682 4702//5682 4703//5682 +f 4435//5682 4405//5682 4703//5682 +f 4460//5683 4679//5683 4451//5683 +f 4460//5683 4680//5683 4679//5683 +f 4435//5684 4703//5684 4704//5684 +f 4452//5684 4435//5684 4704//5684 +f 4452//5685 4704//5685 4705//5685 +f 4461//5685 4452//5685 4705//5685 +f 4440//5686 4681//5686 4456//5686 +f 4440//5686 4682//5686 4681//5686 +f 4461//5687 4705//5687 4706//5687 +f 4455//5687 4461//5687 4706//5687 +f 4455//5688 4706//5688 4707//5688 +f 4441//5688 4455//5688 4707//5688 +f 4441//5689 4707//5689 4671//5689 +f 4432//5689 4441//5689 4671//5689 +f 4414//5690 4683//5690 4433//5690 +f 4414//5690 4650//5690 4683//5690 +f 4413//5691 4672//5691 4673//5691 +f 4464//5691 4413//5691 4673//5691 +f 4438//5692 4669//5692 4415//5692 +f 4415//5692 4669//5692 4651//5692 +f 4439//5693 4674//5693 4665//5693 +f 4426//5693 4439//5693 4665//5693 +f 4332//5694 4670//5694 4427//5694 +f 4332//5694 4667//5694 4670//5694 +f 4066//5695 4046//5695 4655//5695 +f 4046//5695 4656//5695 4655//5695 +f 4331//5696 4666//5696 4663//5696 +f 4258//5696 4331//5696 4663//5696 +f 3999//5697 4657//5697 4020//5697 +f 3999//5697 4658//5697 4657//5697 +f 4182//5698 4664//5698 4661//5698 +f 4065//5698 4182//5698 4661//5698 +f 4045//5699 4662//5699 4708//5699 +f 4019//5699 4045//5699 4708//5699 +f 4019//5700 4708//5700 4709//5700 +f 4000//5700 4019//5700 4709//5700 +f 4000//5701 4709//5701 4710//5701 +f 3994//5701 4000//5701 4710//5701 +f 4214//5702 4219//5702 4711//5702 +f 4219//5702 4712//5702 4711//5702 +f 4233//5703 4239//5703 4713//5703 +f 4239//5703 4714//5703 4713//5703 +f 3970//4734 3963//4734 4715//4734 +f 3963//4734 4716//4734 4715//4734 +f 3939//5704 3928//5704 4717//5704 +f 3928//5704 4718//5704 4717//5704 +f 4216//5705 4198//5705 4719//5705 +f 4198//5705 4720//5705 4719//5705 +f 3976//4720 3974//4720 4653//4720 +f 3974//4720 4721//4720 4653//4720 +f 3950//4741 3949//4741 4722//4741 +f 3949//4741 4636//4741 4722//4741 +f 3954//5706 3946//5706 4723//5706 +f 3946//5706 4724//5706 4723//5706 +f 3929//5707 4291//5707 4725//5707 +f 3929//5708 4725//5708 4726//5708 +f 4243//5709 4231//5709 4727//5709 +f 4231//5709 4728//5709 4727//5709 +f 4195//5710 4193//5710 4729//5710 +f 4193//5710 4730//5710 4729//5710 +f 4192//5711 4191//5711 4731//5711 +f 4191//5711 4732//5711 4731//5711 +f 4213//5712 4214//5712 4733//5712 +f 4214//5713 4734//5713 4733//5713 +f 4214//5714 4735//5714 4734//5714 +f 4214//5714 4736//5714 4735//5714 +f 4214//5715 4737//5715 4736//5715 +f 4214//5716 4711//5716 4737//5716 +f 4219//5717 4233//5717 4712//5717 +f 4233//5717 4713//5717 4712//5717 +f 4343//5718 4738//5718 4739//5718 +f 4343//5719 4740//5719 4738//5719 +f 4256//5720 4740//5720 4343//5720 +f 4343//5721 4739//5721 4741//5721 +f 4383//5722 4382//5722 4742//5722 +f 4384//5722 4383//5722 4742//5722 +f 4384//5723 4742//5723 4743//5723 +f 4391//5724 4390//5724 4744//5724 +f 4391//5725 4744//5725 4745//5725 +f 4375//5726 4374//5726 4746//5726 +f 4375//5727 4746//5727 4747//5727 +f 4395//5728 4394//5728 4748//5728 +f 4395//5729 4748//5729 4749//5729 +f 4387//5730 4386//5730 4750//5730 +f 4387//5731 4750//5731 4751//5731 +f 4379//5732 4378//5732 4752//5732 +f 4379//5733 4752//5733 4753//5733 +f 4373//5734 4343//5734 4741//5734 +f 4373//5735 4741//5735 4754//5735 +f 4348//5736 4372//5736 4755//5736 +f 4348//5737 4755//5737 4756//5737 +f 4191//5738 4471//5738 4757//5738 +f 4191//5739 4757//5739 4732//5739 +f 4348//5740 4756//5740 4758//5740 +f 4348//5741 4758//5741 4759//5741 +f 4348//5742 4759//5742 4757//5742 +f 4471//5743 4348//5743 4757//5743 +f 4372//5744 4395//5744 4749//5744 +f 4372//5745 4749//5745 4755//5745 +f 4393//5746 4392//5746 4760//5746 +f 4393//5747 4760//5747 4761//5747 +f 4394//5748 4393//5748 4761//5748 +f 4394//5749 4761//5749 4748//5749 +f 4392//5750 4391//5750 4745//5750 +f 4392//5751 4745//5751 4760//5751 +f 4389//5752 4388//5752 4762//5752 +f 4389//5753 4762//5753 4763//5753 +f 4390//5754 4389//5754 4763//5754 +f 4390//5755 4763//5755 4744//5755 +f 4388//5756 4387//5756 4751//5756 +f 4388//5757 4751//5757 4762//5757 +f 4386//5758 4385//5758 4764//5758 +f 4386//5759 4764//5759 4750//5759 +f 4385//5760 4384//5760 4743//5760 +f 4385//5761 4743//5761 4764//5761 +f 4381//5762 4380//5762 4765//5762 +f 4381//5763 4765//5763 4766//5763 +f 4382//5764 4381//5764 4766//5764 +f 4382//5765 4766//5765 4742//5765 +f 4380//5766 4379//5766 4753//5766 +f 4380//5767 4753//5767 4765//5767 +f 4377//5768 4376//5768 4767//5768 +f 4377//5769 4767//5769 4768//5769 +f 4378//5770 4377//5770 4768//5770 +f 4378//5771 4768//5771 4752//5771 +f 4376//5772 4375//5772 4747//5772 +f 4376//5773 4747//5773 4767//5773 +f 4374//5774 4373//5774 4754//5774 +f 4374//5775 4754//5775 4746//5775 +f 4231//5776 4216//5776 4728//5776 +f 4216//5776 4719//5776 4728//5776 +f 4198//5777 4195//5777 4720//5777 +f 4195//5777 4729//5777 4720//5777 +f 4193//5778 4192//5778 4730//5778 +f 4192//5778 4731//5778 4730//5778 +f 4370//5779 4769//5779 4770//5779 +f 4370//5780 4369//5780 4769//5780 +f 4369//5781 4771//5781 4769//5781 +f 4369//5782 4371//5782 4771//5782 +f 4371//5783 4772//5783 4771//5783 +f 4371//5784 4362//5784 4772//5784 +f 4362//5785 4773//5785 4772//5785 +f 4362//5786 4361//5786 4773//5786 +f 4361//5787 4774//5787 4773//5787 +f 4361//5788 4368//5788 4774//5788 +f 4368//5789 4775//5789 4774//5789 +f 4368//5790 4367//5790 4775//5790 +f 4367//5791 4776//5791 4775//5791 +f 4367//5792 4364//5792 4776//5792 +f 4364//5793 4777//5793 4776//5793 +f 4364//5794 4363//5794 4777//5794 +f 4363//5795 4778//5795 4777//5795 +f 4363//5796 4366//5796 4778//5796 +f 4366//5797 4779//5797 4778//5797 +f 4366//5798 4365//5798 4779//5798 +f 4365//5799 4780//5799 4779//5799 +f 4365//5800 4345//5800 4780//5800 +f 4345//5801 4781//5801 4780//5801 +f 4345//5802 4344//5802 4781//5802 +f 4344//5803 4782//5803 4781//5803 +f 4344//5804 4360//5804 4782//5804 +f 4360//5805 4783//5805 4782//5805 +f 4360//5806 4359//5806 4783//5806 +f 4359//5807 4784//5807 4783//5807 +f 4359//5808 4356//5808 4784//5808 +f 4356//5809 4785//5809 4784//5809 +f 4356//5810 4355//5810 4785//5810 +f 4355//5811 4786//5811 4785//5811 +f 4355//5812 4358//5812 4786//5812 +f 4358//5813 4787//5813 4786//5813 +f 4358//5814 4357//5814 4787//5814 +f 4357//5815 4788//5815 4787//5815 +f 4357//5816 4347//5816 4788//5816 +f 4347//5817 4789//5817 4788//5817 +f 4347//5818 4346//5818 4789//5818 +f 4346//5819 4790//5819 4789//5819 +f 4346//5820 4354//5820 4790//5820 +f 4354//5821 4791//5821 4790//5821 +f 4354//5822 4353//5822 4791//5822 +f 4353//5823 4792//5823 4791//5823 +f 4353//5824 4350//5824 4792//5824 +f 4350//5825 4793//5825 4792//5825 +f 4350//5826 4349//5826 4793//5826 +f 4351//5827 4735//5827 4794//5827 +f 4351//5828 4734//5828 4735//5828 +f 4351//5829 4213//5829 4734//5829 +f 4213//5830 4733//5830 4734//5830 +f 4352//5831 4794//5831 4795//5831 +f 4352//5832 4351//5832 4794//5832 +f 4349//5833 4795//5833 4793//5833 +f 4349//5834 4352//5834 4795//5834 +f 4472//5835 4796//5835 4638//5835 +f 4472//5836 4342//5836 4796//5836 +f 4342//5837 4770//5837 4796//5837 +f 4342//5838 4370//5838 4770//5838 +f 4291//5839 4290//5839 4725//5839 +f 4290//5839 4642//5839 4725//5839 +f 3946//5840 3939//5840 4724//5840 +f 3939//5840 4717//5840 4724//5840 +f 3960//5841 3954//5841 4637//5841 +f 3954//5841 4723//5841 4637//5841 +f 3963//4735 3950//4735 4716//4735 +f 3950//4735 4722//4735 4716//4735 +f 3974//4727 3970//4727 4721//4727 +f 3970//4727 4715//4727 4721//4727 +f 3928//5842 3929//5842 4718//5842 +f 3929//5842 4726//5842 4718//5842 +f 4256//5843 4243//5843 4740//5843 +f 4243//5844 4738//5844 4740//5844 +f 4243//5845 4739//5845 4738//5845 +f 4243//5845 4797//5845 4739//5845 +f 4243//5846 4798//5846 4797//5846 +f 4243//5847 4727//5847 4798//5847 +f 4239//5848 4246//5848 4714//5848 +f 4246//5848 4643//5848 4714//5848 +f 3973//4733 4799//4733 4648//4733 +f 3969//4733 3973//4733 4648//4733 +f 3975//4728 4800//4728 4799//4728 +f 3973//4728 3975//4728 4799//4728 +f 3980//4719 4801//4719 4800//4719 +f 3975//4719 3980//4719 4800//4719 +f 3991//4702 4802//4702 4801//4702 +f 3980//4702 3991//4702 4801//4702 +f 3994//5849 4710//5849 4802//5849 +f 3991//5849 3994//5849 4802//5849 +f 3981//5850 4660//5850 3992//5850 +f 3981//5850 4652//5850 4660//5850 +f 4261//5851 4274//5851 4644//5851 +f 4274//5851 4645//5851 4644//5851 +f 3964//4742 4649//4742 4803//4742 +f 3947//4742 3964//4742 4803//4742 +f 3947//5852 4803//5852 4804//5852 +f 3948//5852 3947//5852 4804//5852 +f 3948//5853 4804//5853 4805//5853 +f 3959//5853 3948//5853 4805//5853 +f 3959//5854 4805//5854 4806//5854 +f 3953//5854 3959//5854 4806//5854 +f 3953//5855 4806//5855 4807//5855 +f 3945//5855 3953//5855 4807//5855 +f 3945//5856 4807//5856 4808//5856 +f 3938//5856 3945//5856 4808//5856 +f 3938//5857 4808//5857 4809//5857 +f 3927//5857 3938//5857 4809//5857 +f 3927//5858 4809//5858 4810//5858 +f 4300//5859 3927//5859 4810//5859 +f 4300//5860 4810//5860 4811//5860 +f 4286//5860 4300//5860 4811//5860 +f 4286//5861 4811//5861 4812//5861 +f 4253//5861 4286//5861 4812//5861 +f 4253//5862 4812//5862 4813//5862 +f 4242//5862 4253//5862 4813//5862 +f 4242//5863 4813//5863 4814//5863 +f 4230//5863 4242//5863 4814//5863 +f 4230//5864 4814//5864 4494//5864 +f 4330//5865 4230//5865 4494//5865 +f 4324//5866 4523//5866 4815//5866 +f 4324//5867 4328//5867 4523//5867 +f 4322//5868 4816//5868 4817//5868 +f 4322//5869 4818//5869 4816//5869 +f 4322//5870 4815//5870 4818//5870 +f 4322//5871 4324//5871 4815//5871 +f 4322//5872 4817//5872 4819//5872 +f 4201//5873 4322//5873 4819//5873 +f 4201//5874 4819//5874 4820//5874 +f 4209//5874 4201//5874 4820//5874 +f 4209//5875 4820//5875 4821//5875 +f 4218//5875 4209//5875 4821//5875 +f 4218//5876 4821//5876 4822//5876 +f 4232//5876 4218//5876 4822//5876 +f 4232//5877 4822//5877 4823//5877 +f 4238//5877 4232//5877 4823//5877 +f 4238//5878 4823//5878 4824//5878 +f 4245//5878 4238//5878 4824//5878 +f 4245//5879 4824//5879 4825//5879 +f 4260//5879 4245//5879 4825//5879 +f 4260//5880 4825//5880 4826//5880 +f 4273//5880 4260//5880 4826//5880 +f 4273//5881 4826//5881 4827//5881 +f 4280//5881 4273//5881 4827//5881 +f 4280//5882 4827//5882 4633//5882 +f 4284//5882 4280//5882 4633//5882 +f 4285//5883 597//5883 4647//5883 +f 597//5883 4525//5883 4647//5883 +f 4022//5884 4519//5884 4522//5884 +f 4022//5885 4042//5885 4519//5885 +f 4044//5886 4041//5886 4515//5886 +f 4044//5887 4515//5887 4516//5887 +f 4404//5888 4828//5888 4829//5888 +f 4404//5889 4408//5889 4828//5889 +f 4341//5890 4830//5890 4831//5890 +f 4341//5891 4401//5891 4830//5891 +f 4318//5892 4832//5892 4833//5892 +f 4318//5893 4337//5893 4832//5893 +f 4073//5894 4834//5894 4835//5894 +f 4073//5895 4089//5895 4834//5895 +f 4292//5896 4833//5896 4836//5896 +f 4292//5897 4318//5897 4833//5897 +f 4240//5898 4836//5898 4837//5898 +f 4240//5899 4292//5899 4836//5899 +f 4205//5900 4837//5900 4838//5900 +f 4205//5901 4240//5901 4837//5901 +f 4169//5902 4838//5902 4839//5902 +f 4169//5903 4205//5903 4838//5903 +f 4156//5904 4839//5904 4840//5904 +f 4156//5905 4169//5905 4839//5905 +f 4089//5906 4840//5906 4834//5906 +f 4089//5907 4156//5907 4840//5907 +f 4064//5908 4835//5908 4520//5908 +f 4064//5909 4073//5909 4835//5909 +f 4337//5910 4831//5910 4832//5910 +f 4337//5911 4341//5911 4831//5911 +f 4401//5912 4829//5912 4830//5912 +f 4401//5913 4404//5913 4829//5913 +f 4462//5914 4841//5914 4842//5914 +f 4462//5915 4475//5915 4841//5915 +f 4453//5916 4842//5916 4843//5916 +f 4453//5917 4462//5917 4842//5917 +f 4436//5918 4843//5918 4844//5918 +f 4436//5919 4453//5919 4843//5919 +f 4431//5920 4844//5920 4845//5920 +f 4431//5921 4436//5921 4844//5921 +f 4429//5922 4845//5922 4846//5922 +f 4429//5923 4431//5923 4845//5923 +f 4424//5924 4846//5924 4847//5924 +f 4424//5925 4429//5925 4846//5925 +f 4420//5926 4847//5926 4848//5926 +f 4420//5927 4424//5927 4847//5927 +f 4417//5928 4848//5928 4849//5928 +f 4417//5929 4420//5929 4848//5929 +f 4416//5930 4849//5930 4850//5930 +f 4416//5931 4417//5931 4849//5931 +f 4411//5932 4850//5932 4851//5932 +f 4411//5933 4416//5933 4850//5933 +f 4410//5934 4851//5934 4852//5934 +f 4410//5935 4411//5935 4851//5935 +f 4408//5936 4852//5936 4828//5936 +f 4408//5937 4410//5937 4852//5937 +f 4043//5938 4521//5938 4518//5938 +f 4043//5939 4058//5939 4521//5939 +f 4025//5940 4465//5940 4853//5940 +f 4025//5941 4853//5941 4476//5941 +f 4465//5942 4463//5942 4500//5942 +f 4465//5943 4500//5943 4853//5943 +f 4027//5944 4491//5944 4854//5944 +f 4027//4811 4854//4811 4855//4811 +f 4027//5945 4855//5945 4856//5945 +f 4027//5946 4856//5946 4857//5946 +f 4027//5947 4857//5947 4858//5947 +f 4027//5948 4858//5948 4859//5948 +f 4027//5949 4859//5949 4860//5949 +f 4027//5950 4860//5950 4861//5950 +f 4027//5951 4861//5951 4862//5951 +f 4027//5952 4862//5952 4863//5952 +f 4027//5953 4863//5953 4864//5953 +f 4027//5954 4864//5954 4865//5954 +f 4027//5955 4865//5955 4866//5955 +f 4027//5956 4866//5956 4867//5956 +f 4027//5957 4867//5957 4841//5957 +f 4027//5958 4841//5958 4475//5958 +f 4696//5959 4868//5959 4869//5959 +f 4696//5959 4869//5959 4697//5959 +f 4634//5960 4635//5960 4870//5960 +f 4870//5961 4871//5961 4872//5961 +f 4868//5962 4873//5962 4874//5962 +f 4868//5962 4874//5962 4869//5962 +f 4870//5960 4635//5960 4871//5960 +f 4873//5963 4875//5963 4876//5963 +f 4873//5963 4876//5963 4874//5963 +f 4872//5961 4871//5961 4877//5961 +f 4872//5964 4877//5964 4878//5964 +f 4878//5965 4879//5965 4880//5965 +f 4875//5966 4881//5966 4882//5966 +f 4875//5966 4882//5966 4876//5966 +f 4878//5964 4877//5964 4879//5964 +f 4476//5967 4853//5967 4477//5967 +f 4880//5965 4879//5965 4883//5965 +f 4881//5968 4884//5968 4885//5968 +f 4881//5968 4885//5968 4882//5968 +f 4880//5969 4883//5969 4886//5969 +f 4886//5970 4887//5970 4888//5970 +f 4884//5971 4889//5971 4890//5971 +f 4884//5971 4890//5971 4885//5971 +f 4886//5969 4883//5969 4887//5969 +f 4889//5972 4891//5972 4892//5972 +f 4889//5972 4892//5972 4890//5972 +f 4888//5970 4887//5970 4893//5970 +f 4888//5973 4893//5973 4891//5973 +f 4891//5973 4893//5973 4892//5973 +f 4638//5974 4796//5974 4639//5974 +f 4817//5975 4816//5975 4819//5975 +f 4494//5976 4814//5976 4492//5976 +f 4757//5977 4759//5977 4894//5977 +f 4757//5978 4894//5978 4732//5978 +f 4635//5979 4700//5979 4895//5979 +f 4635//5979 4895//5979 4871//5979 +f 4697//5980 4869//5980 4896//5980 +f 4697//5980 4896//5980 4698//5980 +f 4841//5981 4867//5981 4842//5981 +f 4477//5982 4853//5982 4897//5982 +f 4477//5983 4897//5983 4478//5983 +f 4853//5984 4500//5984 4898//5984 +f 4853//5985 4898//5985 4897//5985 +f 4842//5986 4899//5986 4843//5986 +f 4842//5987 4866//5987 4899//5987 +f 4842//5988 4867//5988 4866//5988 +f 4669//5989 4670//5989 4900//5989 +f 4673//5990 4901//5990 4902//5990 +f 4673//5991 4902//5991 4674//5991 +f 4673//5691 4672//5691 4901//5691 +f 4669//5692 4900//5692 4651//5692 +f 4843//5992 4903//5992 4844//5992 +f 4843//5993 4899//5993 4903//5993 +f 4500//5994 4499//5994 4904//5994 +f 4500//5995 4904//5995 4898//5995 +f 4684//5996 4905//5996 4685//5996 +f 4675//5997 4906//5997 4691//5997 +f 4675//5997 4676//5997 4906//5997 +f 4684//5998 4687//5998 4905//5998 +f 4704//5999 4907//5999 4908//5999 +f 4704//5999 4908//5999 4705//5999 +f 4680//6000 4681//6000 4909//6000 +f 4680//6001 4910//6001 4679//6001 +f 4680//6001 4909//6001 4910//6001 +f 4704//6002 4703//6002 4907//6002 +f 4681//6000 4911//6000 4909//6000 +f 4681//6003 4682//6003 4911//6003 +f 4705//6004 4908//6004 4912//6004 +f 4705//6004 4912//6004 4706//6004 +f 4692//6005 4913//6005 4914//6005 +f 4692//6006 4914//6006 4693//6006 +f 4688//6007 4689//6007 4915//6007 +f 4688//5674 4915//5674 4701//5674 +f 4692//5675 4699//5675 4913//5675 +f 4687//6008 4686//6008 4916//6008 +f 4691//6009 4917//6009 4690//6009 +f 4691//6009 4906//6009 4917//6009 +f 4687//5998 4916//5998 4905//5998 +f 4706//6010 4912//6010 4918//6010 +f 4706//6010 4918//6010 4707//6010 +f 4682//6011 4683//6011 4919//6011 +f 4682//6003 4919//6003 4911//6003 +f 4844//6012 4920//6012 4845//6012 +f 4844//6013 4903//6013 4920//6013 +f 4499//6014 4498//6014 4921//6014 +f 4499//6015 4921//6015 4904//6015 +f 4703//6016 4702//6016 4922//6016 +f 4679//6017 4923//6017 4678//6017 +f 4679//6017 4910//6017 4923//6017 +f 4703//6002 4922//6002 4907//6002 +f 4693//6018 4914//6018 4924//6018 +f 4693//6018 4924//6018 4694//6018 +f 4689//6019 4925//6019 4915//6019 +f 4689//6020 4695//6020 4925//6020 +f 4695//6020 4926//6020 4925//6020 +f 4695//6021 4690//6021 4926//6021 +f 4694//6022 4924//6022 4927//6022 +f 4694//6022 4927//6022 4686//6022 +f 4686//6008 4927//6008 4916//6008 +f 4690//6021 4917//6021 4926//6021 +f 4478//6023 4897//6023 4479//6023 +f 4707//6024 4918//6024 4928//6024 +f 4707//6024 4928//6024 4671//6024 +f 4683//6011 4929//6011 4919//6011 +f 4683//6025 4650//6025 4929//6025 +f 4670//6026 4930//6026 4900//6026 +f 4674//6027 4902//6027 4931//6027 +f 4674//6027 4931//6027 4665//6027 +f 4670//6028 4667//6028 4930//6028 +f 4845//6029 4932//6029 4846//6029 +f 4845//6030 4920//6030 4932//6030 +f 4498//6031 4502//6031 4933//6031 +f 4498//6032 4933//6032 4921//6032 +f 4702//6016 4934//6016 4922//6016 +f 4678//6033 4935//6033 4677//6033 +f 4678//6033 4936//6033 4935//6033 +f 4678//6033 4923//6033 4936//6033 +f 4702//6034 4685//6034 4934//6034 +f 4671//6035 4928//6035 4937//6035 +f 4671//6035 4937//6035 4672//6035 +f 4650//6036 4651//6036 4938//6036 +f 4650//6025 4938//6025 4929//6025 +f 4846//6037 4939//6037 4847//6037 +f 4846//6038 4932//6038 4939//6038 +f 4847//6039 4940//6039 4848//6039 +f 4847//6040 4939//6040 4940//6040 +f 4502//6041 4501//6041 4941//6041 +f 4502//6042 4941//6042 4933//6042 +f 4639//6043 4796//6043 4640//6043 +f 4816//6044 4818//6044 4819//6044 +f 4492//6045 4814//6045 4493//6045 +f 4759//6046 4758//6046 4894//6046 +f 4665//6047 4931//6047 4942//6047 +f 4665//6047 4942//6047 4666//6047 +f 4667//6048 4668//6048 4943//6048 +f 4667//6028 4943//6028 4930//6028 +f 4848//6049 4944//6049 4849//6049 +f 4848//6050 4940//6050 4944//6050 +f 4501//6051 4497//6051 4945//6051 +f 4501//6052 4945//6052 4941//6052 +f 4698//6053 4896//6053 4946//6053 +f 4698//6054 4946//6054 4699//6054 +f 4700//6055 4701//6055 4895//6055 +f 4849//6056 4947//6056 4850//6056 +f 4849//6057 4944//6057 4947//6057 +f 4497//6058 4496//6058 4948//6058 +f 4497//6059 4948//6059 4945//6059 +f 4850//6060 4949//6060 4851//6060 +f 4850//6061 4947//6061 4949//6061 +f 4496//6062 4508//6062 4950//6062 +f 4496//6063 4950//6063 4948//6063 +f 4851//6064 4951//6064 4852//6064 +f 4851//6065 4949//6065 4951//6065 +f 4651//6036 4952//6036 4938//6036 +f 4672//6066 4937//6066 4953//6066 +f 4672//6066 4953//6066 4901//6066 +f 4651//6067 4900//6067 4954//6067 +f 4651//6067 4954//6067 4952//6067 +f 4852//6068 4955//6068 4828//6068 +f 4852//6069 4951//6069 4955//6069 +f 4508//6070 4507//6070 4956//6070 +f 4508//6071 4956//6071 4957//6071 +f 4508//6072 4957//6072 4950//6072 +f 4828//6073 4958//6073 4829//6073 +f 4828//6074 4955//6074 4958//6074 +f 4829//6075 4958//6075 4959//6075 +f 4829//6076 4959//6076 4830//6076 +f 4507//6077 4506//6077 4960//6077 +f 4507//6078 4960//6078 4956//6078 +f 4685//6079 4905//6079 4961//6079 +f 4677//6080 4962//6080 4676//6080 +f 4677//6081 4935//6081 4962//6081 +f 4685//6034 4961//6034 4934//6034 +f 4830//6082 4963//6082 4831//6082 +f 4830//6083 4959//6083 4963//6083 +f 4866//6084 4865//6084 4899//6084 +f 4479//6085 4897//6085 4964//6085 +f 4479//6086 4964//6086 4480//6086 +f 4831//6087 4963//6087 4965//6087 +f 4831//6088 4965//6088 4832//6088 +f 4506//6089 4505//6089 4966//6089 +f 4506//6090 4966//6090 4960//6090 +f 4899//6091 4967//6091 4903//6091 +f 4899//6092 4864//6092 4967//6092 +f 4899//6093 4865//6093 4864//6093 +f 4897//6094 4898//6094 4968//6094 +f 4897//6095 4968//6095 4964//6095 +f 4871//5979 4895//5979 4969//5979 +f 4871//6096 4969//6096 4970//6096 +f 4871//6096 4970//6096 4877//6096 +f 4869//6097 4874//6097 4971//6097 +f 4869//6097 4971//6097 4972//6097 +f 4869//5980 4972//5980 4896//5980 +f 4758//6046 4973//6046 4894//6046 +f 4758//6098 4756//6098 4973//6098 +f 4640//6099 4974//6099 4641//6099 +f 4640//6100 4796//6100 4974//6100 +f 4739//6101 4797//6101 4741//6101 +f 4735//6102 4736//6102 4794//6102 +f 4795//6103 4975//6103 4976//6103 +f 4795//6104 4794//6104 4975//6104 +f 4794//6105 4977//6105 4975//6105 +f 4794//6106 4978//6106 4977//6106 +f 4794//6107 4737//6107 4978//6107 +f 4794//6107 4736//6107 4737//6107 +f 4796//6108 4979//6108 4974//6108 +f 4796//6109 4770//6109 4979//6109 +f 4770//6110 4980//6110 4979//6110 +f 4770//6111 4769//6111 4980//6111 +f 4793//6112 4976//6112 4981//6112 +f 4793//6113 4795//6113 4976//6113 +f 4792//6114 4981//6114 4982//6114 +f 4792//6115 4793//6115 4981//6115 +f 4791//6116 4982//6116 4983//6116 +f 4791//6117 4792//6117 4982//6117 +f 4790//6118 4983//6118 4984//6118 +f 4790//6119 4791//6119 4983//6119 +f 4789//6120 4984//6120 4985//6120 +f 4789//6121 4790//6121 4984//6121 +f 4788//6122 4985//6122 4986//6122 +f 4788//6123 4789//6123 4985//6123 +f 4787//6124 4986//6124 4987//6124 +f 4787//6125 4788//6125 4986//6125 +f 4786//6126 4987//6126 4988//6126 +f 4786//6127 4787//6127 4987//6127 +f 4785//6128 4988//6128 4989//6128 +f 4785//6129 4786//6129 4988//6129 +f 4784//6130 4989//6130 4990//6130 +f 4784//6131 4785//6131 4989//6131 +f 4783//6132 4990//6132 4991//6132 +f 4783//6133 4784//6133 4990//6133 +f 4782//6134 4991//6134 4992//6134 +f 4782//6135 4783//6135 4991//6135 +f 4781//6136 4992//6136 4993//6136 +f 4781//6137 4782//6137 4992//6137 +f 4780//6138 4993//6138 4994//6138 +f 4780//6139 4781//6139 4993//6139 +f 4779//6140 4994//6140 4995//6140 +f 4779//6141 4780//6141 4994//6141 +f 4778//6142 4995//6142 4996//6142 +f 4778//6143 4779//6143 4995//6143 +f 4777//6144 4996//6144 4997//6144 +f 4777//6145 4778//6145 4996//6145 +f 4776//6146 4997//6146 4998//6146 +f 4776//6147 4777//6147 4997//6147 +f 4775//6148 4998//6148 4999//6148 +f 4775//6149 4776//6149 4998//6149 +f 4774//6150 4999//6150 5000//6150 +f 4774//6151 4775//6151 4999//6151 +f 4773//6152 5000//6152 5001//6152 +f 4773//6153 4774//6153 5000//6153 +f 4772//6154 5001//6154 5002//6154 +f 4772//6155 4773//6155 5001//6155 +f 4771//6156 5002//6156 5003//6156 +f 4771//6157 4772//6157 5002//6157 +f 4769//6158 5003//6158 4980//6158 +f 4769//6159 4771//6159 5003//6159 +f 4741//6160 5004//6160 5005//6160 +f 4741//6161 5006//6161 5004//6161 +f 4741//6162 4798//6162 5006//6162 +f 4741//6162 4797//6162 4798//6162 +f 4741//6163 5005//6163 5007//6163 +f 4754//6164 4741//6164 5007//6164 +f 4754//6165 5007//6165 5008//6165 +f 4746//6166 4754//6166 5008//6166 +f 4746//6167 5008//6167 5009//6167 +f 4747//6168 4746//6168 5009//6168 +f 4747//6169 5009//6169 5010//6169 +f 4767//6170 4747//6170 5010//6170 +f 4767//6171 5010//6171 5011//6171 +f 4768//6172 4767//6172 5011//6172 +f 4768//6173 5011//6173 5012//6173 +f 4752//6174 4768//6174 5012//6174 +f 4752//6175 5012//6175 5013//6175 +f 4753//6176 4752//6176 5013//6176 +f 4753//6177 5013//6177 5014//6177 +f 4765//6178 4753//6178 5014//6178 +f 4765//6179 5014//6179 5015//6179 +f 4766//6180 4765//6180 5015//6180 +f 4766//6181 5015//6181 5016//6181 +f 4742//6182 4766//6182 5016//6182 +f 4742//6183 5016//6183 5017//6183 +f 4743//6184 4742//6184 5017//6184 +f 4743//6185 5017//6185 5018//6185 +f 4764//6186 4743//6186 5018//6186 +f 4764//6187 5018//6187 5019//6187 +f 4764//6188 5019//6188 5020//6188 +f 4750//6189 4764//6189 5020//6189 +f 4750//6190 5020//6190 5021//6190 +f 4751//6191 4750//6191 5021//6191 +f 4751//6192 5021//6192 5022//6192 +f 4762//6193 4751//6193 5022//6193 +f 4762//6194 5022//6194 5023//6194 +f 4763//6195 4762//6195 5023//6195 +f 4763//6196 5023//6196 5024//6196 +f 4744//6197 4763//6197 5024//6197 +f 4744//6198 5024//6198 5025//6198 +f 4745//6199 4744//6199 5025//6199 +f 4745//6200 5025//6200 5026//6200 +f 4760//6201 4745//6201 5026//6201 +f 4760//6202 5026//6202 5027//6202 +f 4761//6203 4760//6203 5027//6203 +f 4761//6204 5027//6204 5028//6204 +f 4748//6205 4761//6205 5028//6205 +f 4748//6206 5028//6206 5029//6206 +f 4749//6207 4748//6207 5029//6207 +f 4749//6208 5029//6208 5030//6208 +f 4755//6209 4749//6209 5030//6209 +f 4755//6210 5030//6210 5031//6210 +f 4756//6211 4755//6211 5031//6211 +f 4756//6212 5031//6212 5032//6212 +f 4756//6213 5032//6213 5033//6213 +f 4756//6214 5033//6214 5034//6214 +f 4756//6214 5034//6214 5035//6214 +f 4756//6215 5035//6215 4973//6215 +f 4832//6216 5036//6216 4833//6216 +f 4832//6217 4965//6217 5036//6217 +f 4903//6218 5037//6218 4920//6218 +f 4903//6219 4967//6219 5037//6219 +f 4898//6220 4904//6220 5038//6220 +f 4898//6221 5038//6221 4968//6221 +f 4833//6222 5036//6222 5039//6222 +f 4833//6223 5039//6223 4836//6223 +f 4505//6224 4509//6224 5040//6224 +f 4505//6225 5040//6225 4966//6225 +f 4701//6226 5041//6226 4895//6226 +f 4701//6227 4915//6227 5041//6227 +f 4699//6228 4946//6228 5042//6228 +f 4699//6228 5042//6228 4913//6228 +f 4900//6229 4930//6229 4954//6229 +f 4901//6230 4953//6230 5043//6230 +f 4901//6231 5043//6231 4902//6231 +f 4668//6048 5044//6048 4943//6048 +f 4668//6232 4654//6232 5044//6232 +f 4666//6233 4942//6233 5045//6233 +f 4666//6233 5045//6233 4663//6233 +f 4523//6234 4522//6234 5046//6234 +f 4495//6235 4493//6235 5047//6235 +f 4495//6236 5047//6236 4514//6236 +f 4523//6237 5046//6237 4815//6237 +f 4815//6238 5048//6238 4818//6238 +f 4815//6239 5046//6239 5048//6239 +f 4493//6045 4814//6045 5049//6045 +f 4493//6240 5049//6240 5047//6240 +f 4641//6241 5050//6241 4642//6241 +f 4641//6242 4974//6242 5050//6242 +f 4905//6243 5051//6243 4961//6243 +f 4676//6244 5052//6244 4906//6244 +f 4676//6244 4962//6244 5052//6244 +f 4905//6245 4916//6245 5051//6245 +f 4818//6246 5048//6246 5053//6246 +f 4818//6044 5053//6044 4819//6044 +f 4904//6247 4921//6247 5054//6247 +f 4904//6248 5054//6248 5038//6248 +f 4920//6249 5055//6249 4932//6249 +f 4920//6250 5037//6250 5055//6250 +f 5053//6251 5056//6251 5057//6251 +f 5053//6251 5058//6251 5056//6251 +f 5053//6252 5059//6252 5058//6252 +f 5053//6253 5048//6253 5059//6253 +f 5053//6254 5057//6254 4819//6254 +f 5049//6255 4814//6255 5060//6255 +f 5049//6256 5060//6256 5047//6256 +f 4973//6257 5035//6257 4894//6257 +f 4836//6258 5061//6258 4837//6258 +f 4836//6259 5039//6259 5061//6259 +f 4907//6260 5062//6260 5063//6260 +f 4907//6260 5063//6260 4908//6260 +f 4909//6261 4911//6261 5064//6261 +f 4909//6262 5065//6262 4910//6262 +f 4909//6262 5064//6262 5065//6262 +f 4907//6263 4922//6263 5062//6263 +f 4911//6261 5066//6261 5064//6261 +f 4911//6264 4919//6264 5066//6264 +f 4908//6265 5063//6265 5067//6265 +f 4908//6265 5067//6265 4912//6265 +f 4915//6266 4925//6266 5068//6266 +f 4913//6267 5042//6267 5069//6267 +f 4913//6267 5069//6267 4914//6267 +f 4915//6227 5068//6227 5041//6227 +f 4480//6268 4964//6268 4481//6268 +f 4916//6269 4927//6269 5070//6269 +f 4906//6270 5071//6270 4917//6270 +f 4906//6270 5052//6270 5071//6270 +f 4916//6245 5070//6245 5051//6245 +f 4912//6271 5067//6271 5072//6271 +f 4912//6271 5072//6271 4918//6271 +f 4919//6272 4929//6272 5073//6272 +f 4919//6264 5073//6264 5066//6264 +f 4922//6273 4934//6273 5074//6273 +f 4910//6274 5075//6274 4923//6274 +f 4910//6274 5065//6274 5075//6274 +f 4922//6263 5074//6263 5062//6263 +f 4925//6266 5076//6266 5068//6266 +f 4914//6275 5069//6275 5077//6275 +f 4914//6275 5077//6275 4924//6275 +f 4925//6276 4926//6276 5076//6276 +f 4896//6277 4972//6277 5078//6277 +f 4896//6278 5078//6278 4946//6278 +f 4895//6279 5041//6279 4969//6279 +f 4921//6280 4933//6280 5079//6280 +f 4921//6281 5079//6281 5054//6281 +f 4932//6282 5080//6282 4939//6282 +f 4932//6283 5055//6283 5080//6283 +f 4810//6284 5081//6284 5082//6284 +f 4810//6284 5082//6284 4811//6284 +f 4725//6285 5083//6285 4726//6285 +f 4725//6286 4642//6286 5083//6286 +f 4810//6287 4809//6287 5081//6287 +f 4926//6276 5084//6276 5076//6276 +f 4926//6288 4917//6288 5084//6288 +f 4924//6289 5077//6289 5085//6289 +f 4924//6289 5085//6289 4927//6289 +f 4927//6269 5085//6269 5070//6269 +f 4917//6288 5071//6288 5084//6288 +f 4837//6290 5086//6290 4838//6290 +f 4837//6291 5061//6291 5086//6291 +f 4509//6292 4504//6292 5087//6292 +f 4509//6293 5087//6293 5088//6293 +f 4509//6294 5088//6294 5040//6294 +f 4525//552 4524//552 5089//552 +f 4811//6295 5082//6295 5090//6295 +f 4811//6295 5090//6295 4812//6295 +f 4642//6241 5050//6241 5091//6241 +f 4642//6296 5091//6296 5092//6296 +f 4642//6297 5092//6297 5093//6297 +f 4642//6298 5093//6298 5094//6298 +f 4642//6299 5094//6299 5095//6299 +f 4642//6300 5095//6300 5096//6300 +f 4642//6286 5096//6286 5083//6286 +f 4633//6301 4827//6301 4632//6301 +f 4525//6302 5089//6302 4647//6302 +f 4647//6303 5097//6303 4646//6303 +f 4647//6303 5098//6303 5097//6303 +f 4827//6304 4826//6304 5099//6304 +f 4827//6305 5099//6305 4632//6305 +f 4647//6306 5089//6306 5098//6306 +f 4929//6272 5100//6272 5073//6272 +f 4929//6307 4938//6307 5101//6307 +f 4929//6307 5101//6307 5100//6307 +f 4918//6308 5072//6308 5102//6308 +f 4918//6309 5102//6309 4928//6309 +f 4826//6304 5103//6304 5099//6304 +f 4826//6310 4825//6310 5103//6310 +f 4646//6311 5104//6311 4645//6311 +f 4646//6311 5097//6311 5104//6311 +f 4930//6312 5105//6312 4954//6312 +f 4902//6313 5043//6313 5106//6313 +f 4902//6313 5106//6313 4931//6313 +f 4930//6314 4943//6314 5105//6314 +f 4864//6315 4863//6315 4967//6315 +f 4481//6316 4964//6316 5107//6316 +f 4481//6317 5107//6317 4482//6317 +f 4939//6318 5108//6318 4940//6318 +f 4939//6319 5080//6319 5108//6319 +f 5050//6242 4974//6242 5091//6242 +f 4825//6310 5109//6310 5103//6310 +f 4825//6320 4824//6320 5109//6320 +f 4645//6321 5110//6321 4644//6321 +f 4645//6321 5104//6321 5110//6321 +f 4964//6322 4968//6322 5111//6322 +f 4964//6323 5111//6323 5107//6323 +f 4967//6324 5112//6324 5037//6324 +f 4967//6325 4862//6325 5112//6325 +f 4967//6326 4863//6326 4862//6326 +f 4961//6327 5051//6327 5113//6327 +f 4935//6328 5114//6328 4962//6328 +f 4935//6329 4936//6329 5114//6329 +f 4961//6034 5113//6034 4934//6034 +f 4933//6330 4941//6330 5115//6330 +f 4933//6331 5115//6331 5079//6331 +f 4940//6332 5116//6332 4944//6332 +f 4940//6333 5108//6333 5116//6333 +f 4934//6273 5117//6273 5074//6273 +f 4923//6334 5118//6334 4936//6334 +f 4923//6334 5119//6334 5118//6334 +f 4923//6334 5075//6334 5119//6334 +f 4934//6335 5113//6335 5117//6335 +f 4504//6336 4503//6336 5120//6336 +f 4504//6337 5120//6337 5087//6337 +f 4938//6338 4952//6338 5101//6338 +f 4928//6339 5102//6339 5121//6339 +f 4928//6339 5121//6339 4937//6339 +f 4824//6320 5122//6320 5109//6320 +f 4824//6340 4823//6340 5122//6340 +f 4644//6341 5123//6341 4643//6341 +f 4644//6341 5110//6341 5123//6341 +f 4663//6342 5045//6342 5124//6342 +f 4663//6342 5124//6342 4664//6342 +f 4654//6343 4655//6343 5125//6343 +f 4654//6232 5125//6232 5044//6232 +f 4798//6344 4727//6344 5006//6344 +f 4812//6345 5090//6345 5126//6345 +f 4812//6345 5126//6345 4813//6345 +f 4727//6346 5004//6346 5006//6346 +f 4727//6347 5005//6347 5004//6347 +f 4727//6347 5127//6347 5005//6347 +f 4727//6348 5128//6348 5127//6348 +f 4727//6349 5129//6349 5128//6349 +f 4727//6349 5130//6349 5129//6349 +f 4727//6350 5131//6350 5130//6350 +f 4727//6351 4728//6351 5131//6351 +f 4482//6352 5107//6352 4483//6352 +f 4968//6353 5038//6353 5132//6353 +f 4968//6354 5132//6354 5111//6354 +f 5037//6355 5133//6355 5055//6355 +f 5037//6356 5112//6356 5133//6356 +f 4877//6096 4970//6096 5134//6096 +f 4877//6357 5134//6357 5135//6357 +f 4877//6357 5135//6357 4879//6357 +f 4874//6358 4876//6358 5136//6358 +f 4874//6358 5136//6358 5137//6358 +f 4874//6097 5137//6097 4971//6097 +f 4941//6359 4945//6359 5138//6359 +f 4941//6360 5138//6360 5115//6360 +f 4944//6361 5139//6361 4947//6361 +f 4944//6362 5116//6362 5139//6362 +f 4823//6340 5140//6340 5122//6340 +f 4823//6363 4822//6363 5140//6363 +f 4643//6364 5141//6364 4714//6364 +f 4643//6364 5123//6364 5141//6364 +f 5091//6365 4974//6365 5092//6365 +f 4813//6366 5126//6366 5142//6366 +f 4813//6366 5142//6366 4814//6366 +f 4728//6351 5143//6351 5131//6351 +f 4728//6367 4719//6367 5143//6367 +f 5035//6368 5034//6368 4894//6368 +f 5057//6369 5056//6369 4819//6369 +f 5060//6370 4814//6370 5144//6370 +f 5060//6371 5144//6371 5047//6371 +f 4838//6372 5145//6372 4839//6372 +f 4838//6373 5146//6373 5145//6373 +f 4838//6374 5086//6374 5146//6374 +f 4503//6375 4513//6375 5147//6375 +f 4503//6376 5147//6376 5120//6376 +f 4822//6377 4821//6377 5148//6377 +f 4822//6363 5148//6363 5140//6363 +f 4714//6378 5149//6378 4713//6378 +f 4714//6378 5141//6378 5149//6378 +f 4945//6379 4948//6379 5150//6379 +f 4945//6380 5150//6380 5138//6380 +f 4947//6381 5151//6381 4949//6381 +f 4947//6382 5139//6382 5151//6382 +f 4948//6383 4950//6383 5152//6383 +f 4948//6384 5152//6384 5150//6384 +f 4949//6385 5153//6385 4951//6385 +f 4949//6386 5151//6386 5153//6386 +f 4821//6377 5154//6377 5148//6377 +f 4821//6387 4820//6387 5154//6387 +f 4713//6388 5155//6388 4712//6388 +f 4713//6388 5149//6388 5155//6388 +f 4814//6389 5142//6389 5156//6389 +f 4814//6370 5156//6370 5144//6370 +f 4719//6390 4720//6390 5157//6390 +f 4719//6367 5157//6367 5143//6367 +f 4951//6391 5158//6391 4955//6391 +f 4951//6392 5153//6392 5158//6392 +f 5089//6393 4524//6393 5098//6393 +f 4950//6394 4957//6394 5159//6394 +f 4950//6395 5159//6395 5152//6395 +f 5055//6396 5160//6396 5080//6396 +f 5055//6397 5133//6397 5160//6397 +f 5038//6398 5054//6398 5161//6398 +f 5038//6399 5161//6399 5132//6399 +f 4931//6400 5106//6400 5162//6400 +f 4931//6400 5162//6400 4942//6400 +f 4943//6401 5044//6401 5163//6401 +f 4943//6314 5163//6314 5105//6314 +f 4957//6402 4956//6402 5164//6402 +f 4957//6403 5164//6403 5159//6403 +f 4955//6404 5158//6404 5165//6404 +f 4955//6405 5165//6405 4958//6405 +f 5041//6406 5166//6406 4969//6406 +f 5041//6407 5068//6407 5166//6407 +f 4946//6408 5078//6408 5167//6408 +f 4946//6408 5167//6408 5042//6408 +f 4954//6409 5105//6409 5168//6409 +f 4953//6410 5169//6410 5170//6410 +f 4953//6411 5170//6411 5043//6411 +f 4953//6066 4937//6066 5169//6066 +f 4954//6067 5168//6067 4952//6067 +f 4820//6412 4819//6412 5171//6412 +f 4820//6387 5171//6387 5154//6387 +f 4712//6413 5172//6413 4711//6413 +f 4712//6413 5155//6413 5172//6413 +f 4862//6414 4861//6414 5112//6414 +f 4483//6415 5107//6415 5173//6415 +f 4483//6416 5173//6416 4484//6416 +f 4720//6390 5174//6390 5157//6390 +f 4720//6417 4729//6417 5174//6417 +f 5144//6371 5156//6371 5047//6371 +f 4958//6418 5175//6418 4959//6418 +f 4958//6419 5165//6419 5175//6419 +f 4819//6412 5176//6412 5171//6412 +f 4819//6420 5056//6420 5176//6420 +f 4711//6421 4978//6421 4737//6421 +f 4711//6422 4977//6422 4978//6422 +f 4711//6423 5177//6423 4977//6423 +f 4711//6424 5178//6424 5177//6424 +f 4711//6425 5179//6425 5178//6425 +f 4711//6425 5180//6425 5179//6425 +f 4711//6426 5181//6426 5180//6426 +f 4711//6427 5172//6427 5181//6427 +f 4632//6428 5099//6428 4631//6428 +f 4839//6429 5182//6429 4840//6429 +f 4839//6430 5145//6430 5182//6430 +f 4513//6431 4512//6431 5183//6431 +f 4513//6432 5183//6432 5147//6432 +f 5107//6433 5111//6433 5184//6433 +f 5107//6434 5184//6434 5173//6434 +f 5112//6435 4860//6435 5185//6435 +f 5112//6436 4861//6436 4860//6436 +f 5112//6437 5185//6437 5133//6437 +f 5056//6438 5058//6438 5176//6438 +f 4972//6439 4971//6439 5186//6439 +f 4972//6440 5186//6440 5078//6440 +f 4969//6441 5166//6441 4970//6441 +f 4729//6417 5187//6417 5174//6417 +f 4729//6442 4730//6442 5187//6442 +f 4956//6443 4960//6443 5188//6443 +f 4956//6444 5188//6444 5164//6444 +f 4959//6445 5189//6445 4963//6445 +f 4959//6446 5175//6446 5189//6446 +f 4730//6442 5190//6442 5187//6442 +f 4730//6447 4731//6447 5190//6447 +f 5156//6448 5142//6448 5191//6448 +f 5156//6371 5192//6371 5047//6371 +f 5156//6449 5191//6449 5192//6449 +f 4731//6450 4732//6450 5193//6450 +f 4731//6447 5193//6447 5190//6447 +f 4484//6451 5173//6451 4485//6451 +f 4732//6452 4894//6452 5194//6452 +f 4732//6450 5194//6450 5193//6450 +f 4894//6452 5195//6452 5194//6452 +f 4894//6368 5034//6368 5033//6368 +f 4894//6453 5033//6453 5196//6453 +f 4894//6454 5196//6454 5197//6454 +f 4894//6455 5197//6455 5198//6455 +f 4894//6455 5198//6455 5199//6455 +f 4894//6456 5199//6456 5195//6456 +f 5051//6457 5200//6457 5113//6457 +f 4962//6458 5201//6458 5052//6458 +f 4962//6458 5114//6458 5201//6458 +f 5051//6459 5070//6459 5200//6459 +f 4655//6343 5202//6343 5125//6343 +f 4655//6460 4656//6460 5202//6460 +f 4664//6461 5124//6461 5203//6461 +f 4664//6461 5203//6461 4661//6461 +f 4952//6462 5204//6462 5101//6462 +f 4937//6463 5121//6463 5205//6463 +f 4937//6463 5205//6463 5169//6463 +f 4952//6464 5168//6464 5204//6464 +f 4963//6465 5206//6465 4965//6465 +f 4963//6466 5189//6466 5206//6466 +f 5062//6467 5207//6467 5208//6467 +f 5062//6467 5208//6467 5063//6467 +f 5064//6468 5066//6468 5209//6468 +f 5064//6469 5210//6469 5065//6469 +f 5064//6469 5209//6469 5210//6469 +f 5062//6470 5074//6470 5207//6470 +f 5080//6471 5160//6471 5211//6471 +f 5080//6472 5211//6472 5108//6472 +f 5054//6473 5079//6473 5212//6473 +f 5054//6474 5212//6474 5161//6474 +f 5101//6475 5204//6475 5213//6475 +f 5101//6307 5213//6307 5100//6307 +f 5102//6476 5214//6476 5215//6476 +f 5102//6476 5215//6476 5121//6476 +f 5102//6477 5072//6477 5214//6477 +f 5066//6468 5216//6468 5209//6468 +f 5066//6478 5073//6478 5216//6478 +f 5063//6479 5208//6479 5217//6479 +f 5063//6479 5217//6479 5067//6479 +f 5111//6480 5132//6480 5218//6480 +f 5111//6481 5218//6481 5184//6481 +f 5133//6482 5185//6482 5219//6482 +f 5133//6483 5219//6483 5160//6483 +f 4840//6484 5220//6484 4834//6484 +f 4840//6485 5182//6485 5220//6485 +f 4512//6486 4511//6486 5221//6486 +f 4512//6487 5221//6487 5183//6487 +f 4960//6488 4966//6488 5222//6488 +f 4960//6489 5222//6489 5188//6489 +f 4965//6490 5206//6490 5223//6490 +f 4965//6491 5223//6491 5036//6491 +f 5042//6492 5167//6492 5224//6492 +f 5042//6492 5224//6492 5069//6492 +f 5068//6493 5076//6493 5225//6493 +f 5068//6407 5225//6407 5166//6407 +f 5067//6494 5217//6494 5226//6494 +f 5067//6494 5226//6494 5072//6494 +f 5073//6495 5100//6495 5227//6495 +f 5073//6478 5227//6478 5216//6478 +f 5108//6496 5228//6496 5116//6496 +f 5108//6497 5211//6497 5228//6497 +f 4936//6498 5229//6498 5114//6498 +f 4936//6499 5118//6499 5229//6499 +f 5113//6500 5200//6500 5230//6500 +f 5113//6335 5230//6335 5117//6335 +f 4485//6501 5173//6501 4486//6501 +f 5074//6502 5117//6502 5231//6502 +f 5065//6503 5232//6503 5075//6503 +f 5065//6503 5210//6503 5232//6503 +f 5074//6470 5231//6470 5207//6470 +f 4834//6504 5233//6504 4835//6504 +f 4834//6505 5220//6505 5233//6505 +f 5070//6506 5085//6506 5234//6506 +f 5052//6507 5235//6507 5071//6507 +f 5052//6507 5201//6507 5235//6507 +f 5070//6459 5234//6459 5200//6459 +f 4860//6508 4859//6508 5185//6508 +f 4486//6509 5173//6509 5236//6509 +f 4486//6510 5236//6510 4487//6510 +f 5069//6511 5224//6511 5237//6511 +f 5069//6511 5237//6511 5077//6511 +f 5076//6493 5238//6493 5225//6493 +f 5076//6512 5084//6512 5238//6512 +f 5005//6513 5127//6513 5007//6513 +f 4975//6514 5179//6514 5239//6514 +f 4975//6515 5178//6515 5179//6515 +f 4975//6516 5177//6516 5178//6516 +f 4975//6517 4977//6517 5177//6517 +f 5032//6518 5031//6518 5240//6518 +f 5032//6519 5240//6519 5241//6519 +f 5032//6520 5241//6520 5198//6520 +f 5032//6521 5198//6521 5197//6521 +f 5032//6522 5197//6522 5196//6522 +f 5033//6523 5032//6523 5196//6523 +f 5030//6524 5029//6524 5242//6524 +f 5030//6525 5242//6525 5243//6525 +f 5031//6526 5030//6526 5243//6526 +f 5031//6527 5243//6527 5240//6527 +f 5028//6528 5027//6528 5244//6528 +f 5028//6529 5244//6529 5245//6529 +f 5029//6530 5028//6530 5245//6530 +f 5029//6531 5245//6531 5242//6531 +f 5026//6532 5025//6532 5246//6532 +f 5026//6533 5246//6533 5247//6533 +f 5027//6534 5026//6534 5247//6534 +f 5027//6535 5247//6535 5244//6535 +f 5024//6536 5023//6536 5248//6536 +f 5024//6537 5248//6537 5249//6537 +f 5025//6538 5024//6538 5249//6538 +f 5025//6539 5249//6539 5246//6539 +f 5022//6540 5021//6540 5250//6540 +f 5022//6541 5250//6541 5251//6541 +f 5023//6542 5022//6542 5251//6542 +f 5023//6543 5251//6543 5248//6543 +f 5020//6544 5019//6544 5252//6544 +f 5020//6545 5252//6545 5253//6545 +f 5021//6546 5020//6546 5253//6546 +f 5021//6547 5253//6547 5250//6547 +f 5018//6548 5017//6548 5254//6548 +f 5018//6549 5254//6549 5255//6549 +f 5019//6550 5018//6550 5255//6550 +f 5019//6551 5255//6551 5252//6551 +f 5016//6552 5015//6552 5256//6552 +f 5016//6553 5256//6553 5257//6553 +f 5017//6554 5016//6554 5257//6554 +f 5017//6555 5257//6555 5254//6555 +f 5014//6556 5013//6556 5258//6556 +f 5014//6557 5258//6557 5259//6557 +f 5015//6558 5014//6558 5259//6558 +f 5015//6559 5259//6559 5256//6559 +f 5012//6560 5011//6560 5260//6560 +f 5012//6561 5260//6561 5261//6561 +f 5013//6562 5012//6562 5261//6562 +f 5013//6563 5261//6563 5258//6563 +f 5010//6564 5009//6564 5262//6564 +f 5010//6565 5262//6565 5263//6565 +f 5011//6566 5010//6566 5263//6566 +f 5011//6567 5263//6567 5260//6567 +f 5009//6568 5008//6568 5264//6568 +f 5009//6569 5264//6569 5262//6569 +f 5008//6570 5007//6570 5265//6570 +f 5008//6571 5265//6571 5264//6571 +f 5007//6572 5128//6572 5129//6572 +f 5007//6573 5127//6573 5128//6573 +f 5007//6574 5129//6574 5265//6574 +f 5003//6575 5266//6575 5267//6575 +f 5003//6576 5002//6576 5266//6576 +f 5002//6577 5268//6577 5266//6577 +f 5002//6578 5001//6578 5268//6578 +f 5001//6579 5269//6579 5268//6579 +f 5001//6580 5000//6580 5269//6580 +f 5000//6581 5270//6581 5269//6581 +f 5000//6582 4999//6582 5270//6582 +f 4999//6583 5271//6583 5270//6583 +f 4999//6584 4998//6584 5271//6584 +f 4998//6585 5272//6585 5271//6585 +f 4998//6586 4997//6586 5272//6586 +f 4997//6587 5273//6587 5272//6587 +f 4997//6588 4996//6588 5273//6588 +f 4996//6589 5274//6589 5273//6589 +f 4996//6590 4995//6590 5274//6590 +f 4995//6591 5275//6591 5274//6591 +f 4995//6592 4994//6592 5275//6592 +f 4994//6593 5276//6593 5275//6593 +f 4994//6594 4993//6594 5276//6594 +f 4993//6595 5277//6595 5276//6595 +f 4993//6596 4992//6596 5277//6596 +f 4992//6597 5278//6597 5277//6597 +f 4992//6598 4991//6598 5278//6598 +f 4991//6599 5279//6599 5278//6599 +f 4991//6600 4990//6600 5279//6600 +f 4990//6601 5280//6601 5279//6601 +f 4990//6602 4989//6602 5280//6602 +f 4989//6603 5281//6603 5280//6603 +f 4989//6604 4988//6604 5281//6604 +f 4988//6605 5282//6605 5281//6605 +f 4988//6606 4987//6606 5282//6606 +f 4987//6607 5283//6607 5282//6607 +f 4987//6608 4986//6608 5283//6608 +f 4986//6609 5284//6609 5283//6609 +f 4986//6610 4985//6610 5284//6610 +f 4985//6611 5285//6611 5284//6611 +f 4985//6612 4984//6612 5285//6612 +f 4984//6613 5286//6613 5285//6613 +f 4984//6614 4983//6614 5286//6614 +f 4983//6615 5287//6615 5286//6615 +f 4983//6616 4982//6616 5287//6616 +f 4982//6617 5288//6617 5287//6617 +f 4982//6618 4981//6618 5288//6618 +f 4976//6619 5239//6619 5289//6619 +f 4976//6620 4975//6620 5239//6620 +f 4981//6621 5289//6621 5288//6621 +f 4981//6622 4976//6622 5289//6622 +f 4980//6623 5267//6623 5290//6623 +f 4980//6624 5003//6624 5267//6624 +f 4979//6625 5290//6625 5291//6625 +f 4979//6626 4980//6626 5290//6626 +f 4974//6627 5291//6627 5292//6627 +f 4974//6628 4979//6628 5291//6628 +f 5092//6629 5292//6629 5093//6629 +f 5092//6630 4974//6630 5292//6630 +f 5036//6631 5293//6631 5039//6631 +f 5036//6632 5223//6632 5293//6632 +f 4859//6633 4858//6633 5185//6633 +f 4879//6357 5135//6357 5294//6357 +f 4879//6634 5294//6634 5295//6634 +f 4879//6634 5295//6634 4883//6634 +f 4876//6635 4882//6635 5296//6635 +f 4876//6635 5296//6635 5297//6635 +f 4876//6358 5297//6358 5136//6358 +f 5058//6636 5059//6636 5176//6636 +f 5192//6637 5298//6637 5047//6637 +f 5192//6638 5191//6638 5298//6638 +f 4835//6639 5233//6639 5299//6639 +f 4835//6640 5299//6640 4520//6640 +f 4511//6641 4510//6641 5300//6641 +f 4511//6642 5300//6642 5221//6642 +f 5185//6643 5301//6643 5219//6643 +f 5173//6644 5184//6644 5302//6644 +f 5173//6645 5302//6645 5236//6645 +f 5185//6646 4857//6646 5301//6646 +f 5185//6647 4858//6647 4857//6647 +f 5116//6648 5303//6648 5139//6648 +f 5116//6649 5228//6649 5303//6649 +f 5079//6650 5115//6650 5304//6650 +f 5079//6651 5304//6651 5212//6651 +f 5084//6512 5305//6512 5238//6512 +f 5084//6652 5071//6652 5305//6652 +f 5077//6653 5237//6653 5306//6653 +f 5077//6653 5306//6653 5085//6653 +f 5085//6506 5306//6506 5234//6506 +f 5071//6652 5235//6652 5305//6652 +f 5100//6495 5307//6495 5227//6495 +f 5100//6654 5213//6654 5308//6654 +f 5100//6654 5308//6654 5307//6654 +f 5072//6655 5226//6655 5309//6655 +f 5072//6655 5309//6655 5214//6655 +f 4487//6656 5236//6656 4488//6656 +f 4520//6657 5310//6657 4521//6657 +f 4520//6658 5299//6658 5310//6658 +f 5132//6659 5161//6659 5311//6659 +f 5132//6660 5311//6660 5218//6660 +f 5160//6661 5219//6661 5312//6661 +f 5160//6662 5312//6662 5211//6662 +f 4966//6663 5040//6663 5313//6663 +f 4966//6664 5313//6664 5222//6664 +f 5039//6665 5293//6665 5314//6665 +f 5039//6666 5314//6666 5061//6666 +f 5105//6667 5315//6667 5168//6667 +f 5043//6668 5170//6668 5316//6668 +f 5043//6668 5316//6668 5106//6668 +f 5105//6669 5163//6669 5315//6669 +f 4661//6670 5203//6670 5317//6670 +f 4661//6670 5317//6670 4662//6670 +f 4656//6671 4657//6671 5318//6671 +f 4656//6460 5318//6460 5202//6460 +f 4521//6672 5310//6672 5319//6672 +f 4521//6673 5319//6673 4518//6673 +f 4510//6674 4517//6674 5320//6674 +f 4510//6675 5320//6675 5321//6675 +f 4510//6676 5321//6676 5300//6676 +f 4857//6677 4856//6677 5301//6677 +f 4488//6678 5236//6678 5322//6678 +f 4488//6679 5322//6679 4489//6679 +f 5219//6680 5323//6680 5312//6680 +f 5219//6681 5301//6681 5323//6681 +f 5184//6682 5218//6682 5324//6682 +f 5184//6683 5324//6683 5302//6683 +f 5139//6684 5325//6684 5151//6684 +f 5139//6685 5303//6685 5325//6685 +f 5115//6686 5138//6686 5326//6686 +f 5115//6687 5326//6687 5304//6687 +f 4517//6688 4516//6688 5327//6688 +f 4517//6689 5327//6689 5320//6689 +f 4518//6690 5328//6690 4519//6690 +f 4518//6691 5319//6691 5328//6691 +f 5117//6502 5329//6502 5231//6502 +f 5075//6692 5330//6692 5119//6692 +f 5075//6692 5331//6692 5330//6692 +f 5075//6692 5232//6692 5331//6692 +f 5117//6693 5332//6693 5329//6693 +f 5117//6335 5230//6335 5332//6335 +f 4971//6694 5137//6694 5333//6694 +f 4971//6695 5333//6695 5186//6695 +f 4970//6696 5166//6696 5334//6696 +f 4970//6697 5334//6697 5134//6697 +f 4489//6698 5322//6698 4490//6698 +f 5301//6699 5322//6699 5323//6699 +f 5236//6700 5302//6700 5335//6700 +f 5236//6701 5335//6701 5322//6701 +f 5301//6702 4491//6702 5322//6702 +f 5301//6703 4854//6703 4491//6703 +f 5301//6704 4855//6704 4854//6704 +f 5301//6705 4856//6705 4855//6705 +f 4657//6671 5336//6671 5318//6671 +f 4657//6706 4658//6706 5336//6706 +f 4662//6707 5317//6707 5337//6707 +f 4662//6707 5337//6707 4708//6707 +f 4519//6708 5328//6708 5338//6708 +f 4519//6709 5338//6709 4522//6709 +f 4516//6710 4515//6710 5339//6710 +f 4516//6711 5339//6711 5327//6711 +f 5213//6712 5340//6712 5308//6712 +f 5214//6713 5309//6713 5341//6713 +f 5214//6714 5341//6714 5215//6714 +f 5213//6715 5204//6715 5340//6715 +f 4522//6716 5342//6716 5046//6716 +f 4515//6717 5343//6717 5344//6717 +f 4515//6718 4514//6718 5343//6718 +f 4515//6719 5344//6719 5339//6719 +f 4522//6720 5338//6720 5342//6720 +f 5166//6721 5225//6721 5334//6721 +f 5078//6722 5186//6722 5345//6722 +f 5078//6722 5345//6722 5167//6722 +f 5168//6723 5315//6723 5346//6723 +f 5169//6724 5205//6724 5347//6724 +f 5169//6724 5347//6724 5170//6724 +f 5168//6464 5346//6464 5204//6464 +f 5151//6725 5348//6725 5153//6725 +f 5151//6726 5325//6726 5348//6726 +f 5138//6727 5150//6727 5349//6727 +f 5138//6728 5349//6728 5326//6728 +f 5161//6729 5212//6729 5350//6729 +f 5161//6730 5350//6730 5311//6730 +f 5211//6731 5312//6731 5351//6731 +f 5211//6732 5351//6732 5228//6732 +f 5121//6733 5215//6733 5352//6733 +f 5121//6733 5352//6733 5205//6733 +f 5204//6734 5346//6734 5340//6734 +f 4491//6735 4490//6735 5322//6735 +f 5046//6736 5342//6736 5353//6736 +f 4514//6737 5047//6737 5354//6737 +f 4514//6738 5354//6738 5343//6738 +f 5046//6739 5353//6739 5048//6739 +f 5061//6740 5355//6740 5086//6740 +f 5061//6741 5314//6741 5355//6741 +f 4708//6742 5337//6742 5356//6742 +f 4708//6742 5356//6742 4709//6742 +f 4658//6743 4659//6743 5357//6743 +f 4658//6706 5357//6706 5336//6706 +f 5040//6744 5088//6744 5358//6744 +f 5040//6745 5358//6745 5313//6745 +f 5047//6746 5359//6746 5360//6746 +f 5047//6747 5361//6747 5359//6747 +f 5047//6637 5298//6637 5361//6637 +f 5047//6748 5360//6748 5354//6748 +f 5048//6749 5362//6749 5059//6749 +f 5048//6750 5353//6750 5362//6750 +f 5153//6751 5348//6751 5363//6751 +f 5150//6752 5152//6752 5364//6752 +f 5150//6753 5364//6753 5349//6753 +f 5153//6754 5363//6754 5158//6754 +f 5298//6638 5191//6638 5361//6638 +f 5158//6755 5365//6755 5165//6755 +f 5152//6756 5159//6756 5366//6756 +f 5152//6757 5366//6757 5364//6757 +f 5158//6758 5363//6758 5365//6758 +f 5059//6636 5367//6636 5176//6636 +f 5059//6759 5368//6759 5367//6759 +f 5059//6760 5369//6760 5368//6760 +f 5059//6760 5370//6760 5369//6760 +f 5059//6761 5371//6761 5370//6761 +f 5059//6762 5362//6762 5371//6762 +f 5044//6401 5372//6401 5163//6401 +f 5044//6763 5125//6763 5372//6763 +f 4942//6764 5162//6764 5373//6764 +f 4942//6764 5373//6764 5045//6764 +f 5322//6765 5335//6765 5323//6765 +f 4709//6766 5356//6766 5374//6766 +f 4709//6766 5374//6766 4710//6766 +f 4659//6743 5375//6743 5357//6743 +f 4659//6767 4660//6767 5375//6767 +f 5165//6768 5365//6768 5376//6768 +f 5159//6769 5164//6769 5377//6769 +f 5159//6770 5377//6770 5366//6770 +f 5165//6771 5376//6771 5175//6771 +f 5323//6772 5335//6772 5378//6772 +f 5323//6773 5378//6773 5312//6773 +f 5302//6774 5379//6774 5380//6774 +f 5302//6774 5324//6774 5379//6774 +f 5302//6775 5380//6775 5335//6775 +f 4710//6776 5374//6776 5381//6776 +f 4710//6776 5381//6776 4802//6776 +f 4660//6767 5382//6767 5375//6767 +f 4660//6777 4652//6777 5382//6777 +f 4652//4021 4653//4021 5383//4021 +f 4802//6778 5381//6778 5384//6778 +f 4802//6778 5384//6778 4801//6778 +f 4652//6777 5383//6777 5382//6777 +f 5312//6779 5378//6779 5351//6779 +f 5218//6780 5311//6780 5385//6780 +f 5218//6781 5385//6781 5324//6781 +f 4883//6634 5295//6634 5386//6634 +f 4883//6782 5386//6782 5387//6782 +f 4883//6782 5387//6782 4887//6782 +f 4882//6783 4885//6783 5388//6783 +f 4882//6783 5388//6783 5389//6783 +f 4882//6635 5389//6635 5296//6635 +f 5093//6784 5292//6784 5094//6784 +f 5228//6785 5351//6785 5390//6785 +f 5228//6786 5390//6786 5303//6786 +f 5207//6787 5391//6787 5392//6787 +f 5207//6787 5392//6787 5208//6787 +f 5209//6788 5216//6788 5393//6788 +f 5209//6789 5394//6789 5210//6789 +f 5209//6789 5393//6789 5394//6789 +f 5207//6790 5231//6790 5391//6790 +f 5216//6788 5395//6788 5393//6788 +f 5216//6791 5227//6791 5395//6791 +f 5208//6792 5392//6792 5396//6792 +f 5208//6792 5396//6792 5217//6792 +f 5175//6793 5397//6793 5189//6793 +f 5175//6794 5376//6794 5397//6794 +f 5367//6795 5368//6795 5176//6795 +f 5361//6796 5191//6796 5359//6796 +f 4653//4021 5398//4021 5383//4021 +f 4801//6797 5384//6797 5399//6797 +f 4801//6797 5399//6797 4800//6797 +f 4653//3186 4721//3186 5398//3186 +f 5230//6798 5400//6798 5332//6798 +f 5230//6799 5200//6799 5400//6799 +f 5118//6800 5401//6800 5229//6800 +f 5118//6801 5119//6801 5401//6801 +f 5114//6802 5402//6802 5201//6802 +f 5114//6802 5229//6802 5402//6802 +f 5200//6803 5234//6803 5400//6803 +f 4800//3194 5399//3194 5403//3194 +f 4800//3194 5403//3194 4799//3194 +f 4721//3186 5404//3186 5398//3186 +f 4721//3193 4715//3193 5404//3193 +f 4799//3198 5403//3198 5405//3198 +f 4799//3198 5405//3198 4648//3198 +f 4715//3193 5406//3193 5404//3193 +f 4715//3199 4716//3199 5406//3199 +f 5189//6804 5397//6804 5407//6804 +f 5189//6805 5407//6805 5206//6805 +f 5164//6806 5188//6806 5408//6806 +f 5164//6807 5408//6807 5409//6807 +f 5164//6808 5409//6808 5377//6808 +f 4648//3214 5405//3214 5410//3214 +f 4648//3214 5410//3214 4649//3214 +f 4716//3199 5411//3199 5406//3199 +f 4716//6809 4722//6809 5412//6809 +f 4716//6810 5412//6810 5411//6810 +f 5217//6811 5396//6811 5413//6811 +f 5217//6811 5413//6811 5226//6811 +f 5227//6812 5307//6812 5414//6812 +f 5227//6791 5414//6791 5395//6791 +f 5212//6813 5304//6813 5415//6813 +f 5212//6814 5415//6814 5350//6814 +f 5303//6815 5390//6815 5416//6815 +f 5303//6816 5416//6816 5325//6816 +f 4649//6817 5410//6817 5417//6817 +f 4649//6818 5417//6818 4803//6818 +f 4722//6819 4636//6819 5412//6819 +f 4805//6820 5418//6820 5419//6820 +f 4805//6821 5419//6821 4806//6821 +f 4805//6822 4804//6822 5418//6822 +f 4723//6823 5420//6823 4637//6823 +f 4723//6824 5421//6824 5420//6824 +f 4723//6825 4724//6825 5421//6825 +f 5335//6826 5422//6826 5378//6826 +f 5335//6827 5380//6827 5422//6827 +f 4804//6828 5423//6828 5418//6828 +f 4804//6829 4803//6829 5423//6829 +f 4637//6830 5424//6830 4636//6830 +f 4637//6831 5420//6831 5424//6831 +f 5231//6832 5329//6832 5425//6832 +f 5210//6833 5426//6833 5232//6833 +f 5210//6833 5394//6833 5426//6833 +f 5231//6790 5425//6790 5391//6790 +f 5088//6834 5087//6834 5427//6834 +f 5088//6835 5427//6835 5358//6835 +f 5086//6836 5428//6836 5146//6836 +f 5086//6837 5355//6837 5428//6837 +f 4806//6838 5419//6838 5429//6838 +f 4806//6838 5429//6838 4807//6838 +f 4724//6825 5430//6825 5421//6825 +f 4724//6839 4717//6839 5430//6839 +f 5309//6840 5431//6840 5432//6840 +f 5309//6841 5432//6841 5341//6841 +f 5308//6842 5340//6842 5433//6842 +f 5308//6843 5433//6843 5434//6843 +f 5308//6654 5434//6654 5307//6654 +f 5309//6655 5226//6655 5431//6655 +f 5106//6844 5316//6844 5435//6844 +f 5106//6844 5435//6844 5162//6844 +f 5163//6845 5372//6845 5436//6845 +f 5163//6669 5436//6669 5315//6669 +f 4803//6829 5417//6829 5423//6829 +f 4636//6819 5424//6819 5412//6819 +f 4807//6846 5429//6846 5437//6846 +f 4807//6846 5437//6846 4808//6846 +f 4717//6839 5438//6839 5430//6839 +f 4717//6847 4718//6847 5438//6847 +f 5206//6848 5439//6848 5223//6848 +f 5206//6849 5407//6849 5439//6849 +f 5225//6850 5238//6850 5440//6850 +f 5167//6851 5345//6851 5441//6851 +f 5167//6851 5441//6851 5224//6851 +f 5225//6721 5440//6721 5334//6721 +f 5378//6852 5442//6852 5351//6852 +f 5324//6853 5385//6853 5443//6853 +f 5324//6854 5443//6854 5379//6854 +f 5378//6855 5422//6855 5442//6855 +f 4808//6856 5437//6856 5444//6856 +f 4808//6856 5444//6856 4809//6856 +f 4718//6847 5445//6847 5438//6847 +f 4718//6857 4726//6857 5445//6857 +f 5351//6858 5442//6858 5390//6858 +f 5311//6859 5350//6859 5446//6859 +f 5311//6860 5446//6860 5385//6860 +f 5234//6861 5306//6861 5447//6861 +f 5201//6862 5448//6862 5235//6862 +f 5201//6862 5402//6862 5448//6862 +f 5234//6803 5447//6803 5400//6803 +f 5137//6863 5136//6863 5449//6863 +f 5137//6864 5449//6864 5333//6864 +f 5134//6865 5450//6865 5135//6865 +f 5134//6866 5334//6866 5450//6866 +f 5307//6812 5451//6812 5414//6812 +f 5307//6867 5434//6867 5452//6867 +f 5307//6867 5452//6867 5451//6867 +f 5226//6868 5413//6868 5453//6868 +f 5226//6868 5453//6868 5431//6868 +f 4809//6869 5444//6869 5454//6869 +f 4809//6869 5454//6869 5081//6869 +f 4726//6870 5083//6870 5455//6870 +f 4726//6857 5455//6857 5445//6857 +f 4887//6782 5387//6782 5456//6782 +f 4887//6871 5456//6871 5457//6871 +f 4887//6871 5457//6871 4893//6871 +f 4885//6872 4890//6872 5458//6872 +f 4885//6872 5458//6872 5459//6872 +f 4885//6783 5459//6783 5388//6783 +f 5238//6850 5460//6850 5440//6850 +f 5224//6873 5441//6873 5461//6873 +f 5224//6873 5461//6873 5237//6873 +f 5238//6874 5305//6874 5460//6874 +f 5223//6875 5439//6875 5462//6875 +f 5188//6876 5222//6876 5463//6876 +f 5188//6877 5463//6877 5408//6877 +f 5223//6878 5462//6878 5293//6878 +f 5304//6879 5326//6879 5464//6879 +f 5304//6880 5464//6880 5415//6880 +f 5325//6881 5416//6881 5465//6881 +f 5325//6882 5465//6882 5348//6882 +f 5379//6883 5443//6883 5466//6883 +f 5379//6884 5466//6884 5380//6884 +f 5081//6885 5454//6885 5467//6885 +f 5081//6885 5467//6885 5082//6885 +f 5083//6886 5096//6886 5468//6886 +f 5083//6870 5468//6870 5455//6870 +f 5305//6874 5469//6874 5460//6874 +f 5305//6887 5235//6887 5469//6887 +f 5237//6888 5461//6888 5470//6888 +f 5237//6888 5470//6888 5306//6888 +f 5422//6889 5380//6889 5471//6889 +f 5422//6890 5471//6890 5442//6890 +f 5306//6861 5470//6861 5447//6861 +f 5235//6887 5448//6887 5469//6887 +f 5340//6734 5346//6734 5472//6734 +f 5340//6891 5472//6891 5433//6891 +f 5215//6892 5341//6892 5473//6892 +f 5215//6892 5473//6892 5352//6892 +f 5082//6893 5467//6893 5474//6893 +f 5082//6893 5474//6893 5090//6893 +f 5096//6894 5475//6894 5476//6894 +f 5096//6895 5476//6895 5477//6895 +f 5096//6896 5477//6896 5478//6896 +f 5096//6897 5478//6897 5479//6897 +f 5096//6898 5479//6898 5480//6898 +f 5096//6899 5480//6899 5481//6899 +f 5096//6894 5095//6894 5475//6894 +f 5096//6886 5481//6886 5468//6886 +f 4631//6900 5099//6900 4630//6900 +f 4524//6901 4526//6901 5098//6901 +f 5390//6902 5482//6902 5416//6902 +f 5390//6903 5442//6903 5482//6903 +f 5098//6904 5483//6904 5097//6904 +f 5098//6904 5484//6904 5483//6904 +f 5099//6905 5103//6905 5485//6905 +f 5099//6906 5485//6906 4630//6906 +f 5098//6907 4526//6907 5484//6907 +f 5094//6908 5292//6908 5095//6908 +f 5380//6909 5466//6909 5471//6909 +f 5103//6905 5486//6905 5485//6905 +f 5103//6910 5109//6910 5486//6910 +f 5097//6911 5487//6911 5104//6911 +f 5097//6911 5483//6911 5487//6911 +f 5087//6912 5120//6912 5488//6912 +f 5087//6913 5488//6913 5427//6913 +f 5146//6914 5489//6914 5145//6914 +f 5146//6915 5428//6915 5489//6915 +f 5129//6916 5130//6916 5490//6916 +f 5129//6917 5490//6917 5265//6917 +f 5198//6918 5241//6918 5199//6918 +f 5179//6919 5180//6919 5239//6919 +f 5095//6920 5477//6920 5475//6920 +f 5095//6921 5491//6921 5477//6921 +f 5095//6922 5292//6922 5491//6922 +f 5287//6923 5492//6923 5493//6923 +f 5287//6924 5288//6924 5492//6924 +f 5289//6925 5494//6925 5495//6925 +f 5289//6926 5239//6926 5494//6926 +f 5239//6927 5496//6927 5494//6927 +f 5239//6928 5181//6928 5496//6928 +f 5239//6929 5180//6929 5181//6929 +f 5288//6930 5495//6930 5492//6930 +f 5288//6931 5289//6931 5495//6931 +f 5283//6932 5497//6932 5498//6932 +f 5283//6933 5284//6933 5497//6933 +f 5285//6934 5499//6934 5500//6934 +f 5285//6935 5286//6935 5499//6935 +f 5286//6936 5493//6936 5499//6936 +f 5286//6937 5287//6937 5493//6937 +f 5284//6938 5500//6938 5497//6938 +f 5284//6939 5285//6939 5500//6939 +f 5279//6940 5501//6940 5502//6940 +f 5279//6941 5280//6941 5501//6941 +f 5281//6942 5503//6942 5504//6942 +f 5281//6943 5282//6943 5503//6943 +f 5282//6944 5498//6944 5503//6944 +f 5282//6945 5283//6945 5498//6945 +f 5280//6946 5504//6946 5501//6946 +f 5280//6947 5281//6947 5504//6947 +f 5275//6948 5505//6948 5506//6948 +f 5275//6949 5276//6949 5505//6949 +f 5277//6950 5507//6950 5508//6950 +f 5277//6951 5278//6951 5507//6951 +f 5278//6952 5502//6952 5507//6952 +f 5278//6953 5279//6953 5502//6953 +f 5276//6954 5508//6954 5505//6954 +f 5276//6955 5277//6955 5508//6955 +f 5271//6956 5509//6956 5510//6956 +f 5271//6957 5272//6957 5509//6957 +f 5273//6958 5511//6958 5512//6958 +f 5273//6959 5274//6959 5511//6959 +f 5274//6960 5506//6960 5511//6960 +f 5274//6961 5275//6961 5506//6961 +f 5272//6962 5512//6962 5509//6962 +f 5272//6963 5273//6963 5512//6963 +f 5266//6964 5513//6964 5514//6964 +f 5266//6965 5268//6965 5513//6965 +f 5269//6966 5515//6966 5516//6966 +f 5269//6967 5270//6967 5515//6967 +f 5270//6968 5510//6968 5515//6968 +f 5270//6969 5271//6969 5510//6969 +f 5268//6970 5516//6970 5513//6970 +f 5268//6971 5269//6971 5516//6971 +f 5291//6972 5517//6972 5518//6972 +f 5291//6973 5290//6973 5517//6973 +f 5290//6974 5519//6974 5517//6974 +f 5290//6975 5267//6975 5519//6975 +f 5267//6976 5514//6976 5519//6976 +f 5267//6977 5266//6977 5514//6977 +f 5292//6978 5518//6978 5491//6978 +f 5292//6979 5291//6979 5518//6979 +f 5241//6980 5520//6980 5521//6980 +f 5241//6981 5521//6981 5199//6981 +f 5241//6982 5240//6982 5522//6982 +f 5241//6983 5522//6983 5520//6983 +f 5240//6984 5243//6984 5523//6984 +f 5240//6985 5523//6985 5522//6985 +f 5243//6986 5242//6986 5524//6986 +f 5243//6987 5524//6987 5523//6987 +f 5242//6988 5245//6988 5525//6988 +f 5242//6989 5525//6989 5524//6989 +f 5245//6990 5244//6990 5526//6990 +f 5245//6991 5526//6991 5525//6991 +f 5244//6992 5247//6992 5527//6992 +f 5244//6993 5527//6993 5526//6993 +f 5247//6994 5246//6994 5528//6994 +f 5247//6995 5528//6995 5527//6995 +f 5246//6996 5249//6996 5529//6996 +f 5246//6997 5529//6997 5528//6997 +f 5249//6998 5248//6998 5530//6998 +f 5249//6999 5530//6999 5529//6999 +f 5248//7000 5251//7000 5531//7000 +f 5248//7001 5531//7001 5530//7001 +f 5251//7002 5250//7002 5532//7002 +f 5251//7003 5532//7003 5531//7003 +f 5250//7004 5253//7004 5533//7004 +f 5250//7005 5533//7005 5532//7005 +f 5253//7006 5252//7006 5534//7006 +f 5253//7007 5534//7007 5533//7007 +f 5252//7008 5255//7008 5535//7008 +f 5252//7009 5535//7009 5534//7009 +f 5255//7010 5254//7010 5536//7010 +f 5255//7011 5536//7011 5535//7011 +f 5254//7012 5257//7012 5537//7012 +f 5254//7013 5537//7013 5536//7013 +f 5257//7014 5256//7014 5538//7014 +f 5257//7015 5538//7015 5537//7015 +f 5256//7016 5259//7016 5539//7016 +f 5256//7017 5539//7017 5538//7017 +f 5259//7018 5258//7018 5540//7018 +f 5259//7019 5540//7019 5539//7019 +f 5258//7020 5261//7020 5541//7020 +f 5258//7021 5541//7021 5540//7021 +f 5261//7022 5260//7022 5542//7022 +f 5261//7023 5542//7023 5541//7023 +f 5260//7024 5263//7024 5543//7024 +f 5260//7025 5543//7025 5542//7025 +f 5263//7026 5262//7026 5544//7026 +f 5263//7027 5544//7027 5543//7027 +f 5262//7028 5264//7028 5545//7028 +f 5262//7029 5545//7029 5544//7029 +f 5264//7030 5265//7030 5546//7030 +f 5264//7031 5546//7031 5545//7031 +f 5265//7032 5490//7032 5546//7032 +f 5293//7033 5547//7033 5314//7033 +f 5293//7034 5462//7034 5547//7034 +f 4893//6871 5457//6871 5548//6871 +f 4893//7035 5548//7035 4892//7035 +f 4890//7036 4892//7036 5549//7036 +f 4890//7036 5549//7036 5550//7036 +f 4890//6872 5550//6872 5458//6872 +f 5326//7037 5349//7037 5551//7037 +f 5326//7038 5551//7038 5464//7038 +f 5348//7039 5465//7039 5552//7039 +f 5348//7040 5552//7040 5363//7040 +f 5315//6723 5553//6723 5346//6723 +f 5170//7041 5347//7041 5554//7041 +f 5170//7041 5554//7041 5316//7041 +f 5315//7042 5436//7042 5553//7042 +f 5368//7043 5369//7043 5176//7043 +f 5329//6832 5555//6832 5425//6832 +f 5232//7044 5556//7044 5331//7044 +f 5232//7044 5557//7044 5556//7044 +f 5232//7044 5426//7044 5557//7044 +f 5329//7045 5558//7045 5555//7045 +f 5329//6693 5559//6693 5558//6693 +f 5329//6693 5332//6693 5559//6693 +f 5334//7046 5440//7046 5450//7046 +f 5186//7047 5333//7047 5560//7047 +f 5186//7047 5560//7047 5345//7047 +f 5391//7048 5561//7048 5562//7048 +f 5391//7048 5562//7048 5392//7048 +f 5393//7049 5395//7049 5563//7049 +f 5393//7050 5564//7050 5394//7050 +f 5393//7050 5563//7050 5564//7050 +f 5391//7051 5425//7051 5561//7051 +f 5346//7052 5553//7052 5472//7052 +f 5205//7053 5352//7053 5565//7053 +f 5205//7053 5565//7053 5347//7053 +f 4892//7035 5548//7035 5549//7035 +f 5395//7049 5566//7049 5563//7049 +f 5395//7054 5414//7054 5566//7054 +f 5392//7055 5562//7055 5567//7055 +f 5392//7055 5567//7055 5396//7055 +f 5385//7056 5446//7056 5568//7056 +f 5385//7057 5568//7057 5443//7057 +f 5349//7058 5364//7058 5569//7058 +f 5349//7059 5569//7059 5551//7059 +f 5442//7060 5471//7060 5482//7060 +f 5363//7061 5552//7061 5570//7061 +f 5363//7062 5570//7062 5365//7062 +f 5416//7063 5571//7063 5465//7063 +f 5416//7064 5482//7064 5571//7064 +f 5350//7065 5415//7065 5572//7065 +f 5350//7066 5572//7066 5446//7066 +f 5365//7067 5573//7067 5376//7067 +f 5364//7068 5366//7068 5574//7068 +f 5364//7069 5574//7069 5569//7069 +f 5365//7070 5570//7070 5573//7070 +f 5434//7071 5575//7071 5452//7071 +f 5431//7072 5453//7072 5576//7072 +f 5431//7073 5576//7073 5432//7073 +f 5434//7074 5433//7074 5575//7074 +f 5369//7075 5370//7075 5577//7075 +f 5369//7076 5577//7076 5176//7076 +f 5104//7077 5578//7077 5110//7077 +f 5104//7077 5487//7077 5578//7077 +f 5109//6910 5579//6910 5486//6910 +f 5109//7078 5122//7078 5579//7078 +f 5475//6920 5477//6920 5476//6920 +f 5332//7079 5400//7079 5580//7079 +f 5332//7080 5580//7080 5559//7080 +f 5119//7081 5581//7081 5401//7081 +f 5119//7082 5330//7082 5581//7082 +f 5376//7083 5573//7083 5582//7083 +f 5366//7084 5377//7084 5583//7084 +f 5366//7085 5583//7085 5574//7085 +f 5376//7086 5582//7086 5397//7086 +f 5314//7087 5547//7087 5584//7087 +f 5314//7088 5584//7088 5355//7088 +f 5222//7089 5313//7089 5585//7089 +f 5222//7090 5585//7090 5463//7090 +f 5396//7091 5567//7091 5586//7091 +f 5396//7091 5586//7091 5413//7091 +f 5414//7092 5451//7092 5587//7092 +f 5414//7054 5587//7054 5566//7054 +f 5397//7093 5588//7093 5407//7093 +f 5397//7094 5582//7094 5588//7094 +f 5377//7095 5409//7095 5589//7095 +f 5377//7096 5589//7096 5583//7096 +f 5482//7097 5471//7097 5590//7097 +f 5482//7098 5590//7098 5571//7098 +f 5425//7099 5555//7099 5591//7099 +f 5394//7100 5592//7100 5426//7100 +f 5394//7100 5564//7100 5592//7100 +f 5425//7051 5591//7051 5561//7051 +f 5471//7101 5466//7101 5590//7101 +f 5443//7102 5568//7102 5593//7102 +f 5443//7103 5593//7103 5466//7103 +f 5136//7104 5297//7104 5594//7104 +f 5136//7105 5594//7105 5449//7105 +f 5135//7106 5450//7106 5595//7106 +f 5135//7107 5595//7107 5294//7107 +f 5110//7108 5596//7108 5123//7108 +f 5110//7108 5578//7108 5596//7108 +f 5122//7078 5597//7078 5579//7078 +f 5122//7109 5140//7109 5597//7109 +f 5120//7110 5147//7110 5598//7110 +f 5120//7111 5598//7111 5488//7111 +f 5145//7112 5489//7112 5599//7112 +f 5145//7113 5599//7113 5182//7113 +f 5130//7114 5131//7114 5600//7114 +f 5130//6916 5600//6916 5490//6916 +f 5229//7115 5601//7115 5402//7115 +f 5229//7115 5401//7115 5601//7115 +f 5400//7116 5447//7116 5580//7116 +f 5466//7117 5593//7117 5590//7117 +f 5045//7118 5373//7118 5602//7118 +f 5045//7118 5602//7118 5124//7118 +f 5125//7119 5202//7119 5603//7119 +f 5125//6763 5603//6763 5372//6763 +f 5407//7120 5588//7120 5604//7120 +f 5409//7121 5408//7121 5605//7121 +f 5409//7122 5605//7122 5589//7122 +f 5407//7123 5604//7123 5439//7123 +f 5465//7124 5606//7124 5552//7124 +f 5465//7125 5571//7125 5606//7125 +f 5415//7126 5464//7126 5607//7126 +f 5415//7127 5607//7127 5572//7127 +f 5600//7128 5131//7128 5608//7128 +f 5600//7129 5608//7129 5490//7129 +f 5090//7130 5474//7130 5609//7130 +f 5090//7130 5609//7130 5126//7130 +f 5131//7131 5610//7131 5608//7131 +f 5131//7132 5611//7132 5610//7132 +f 5131//7133 5612//7133 5611//7133 +f 5131//7134 5143//7134 5612//7134 +f 5199//7135 5521//7135 5195//7135 +f 5446//7136 5572//7136 5613//7136 +f 5446//7137 5613//7137 5568//7137 +f 5571//7138 5590//7138 5614//7138 +f 5571//7139 5614//7139 5606//7139 +f 5451//7092 5615//7092 5587//7092 +f 5451//6867 5452//6867 5616//6867 +f 5451//7140 5616//7140 5617//7140 +f 5451//7140 5617//7140 5615//7140 +f 5413//7141 5586//7141 5618//7141 +f 5413//7141 5618//7141 5619//7141 +f 5413//6868 5619//6868 5453//6868 +f 5452//7142 5575//7142 5620//7142 +f 5453//7143 5619//7143 5621//7143 +f 5453//7144 5621//7144 5576//7144 +f 5452//7145 5620//7145 5616//7145 +f 5590//7146 5593//7146 5614//7146 +f 5433//6891 5472//6891 5622//6891 +f 5433//7147 5622//7147 5575//7147 +f 5341//7148 5432//7148 5623//7148 +f 5341//7148 5623//7148 5473//7148 +f 5561//7149 5624//7149 5625//7149 +f 5561//7149 5625//7149 5562//7149 +f 5563//7150 5566//7150 5626//7150 +f 5563//7151 5627//7151 5564//7151 +f 5563//7151 5626//7151 5627//7151 +f 5561//7152 5591//7152 5624//7152 +f 5439//7153 5604//7153 5628//7153 +f 5439//7154 5628//7154 5462//7154 +f 5566//7150 5629//7150 5626//7150 +f 5566//7155 5587//7155 5629//7155 +f 5562//7156 5625//7156 5630//7156 +f 5562//7156 5630//7156 5567//7156 +f 5593//7157 5631//7157 5614//7157 +f 5593//7158 5568//7158 5631//7158 +f 5123//7159 5632//7159 5141//7159 +f 5123//7159 5596//7159 5632//7159 +f 5140//7109 5633//7109 5597//7109 +f 5140//7160 5148//7160 5633//7160 +f 5355//7161 5634//7161 5428//7161 +f 5355//7162 5584//7162 5634//7162 +f 5313//7163 5358//7163 5635//7163 +f 5313//7164 5635//7164 5585//7164 +f 5370//7165 5371//7165 5577//7165 +f 5359//7166 5191//7166 5360//7166 +f 5552//7167 5636//7167 5570//7167 +f 5552//7168 5606//7168 5636//7168 +f 5464//7169 5551//7169 5637//7169 +f 5464//7170 5637//7170 5607//7170 +f 5345//7171 5560//7171 5638//7171 +f 5345//7171 5638//7171 5441//7171 +f 5440//7172 5460//7172 5639//7172 +f 5440//7046 5639//7046 5450//7046 +f 5126//7173 5609//7173 5640//7173 +f 5126//7173 5640//7173 5142//7173 +f 5143//7174 5641//7174 5612//7174 +f 5143//7175 5642//7175 5641//7175 +f 5143//7176 5157//7176 5642//7176 +f 5447//7177 5470//7177 5643//7177 +f 5402//7178 5644//7178 5448//7178 +f 5402//7178 5601//7178 5644//7178 +f 5447//7116 5643//7116 5580//7116 +f 5570//7179 5645//7179 5573//7179 +f 5570//7180 5636//7180 5645//7180 +f 5551//7181 5569//7181 5646//7181 +f 5551//7182 5646//7182 5637//7182 +f 5614//7183 5631//7183 5647//7183 +f 5614//7184 5647//7184 5606//7184 +f 5568//7185 5613//7185 5648//7185 +f 5568//7186 5648//7186 5631//7186 +f 5567//7187 5630//7187 5649//7187 +f 5567//7187 5649//7187 5586//7187 +f 5587//7188 5615//7188 5650//7188 +f 5587//7155 5650//7155 5629//7155 +f 5141//7189 5651//7189 5149//7189 +f 5141//7189 5632//7189 5651//7189 +f 5148//7190 5154//7190 5652//7190 +f 5148//7160 5652//7160 5633//7160 +f 5147//7191 5183//7191 5653//7191 +f 5147//7192 5653//7192 5598//7192 +f 5182//7193 5599//7193 5654//7193 +f 5182//7194 5654//7194 5220//7194 +f 5573//7195 5655//7195 5582//7195 +f 5573//7196 5645//7196 5655//7196 +f 5569//7197 5574//7197 5656//7197 +f 5569//7198 5656//7198 5646//7198 +f 5408//7199 5463//7199 5657//7199 +f 5408//7200 5657//7200 5605//7200 +f 5462//7201 5628//7201 5658//7201 +f 5462//7202 5658//7202 5547//7202 +f 5559//7203 5659//7203 5558//7203 +f 5559//7204 5580//7204 5659//7204 +f 5330//7205 5660//7205 5581//7205 +f 5330//7206 5331//7206 5660//7206 +f 5591//7099 5555//7099 5661//7099 +f 5591//7207 5661//7207 5662//7207 +f 5564//7208 5663//7208 5592//7208 +f 5564//7208 5627//7208 5663//7208 +f 5591//7152 5662//7152 5624//7152 +f 5353//7209 5342//7209 5664//7209 +f 5343//7210 5354//7210 5665//7210 +f 5343//7211 5665//7211 5344//7211 +f 5353//7212 5664//7212 5362//7212 +f 5631//7213 5648//7213 5647//7213 +f 5441//7214 5638//7214 5666//7214 +f 5441//7214 5666//7214 5461//7214 +f 5460//7172 5667//7172 5639//7172 +f 5460//7215 5469//7215 5667//7215 +f 5624//7216 5668//7216 5669//7216 +f 5624//7216 5669//7216 5625//7216 +f 5626//7217 5629//7217 5668//7217 +f 5626//7218 5670//7218 5627//7218 +f 5626//7218 5668//7218 5670//7218 +f 5624//7219 5662//7219 5668//7219 +f 5582//7220 5655//7220 5671//7220 +f 5574//7221 5583//7221 5672//7221 +f 5574//7222 5672//7222 5656//7222 +f 5582//7223 5671//7223 5588//7223 +f 5572//7224 5607//7224 5673//7224 +f 5572//7225 5673//7225 5613//7225 +f 5606//7226 5647//7226 5636//7226 +f 5426//7227 5674//7227 5557//7227 +f 5426//7227 5675//7227 5674//7227 +f 5426//7227 5592//7227 5675//7227 +f 5555//7228 5676//7228 5661//7228 +f 5555//7045 5677//7045 5676//7045 +f 5555//7045 5558//7045 5677//7045 +f 5629//7217 5669//7217 5668//7217 +f 5629//7229 5650//7229 5669//7229 +f 5625//7230 5669//7230 5678//7230 +f 5625//7230 5678//7230 5630//7230 +f 5149//7231 5679//7231 5155//7231 +f 5149//7231 5651//7231 5679//7231 +f 5154//7232 5171//7232 5680//7232 +f 5154//7190 5680//7190 5652//7190 +f 5362//7233 5681//7233 5371//7233 +f 5354//7234 5682//7234 5683//7234 +f 5354//7235 5684//7235 5682//7235 +f 5354//7236 5685//7236 5684//7236 +f 5354//7236 5360//7236 5685//7236 +f 5354//7237 5683//7237 5665//7237 +f 5362//7238 5664//7238 5681//7238 +f 5142//7239 5640//7239 5686//7239 +f 5142//7239 5686//7239 5191//7239 +f 5157//7176 5687//7176 5642//7176 +f 5157//7240 5174//7240 5687//7240 +f 5360//7166 5191//7166 5685//7166 +f 5450//7241 5639//7241 5595//7241 +f 5333//7242 5449//7242 5688//7242 +f 5333//7242 5688//7242 5560//7242 +f 4526//7243 4527//7243 5484//7243 +f 5472//7244 5689//7244 5622//7244 +f 5472//7052 5553//7052 5689//7052 +f 5352//7245 5473//7245 5690//7245 +f 5352//7245 5690//7245 5565//7245 +f 5668//7219 5662//7219 5670//7219 +f 5371//7165 5691//7165 5577//7165 +f 5371//7246 5692//7246 5691//7246 +f 5371//7247 5693//7247 5692//7247 +f 5371//7248 5681//7248 5693//7248 +f 5469//7215 5694//7215 5667//7215 +f 5469//7249 5448//7249 5694//7249 +f 5461//7250 5666//7250 5695//7250 +f 5461//7250 5695//7250 5470//7250 +f 5616//7251 5696//7251 5617//7251 +f 5619//7252 5618//7252 5697//7252 +f 5619//7253 5697//7253 5621//7253 +f 5616//7254 5620//7254 5696//7254 +f 5297//7255 5296//7255 5698//7255 +f 5297//7256 5698//7256 5594//7256 +f 5294//7257 5699//7257 5295//7257 +f 5294//7258 5595//7258 5699//7258 +f 5470//7177 5695//7177 5643//7177 +f 5448//7249 5644//7249 5694//7249 +f 5588//7259 5700//7259 5604//7259 +f 5583//7260 5589//7260 5701//7260 +f 5583//7261 5701//7261 5672//7261 +f 5588//7262 5671//7262 5700//7262 +f 5316//7263 5554//7263 5702//7263 +f 5316//7263 5702//7263 5435//7263 +f 5436//7264 5703//7264 5704//7264 +f 5436//6845 5372//6845 5703//6845 +f 5436//7042 5704//7042 5553//7042 +f 5669//7229 5650//7229 5678//7229 +f 5181//7265 5172//7265 5496//7265 +f 5496//7266 5705//7266 5494//7266 +f 5496//7265 5172//7265 5705//7265 +f 5523//7267 5524//7267 5706//7267 +f 5523//7268 5706//7268 5707//7268 +f 5520//7269 5522//7269 5708//7269 +f 5520//7270 5708//7270 5709//7270 +f 5527//7271 5528//7271 5710//7271 +f 5527//7272 5710//7272 5711//7272 +f 5525//7273 5526//7273 5712//7273 +f 5525//7274 5712//7274 5713//7274 +f 5531//7275 5532//7275 5714//7275 +f 5531//7276 5714//7276 5715//7276 +f 5529//7277 5530//7277 5716//7277 +f 5529//7278 5716//7278 5717//7278 +f 5535//7279 5536//7279 5718//7279 +f 5535//7280 5718//7280 5719//7280 +f 5533//7281 5534//7281 5720//7281 +f 5533//7282 5720//7282 5721//7282 +f 5539//7283 5540//7283 5722//7283 +f 5539//7284 5722//7284 5723//7284 +f 5537//7285 5538//7285 5724//7285 +f 5537//7286 5724//7286 5725//7286 +f 5543//7287 5544//7287 5726//7287 +f 5543//7288 5726//7288 5727//7288 +f 5541//7289 5542//7289 5728//7289 +f 5541//7290 5728//7290 5729//7290 +f 5545//7291 5546//7291 5730//7291 +f 5545//7292 5730//7292 5731//7292 +f 5544//7293 5545//7293 5731//7293 +f 5544//7294 5731//7294 5726//7294 +f 5608//7295 5611//7295 5732//7295 +f 5608//7295 5610//7295 5611//7295 +f 5490//7296 5608//7296 5732//7296 +f 5490//7297 5732//7297 5733//7297 +f 5546//7298 5490//7298 5733//7298 +f 5546//7299 5733//7299 5730//7299 +f 5542//7300 5543//7300 5727//7300 +f 5542//7301 5727//7301 5728//7301 +f 5540//7302 5541//7302 5729//7302 +f 5540//7303 5729//7303 5722//7303 +f 5538//7304 5539//7304 5723//7304 +f 5538//7305 5723//7305 5724//7305 +f 5536//7306 5537//7306 5725//7306 +f 5536//7307 5725//7307 5718//7307 +f 5534//7308 5535//7308 5719//7308 +f 5534//7309 5719//7309 5720//7309 +f 5532//7310 5533//7310 5721//7310 +f 5532//7311 5721//7311 5714//7311 +f 5530//7312 5531//7312 5715//7312 +f 5530//7313 5715//7313 5716//7313 +f 5528//7314 5529//7314 5717//7314 +f 5528//7315 5717//7315 5710//7315 +f 5526//7316 5527//7316 5711//7316 +f 5526//7317 5711//7317 5712//7317 +f 5524//7318 5525//7318 5713//7318 +f 5524//7319 5713//7319 5706//7319 +f 5522//7320 5523//7320 5707//7320 +f 5522//7321 5707//7321 5708//7321 +f 5521//7322 5734//7322 5195//7322 +f 5520//7323 5709//7323 5735//7323 +f 5520//7324 5735//7324 5736//7324 +f 5520//7325 5736//7325 5737//7325 +f 5520//7325 5737//7325 5734//7325 +f 5521//7326 5520//7326 5734//7326 +f 5477//7327 5479//7327 5478//7327 +f 5477//7327 5738//7327 5479//7327 +f 5477//7328 5739//7328 5738//7328 +f 5477//7329 5491//7329 5739//7329 +f 5491//7330 5740//7330 5739//7330 +f 5491//7331 5518//7331 5740//7331 +f 5518//7332 5741//7332 5740//7332 +f 5518//7333 5517//7333 5741//7333 +f 5517//7334 5742//7334 5741//7334 +f 5517//7335 5519//7335 5742//7335 +f 5519//7336 5743//7336 5742//7336 +f 5519//7337 5514//7337 5743//7337 +f 5514//7338 5744//7338 5743//7338 +f 5514//7339 5513//7339 5744//7339 +f 5513//7340 5745//7340 5744//7340 +f 5513//7341 5516//7341 5745//7341 +f 5516//7342 5746//7342 5745//7342 +f 5516//7343 5515//7343 5746//7343 +f 5515//7344 5747//7344 5746//7344 +f 5515//7345 5510//7345 5747//7345 +f 5510//7346 5748//7346 5747//7346 +f 5510//7347 5509//7347 5748//7347 +f 5509//7348 5749//7348 5748//7348 +f 5509//7349 5512//7349 5749//7349 +f 5512//7350 5750//7350 5749//7350 +f 5512//7351 5511//7351 5750//7351 +f 5511//7352 5751//7352 5750//7352 +f 5511//7353 5506//7353 5751//7353 +f 5506//7354 5752//7354 5751//7354 +f 5506//7355 5505//7355 5752//7355 +f 5505//7356 5753//7356 5752//7356 +f 5505//7357 5508//7357 5753//7357 +f 5508//7358 5754//7358 5753//7358 +f 5508//7359 5507//7359 5754//7359 +f 5507//7360 5755//7360 5754//7360 +f 5507//7361 5502//7361 5755//7361 +f 5502//7362 5756//7362 5755//7362 +f 5502//7363 5501//7363 5756//7363 +f 5501//7364 5757//7364 5756//7364 +f 5501//7365 5504//7365 5757//7365 +f 5504//7366 5758//7366 5757//7366 +f 5504//7367 5503//7367 5758//7367 +f 5503//7368 5759//7368 5758//7368 +f 5503//7369 5498//7369 5759//7369 +f 5498//7370 5760//7370 5759//7370 +f 5498//7371 5497//7371 5760//7371 +f 5497//7372 5761//7372 5760//7372 +f 5497//7373 5500//7373 5761//7373 +f 5500//7374 5762//7374 5761//7374 +f 5500//7375 5499//7375 5762//7375 +f 5499//7376 5763//7376 5762//7376 +f 5499//7377 5493//7377 5763//7377 +f 5493//7378 5764//7378 5763//7378 +f 5493//7379 5492//7379 5764//7379 +f 5492//7380 5765//7380 5764//7380 +f 5492//7381 5495//7381 5765//7381 +f 5495//7382 5766//7382 5765//7382 +f 5495//7383 5494//7383 5766//7383 +f 5494//7384 5767//7384 5766//7384 +f 5494//7385 5768//7385 5767//7385 +f 5494//7266 5769//7266 5768//7266 +f 5494//7266 5705//7266 5769//7266 +f 5547//7386 5770//7386 5584//7386 +f 5547//7387 5658//7387 5770//7387 +f 5155//7388 5771//7388 5172//7388 +f 5155//7388 5679//7388 5771//7388 +f 5171//7389 5176//7389 5772//7389 +f 5171//7232 5772//7232 5680//7232 +f 5734//7390 5737//7390 5195//7390 +f 5630//7391 5678//7391 5773//7391 +f 5630//7391 5773//7391 5649//7391 +f 5650//7392 5774//7392 5678//7392 +f 5650//7188 5615//7188 5774//7188 +f 5615//7140 5617//7140 5775//7140 +f 5615//7393 5775//7393 5774//7393 +f 5586//7394 5649//7394 5776//7394 +f 5586//7394 5776//7394 5777//7394 +f 5586//7141 5777//7141 5618//7141 +f 5191//7395 5686//7395 5684//7395 +f 5191//7166 5684//7166 5685//7166 +f 5174//7240 5778//7240 5687//7240 +f 5174//7396 5187//7396 5778//7396 +f 5604//7397 5700//7397 5779//7397 +f 5589//7398 5605//7398 5780//7398 +f 5589//7399 5780//7399 5701//7399 +f 5604//7400 5779//7400 5628//7400 +f 5347//7401 5565//7401 5781//7401 +f 5347//7401 5781//7401 5554//7401 +f 5553//7402 5704//7402 5689//7402 +f 5172//7265 5769//7265 5705//7265 +f 5172//7403 5782//7403 5769//7403 +f 5172//7404 5771//7404 5782//7404 +f 5176//7405 5577//7405 5783//7405 +f 5176//7389 5783//7389 5772//7389 +f 5607//7406 5637//7406 5784//7406 +f 5607//7407 5784//7407 5673//7407 +f 5636//7408 5647//7408 5785//7408 +f 5636//7409 5785//7409 5645//7409 +f 5662//7410 5786//7410 5670//7410 +f 5662//7207 5661//7207 5786//7207 +f 5627//7411 5787//7411 5663//7411 +f 5627//7411 5670//7411 5787//7411 +f 5647//7412 5648//7412 5785//7412 +f 5613//7413 5673//7413 5788//7413 +f 5613//7414 5788//7414 5648//7414 +f 4630//7415 5485//7415 4629//7415 +f 5575//7147 5622//7147 5789//7147 +f 5575//7416 5789//7416 5620//7416 +f 5432//7417 5576//7417 5790//7417 +f 5432//7417 5790//7417 5623//7417 +f 5428//7418 5634//7418 5791//7418 +f 5428//7419 5791//7419 5489//7419 +f 5358//7420 5427//7420 5792//7420 +f 5358//7421 5792//7421 5635//7421 +f 5678//7392 5774//7392 5773//7392 +f 5183//7422 5221//7422 5793//7422 +f 5183//7423 5793//7423 5653//7423 +f 5220//7424 5654//7424 5794//7424 +f 5220//7425 5794//7425 5233//7425 +f 5372//7426 5603//7426 5703//7426 +f 5162//7427 5435//7427 5795//7427 +f 5162//7427 5795//7427 5373//7427 +f 5577//7428 5691//7428 5796//7428 +f 5577//7405 5796//7405 5783//7405 +f 5648//7429 5788//7429 5785//7429 +f 5637//7430 5646//7430 5797//7430 +f 5637//7431 5797//7431 5784//7431 +f 5645//7432 5785//7432 5798//7432 +f 5645//7433 5798//7433 5655//7433 +f 5187//7434 5190//7434 5799//7434 +f 5187//7396 5799//7396 5778//7396 +f 5691//7246 5692//7246 5800//7246 +f 5691//7435 5800//7435 5796//7435 +f 5670//7410 5786//7410 5787//7410 +f 5646//7436 5656//7436 5801//7436 +f 5646//7437 5801//7437 5797//7437 +f 5655//7438 5802//7438 5671//7438 +f 5655//7439 5798//7439 5802//7439 +f 5584//7440 5770//7440 5803//7440 +f 5463//7441 5585//7441 5804//7441 +f 5463//7442 5804//7442 5657//7442 +f 5584//7443 5803//7443 5634//7443 +f 5618//7444 5777//7444 5805//7444 +f 5618//7445 5805//7445 5697//7445 +f 5617//7446 5696//7446 5806//7446 +f 5617//7447 5806//7447 5775//7447 +f 5800//7448 5692//7448 5796//7448 +f 5684//7449 5686//7449 5682//7449 +f 5190//7434 5807//7434 5799//7434 +f 5190//7450 5193//7450 5807//7450 +f 5628//7451 5808//7451 5658//7451 +f 5628//7452 5779//7452 5808//7452 +f 5401//7453 5809//7453 5601//7453 +f 5401//7453 5581//7453 5809//7453 +f 5580//7454 5643//7454 5659//7454 +f 5193//7450 5810//7450 5807//7450 +f 5193//7455 5194//7455 5810//7455 +f 5656//7456 5672//7456 5811//7456 +f 5656//7457 5811//7457 5801//7457 +f 5671//7458 5812//7458 5700//7458 +f 5671//7459 5802//7459 5812//7459 +f 5194//7455 5813//7455 5810//7455 +f 5194//7460 5195//7460 5813//7460 +f 5737//7390 5736//7390 5195//7390 +f 5195//7460 5814//7460 5813//7460 +f 5195//7461 5736//7461 5735//7461 +f 5195//7461 5735//7461 5815//7461 +f 5195//7462 5815//7462 5816//7462 +f 5195//7463 5816//7463 5814//7463 +f 5233//7464 5817//7464 5299//7464 +f 5233//7465 5794//7465 5817//7465 +f 5774//7393 5775//7393 5818//7393 +f 5774//7466 5818//7466 5773//7466 +f 5649//7467 5773//7467 5819//7467 +f 5649//7467 5819//7467 5776//7467 +f 5785//7468 5788//7468 5798//7468 +f 5673//7469 5784//7469 5820//7469 +f 5673//7470 5820//7470 5788//7470 +f 5769//7471 5821//7471 5768//7471 +f 5769//7472 5782//7472 5821//7472 +f 5296//7473 5389//7473 5822//7473 +f 5296//7474 5822//7474 5698//7474 +f 5295//7475 5699//7475 5823//7475 +f 5295//7476 5823//7476 5386//7476 +f 5202//7119 5824//7119 5603//7119 +f 5202//7477 5318//7477 5824//7477 +f 5124//7478 5602//7478 5825//7478 +f 5124//7478 5825//7478 5203//7478 +f 5672//7479 5701//7479 5826//7479 +f 5672//7480 5826//7480 5811//7480 +f 5700//7481 5827//7481 5779//7481 +f 5700//7482 5812//7482 5827//7482 +f 5592//7483 5828//7483 5675//7483 +f 5592//7483 5829//7483 5828//7483 +f 5592//7483 5663//7483 5829//7483 +f 5661//7484 5830//7484 5786//7484 +f 5661//7228 5831//7228 5830//7228 +f 5661//7228 5676//7228 5831//7228 +f 5768//7485 5821//7485 5767//7485 +f 5558//7486 5659//7486 5832//7486 +f 5331//7487 5833//7487 5660//7487 +f 5331//7488 5556//7488 5833//7488 +f 5558//7489 5832//7489 5677//7489 +f 5773//7466 5818//7466 5819//7466 +f 5788//7490 5820//7490 5798//7490 +f 5798//7491 5820//7491 5802//7491 +f 5784//7492 5797//7492 5834//7492 +f 5784//7493 5834//7493 5820//7493 +f 5221//7494 5300//7494 5835//7494 +f 5221//7495 5835//7495 5793//7495 +f 5299//7496 5817//7496 5836//7496 +f 5299//7497 5836//7497 5310//7497 +f 5797//7498 5801//7498 5837//7498 +f 5797//7499 5837//7499 5834//7499 +f 5802//7500 5834//7500 5812//7500 +f 5802//7501 5820//7501 5834//7501 +f 5658//7502 5838//7502 5770//7502 +f 5658//7503 5808//7503 5838//7503 +f 5605//7504 5839//7504 5780//7504 +f 5605//7505 5657//7505 5840//7505 +f 5605//7506 5840//7506 5839//7506 +f 5777//7507 5776//7507 5841//7507 +f 5777//7507 5841//7507 5805//7507 +f 5775//7508 5842//7508 5818//7508 +f 5775//7509 5806//7509 5842//7509 +f 5479//7510 5738//7510 5480//7510 +f 5611//7511 5612//7511 5732//7511 +f 5412//7512 5843//7512 5411//7512 +f 5412//7513 5424//7513 5843//7513 +f 5410//3227 5844//3227 5845//3227 +f 5410//7514 5845//7514 5417//7514 +f 5410//3214 5405//3214 5844//3214 +f 5421//7515 5430//7515 5846//7515 +f 5421//7516 5847//7516 5420//7516 +f 5421//7517 5846//7517 5847//7517 +f 5418//7518 5848//7518 5849//7518 +f 5418//7519 5849//7519 5419//7519 +f 5418//7520 5423//7520 5848//7520 +f 5423//7521 5417//7521 5850//7521 +f 5423//7522 5850//7522 5848//7522 +f 5812//7523 5834//7523 5837//7523 +f 5812//7524 5837//7524 5827//7524 +f 5801//7525 5811//7525 5851//7525 +f 5801//7526 5851//7526 5837//7526 +f 5420//7527 5852//7527 5424//7527 +f 5420//7528 5847//7528 5852//7528 +f 5779//7529 5827//7529 5853//7529 +f 5701//7530 5780//7530 5854//7530 +f 5701//7531 5854//7531 5826//7531 +f 5779//7532 5853//7532 5808//7532 +f 5419//7533 5849//7533 5855//7533 +f 5419//7533 5855//7533 5429//7533 +f 5430//7534 5438//7534 5856//7534 +f 5430//7515 5856//7515 5846//7515 +f 5639//7535 5667//7535 5857//7535 +f 5560//7536 5688//7536 5858//7536 +f 5560//7536 5858//7536 5638//7536 +f 5639//7241 5857//7241 5595//7241 +f 5612//7511 5859//7511 5732//7511 +f 5612//7537 5860//7537 5859//7537 +f 5612//7538 5861//7538 5860//7538 +f 5612//7539 5862//7539 5861//7539 +f 5612//7540 5863//7540 5862//7540 +f 5612//7541 5641//7541 5863//7541 +f 5417//7521 5845//7521 5850//7521 +f 5424//7513 5852//7513 5843//7513 +f 5429//7542 5855//7542 5864//7542 +f 5429//7542 5864//7542 5437//7542 +f 5438//7543 5445//7543 5865//7543 +f 5438//7534 5865//7534 5856//7534 +f 5620//7416 5789//7416 5866//7416 +f 5620//7544 5866//7544 5696//7544 +f 5576//7545 5621//7545 5867//7545 +f 5576//7545 5867//7545 5790//7545 +f 5300//7546 5321//7546 5868//7546 +f 5300//7547 5868//7547 5835//7547 +f 5489//7548 5869//7548 5599//7548 +f 5489//7549 5791//7549 5869//7549 +f 5427//7550 5488//7550 5870//7550 +f 5427//7551 5870//7551 5792//7551 +f 5310//7552 5871//7552 5319//7552 +f 5310//7553 5836//7553 5871//7553 +f 5837//7554 5851//7554 5827//7554 +f 5595//7555 5857//7555 5699//7555 +f 5449//7556 5594//7556 5872//7556 +f 5449//7556 5872//7556 5688//7556 +f 5643//7557 5695//7557 5873//7557 +f 5601//7558 5874//7558 5644//7558 +f 5601//7558 5809//7558 5874//7558 +f 5643//7454 5873//7454 5659//7454 +f 5473//7559 5623//7559 5875//7559 +f 5473//7559 5875//7559 5690//7559 +f 5622//7244 5689//7244 5876//7244 +f 5622//7560 5876//7560 5789//7560 +f 5827//7561 5851//7561 5853//7561 +f 5811//7562 5826//7562 5877//7562 +f 5811//7563 5877//7563 5851//7563 +f 5767//7564 5821//7564 5878//7564 +f 5767//7565 5878//7565 5766//7565 +f 5738//7566 5879//7566 5880//7566 +f 5738//7567 5881//7567 5879//7567 +f 5738//7568 5739//7568 5881//7568 +f 5738//7510 5880//7510 5480//7510 +f 5732//7569 5859//7569 5860//7569 +f 5732//7570 5860//7570 5733//7570 +f 5735//7571 5709//7571 5815//7571 +f 5437//7572 5864//7572 5882//7572 +f 5437//7572 5882//7572 5444//7572 +f 5445//7573 5455//7573 5883//7573 +f 5445//7543 5883//7543 5865//7543 +f 5878//7564 5821//7564 5884//7564 +f 5878//7574 5885//7574 5766//7574 +f 5878//7575 5884//7575 5885//7575 +f 5765//7576 5885//7576 5886//7576 +f 5765//7577 5766//7577 5885//7577 +f 5763//7578 5887//7578 5888//7578 +f 5763//7579 5764//7579 5887//7579 +f 5764//7580 5886//7580 5887//7580 +f 5764//7581 5765//7581 5886//7581 +f 5761//7582 5889//7582 5890//7582 +f 5761//7583 5762//7583 5889//7583 +f 5762//7584 5888//7584 5889//7584 +f 5762//7585 5763//7585 5888//7585 +f 5759//7586 5891//7586 5892//7586 +f 5759//7587 5760//7587 5891//7587 +f 5760//7588 5890//7588 5891//7588 +f 5760//7589 5761//7589 5890//7589 +f 5757//7590 5893//7590 5894//7590 +f 5757//7591 5758//7591 5893//7591 +f 5758//7592 5892//7592 5893//7592 +f 5758//7593 5759//7593 5892//7593 +f 5755//7594 5895//7594 5896//7594 +f 5755//7595 5756//7595 5895//7595 +f 5756//7596 5894//7596 5895//7596 +f 5756//7597 5757//7597 5894//7597 +f 5753//7598 5897//7598 5898//7598 +f 5753//7599 5754//7599 5897//7599 +f 5754//7600 5896//7600 5897//7600 +f 5754//7601 5755//7601 5896//7601 +f 5751//7602 5899//7602 5900//7602 +f 5751//7603 5752//7603 5899//7603 +f 5752//7604 5898//7604 5899//7604 +f 5752//7605 5753//7605 5898//7605 +f 5749//7606 5901//7606 5902//7606 +f 5749//7607 5750//7607 5901//7607 +f 5750//7608 5900//7608 5901//7608 +f 5750//7609 5751//7609 5900//7609 +f 5747//7610 5903//7610 5904//7610 +f 5747//7611 5748//7611 5903//7611 +f 5748//7612 5902//7612 5903//7612 +f 5748//7613 5749//7613 5902//7613 +f 5745//7614 5905//7614 5906//7614 +f 5745//7615 5746//7615 5905//7615 +f 5746//7616 5904//7616 5905//7616 +f 5746//7617 5747//7617 5904//7617 +f 5743//7618 5907//7618 5908//7618 +f 5743//7619 5744//7619 5907//7619 +f 5744//7620 5906//7620 5907//7620 +f 5744//7621 5745//7621 5906//7621 +f 5741//7622 5909//7622 5910//7622 +f 5741//7623 5742//7623 5909//7623 +f 5742//7624 5908//7624 5909//7624 +f 5742//7625 5743//7625 5908//7625 +f 5740//7626 5910//7626 5911//7626 +f 5740//7627 5741//7627 5910//7627 +f 5739//7628 5911//7628 5881//7628 +f 5739//7629 5740//7629 5911//7629 +f 5709//7630 5912//7630 5913//7630 +f 5709//7631 5913//7631 5816//7631 +f 5709//7631 5816//7631 5815//7631 +f 5709//7632 5708//7632 5914//7632 +f 5709//7633 5914//7633 5912//7633 +f 5708//7634 5707//7634 5915//7634 +f 5708//7635 5915//7635 5914//7635 +f 5707//7636 5706//7636 5916//7636 +f 5707//7637 5916//7637 5915//7637 +f 5706//7638 5713//7638 5917//7638 +f 5706//7639 5917//7639 5916//7639 +f 5713//7640 5712//7640 5918//7640 +f 5713//7641 5918//7641 5917//7641 +f 5712//7642 5711//7642 5919//7642 +f 5712//7643 5919//7643 5918//7643 +f 5711//7644 5710//7644 5920//7644 +f 5711//7645 5920//7645 5919//7645 +f 5710//7646 5717//7646 5921//7646 +f 5710//7647 5921//7647 5920//7647 +f 5717//7648 5716//7648 5922//7648 +f 5717//7649 5922//7649 5921//7649 +f 5716//7650 5715//7650 5923//7650 +f 5716//7651 5923//7651 5922//7651 +f 5715//7652 5714//7652 5924//7652 +f 5715//7653 5924//7653 5923//7653 +f 5714//7654 5721//7654 5925//7654 +f 5714//7655 5925//7655 5924//7655 +f 5721//7656 5720//7656 5926//7656 +f 5721//7657 5926//7657 5925//7657 +f 5720//7658 5719//7658 5927//7658 +f 5720//7659 5927//7659 5926//7659 +f 5719//7660 5718//7660 5928//7660 +f 5719//7661 5928//7661 5927//7661 +f 5718//7662 5725//7662 5929//7662 +f 5718//7663 5929//7663 5928//7663 +f 5725//7664 5724//7664 5930//7664 +f 5725//7665 5930//7665 5929//7665 +f 5724//7666 5723//7666 5931//7666 +f 5724//7667 5931//7667 5930//7667 +f 5723//7668 5722//7668 5932//7668 +f 5723//7669 5932//7669 5931//7669 +f 5722//7670 5729//7670 5933//7670 +f 5722//7671 5933//7671 5932//7671 +f 5729//7672 5728//7672 5934//7672 +f 5729//7673 5934//7673 5933//7673 +f 5728//7674 5727//7674 5935//7674 +f 5728//7675 5935//7675 5934//7675 +f 5727//7676 5726//7676 5936//7676 +f 5727//7677 5936//7677 5935//7677 +f 5731//7678 5937//7678 5938//7678 +f 5726//7679 5731//7679 5938//7679 +f 5726//7680 5938//7680 5936//7680 +f 5731//7681 5730//7681 5939//7681 +f 5731//7682 5939//7682 5937//7682 +f 5730//7683 5733//7683 5940//7683 +f 5730//7684 5940//7684 5939//7684 +f 5733//7685 5860//7685 5940//7685 +f 5770//7686 5941//7686 5803//7686 +f 5770//7687 5838//7687 5941//7687 +f 5663//7688 5942//7688 5829//7688 +f 5663//7688 5787//7688 5942//7688 +f 5786//7689 5943//7689 5787//7689 +f 5786//7484 5944//7484 5943//7484 +f 5786//7484 5830//7484 5944//7484 +f 5585//7690 5635//7690 5945//7690 +f 5585//7691 5945//7691 5804//7691 +f 5634//7692 5803//7692 5946//7692 +f 5634//7693 5946//7693 5791//7693 +f 5808//7694 5947//7694 5838//7694 +f 5808//7695 5853//7695 5947//7695 +f 5851//7696 5877//7696 5853//7696 +f 5780//7697 5839//7697 5948//7697 +f 5780//7698 5948//7698 5854//7698 +f 5667//7535 5949//7535 5857//7535 +f 5638//7699 5858//7699 5950//7699 +f 5638//7699 5950//7699 5666//7699 +f 5667//7700 5694//7700 5949//7700 +f 5319//7701 5871//7701 5951//7701 +f 5319//7702 5951//7702 5328//7702 +f 5321//7703 5320//7703 5952//7703 +f 5321//7704 5952//7704 5868//7704 +f 5692//7705 5693//7705 5796//7705 +f 5682//7706 5686//7706 5683//7706 +f 5444//7707 5882//7707 5953//7707 +f 5444//7707 5953//7707 5454//7707 +f 5455//7573 5954//7573 5883//7573 +f 5455//7708 5468//7708 5954//7708 +f 5776//7709 5819//7709 5955//7709 +f 5776//7709 5955//7709 5841//7709 +f 5818//7508 5842//7508 5956//7508 +f 5818//7710 5956//7710 5819//7710 +f 5787//7689 5943//7689 5942//7689 +f 5826//7711 5854//7711 5957//7711 +f 5826//7712 5957//7712 5877//7712 +f 5853//7713 5877//7713 5947//7713 +f 5480//7714 5958//7714 5481//7714 +f 5480//7510 5880//7510 5959//7510 +f 5480//7715 5959//7715 5879//7715 +f 5480//7716 5879//7716 5958//7716 +f 5389//7717 5388//7717 5960//7717 +f 5389//7718 5960//7718 5822//7718 +f 5386//7719 5961//7719 5387//7719 +f 5386//7720 5823//7720 5961//7720 +f 5880//7566 5879//7566 5959//7566 +f 5694//7700 5962//7700 5949//7700 +f 5694//7721 5644//7721 5962//7721 +f 5666//7722 5950//7722 5963//7722 +f 5666//7722 5963//7722 5695//7722 +f 5695//7557 5963//7557 5873//7557 +f 5644//7721 5874//7721 5962//7721 +f 5819//7710 5956//7710 5955//7710 +f 5320//7723 5327//7723 5964//7723 +f 5320//7724 5964//7724 5952//7724 +f 5328//7725 5965//7725 5338//7725 +f 5328//7726 5951//7726 5965//7726 +f 5454//7727 5953//7727 5966//7727 +f 5454//7727 5966//7727 5467//7727 +f 5468//7708 5967//7708 5954//7708 +f 5468//7728 5481//7728 5967//7728 +f 5877//7729 5957//7729 5947//7729 +f 5677//7730 5968//7730 5676//7730 +f 5677//7731 5832//7731 5968//7731 +f 5556//7732 5969//7732 5833//7732 +f 5556//7733 5557//7733 5969//7733 +f 5838//7734 5947//7734 5970//7734 +f 5839//7735 5840//7735 5971//7735 +f 5839//7736 5971//7736 5948//7736 +f 5838//7737 5970//7737 5941//7737 +f 5803//7738 5941//7738 5972//7738 +f 5657//7739 5804//7739 5973//7739 +f 5657//7740 5973//7740 5840//7740 +f 5803//7741 5972//7741 5946//7741 +f 5467//7742 5966//7742 5974//7742 +f 5467//7742 5974//7742 5474//7742 +f 5481//7743 5958//7743 5975//7743 +f 5481//7744 5975//7744 5976//7744 +f 5481//7745 5976//7745 5977//7745 +f 5481//7746 5977//7746 5978//7746 +f 5481//7728 5978//7728 5967//7728 +f 4629//7747 5485//7747 4628//7747 +f 4527//7748 4528//7748 5484//7748 +f 5338//7749 5965//7749 5979//7749 +f 5338//7750 5979//7750 5342//7750 +f 5327//7751 5339//7751 5980//7751 +f 5327//7752 5980//7752 5964//7752 +f 5484//7753 5981//7753 5483//7753 +f 5484//7753 5982//7753 5981//7753 +f 5485//7754 5486//7754 5983//7754 +f 5485//7755 5983//7755 4628//7755 +f 5484//7756 4528//7756 5982//7756 +f 5947//7757 5957//7757 5970//7757 +f 5854//7758 5948//7758 5984//7758 +f 5854//7759 5984//7759 5957//7759 +f 5884//7760 5821//7760 5985//7760 +f 5884//7761 5985//7761 5885//7761 +f 5696//7544 5866//7544 5986//7544 +f 5696//7762 5986//7762 5806//7762 +f 5621//7763 5697//7763 5987//7763 +f 5621//7763 5987//7763 5867//7763 +f 5565//7764 5690//7764 5988//7764 +f 5565//7764 5988//7764 5781//7764 +f 5689//7402 5704//7402 5989//7402 +f 5689//7765 5989//7765 5876//7765 +f 5581//7766 5990//7766 5809//7766 +f 5581//7766 5660//7766 5990//7766 +f 5659//7767 5873//7767 5832//7767 +f 5486//7768 5579//7768 5991//7768 +f 5486//7754 5991//7754 5983//7754 +f 5483//7769 5992//7769 5487//7769 +f 5483//7769 5981//7769 5992//7769 +f 5816//7770 5993//7770 5814//7770 +f 5816//7771 5913//7771 5993//7771 +f 5957//7772 5984//7772 5970//7772 +f 5339//7773 5344//7773 5994//7773 +f 5339//7774 5994//7774 5980//7774 +f 5342//7775 5995//7775 5664//7775 +f 5342//7776 5979//7776 5995//7776 +f 5599//7777 5869//7777 5996//7777 +f 5599//7778 5996//7778 5654//7778 +f 5488//7779 5598//7779 5997//7779 +f 5488//7780 5997//7780 5870//7780 +f 5388//7781 5459//7781 5998//7781 +f 5388//7782 5998//7782 5960//7782 +f 5387//7783 5961//7783 5999//7783 +f 5387//7784 5999//7784 5456//7784 +f 5554//7785 5781//7785 6000//7785 +f 5554//7785 6000//7785 5702//7785 +f 5704//7264 5703//7264 6001//7264 +f 5704//7786 6001//7786 5989//7786 +f 5318//7787 5336//7787 6002//7787 +f 5203//7788 5825//7788 6003//7788 +f 5203//7788 6003//7788 5317//7788 +f 5318//7477 6002//7477 5824//7477 +f 5664//7789 5995//7789 6004//7789 +f 5344//7790 6005//7790 6006//7790 +f 5344//7790 5665//7790 6005//7790 +f 5344//7791 6006//7791 5994//7791 +f 5664//7792 6004//7792 5681//7792 +f 5913//7793 6007//7793 5993//7793 +f 5985//7794 5821//7794 6008//7794 +f 5912//7795 5914//7795 6009//7795 +f 5912//7796 6009//7796 6010//7796 +f 5912//7797 6010//7797 6011//7797 +f 5912//7798 6011//7798 6007//7798 +f 5913//7799 5912//7799 6007//7799 +f 5915//7800 5916//7800 6012//7800 +f 5915//7801 6012//7801 6013//7801 +f 5914//7802 5915//7802 6013//7802 +f 5914//7803 6013//7803 6009//7803 +f 5917//7804 5918//7804 6014//7804 +f 5917//7805 6014//7805 6015//7805 +f 5916//7806 5917//7806 6015//7806 +f 5916//7807 6015//7807 6012//7807 +f 5919//7808 5920//7808 6016//7808 +f 5919//7809 6016//7809 6017//7809 +f 5918//7810 5919//7810 6017//7810 +f 5918//7811 6017//7811 6014//7811 +f 5921//7812 5922//7812 6018//7812 +f 5921//7813 6018//7813 6019//7813 +f 5920//7814 5921//7814 6019//7814 +f 5920//7815 6019//7815 6016//7815 +f 5923//7816 5924//7816 6020//7816 +f 5923//7817 6020//7817 6021//7817 +f 5922//7818 5923//7818 6021//7818 +f 5922//7819 6021//7819 6018//7819 +f 5925//7820 5926//7820 6022//7820 +f 5925//7821 6022//7821 6023//7821 +f 5924//7822 5925//7822 6023//7822 +f 5924//7823 6023//7823 6020//7823 +f 5927//7824 5928//7824 6024//7824 +f 5927//7825 6024//7825 6025//7825 +f 5926//7826 5927//7826 6025//7826 +f 5926//7827 6025//7827 6022//7827 +f 5929//7828 5930//7828 6026//7828 +f 5929//7829 6026//7829 6027//7829 +f 5928//7830 5929//7830 6027//7830 +f 5928//7831 6027//7831 6024//7831 +f 5931//7832 5932//7832 6028//7832 +f 5931//7833 6028//7833 6029//7833 +f 5930//7834 5931//7834 6029//7834 +f 5930//7835 6029//7835 6026//7835 +f 5933//7836 5934//7836 6030//7836 +f 5933//7837 6030//7837 6031//7837 +f 5932//7838 5933//7838 6031//7838 +f 5932//7839 6031//7839 6028//7839 +f 5935//7840 5936//7840 6032//7840 +f 5935//7841 6032//7841 6033//7841 +f 5934//7842 5935//7842 6033//7842 +f 5934//7843 6033//7843 6030//7843 +f 5938//7844 5937//7844 6034//7844 +f 5938//7845 6034//7845 6035//7845 +f 5936//7846 5938//7846 6035//7846 +f 5936//7847 6035//7847 6032//7847 +f 5937//7848 5939//7848 6036//7848 +f 5937//7849 6036//7849 6034//7849 +f 5939//7850 5940//7850 6037//7850 +f 5939//7851 6037//7851 6036//7851 +f 5860//7852 5862//7852 6038//7852 +f 5860//7852 5861//7852 5862//7852 +f 5940//7853 5860//7853 6038//7853 +f 5940//7854 6038//7854 6037//7854 +f 5885//7855 5985//7855 6039//7855 +f 5985//7856 6008//7856 6039//7856 +f 5886//7857 6039//7857 6040//7857 +f 5886//7858 5885//7858 6039//7858 +f 5887//7859 6040//7859 6041//7859 +f 5887//7860 5886//7860 6040//7860 +f 5888//7861 6041//7861 6042//7861 +f 5888//7862 5887//7862 6041//7862 +f 5889//7863 6042//7863 6043//7863 +f 5889//7864 5888//7864 6042//7864 +f 5890//7865 6043//7865 6044//7865 +f 5890//7866 5889//7866 6043//7866 +f 5891//7867 6044//7867 6045//7867 +f 5891//7868 5890//7868 6044//7868 +f 5892//7869 6045//7869 6046//7869 +f 5892//7870 5891//7870 6045//7870 +f 5893//7871 6046//7871 6047//7871 +f 5893//7872 5892//7872 6046//7872 +f 5894//7873 6047//7873 6048//7873 +f 5894//7874 5893//7874 6047//7874 +f 5895//7875 6048//7875 6049//7875 +f 5895//7876 5894//7876 6048//7876 +f 5896//7877 6049//7877 6050//7877 +f 5896//7878 5895//7878 6049//7878 +f 5897//7879 6050//7879 6051//7879 +f 5897//7880 5896//7880 6050//7880 +f 5898//7881 6051//7881 6052//7881 +f 5898//7882 5897//7882 6051//7882 +f 5899//7883 6052//7883 6053//7883 +f 5899//7884 5898//7884 6052//7884 +f 5900//7885 6053//7885 6054//7885 +f 5900//7886 5899//7886 6053//7886 +f 5901//7887 6054//7887 6055//7887 +f 5901//7888 5900//7888 6054//7888 +f 5902//7889 6055//7889 6056//7889 +f 5902//7890 5901//7890 6055//7890 +f 5903//7891 6056//7891 6057//7891 +f 5903//7892 5902//7892 6056//7892 +f 5904//7893 6057//7893 6058//7893 +f 5904//7894 5903//7894 6057//7894 +f 5905//7895 6058//7895 6059//7895 +f 5905//7896 5904//7896 6058//7896 +f 5906//7897 6059//7897 6060//7897 +f 5906//7898 5905//7898 6059//7898 +f 5907//7899 6060//7899 6061//7899 +f 5907//7900 5906//7900 6060//7900 +f 5908//7901 6061//7901 6062//7901 +f 5908//7902 5907//7902 6061//7902 +f 5909//7903 6062//7903 6063//7903 +f 5909//7904 5908//7904 6062//7904 +f 5910//7905 6063//7905 6064//7905 +f 5910//7906 5909//7906 6063//7906 +f 5911//7907 6064//7907 6065//7907 +f 5911//7908 5910//7908 6064//7908 +f 5881//7909 6065//7909 6066//7909 +f 5881//7910 5911//7910 6065//7910 +f 5879//7911 5976//7911 6067//7911 +f 5879//7912 6066//7912 5976//7912 +f 5881//7913 6066//7913 5879//7913 +f 5879//7914 6067//7914 5958//7914 +f 5941//7915 5970//7915 6068//7915 +f 5941//7916 6068//7916 5972//7916 +f 5970//7917 5984//7917 6068//7917 +f 5948//7918 5971//7918 6069//7918 +f 5948//7919 6069//7919 5984//7919 +f 5681//7920 6070//7920 5693//7920 +f 5665//7921 6071//7921 6072//7921 +f 5665//7922 6073//7922 6071//7922 +f 5665//7923 5683//7923 6073//7923 +f 5665//7924 6072//7924 6005//7924 +f 5681//7925 6004//7925 6070//7925 +f 5635//7926 5792//7926 6074//7926 +f 5635//7927 6074//7927 5945//7927 +f 5791//7928 5946//7928 6075//7928 +f 5791//7929 6075//7929 5869//7929 +f 5683//7930 5686//7930 6073//7930 +f 5579//7768 6076//7768 5991//7768 +f 5579//7931 5597//7931 6076//7931 +f 5487//7932 6077//7932 5578//7932 +f 5487//7932 5992//7932 6077//7932 +f 6007//7933 6011//7933 5993//7933 +f 5699//7555 5857//7555 6078//7555 +f 5699//7934 6078//7934 5823//7934 +f 5594//7935 5698//7935 6079//7935 +f 5594//7935 6079//7935 5872//7935 +f 5693//7936 6080//7936 6081//7936 +f 5693//7937 6082//7937 6080//7937 +f 5693//7938 6070//7938 6082//7938 +f 5693//7939 6081//7939 5796//7939 +f 5623//7940 5790//7940 6083//7940 +f 5623//7940 6083//7940 5875//7940 +f 5789//7941 6084//7941 5866//7941 +f 5789//7560 5876//7560 6084//7560 +f 5984//7942 6069//7942 6068//7942 +f 5862//7943 5863//7943 6038//7943 +f 5958//7914 6067//7914 5975//7914 +f 5688//7944 5872//7944 6085//7944 +f 5688//7944 6085//7944 5858//7944 +f 5857//7945 5949//7945 6078//7945 +f 5676//7946 5968//7946 6086//7946 +f 5676//7947 6086//7947 5831//7947 +f 5557//7948 6087//7948 5969//7948 +f 5557//7949 5674//7949 6087//7949 +f 5806//7762 5986//7762 6088//7762 +f 5806//7950 6088//7950 5842//7950 +f 5697//7951 5805//7951 6089//7951 +f 5697//7951 6089//7951 5987//7951 +f 6067//7911 5976//7911 5975//7911 +f 6008//7952 5821//7952 6090//7952 +f 6008//7953 6090//7953 6039//7953 +f 5459//7954 5458//7954 6091//7954 +f 5459//7955 6091//7955 5998//7955 +f 5456//7956 6092//7956 5457//7956 +f 5456//7957 5999//7957 6092//7957 +f 5972//7958 6068//7958 6093//7958 +f 5840//7959 5973//7959 6094//7959 +f 5840//7960 6094//7960 5971//7960 +f 5972//7961 6093//7961 6095//7961 +f 5972//7962 6095//7962 5946//7962 +f 5873//7963 5963//7963 6096//7963 +f 5809//7964 6097//7964 5874//7964 +f 5809//7964 5990//7964 6097//7964 +f 5873//7767 6096//7767 5832//7767 +f 5336//7787 6098//7787 6002//7787 +f 5336//7965 5357//7965 6098//7965 +f 5317//7966 6003//7966 6099//7966 +f 5317//7966 6099//7966 5337//7966 +f 6011//7967 6100//7967 5993//7967 +f 6090//7968 5821//7968 6101//7968 +f 6046//7969 6102//7969 6103//7969 +f 6046//7970 6045//7970 6102//7970 +f 6042//7971 6104//7971 6105//7971 +f 6042//7972 6041//7972 6104//7972 +f 6040//7973 6106//7973 6107//7973 +f 6040//7974 6039//7974 6106//7974 +f 6044//7975 6108//7975 6109//7975 +f 6044//7976 6043//7976 6108//7976 +f 6054//7977 6110//7977 6111//7977 +f 6054//7978 6053//7978 6110//7978 +f 6050//7979 6112//7979 6113//7979 +f 6050//7980 6049//7980 6112//7980 +f 6048//7981 6114//7981 6115//7981 +f 6048//7982 6047//7982 6114//7982 +f 6052//7983 6116//7983 6117//7983 +f 6052//7984 6051//7984 6116//7984 +f 6062//7985 6118//7985 6119//7985 +f 6062//7986 6061//7986 6118//7986 +f 6058//7987 6120//7987 6121//7987 +f 6058//7988 6057//7988 6120//7988 +f 6056//7989 6122//7989 6123//7989 +f 6056//7990 6055//7990 6122//7990 +f 6060//7991 6124//7991 6125//7991 +f 6060//7992 6059//7992 6124//7992 +f 5976//7993 6126//7993 5977//7993 +f 5976//7994 6127//7994 6126//7994 +f 5976//7995 6066//7995 6127//7995 +f 6065//7996 6128//7996 6129//7996 +f 6065//7997 6064//7997 6128//7997 +f 6064//7998 6130//7998 6128//7998 +f 6064//7999 6063//7999 6130//7999 +f 6066//8000 6129//8000 6127//8000 +f 6066//8001 6065//8001 6129//8001 +f 6063//8002 6119//8002 6130//8002 +f 6063//8003 6062//8003 6119//8003 +f 6061//8004 6125//8004 6118//8004 +f 6061//8005 6060//8005 6125//8005 +f 6059//8006 6121//8006 6124//8006 +f 6059//8007 6058//8007 6121//8007 +f 6057//8008 6123//8008 6120//8008 +f 6057//8009 6056//8009 6123//8009 +f 6055//8010 6111//8010 6122//8010 +f 6055//8011 6054//8011 6111//8011 +f 6053//8012 6117//8012 6110//8012 +f 6053//8013 6052//8013 6117//8013 +f 6051//8014 6113//8014 6116//8014 +f 6051//8015 6050//8015 6113//8015 +f 6049//8016 6115//8016 6112//8016 +f 6049//8017 6048//8017 6115//8017 +f 6047//8018 6103//8018 6114//8018 +f 6047//8019 6046//8019 6103//8019 +f 6045//8020 6109//8020 6102//8020 +f 6045//8021 6044//8021 6109//8021 +f 6043//8022 6105//8022 6108//8022 +f 6043//8023 6042//8023 6105//8023 +f 6041//8024 6107//8024 6104//8024 +f 6041//8025 6040//8025 6107//8025 +f 6038//8026 5863//8026 6131//8026 +f 6038//8027 6131//8027 6126//8027 +f 6037//8028 6038//8028 6126//8028 +f 6037//8029 6126//8029 6127//8029 +f 6036//8030 6037//8030 6127//8030 +f 6036//8031 6127//8031 6129//8031 +f 6034//8032 6036//8032 6129//8032 +f 6034//8033 6129//8033 6128//8033 +f 6035//8034 6034//8034 6128//8034 +f 6035//8035 6128//8035 6130//8035 +f 6032//8036 6035//8036 6130//8036 +f 6032//8037 6130//8037 6119//8037 +f 6033//8038 6032//8038 6119//8038 +f 6033//8039 6119//8039 6118//8039 +f 6030//8040 6033//8040 6118//8040 +f 6030//8041 6118//8041 6125//8041 +f 6031//8042 6030//8042 6125//8042 +f 6031//8043 6125//8043 6124//8043 +f 6028//8044 6031//8044 6124//8044 +f 6028//8045 6124//8045 6121//8045 +f 6029//8046 6028//8046 6121//8046 +f 6029//8047 6121//8047 6120//8047 +f 6026//8048 6029//8048 6120//8048 +f 6026//8049 6120//8049 6123//8049 +f 6027//8050 6026//8050 6123//8050 +f 6027//8051 6123//8051 6122//8051 +f 6024//8052 6027//8052 6122//8052 +f 6024//8053 6122//8053 6111//8053 +f 6025//8054 6024//8054 6111//8054 +f 6025//8055 6111//8055 6110//8055 +f 6022//8056 6025//8056 6110//8056 +f 6022//8057 6110//8057 6117//8057 +f 6023//8058 6022//8058 6117//8058 +f 6023//8059 6117//8059 6116//8059 +f 6020//8060 6023//8060 6116//8060 +f 6020//8061 6116//8061 6113//8061 +f 6021//8062 6020//8062 6113//8062 +f 6021//8063 6113//8063 6112//8063 +f 6018//8064 6021//8064 6112//8064 +f 6018//8065 6112//8065 6115//8065 +f 6019//8066 6018//8066 6115//8066 +f 6019//8067 6115//8067 6114//8067 +f 6016//8068 6019//8068 6114//8068 +f 6016//8069 6114//8069 6103//8069 +f 6017//8070 6016//8070 6103//8070 +f 6017//8071 6103//8071 6102//8071 +f 6014//8072 6017//8072 6102//8072 +f 6014//8073 6102//8073 6109//8073 +f 6015//8074 6014//8074 6109//8074 +f 6015//8075 6109//8075 6108//8075 +f 6012//8076 6015//8076 6108//8076 +f 6012//8077 6108//8077 6105//8077 +f 6013//8078 6012//8078 6105//8078 +f 6013//8079 6105//8079 6104//8079 +f 6009//8080 6013//8080 6104//8080 +f 6009//8081 6104//8081 6107//8081 +f 6010//8082 6009//8082 6107//8082 +f 6010//8083 6107//8083 6106//8083 +f 6010//8084 6106//8084 6132//8084 +f 6010//8085 6132//8085 6100//8085 +f 6011//8086 6010//8086 6100//8086 +f 6039//8087 6090//8087 6106//8087 +f 6090//8088 6101//8088 6106//8088 +f 6131//8026 5863//8026 6133//8026 +f 6131//8027 6133//8027 6126//8027 +f 6068//8089 6069//8089 6093//8089 +f 5863//8090 5641//8090 6133//8090 +f 5946//8091 6095//8091 6075//8091 +f 5804//8092 5945//8092 6134//8092 +f 5804//8093 6134//8093 5973//8093 +f 6133//8094 5641//8094 6126//8094 +f 6100//8095 6132//8095 5993//8095 +f 6101//8096 5993//8096 6132//8096 +f 6101//8097 5821//8097 5993//8097 +f 6101//8098 6132//8098 6106//8098 +f 5977//8099 6126//8099 5978//8099 +f 5858//8100 6085//8100 6135//8100 +f 5858//8100 6135//8100 5950//8100 +f 5949//7945 6136//7945 6078//7945 +f 5949//8101 5962//8101 6136//8101 +f 6126//8102 5641//8102 5978//8102 +f 5597//8103 5633//8103 6137//8103 +f 5597//7931 6137//7931 6076//7931 +f 5578//8104 6138//8104 5596//8104 +f 5578//8104 6077//8104 6138//8104 +f 5654//8105 6139//8105 5794//8105 +f 5654//8106 5996//8106 6139//8106 +f 5598//8107 5653//8107 6140//8107 +f 5598//8108 6140//8108 5997//8108 +f 6081//8109 6080//8109 5796//8109 +f 5458//8110 5550//8110 6141//8110 +f 5458//8111 6141//8111 6091//8111 +f 5457//8112 6092//8112 6142//8112 +f 5457//8113 6142//8113 5548//8113 +f 5373//8114 5795//8114 6143//8114 +f 5373//8114 6143//8114 5602//8114 +f 5603//8115 5824//8115 6144//8115 +f 5603//7426 6144//7426 5703//7426 +f 5842//7950 6088//7950 6145//7950 +f 5842//8116 6145//8116 6146//8116 +f 5842//8116 6146//8116 5956//8116 +f 5805//8117 5841//8117 6147//8117 +f 5805//8117 6147//8117 6089//8117 +f 5474//8118 5974//8118 6148//8118 +f 5474//8118 6148//8118 5609//8118 +f 5641//8119 6149//8119 5978//8119 +f 5641//8120 5642//8120 6149//8120 +f 5962//8101 6150//8101 6136//8101 +f 5962//8121 5874//8121 6150//8121 +f 5950//8122 6135//8122 6151//8122 +f 5950//8122 6151//8122 5963//8122 +f 5337//8123 6099//8123 6152//8123 +f 5337//8123 6152//8123 5356//8123 +f 5357//8124 5375//8124 6153//8124 +f 5357//7965 6153//7965 6098//7965 +f 5963//7963 6151//7963 6096//7963 +f 5874//8121 6097//8121 6150//8121 +f 5831//8125 6154//8125 5830//8125 +f 5831//8126 6086//8126 6154//8126 +f 5674//8127 6155//8127 6087//8127 +f 5674//8128 5675//8128 6155//8128 +f 6073//8129 5686//8129 6071//8129 +f 5660//8130 6156//8130 5990//8130 +f 5660//8130 5833//8130 6156//8130 +f 5832//8131 6096//8131 5968//8131 +f 6093//8132 6069//8132 6157//8132 +f 5971//8133 6094//8133 6158//8133 +f 5971//8134 6158//8134 6069//8134 +f 6093//8135 6157//8135 6095//8135 +f 5550//8136 5549//8136 6159//8136 +f 5550//8136 6159//8136 6141//8136 +f 5548//8137 6160//8137 5549//8137 +f 5548//8138 6142//8138 6160//8138 +f 5703//8139 6144//8139 6001//8139 +f 5435//8140 5702//8140 6161//8140 +f 5435//8140 6161//8140 5795//8140 +f 5792//8141 5870//8141 6074//8141 +f 5869//8142 6162//8142 5996//8142 +f 5869//8143 6075//8143 6162//8143 +f 5356//8144 6152//8144 6163//8144 +f 5356//8144 6163//8144 5374//8144 +f 5375//8124 6164//8124 6153//8124 +f 5375//8145 5382//8145 6164//8145 +f 6069//8146 6158//8146 6157//8146 +f 5823//7934 6078//7934 6165//7934 +f 5823//8147 6165//8147 5961//8147 +f 5698//8148 5822//8148 6166//8148 +f 5698//8148 6166//8148 6079//8148 +f 5382//8145 6167//8145 6164//8145 +f 5382//8149 5383//8149 6168//8149 +f 5382//8149 6168//8149 6167//8149 +f 5374//8150 6163//8150 6169//8150 +f 5374//8151 6169//8151 5381//8151 +f 5790//8152 5867//8152 6170//8152 +f 5790//8152 6170//8152 6083//8152 +f 5866//7941 6084//7941 6171//7941 +f 5866//8153 6171//8153 5986//8153 +f 5381//2862 6169//2862 6172//2862 +f 5381//2862 6172//2862 5384//2862 +f 5383//8154 5398//8154 6168//8154 +f 5549//8137 6160//8137 6159//8137 +f 5690//8155 5875//8155 6173//8155 +f 5690//8155 6173//8155 5988//8155 +f 5876//7765 5989//7765 6174//7765 +f 5876//8156 6174//8156 6084//8156 +f 5633//8103 6175//8103 6137//8103 +f 5596//8157 6176//8157 5632//8157 +f 5596//8157 6138//8157 6176//8157 +f 5633//8158 5652//8158 6175//8158 +f 5609//8159 6148//8159 6177//8159 +f 5609//8159 6177//8159 5640//8159 +f 5642//8120 6178//8120 6149//8120 +f 5642//8160 5687//8160 6178//8160 +f 5384//2887 6172//2887 6179//2887 +f 5384//2887 6179//2887 5399//2887 +f 5398//8161 6180//8161 6168//8161 +f 5398//2886 5404//2886 6180//2886 +f 5956//8116 6146//8116 6181//8116 +f 5956//8162 6181//8162 6182//8162 +f 5956//8162 6182//8162 5955//8162 +f 5841//8163 5955//8163 6183//8163 +f 5841//8163 6183//8163 6184//8163 +f 5841//8117 6184//8117 6147//8117 +f 5830//8164 6154//8164 6185//8164 +f 5675//8165 6186//8165 6155//8165 +f 5675//8166 5828//8166 6186//8166 +f 5830//8167 6185//8167 5944//8167 +f 5794//8168 6139//8168 6187//8168 +f 5794//8169 6187//8169 5817//8169 +f 5653//8170 5793//8170 6188//8170 +f 5653//8171 6188//8171 6140//8171 +f 6095//8172 6189//8172 6075//8172 +f 5973//8173 6134//8173 6190//8173 +f 5973//8174 6190//8174 6094//8174 +f 6095//8175 6157//8175 6189//8175 +f 5399//2897 6179//2897 6191//2897 +f 5399//2897 6191//2897 5403//2897 +f 5404//2886 6192//2886 6180//2886 +f 5404//2896 5406//2896 6192//2896 +f 5652//8176 5680//8176 6193//8176 +f 5632//8177 6194//8177 5651//8177 +f 5632//8177 6176//8177 6194//8177 +f 5652//8158 6193//8158 6175//8158 +f 6078//8178 6136//8178 6165//8178 +f 5872//8179 6079//8179 6195//8179 +f 5872//8179 6195//8179 6085//8179 +f 6075//8180 6189//8180 6162//8180 +f 5945//8181 6074//8181 6196//8181 +f 5945//8182 6196//8182 6134//8182 +f 6080//8183 6082//8183 5796//8183 +f 5955//8162 6182//8162 6197//8162 +f 5955//8163 6197//8163 6183//8163 +f 5403//2898 6191//2898 6198//2898 +f 5403//2898 6198//2898 5405//2898 +f 5406//2896 6199//2896 6192//2896 +f 5406//2899 5411//2899 6199//2899 +f 6096//8184 6151//8184 6200//8184 +f 5990//8185 6201//8185 6097//8185 +f 5990//8185 6156//8185 6201//8185 +f 6096//8131 6200//8131 5968//8131 +f 5405//2914 6198//2914 6202//2914 +f 5405//2914 6202//2914 5844//2914 +f 5411//2899 6203//2899 6199//2899 +f 5411//2913 5843//2913 6203//2913 +f 6071//8186 5686//8186 6072//8186 +f 5944//8187 6204//8187 5943//8187 +f 5944//8188 6185//8188 6204//8188 +f 5828//8189 6205//8189 6186//8189 +f 5828//8190 5829//8190 6205//8190 +f 5781//8191 5988//8191 6206//8191 +f 5781//8191 6206//8191 6000//8191 +f 5989//8192 6207//8192 6174//8192 +f 5989//7786 6001//7786 6207//7786 +f 5680//8176 6208//8176 6193//8176 +f 5680//8193 5772//8193 6208//8193 +f 5651//8194 6209//8194 5679//8194 +f 5651//8194 6194//8194 6209//8194 +f 5640//8195 6177//8195 6210//8195 +f 5640//8195 6210//8195 5686//8195 +f 5687//8196 5778//8196 6211//8196 +f 5687//8160 6211//8160 6178//8160 +f 5844//2933 6202//2933 6212//2933 +f 5844//2933 6212//2933 5845//2933 +f 5843//2913 6213//2913 6203//2913 +f 5843//8197 5852//8197 6213//8197 +f 5817//8198 6214//8198 5836//8198 +f 5817//8199 6187//8199 6214//8199 +f 5848//8200 6215//8200 6216//8200 +f 5848//8200 6216//8200 5849//8200 +f 5848//8201 5850//8201 6215//8201 +f 5846//8202 6217//8202 5847//8202 +f 5846//8202 6218//8202 6217//8202 +f 5846//8203 5856//8203 6218//8203 +f 4528//8204 4529//8204 5982//8204 +f 5850//8201 6219//8201 6215//8201 +f 5850//8205 5845//8205 6219//8205 +f 5847//8206 6220//8206 5852//8206 +f 5847//8206 6217//8206 6220//8206 +f 6136//8178 6221//8178 6165//8178 +f 6085//8207 6195//8207 6222//8207 +f 6085//8207 6222//8207 6135//8207 +f 6136//8208 6150//8208 6221//8208 +f 5849//8209 6216//8209 6223//8209 +f 5849//8209 6223//8209 5855//8209 +f 5856//8203 6224//8203 6218//8203 +f 5856//8210 5865//8210 6224//8210 +f 5833//8211 6225//8211 6156//8211 +f 5833//8211 5969//8211 6225//8211 +f 5968//8212 6200//8212 6086//8212 +f 5961//8147 6165//8147 6226//8147 +f 5961//8213 6226//8213 5999//8213 +f 5822//8214 5960//8214 6227//8214 +f 5822//8214 6227//8214 6166//8214 +f 5845//8205 6212//8205 6219//8205 +f 5852//8197 6220//8197 6213//8197 +f 6157//8215 6158//8215 6228//8215 +f 6094//8216 6190//8216 6229//8216 +f 6094//8217 6229//8217 6158//8217 +f 6157//8218 6228//8218 6189//8218 +f 5867//8219 5987//8219 6230//8219 +f 5867//8219 6230//8219 6170//8219 +f 5986//8220 6231//8220 6088//8220 +f 5986//8153 6171//8153 6231//8153 +f 6070//8221 6232//8221 6082//8221 +f 6005//8222 6233//8222 6234//8222 +f 6005//8223 6072//8223 6233//8223 +f 6005//8224 6234//8224 6006//8224 +f 6070//7925 6004//7925 6232//7925 +f 5855//8225 6223//8225 6235//8225 +f 5855//8225 6235//8225 5864//8225 +f 5865//8210 6236//8210 6224//8210 +f 5865//8226 5883//8226 6236//8226 +f 5772//8227 5783//8227 6237//8227 +f 5772//8193 6237//8193 6208//8193 +f 5679//8228 6238//8228 5771//8228 +f 5679//8228 6209//8228 6238//8228 +f 5870//8229 5997//8229 6239//8229 +f 5870//8230 6239//8230 6074//8230 +f 5996//8231 6162//8231 6240//8231 +f 5996//8232 6240//8232 6139//8232 +f 5943//8233 6241//8233 5942//8233 +f 5943//8234 6204//8234 6241//8234 +f 5829//8235 6242//8235 6205//8235 +f 5829//8236 6243//8236 6242//8236 +f 5829//8237 5942//8237 6243//8237 +f 6150//8208 6244//8208 6221//8208 +f 6150//8238 6097//8238 6244//8238 +f 6135//8239 6222//8239 6245//8239 +f 6135//8239 6245//8239 6151//8239 +f 6151//8184 6245//8184 6200//8184 +f 6097//8238 6201//8238 6244//8238 +f 6072//8186 5686//8186 6233//8186 +f 5836//8240 6214//8240 6246//8240 +f 5836//8241 6246//8241 5871//8241 +f 5793//8242 5835//8242 6247//8242 +f 5793//8243 6247//8243 6188//8243 +f 6158//8244 6229//8244 6228//8244 +f 6082//8245 6248//8245 6249//8245 +f 6082//8245 6250//8245 6248//8245 +f 6082//8246 6251//8246 6250//8246 +f 6082//8247 6232//8247 6251//8247 +f 6082//8183 6249//8183 5796//8183 +f 5686//8248 6210//8248 6252//8248 +f 5686//8186 6252//8186 6233//8186 +f 5778//8249 5799//8249 6253//8249 +f 5778//8196 6253//8196 6211//8196 +f 5864//8250 6235//8250 6254//8250 +f 5864//8250 6254//8250 5882//8250 +f 5883//8226 6255//8226 6236//8226 +f 5883//8251 5954//8251 6255//8251 +f 5942//8252 6256//8252 6243//8252 +f 5942//8253 6241//8253 6256//8253 +f 5783//8227 6257//8227 6237//8227 +f 5771//8254 6258//8254 5782//8254 +f 5771//8254 6238//8254 6258//8254 +f 5783//8255 5796//8255 6257//8255 +f 6233//8256 6252//8256 6234//8256 +f 4628//8257 5983//8257 4627//8257 +f 6249//8258 6248//8258 5796//8258 +f 5882//8259 6254//8259 6259//8259 +f 5882//8259 6259//8259 5953//8259 +f 5954//8251 6260//8251 6255//8251 +f 5954//8260 5967//8260 6260//8260 +f 5796//8261 6248//8261 6261//8261 +f 5782//8262 6262//8262 5821//8262 +f 5782//8262 6258//8262 6262//8262 +f 5796//8255 6261//8255 6257//8255 +f 5835//8263 5868//8263 6263//8263 +f 5835//8264 6263//8264 6247//8264 +f 5871//8265 6264//8265 5951//8265 +f 5871//8266 6246//8266 6264//8266 +f 5799//8267 5807//8267 6265//8267 +f 5799//8249 6265//8249 6253//8249 +f 6084//8156 6174//8156 6266//8156 +f 6084//8268 6266//8268 6171//8268 +f 5875//8269 6083//8269 6267//8269 +f 5875//8269 6267//8269 6173//8269 +f 6189//8270 6268//8270 6162//8270 +f 6134//8271 6196//8271 6269//8271 +f 6134//8272 6269//8272 6190//8272 +f 6189//8273 6228//8273 6268//8273 +f 6252//8274 6270//8274 6234//8274 +f 6252//8275 6210//8275 6270//8275 +f 6248//8276 6250//8276 6261//8276 +f 6079//8277 6166//8277 6271//8277 +f 6079//8277 6271//8277 6195//8277 +f 6165//8278 6221//8278 6226//8278 +f 5807//8267 6272//8267 6265//8267 +f 5807//8279 5810//8279 6272//8279 +f 5953//8280 6259//8280 6273//8280 +f 5953//8280 6273//8280 5966//8280 +f 5967//8260 6274//8260 6260//8260 +f 5967//8281 5978//8281 6274//8281 +f 5821//8282 6275//8282 5993//8282 +f 5821//8282 6262//8282 6275//8282 +f 6162//8283 6268//8283 6240//8283 +f 5999//8213 6226//8213 6276//8213 +f 5999//8284 6276//8284 6092//8284 +f 5960//8285 5998//8285 6277//8285 +f 5960//8285 6277//8285 6227//8285 +f 5810//8286 5813//8286 6278//8286 +f 5810//8279 6278//8279 6272//8279 +f 5993//8287 6279//8287 5814//8287 +f 5993//8287 6275//8287 6279//8287 +f 5987//8288 6089//8288 6280//8288 +f 5987//8288 6280//8288 6230//8288 +f 6088//8220 6231//8220 6281//8220 +f 6088//8289 6281//8289 6145//8289 +f 5813//8290 5814//8290 6282//8290 +f 5813//8286 6282//8286 6278//8286 +f 5814//8290 6279//8290 6282//8290 +f 6200//8291 6245//8291 6283//8291 +f 6156//8292 6284//8292 6201//8292 +f 6156//8292 6225//8292 6284//8292 +f 6200//8212 6283//8212 6086//8212 +f 5951//8293 6264//8293 6285//8293 +f 5951//8294 6285//8294 5965//8294 +f 5868//8295 5952//8295 6286//8295 +f 5868//8296 6286//8296 6263//8296 +f 5966//8297 6273//8297 6287//8297 +f 5966//8297 6287//8297 5974//8297 +f 5978//8281 6288//8281 6274//8281 +f 5978//8298 6149//8298 6288//8298 +f 4627//8299 5983//8299 4626//8299 +f 4529//8300 4530//8300 5982//8300 +f 5969//8301 6289//8301 6225//8301 +f 5969//8301 6087//8301 6289//8301 +f 6086//8302 6283//8302 6154//8302 +f 5982//8303 6290//8303 5981//8303 +f 5982//8303 6291//8303 6290//8303 +f 5983//8304 5991//8304 6292//8304 +f 5983//8299 6292//8299 4626//8299 +f 5982//8305 4530//8305 6291//8305 +f 5824//8115 6293//8115 6144//8115 +f 5824//8306 6002//8306 6293//8306 +f 5602//8307 6143//8307 6294//8307 +f 5602//8307 6294//8307 5825//8307 +f 5981//8308 6295//8308 5992//8308 +f 5981//8308 6290//8308 6295//8308 +f 5991//8304 6296//8304 6292//8304 +f 5991//8309 6076//8309 6296//8309 +f 6195//8310 6271//8310 6297//8310 +f 6195//8310 6297//8310 6222//8310 +f 6221//8278 6298//8278 6226//8278 +f 6221//8311 6244//8311 6298//8311 +f 5997//8312 6140//8312 6299//8312 +f 5997//8313 6299//8313 6239//8313 +f 6139//8314 6300//8314 6187//8314 +f 6139//8315 6240//8315 6300//8315 +f 5952//8316 5964//8316 6301//8316 +f 5952//8317 6301//8317 6286//8317 +f 5965//8318 6302//8318 5979//8318 +f 5965//8319 6285//8319 6302//8319 +f 6190//8320 6269//8320 6303//8320 +f 6190//8321 6303//8321 6229//8321 +f 6228//8322 6229//8322 6304//8322 +f 6228//8323 6304//8323 6268//8323 +f 6250//8324 6251//8324 6261//8324 +f 6092//8284 6276//8284 6305//8284 +f 6092//8325 6305//8325 6142//8325 +f 5998//8326 6091//8326 6306//8326 +f 5998//8326 6306//8326 6277//8326 +f 6244//8311 6307//8311 6298//8311 +f 6244//8327 6201//8327 6307//8327 +f 6222//8328 6297//8328 6308//8328 +f 6222//8328 6308//8328 6245//8328 +f 6245//8291 6308//8291 6283//8291 +f 6201//8327 6284//8327 6307//8327 +f 6089//8329 6147//8329 6309//8329 +f 6089//8330 6309//8330 6280//8330 +f 6145//8331 6310//8331 6146//8331 +f 6145//8289 6281//8289 6310//8289 +f 5979//8332 6302//8332 6311//8332 +f 5979//8333 6311//8333 5995//8333 +f 5964//8334 5980//8334 6312//8334 +f 5964//8335 6312//8335 6301//8335 +f 6229//8336 6303//8336 6304//8336 +f 6270//8337 6210//8337 6234//8337 +f 6076//8338 6137//8338 6313//8338 +f 6076//8309 6313//8309 6296//8309 +f 5992//8339 6314//8339 6077//8339 +f 5992//8339 6295//8339 6314//8339 +f 5988//8340 6173//8340 6315//8340 +f 5988//8340 6315//8340 6206//8340 +f 6174//8192 6207//8192 6316//8192 +f 6174//8341 6316//8341 6266//8341 +f 6226//8342 6298//8342 6276//8342 +f 6166//8343 6227//8343 6317//8343 +f 6166//8343 6317//8343 6271//8343 +f 5995//8344 6318//8344 6004//8344 +f 5980//8345 5994//8345 6319//8345 +f 5980//8346 6319//8346 6312//8346 +f 5995//8347 6311//8347 6318//8347 +f 6087//8348 6320//8348 6289//8348 +f 6087//8348 6155//8348 6320//8348 +f 6154//8349 6321//8349 6185//8349 +f 6154//8302 6283//8302 6321//8302 +f 6147//8350 6184//8350 6322//8350 +f 6147//8351 6322//8351 6309//8351 +f 6146//8352 6310//8352 6323//8352 +f 6146//8353 6323//8353 6181//8353 +f 6171//8268 6266//8268 6324//8268 +f 6171//8354 6324//8354 6231//8354 +f 6083//8355 6170//8355 6325//8355 +f 6083//8355 6325//8355 6267//8355 +f 6142//8325 6305//8325 6326//8325 +f 6142//8356 6326//8356 6160//8356 +f 6091//8357 6141//8357 6327//8357 +f 6091//8357 6327//8357 6306//8357 +f 6001//8358 6328//8358 6207//8358 +f 6001//8139 6144//8139 6328//8139 +f 5702//8359 6000//8359 6329//8359 +f 5702//8359 6329//8359 6161//8359 +f 6268//8360 6330//8360 6240//8360 +f 6268//8361 6304//8361 6330//8361 +f 6074//8362 6239//8362 6331//8362 +f 6074//8363 6331//8363 6196//8363 +f 6240//8364 6330//8364 6300//8364 +f 6283//8365 6308//8365 6321//8365 +f 6225//8366 6332//8366 6284//8366 +f 6225//8366 6289//8366 6332//8366 +f 6004//8367 6318//8367 6333//8367 +f 5994//8368 6006//8368 6334//8368 +f 5994//8369 6334//8369 6319//8369 +f 6004//8370 6333//8370 6232//8370 +f 6232//8371 6335//8371 6336//8371 +f 6232//8372 6336//8372 6251//8372 +f 6006//8373 6234//8373 6337//8373 +f 6006//8374 6337//8374 6334//8374 +f 6232//8375 6333//8375 6335//8375 +f 6169//8376 6163//8376 6338//8376 +f 6169//2575 6338//2575 6339//2575 +f 6169//2575 6339//2575 6172//2575 +f 6168//8377 6180//8377 6340//8377 +f 6168//8149 6340//8149 6167//8149 +f 6234//8378 6341//8378 6337//8378 +f 6234//8337 6210//8337 6341//8337 +f 6251//8379 6336//8379 6261//8379 +f 6140//8380 6188//8380 6342//8380 +f 6140//8381 6342//8381 6299//8381 +f 6187//8382 6300//8382 6343//8382 +f 6187//8383 6343//8383 6214//8383 +f 6160//8356 6326//8356 6344//8356 +f 6160//8384 6344//8384 6345//8384 +f 6160//8384 6345//8384 6159//8384 +f 6141//8385 6159//8385 6346//8385 +f 6141//8385 6346//8385 6327//8385 +f 6298//8342 6347//8342 6276//8342 +f 6271//8386 6317//8386 6348//8386 +f 6271//8386 6348//8386 6297//8386 +f 6298//8387 6307//8387 6347//8387 +f 6336//8388 6335//8388 6349//8388 +f 6336//8379 6349//8379 6261//8379 +f 6184//8389 6183//8389 6350//8389 +f 6184//8390 6350//8390 6322//8390 +f 6181//8391 6351//8391 6182//8391 +f 6181//8392 6323//8392 6351//8392 +f 6077//8393 6352//8393 6138//8393 +f 6077//8393 6314//8393 6352//8393 +f 6137//8394 6175//8394 6353//8394 +f 6137//8338 6353//8338 6313//8338 +f 6183//8395 6197//8395 6354//8395 +f 6183//8396 6354//8396 6350//8396 +f 6182//8397 6351//8397 6355//8397 +f 6182//8398 6355//8398 6197//8398 +f 6180//2578 6356//2578 6340//2578 +f 6180//2595 6192//2595 6356//2595 +f 6172//2596 6339//2596 6357//2596 +f 6172//2596 6357//2596 6179//2596 +f 6341//8399 6358//8399 6337//8399 +f 6341//8399 6359//8399 6358//8399 +f 6341//8400 6210//8400 6359//8400 +f 6155//8401 6360//8401 6320//8401 +f 6155//8401 6186//8401 6360//8401 +f 6185//8402 6361//8402 6204//8402 +f 6185//8349 6321//8349 6361//8349 +f 6144//8403 6293//8403 6328//8403 +f 5795//8404 6161//8404 6362//8404 +f 5795//8404 6362//8404 6143//8404 +f 6159//8384 6345//8384 6363//8384 +f 6159//8385 6363//8385 6346//8385 +f 6307//8387 6364//8387 6347//8387 +f 6307//8405 6284//8405 6364//8405 +f 6297//8406 6348//8406 6365//8406 +f 6297//8406 6365//8406 6308//8406 +f 6197//8407 6355//8407 6354//8407 +f 6308//8365 6365//8365 6321//8365 +f 6284//8405 6332//8405 6364//8405 +f 6192//2595 6366//2595 6356//2595 +f 6192//2601 6199//2601 6366//2601 +f 6179//2600 6357//2600 6367//2600 +f 6179//2600 6367//2600 6191//2600 +f 6227//8408 6277//8408 6368//8408 +f 6227//8408 6368//8408 6317//8408 +f 6276//8409 6347//8409 6305//8409 +f 5974//8410 6287//8410 6369//8410 +f 5974//8410 6369//8410 6148//8410 +f 6149//8298 6370//8298 6288//8298 +f 6149//8411 6178//8411 6370//8411 +f 6304//8412 6303//8412 6371//8412 +f 6304//8413 6371//8413 6330//8413 +f 6214//8414 6372//8414 6246//8414 +f 6214//8415 6343//8415 6372//8415 +f 6199//2601 6373//2601 6366//2601 +f 6199//2619 6203//2619 6373//2619 +f 6191//2618 6367//2618 6374//2618 +f 6191//2618 6374//2618 6198//2618 +f 6203//2619 6375//2619 6373//2619 +f 6203//2632 6213//2632 6375//2632 +f 6198//2633 6374//2633 6376//2633 +f 6198//2633 6376//2633 6202//2633 +f 6321//8416 6365//8416 6361//8416 +f 6289//8417 6377//8417 6332//8417 +f 6289//8417 6320//8417 6377//8417 +f 6303//8418 6378//8418 6371//8418 +f 6303//8419 6269//8419 6378//8419 +f 6186//8420 6379//8420 6360//8420 +f 6186//8420 6205//8420 6379//8420 +f 6204//8421 6380//8421 6241//8421 +f 6204//8402 6361//8402 6380//8402 +f 6213//2632 6381//2632 6375//2632 +f 6213//2649 6220//2649 6381//2649 +f 6202//8422 6376//8422 6382//8422 +f 6202//8422 6382//8422 6212//8422 +f 6231//8354 6324//8354 6383//8354 +f 6231//8423 6383//8423 6281//8423 +f 6170//8424 6230//8424 6384//8424 +f 6170//8424 6384//8424 6325//8424 +f 6349//8425 6335//8425 6385//8425 +f 6349//8426 6385//8426 6386//8426 +f 6349//8427 6386//8427 6261//8427 +f 6218//8428 6387//8428 6217//8428 +f 6218//8428 6388//8428 6387//8428 +f 6218//8429 6224//8429 6388//8429 +f 6215//8430 6219//8430 6389//8430 +f 6215//8431 6389//8431 6390//8431 +f 6215//8431 6390//8431 6216//8431 +f 6217//8432 6391//8432 6220//8432 +f 6217//8432 6387//8432 6391//8432 +f 6219//8433 6212//8433 6392//8433 +f 6219//8430 6392//8430 6389//8430 +f 6317//8434 6368//8434 6393//8434 +f 6317//8434 6393//8434 6348//8434 +f 6347//8409 6394//8409 6305//8409 +f 6347//8435 6364//8435 6394//8435 +f 6224//8429 6395//8429 6388//8429 +f 6224//8436 6236//8436 6395//8436 +f 6216//8437 6390//8437 6396//8437 +f 6216//8437 6396//8437 6223//8437 +f 6246//8438 6372//8438 6397//8438 +f 6246//8439 6397//8439 6264//8439 +f 6188//8440 6247//8440 6398//8440 +f 6188//8441 6398//8441 6342//8441 +f 6239//8442 6299//8442 6399//8442 +f 6239//8443 6399//8443 6331//8443 +f 6300//8444 6400//8444 6343//8444 +f 6300//8445 6330//8445 6400//8445 +f 5825//8446 6294//8446 6401//8446 +f 5825//8447 6401//8447 6003//8447 +f 6002//8448 6098//8448 6402//8448 +f 6002//8449 6402//8449 6403//8449 +f 6002//8306 6403//8306 6293//8306 +f 6138//8450 6404//8450 6176//8450 +f 6138//8450 6352//8450 6404//8450 +f 6175//8451 6193//8451 6405//8451 +f 6175//8394 6405//8394 6353//8394 +f 6220//2649 6391//2649 6381//2649 +f 6212//8433 6382//8433 6392//8433 +f 6196//8452 6331//8452 6406//8452 +f 6196//8453 6406//8453 6269//8453 +f 6330//8454 6371//8454 6400//8454 +f 6236//8436 6407//8436 6395//8436 +f 6236//8455 6255//8455 6407//8455 +f 6223//8456 6396//8456 6408//8456 +f 6223//8456 6408//8456 6235//8456 +f 6305//8457 6394//8457 6326//8457 +f 6277//8458 6306//8458 6409//8458 +f 6277//8458 6409//8458 6368//8458 +f 6205//8459 6410//8459 6379//8459 +f 6205//8459 6242//8459 6410//8459 +f 6241//8460 6411//8460 6256//8460 +f 6241//8421 6380//8421 6411//8421 +f 6148//8461 6369//8461 6412//8461 +f 6148//8461 6412//8461 6177//8461 +f 6178//8411 6413//8411 6370//8411 +f 6178//8462 6211//8462 6413//8462 +f 6266//8341 6316//8341 6414//8341 +f 6266//8463 6414//8463 6324//8463 +f 6173//8464 6267//8464 6415//8464 +f 6173//8464 6415//8464 6315//8464 +f 6364//8435 6416//8435 6394//8435 +f 6364//8465 6332//8465 6416//8465 +f 6348//8466 6393//8466 6417//8466 +f 6348//8466 6417//8466 6365//8466 +f 6365//8416 6417//8416 6361//8416 +f 6332//8465 6377//8465 6416//8465 +f 6242//8467 6418//8467 6410//8467 +f 6242//8467 6243//8467 6418//8467 +f 6256//8468 6419//8468 6243//8468 +f 6256//8460 6411//8460 6419//8460 +f 6255//8455 6420//8455 6407//8455 +f 6255//8469 6260//8469 6420//8469 +f 6235//8470 6408//8470 6421//8470 +f 6235//8470 6421//8470 6254//8470 +f 6361//8471 6417//8471 6380//8471 +f 6320//8472 6422//8472 6377//8472 +f 6320//8472 6360//8472 6422//8472 +f 6243//8468 6419//8468 6418//8468 +f 6247//8473 6263//8473 6423//8473 +f 6247//8474 6423//8474 6398//8474 +f 6264//8475 6424//8475 6285//8475 +f 6264//8476 6397//8476 6424//8476 +f 6193//8477 6208//8477 6425//8477 +f 6176//8478 6426//8478 6194//8478 +f 6176//8478 6404//8478 6426//8478 +f 6193//8451 6425//8451 6405//8451 +f 6260//8469 6427//8469 6420//8469 +f 6260//8479 6274//8479 6427//8479 +f 6254//8480 6421//8480 6428//8480 +f 6254//8480 6428//8480 6259//8480 +f 6385//8481 6335//8481 6429//8481 +f 6385//8482 6429//8482 6386//8482 +f 6306//8483 6327//8483 6430//8483 +f 6306//8483 6430//8483 6409//8483 +f 6326//8457 6394//8457 6431//8457 +f 6326//8484 6431//8484 6344//8484 +f 6368//8485 6409//8485 6432//8485 +f 6368//8485 6432//8485 6393//8485 +f 6394//8486 6416//8486 6431//8486 +f 6281//8423 6383//8423 6433//8423 +f 6281//8487 6433//8487 6310//8487 +f 6230//8488 6280//8488 6434//8488 +f 6230//8488 6434//8488 6384//8488 +f 6098//8489 6153//8489 6402//8489 +f 6003//8490 6401//8490 6435//8490 +f 6003//8490 6435//8490 6099//8490 +f 6208//8477 6436//8477 6425//8477 +f 6194//8491 6437//8491 6209//8491 +f 6194//8491 6426//8491 6437//8491 +f 6208//8492 6237//8492 6436//8492 +f 6285//8493 6424//8493 6438//8493 +f 6285//8494 6438//8494 6302//8494 +f 6263//8495 6286//8495 6439//8495 +f 6263//8496 6439//8496 6423//8496 +f 6177//8497 6412//8497 6440//8497 +f 6177//8497 6440//8497 6210//8497 +f 6211//8462 6441//8462 6413//8462 +f 6211//8498 6253//8498 6441//8498 +f 6371//8499 6378//8499 6442//8499 +f 6371//8500 6442//8500 6400//8500 +f 6269//8501 6406//8501 6443//8501 +f 6269//8502 6443//8502 6378//8502 +f 6274//8479 6444//8479 6427//8479 +f 6274//8503 6288//8503 6444//8503 +f 6259//8504 6428//8504 6445//8504 +f 6259//8504 6445//8504 6273//8504 +f 6380//8505 6446//8505 6411//8505 +f 6380//8471 6417//8471 6446//8471 +f 6360//8506 6447//8506 6422//8506 +f 6360//8506 6379//8506 6447//8506 +f 4530//8507 4531//8507 6291//8507 +f 6416//8486 6448//8486 6431//8486 +f 6416//8508 6377//8508 6448//8508 +f 6393//8509 6432//8509 6446//8509 +f 6393//8509 6446//8509 6417//8509 +f 6377//8508 6422//8508 6448//8508 +f 6344//8510 6449//8510 6345//8510 +f 6327//8511 6346//8511 6450//8511 +f 6327//8512 6450//8512 6430//8512 +f 6344//8484 6431//8484 6449//8484 +f 6378//8513 6443//8513 6442//8513 +f 6299//8514 6342//8514 6451//8514 +f 6299//8515 6451//8515 6399//8515 +f 6343//8516 6400//8516 6452//8516 +f 6343//8517 6452//8517 6372//8517 +f 6346//8518 6363//8518 6453//8518 +f 6346//8519 6453//8519 6450//8519 +f 6345//8520 6449//8520 6454//8520 +f 6345//8521 6454//8521 6363//8521 +f 6288//8503 6455//8503 6444//8503 +f 6288//8522 6370//8522 6455//8522 +f 6273//8523 6445//8523 6456//8523 +f 6273//8523 6456//8523 6287//8523 +f 4626//8524 6292//8524 4625//8524 +f 4531//8525 6457//8525 6291//8525 +f 4531//8525 4532//8525 6457//8525 +f 6209//8526 6458//8526 6238//8526 +f 6209//8526 6437//8526 6458//8526 +f 6237//8492 6459//8492 6436//8492 +f 6237//8527 6257//8527 6459//8527 +f 6286//8528 6301//8528 6460//8528 +f 6286//8529 6460//8529 6439//8529 +f 6302//8530 6461//8530 6311//8530 +f 6302//8531 6438//8531 6461//8531 +f 6409//8532 6430//8532 6462//8532 +f 6409//8532 6462//8532 6432//8532 +f 6431//8533 6448//8533 6449//8533 +f 6291//8534 6463//8534 6290//8534 +f 6291//8534 6457//8534 6463//8534 +f 6292//8535 6296//8535 6464//8535 +f 6292//8536 6464//8536 4625//8536 +f 6363//8537 6454//8537 6453//8537 +f 6411//8505 6446//8505 6465//8505 +f 6411//8538 6465//8538 6419//8538 +f 6379//8539 6466//8539 6447//8539 +f 6379//8539 6410//8539 6466//8539 +f 6331//8540 6399//8540 6467//8540 +f 6331//8541 6467//8541 6406//8541 +f 6400//8542 6442//8542 6452//8542 +f 6153//8543 6164//8543 6468//8543 +f 6153//8489 6468//8489 6402//8489 +f 6099//8544 6435//8544 6469//8544 +f 6099//8544 6469//8544 6152//8544 +f 6210//8545 6358//8545 6359//8545 +f 6210//8546 6440//8546 6337//8546 +f 6210//8545 6337//8545 6358//8545 +f 6253//8498 6470//8498 6441//8498 +f 6253//8547 6265//8547 6470//8547 +f 6429//8548 6335//8548 6471//8548 +f 6429//8549 6471//8549 6386//8549 +f 6296//8535 6472//8535 6464//8535 +f 6296//8550 6313//8550 6472//8550 +f 6290//8551 6473//8551 6295//8551 +f 6290//8551 6463//8551 6473//8551 +f 6207//8552 6474//8552 6316//8552 +f 6207//8358 6328//8358 6474//8358 +f 6000//8553 6206//8553 6475//8553 +f 6000//8553 6475//8553 6329//8553 +f 6419//8554 6476//8554 6418//8554 +f 6419//8538 6465//8538 6476//8538 +f 6410//8555 6477//8555 6466//8555 +f 6410//8555 6418//8555 6477//8555 +f 6310//8487 6433//8487 6478//8487 +f 6310//8556 6478//8556 6323//8556 +f 6280//8557 6309//8557 6479//8557 +f 6280//8557 6479//8557 6434//8557 +f 6238//8558 6480//8558 6258//8558 +f 6238//8558 6458//8558 6480//8558 +f 6257//8527 6481//8527 6459//8527 +f 6257//8559 6261//8559 6481//8559 +f 6448//8533 6482//8533 6449//8533 +f 6448//8560 6422//8560 6482//8560 +f 6432//8561 6462//8561 6465//8561 +f 6432//8561 6465//8561 6446//8561 +f 6311//8562 6461//8562 6483//8562 +f 6311//8563 6483//8563 6318//8563 +f 6301//8564 6312//8564 6484//8564 +f 6301//8565 6484//8565 6460//8565 +f 6422//8560 6447//8560 6482//8560 +f 6418//8554 6476//8554 6477//8554 +f 6430//8566 6450//8566 6485//8566 +f 6430//8566 6485//8566 6462//8566 +f 6449//8567 6482//8567 6454//8567 +f 4625//8568 6464//8568 4624//8568 +f 6372//8569 6486//8569 6397//8569 +f 6372//8570 6452//8570 6486//8570 +f 6324//8463 6414//8463 6487//8463 +f 6324//8571 6487//8571 6383//8571 +f 6267//8572 6325//8572 6488//8572 +f 6267//8572 6488//8572 6415//8572 +f 6152//8573 6469//8573 6489//8573 +f 6152//8573 6489//8573 6163//8573 +f 6164//8543 6490//8543 6468//8543 +f 6164//8574 6167//8574 6490//8574 +f 6450//8575 6453//8575 6491//8575 +f 6450//8575 6491//8575 6485//8575 +f 6454//8576 6492//8576 6453//8576 +f 6454//8567 6482//8567 6492//8567 +f 6261//8577 6386//8577 6493//8577 +f 6258//8578 6494//8578 6262//8578 +f 6258//8578 6480//8578 6494//8578 +f 6261//8559 6493//8559 6481//8559 +f 6265//8547 6495//8547 6470//8547 +f 6265//8579 6272//8579 6495//8579 +f 6312//8580 6319//8580 6496//8580 +f 6312//8581 6496//8581 6484//8581 +f 6318//8582 6497//8582 6333//8582 +f 6318//8583 6483//8583 6497//8583 +f 6453//8576 6492//8576 6491//8576 +f 6167//8574 6498//8574 6490//8574 +f 6167//8584 6340//8584 6498//8584 +f 6163//8585 6489//8585 6499//8585 +f 6163//8585 6499//8585 6338//8585 +f 6338//2385 6499//2385 6500//2385 +f 6338//2385 6500//2385 6339//2385 +f 6340//2383 6356//2383 6501//2383 +f 6340//8584 6501//8584 6498//8584 +f 6482//8586 6447//8586 6492//8586 +f 6462//8587 6485//8587 6476//8587 +f 6462//8587 6476//8587 6465//8587 +f 6447//8586 6466//8586 6492//8586 +f 6272//8579 6502//8579 6495//8579 +f 6272//8588 6278//8588 6502//8588 +f 6386//8577 6503//8577 6493//8577 +f 6262//8589 6504//8589 6275//8589 +f 6262//8589 6494//8589 6504//8589 +f 6386//8590 6471//8590 6503//8590 +f 6313//8591 6353//8591 6505//8591 +f 6313//8550 6505//8550 6472//8550 +f 6295//8592 6506//8592 6314//8592 +f 6295//8592 6473//8592 6506//8592 +f 6323//8556 6478//8556 6507//8556 +f 6323//8593 6507//8593 6351//8593 +f 6309//8594 6322//8594 6508//8594 +f 6309//8594 6508//8594 6479//8594 +f 6333//8595 6497//8595 6509//8595 +f 6319//8596 6334//8596 6510//8596 +f 6319//8597 6510//8597 6496//8597 +f 6333//8598 6509//8598 6335//8598 +f 6471//8548 6335//8548 6511//8548 +f 6471//8599 6511//8599 6503//8599 +f 6278//8600 6282//8600 6512//8600 +f 6278//8588 6512//8588 6502//8588 +f 6492//8601 6466//8601 6491//8601 +f 6485//8602 6491//8602 6477//8602 +f 6485//8602 6477//8602 6476//8602 +f 6511//8603 6335//8603 6513//8603 +f 6511//8604 6513//8604 6503//8604 +f 6275//8605 6514//8605 6279//8605 +f 6275//8605 6504//8605 6514//8605 +f 6466//8601 6477//8601 6491//8601 +f 6282//8600 6515//8600 6512//8600 +f 6282//8606 6279//8606 6515//8606 +f 6279//8606 6514//8606 6515//8606 +f 6342//8607 6516//8607 6451//8607 +f 6397//8608 6486//8608 6517//8608 +f 6397//8609 6517//8609 6424//8609 +f 6342//8610 6398//8610 6518//8610 +f 6342//8611 6518//8611 6516//8611 +f 6442//8612 6443//8612 6519//8612 +f 6442//8613 6519//8613 6452//8613 +f 6406//8614 6467//8614 6520//8614 +f 6406//8615 6520//8615 6443//8615 +f 6339//2416 6500//2416 6521//2416 +f 6339//2416 6521//2416 6357//2416 +f 6356//2383 6522//2383 6501//2383 +f 6356//2417 6366//2417 6522//2417 +f 6334//8616 6337//8616 6523//8616 +f 6334//8617 6523//8617 6510//8617 +f 6335//8618 6524//8618 6513//8618 +f 6335//8619 6509//8619 6524//8619 +f 6337//8620 6525//8620 6523//8620 +f 6337//8621 6440//8621 6525//8621 +f 6357//2429 6521//2429 6526//2429 +f 6357//2429 6526//2429 6367//2429 +f 6366//2430 6373//2430 6527//2430 +f 6366//2417 6527//2417 6522//2417 +f 6513//8622 6524//8622 6528//8622 +f 6513//8623 6528//8623 6503//8623 +f 6351//8593 6507//8593 6529//8593 +f 6351//8624 6529//8624 6355//8624 +f 6322//8625 6350//8625 6530//8625 +f 6322//8625 6530//8625 6508//8625 +f 6293//8403 6531//8403 6328//8403 +f 6293//8626 6403//8626 6532//8626 +f 6293//8626 6532//8626 6531//8626 +f 6143//8627 6362//8627 6533//8627 +f 6143//8628 6533//8628 6294//8628 +f 6443//8629 6520//8629 6519//8629 +f 6367//2442 6526//2442 6534//2442 +f 6367//2442 6534//2442 6374//2442 +f 6373//2430 6535//2430 6527//2430 +f 6373//2441 6375//2441 6535//2441 +f 6399//8630 6451//8630 6536//8630 +f 6399//8631 6536//8631 6467//8631 +f 6452//8632 6519//8632 6486//8632 +f 6528//8633 6524//8633 6537//8633 +f 6528//8634 6537//8634 6503//8634 +f 6525//8635 6538//8635 6523//8635 +f 6525//8636 6440//8636 6538//8636 +f 6355//8624 6529//8624 6539//8624 +f 6355//8637 6539//8637 6354//8637 +f 6350//8638 6354//8638 6540//8638 +f 6350//8638 6540//8638 6530//8638 +f 6398//8639 6423//8639 6541//8639 +f 6398//8640 6541//8640 6518//8640 +f 6424//8641 6542//8641 6438//8641 +f 6424//8642 6517//8642 6542//8642 +f 6374//2448 6534//2448 6543//2448 +f 6374//2448 6543//2448 6376//2448 +f 6375//2441 6544//2441 6535//2441 +f 6375//2447 6381//2447 6544//2447 +f 6354//8637 6539//8637 6540//8637 +f 6376//2459 6543//2459 6545//2459 +f 6376//2459 6545//2459 6382//2459 +f 6381//2447 6546//2447 6544//2447 +f 6381//2460 6391//2460 6546//2460 +f 6314//8643 6547//8643 6352//8643 +f 6314//8643 6506//8643 6547//8643 +f 6353//8591 6548//8591 6505//8591 +f 6353//8644 6405//8644 6548//8644 +f 6161//8645 6329//8645 6549//8645 +f 6161//8645 6549//8645 6362//8645 +f 6328//8646 6531//8646 6474//8646 +f 6389//8647 6550//8647 6551//8647 +f 6389//8647 6551//8647 6390//8647 +f 6389//8648 6392//8648 6550//8648 +f 6388//8649 6552//8649 6387//8649 +f 6388//8649 6553//8649 6552//8649 +f 6388//8650 6395//8650 6553//8650 +f 6392//8648 6554//8648 6550//8648 +f 6392//8651 6382//8651 6554//8651 +f 6387//8652 6555//8652 6391//8652 +f 6387//8652 6552//8652 6555//8652 +f 6390//8653 6551//8653 6556//8653 +f 6390//8653 6556//8653 6396//8653 +f 6395//8650 6557//8650 6553//8650 +f 6395//8654 6407//8654 6557//8654 +f 6383//8571 6487//8571 6558//8571 +f 6383//8655 6558//8655 6433//8655 +f 6325//8656 6384//8656 6559//8656 +f 6325//8656 6559//8656 6488//8656 +f 6438//8657 6542//8657 6560//8657 +f 6438//8658 6560//8658 6461//8658 +f 6423//8659 6439//8659 6561//8659 +f 6423//8660 6561//8660 6541//8660 +f 6370//8522 6562//8522 6455//8522 +f 6370//8661 6413//8661 6562//8661 +f 6287//8662 6456//8662 6563//8662 +f 6287//8662 6563//8662 6369//8662 +f 6382//8651 6545//8651 6554//8651 +f 6391//2460 6555//2460 6546//2460 +f 6451//8663 6516//8663 6564//8663 +f 6451//8664 6564//8664 6536//8664 +f 6486//8665 6565//8665 6517//8665 +f 6486//8666 6519//8666 6565//8666 +f 6396//8667 6556//8667 6566//8667 +f 6396//8667 6566//8667 6408//8667 +f 6407//8654 6567//8654 6557//8654 +f 6407//8668 6420//8668 6567//8668 +f 6401//8669 6294//8669 6568//8669 +f 6402//8670 6569//8670 6403//8670 +f 6402//8671 6468//8671 6569//8671 +f 6401//8672 6568//8672 6570//8672 +f 6401//8672 6570//8672 6435//8672 +f 6519//8673 6520//8673 6565//8673 +f 6467//8674 6536//8674 6571//8674 +f 6467//8675 6571//8675 6520//8675 +f 6408//8676 6566//8676 6572//8676 +f 6408//8676 6572//8676 6421//8676 +f 6420//8668 6573//8668 6567//8668 +f 6420//8677 6427//8677 6573//8677 +f 6439//8678 6460//8678 6574//8678 +f 6439//8679 6574//8679 6561//8679 +f 6461//8680 6575//8680 6483//8680 +f 6461//8681 6560//8681 6575//8681 +f 6517//8682 6565//8682 6576//8682 +f 6517//8683 6576//8683 6542//8683 +f 6516//8684 6518//8684 6577//8684 +f 6516//8685 6577//8685 6564//8685 +f 6520//8686 6571//8686 6565//8686 +f 6421//8687 6572//8687 6578//8687 +f 6421//8687 6578//8687 6428//8687 +f 6427//8677 6579//8677 6573//8677 +f 6427//8688 6444//8688 6579//8688 +f 6405//8644 6580//8644 6548//8644 +f 6405//8689 6425//8689 6580//8689 +f 6352//8690 6581//8690 6404//8690 +f 6352//8690 6547//8690 6581//8690 +f 6537//8691 6524//8691 6582//8691 +f 6537//8692 6582//8692 6503//8692 +f 6206//8693 6315//8693 6583//8693 +f 6206//8693 6583//8693 6475//8693 +f 6316//8552 6474//8552 6584//8552 +f 6316//8694 6584//8694 6414//8694 +f 6483//8695 6575//8695 6585//8695 +f 6483//8696 6585//8696 6497//8696 +f 6460//8697 6484//8697 6586//8697 +f 6460//8698 6586//8698 6574//8698 +f 6582//8691 6524//8691 6587//8691 +f 6582//8699 6587//8699 6588//8699 +f 6582//8700 6588//8700 6503//8700 +f 6413//8661 6589//8661 6562//8661 +f 6413//8701 6441//8701 6589//8701 +f 6369//8702 6563//8702 6590//8702 +f 6369//8702 6590//8702 6412//8702 +f 6536//8703 6564//8703 6591//8703 +f 6536//8704 6591//8704 6571//8704 +f 6565//8705 6571//8705 6576//8705 +f 6433//8655 6558//8655 6592//8655 +f 6384//8706 6434//8706 6593//8706 +f 6384//8706 6593//8706 6559//8706 +f 6433//8707 6592//8707 6478//8707 +f 6435//8708 6570//8708 6594//8708 +f 6435//8708 6594//8708 6469//8708 +f 6468//8709 6490//8709 6595//8709 +f 6468//8671 6595//8671 6569//8671 +f 6428//8710 6578//8710 6596//8710 +f 6428//8710 6596//8710 6445//8710 +f 6444//8688 6597//8688 6579//8688 +f 6444//8711 6455//8711 6597//8711 +f 6497//8712 6598//8712 6509//8712 +f 6484//8713 6496//8713 6599//8713 +f 6484//8714 6599//8714 6586//8714 +f 6497//8715 6585//8715 6598//8715 +f 6518//8716 6541//8716 6600//8716 +f 6518//8717 6600//8717 6577//8717 +f 6542//8718 6601//8718 6560//8718 +f 6542//8719 6576//8719 6601//8719 +f 6425//8720 6436//8720 6602//8720 +f 6425//8689 6602//8689 6580//8689 +f 6404//8721 6603//8721 6426//8721 +f 6404//8721 6581//8721 6603//8721 +f 6571//8722 6591//8722 6576//8722 +f 6445//8723 6596//8723 6604//8723 +f 6445//8723 6604//8723 6456//8723 +f 6455//8711 6605//8711 6597//8711 +f 6455//8724 6562//8724 6605//8724 +f 4624//8725 6464//8725 4623//8725 +f 4532//8726 4533//8726 6457//8726 +f 6587//8727 6524//8727 6606//8727 +f 6587//8728 6606//8728 6588//8728 +f 6509//8729 6598//8729 6607//8729 +f 6496//8730 6510//8730 6608//8730 +f 6496//8731 6608//8731 6599//8731 +f 6509//8732 6607//8732 6524//8732 +f 6457//8733 6609//8733 6463//8733 +f 6457//8733 6610//8733 6609//8733 +f 6464//8734 6472//8734 6611//8734 +f 6464//8735 6611//8735 4623//8735 +f 6457//8736 4533//8736 6610//8736 +f 6538//8737 6440//8737 6523//8737 +f 6469//8738 6594//8738 6612//8738 +f 6469//8738 6612//8738 6489//8738 +f 6490//8739 6498//8739 6613//8739 +f 6490//8709 6613//8709 6595//8709 +f 6576//8740 6591//8740 6601//8740 +f 6564//8741 6577//8741 6614//8741 +f 6564//8742 6614//8742 6591//8742 +f 6498//8739 6615//8739 6613//8739 +f 6498//8743 6501//8743 6615//8743 +f 6489//8744 6612//8744 6616//8744 +f 6489//8744 6616//8744 6499//8744 +f 6499//2224 6616//2224 6617//2224 +f 6499//2224 6617//2224 6500//2224 +f 6501//2226 6522//2226 6618//2226 +f 6501//8743 6618//8743 6615//8743 +f 6472//8734 6619//8734 6611//8734 +f 6472//8745 6505//8745 6619//8745 +f 6463//8746 6620//8746 6473//8746 +f 6463//8746 6609//8746 6620//8746 +f 6524//8747 6621//8747 6606//8747 +f 6510//8748 6523//8748 6622//8748 +f 6510//8749 6622//8749 6608//8749 +f 6524//8750 6607//8750 6621//8750 +f 6560//8751 6601//8751 6623//8751 +f 6560//8752 6623//8752 6575//8752 +f 6541//8753 6561//8753 6624//8753 +f 6541//8754 6624//8754 6600//8754 +f 6436//8720 6625//8720 6602//8720 +f 6426//8755 6626//8755 6437//8755 +f 6426//8755 6603//8755 6626//8755 +f 6436//8756 6459//8756 6625//8756 +f 6523//8757 6627//8757 6622//8757 +f 6523//8737 6440//8737 6627//8737 +f 6606//8758 6621//8758 6628//8758 +f 6606//8728 6628//8728 6588//8728 +f 6441//8701 6629//8701 6589//8701 +f 6441//8759 6470//8759 6629//8759 +f 6412//8760 6590//8760 6630//8760 +f 6412//8760 6630//8760 6440//8760 +f 4533//8761 4534//8761 6610//8761 +f 6591//8762 6614//8762 6601//8762 +f 6434//8763 6479//8763 6631//8763 +f 6434//8763 6631//8763 6593//8763 +f 6478//8764 6632//8764 6507//8764 +f 6478//8707 6592//8707 6632//8707 +f 6628//8765 6621//8765 6633//8765 +f 6628//8766 6633//8766 6588//8766 +f 6403//8767 6569//8767 6532//8767 +f 6294//8768 6533//8768 6634//8768 +f 6294//8768 6634//8768 6568//8768 +f 6500//2237 6617//2237 6635//2237 +f 6500//2237 6635//2237 6521//2237 +f 6522//2226 6636//2226 6618//2226 +f 6522//2238 6527//2238 6636//2238 +f 6627//8769 6637//8769 6622//8769 +f 6627//8770 6638//8770 6637//8770 +f 6627//8771 6440//8771 6638//8771 +f 6561//8772 6574//8772 6639//8772 +f 6561//8773 6639//8773 6624//8773 +f 6575//8774 6640//8774 6585//8774 +f 6575//8775 6623//8775 6640//8775 +f 6577//8776 6600//8776 6641//8776 +f 6577//8777 6641//8777 6614//8777 +f 6601//8778 6614//8778 6623//8778 +f 6521//2243 6635//2243 6642//2243 +f 6521//2243 6642//2243 6526//2243 +f 6527//2238 6643//2238 6636//2238 +f 6527//2242 6535//2242 6643//2242 +f 6459//8779 6481//8779 6644//8779 +f 6437//8780 6645//8780 6458//8780 +f 6437//8780 6626//8780 6645//8780 +f 6459//8756 6644//8756 6625//8756 +f 6473//8781 6646//8781 6506//8781 +f 6473//8781 6620//8781 6646//8781 +f 6505//8745 6647//8745 6619//8745 +f 6505//8782 6548//8782 6647//8782 +f 6526//2245 6642//2245 6648//2245 +f 6526//2245 6648//2245 6534//2245 +f 6535//2244 6544//2244 6649//2244 +f 6535//2242 6649//2242 6643//2242 +f 6614//8783 6641//8783 6623//8783 +f 6470//8759 6650//8759 6629//8759 +f 6470//8784 6495//8784 6650//8784 +f 6440//8785 6630//8785 6651//8785 +f 6440//8785 6651//8785 6638//8785 +f 6585//8786 6640//8786 6652//8786 +f 6585//8787 6652//8787 6598//8787 +f 6574//8788 6586//8788 6653//8788 +f 6574//8789 6653//8789 6639//8789 +f 6637//8790 6654//8790 6622//8790 +f 6637//8791 6638//8791 6654//8791 +f 6534//2250 6648//2250 6655//2250 +f 6534//2250 6655//2250 6543//2250 +f 6544//2251 6546//2251 6656//2251 +f 6544//2244 6656//2244 6649//2244 +f 6479//8792 6508//8792 6657//8792 +f 6479//8792 6657//8792 6631//8792 +f 6507//8764 6632//8764 6658//8764 +f 6507//8793 6658//8793 6529//8793 +f 6481//8794 6493//8794 6659//8794 +f 6481//8779 6659//8779 6644//8779 +f 6458//8795 6660//8795 6480//8795 +f 6458//8795 6645//8795 6660//8795 +f 6623//8796 6641//8796 6640//8796 +f 6600//8797 6624//8797 6661//8797 +f 6600//8798 6661//8798 6641//8798 +f 4623//8799 6611//8799 4622//8799 +f 6543//2267 6655//2267 6662//2267 +f 6543//2267 6662//2267 6545//2267 +f 6546//2268 6555//2268 6663//2268 +f 6546//2251 6663//2251 6656//2251 +f 6550//8800 6664//8800 6665//8800 +f 6550//8800 6665//8800 6551//8800 +f 6550//8801 6554//8801 6664//8801 +f 6553//8802 6557//8802 6666//8802 +f 6553//8803 6667//8803 6552//8803 +f 6553//8803 6666//8803 6667//8803 +f 6586//8804 6599//8804 6668//8804 +f 6586//8805 6668//8805 6653//8805 +f 6598//8806 6669//8806 6607//8806 +f 6598//8807 6652//8807 6669//8807 +f 6554//8808 6545//8808 6670//8808 +f 6554//8801 6670//8801 6664//8801 +f 6552//8809 6671//8809 6555//8809 +f 6552//8809 6667//8809 6671//8809 +f 6633//8810 6621//8810 6672//8810 +f 6633//8811 6672//8811 6588//8811 +f 6493//8812 6503//8812 6673//8812 +f 6493//8794 6673//8794 6659//8794 +f 6480//8813 6674//8813 6494//8813 +f 6480//8813 6660//8813 6674//8813 +f 6551//8814 6665//8814 6675//8814 +f 6551//8814 6675//8814 6556//8814 +f 6557//8815 6567//8815 6676//8815 +f 6557//8802 6676//8802 6666//8802 +f 6641//8816 6661//8816 6640//8816 +f 6638//8817 6677//8817 6654//8817 +f 6495//8784 6678//8784 6650//8784 +f 6495//8818 6502//8818 6678//8818 +f 6638//8819 6651//8819 6679//8819 +f 6638//8817 6679//8817 6677//8817 +f 6654//8820 6677//8820 6622//8820 +f 6569//8821 6680//8821 6532//8821 +f 6569//8822 6595//8822 6680//8822 +f 6568//8823 6634//8823 6681//8823 +f 6568//8823 6681//8823 6570//8823 +f 6508//8824 6530//8824 6682//8824 +f 6508//8824 6682//8824 6657//8824 +f 6529//8825 6683//8825 6539//8825 +f 6529//8793 6658//8793 6683//8793 +f 6677//8820 6679//8820 6622//8820 +f 6315//8826 6415//8826 6684//8826 +f 6315//8826 6684//8826 6583//8826 +f 6414//8827 6685//8827 6487//8827 +f 6414//8694 6584//8694 6685//8694 +f 6624//8828 6639//8828 6686//8828 +f 6624//8829 6686//8829 6661//8829 +f 6640//8830 6661//8830 6652//8830 +f 6545//8808 6662//8808 6670//8808 +f 6555//2268 6671//2268 6663//2268 +f 6502//8818 6687//8818 6678//8818 +f 6502//8831 6512//8831 6687//8831 +f 6474//8646 6531//8646 6688//8646 +f 6474//8832 6688//8832 6689//8832 +f 6474//8833 6689//8833 6584//8833 +f 6329//8834 6475//8834 6690//8834 +f 6329//8835 6690//8835 6549//8835 +f 6556//8836 6675//8836 6691//8836 +f 6556//8836 6691//8836 6566//8836 +f 6567//8837 6573//8837 6692//8837 +f 6567//8815 6692//8815 6676//8815 +f 6607//8838 6669//8838 6693//8838 +f 6599//8839 6608//8839 6694//8839 +f 6599//8840 6694//8840 6668//8840 +f 6607//8841 6693//8841 6621//8841 +f 6503//8812 6695//8812 6673//8812 +f 6494//8842 6696//8842 6504//8842 +f 6494//8842 6674//8842 6696//8842 +f 6503//8843 6588//8843 6695//8843 +f 6530//8844 6540//8844 6697//8844 +f 6530//8844 6697//8844 6682//8844 +f 6539//8825 6683//8825 6698//8825 +f 6539//8845 6698//8845 6540//8845 +f 6512//8831 6699//8831 6687//8831 +f 6512//8846 6515//8846 6699//8846 +f 6672//8847 6621//8847 6700//8847 +f 6672//8848 6700//8848 6701//8848 +f 6672//8849 6701//8849 6588//8849 +f 6588//8850 6701//8850 6702//8850 +f 6504//8851 6703//8851 6514//8851 +f 6504//8851 6696//8851 6703//8851 +f 6588//8843 6702//8843 6695//8843 +f 6540//8845 6698//8845 6697//8845 +f 6506//8852 6704//8852 6547//8852 +f 6506//8852 6646//8852 6704//8852 +f 6548//8853 6580//8853 6705//8853 +f 6548//8782 6705//8782 6647//8782 +f 6515//8846 6706//8846 6699//8846 +f 6515//8854 6514//8854 6706//8854 +f 6679//8855 6651//8855 6622//8855 +f 6621//8847 6707//8847 6700//8847 +f 6621//8856 6708//8856 6707//8856 +f 6608//8857 6622//8857 6709//8857 +f 6608//8858 6709//8858 6694//8858 +f 6621//8859 6693//8859 6708//8859 +f 6700//8860 6707//8860 6710//8860 +f 6700//8861 6710//8861 6701//8861 +f 6701//8850 6710//8850 6702//8850 +f 6514//8854 6703//8854 6706//8854 +f 6661//8862 6686//8862 6652//8862 +f 6566//8863 6691//8863 6711//8863 +f 6566//8863 6711//8863 6572//8863 +f 6573//8864 6579//8864 6712//8864 +f 6573//8837 6712//8837 6692//8837 +f 6652//8865 6686//8865 6669//8865 +f 6639//8866 6653//8866 6713//8866 +f 6639//8867 6713//8867 6686//8867 +f 6622//8868 6714//8868 6709//8868 +f 6622//8869 6651//8869 6714//8869 +f 6707//8870 6708//8870 6715//8870 +f 6707//8871 6715//8871 6710//8871 +f 6362//8872 6549//8872 6716//8872 +f 6362//8873 6716//8873 6717//8873 +f 6531//8874 6718//8874 6719//8874 +f 6531//8874 6719//8874 6688//8874 +f 6531//8626 6532//8626 6718//8626 +f 6362//8875 6717//8875 6533//8875 +f 6456//8876 6604//8876 6720//8876 +f 6456//8876 6720//8876 6563//8876 +f 6562//8724 6721//8724 6605//8724 +f 6562//8877 6589//8877 6721//8877 +f 6595//8878 6613//8878 6722//8878 +f 6595//8822 6722//8822 6680//8822 +f 6570//8879 6681//8879 6723//8879 +f 6570//8879 6723//8879 6594//8879 +f 6714//8880 6724//8880 6709//8880 +f 6714//8881 6651//8881 6724//8881 +f 6572//8882 6711//8882 6725//8882 +f 6572//8882 6725//8882 6578//8882 +f 6579//8883 6597//8883 6726//8883 +f 6579//8864 6726//8864 6712//8864 +f 6686//8884 6713//8884 6669//8884 +f 6715//8885 6708//8885 6727//8885 +f 6715//8886 6727//8886 6710//8886 +f 6669//8887 6713//8887 6693//8887 +f 6653//8888 6668//8888 6728//8888 +f 6653//8889 6728//8889 6713//8889 +f 6724//8880 6729//8880 6709//8880 +f 6724//8890 6651//8890 6730//8890 +f 6724//8891 6730//8891 6729//8891 +f 6729//8892 6731//8892 6709//8892 +f 6729//8893 6730//8893 6731//8893 +f 6693//8894 6713//8894 6728//8894 +f 6668//8895 6694//8895 6732//8895 +f 6668//8896 6732//8896 6728//8896 +f 6693//8897 6728//8897 6708//8897 +f 6578//8898 6725//8898 6733//8898 +f 6578//8898 6733//8898 6596//8898 +f 6597//8899 6605//8899 6734//8899 +f 6597//8883 6734//8883 6726//8883 +f 6594//8900 6723//8900 6735//8900 +f 6594//8900 6735//8900 6612//8900 +f 6613//8878 6736//8878 6722//8878 +f 6613//8901 6615//8901 6736//8901 +f 6615//8901 6737//8901 6736//8901 +f 6615//8902 6618//8902 6737//8902 +f 6612//8903 6735//8903 6738//8903 +f 6612//8903 6738//8903 6616//8903 +f 6532//8904 6680//8904 6718//8904 +f 6616//2118 6738//2118 6739//2118 +f 6616//2118 6739//2118 6617//2118 +f 6618//2120 6636//2120 6740//2120 +f 6618//8902 6740//8902 6737//8902 +f 6731//8905 6730//8905 6709//8905 +f 6533//8906 6717//8906 6741//8906 +f 6533//8906 6741//8906 6634//8906 +f 6727//8907 6708//8907 6742//8907 +f 6727//8908 6742//8908 6710//8908 +f 6708//8909 6732//8909 6742//8909 +f 6694//8910 6709//8910 6743//8910 +f 6694//8911 6743//8911 6732//8911 +f 6708//8912 6728//8912 6732//8912 +f 6580//8853 6744//8853 6705//8853 +f 6547//8913 6745//8913 6581//8913 +f 6547//8913 6704//8913 6745//8913 +f 6580//8914 6602//8914 6744//8914 +f 6709//8915 6746//8915 6743//8915 +f 6709//8905 6730//8905 6746//8905 +f 6742//8916 6747//8916 6748//8916 +f 6742//8917 6743//8917 6747//8917 +f 6742//8918 6732//8918 6743//8918 +f 6742//8908 6748//8908 6710//8908 +f 6596//8919 6733//8919 6749//8919 +f 6596//8919 6749//8919 6604//8919 +f 6605//8920 6721//8920 6750//8920 +f 6605//8899 6750//8899 6734//8899 +f 4622//8921 6611//8921 4621//8921 +f 4534//8922 4535//8922 6610//8922 +f 6746//8923 6751//8923 6743//8923 +f 6746//8924 6730//8924 6751//8924 +f 6748//8925 6747//8925 6752//8925 +f 6748//8926 6752//8926 6710//8926 +f 6752//8925 6747//8925 6753//8925 +f 6752//8927 6753//8927 6754//8927 +f 6752//8928 6754//8928 6710//8928 +f 6610//8929 6755//8929 6609//8929 +f 6610//8929 6756//8929 6755//8929 +f 6611//8930 6619//8930 6757//8930 +f 6611//8931 6757//8931 4621//8931 +f 6610//8932 4535//8932 6756//8932 +f 6563//8933 6720//8933 6758//8933 +f 6563//8933 6758//8933 6590//8933 +f 6589//8877 6759//8877 6721//8877 +f 6589//8934 6629//8934 6759//8934 +f 6753//8935 6747//8935 6754//8935 +f 6636//2120 6760//2120 6740//2120 +f 6636//2129 6643//2129 6760//2129 +f 6617//2130 6739//2130 6761//2130 +f 6617//2130 6761//2130 6635//2130 +f 6751//8936 6762//8936 6743//8936 +f 6751//8937 6730//8937 6762//8937 +f 6762//8936 6763//8936 6743//8936 +f 6762//8938 6764//8938 6763//8938 +f 6762//8939 6730//8939 6764//8939 +f 6619//8940 6647//8940 6765//8940 +f 6619//8930 6765//8930 6757//8930 +f 6609//8941 6766//8941 6620//8941 +f 6609//8941 6755//8941 6766//8941 +f 6763//8942 6764//8942 6754//8942 +f 6763//8943 6754//8943 6743//8943 +f 6747//8944 6743//8944 6754//8944 +f 6643//2129 6767//2129 6760//2129 +f 6643//2135 6649//2135 6767//2135 +f 6635//2136 6761//2136 6768//2136 +f 6635//2136 6768//2136 6642//2136 +f 6415//8945 6488//8945 6769//8945 +f 6415//8945 6769//8945 6684//8945 +f 6487//8946 6770//8946 6558//8946 +f 6487//8827 6685//8827 6770//8827 +f 6581//8947 6771//8947 6603//8947 +f 6581//8947 6745//8947 6771//8947 +f 6602//8914 6772//8914 6744//8914 +f 6602//8948 6625//8948 6772//8948 +f 6649//2141 6656//2141 6773//2141 +f 6649//2135 6773//2135 6767//2135 +f 6642//2142 6768//2142 6774//2142 +f 6642//2142 6774//2142 6648//2142 +f 6656//2141 6775//2141 6773//2141 +f 6656//2149 6663//2149 6775//2149 +f 6648//2148 6774//2148 6776//2148 +f 6648//2148 6776//2148 6655//2148 +f 6634//8949 6741//8949 6777//8949 +f 6634//8949 6777//8949 6681//8949 +f 6680//8950 6778//8950 6718//8950 +f 6680//8951 6722//8951 6778//8951 +f 6663//2166 6671//2166 6779//2166 +f 6663//2149 6779//2149 6775//2149 +f 6655//2165 6776//2165 6780//2165 +f 6655//2165 6780//2165 6662//2165 +f 6603//8952 6781//8952 6626//8952 +f 6603//8952 6771//8952 6781//8952 +f 6625//8948 6782//8948 6772//8948 +f 6625//8953 6644//8953 6782//8953 +f 6590//8954 6758//8954 6783//8954 +f 6590//8954 6783//8954 6630//8954 +f 6629//8934 6784//8934 6759//8934 +f 6629//8955 6650//8955 6784//8955 +f 6647//8940 6785//8940 6765//8940 +f 6647//8956 6705//8956 6785//8956 +f 6620//8957 6786//8957 6646//8957 +f 6620//8957 6766//8957 6786//8957 +f 6666//8958 6676//8958 6787//8958 +f 6666//8959 6788//8959 6667//8959 +f 6666//8959 6787//8959 6788//8959 +f 6664//8960 6670//8960 6789//8960 +f 6664//8961 6789//8961 6790//8961 +f 6664//8961 6790//8961 6665//8961 +f 6667//8962 6791//8962 6671//8962 +f 6667//8962 6788//8962 6791//8962 +f 6670//8963 6662//8963 6792//8963 +f 6670//8960 6792//8960 6789//8960 +f 4535//8964 4536//8964 6756//8964 +f 6676//8958 6793//8958 6787//8958 +f 6676//8965 6692//8965 6793//8965 +f 6665//8966 6790//8966 6794//8966 +f 6665//8966 6794//8966 6675//8966 +f 6671//2166 6791//2166 6779//2166 +f 6662//8963 6780//8963 6792//8963 +f 6692//8967 6712//8967 6795//8967 +f 6692//8965 6795//8965 6793//8965 +f 6675//8968 6794//8968 6796//8968 +f 6675//8968 6796//8968 6691//8968 +f 6644//8969 6659//8969 6797//8969 +f 6626//8970 6798//8970 6645//8970 +f 6626//8970 6781//8970 6798//8970 +f 6644//8953 6797//8953 6782//8953 +f 6475//8971 6583//8971 6799//8971 +f 6475//8972 6799//8972 6800//8972 +f 6584//8973 6689//8973 6801//8973 +f 6584//8974 6801//8974 6802//8974 +f 6584//8975 6802//8975 6685//8975 +f 6475//8976 6800//8976 6690//8976 +f 6681//8977 6777//8977 6803//8977 +f 6681//8977 6803//8977 6723//8977 +f 6722//8978 6736//8978 6804//8978 +f 6722//8951 6804//8951 6778//8951 +f 6712//8967 6805//8967 6795//8967 +f 6712//8979 6726//8979 6805//8979 +f 6691//8980 6796//8980 6806//8980 +f 6691//8980 6806//8980 6711//8980 +f 6630//8981 6783//8981 6807//8981 +f 6630//8981 6807//8981 6651//8981 +f 6650//8955 6808//8955 6784//8955 +f 6650//8982 6678//8982 6808//8982 +f 6659//8969 6809//8969 6797//8969 +f 6645//8983 6810//8983 6660//8983 +f 6645//8983 6798//8983 6810//8983 +f 6659//8984 6673//8984 6809//8984 +f 4621//8985 6757//8985 4620//8985 +f 6718//8986 6778//8986 6719//8986 +f 6717//8987 6716//8987 6811//8987 +f 6717//8987 6811//8987 6741//8987 +f 6558//8988 6812//8988 6592//8988 +f 6488//8989 6559//8989 6813//8989 +f 6488//8989 6813//8989 6769//8989 +f 6558//8946 6770//8946 6812//8946 +f 6726//8990 6734//8990 6814//8990 +f 6726//8979 6814//8979 6805//8979 +f 6711//8991 6806//8991 6815//8991 +f 6711//8991 6815//8991 6725//8991 +f 6705//8992 6744//8992 6816//8992 +f 6646//8993 6817//8993 6704//8993 +f 6646//8993 6786//8993 6817//8993 +f 6705//8956 6816//8956 6785//8956 +f 6723//8994 6803//8994 6818//8994 +f 6723//8994 6818//8994 6735//8994 +f 6736//8995 6737//8995 6819//8995 +f 6736//8978 6819//8978 6804//8978 +f 6737//8995 6820//8995 6819//8995 +f 6737//8996 6740//8996 6820//8996 +f 6735//8997 6818//8997 6821//8997 +f 6735//8997 6821//8997 6738//8997 +f 6660//8998 6822//8998 6674//8998 +f 6660//8998 6810//8998 6822//8998 +f 6673//8999 6695//8999 6823//8999 +f 6673//8984 6823//8984 6809//8984 +f 6738//2021 6821//2021 6824//2021 +f 6738//2021 6824//2021 6739//2021 +f 6740//2019 6760//2019 6825//2019 +f 6740//8996 6825//8996 6820//8996 +f 6651//9000 6807//9000 6826//9000 +f 6651//9000 6826//9000 6730//9000 +f 6678//8982 6827//8982 6808//8982 +f 6678//9001 6687//9001 6827//9001 +f 6604//9002 6749//9002 6828//9002 +f 6604//9002 6828//9002 6720//9002 +f 6721//9003 6759//9003 6829//9003 +f 6721//8920 6829//8920 6750//8920 +f 6734//8990 6830//8990 6814//8990 +f 6734//9004 6750//9004 6830//9004 +f 6725//9005 6815//9005 6831//9005 +f 6725//9005 6831//9005 6733//9005 +f 6687//9001 6832//9001 6827//9001 +f 6687//9006 6699//9006 6832//9006 +f 6730//9007 6826//9007 6833//9007 +f 6730//9007 6833//9007 6764//9007 +f 6674//9008 6834//9008 6696//9008 +f 6674//9008 6822//9008 6834//9008 +f 6695//9009 6702//9009 6835//9009 +f 6695//8999 6835//8999 6823//8999 +f 6699//9006 6836//9006 6832//9006 +f 6699//9010 6706//9010 6836//9010 +f 6764//9011 6833//9011 6837//9011 +f 6764//9011 6837//9011 6754//9011 +f 6760//2019 6838//2019 6825//2019 +f 6760//2051 6767//2051 6838//2051 +f 6739//2050 6824//2050 6839//2050 +f 6739//2050 6839//2050 6761//2050 +f 6702//9012 6710//9012 6840//9012 +f 6696//9013 6841//9013 6703//9013 +f 6696//9013 6834//9013 6841//9013 +f 6702//9009 6840//9009 6835//9009 +f 6706//9010 6842//9010 6836//9010 +f 6706//9014 6703//9014 6842//9014 +f 6754//9015 6837//9015 6843//9015 +f 6754//9015 6843//9015 6710//9015 +f 6549//9016 6844//9016 6716//9016 +f 6688//9017 6845//9017 6689//9017 +f 6688//8874 6719//8874 6845//8874 +f 6549//9018 6690//9018 6846//9018 +f 6549//9018 6846//9018 6844//9018 +f 6710//9012 6843//9012 6840//9012 +f 6703//9014 6841//9014 6842//9014 +f 6750//9019 6829//9019 6847//9019 +f 6750//9004 6847//9004 6830//9004 +f 6733//9020 6831//9020 6848//9020 +f 6733//9020 6848//9020 6749//9020 +f 4620//9021 6757//9021 4619//9021 +f 4536//9022 4537//9022 6756//9022 +f 6761//2058 6839//2058 6849//2058 +f 6761//2058 6849//2058 6768//2058 +f 6767//2059 6773//2059 6850//2059 +f 6767//2051 6850//2051 6838//2051 +f 6756//9023 6851//9023 6755//9023 +f 6756//9023 6852//9023 6851//9023 +f 6757//9024 6765//9024 6853//9024 +f 6757//9025 6853//9025 4619//9025 +f 6756//9026 4537//9026 6852//9026 +f 6778//9027 6854//9027 6719//9027 +f 6741//9028 6811//9028 6855//9028 +f 6741//9028 6855//9028 6777//9028 +f 6778//9029 6804//9029 6854//9029 +f 6768//2067 6849//2067 6856//2067 +f 6768//2067 6856//2067 6774//2067 +f 6773//2068 6775//2068 6857//2068 +f 6773//2059 6857//2059 6850//2059 +f 6755//9030 6858//9030 6766//9030 +f 6755//9030 6851//9030 6858//9030 +f 6765//9024 6859//9024 6853//9024 +f 6765//9031 6785//9031 6859//9031 +f 6744//8992 6860//8992 6816//8992 +f 6704//9032 6861//9032 6745//9032 +f 6704//9032 6817//9032 6861//9032 +f 6744//9033 6772//9033 6860//9033 +f 6774//2075 6856//2075 6862//2075 +f 6774//2075 6862//2075 6776//2075 +f 6775//2076 6779//2076 6863//2076 +f 6775//2068 6863//2068 6857//2068 +f 6592//8988 6812//8988 6864//8988 +f 6559//9034 6593//9034 6865//9034 +f 6559//9034 6865//9034 6813//9034 +f 6592//9035 6864//9035 6632//9035 +f 6720//9036 6828//9036 6866//9036 +f 6720//9036 6866//9036 6758//9036 +f 6759//9037 6784//9037 6867//9037 +f 6759//9003 6867//9003 6829//9003 +f 6776//2088 6862//2088 6868//2088 +f 6776//2088 6868//2088 6780//2088 +f 6779//2089 6791//2089 6869//2089 +f 6779//2076 6869//2076 6863//2076 +f 6789//9038 6870//9038 6871//9038 +f 6789//9038 6871//9038 6790//9038 +f 6789//9039 6792//9039 6870//9039 +f 6787//9040 6793//9040 6872//9040 +f 6787//9041 6873//9041 6788//9041 +f 6787//9041 6872//9041 6873//9041 +f 6792//9039 6874//9039 6870//9039 +f 6792//9042 6780//9042 6874//9042 +f 6788//9043 6875//9043 6791//9043 +f 6788//9043 6873//9043 6875//9043 +f 6790//9044 6871//9044 6876//9044 +f 6790//9044 6876//9044 6794//9044 +f 6793//9045 6795//9045 6877//9045 +f 6793//9040 6877//9040 6872//9040 +f 6772//9046 6782//9046 6878//9046 +f 6745//9047 6879//9047 6771//9047 +f 6745//9047 6861//9047 6879//9047 +f 6772//9033 6878//9033 6860//9033 +f 6804//9048 6819//9048 6880//9048 +f 6777//9049 6855//9049 6881//9049 +f 6777//9049 6881//9049 6803//9049 +f 6804//9029 6880//9029 6854//9029 +f 6780//9042 6868//9042 6874//9042 +f 6791//2089 6875//2089 6869//2089 +f 6785//9050 6816//9050 6882//9050 +f 6785//9031 6882//9031 6859//9031 +f 6766//9051 6883//9051 6786//9051 +f 6766//9051 6858//9051 6883//9051 +f 6794//9052 6876//9052 6884//9052 +f 6794//9052 6884//9052 6796//9052 +f 6795//9053 6805//9053 6885//9053 +f 6795//9045 6885//9045 6877//9045 +f 6719//9054 6854//9054 6845//9054 +f 6716//9055 6844//9055 6886//9055 +f 6716//9055 6886//9055 6811//9055 +f 6583//9056 6887//9056 6799//9056 +f 6685//9057 6888//9057 6889//9057 +f 6685//9058 6889//9058 6770//9058 +f 6583//9059 6684//9059 6890//9059 +f 6583//9060 6890//9060 6887//9060 +f 6685//9061 6802//9061 6888//9061 +f 6796//9062 6884//9062 6891//9062 +f 6796//9062 6891//9062 6806//9062 +f 6805//9063 6814//9063 6892//9063 +f 6805//9053 6892//9053 6885//9053 +f 6593//9064 6631//9064 6893//9064 +f 6593//9064 6893//9064 6865//9064 +f 6632//9065 6894//9065 6658//9065 +f 6632//9035 6864//9035 6894//9035 +f 6690//9066 6800//9066 6895//9066 +f 6690//9066 6895//9066 6846//9066 +f 6689//9067 6896//9067 6801//9067 +f 6689//9017 6845//9017 6896//9017 +f 6803//9068 6881//9068 6897//9068 +f 6803//9068 6897//9068 6818//9068 +f 6819//9048 6898//9048 6880//9048 +f 6819//9069 6820//9069 6898//9069 +f 6782//9046 6899//9046 6878//9046 +f 6782//9070 6797//9070 6899//9070 +f 6771//9071 6900//9071 6781//9071 +f 6771//9071 6879//9071 6900//9071 +f 6758//9072 6866//9072 6901//9072 +f 6758//9072 6901//9072 6783//9072 +f 6784//9073 6808//9073 6902//9073 +f 6784//9037 6902//9037 6867//9037 +f 4537//9074 4538//9074 6852//9074 +f 6820//9069 6903//9069 6898//9069 +f 6820//9075 6825//9075 6903//9075 +f 6818//9076 6897//9076 6904//9076 +f 6818//9076 6904//9076 6821//9076 +f 6821//1942 6904//1942 6905//1942 +f 6821//1942 6905//1942 6824//1942 +f 6825//1941 6838//1941 6906//1941 +f 6825//9075 6906//9075 6903//9075 +f 6806//9077 6891//9077 6907//9077 +f 6806//9077 6907//9077 6815//9077 +f 6814//9078 6830//9078 6908//9078 +f 6814//9063 6908//9063 6892//9063 +f 6797//9079 6809//9079 6909//9079 +f 6797//9070 6909//9070 6899//9070 +f 6781//9080 6910//9080 6798//9080 +f 6781//9080 6900//9080 6910//9080 +f 6838//1941 6911//1941 6906//1941 +f 6838//1958 6850//1958 6911//1958 +f 6824//1959 6905//1959 6912//1959 +f 6824//1959 6912//1959 6839//1959 +f 6786//9081 6913//9081 6817//9081 +f 6786//9081 6883//9081 6913//9081 +f 6816//9082 6860//9082 6914//9082 +f 6816//9050 6914//9050 6882//9050 +f 6815//9083 6907//9083 6915//9083 +f 6815//9083 6915//9083 6831//9083 +f 6830//9084 6847//9084 6916//9084 +f 6830//9078 6916//9078 6908//9078 +f 6631//9085 6657//9085 6917//9085 +f 6631//9085 6917//9085 6893//9085 +f 6658//9086 6918//9086 6683//9086 +f 6658//9065 6894//9065 6918//9065 +f 6854//9087 6919//9087 6845//9087 +f 6811//9088 6886//9088 6920//9088 +f 6811//9088 6920//9088 6855//9088 +f 6854//9089 6880//9089 6919//9089 +f 6783//9090 6901//9090 6921//9090 +f 6783//9090 6921//9090 6807//9090 +f 6808//9091 6827//9091 6922//9091 +f 6808//9073 6922//9073 6902//9073 +f 6850//1958 6923//1958 6911//1958 +f 6850//1969 6857//1969 6923//1969 +f 6839//1970 6912//1970 6924//1970 +f 6839//1970 6924//1970 6849//1970 +f 4619//9092 6853//9092 4618//9092 +f 6809//9079 6925//9079 6909//9079 +f 6798//9093 6926//9093 6810//9093 +f 6798//9093 6910//9093 6926//9093 +f 6809//9094 6823//9094 6925//9094 +f 6829//9019 6927//9019 6847//9019 +f 6829//9095 6867//9095 6927//9095 +f 6749//9096 6848//9096 6928//9096 +f 6749//9096 6928//9096 6828//9096 +f 6857//1969 6929//1969 6923//1969 +f 6857//1976 6863//1976 6929//1976 +f 6849//1977 6924//1977 6930//1977 +f 6849//1977 6930//1977 6856//1977 +f 6831//9097 6915//9097 6931//9097 +f 6831//9097 6931//9097 6848//9097 +f 6847//9098 6927//9098 6932//9098 +f 6847//9084 6932//9084 6916//9084 +f 4618//9099 6853//9099 4617//9099 +f 4538//9100 4539//9100 6852//9100 +f 6852//9101 6933//9101 6851//9101 +f 6852//9101 6934//9101 6933//9101 +f 6853//9102 6859//9102 6935//9102 +f 6853//9099 6935//9099 4617//9099 +f 6852//9103 4539//9103 6934//9103 +f 6657//9104 6682//9104 6936//9104 +f 6657//9104 6936//9104 6917//9104 +f 6683//9105 6937//9105 6698//9105 +f 6683//9086 6918//9086 6937//9086 +f 6863//1976 6938//1976 6929//1976 +f 6863//1984 6869//1984 6938//1984 +f 6856//1985 6930//1985 6939//1985 +f 6856//1985 6939//1985 6862//1985 +f 6823//9106 6835//9106 6940//9106 +f 6810//9107 6941//9107 6822//9107 +f 6810//9107 6926//9107 6941//9107 +f 6823//9094 6940//9094 6925//9094 +f 6807//9108 6921//9108 6942//9108 +f 6807//9108 6942//9108 6826//9108 +f 6827//9109 6832//9109 6943//9109 +f 6827//9091 6943//9091 6922//9091 +f 6859//9102 6944//9102 6935//9102 +f 6859//9110 6882//9110 6944//9110 +f 6851//9111 6945//9111 6858//9111 +f 6851//9111 6933//9111 6945//9111 +f 6869//1984 6946//1984 6938//1984 +f 6869//1991 6875//1991 6946//1991 +f 6862//1990 6939//1990 6947//1990 +f 6862//1990 6947//1990 6868//1990 +f 6845//9112 6919//9112 6896//9112 +f 6844//9113 6846//9113 6948//9113 +f 6844//9113 6948//9113 6886//9113 +f 6800//9114 6799//9114 6949//9114 +f 6800//9114 6949//9114 6895//9114 +f 6801//9115 6950//9115 6802//9115 +f 6801//9067 6896//9067 6950//9067 +f 6682//9116 6697//9116 6951//9116 +f 6682//9116 6951//9116 6936//9116 +f 6698//9117 6952//9117 6697//9117 +f 6698//9105 6937//9105 6952//9105 +f 6872//9118 6953//9118 6873//9118 +f 6872//9118 6954//9118 6953//9118 +f 6872//9119 6877//9119 6954//9119 +f 6870//9120 6955//9120 6956//9120 +f 6870//9120 6956//9120 6871//9120 +f 6870//9121 6874//9121 6955//9121 +f 6855//9122 6920//9122 6957//9122 +f 6855//9122 6957//9122 6881//9122 +f 6880//9123 6898//9123 6958//9123 +f 6880//9089 6958//9089 6919//9089 +f 6826//9124 6942//9124 6959//9124 +f 6826//9124 6959//9124 6833//9124 +f 6832//9125 6836//9125 6960//9125 +f 6832//9109 6960//9109 6943//9109 +f 6873//9126 6961//9126 6875//9126 +f 6873//9126 6953//9126 6961//9126 +f 6874//9121 6962//9121 6955//9121 +f 6874//9127 6868//9127 6962//9127 +f 6697//9117 6952//9117 6951//9117 +f 6835//9106 6963//9106 6940//9106 +f 6835//9128 6840//9128 6963//9128 +f 6822//9129 6964//9129 6834//9129 +f 6822//9129 6941//9129 6964//9129 +f 6877//9119 6965//9119 6954//9119 +f 6877//9130 6885//9130 6965//9130 +f 6871//9131 6956//9131 6966//9131 +f 6871//9131 6966//9131 6876//9131 +f 6833//9132 6959//9132 6967//9132 +f 6833//9132 6967//9132 6837//9132 +f 6836//9133 6842//9133 6968//9133 +f 6836//9125 6968//9125 6960//9125 +f 6770//9134 6889//9134 6969//9134 +f 6684//9135 6769//9135 6970//9135 +f 6684//9136 6970//9136 6971//9136 +f 6684//9137 6971//9137 6890//9137 +f 6770//9138 6969//9138 6972//9138 +f 6770//9138 6972//9138 6812//9138 +f 6840//9139 6843//9139 6973//9139 +f 6840//9128 6973//9128 6963//9128 +f 6834//9140 6974//9140 6841//9140 +f 6834//9140 6964//9140 6974//9140 +f 6837//9141 6967//9141 6975//9141 +f 6837//9141 6975//9141 6843//9141 +f 6842//9142 6841//9142 6976//9142 +f 6842//9133 6976//9133 6968//9133 +f 6875//1991 6961//1991 6946//1991 +f 6868//9127 6947//9127 6962//9127 +f 6843//9139 6975//9139 6973//9139 +f 6841//9142 6974//9142 6976//9142 +f 6860//9082 6977//9082 6914//9082 +f 6817//9143 6978//9143 6861//9143 +f 6817//9143 6913//9143 6978//9143 +f 6860//9144 6878//9144 6977//9144 +f 6885//9130 6979//9130 6965//9130 +f 6885//9145 6892//9145 6979//9145 +f 6876//9146 6966//9146 6980//9146 +f 6876//9146 6980//9146 6884//9146 +f 6881//9147 6957//9147 6981//9147 +f 6881//9147 6981//9147 6897//9147 +f 6898//9148 6903//9148 6982//9148 +f 6898//9123 6982//9123 6958//9123 +f 6867//9095 6983//9095 6927//9095 +f 6867//9149 6902//9149 6983//9149 +f 6828//9150 6928//9150 6984//9150 +f 6828//9150 6984//9150 6866//9150 +f 6882//9151 6914//9151 6985//9151 +f 6882//9110 6985//9110 6944//9110 +f 6858//9152 6986//9152 6883//9152 +f 6858//9152 6945//9152 6986//9152 +f 6903//9148 6987//9148 6982//9148 +f 6903//9153 6906//9153 6987//9153 +f 6897//9154 6981//9154 6988//9154 +f 6897//9154 6988//9154 6904//9154 +f 6892//9145 6989//9145 6979//9145 +f 6892//9155 6908//9155 6989//9155 +f 6884//9156 6980//9156 6990//9156 +f 6884//9156 6990//9156 6891//9156 +f 6904//1851 6988//1851 6991//1851 +f 6904//1851 6991//1851 6905//1851 +f 6906//1853 6911//1853 6992//1853 +f 6906//9153 6992//9153 6987//9153 +f 6861//9157 6993//9157 6879//9157 +f 6861//9157 6978//9157 6993//9157 +f 6878//9158 6899//9158 6994//9158 +f 6878//9144 6994//9144 6977//9144 +f 6919//9112 6995//9112 6896//9112 +f 6886//9159 6948//9159 6996//9159 +f 6886//9159 6996//9159 6920//9159 +f 6919//9160 6958//9160 6995//9160 +f 6908//9155 6997//9155 6989//9155 +f 6908//9161 6916//9161 6997//9161 +f 6891//9162 6990//9162 6998//9162 +f 6891//9162 6998//9162 6907//9162 +f 6911//1853 6999//1853 6992//1853 +f 6905//1873 6991//1873 7000//1873 +f 6905//1873 7000//1873 6912//1873 +f 6911//1874 6923//1874 6999//1874 +f 6799//9163 6887//9163 7001//9163 +f 6799//9163 7001//9163 6949//9163 +f 6802//9164 7002//9164 6888//9164 +f 6802//9115 6950//9115 7002//9115 +f 6912//1879 7000//1879 7003//1879 +f 6912//1879 7003//1879 6924//1879 +f 6923//1880 6929//1880 7004//1880 +f 6923//1874 7004//1874 6999//1874 +f 6916//9161 7005//9161 6997//9161 +f 6916//9165 6932//9165 7005//9165 +f 6907//9166 6998//9166 7006//9166 +f 6907//9166 7006//9166 6915//9166 +f 6879//9167 7007//9167 6900//9167 +f 6879//9167 6993//9167 7007//9167 +f 6899//9168 6909//9168 7008//9168 +f 6899//9158 7008//9158 6994//9158 +f 4539//9169 4540//9169 6934//9169 +f 6902//9170 6922//9170 7009//9170 +f 6902//9149 7009//9149 6983//9149 +f 6866//9171 6984//9171 7010//9171 +f 6866//9171 7010//9171 6901//9171 +f 6924//1887 7003//1887 7011//1887 +f 6924//1887 7011//1887 6930//1887 +f 6929//1888 6938//1888 7012//1888 +f 6929//1880 7012//1880 7004//1880 +f 6896//9172 6995//9172 6950//9172 +f 6846//9173 6895//9173 7013//9173 +f 6846//9173 7013//9173 6948//9173 +f 6883//9174 7014//9174 6913//9174 +f 6883//9174 6986//9174 7014//9174 +f 6914//9151 7015//9151 6985//9151 +f 6914//9175 6977//9175 7015//9175 +f 6930//1903 7011//1903 7016//1903 +f 6930//1903 7016//1903 6939//1903 +f 6938//1904 6946//1904 7017//1904 +f 6938//1888 7017//1888 7012//1888 +f 6932//9098 6927//9098 7018//9098 +f 6932//9165 7019//9165 7005//9165 +f 6932//9176 7018//9176 7019//9176 +f 6915//9177 7006//9177 7020//9177 +f 6915//9177 7020//9177 6931//9177 +f 4617//9178 6935//9178 4616//9178 +f 4540//9179 7021//9179 6934//9179 +f 4540//9179 4541//9179 7021//9179 +f 6958//9180 6982//9180 7022//9180 +f 6920//9181 6996//9181 7023//9181 +f 6920//9181 7023//9181 6957//9181 +f 6958//9160 7022//9160 6995//9160 +f 6812//9182 7024//9182 6864//9182 +f 6769//9183 6813//9183 7025//9183 +f 6769//9183 7025//9183 7026//9183 +f 6769//9184 7026//9184 6970//9184 +f 6812//9138 6972//9138 7024//9138 +f 6934//9185 7027//9185 6933//9185 +f 6934//9185 7021//9185 7027//9185 +f 6935//9186 6944//9186 7028//9186 +f 6935//9187 7028//9187 4616//9187 +f 6939//1916 7016//1916 7029//1916 +f 6939//1916 7029//1916 6947//1916 +f 6946//1917 6961//1917 7030//1917 +f 6946//1904 7030//1904 7017//1904 +f 6900//9188 7031//9188 6910//9188 +f 6900//9188 7007//9188 7031//9188 +f 6909//9189 6925//9189 7032//9189 +f 6909//9168 7032//9168 7008//9168 +f 6955//9190 7033//9190 7034//9190 +f 6955//9190 7034//9190 6956//9190 +f 6955//9191 6962//9191 7033//9191 +f 6954//9192 6965//9192 7035//9192 +f 6954//9193 7036//9193 6953//9193 +f 6954//9193 7035//9193 7036//9193 +f 6848//9194 6931//9194 7037//9194 +f 6848//9194 7037//9194 6928//9194 +f 6927//9195 6983//9195 7018//9195 +f 6962//9196 6947//9196 7038//9196 +f 6962//9191 7038//9191 7033//9191 +f 6953//9197 7039//9197 6961//9197 +f 6953//9197 7036//9197 7039//9197 +f 6944//9186 7040//9186 7028//9186 +f 6944//9198 6985//9198 7040//9198 +f 6933//9199 7041//9199 6945//9199 +f 6933//9199 7027//9199 7041//9199 +f 6956//9200 7034//9200 7042//9200 +f 6956//9200 7042//9200 6966//9200 +f 6965//9201 6979//9201 7043//9201 +f 6965//9192 7043//9192 7035//9192 +f 6922//9170 7044//9170 7009//9170 +f 6922//9202 6943//9202 7044//9202 +f 6901//9203 7010//9203 7045//9203 +f 6901//9203 7045//9203 6921//9203 +f 4616//9204 7028//9204 4615//9204 +f 6947//9196 7029//9196 7038//9196 +f 6961//1917 7039//1917 7030//1917 +f 6957//9205 7023//9205 7046//9205 +f 6957//9205 7046//9205 6981//9205 +f 6982//9180 7047//9180 7022//9180 +f 6982//9206 6987//9206 7047//9206 +f 6966//9207 7042//9207 7048//9207 +f 6966//9207 7048//9207 6980//9207 +f 6979//9208 6989//9208 7049//9208 +f 6979//9201 7049//9201 7043//9201 +f 6910//9209 7050//9209 6926//9209 +f 6910//9209 7031//9209 7050//9209 +f 6925//9210 6940//9210 7051//9210 +f 6925//9189 7051//9189 7032//9189 +f 6987//9206 7052//9206 7047//9206 +f 6987//9211 6992//9211 7052//9211 +f 6981//9212 7046//9212 7053//9212 +f 6981//9212 7053//9212 6988//9212 +f 6888//9164 7002//9164 7054//9164 +f 6888//9213 7054//9213 6889//9213 +f 6887//9214 6890//9214 7055//9214 +f 6887//9214 7055//9214 7001//9214 +f 6988//1760 7053//1760 7056//1760 +f 6988//1760 7056//1760 6991//1760 +f 6992//1761 6999//1761 7057//1761 +f 6992//9211 7057//9211 7052//9211 +f 6995//9172 7058//9172 6950//9172 +f 6948//9215 7013//9215 7059//9215 +f 6948//9215 7059//9215 6996//9215 +f 6995//9216 7022//9216 7058//9216 +f 6980//9217 7048//9217 7060//9217 +f 6980//9217 7060//9217 6990//9217 +f 6989//9218 6997//9218 7061//9218 +f 6989//9208 7061//9208 7049//9208 +f 6940//9219 6963//9219 7062//9219 +f 6926//9220 7063//9220 6941//9220 +f 6926//9220 7050//9220 7063//9220 +f 6940//9210 7062//9210 7051//9210 +f 6943//9221 6960//9221 7064//9221 +f 6943//9202 7064//9202 7044//9202 +f 6921//9222 7045//9222 7065//9222 +f 6921//9222 7065//9222 6942//9222 +f 6977//9175 7066//9175 7015//9175 +f 6977//9223 6994//9223 7066//9223 +f 6913//9224 7067//9224 6978//9224 +f 6913//9224 7014//9224 7067//9224 +f 6999//1761 7068//1761 7057//1761 +f 6999//1800 7004//1800 7068//1800 +f 6991//1799 7056//1799 7069//1799 +f 6991//1799 7069//1799 7000//1799 +f 6945//9225 7070//9225 6986//9225 +f 6945//9225 7041//9225 7070//9225 +f 6985//9198 7071//9198 7040//9198 +f 6985//9226 7015//9226 7071//9226 +f 6960//9221 7072//9221 7064//9221 +f 6960//9227 6968//9227 7072//9227 +f 6942//9228 7065//9228 7073//9228 +f 6942//9228 7073//9228 6959//9228 +f 6963//9219 7074//9219 7062//9219 +f 6941//9229 7075//9229 6964//9229 +f 6941//9229 7063//9229 7075//9229 +f 6963//9230 6973//9230 7074//9230 +f 6950//9231 7058//9231 7002//9231 +f 6895//9232 6949//9232 7076//9232 +f 6895//9232 7076//9232 7013//9232 +f 6990//9233 7060//9233 7077//9233 +f 6990//9233 7077//9233 6998//9233 +f 6997//9234 7005//9234 7078//9234 +f 6997//9218 7078//9218 7061//9218 +f 7004//1800 7079//1800 7068//1800 +f 7004//1810 7012//1810 7079//1810 +f 7000//1809 7069//1809 7080//1809 +f 7000//1809 7080//1809 7003//1809 +f 6928//9235 7037//9235 7081//9235 +f 6928//9235 7081//9235 6984//9235 +f 6983//9236 7009//9236 7082//9236 +f 6983//9195 7082//9195 7018//9195 +f 6968//9237 6976//9237 7083//9237 +f 6968//9227 7083//9227 7072//9227 +f 6959//9238 7073//9238 7084//9238 +f 6959//9238 7084//9238 6967//9238 +f 6813//9239 6865//9239 7085//9239 +f 6813//9239 7085//9239 7025//9239 +f 6864//9182 7024//9182 7086//9182 +f 6864//9240 7086//9240 6894//9240 +f 6964//9241 7087//9241 6974//9241 +f 6964//9241 7075//9241 7087//9241 +f 6973//9242 6975//9242 7088//9242 +f 6973//9230 7088//9230 7074//9230 +f 6976//9237 7089//9237 7083//9237 +f 6976//9243 6974//9243 7089//9243 +f 6967//9244 7084//9244 7090//9244 +f 6967//9244 7090//9244 6975//9244 +f 6974//9243 7087//9243 7089//9243 +f 6975//9242 7090//9242 7088//9242 +f 7012//1810 7091//1810 7079//1810 +f 7012//1811 7017//1811 7091//1811 +f 7003//1812 7080//1812 7092//1812 +f 7003//1812 7092//1812 7011//1812 +f 6998//9245 7077//9245 7093//9245 +f 6998//9245 7093//9245 7006//9245 +f 7005//9246 7019//9246 7094//9246 +f 7005//9234 7094//9234 7078//9234 +f 6996//9247 7059//9247 7095//9247 +f 6996//9247 7095//9247 7023//9247 +f 7022//9248 7047//9248 7096//9248 +f 7022//9216 7096//9216 7058//9216 +f 6994//9249 7008//9249 7097//9249 +f 6994//9223 7097//9223 7066//9223 +f 6978//9250 7098//9250 6993//9250 +f 6978//9250 7067//9250 7098//9250 +f 7017//1811 7099//1811 7091//1811 +f 7017//1827 7030//1827 7099//1827 +f 7011//1828 7092//1828 7100//1828 +f 7011//1828 7100//1828 7016//1828 +f 6889//9213 7054//9213 7101//9213 +f 6889//9251 7101//9251 6969//9251 +f 6890//9252 6971//9252 7102//9252 +f 6890//9252 7102//9252 7055//9252 +f 7030//1827 7103//1827 7099//1827 +f 7030//1830 7039//1830 7103//1830 +f 7016//1829 7100//1829 7104//1829 +f 7016//1829 7104//1829 7029//1829 +f 7035//9253 7105//9253 7036//9253 +f 7035//9253 7106//9253 7105//9253 +f 7035//9254 7043//9254 7106//9254 +f 7033//9255 7038//9255 7107//9255 +f 7033//9256 7107//9256 7108//9256 +f 7033//9256 7108//9256 7034//9256 +f 7006//9257 7093//9257 7109//9257 +f 7006//9257 7109//9257 7020//9257 +f 7019//9258 7110//9258 7111//9258 +f 7019//9246 7111//9246 7094//9246 +f 7019//9176 7018//9176 7110//9176 +f 4615//9259 7028//9259 4614//9259 +f 4541//9260 4542//9260 7021//9260 +f 7036//9261 7112//9261 7039//9261 +f 7036//9261 7105//9261 7112//9261 +f 7038//9262 7029//9262 7113//9262 +f 7038//9255 7113//9255 7107//9255 +f 7021//9263 7114//9263 7027//9263 +f 7021//9263 7115//9263 7114//9263 +f 7028//9264 7040//9264 7116//9264 +f 7028//9265 7116//9265 4614//9265 +f 7021//9266 4542//9266 7115//9266 +f 7043//9254 7117//9254 7106//9254 +f 7043//9267 7049//9267 7117//9267 +f 7034//9268 7108//9268 7118//9268 +f 7034//9268 7118//9268 7042//9268 +f 7023//9269 7095//9269 7119//9269 +f 7023//9269 7119//9269 7046//9269 +f 7047//9270 7052//9270 7120//9270 +f 7047//9248 7120//9248 7096//9248 +f 4542//9271 4543//9271 7115//9271 +f 6986//9272 7121//9272 7014//9272 +f 6986//9272 7070//9272 7121//9272 +f 7015//9273 7066//9273 7122//9273 +f 7015//9226 7122//9226 7071//9226 +f 7008//9249 7123//9249 7097//9249 +f 7008//9274 7032//9274 7123//9274 +f 6993//9275 7124//9275 7007//9275 +f 6993//9275 7098//9275 7124//9275 +f 6984//9276 7081//9276 7125//9276 +f 6984//9276 7125//9276 7010//9276 +f 7009//9277 7044//9277 7126//9277 +f 7009//9236 7126//9236 7082//9236 +f 7052//9270 7127//9270 7120//9270 +f 7052//9278 7057//9278 7127//9278 +f 7046//9279 7119//9279 7128//9279 +f 7046//9279 7128//9279 7053//9279 +f 7039//1830 7112//1830 7103//1830 +f 7029//9262 7104//9262 7113//9262 +f 7058//9231 7129//9231 7002//9231 +f 7013//9280 7076//9280 7130//9280 +f 7013//9280 7130//9280 7059//9280 +f 7058//9281 7096//9281 7129//9281 +f 7053//1693 7128//1693 7131//1693 +f 7053//1693 7131//1693 7056//1693 +f 7057//1691 7068//1691 7132//1691 +f 7057//9278 7132//9278 7127//9278 +f 7040//9282 7071//9282 7133//9282 +f 7040//9264 7133//9264 7116//9264 +f 7027//9283 7134//9283 7041//9283 +f 7027//9283 7114//9283 7134//9283 +f 6894//9284 7135//9284 6918//9284 +f 6894//9240 7086//9240 7135//9240 +f 6865//9285 6893//9285 7136//9285 +f 6865//9285 7136//9285 7085//9285 +f 7049//9267 7137//9267 7117//9267 +f 7049//9286 7061//9286 7137//9286 +f 7042//9287 7118//9287 7138//9287 +f 7042//9287 7138//9287 7048//9287 +f 7018//9288 7082//9288 7110//9288 +f 6931//9289 7020//9289 7139//9289 +f 6931//9289 7139//9289 7037//9289 +f 6949//9290 7001//9290 7140//9290 +f 6949//9290 7140//9290 7076//9290 +f 7002//9291 7129//9291 7054//9291 +f 7061//9286 7141//9286 7137//9286 +f 7061//9292 7078//9292 7141//9292 +f 7048//9293 7138//9293 7142//9293 +f 7048//9293 7142//9293 7060//9293 +f 6969//9251 7101//9251 7143//9251 +f 6969//9294 7143//9294 6972//9294 +f 6971//9295 6970//9295 7144//9295 +f 6971//9295 7144//9295 7102//9295 +f 7032//9296 7051//9296 7145//9296 +f 7032//9274 7145//9274 7123//9274 +f 7007//9297 7146//9297 7031//9297 +f 7007//9297 7124//9297 7146//9297 +f 7068//1691 7147//1691 7132//1691 +f 7068//1711 7079//1711 7147//1711 +f 7056//1712 7131//1712 7148//1712 +f 7056//1712 7148//1712 7069//1712 +f 7079//1711 7149//1711 7147//1711 +f 7079//1721 7091//1721 7149//1721 +f 7069//1722 7148//1722 7150//1722 +f 7069//1722 7150//1722 7080//1722 +f 4614//9298 7116//9298 4613//9298 +f 7010//9299 7125//9299 7151//9299 +f 7010//9299 7151//9299 7045//9299 +f 7044//9277 7152//9277 7126//9277 +f 7044//9300 7064//9300 7152//9300 +f 7078//9292 7153//9292 7141//9292 +f 7078//9301 7094//9301 7153//9301 +f 7060//9302 7142//9302 7154//9302 +f 7060//9302 7154//9302 7077//9302 +f 6918//9284 7135//9284 7155//9284 +f 6918//9303 7155//9303 6937//9303 +f 6893//9304 6917//9304 7156//9304 +f 6893//9304 7156//9304 7136//9304 +f 7096//9305 7120//9305 7157//9305 +f 7059//9306 7130//9306 7158//9306 +f 7059//9306 7158//9306 7095//9306 +f 7096//9281 7157//9281 7129//9281 +f 7071//9282 7159//9282 7133//9282 +f 7071//9307 7122//9307 7159//9307 +f 7041//9308 7160//9308 7070//9308 +f 7041//9308 7134//9308 7160//9308 +f 7051//9296 7161//9296 7145//9296 +f 7051//9309 7062//9309 7161//9309 +f 7031//9310 7162//9310 7050//9310 +f 7031//9310 7146//9310 7162//9310 +f 7080//1728 7150//1728 7163//1728 +f 7080//1728 7163//1728 7092//1728 +f 7091//1721 7164//1721 7149//1721 +f 7091//1727 7099//1727 7164//1727 +f 7092//1738 7163//1738 7165//1738 +f 7092//1738 7165//1738 7100//1738 +f 7099//1727 7166//1727 7164//1727 +f 7099//1737 7103//1737 7166//1737 +f 7066//9273 7167//9273 7122//9273 +f 7066//9311 7097//9311 7167//9311 +f 7014//9312 7168//9312 7067//9312 +f 7014//9312 7121//9312 7168//9312 +f 7094//9301 7169//9301 7153//9301 +f 7094//9313 7111//9313 7169//9313 +f 7077//9314 7154//9314 7170//9314 +f 7077//9314 7170//9314 7093//9314 +f 7062//9315 7074//9315 7171//9315 +f 7062//9309 7171//9309 7161//9309 +f 7050//9316 7172//9316 7063//9316 +f 7050//9316 7162//9316 7172//9316 +f 7045//9317 7151//9317 7173//9317 +f 7045//9317 7173//9317 7065//9317 +f 7064//9300 7174//9300 7152//9300 +f 7064//9318 7072//9318 7174//9318 +f 6972//9319 7143//9319 7175//9319 +f 6972//9320 7175//9320 7024//9320 +f 7100//1745 7165//1745 7176//1745 +f 7100//1745 7176//1745 7104//1745 +f 7103//1737 7177//1737 7166//1737 +f 7103//1746 7112//1746 7177//1746 +f 6937//9303 7155//9303 7178//9303 +f 6937//9321 7178//9321 6952//9321 +f 6917//9322 6936//9322 7179//9322 +f 6917//9322 7179//9322 7156//9322 +f 6970//9323 7026//9323 7180//9323 +f 6970//9323 7180//9323 7144//9323 +f 7082//9288 7181//9288 7110//9288 +f 7082//9324 7126//9324 7181//9324 +f 7037//9325 7139//9325 7182//9325 +f 7037//9325 7182//9325 7081//9325 +f 7095//9326 7158//9326 7183//9326 +f 7095//9326 7183//9326 7119//9326 +f 7120//9305 7184//9305 7157//9305 +f 7120//9327 7127//9327 7184//9327 +f 7107//9328 7185//9328 7186//9328 +f 7107//9328 7186//9328 7108//9328 +f 7107//9329 7113//9329 7185//9329 +f 7106//9330 7187//9330 7105//9330 +f 7106//9330 7188//9330 7187//9330 +f 7106//9331 7117//9331 7188//9331 +f 7129//9291 7189//9291 7054//9291 +f 7076//9332 7140//9332 7190//9332 +f 7076//9332 7190//9332 7130//9332 +f 7129//9333 7157//9333 7189//9333 +f 7113//9329 7191//9329 7185//9329 +f 7113//9334 7104//9334 7191//9334 +f 7105//9335 7192//9335 7112//9335 +f 7105//9335 7187//9335 7192//9335 +f 7054//9336 7189//9336 7101//9336 +f 7001//9337 7055//9337 7193//9337 +f 7001//9337 7193//9337 7140//9337 +f 7127//9327 7194//9327 7184//9327 +f 7127//9338 7132//9338 7194//9338 +f 7119//9339 7183//9339 7195//9339 +f 7119//9339 7195//9339 7128//9339 +f 7065//9340 7173//9340 7196//9340 +f 7065//9340 7196//9340 7073//9340 +f 7072//9318 7197//9318 7174//9318 +f 7072//9341 7083//9341 7197//9341 +f 7108//9342 7186//9342 7198//9342 +f 7108//9342 7198//9342 7118//9342 +f 7117//9331 7199//9331 7188//9331 +f 7117//9343 7137//9343 7199//9343 +f 7074//9315 7200//9315 7171//9315 +f 7063//9344 7201//9344 7075//9344 +f 7063//9344 7172//9344 7201//9344 +f 7074//9345 7088//9345 7200//9345 +f 7128//1601 7195//1601 7202//1601 +f 7128//1601 7202//1601 7131//1601 +f 7132//1602 7147//1602 7203//1602 +f 7132//9338 7203//9338 7194//9338 +f 7111//9313 7204//9313 7169//9313 +f 7111//9346 7205//9346 7204//9346 +f 7111//9258 7110//9258 7205//9258 +f 7093//9347 7170//9347 7206//9347 +f 7093//9347 7206//9347 7109//9347 +f 4613//9348 7116//9348 4612//9348 +f 4543//9349 4544//9349 7115//9349 +f 6936//9350 6951//9350 7207//9350 +f 6936//9350 7207//9350 7179//9350 +f 6952//9321 7178//9321 7208//9321 +f 6952//9351 7208//9351 6951//9351 +f 7073//9352 7196//9352 7209//9352 +f 7073//9352 7209//9352 7084//9352 +f 7083//9341 7210//9341 7197//9341 +f 7083//9353 7089//9353 7210//9353 +f 7115//9354 7211//9354 7114//9354 +f 7115//9354 7212//9354 7211//9354 +f 7116//9355 7133//9355 7213//9355 +f 7116//9356 7213//9356 4612//9356 +f 7115//9357 4544//9357 7212//9357 +f 6951//9351 7208//9351 7207//9351 +f 7067//9358 7214//9358 7098//9358 +f 7067//9358 7168//9358 7214//9358 +f 7097//9359 7123//9359 7215//9359 +f 7097//9311 7215//9311 7167//9311 +f 7104//9334 7176//9334 7191//9334 +f 7112//1746 7192//1746 7177//1746 +f 7088//9360 7090//9360 7216//9360 +f 7075//9361 7217//9361 7087//9361 +f 7075//9361 7201//9361 7217//9361 +f 7088//9345 7216//9345 7200//9345 +f 7084//9362 7209//9362 7218//9362 +f 7084//9362 7218//9362 7090//9362 +f 7089//9353 7219//9353 7210//9353 +f 7089//9363 7087//9363 7219//9363 +f 7118//9364 7198//9364 7220//9364 +f 7118//9364 7220//9364 7138//9364 +f 7137//9343 7221//9343 7199//9343 +f 7137//9365 7141//9365 7221//9365 +f 7090//9360 7218//9360 7216//9360 +f 7087//9363 7217//9363 7219//9363 +f 7114//9366 7222//9366 7134//9366 +f 7114//9366 7211//9366 7222//9366 +f 7133//9355 7223//9355 7213//9355 +f 7133//9367 7159//9367 7223//9367 +f 7147//1602 7224//1602 7203//1602 +f 7147//1626 7149//1626 7224//1626 +f 7131//1625 7202//1625 7225//1625 +f 7131//1625 7225//1625 7148//1625 +f 7070//9368 7226//9368 7121//9368 +f 7070//9368 7160//9368 7226//9368 +f 7122//9369 7167//9369 7227//9369 +f 7122//9307 7227//9307 7159//9307 +f 7138//9370 7220//9370 7228//9370 +f 7138//9370 7228//9370 7142//9370 +f 7141//9365 7229//9365 7221//9365 +f 7141//9371 7153//9371 7229//9371 +f 4544//9372 4545//9372 7212//9372 +f 7026//9373 7025//9373 7230//9373 +f 7026//9373 7230//9373 7180//9373 +f 7024//9374 7231//9374 7232//9374 +f 7024//9374 7232//9374 7086//9374 +f 7024//9375 7175//9375 7231//9375 +f 7149//1646 7164//1646 7233//1646 +f 7149//1626 7233//1626 7224//1626 +f 7148//1645 7225//1645 7234//1645 +f 7148//1645 7234//1645 7150//1645 +f 7130//9376 7190//9376 7235//9376 +f 7130//9376 7235//9376 7158//9376 +f 7157//9377 7184//9377 7236//9377 +f 7157//9333 7236//9333 7189//9333 +f 7098//9378 7237//9378 7124//9378 +f 7098//9378 7214//9378 7237//9378 +f 7123//9379 7145//9379 7238//9379 +f 7123//9359 7238//9359 7215//9359 +f 7126//9324 7239//9324 7181//9324 +f 7126//9380 7152//9380 7239//9380 +f 7081//9381 7182//9381 7240//9381 +f 7081//9381 7240//9381 7125//9381 +f 7020//9382 7109//9382 7241//9382 +f 7020//9382 7241//9382 7139//9382 +f 7110//9383 7181//9383 7205//9383 +f 7164//1646 7242//1646 7233//1646 +f 7164//1657 7166//1657 7242//1657 +f 7150//1658 7234//1658 7243//1658 +f 7150//1658 7243//1658 7163//1658 +f 7142//9384 7228//9384 7244//9384 +f 7142//9384 7244//9384 7154//9384 +f 7153//9371 7245//9371 7229//9371 +f 7153//9385 7169//9385 7245//9385 +f 7101//9336 7189//9336 7246//9336 +f 7101//9386 7246//9386 7143//9386 +f 7055//9387 7102//9387 7247//9387 +f 7055//9387 7247//9387 7193//9387 +f 7166//1657 7248//1657 7242//1657 +f 7166//1672 7177//1672 7248//1672 +f 7163//1673 7243//1673 7249//1673 +f 7163//1673 7249//1673 7165//1673 +f 7140//9388 7193//9388 7250//9388 +f 7140//9388 7250//9388 7190//9388 +f 7189//9389 7236//9389 7246//9389 +f 7159//9390 7227//9390 7251//9390 +f 7159//9367 7251//9367 7223//9367 +f 7134//9391 7252//9391 7160//9391 +f 7134//9391 7222//9391 7252//9391 +f 7158//9392 7235//9392 7253//9392 +f 7158//9392 7253//9392 7183//9392 +f 7184//9393 7194//9393 7254//9393 +f 7184//9377 7254//9377 7236//9377 +f 7124//9394 7255//9394 7146//9394 +f 7124//9394 7237//9394 7255//9394 +f 7145//9395 7161//9395 7256//9395 +f 7145//9379 7256//9379 7238//9379 +f 7177//1672 7257//1672 7248//1672 +f 7177//1684 7192//1684 7257//1684 +f 7165//1683 7249//1683 7258//1683 +f 7165//1683 7258//1683 7176//1683 +f 7194//9393 7259//9393 7254//9393 +f 7194//9396 7203//9396 7259//9396 +f 7183//9397 7253//9397 7260//9397 +f 7183//9397 7260//9397 7195//9397 +f 7154//9398 7244//9398 7261//9398 +f 7154//9398 7261//9398 7170//9398 +f 7169//9385 7262//9385 7245//9385 +f 7169//9399 7204//9399 7262//9399 +f 7188//9400 7263//9400 7187//9400 +f 7188//9400 7264//9400 7263//9400 +f 7188//9401 7199//9401 7264//9401 +f 7185//9402 7265//9402 7266//9402 +f 7185//9402 7266//9402 7186//9402 +f 7185//9403 7191//9403 7265//9403 +f 7195//1530 7260//1530 7267//1530 +f 7195//1530 7267//1530 7202//1530 +f 7203//1532 7224//1532 7268//1532 +f 7203//9396 7268//9396 7259//9396 +f 4612//9404 7213//9404 4611//9404 +f 7187//9405 7269//9405 7192//9405 +f 7187//9405 7263//9405 7269//9405 +f 7191//9403 7270//9403 7265//9403 +f 7191//9406 7176//9406 7270//9406 +f 7199//9401 7271//9401 7264//9401 +f 7199//9407 7221//9407 7271//9407 +f 7186//9408 7266//9408 7272//9408 +f 7186//9408 7272//9408 7198//9408 +f 7152//9380 7273//9380 7239//9380 +f 7152//9409 7174//9409 7273//9409 +f 7125//9410 7240//9410 7274//9410 +f 7125//9410 7274//9410 7151//9410 +f 7167//9369 7275//9369 7227//9369 +f 7167//9411 7215//9411 7275//9411 +f 7121//9412 7276//9412 7168//9412 +f 7121//9412 7226//9412 7276//9412 +f 7192//1684 7269//1684 7257//1684 +f 7176//9406 7258//9406 7270//9406 +f 7146//9413 7277//9413 7162//9413 +f 7146//9413 7255//9413 7277//9413 +f 7161//9414 7171//9414 7278//9414 +f 7161//9395 7278//9395 7256//9395 +f 7170//9415 7261//9415 7279//9415 +f 7170//9415 7279//9415 7206//9415 +f 7204//9346 7205//9346 7280//9346 +f 7204//9399 7281//9399 7262//9399 +f 7204//9416 7280//9416 7281//9416 +f 4611//9417 7213//9417 4610//9417 +f 4545//9418 4546//9418 7212//9418 +f 7221//9407 7282//9407 7271//9407 +f 7221//9419 7229//9419 7282//9419 +f 7198//9420 7272//9420 7283//9420 +f 7198//9420 7283//9420 7220//9420 +f 7224//1532 7284//1532 7268//1532 +f 7202//1555 7267//1555 7285//1555 +f 7202//1555 7285//1555 7225//1555 +f 7224//1556 7233//1556 7284//1556 +f 7212//9421 7286//9421 7211//9421 +f 7212//9421 7287//9421 7286//9421 +f 7213//9422 7223//9422 7288//9422 +f 7213//9417 7288//9417 4610//9417 +f 7212//9423 4546//9423 7287//9423 +f 7139//9424 7241//9424 7289//9424 +f 7139//9424 7289//9424 7182//9424 +f 7181//9425 7239//9425 7290//9425 +f 7181//9383 7290//9383 7205//9383 +f 7236//9426 7254//9426 7291//9426 +f 7190//9427 7250//9427 7292//9427 +f 7190//9427 7292//9427 7235//9427 +f 7236//9389 7291//9389 7246//9389 +f 7025//9373 7293//9373 7230//9373 +f 7025//9428 7085//9428 7294//9428 +f 7025//9428 7294//9428 7293//9428 +f 7086//9429 7295//9429 7296//9429 +f 7086//9429 7296//9429 7135//9429 +f 7086//9374 7232//9374 7295//9374 +f 7233//1556 7297//1556 7284//1556 +f 7233//1570 7242//1570 7297//1570 +f 7225//1569 7285//1569 7298//1569 +f 7225//1569 7298//1569 7234//1569 +f 7223//9422 7299//9422 7288//9422 +f 7223//9430 7251//9430 7299//9430 +f 7211//9431 7300//9431 7222//9431 +f 7211//9431 7286//9431 7300//9431 +f 7162//9432 7301//9432 7172//9432 +f 7162//9432 7277//9432 7301//9432 +f 7171//9433 7200//9433 7302//9433 +f 7171//9414 7302//9414 7278//9414 +f 7143//9386 7246//9386 7303//9386 +f 7143//9434 7303//9434 7175//9434 +f 7102//9435 7144//9435 7304//9435 +f 7102//9435 7304//9435 7247//9435 +f 7229//9419 7305//9419 7282//9419 +f 7229//9436 7245//9436 7305//9436 +f 7220//9437 7283//9437 7306//9437 +f 7220//9437 7306//9437 7228//9437 +f 7174//9438 7197//9438 7307//9438 +f 7174//9409 7307//9409 7273//9409 +f 7151//9439 7274//9439 7308//9439 +f 7151//9439 7308//9439 7173//9439 +f 7193//9440 7247//9440 7309//9440 +f 7193//9440 7309//9440 7250//9440 +f 7246//9441 7291//9441 7303//9441 +f 7234//1582 7298//1582 7310//1582 +f 7234//1582 7310//1582 7243//1582 +f 7242//1581 7248//1581 7311//1581 +f 7242//1570 7311//1570 7297//1570 +f 7215//9442 7238//9442 7312//9442 +f 7168//9443 7313//9443 7214//9443 +f 7168//9443 7276//9443 7313//9443 +f 7215//9411 7312//9411 7275//9411 +f 7197//9438 7314//9438 7307//9438 +f 7197//9444 7210//9444 7314//9444 +f 7173//9445 7308//9445 7315//9445 +f 7173//9445 7315//9445 7196//9445 +f 7160//9446 7316//9446 7226//9446 +f 7160//9446 7252//9446 7316//9446 +f 7227//9447 7275//9447 7317//9447 +f 7227//9390 7317//9390 7251//9390 +f 7172//9448 7318//9448 7201//9448 +f 7172//9448 7301//9448 7318//9448 +f 7200//9449 7216//9449 7319//9449 +f 7200//9433 7319//9433 7302//9433 +f 7235//9450 7292//9450 7320//9450 +f 7235//9450 7320//9450 7253//9450 +f 7254//9426 7321//9426 7291//9426 +f 7254//9451 7259//9451 7321//9451 +f 7243//1593 7310//1593 7322//1593 +f 7243//1593 7322//1593 7249//1593 +f 7248//1594 7257//1594 7323//1594 +f 7248//1581 7323//1581 7311//1581 +f 7210//9444 7324//9444 7314//9444 +f 7210//9452 7219//9452 7324//9452 +f 7196//9453 7315//9453 7325//9453 +f 7196//9453 7325//9453 7209//9453 +f 7245//9436 7326//9436 7305//9436 +f 7245//9454 7262//9454 7326//9454 +f 7228//9455 7306//9455 7327//9455 +f 7228//9455 7327//9455 7244//9455 +f 7216//9456 7218//9456 7328//9456 +f 7201//9457 7329//9457 7217//9457 +f 7201//9457 7318//9457 7329//9457 +f 7216//9449 7328//9449 7319//9449 +f 7219//9452 7330//9452 7324//9452 +f 7219//9458 7217//9458 7330//9458 +f 7209//9459 7325//9459 7331//9459 +f 7209//9459 7331//9459 7218//9459 +f 7259//9451 7332//9451 7321//9451 +f 7259//9460 7268//9460 7332//9460 +f 7253//9461 7320//9461 7333//9461 +f 7253//9461 7333//9461 7260//9461 +f 4546//9462 4547//9462 7287//9462 +f 7218//9456 7331//9456 7328//9456 +f 7217//9458 7329//9458 7330//9458 +f 7260//1455 7333//1455 7334//1455 +f 7260//1455 7334//1455 7267//1455 +f 7268//1453 7284//1453 7335//1453 +f 7268//9460 7335//9460 7332//9460 +f 7205//9463 7290//9463 7280//9463 +f 7109//9464 7206//9464 7336//9464 +f 7109//9464 7336//9464 7241//9464 +f 7249//1606 7322//1606 7337//1606 +f 7249//1606 7337//1606 7258//1606 +f 7257//1607 7269//1607 7338//1607 +f 7257//1594 7338//1594 7323//1594 +f 7265//9465 7339//9465 7340//9465 +f 7265//9465 7340//9465 7266//9465 +f 7265//9466 7270//9466 7339//9466 +f 7264//9467 7271//9467 7341//9467 +f 7264//9468 7342//9468 7263//9468 +f 7264//9468 7341//9468 7342//9468 +f 7270//9469 7258//9469 7343//9469 +f 7270//9466 7343//9466 7339//9466 +f 7263//9470 7344//9470 7269//9470 +f 7263//9470 7342//9470 7344//9470 +f 7238//9442 7345//9442 7312//9442 +f 7238//9471 7256//9471 7345//9471 +f 7214//9472 7346//9472 7237//9472 +f 7214//9472 7313//9472 7346//9472 +f 7182//9473 7289//9473 7347//9473 +f 7182//9473 7347//9473 7240//9473 +f 7239//9474 7273//9474 7348//9474 +f 7239//9425 7348//9425 7290//9425 +f 7266//9475 7340//9475 7349//9475 +f 7266//9475 7349//9475 7272//9475 +f 7271//9476 7282//9476 7350//9476 +f 7271//9467 7350//9467 7341//9467 +f 7262//9454 7351//9454 7326//9454 +f 7262//9477 7281//9477 7351//9477 +f 7244//9478 7327//9478 7352//9478 +f 7244//9478 7352//9478 7261//9478 +f 7251//9479 7317//9479 7353//9479 +f 7251//9430 7353//9430 7299//9430 +f 7222//9480 7354//9480 7252//9480 +f 7222//9480 7300//9480 7354//9480 +f 7144//9481 7180//9481 7355//9481 +f 7144//9481 7355//9481 7304//9481 +f 7175//9434 7303//9434 7356//9434 +f 7175//9482 7356//9482 7231//9482 +f 7085//9428 7357//9428 7294//9428 +f 7085//9483 7136//9483 7358//9483 +f 7085//9483 7358//9483 7357//9483 +f 7135//9484 7359//9484 7155//9484 +f 7135//9429 7296//9429 7359//9429 +f 7284//1453 7360//1453 7335//1453 +f 7267//1475 7334//1475 7361//1475 +f 7267//1475 7361//1475 7285//1475 +f 7284//1474 7297//1474 7360//1474 +f 7250//9485 7309//9485 7362//9485 +f 7250//9485 7362//9485 7292//9485 +f 7291//9486 7321//9486 7363//9486 +f 7291//9441 7363//9441 7303//9441 +f 7258//9469 7337//9469 7343//9469 +f 7269//1607 7344//1607 7338//1607 +f 7272//9487 7349//9487 7364//9487 +f 7272//9487 7364//9487 7283//9487 +f 7282//9488 7305//9488 7365//9488 +f 7282//9476 7365//9476 7350//9476 +f 7247//9489 7304//9489 7366//9489 +f 7247//9489 7366//9489 7309//9489 +f 7303//9490 7363//9490 7356//9490 +f 7297//1474 7367//1474 7360//1474 +f 7297//1483 7311//1483 7367//1483 +f 7285//1484 7361//1484 7368//1484 +f 7285//1484 7368//1484 7298//1484 +f 7281//9477 7369//9477 7351//9477 +f 7281//9491 7370//9491 7369//9491 +f 7281//9416 7280//9416 7370//9416 +f 7261//9492 7352//9492 7371//9492 +f 7261//9492 7371//9492 7279//9492 +f 4610//9493 7288//9493 4609//9493 +f 4547//9494 4548//9494 7287//9494 +f 7287//9495 7372//9495 7286//9495 +f 7287//9495 7373//9495 7372//9495 +f 7288//9496 7299//9496 7374//9496 +f 7288//9497 7374//9497 4609//9497 +f 7287//9498 4548//9498 7373//9498 +f 7256//9499 7278//9499 7375//9499 +f 7256//9471 7375//9471 7345//9471 +f 7237//9500 7376//9500 7255//9500 +f 7237//9500 7346//9500 7376//9500 +f 4609//9501 7374//9501 4608//9501 +f 7283//9502 7364//9502 7377//9502 +f 7283//9502 7377//9502 7306//9502 +f 7305//9503 7326//9503 7378//9503 +f 7305//9488 7378//9488 7365//9488 +f 7311//1509 7323//1509 7379//1509 +f 7311//1483 7379//1483 7367//1483 +f 7298//1510 7368//1510 7380//1510 +f 7298//1510 7380//1510 7310//1510 +f 7275//9447 7381//9447 7317//9447 +f 7275//9504 7312//9504 7381//9504 +f 7226//9505 7382//9505 7276//9505 +f 7226//9505 7316//9505 7382//9505 +f 7292//9506 7362//9506 7383//9506 +f 7292//9506 7383//9506 7320//9506 +f 7321//9507 7332//9507 7384//9507 +f 7321//9486 7384//9486 7363//9486 +f 7299//9496 7385//9496 7374//9496 +f 7299//9508 7353//9508 7385//9508 +f 7286//9509 7386//9509 7300//9509 +f 7286//9509 7372//9509 7386//9509 +f 7240//9510 7347//9510 7387//9510 +f 7240//9510 7387//9510 7274//9510 +f 7273//9511 7307//9511 7388//9511 +f 7273//9474 7388//9474 7348//9474 +f 7332//9507 7389//9507 7384//9507 +f 7332//9512 7335//9512 7389//9512 +f 7320//9513 7383//9513 7390//9513 +f 7320//9513 7390//9513 7333//9513 +f 7323//1509 7391//1509 7379//1509 +f 7323//1524 7338//1524 7391//1524 +f 7310//1523 7380//1523 7392//1523 +f 7310//1523 7392//1523 7322//1523 +f 7333//1372 7390//1372 7393//1372 +f 7333//1372 7393//1372 7334//1372 +f 7335//1375 7360//1375 7394//1375 +f 7335//9512 7394//9512 7389//9512 +f 7136//9514 7156//9514 7395//9514 +f 7136//9514 7395//9514 7358//9514 +f 7155//9515 7396//9515 7178//9515 +f 7155//9484 7359//9484 7396//9484 +f 7290//9463 7397//9463 7280//9463 +f 7290//9516 7348//9516 7397//9516 +f 7241//9517 7336//9517 7398//9517 +f 7241//9517 7398//9517 7289//9517 +f 7231//9518 7399//9518 7232//9518 +f 7231//9482 7356//9482 7399//9482 +f 7180//9519 7230//9519 7400//9519 +f 7180//9520 7400//9520 7355//9520 +f 7278//9499 7401//9499 7375//9499 +f 7278//9521 7302//9521 7401//9521 +f 7255//9522 7402//9522 7277//9522 +f 7255//9522 7376//9522 7402//9522 +f 7306//9523 7377//9523 7403//9523 +f 7306//9523 7403//9523 7327//9523 +f 7326//9524 7351//9524 7404//9524 +f 7326//9503 7404//9503 7378//9503 +f 7338//1542 7344//1542 7405//1542 +f 7338//1524 7405//1524 7391//1524 +f 7322//1541 7392//1541 7406//1541 +f 7322//1541 7406//1541 7337//1541 +f 7341//9525 7350//9525 7407//9525 +f 7341//9526 7408//9526 7342//9526 +f 7341//9526 7407//9526 7408//9526 +f 7339//9527 7409//9527 7410//9527 +f 7339//9527 7410//9527 7340//9527 +f 7339//9528 7343//9528 7409//9528 +f 7252//9529 7411//9529 7316//9529 +f 7252//9529 7354//9529 7411//9529 +f 7317//9479 7412//9479 7353//9479 +f 7317//9530 7381//9530 7412//9530 +f 7342//9531 7413//9531 7344//9531 +f 7342//9531 7408//9531 7413//9531 +f 7343//9528 7414//9528 7409//9528 +f 7343//9532 7337//9532 7414//9532 +f 7363//9533 7384//9533 7415//9533 +f 7309//9534 7366//9534 7416//9534 +f 7309//9534 7416//9534 7362//9534 +f 7363//9490 7415//9490 7356//9490 +f 7350//9525 7417//9525 7407//9525 +f 7350//9535 7365//9535 7417//9535 +f 7340//9536 7410//9536 7418//9536 +f 7340//9536 7418//9536 7349//9536 +f 7304//9537 7355//9537 7419//9537 +f 7304//9537 7419//9537 7366//9537 +f 7356//9538 7415//9538 7399//9538 +f 7276//9539 7420//9539 7313//9539 +f 7276//9539 7382//9539 7420//9539 +f 7312//9540 7345//9540 7421//9540 +f 7312//9504 7421//9504 7381//9504 +f 7360//1375 7422//1375 7394//1375 +f 7334//1410 7393//1410 7423//1410 +f 7334//1410 7423//1410 7361//1410 +f 7360//1411 7367//1411 7422//1411 +f 7302//9541 7319//9541 7424//9541 +f 7302//9521 7424//9521 7401//9521 +f 7277//9542 7425//9542 7301//9542 +f 7277//9542 7402//9542 7425//9542 +f 7274//9543 7387//9543 7426//9543 +f 7274//9543 7426//9543 7308//9543 +f 7307//9544 7314//9544 7427//9544 +f 7307//9511 7427//9511 7388//9511 +f 7327//9545 7403//9545 7428//9545 +f 7327//9545 7428//9545 7352//9545 +f 7351//9546 7369//9546 7429//9546 +f 7351//9524 7429//9524 7404//9524 +f 7156//9547 7179//9547 7430//9547 +f 7156//9547 7430//9547 7395//9547 +f 7178//9548 7431//9548 7208//9548 +f 7178//9515 7396//9515 7431//9515 +f 7344//1542 7413//1542 7405//1542 +f 7337//9532 7406//9532 7414//9532 +f 4548//9549 4549//9549 7373//9549 +f 7365//9550 7378//9550 7432//9550 +f 7365//9535 7432//9535 7417//9535 +f 7349//9551 7418//9551 7433//9551 +f 7349//9551 7433//9551 7364//9551 +f 7206//9552 7279//9552 7434//9552 +f 7206//9552 7434//9552 7336//9552 +f 7280//9553 7397//9553 7370//9553 +f 7361//1420 7423//1420 7435//1420 +f 7361//1420 7435//1420 7368//1420 +f 7367//1421 7379//1421 7436//1421 +f 7367//1411 7436//1411 7422//1411 +f 7300//9554 7437//9554 7354//9554 +f 7300//9554 7386//9554 7437//9554 +f 7353//9508 7438//9508 7385//9508 +f 7353//9555 7412//9555 7438//9555 +f 7308//9556 7426//9556 7439//9556 +f 7308//9556 7439//9556 7315//9556 +f 7314//9544 7440//9544 7427//9544 +f 7314//9557 7324//9557 7440//9557 +f 7319//9541 7441//9541 7424//9541 +f 7319//9558 7328//9558 7441//9558 +f 7301//9559 7442//9559 7318//9559 +f 7301//9559 7425//9559 7442//9559 +f 7232//9560 7399//9560 7443//9560 +f 7232//9561 7443//9561 7295//9561 +f 7230//9562 7293//9562 7444//9562 +f 7230//9563 7444//9563 7400//9563 +f 7179//9564 7207//9564 7445//9564 +f 7179//9564 7445//9564 7430//9564 +f 7208//9565 7446//9565 7207//9565 +f 7208//9548 7431//9548 7446//9548 +f 7362//9566 7416//9566 7447//9566 +f 7362//9566 7447//9566 7383//9566 +f 7384//9533 7448//9533 7415//9533 +f 7384//9567 7389//9567 7448//9567 +f 7315//9568 7439//9568 7449//9568 +f 7315//9568 7449//9568 7325//9568 +f 7324//9569 7330//9569 7450//9569 +f 7324//9557 7450//9557 7440//9557 +f 7368//1436 7435//1436 7451//1436 +f 7368//1436 7451//1436 7380//1436 +f 7379//1437 7391//1437 7452//1437 +f 7379//1421 7452//1421 7436//1421 +f 7352//9570 7428//9570 7453//9570 +f 7352//9570 7453//9570 7371//9570 +f 7369//9491 7370//9491 7454//9491 +f 7369//9571 7454//9571 7455//9571 +f 7369//9546 7455//9546 7429//9546 +f 4608//9572 7374//9572 4607//9572 +f 4549//9573 7456//9573 7373//9573 +f 4549//9573 4550//9573 7456//9573 +f 7207//9565 7446//9565 7445//9565 +f 7328//9574 7331//9574 7457//9574 +f 7328//9558 7457//9558 7441//9558 +f 7318//9575 7458//9575 7329//9575 +f 7318//9575 7442//9575 7458//9575 +f 7330//9576 7329//9576 7459//9576 +f 7330//9569 7459//9569 7450//9569 +f 7325//9577 7449//9577 7460//9577 +f 7325//9577 7460//9577 7331//9577 +f 7378//9550 7461//9550 7432//9550 +f 7378//9578 7404//9578 7461//9578 +f 7364//9579 7433//9579 7462//9579 +f 7364//9579 7462//9579 7377//9579 +f 7389//9567 7463//9567 7448//9567 +f 7389//9580 7394//9580 7463//9580 +f 7383//9581 7447//9581 7464//9581 +f 7383//9581 7464//9581 7390//9581 +f 7331//9574 7460//9574 7457//9574 +f 7329//9576 7458//9576 7459//9576 +f 7345//9540 7465//9540 7421//9540 +f 7313//9582 7466//9582 7346//9582 +f 7313//9582 7420//9582 7466//9582 +f 7345//9583 7375//9583 7465//9583 +f 7373//9584 7467//9584 7372//9584 +f 7373//9584 7456//9584 7467//9584 +f 7374//9585 7385//9585 7468//9585 +f 7374//9586 7468//9586 4607//9586 +f 7348//9516 7469//9516 7397//9516 +f 7348//9587 7388//9587 7469//9587 +f 7289//9588 7398//9588 7470//9588 +f 7289//9588 7470//9588 7347//9588 +f 7390//1293 7464//1293 7471//1293 +f 7390//1293 7471//1293 7393//1293 +f 7394//1291 7422//1291 7472//1291 +f 7394//9580 7472//9580 7463//9580 +f 7380//1456 7451//1456 7473//1456 +f 7380//1456 7473//1456 7392//1456 +f 7391//1457 7405//1457 7474//1457 +f 7391//1437 7474//1437 7452//1437 +f 7355//9589 7400//9589 7475//9589 +f 7355//9589 7475//9589 7419//9589 +f 7399//9590 7476//9590 7443//9590 +f 7399//9538 7415//9538 7476//9538 +f 7366//9591 7419//9591 7477//9591 +f 7366//9591 7477//9591 7416//9591 +f 7415//9592 7448//9592 7476//9592 +f 7385//9593 7438//9593 7478//9593 +f 7385//9585 7478//9585 7468//9585 +f 7372//9594 7479//9594 7386//9594 +f 7372//9594 7467//9594 7479//9594 +f 7392//1464 7473//1464 7480//1464 +f 7392//1464 7480//1464 7406//1464 +f 7405//1465 7413//1465 7481//1465 +f 7405//1457 7481//1457 7474//1457 +f 7404//9595 7429//9595 7482//9595 +f 7404//9578 7482//9578 7461//9578 +f 7377//9596 7462//9596 7483//9596 +f 7377//9596 7483//9596 7403//9596 +f 4607//9597 7468//9597 4606//9597 +f 7409//9598 7414//9598 7484//9598 +f 7409//9599 7484//9599 7485//9599 +f 7409//9599 7485//9599 7410//9599 +f 7407//9600 7417//9600 7486//9600 +f 7407//9601 7487//9601 7408//9601 +f 7407//9601 7486//9601 7487//9601 +f 7295//9602 7443//9602 7488//9602 +f 7295//9603 7488//9603 7296//9603 +f 7293//9604 7294//9604 7489//9604 +f 7293//9605 7489//9605 7444//9605 +f 7414//9606 7406//9606 7490//9606 +f 7414//9598 7490//9598 7484//9598 +f 7408//9607 7491//9607 7413//9607 +f 7408//9607 7487//9607 7491//9607 +f 7422//1291 7492//1291 7472//1291 +f 7422//1332 7436//1332 7492//1332 +f 7393//1333 7471//1333 7493//1333 +f 7393//1333 7493//1333 7423//1333 +f 7410//9608 7485//9608 7494//9608 +f 7410//9608 7494//9608 7418//9608 +f 7417//9609 7432//9609 7495//9609 +f 7417//9600 7495//9600 7486//9600 +f 7346//9610 7496//9610 7376//9610 +f 7346//9610 7466//9610 7496//9610 +f 7375//9583 7497//9583 7465//9583 +f 7375//9611 7401//9611 7497//9611 +f 7381//9530 7498//9530 7412//9530 +f 7381//9612 7421//9612 7498//9612 +f 7316//9613 7499//9613 7382//9613 +f 7316//9613 7411//9613 7499//9613 +f 7436//1332 7500//1332 7492//1332 +f 7436//1348 7452//1348 7500//1348 +f 7423//1349 7493//1349 7501//1349 +f 7423//1349 7501//1349 7435//1349 +f 7406//9606 7480//9606 7490//9606 +f 7413//1465 7491//1465 7481//1465 +f 7416//9614 7477//9614 7502//9614 +f 7416//9614 7502//9614 7447//9614 +f 7448//9615 7463//9615 7503//9615 +f 7448//9592 7503//9592 7476//9592 +f 7418//9616 7494//9616 7504//9616 +f 7418//9616 7504//9616 7433//9616 +f 7432//9617 7461//9617 7505//9617 +f 7432//9609 7505//9609 7495//9609 +f 7336//9618 7434//9618 7506//9618 +f 7336//9618 7506//9618 7398//9618 +f 7397//9553 7507//9553 7370//9553 +f 7397//9619 7469//9619 7507//9619 +f 7429//9595 7508//9595 7482//9595 +f 7429//9620 7455//9620 7508//9620 +f 7403//9621 7483//9621 7509//9621 +f 7403//9621 7509//9621 7428//9621 +f 7388//9587 7510//9587 7469//9587 +f 7388//9622 7427//9622 7510//9622 +f 7347//9623 7470//9623 7511//9623 +f 7347//9623 7511//9623 7387//9623 +f 7354//9624 7512//9624 7411//9624 +f 7354//9624 7437//9624 7512//9624 +f 7412//9625 7498//9625 7513//9625 +f 7412//9555 7513//9555 7438//9555 +f 7463//9615 7514//9615 7503//9615 +f 7463//9626 7472//9626 7514//9626 +f 7447//9627 7502//9627 7515//9627 +f 7447//9627 7515//9627 7464//9627 +f 7452//1348 7516//1348 7500//1348 +f 7452//1362 7474//1362 7516//1362 +f 7435//1363 7501//1363 7517//1363 +f 7435//1363 7517//1363 7451//1363 +f 7400//9628 7444//9628 7518//9628 +f 7400//9628 7518//9628 7475//9628 +f 7443//9629 7519//9629 7488//9629 +f 7443//9590 7476//9590 7519//9590 +f 7464//1220 7515//1220 7520//1220 +f 7464//1220 7520//1220 7471//1220 +f 7472//1223 7492//1223 7521//1223 +f 7472//9626 7521//9626 7514//9626 +f 7294//9630 7357//9630 7522//9630 +f 7294//9631 7522//9631 7489//9631 +f 7296//9632 7488//9632 7523//9632 +f 7296//9633 7523//9633 7359//9633 +f 7376//9634 7524//9634 7402//9634 +f 7376//9634 7496//9634 7524//9634 +f 7401//9611 7525//9611 7497//9611 +f 7401//9635 7424//9635 7525//9635 +f 7476//9636 7503//9636 7519//9636 +f 7419//9637 7475//9637 7526//9637 +f 7419//9637 7526//9637 7477//9637 +f 7438//9593 7527//9593 7478//9593 +f 7438//9638 7513//9638 7527//9638 +f 7386//9639 7528//9639 7437//9639 +f 7386//9639 7479//9639 7528//9639 +f 7433//9640 7504//9640 7529//9640 +f 7433//9640 7529//9640 7462//9640 +f 7461//9641 7482//9641 7530//9641 +f 7461//9617 7530//9617 7505//9617 +f 7474//1362 7531//1362 7516//1362 +f 7474//1386 7481//1386 7531//1386 +f 7451//1387 7517//1387 7532//1387 +f 7451//1387 7532//1387 7473//1387 +f 7382//9642 7533//9642 7420//9642 +f 7382//9642 7499//9642 7533//9642 +f 7421//9643 7465//9643 7534//9643 +f 7421//9612 7534//9612 7498//9612 +f 7455//9644 7535//9644 7536//9644 +f 7455//9620 7536//9620 7508//9620 +f 7455//9571 7454//9571 7535//9571 +f 7428//9645 7509//9645 7537//9645 +f 7428//9645 7537//9645 7453//9645 +f 4606//9646 7468//9646 4605//9646 +f 4550//9647 7538//9647 7456//9647 +f 4550//9647 4551//9647 7538//9647 +f 7370//9648 7507//9648 7454//9648 +f 7279//9649 7371//9649 7539//9649 +f 7279//9649 7539//9649 7434//9649 +f 7456//9650 7540//9650 7467//9650 +f 7456//9650 7538//9650 7540//9650 +f 7468//9651 7478//9651 7541//9651 +f 7468//9652 7541//9652 4605//9652 +f 7481//1386 7542//1386 7531//1386 +f 7481//1407 7491//1407 7542//1407 +f 7473//1406 7532//1406 7543//1406 +f 7473//1406 7543//1406 7480//1406 +f 7402//9653 7544//9653 7425//9653 +f 7402//9653 7524//9653 7544//9653 +f 7424//9635 7545//9635 7525//9635 +f 7424//9654 7441//9654 7545//9654 +f 7492//1223 7546//1223 7521//1223 +f 7471//1263 7520//1263 7547//1263 +f 7471//1263 7547//1263 7493//1263 +f 7492//1264 7500//1264 7546//1264 +f 7427//9622 7548//9622 7510//9622 +f 7427//9655 7440//9655 7548//9655 +f 7387//9656 7511//9656 7549//9656 +f 7387//9656 7549//9656 7426//9656 +f 7486//9657 7550//9657 7487//9657 +f 7486//9657 7551//9657 7550//9657 +f 7486//9658 7495//9658 7551//9658 +f 7484//9659 7490//9659 7552//9659 +f 7484//9660 7552//9660 7553//9660 +f 7484//9660 7553//9660 7485//9660 +f 7487//9661 7554//9661 7491//9661 +f 7487//9661 7550//9661 7554//9661 +f 7490//9662 7480//9662 7555//9662 +f 7490//9659 7555//9659 7552//9659 +f 7359//9663 7556//9663 7557//9663 +f 7359//9664 7557//9664 7396//9664 +f 7359//9665 7523//9665 7556//9665 +f 7357//9666 7358//9666 7558//9666 +f 7357//9667 7558//9667 7522//9667 +f 7467//9668 7559//9668 7479//9668 +f 7467//9668 7540//9668 7559//9668 +f 7478//9651 7560//9651 7541//9651 +f 7478//9669 7527//9669 7560//9669 +f 7462//9670 7529//9670 7561//9670 +f 7462//9670 7561//9670 7483//9670 +f 7482//9671 7508//9671 7562//9671 +f 7482//9641 7562//9641 7530//9641 +f 7495//9658 7563//9658 7551//9658 +f 7495//9672 7505//9672 7563//9672 +f 7485//9673 7553//9673 7564//9673 +f 7485//9673 7564//9673 7494//9673 +f 7477//9674 7526//9674 7565//9674 +f 7477//9674 7565//9674 7502//9674 +f 7503//9636 7566//9636 7519//9636 +f 7503//9675 7514//9675 7566//9675 +f 7444//9676 7489//9676 7567//9676 +f 7444//9676 7567//9676 7518//9676 +f 7488//9677 7568//9677 7523//9677 +f 7488//9629 7519//9629 7568//9629 +f 7493//1281 7547//1281 7569//1281 +f 7493//1281 7569//1281 7501//1281 +f 7500//1282 7516//1282 7570//1282 +f 7500//1264 7570//1264 7546//1264 +f 7440//9655 7571//9655 7548//9655 +f 7440//9678 7450//9678 7571//9678 +f 7426//9679 7549//9679 7572//9679 +f 7426//9679 7572//9679 7439//9679 +f 7425//9680 7573//9680 7442//9680 +f 7425//9680 7544//9680 7573//9680 +f 7441//9654 7574//9654 7545//9654 +f 7441//9681 7457//9681 7574//9681 +f 7465//9643 7575//9643 7534//9643 +f 7420//9682 7576//9682 7466//9682 +f 7420//9682 7533//9682 7576//9682 +f 7465//9683 7497//9683 7575//9683 +f 7514//9675 7577//9675 7566//9675 +f 7514//9684 7521//9684 7577//9684 +f 7502//9685 7565//9685 7578//9685 +f 7502//9685 7578//9685 7515//9685 +f 7398//9686 7506//9686 7579//9686 +f 7398//9686 7579//9686 7470//9686 +f 7469//9619 7580//9619 7507//9619 +f 7469//9687 7510//9687 7580//9687 +f 7491//1407 7554//1407 7542//1407 +f 7480//9662 7543//9662 7555//9662 +f 7515//1151 7578//1151 7581//1151 +f 7515//1151 7581//1151 7520//1151 +f 7521//1152 7546//1152 7582//1152 +f 7521//9684 7582//9684 7577//9684 +f 7439//9688 7572//9688 7583//9688 +f 7439//9688 7583//9688 7449//9688 +f 7450//9689 7459//9689 7584//9689 +f 7450//9678 7584//9678 7571//9678 +f 7475//9690 7518//9690 7585//9690 +f 7475//9690 7585//9690 7526//9690 +f 7519//9691 7566//9691 7568//9691 +f 7505//9672 7586//9672 7563//9672 +f 7505//9692 7530//9692 7586//9692 +f 7494//9693 7564//9693 7587//9693 +f 7494//9693 7587//9693 7504//9693 +f 7501//1300 7569//1300 7588//1300 +f 7501//1300 7588//1300 7517//1300 +f 7516//1301 7531//1301 7589//1301 +f 7516//1282 7589//1282 7570//1282 +f 7442//9694 7590//9694 7458//9694 +f 7442//9694 7573//9694 7590//9694 +f 7457//9681 7591//9681 7574//9681 +f 7457//9695 7460//9695 7591//9695 +f 7459//9689 7592//9689 7584//9689 +f 7459//9696 7458//9696 7592//9696 +f 7449//9697 7583//9697 7593//9697 +f 7449//9697 7593//9697 7460//9697 +f 7458//9696 7590//9696 7592//9696 +f 7460//9695 7593//9695 7591//9695 +f 4605//9698 7541//9698 4604//9698 +f 7483//9699 7561//9699 7594//9699 +f 7483//9699 7594//9699 7509//9699 +f 7508//9700 7536//9700 7595//9700 +f 7508//9671 7595//9671 7562//9671 +f 7517//1316 7588//1316 7596//1316 +f 7517//1316 7596//1316 7532//1316 +f 7531//1317 7542//1317 7597//1317 +f 7531//1301 7597//1301 7589//1301 +f 7498//9625 7598//9625 7513//9625 +f 7498//9701 7534//9701 7598//9701 +f 7411//9702 7599//9702 7499//9702 +f 7411//9702 7512//9702 7599//9702 +f 7530//9692 7600//9692 7586//9692 +f 7530//9703 7562//9703 7600//9703 +f 7504//9704 7587//9704 7601//9704 +f 7504//9704 7601//9704 7529//9704 +f 7489//9705 7522//9705 7602//9705 +f 7489//9705 7602//9705 7567//9705 +f 7523//9706 7603//9706 7556//9706 +f 7523//9677 7568//9677 7603//9677 +f 7546//1152 7604//1152 7582//1152 +f 7546//1183 7570//1183 7604//1183 +f 7520//1182 7581//1182 7605//1182 +f 7520//1182 7605//1182 7547//1182 +f 7513//9707 7598//9707 7606//9707 +f 7437//9708 7607//9708 7512//9708 +f 7437//9708 7528//9708 7607//9708 +f 7513//9638 7606//9638 7527//9638 +f 7497//9709 7525//9709 7608//9709 +f 7466//9710 7609//9710 7496//9710 +f 7466//9710 7576//9710 7609//9710 +f 7497//9683 7608//9683 7575//9683 +f 7532//1338 7596//1338 7610//1338 +f 7532//1338 7610//1338 7543//1338 +f 7542//1339 7554//1339 7611//1339 +f 7542//1317 7611//1317 7597//1317 +f 7358//9711 7395//9711 7612//9711 +f 7358//9711 7612//9711 7613//9711 +f 7396//9712 7557//9712 7614//9712 +f 7396//9713 7614//9713 7431//9713 +f 7358//9714 7613//9714 7558//9714 +f 7509//9715 7594//9715 7615//9715 +f 7509//9715 7615//9715 7537//9715 +f 7536//9644 7535//9644 7616//9644 +f 7536//9716 7616//9716 7617//9716 +f 7536//9700 7617//9700 7595//9700 +f 4604//9717 7541//9717 4603//9717 +f 4551//9718 4552//9718 7538//9718 +f 7526//9719 7585//9719 7618//9719 +f 7526//9719 7618//9719 7565//9719 +f 7566//9720 7577//9720 7619//9720 +f 7566//9691 7619//9691 7568//9691 +f 7507//9648 7620//9648 7454//9648 +f 7507//9721 7580//9721 7620//9721 +f 7434//9722 7539//9722 7621//9722 +f 7434//9722 7621//9722 7506//9722 +f 7552//9723 7555//9723 7622//9723 +f 7552//9724 7622//9724 7623//9724 +f 7552//9724 7623//9724 7553//9724 +f 7551//9725 7563//9725 7624//9725 +f 7551//9726 7625//9726 7550//9726 +f 7551//9726 7624//9726 7625//9726 +f 7527//9727 7606//9727 7626//9727 +f 7527//9669 7626//9669 7560//9669 +f 7479//9728 7627//9728 7528//9728 +f 7479//9728 7559//9728 7627//9728 +f 7555//9729 7543//9729 7628//9729 +f 7555//9723 7628//9723 7622//9723 +f 7550//9730 7629//9730 7554//9730 +f 7550//9730 7625//9730 7629//9730 +f 7538//9731 7630//9731 7540//9731 +f 7538//9731 7631//9731 7630//9731 +f 7541//9732 7560//9732 7632//9732 +f 7541//9733 7632//9733 4603//9733 +f 7538//9734 4552//9734 7631//9734 +f 7570//1183 7633//1183 7604//1183 +f 7570//1201 7589//1201 7633//1201 +f 7547//1200 7605//1200 7634//1200 +f 7547//1200 7634//1200 7569//1200 +f 7568//9735 7619//9735 7603//9735 +f 7518//9736 7567//9736 7635//9736 +f 7518//9736 7635//9736 7585//9736 +f 7577//9720 7636//9720 7619//9720 +f 7577//9737 7582//9737 7636//9737 +f 7565//9738 7618//9738 7637//9738 +f 7565//9738 7637//9738 7578//9738 +f 7553//9739 7623//9739 7638//9739 +f 7553//9739 7638//9739 7564//9739 +f 7563//9740 7586//9740 7639//9740 +f 7563//9725 7639//9725 7624//9725 +f 7578//1081 7637//1081 7640//1081 +f 7578//1081 7640//1081 7581//1081 +f 7582//1079 7604//1079 7641//1079 +f 7582//9737 7641//9737 7636//9737 +f 7470//9741 7579//9741 7642//9741 +f 7470//9741 7642//9741 7511//9741 +f 7510//9687 7643//9687 7580//9687 +f 7510//9742 7548//9742 7643//9742 +f 7562//9703 7644//9703 7600//9703 +f 7562//9743 7595//9743 7644//9743 +f 7529//9744 7601//9744 7645//9744 +f 7529//9744 7645//9744 7561//9744 +f 4552//9745 4553//9745 7631//9745 +f 7371//9746 7453//9746 7646//9746 +f 7371//9746 7646//9746 7539//9746 +f 7454//9747 7620//9747 7535//9747 +f 7569//1236 7634//1236 7647//1236 +f 7569//1236 7647//1236 7588//1236 +f 7589//1201 7648//1201 7633//1201 +f 7589//1235 7597//1235 7648//1235 +f 7560//9732 7649//9732 7632//9732 +f 7560//9748 7626//9748 7649//9748 +f 7540//9749 7650//9749 7559//9749 +f 7540//9749 7630//9749 7650//9749 +f 7522//9750 7558//9750 7651//9750 +f 7522//9750 7651//9750 7602//9750 +f 7556//9751 7652//9751 7557//9751 +f 7556//9706 7603//9706 7652//9706 +f 7543//9729 7610//9729 7628//9729 +f 7554//1339 7629//1339 7611//1339 +f 7499//9752 7653//9752 7533//9752 +f 7499//9752 7599//9752 7653//9752 +f 7534//9753 7575//9753 7654//9753 +f 7534//9701 7654//9701 7598//9701 +f 7525//9754 7545//9754 7655//9754 +f 7525//9709 7655//9709 7608//9709 +f 7496//9755 7656//9755 7524//9755 +f 7496//9755 7609//9755 7656//9755 +f 7564//9756 7638//9756 7657//9756 +f 7564//9756 7657//9756 7587//9756 +f 7586//9757 7600//9757 7658//9757 +f 7586//9740 7658//9740 7639//9740 +f 7431//9758 7659//9758 7446//9758 +f 7431//9713 7614//9713 7659//9713 +f 7395//9759 7430//9759 7660//9759 +f 7395//9759 7660//9759 7612//9759 +f 7588//1254 7647//1254 7661//1254 +f 7588//1254 7661//1254 7596//1254 +f 7597//1235 7662//1235 7648//1235 +f 7597//1253 7611//1253 7662//1253 +f 7604//1079 7663//1079 7641//1079 +f 7604//1123 7633//1123 7663//1123 +f 7581//1124 7640//1124 7664//1124 +f 7581//1124 7664//1124 7605//1124 +f 7595//9743 7665//9743 7644//9743 +f 7595//9760 7617//9760 7665//9760 +f 7561//9761 7645//9761 7666//9761 +f 7561//9761 7666//9761 7594//9761 +f 7585//9762 7635//9762 7667//9762 +f 7585//9762 7667//9762 7618//9762 +f 7619//9735 7668//9735 7603//9735 +f 7619//9763 7636//9763 7668//9763 +f 7567//9764 7602//9764 7669//9764 +f 7567//9764 7669//9764 7635//9764 +f 7603//9765 7668//9765 7652//9765 +f 7587//9766 7657//9766 7670//9766 +f 7587//9766 7670//9766 7601//9766 +f 7600//9767 7644//9767 7671//9767 +f 7600//9757 7671//9757 7658//9757 +f 7558//9768 7613//9768 7672//9768 +f 7558//9768 7672//9768 7651//9768 +f 7557//9769 7673//9769 7614//9769 +f 7557//9751 7652//9751 7673//9751 +f 7430//9770 7445//9770 7674//9770 +f 7430//9770 7674//9770 7660//9770 +f 7446//9758 7659//9758 7675//9758 +f 7446//9771 7675//9771 7445//9771 +f 7596//1279 7661//1279 7676//1279 +f 7596//1279 7676//1279 7610//1279 +f 7611//1253 7677//1253 7662//1253 +f 7611//1280 7629//1280 7677//1280 +f 7545//9772 7574//9772 7678//9772 +f 7545//9754 7678//9754 7655//9754 +f 7524//9773 7679//9773 7544//9773 +f 7524//9773 7656//9773 7679//9773 +f 7636//9763 7680//9763 7668//9763 +f 7636//9774 7641//9774 7680//9774 +f 7618//9775 7667//9775 7681//9775 +f 7618//9775 7681//9775 7637//9775 +f 7511//9776 7642//9776 7682//9776 +f 7511//9776 7682//9776 7549//9776 +f 7548//9742 7683//9742 7643//9742 +f 7548//9777 7571//9777 7683//9777 +f 7637//1013 7681//1013 7684//1013 +f 7637//1013 7684//1013 7640//1013 +f 7641//1014 7663//1014 7685//1014 +f 7641//9774 7685//9774 7680//9774 +f 7633//1123 7686//1123 7663//1123 +f 7633//1146 7648//1146 7686//1146 +f 7605//1147 7664//1147 7687//1147 +f 7605//1147 7687//1147 7634//1147 +f 7622//9778 7688//9778 7689//9778 +f 7622//9778 7689//9778 7623//9778 +f 7622//9779 7628//9779 7688//9779 +f 7624//9780 7690//9780 7625//9780 +f 7624//9780 7691//9780 7690//9780 +f 7624//9781 7639//9781 7691//9781 +f 7445//9771 7675//9771 7674//9771 +f 7628//9779 7692//9779 7688//9779 +f 7628//9782 7610//9782 7692//9782 +f 7625//9783 7693//9783 7629//9783 +f 7625//9783 7690//9783 7693//9783 +f 4603//9784 7632//9784 4602//9784 +f 7575//9753 7694//9753 7654//9753 +f 7533//9785 7695//9785 7576//9785 +f 7533//9785 7653//9785 7695//9785 +f 7575//9786 7608//9786 7694//9786 +f 7623//9787 7689//9787 7696//9787 +f 7623//9787 7696//9787 7638//9787 +f 7639//9781 7697//9781 7691//9781 +f 7639//9788 7658//9788 7697//9788 +f 7580//9721 7698//9721 7620//9721 +f 7580//9789 7643//9789 7698//9789 +f 7506//9790 7621//9790 7699//9790 +f 7506//9790 7699//9790 7579//9790 +f 7571//9777 7700//9777 7683//9777 +f 7571//9791 7584//9791 7700//9791 +f 7549//9792 7682//9792 7701//9792 +f 7549//9792 7701//9792 7572//9792 +f 7617//9716 7616//9716 7702//9716 +f 7617//9760 7703//9760 7665//9760 +f 7617//9793 7702//9793 7703//9793 +f 7594//9794 7666//9794 7704//9794 +f 7594//9794 7704//9794 7615//9794 +f 4602//9795 7632//9795 4601//9795 +f 4553//9796 4554//9796 7631//9796 +f 7648//1146 7705//1146 7686//1146 +f 7648//1166 7662//1166 7705//1166 +f 7634//1167 7687//1167 7706//1167 +f 7634//1167 7706//1167 7647//1167 +f 7574//9797 7591//9797 7707//9797 +f 7574//9772 7707//9772 7678//9772 +f 7544//9798 7708//9798 7573//9798 +f 7544//9798 7679//9798 7708//9798 +f 7613//9799 7612//9799 7709//9799 +f 7613//9799 7709//9799 7672//9799 +f 7614//9800 7710//9800 7659//9800 +f 7614//9769 7673//9769 7710//9769 +f 7631//9801 7711//9801 7630//9801 +f 7631//9801 7712//9801 7711//9801 +f 7632//9802 7649//9802 7713//9802 +f 7632//9795 7713//9795 4601//9795 +f 7631//9803 4554//9803 7712//9803 +f 7601//9804 7670//9804 7714//9804 +f 7601//9804 7714//9804 7645//9804 +f 7644//9805 7665//9805 7715//9805 +f 7644//9767 7715//9767 7671//9767 +f 7598//9707 7716//9707 7606//9707 +f 7598//9806 7654//9806 7716//9806 +f 7512//9807 7717//9807 7599//9807 +f 7512//9807 7607//9807 7717//9807 +f 7610//9782 7676//9782 7692//9782 +f 7629//1280 7693//1280 7677//1280 +f 7626//9808 7718//9808 7719//9808 +f 7626//9727 7606//9727 7718//9727 +f 7626//9748 7719//9748 7649//9748 +f 7559//9809 7720//9809 7627//9809 +f 7559//9809 7650//9809 7720//9809 +f 7572//9810 7701//9810 7721//9810 +f 7572//9810 7721//9810 7583//9810 +f 7584//9791 7722//9791 7700//9791 +f 7584//9811 7592//9811 7722//9811 +f 7652//9812 7723//9812 7673//9812 +f 7602//9813 7651//9813 7724//9813 +f 7602//9813 7724//9813 7669//9813 +f 7652//9765 7668//9765 7723//9765 +f 7528//9814 7725//9814 7607//9814 +f 7528//9814 7627//9814 7725//9814 +f 7606//9815 7716//9815 7718//9815 +f 7635//9816 7669//9816 7726//9816 +f 7635//9816 7726//9816 7667//9816 +f 7668//9817 7680//9817 7723//9817 +f 7638//9818 7696//9818 7727//9818 +f 7638//9818 7727//9818 7657//9818 +f 7658//9788 7728//9788 7697//9788 +f 7658//9819 7671//9819 7728//9819 +f 7591//9820 7593//9820 7729//9820 +f 7591//9797 7729//9797 7707//9797 +f 7573//9821 7730//9821 7590//9821 +f 7573//9821 7708//9821 7730//9821 +f 7663//1014 7731//1014 7685//1014 +f 7663//1062 7686//1062 7731//1062 +f 7640//1061 7684//1061 7732//1061 +f 7640//1061 7732//1061 7664//1061 +f 7583//9822 7721//9822 7733//9822 +f 7583//9822 7733//9822 7593//9822 +f 7592//9811 7734//9811 7722//9811 +f 7592//9823 7590//9823 7734//9823 +f 7662//1166 7735//1166 7705//1166 +f 7662//1184 7677//1184 7735//1184 +f 7647//1185 7706//1185 7736//1185 +f 7647//1185 7736//1185 7661//1185 +f 7593//9820 7733//9820 7729//9820 +f 7590//9823 7730//9823 7734//9823 +f 7680//9817 7737//9817 7723//9817 +f 7680//9824 7685//9824 7737//9824 +f 7667//9825 7726//9825 7738//9825 +f 7667//9825 7738//9825 7681//9825 +f 7649//9802 7739//9802 7713//9802 +f 7649//9826 7719//9826 7739//9826 +f 7630//9827 7740//9827 7650//9827 +f 7630//9827 7711//9827 7740//9827 +f 7681//950 7738//950 7741//950 +f 7681//950 7741//950 7684//950 +f 7685//953 7731//953 7742//953 +f 7685//9824 7742//9824 7737//9824 +f 7539//9828 7646//9828 7743//9828 +f 7539//9828 7743//9828 7621//9828 +f 7620//9829 7698//9829 7744//9829 +f 7620//9747 7744//9747 7535//9747 +f 4554//9830 4555//9830 7712//9830 +f 7576//9831 7745//9831 7609//9831 +f 7576//9831 7695//9831 7745//9831 +f 7608//9832 7655//9832 7746//9832 +f 7608//9786 7746//9786 7694//9786 +f 7686//1086 7705//1086 7747//1086 +f 7686//1062 7747//1062 7731//1062 +f 7664//1085 7732//1085 7748//1085 +f 7664//1085 7748//1085 7687//1085 +f 7677//1184 7749//1184 7735//1184 +f 7677//1205 7693//1205 7749//1205 +f 7661//1204 7736//1204 7750//1204 +f 7661//1204 7750//1204 7676//1204 +f 7535//9833 7744//9833 7616//9833 +f 7453//9834 7537//9834 7751//9834 +f 7453//9834 7751//9834 7646//9834 +f 7645//9835 7714//9835 7752//9835 +f 7645//9835 7752//9835 7666//9835 +f 7665//9836 7703//9836 7753//9836 +f 7665//9805 7753//9805 7715//9805 +f 7657//9837 7727//9837 7754//9837 +f 7657//9837 7754//9837 7670//9837 +f 7671//9819 7755//9819 7728//9819 +f 7671//9838 7715//9838 7755//9838 +f 7691//9839 7756//9839 7690//9839 +f 7691//9839 7757//9839 7756//9839 +f 7691//9840 7697//9840 7757//9840 +f 7688//9841 7692//9841 7758//9841 +f 7688//9842 7758//9842 7759//9842 +f 7688//9842 7759//9842 7689//9842 +f 7651//9843 7672//9843 7760//9843 +f 7651//9843 7760//9843 7724//9843 +f 7673//9812 7723//9812 7761//9812 +f 7673//9844 7761//9844 7710//9844 +f 7612//9845 7660//9845 7762//9845 +f 7612//9845 7762//9845 7709//9845 +f 7659//9846 7763//9846 7675//9846 +f 7659//9800 7710//9800 7763//9800 +f 7690//9847 7764//9847 7693//9847 +f 7690//9847 7756//9847 7764//9847 +f 7692//9848 7676//9848 7765//9848 +f 7692//9841 7765//9841 7758//9841 +f 7697//9840 7766//9840 7757//9840 +f 7697//9849 7728//9849 7766//9849 +f 7689//9850 7759//9850 7767//9850 +f 7689//9850 7767//9850 7696//9850 +f 7687//1118 7748//1118 7768//1118 +f 7687//1118 7768//1118 7706//1118 +f 7705//1086 7769//1086 7747//1086 +f 7705//1117 7735//1117 7769//1117 +f 7669//9851 7724//9851 7770//9851 +f 7669//9851 7770//9851 7726//9851 +f 7723//9852 7737//9852 7761//9852 +f 7643//9789 7771//9789 7698//9789 +f 7643//9853 7683//9853 7771//9853 +f 7579//9854 7699//9854 7772//9854 +f 7579//9854 7772//9854 7642//9854 +f 7599//9855 7773//9855 7653//9855 +f 7599//9855 7717//9855 7773//9855 +f 7654//9856 7694//9856 7774//9856 +f 7654//9806 7774//9806 7716//9806 +f 7731//953 7775//953 7742//953 +f 7684//996 7741//996 7776//996 +f 7684//996 7776//996 7732//996 +f 7731//997 7747//997 7775//997 +f 7737//9852 7777//9852 7761//9852 +f 7737//9857 7742//9857 7777//9857 +f 7726//9858 7770//9858 7778//9858 +f 7726//9858 7778//9858 7738//9858 +f 7738//898 7778//898 7779//898 +f 7738//898 7779//898 7741//898 +f 7742//895 7775//895 7780//895 +f 7742//9857 7780//9857 7777//9857 +f 7693//1205 7764//1205 7749//1205 +f 7676//9848 7750//9848 7765//9848 +f 7660//9859 7674//9859 7781//9859 +f 7660//9859 7781//9859 7762//9859 +f 7675//9860 7782//9860 7674//9860 +f 7675//9846 7763//9846 7782//9846 +f 7706//1130 7768//1130 7783//1130 +f 7706//1130 7783//1130 7736//1130 +f 7735//1117 7784//1117 7769//1117 +f 7735//1129 7749//1129 7784//1129 +f 7609//9861 7785//9861 7656//9861 +f 7609//9861 7745//9861 7785//9861 +f 7655//9862 7678//9862 7786//9862 +f 7655//9832 7786//9832 7746//9832 +f 7666//9863 7752//9863 7787//9863 +f 7666//9863 7787//9863 7704//9863 +f 7703//9864 7788//9864 7789//9864 +f 7703//9836 7789//9836 7753//9836 +f 7703//9793 7702//9793 7788//9793 +f 4601//9865 7713//9865 4600//9865 +f 4555//9866 4556//9866 7712//9866 +f 7728//9849 7790//9849 7766//9849 +f 7728//9867 7755//9867 7790//9867 +f 7696//9868 7767//9868 7791//9868 +f 7696//9868 7791//9868 7727//9868 +f 7672//9869 7709//9869 7792//9869 +f 7672//9869 7792//9869 7760//9869 +f 7710//9870 7793//9870 7763//9870 +f 7710//9844 7761//9844 7793//9844 +f 7670//9871 7754//9871 7794//9871 +f 7670//9871 7794//9871 7714//9871 +f 7715//9838 7795//9838 7755//9838 +f 7715//9872 7753//9872 7795//9872 +f 7674//9860 7782//9860 7781//9860 +f 7712//9873 7796//9873 7711//9873 +f 7712//9873 7797//9873 7796//9873 +f 7713//9874 7739//9874 7798//9874 +f 7713//9875 7798//9875 4600//9875 +f 7712//9876 4556//9876 7797//9876 +f 7747//997 7799//997 7775//997 +f 7747//1028 7769//1028 7799//1028 +f 7732//1027 7776//1027 7800//1027 +f 7732//1027 7800//1027 7748//1027 +f 4600//9877 7798//9877 4599//9877 +f 7724//9878 7760//9878 7801//9878 +f 7724//9878 7801//9878 7770//9878 +f 7761//9879 7777//9879 7793//9879 +f 7736//1158 7783//1158 7802//1158 +f 7736//1158 7802//1158 7750//1158 +f 7749//1129 7803//1129 7784//1129 +f 7749//1159 7764//1159 7803//1159 +f 7650//9880 7804//9880 7720//9880 +f 7650//9880 7740//9880 7804//9880 +f 7719//9808 7718//9808 7805//9808 +f 7719//9826 7806//9826 7739//9826 +f 7719//9881 7805//9881 7806//9881 +f 7758//9882 7807//9882 7808//9882 +f 7758//9882 7808//9882 7759//9882 +f 7758//9883 7765//9883 7807//9883 +f 7757//9884 7809//9884 7756//9884 +f 7757//9884 7810//9884 7809//9884 +f 7757//9885 7766//9885 7810//9885 +f 7777//9879 7811//9879 7793//9879 +f 7777//9886 7780//9886 7811//9886 +f 7770//9887 7801//9887 7812//9887 +f 7770//9887 7812//9887 7778//9887 +f 7748//1056 7800//1056 7813//1056 +f 7748//1056 7813//1056 7768//1056 +f 7769//1055 7784//1055 7814//1055 +f 7769//1028 7814//1028 7799//1028 +f 7739//9888 7806//9888 7815//9888 +f 7739//9874 7815//9874 7798//9874 +f 7711//9889 7816//9889 7740//9889 +f 7711//9889 7796//9889 7816//9889 +f 7765//9883 7817//9883 7807//9883 +f 7765//9890 7750//9890 7817//9890 +f 7756//9891 7818//9891 7764//9891 +f 7756//9891 7809//9891 7818//9891 +f 7755//9867 7819//9867 7790//9867 +f 7755//9892 7795//9892 7819//9892 +f 7727//9893 7791//9893 7820//9893 +f 7727//9893 7820//9893 7754//9893 +f 7778//848 7812//848 7821//848 +f 7778//848 7821//848 7779//848 +f 7780//895 7775//895 7822//895 +f 7780//851 7822//851 7823//851 +f 7780//9886 7823//9886 7811//9886 +f 7741//944 7779//944 7824//944 +f 7741//944 7824//944 7776//944 +f 7775//943 7799//943 7822//943 +f 7656//9894 7825//9894 7679//9894 +f 7656//9894 7785//9894 7825//9894 +f 7678//9895 7707//9895 7826//9895 +f 7678//9862 7826//9862 7786//9862 +f 7627//9896 7827//9896 7725//9896 +f 7627//9896 7720//9896 7827//9896 +f 7718//9897 7828//9897 7805//9897 +f 7718//9815 7716//9815 7828//9815 +f 7759//9898 7808//9898 7829//9898 +f 7759//9898 7829//9898 7767//9898 +f 7766//9885 7830//9885 7810//9885 +f 7766//9899 7790//9899 7830//9899 +f 7694//9856 7831//9856 7774//9856 +f 7694//9900 7746//9900 7831//9900 +f 7653//9901 7832//9901 7695//9901 +f 7653//9901 7773//9901 7832//9901 +f 7642//9902 7772//9902 7833//9902 +f 7642//9902 7833//9902 7682//9902 +f 7683//9853 7834//9853 7771//9853 +f 7683//9903 7700//9903 7834//9903 +f 7621//9904 7743//9904 7835//9904 +f 7621//9904 7835//9904 7699//9904 +f 7698//9905 7771//9905 7836//9905 +f 7698//9829 7836//9829 7744//9829 +f 7714//9906 7794//9906 7837//9906 +f 7714//9906 7837//9906 7752//9906 +f 7753//9872 7838//9872 7795//9872 +f 7753//9907 7789//9907 7838//9907 +f 7716//9908 7774//9908 7828//9908 +f 7607//9909 7839//9909 7717//9909 +f 7607//9909 7725//9909 7839//9909 +f 7709//9910 7762//9910 7840//9910 +f 7709//9910 7840//9910 7792//9910 +f 7763//9911 7841//9911 7782//9911 +f 7763//9870 7793//9870 7841//9870 +f 7760//9912 7792//9912 7842//9912 +f 7760//9912 7842//9912 7801//9912 +f 7793//9913 7811//9913 7841//9913 +f 7768//1083 7813//1083 7843//1083 +f 7768//1083 7843//1083 7783//1083 +f 7784//1084 7803//1084 7844//1084 +f 7784//1055 7844//1055 7814//1055 +f 4556//9914 4557//9914 7797//9914 +f 7799//943 7845//943 7822//943 +f 7799//974 7814//974 7845//974 +f 7776//975 7824//975 7846//975 +f 7776//975 7846//975 7800//975 +f 7750//9890 7802//9890 7817//9890 +f 7764//1159 7818//1159 7803//1159 +f 7700//9903 7847//9903 7834//9903 +f 7700//9915 7722//9915 7847//9915 +f 7682//9916 7833//9916 7848//9916 +f 7682//9916 7848//9916 7701//9916 +f 7767//9917 7829//9917 7849//9917 +f 7767//9917 7849//9917 7791//9917 +f 7790//9899 7850//9899 7830//9899 +f 7790//9918 7819//9918 7850//9918 +f 7679//9919 7851//9919 7708//9919 +f 7679//9919 7825//9919 7851//9919 +f 7707//9920 7729//9920 7852//9920 +f 7707//9895 7852//9895 7826//9895 +f 7811//9913 7853//9913 7841//9913 +f 7811//9921 7823//9921 7854//9921 +f 7811//9921 7854//9921 7853//9921 +f 7801//9922 7842//9922 7855//9922 +f 7801//9922 7855//9922 7812//9922 +f 7812//9923 7855//9923 7856//9923 +f 7812//818 7856//818 7821//818 +f 7823//9924 7857//9924 7854//9924 +f 7823//851 7822//851 7857//851 +f 7744//9833 7858//9833 7616//9833 +f 7744//9925 7836//9925 7858//9925 +f 7646//9926 7751//9926 7859//9926 +f 7646//9926 7859//9926 7743//9926 +f 7537//9927 7615//9927 7860//9927 +f 7537//9927 7860//9927 7751//9927 +f 7616//9928 7858//9928 7702//9928 +f 7795//9892 7861//9892 7819//9892 +f 7795//9929 7838//9929 7861//9929 +f 7754//9930 7820//9930 7862//9930 +f 7754//9930 7862//9930 7794//9930 +f 7783//1107 7843//1107 7863//1107 +f 7783//1107 7863//1107 7802//1107 +f 7803//1108 7818//1108 7864//1108 +f 7803//1084 7864//1084 7844//1084 +f 7722//9915 7865//9915 7847//9915 +f 7722//9931 7734//9931 7865//9931 +f 7701//9932 7848//9932 7866//9932 +f 7701//9932 7866//9932 7721//9932 +f 7779//907 7821//907 7867//907 +f 7779//907 7867//907 7824//907 +f 7822//908 7845//908 7857//908 +f 7814//1000 7844//1000 7868//1000 +f 7814//974 7868//974 7845//974 +f 7800//1001 7846//1001 7869//1001 +f 7800//1001 7869//1001 7813//1001 +f 7752//9933 7837//9933 7870//9933 +f 7752//9933 7870//9933 7787//9933 +f 7789//9907 7871//9907 7838//9907 +f 7789//9934 7872//9934 7871//9934 +f 7789//9864 7788//9864 7872//9864 +f 4599//9935 7798//9935 4598//9935 +f 4557//9936 4558//9936 7797//9936 +f 7762//9937 7781//9937 7873//9937 +f 7762//9937 7873//9937 7840//9937 +f 7782//9911 7841//9911 7874//9911 +f 7782//9938 7874//9938 7781//9938 +f 7807//9939 7875//9939 7876//9939 +f 7807//9939 7876//9939 7808//9939 +f 7807//9940 7817//9940 7875//9940 +f 7810//9941 7830//9941 7877//9941 +f 7810//9942 7878//9942 7809//9942 +f 7810//9942 7877//9942 7878//9942 +f 7708//9943 7879//9943 7730//9943 +f 7708//9943 7851//9943 7879//9943 +f 7729//9944 7733//9944 7880//9944 +f 7729//9920 7880//9920 7852//9920 +f 7734//9931 7881//9931 7865//9931 +f 7734//9945 7730//9945 7881//9945 +f 7721//9946 7866//9946 7882//9946 +f 7721//9946 7882//9946 7733//9946 +f 7817//9947 7802//9947 7883//9947 +f 7817//9940 7883//9940 7875//9940 +f 7809//9948 7884//9948 7818//9948 +f 7809//9948 7878//9948 7884//9948 +f 7797//9949 7885//9949 7796//9949 +f 7797//9949 7886//9949 7885//9949 +f 7798//9950 7815//9950 7887//9950 +f 7798//9951 7887//9951 4598//9951 +f 7797//9952 4558//9952 7886//9952 +f 7730//9945 7879//9945 7881//9945 +f 7733//9944 7882//9944 7880//9944 +f 7781//9938 7874//9938 7873//9938 +f 7746//9953 7786//9953 7888//9953 +f 7746//9900 7888//9900 7831//9900 +f 7695//9954 7889//9954 7745//9954 +f 7695//9954 7832//9954 7889//9954 +f 7808//9955 7876//9955 7890//9955 +f 7808//9955 7890//9955 7829//9955 +f 7830//9956 7850//9956 7891//9956 +f 7830//9941 7891//9941 7877//9941 +f 7855//9957 7892//9957 7893//9957 +f 7855//9958 7893//9958 7856//9958 +f 7854//9959 7857//9959 7894//9959 +f 7854//9960 7894//9960 7895//9960 +f 7854//9921 7895//9921 7853//9921 +f 7855//9922 7842//9922 7892//9922 +f 7791//9961 7849//9961 7896//9961 +f 7791//9961 7896//9961 7820//9961 +f 7819//9918 7897//9918 7850//9918 +f 7819//9962 7861//9962 7897//9962 +f 7824//927 7867//927 7898//927 +f 7824//927 7898//927 7846//927 +f 7845//928 7868//928 7899//928 +f 7845//908 7899//908 7857//908 +f 7844//1000 7900//1000 7868//1000 +f 7844//1030 7864//1030 7900//1030 +f 7813//1029 7869//1029 7901//1029 +f 7813//1029 7901//1029 7843//1029 +f 7792//9963 7840//9963 7902//9963 +f 7792//9963 7902//9963 7842//9963 +f 7841//9964 7853//9964 7874//9964 +f 7717//9965 7903//9965 7773//9965 +f 7717//9965 7839//9965 7903//9965 +f 7774//9966 7831//9966 7904//9966 +f 7774//9908 7904//9908 7828//9908 +f 7857//858 7899//858 7894//858 +f 7821//859 7856//859 7905//859 +f 7821//859 7905//859 7867//859 +f 7796//9967 7906//9967 7816//9967 +f 7796//9967 7885//9967 7906//9967 +f 7815//9950 7907//9950 7887//9950 +f 7815//9888 7806//9888 7908//9888 +f 7815//9968 7908//9968 7907//9968 +f 7838//9929 7909//9929 7861//9929 +f 7838//9969 7871//9969 7909//9969 +f 7794//9970 7862//9970 7910//9970 +f 7794//9970 7910//9970 7837//9970 +f 7802//9947 7863//9947 7883//9947 +f 7818//1108 7884//1108 7864//1108 +f 7806//9881 7805//9881 7911//9881 +f 7806//9971 7911//9971 7908//9971 +f 7740//9972 7912//9972 7804//9972 +f 7740//9972 7816//9972 7912//9972 +f 4598//9973 7887//9973 4597//9973 +f 7853//9964 7913//9964 7874//9964 +f 7853//9974 7895//9974 7913//9974 +f 7842//9975 7902//9975 7914//9975 +f 7842//9975 7914//9975 7892//9975 +f 7829//9976 7890//9976 7915//9976 +f 7829//9976 7915//9976 7849//9976 +f 7850//9977 7897//9977 7916//9977 +f 7850//9956 7916//9956 7891//9956 +f 7699//9978 7835//9978 7917//9978 +f 7699//9978 7917//9978 7772//9978 +f 7771//9979 7834//9979 7918//9979 +f 7771//9905 7918//9905 7836//9905 +f 7846//962 7898//962 7919//962 +f 7846//962 7919//962 7869//962 +f 7868//963 7900//963 7920//963 +f 7868//928 7920//928 7899//928 +f 7892//9980 7914//9980 7921//9980 +f 7892//9980 7921//9980 7893//9980 +f 7895//9981 7922//9981 7923//9981 +f 7895//772 7894//772 7922//772 +f 7895//9974 7923//9974 7913//9974 +f 7864//1058 7884//1058 7924//1058 +f 7864//1030 7924//1030 7900//1030 +f 7843//1057 7901//1057 7925//1057 +f 7843//1057 7925//1057 7863//1057 +f 7877//9982 7891//9982 7926//9982 +f 7877//9983 7927//9983 7878//9983 +f 7877//9983 7926//9983 7927//9983 +f 7875//9984 7928//9984 7929//9984 +f 7875//9984 7929//9984 7876//9984 +f 7875//9985 7883//9985 7928//9985 +f 7840//9986 7873//9986 7930//9986 +f 7840//9986 7930//9986 7902//9986 +f 7874//9987 7913//9987 7873//9987 +f 7899//858 7931//858 7894//858 +f 7899//893 7920//893 7931//893 +f 7867//894 7905//894 7932//894 +f 7867//894 7932//894 7898//894 +f 7878//9988 7933//9988 7884//9988 +f 7878//9988 7927//9988 7933//9988 +f 7883//9985 7934//9985 7928//9985 +f 7883//9989 7863//9989 7934//9989 +f 7786//9953 7935//9953 7888//9953 +f 7786//9990 7826//9990 7935//9990 +f 7745//9991 7936//9991 7785//9991 +f 7745//9991 7889//9991 7936//9991 +f 7820//9992 7896//9992 7937//9992 +f 7820//9992 7937//9992 7862//9992 +f 7861//9962 7938//9962 7897//9962 +f 7861//9993 7909//9993 7938//9993 +f 7720//9994 7939//9994 7827//9994 +f 7720//9994 7804//9994 7939//9994 +f 7805//9995 7940//9995 7911//9995 +f 7805//9897 7828//9897 7940//9897 +f 7856//830 7893//830 7941//830 +f 7856//830 7941//830 7905//830 +f 7894//831 7931//831 7922//831 +f 7873//9987 7913//9987 7930//9987 +f 7891//9982 7942//9982 7926//9982 +f 7891//9996 7916//9996 7942//9996 +f 7876//9997 7929//9997 7943//9997 +f 7876//9997 7943//9997 7890//9997 +f 7869//992 7919//992 7944//992 +f 7869//992 7944//992 7901//992 +f 7900//993 7924//993 7945//993 +f 7900//963 7945//963 7920//963 +f 7913//9998 7923//9998 7930//9998 +f 7902//9999 7930//9999 7946//9999 +f 7902//9999 7946//9999 7914//9999 +f 4558//10000 4559//10000 7886//10000 +f 7914//714 7946//714 7947//714 +f 7914//714 7947//714 7921//714 +f 7923//9981 7922//9981 7948//9981 +f 7923//716 7948//716 7946//716 +f 7923//9998 7946//9998 7930//9998 +f 7871//9934 7872//9934 7949//9934 +f 7871//9969 7950//9969 7909//9969 +f 7871//10001 7949//10001 7950//10001 +f 7837//10002 7910//10002 7951//10002 +f 7837//10002 7951//10002 7870//10002 +f 4597//10003 7887//10003 4596//10003 +f 4559//10004 7952//10004 7886//10004 +f 4559//10004 4560//10004 7952//10004 +f 7849//10005 7915//10005 7953//10005 +f 7849//10005 7953//10005 7896//10005 +f 7897//10006 7938//10006 7954//10006 +f 7897//9977 7954//9977 7916//9977 +f 7920//893 7955//893 7931//893 +f 7920//921 7945//921 7955//921 +f 7898//922 7932//922 7956//922 +f 7898//922 7956//922 7919//922 +f 7828//10007 7904//10007 7940//10007 +f 7725//10008 7957//10008 7839//10008 +f 7725//10008 7827//10008 7957//10008 +f 7946//716 7948//716 7947//716 +f 7886//10009 7958//10009 7885//10009 +f 7886//10009 7952//10009 7958//10009 +f 7887//10010 7907//10010 7959//10010 +f 7887//10011 7959//10011 4596//10011 +f 7905//856 7941//856 7960//856 +f 7905//856 7960//856 7932//856 +f 7931//857 7955//857 7961//857 +f 7931//831 7961//831 7922//831 +f 7884//1058 7933//1058 7924//1058 +f 7863//9989 7925//9989 7934//9989 +f 7922//10012 7961//10012 7948//10012 +f 7893//10013 7921//10013 7962//10013 +f 7893//10013 7962//10013 7941//10013 +f 7831//9966 7963//9966 7904//9966 +f 7773//10014 7964//10014 7832//10014 +f 7773//10014 7903//10014 7964//10014 +f 7831//10015 7888//10015 7963//10015 +f 7901//1020 7944//1020 7965//1020 +f 7901//1020 7965//1020 7925//1020 +f 7924//1022 7933//1022 7966//1022 +f 7924//993 7966//993 7945//993 +f 7836//10016 7918//10016 7967//10016 +f 7836//9925 7967//9925 7858//9925 +f 7743//10017 7859//10017 7968//10017 +f 7743//10017 7968//10017 7835//10017 +f 7916//10018 7954//10018 7969//10018 +f 7916//9996 7969//9996 7942//9996 +f 7890//10019 7943//10019 7970//10019 +f 7890//10019 7970//10019 7915//10019 +f 7928//10020 7934//10020 7971//10020 +f 7928//10021 7971//10021 7972//10021 +f 7928//10021 7972//10021 7929//10021 +f 7926//10022 7942//10022 7973//10022 +f 7926//10023 7974//10023 7927//10023 +f 7926//10023 7973//10023 7974//10023 +f 7702//9928 7858//9928 7975//9928 +f 7702//10024 7975//10024 7788//10024 +f 7615//10025 7704//10025 7976//10025 +f 7615//10025 7976//10025 7860//10025 +f 7826//10026 7852//10026 7977//10026 +f 7826//9990 7977//9990 7935//9990 +f 7785//10027 7978//10027 7825//10027 +f 7785//10027 7936//10027 7978//10027 +f 7934//10028 7925//10028 7979//10028 +f 7934//10020 7979//10020 7971//10020 +f 7927//10029 7980//10029 7933//10029 +f 7927//10029 7974//10029 7980//10029 +f 7772//10030 7917//10030 7981//10030 +f 7772//10030 7981//10030 7833//10030 +f 7834//10031 7847//10031 7982//10031 +f 7834//9979 7982//9979 7918//9979 +f 7862//10032 7937//10032 7983//10032 +f 7862//10032 7983//10032 7910//10032 +f 7909//9993 7984//9993 7938//9993 +f 7909//10033 7950//10033 7984//10033 +f 7945//921 7985//921 7955//921 +f 7945//954 7966//954 7985//954 +f 7919//955 7956//955 7986//955 +f 7919//955 7986//955 7944//955 +f 7751//10034 7860//10034 7987//10034 +f 7751//10034 7987//10034 7859//10034 +f 7858//10035 7967//10035 7975//10035 +f 7929//10036 7972//10036 7988//10036 +f 7929//10036 7988//10036 7943//10036 +f 7942//10037 7969//10037 7989//10037 +f 7942//10022 7989//10022 7973//10022 +f 7932//891 7960//891 7990//891 +f 7932//891 7990//891 7956//891 +f 7955//892 7985//892 7991//892 +f 7955//857 7991//857 7961//857 +f 7907//10010 7992//10010 7959//10010 +f 7907//9968 7908//9968 7993//9968 +f 7907//10038 7993//10038 7992//10038 +f 7885//10039 7994//10039 7906//10039 +f 7885//10039 7958//10039 7994//10039 +f 7961//10012 7995//10012 7948//10012 +f 7961//828 7991//828 7995//828 +f 7941//829 7962//829 7996//829 +f 7941//829 7996//829 7960//829 +f 7921//774 7947//774 7997//774 +f 7921//774 7997//774 7962//774 +f 7948//775 7995//775 7947//775 +f 7896//10040 7953//10040 7998//10040 +f 7896//10040 7998//10040 7937//10040 +f 7938//10041 7984//10041 7999//10041 +f 7938//10006 7999//10006 7954//10006 +f 7908//9971 7911//9971 8000//9971 +f 7908//10042 8000//10042 7993//10042 +f 7816//10043 8001//10043 7912//10043 +f 7816//10043 7906//10043 8001//10043 +f 7833//10044 7981//10044 8002//10044 +f 7833//10044 8002//10044 7848//10044 +f 7847//10045 7865//10045 8003//10045 +f 7847//10031 8003//10031 7982//10031 +f 7966//1022 7933//1022 7980//1022 +f 7966//954 8004//954 7985//954 +f 7966//10046 7980//10046 8004//10046 +f 7944//981 7986//981 8005//981 +f 7944//981 8005//981 7965//981 +f 4596//10047 7959//10047 4595//10047 +f 7947//775 7995//775 7997//775 +f 7954//10018 8006//10018 7969//10018 +f 7954//10048 7999//10048 8006//10048 +f 7915//10049 7970//10049 8007//10049 +f 7915//10049 8007//10049 7953//10049 +f 7852//10026 8008//10026 7977//10026 +f 7852//10050 7880//10050 8008//10050 +f 7825//10051 8009//10051 7851//10051 +f 7825//10051 7978//10051 8009//10051 +f 7925//10028 7965//10028 7979//10028 +f 7956//917 7990//917 8010//917 +f 7956//917 8010//917 7986//917 +f 7985//918 8004//918 8011//918 +f 7985//892 8011//892 7991//892 +f 7973//10052 8012//10052 7974//10052 +f 7973//10052 8013//10052 8012//10052 +f 7973//10053 7989//10053 8013//10053 +f 7971//10054 7979//10054 8014//10054 +f 7971//10055 8014//10055 8015//10055 +f 7971//10055 8015//10055 7972//10055 +f 7991//828 8016//828 7995//828 +f 7991//852 8011//852 8016//852 +f 7960//853 7996//853 8017//853 +f 7960//853 8017//853 7990//853 +f 7943//10056 7988//10056 8018//10056 +f 7943//10056 8018//10056 7970//10056 +f 7969//10057 8006//10057 8019//10057 +f 7969//10037 8019//10037 7989//10037 +f 7974//10058 8020//10058 7980//10058 +f 7974//10058 8012//10058 8020//10058 +f 7979//10059 7965//10059 8021//10059 +f 7979//10054 8021//10054 8014//10054 +f 7995//815 8016//815 7997//815 +f 7962//814 7997//814 8022//814 +f 7962//814 8022//814 7996//814 +f 7848//10060 8002//10060 8023//10060 +f 7848//10060 8023//10060 7866//10060 +f 7865//10061 7881//10061 8024//10061 +f 7865//10045 8024//10045 8003//10045 +f 7832//10062 8025//10062 7889//10062 +f 7832//10062 7964//10062 8025//10062 +f 7888//10015 8026//10015 7963//10015 +f 7888//10063 7935//10063 8026//10063 +f 7910//10064 7983//10064 8027//10064 +f 7910//10064 8027//10064 7951//10064 +f 7950//10033 8028//10033 7984//10033 +f 7950//10065 8029//10065 8028//10065 +f 7950//10001 7949//10001 8029//10001 +f 4595//10066 7959//10066 4594//10066 +f 4560//10067 4561//10067 7952//10067 +f 7989//10053 8030//10053 8013//10053 +f 7989//10068 8019//10068 8030//10068 +f 7972//10069 8015//10069 8031//10069 +f 7972//10069 8031//10069 7988//10069 +f 7839//10070 8032//10070 7903//10070 +f 7839//10070 7957//10070 8032//10070 +f 7904//10071 7963//10071 8033//10071 +f 7904//10007 8033//10007 7940//10007 +f 7880//10072 7882//10072 8034//10072 +f 7880//10050 8034//10050 8008//10050 +f 7851//10073 8035//10073 7879//10073 +f 7851//10073 8009//10073 8035//10073 +f 7997//815 8016//815 8022//815 +f 7866//10074 8023//10074 8036//10074 +f 7866//10074 8036//10074 7882//10074 +f 7881//10075 7879//10075 8037//10075 +f 7881//10061 8037//10061 8024//10061 +f 7952//10076 8038//10076 7958//10076 +f 7952//10076 8039//10076 8038//10076 +f 7959//10077 7992//10077 8040//10077 +f 7959//10066 8040//10066 4594//10066 +f 7952//10078 4561//10078 8039//10078 +f 4561//10079 4562//10079 8039//10079 +f 7882//10072 8036//10072 8034//10072 +f 7879//10075 8035//10075 8037//10075 +f 7804//10080 8041//10080 7939//10080 +f 7804//10080 7912//10080 8041//10080 +f 7911//10081 8042//10081 8000//10081 +f 7911//9995 7940//9995 8042//9995 +f 7986//10082 8010//10082 8043//10082 +f 7986//10082 8043//10082 8005//10082 +f 8004//949 8020//949 8044//949 +f 8004//918 8044//918 8011//918 +f 8004//10046 7980//10046 8020//10046 +f 8011//852 8045//852 8016//852 +f 8011//10083 8044//10083 8046//10083 +f 8011//10084 8046//10084 8045//10084 +f 7990//10085 8017//10085 8047//10085 +f 7990//10086 8047//10086 8010//10086 +f 7937//10087 7998//10087 8048//10087 +f 7937//10087 8048//10087 7983//10087 +f 7984//10088 8028//10088 8049//10088 +f 7984//10041 8049//10041 7999//10041 +f 8014//10089 8021//10089 8050//10089 +f 8014//10090 8050//10090 8051//10090 +f 8014//10090 8051//10090 8015//10090 +f 8013//10091 8030//10091 8052//10091 +f 8013//10092 8053//10092 8012//10092 +f 8013//10092 8052//10092 8053//10092 +f 7996//837 8022//837 8054//837 +f 7996//837 8054//837 8017//837 +f 8016//836 8045//836 8022//836 +f 7965//10059 8005//10059 8021//10059 +f 8021//10093 8005//10093 8055//10093 +f 8021//10089 8055//10089 8050//10089 +f 8012//10094 8056//10094 8020//10094 +f 8012//10094 8053//10094 8056//10094 +f 7999//10095 8049//10095 8057//10095 +f 7999//10048 8057//10048 8006//10048 +f 7953//10096 8007//10096 8058//10096 +f 7953//10096 8058//10096 7998//10096 +f 7970//10097 8018//10097 8059//10097 +f 7970//10097 8059//10097 8007//10097 +f 8006//10098 8057//10098 8060//10098 +f 8006//10057 8060//10057 8019//10057 +f 7918//10016 8061//10016 7967//10016 +f 7918//10099 7982//10099 8061//10099 +f 7835//10100 7968//10100 8062//10100 +f 7835//10100 8062//10100 7917//10100 +f 8019//10068 8063//10068 8030//10068 +f 8019//10101 8060//10101 8063//10101 +f 7988//10102 8031//10102 8064//10102 +f 7988//10102 8064//10102 8018//10102 +f 8022//836 8045//836 8054//836 +f 8015//10103 8051//10103 8065//10103 +f 8015//10103 8065//10103 8031//10103 +f 8030//10104 8063//10104 8066//10104 +f 8030//10091 8066//10091 8052//10091 +f 7992//10077 8067//10077 8040//10077 +f 7992//10038 7993//10038 8068//10038 +f 7992//10105 8068//10105 8067//10105 +f 7958//10106 8069//10106 7994//10106 +f 7958//10106 8038//10106 8069//10106 +f 8044//10107 8056//10107 8046//10107 +f 8044//949 8020//949 8056//949 +f 8010//10108 8047//10108 8070//10108 +f 8010//10108 8070//10108 8043//10108 +f 8050//10109 8071//10109 8072//10109 +f 8050//10109 8072//10109 8051//10109 +f 8052//10110 8073//10110 8053//10110 +f 8052//10111 8074//10111 8073//10111 +f 8052//10112 8066//10112 8074//10112 +f 8050//10113 8055//10113 8071//10113 +f 8017//871 8054//871 8075//871 +f 8017//871 8075//871 8076//871 +f 8045//10114 8046//10114 8077//10114 +f 8045//872 8077//872 8054//872 +f 8017//10115 8076//10115 8047//10115 +f 7940//10116 8033//10116 8042//10116 +f 7827//10117 8078//10117 7957//10117 +f 7827//10117 7939//10117 8078//10117 +f 7889//10118 8079//10118 7936//10118 +f 7889//10118 8025//10118 8079//10118 +f 7935//10063 8080//10063 8026//10063 +f 7935//10119 7977//10119 8080//10119 +f 7704//10120 7787//10120 8081//10120 +f 7704//10120 8081//10120 7976//10120 +f 7788//10121 8082//10121 7872//10121 +f 7788//10024 7975//10024 8082//10024 +f 8055//10093 8005//10093 8043//10093 +f 8053//10122 8083//10122 8056//10122 +f 8053//10123 8073//10123 8083//10123 +f 8055//10124 8043//10124 8084//10124 +f 8055//10125 8084//10125 8071//10125 +f 8054//872 8077//872 8075//872 +f 8047//10126 8076//10126 8085//10126 +f 8047//10126 8085//10126 8070//10126 +f 8046//10107 8056//10107 8083//10107 +f 8046//10127 8083//10127 8077//10127 +f 7993//10128 8086//10128 8068//10128 +f 7993//10042 8000//10042 8086//10042 +f 7906//10129 8087//10129 8001//10129 +f 7906//10129 7994//10129 8087//10129 +f 8051//10130 8072//10130 8088//10130 +f 8051//10130 8088//10130 8065//10130 +f 8066//10112 8089//10112 8074//10112 +f 8066//10131 8090//10131 8089//10131 +f 8066//10104 8063//10104 8090//10104 +f 7983//10132 8048//10132 8091//10132 +f 7983//10132 8091//10132 8027//10132 +f 8028//10065 8029//10065 8092//10065 +f 8028//10133 8092//10133 8093//10133 +f 8028//10088 8093//10088 8049//10088 +f 4594//10134 8040//10134 4593//10134 +f 4562//10135 4563//10135 8039//10135 +f 8031//10136 8065//10136 8094//10136 +f 8031//10136 8094//10136 8064//10136 +f 8063//10137 8095//10137 8090//10137 +f 8063//10101 8060//10101 8095//10101 +f 4593//10138 8096//10138 4592//10138 +f 4593//10139 8040//10139 8096//10139 +f 8074//10140 8097//10140 8073//10140 +f 8074//10141 8098//10141 8097//10141 +f 8074//10142 8089//10142 8098//10142 +f 8071//10143 8084//10143 8099//10143 +f 8071//10144 8099//10144 8100//10144 +f 8071//10144 8100//10144 8072//10144 +f 7963//10071 8101//10071 8033//10071 +f 7903//10145 8102//10145 7964//10145 +f 7903//10145 8032//10145 8102//10145 +f 7963//10146 8026//10146 8101//10146 +f 8060//10098 8057//10098 8103//10098 +f 8060//10147 8103//10147 8095//10147 +f 8018//10148 8064//10148 8104//10148 +f 8018//10148 8104//10148 8059//10148 +f 7859//10149 7987//10149 8105//10149 +f 7859//10149 8105//10149 7968//10149 +f 7967//10150 8061//10150 8106//10150 +f 7967//10035 8106//10035 7975//10035 +f 8084//10151 8070//10151 8107//10151 +f 8073//10152 8108//10152 8083//10152 +f 8073//10153 8097//10153 8108//10153 +f 8084//10154 8043//10154 8070//10154 +f 8084//10155 8107//10155 8099//10155 +f 8076//903 8075//903 8109//903 +f 8076//903 8109//903 8085//903 +f 8077//10127 8083//10127 8108//10127 +f 8077//904 8108//904 8075//904 +f 8039//10156 8110//10156 8038//10156 +f 8039//10156 8111//10156 8110//10156 +f 8040//10157 8067//10157 8096//10157 +f 8039//10158 4563//10158 8111//10158 +f 8049//10095 8112//10095 8057//10095 +f 8049//10159 8093//10159 8112//10159 +f 7998//10160 8058//10160 8113//10160 +f 7998//10160 8113//10160 8048//10160 +f 8007//10161 8059//10161 8114//10161 +f 8007//10161 8114//10161 8058//10161 +f 8057//10162 8112//10162 8103//10162 +f 7975//10163 8106//10163 8082//10163 +f 7860//10164 7976//10164 8115//10164 +f 7860//10164 8115//10164 7987//10164 +f 8089//10142 8116//10142 8098//10142 +f 8089//10131 8090//10131 8117//10131 +f 8089//10165 8117//10165 8116//10165 +f 8072//10166 8100//10166 8118//10166 +f 8072//10166 8118//10166 8088//10166 +f 8099//10167 8119//10167 8120//10167 +f 8099//10167 8120//10167 8100//10167 +f 8099//10168 8107//10168 8119//10168 +f 8098//10169 8116//10169 8119//10169 +f 8098//10170 8121//10170 8097//10170 +f 8098//10170 8119//10170 8121//10170 +f 8075//904 8108//904 8109//904 +f 4563//10171 4564//10171 8111//10171 +f 8107//10172 8085//10172 8121//10172 +f 8107//10168 8121//10168 8119//10168 +f 8107//10173 8070//10173 8085//10173 +f 8097//10174 8109//10174 8108//10174 +f 8097//10174 8121//10174 8109//10174 +f 8065//10175 8088//10175 8122//10175 +f 8065//10175 8122//10175 8094//10175 +f 8090//10176 8123//10176 8117//10176 +f 8090//10137 8095//10137 8123//10137 +f 8119//10169 8116//10169 8120//10169 +f 7936//10177 8124//10177 7978//10177 +f 7936//10177 8079//10177 8124//10177 +f 7977//10119 8125//10119 8080//10119 +f 7977//10178 8008//10178 8125//10178 +f 8100//10179 8120//10179 8126//10179 +f 8100//10179 8126//10179 8118//10179 +f 8116//10165 8117//10165 8127//10165 +f 8116//10180 8127//10180 8120//10180 +f 8121//10172 8085//10172 8109//10172 +f 7982//10181 8003//10181 8128//10181 +f 7982//10099 8128//10099 8061//10099 +f 7917//10182 8062//10182 8129//10182 +f 7917//10182 8129//10182 7981//10182 +f 8067//10183 8130//10183 8131//10183 +f 8067//10157 8131//10157 8096//10157 +f 8067//10105 8068//10105 8130//10105 +f 8038//10184 8132//10184 8069//10184 +f 8038//10184 8110//10184 8132//10184 +f 8064//10185 8094//10185 8133//10185 +f 8064//10185 8133//10185 8104//10185 +f 8095//10186 8134//10186 8123//10186 +f 8095//10147 8103//10147 8134//10147 +f 8120//10180 8127//10180 8126//10180 +f 7912//10187 8135//10187 8041//10187 +f 7912//10187 8001//10187 8135//10187 +f 8000//10188 8136//10188 8086//10188 +f 8000//10081 8042//10081 8136//10081 +f 8117//10176 8123//10176 8137//10176 +f 8117//10189 8137//10189 8127//10189 +f 8088//10190 8118//10190 8138//10190 +f 8088//10190 8138//10190 8122//10190 +f 8103//10162 8112//10162 8139//10162 +f 8103//10191 8139//10191 8134//10191 +f 8059//10192 8104//10192 8140//10192 +f 8059//10192 8140//10192 8114//10192 +f 8093//10193 8141//10193 8142//10193 +f 8093//10159 8142//10159 8112//10159 +f 8093//10133 8092//10133 8141//10133 +f 8048//10194 8113//10194 8143//10194 +f 8048//10194 8143//10194 8091//10194 +f 4592//10195 8096//10195 4591//10195 +f 4564//10196 4565//10196 8111//10196 +f 7957//10197 8144//10197 8032//10197 +f 7957//10197 8078//10197 8144//10197 +f 8033//10198 8101//10198 8145//10198 +f 8033//10116 8145//10116 8042//10116 +f 8003//10181 8146//10181 8128//10181 +f 8003//10199 8024//10199 8146//10199 +f 7981//10200 8129//10200 8147//10200 +f 7981//10200 8147//10200 8002//10200 +f 8058//10201 8114//10201 8148//10201 +f 8058//10201 8148//10201 8113//10201 +f 8112//10202 8142//10202 8139//10202 +f 8118//10203 8126//10203 8149//10203 +f 8118//10203 8149//10203 8138//10203 +f 8127//10189 8137//10189 8150//10189 +f 8127//10204 8150//10204 8126//10204 +f 7978//10205 8151//10205 8009//10205 +f 7978//10205 8124//10205 8151//10205 +f 8008//10178 8152//10178 8125//10178 +f 8008//10206 8034//10206 8152//10206 +f 8026//10207 8080//10207 8153//10207 +f 7964//10208 8154//10208 8025//10208 +f 7964//10208 8102//10208 8154//10208 +f 8026//10146 8153//10146 8101//10146 +f 8111//10209 8155//10209 8110//10209 +f 8111//10209 8156//10209 8155//10209 +f 8096//10210 8131//10210 8157//10210 +f 8096//10211 8157//10211 4591//10211 +f 8111//10212 4565//10212 8156//10212 +f 8094//10213 8122//10213 8158//10213 +f 8094//10213 8158//10213 8133//10213 +f 8123//10214 8159//10214 8137//10214 +f 8123//10186 8134//10186 8159//10186 +f 7994//10215 8160//10215 8087//10215 +f 7994//10215 8069//10215 8160//10215 +f 8068//10128 8086//10128 8161//10128 +f 8068//10216 8161//10216 8130//10216 +f 8126//10204 8150//10204 8149//10204 +f 4591//10217 8157//10217 4590//10217 +f 8024//10218 8037//10218 8162//10218 +f 8024//10199 8162//10199 8146//10199 +f 8002//10219 8147//10219 8163//10219 +f 8002//10219 8163//10219 8023//10219 +f 7787//10220 7870//10220 8164//10220 +f 7787//10220 8164//10220 8081//10220 +f 7872//10221 8165//10221 7949//10221 +f 7872//10121 8082//10121 8165//10121 +f 8009//10222 8166//10222 8035//10222 +f 8009//10222 8151//10222 8166//10222 +f 8034//10206 8167//10206 8152//10206 +f 8034//10223 8036//10223 8167//10223 +f 4565//10224 4566//10224 8156//10224 +f 8104//10225 8133//10225 8168//10225 +f 8104//10225 8168//10225 8140//10225 +f 8134//10226 8169//10226 8159//10226 +f 8134//10191 8139//10191 8169//10191 +f 8137//10214 8159//10214 8170//10214 +f 8137//10227 8170//10227 8150//10227 +f 8122//10228 8138//10228 8171//10228 +f 8122//10228 8171//10228 8158//10228 +f 8037//10218 8172//10218 8162//10218 +f 8037//10229 8035//10229 8172//10229 +f 8023//10230 8163//10230 8173//10230 +f 8023//10230 8173//10230 8036//10230 +f 8042//10231 8145//10231 8136//10231 +f 7939//10232 8174//10232 8078//10232 +f 7939//10232 8041//10232 8174//10232 +f 8035//10229 8166//10229 8172//10229 +f 8036//10223 8173//10223 8167//10223 +f 8110//10233 8175//10233 8132//10233 +f 8110//10233 8155//10233 8175//10233 +f 8131//10210 8176//10210 8157//10210 +f 8131//10183 8130//10183 8177//10183 +f 8131//10234 8177//10234 8176//10234 +f 7968//10235 8105//10235 8178//10235 +f 7968//10235 8178//10235 8062//10235 +f 8061//10150 8179//10150 8106//10150 +f 8061//10236 8128//10236 8179//10236 +f 8139//10202 8142//10202 8180//10202 +f 8139//10237 8180//10237 8169//10237 +f 8114//10238 8140//10238 8181//10238 +f 8114//10238 8181//10238 8148//10238 +f 8138//10239 8149//10239 8182//10239 +f 8138//10239 8182//10239 8171//10239 +f 8150//10227 8170//10227 8183//10227 +f 8150//10240 8183//10240 8149//10240 +f 8113//10241 8148//10241 8184//10241 +f 8113//10241 8184//10241 8143//10241 +f 8142//10193 8141//10193 8185//10193 +f 8142//10242 8185//10242 8180//10242 +f 4590//10243 8157//10243 4589//10243 +f 4566//10244 4567//10244 8156//10244 +f 8149//10240 8183//10240 8182//10240 +f 8133//10245 8158//10245 8186//10245 +f 8133//10245 8186//10245 8168//10245 +f 8159//10246 8187//10246 8170//10246 +f 8159//10226 8169//10226 8187//10226 +f 8156//10247 8188//10247 8155//10247 +f 8156//10247 8189//10247 8188//10247 +f 8157//10248 8176//10248 8190//10248 +f 8157//10249 8190//10249 4589//10249 +f 8156//10250 4567//10250 8189//10250 +f 8080//10251 8125//10251 8191//10251 +f 8080//10207 8191//10207 8153//10207 +f 8025//10252 8192//10252 8079//10252 +f 8025//10252 8154//10252 8192//10252 +f 7976//10253 8081//10253 8193//10253 +f 7976//10253 8193//10253 8115//10253 +f 8082//10254 8194//10254 8165//10254 +f 8082//10163 8106//10163 8194//10163 +f 8101//10198 8195//10198 8145//10198 +f 8032//10255 8196//10255 8102//10255 +f 8032//10255 8144//10255 8196//10255 +f 8101//10256 8153//10256 8195//10256 +f 8106//10257 8179//10257 8194//10257 +f 7987//10258 8115//10258 8197//10258 +f 7987//10258 8197//10258 8105//10258 +f 8001//10259 8198//10259 8135//10259 +f 8001//10259 8087//10259 8198//10259 +f 8086//10260 8199//10260 8161//10260 +f 8086//10188 8136//10188 8199//10188 +f 4589//10261 8190//10261 4588//10261 +f 8170//10246 8187//10246 8200//10246 +f 8170//10262 8200//10262 8183//10262 +f 8158//10263 8171//10263 8201//10263 +f 8158//10263 8201//10263 8186//10263 +f 8140//10264 8168//10264 8202//10264 +f 8140//10264 8202//10264 8181//10264 +f 8169//10265 8203//10265 8187//10265 +f 8169//10237 8180//10237 8203//10237 +f 8130//10216 8161//10216 8204//10216 +f 8130//10266 8204//10266 8177//10266 +f 8069//10267 8205//10267 8160//10267 +f 8069//10267 8132//10267 8205//10267 +f 4567//10268 4568//10268 8189//10268 +f 8176//10248 8206//10248 8190//10248 +f 8176//10234 8177//10234 8207//10234 +f 8176//10269 8207//10269 8206//10269 +f 8155//10270 8208//10270 8175//10270 +f 8155//10270 8188//10270 8208//10270 +f 8180//10242 8185//10242 8209//10242 +f 8180//10271 8209//10271 8203//10271 +f 8148//10272 8181//10272 8210//10272 +f 8148//10272 8210//10272 8184//10272 +f 4588//10273 8190//10273 4587//10273 +f 4568//10274 8211//10274 8189//10274 +f 4568//10274 4569//10274 8211//10274 +f 8171//10275 8182//10275 8212//10275 +f 8171//10276 8212//10276 8201//10276 +f 8183//10262 8200//10262 8213//10262 +f 8183//10277 8213//10277 8214//10277 +f 8183//10277 8214//10277 8182//10277 +f 8189//10278 8215//10278 8188//10278 +f 8189//10278 8211//10278 8215//10278 +f 8190//10279 8206//10279 8216//10279 +f 8190//10280 8216//10280 4587//10280 +f 8182//10281 8217//10281 8212//10281 +f 8182//10277 8214//10277 8217//10277 +f 8168//10282 8186//10282 8218//10282 +f 8168//10282 8218//10282 8202//10282 +f 8187//10283 8219//10283 8200//10283 +f 8187//10265 8203//10265 8219//10265 +f 8125//10284 8152//10284 8220//10284 +f 8125//10251 8220//10251 8191//10251 +f 8079//10285 8221//10285 8124//10285 +f 8079//10285 8192//10285 8221//10285 +f 8078//10286 8222//10286 8144//10286 +f 8078//10286 8174//10286 8222//10286 +f 8145//10287 8195//10287 8223//10287 +f 8145//10231 8223//10231 8136//10231 +f 8062//10288 8178//10288 8224//10288 +f 8062//10288 8224//10288 8129//10288 +f 8128//10236 8225//10236 8179//10236 +f 8128//10289 8146//10289 8225//10289 +f 7949//10221 8165//10221 8226//10221 +f 7949//10290 8226//10290 8029//10290 +f 7870//10291 7951//10291 8227//10291 +f 7870//10291 8227//10291 8164//10291 +f 4587//10292 8216//10292 4586//10292 +f 8181//10293 8202//10293 8228//10293 +f 8181//10293 8228//10293 8210//10293 +f 8203//10294 8229//10294 8219//10294 +f 8203//10271 8209//10271 8229//10271 +f 4586//10295 8216//10295 4585//10295 +f 4569//10296 4570//10296 8211//10296 +f 8200//10283 8219//10283 8230//10283 +f 8200//10297 8230//10297 8213//10297 +f 8186//10298 8201//10298 8231//10298 +f 8186//10298 8231//10298 8218//10298 +f 4570//10299 8232//10299 8211//10299 +f 4570//10300 4571//10300 8232//10300 +f 8102//10301 8233//10301 8154//10301 +f 8102//10301 8196//10301 8233//10301 +f 8153//10302 8191//10302 8234//10302 +f 8153//10256 8234//10256 8195//10256 +f 8206//10279 8235//10279 8216//10279 +f 8206//10269 8207//10269 8236//10269 +f 8206//10303 8236//10303 8235//10303 +f 8188//10304 8237//10304 8208//10304 +f 8188//10304 8215//10304 8237//10304 +f 8136//10305 8223//10305 8199//10305 +f 8041//10306 8238//10306 8174//10306 +f 8041//10306 8135//10306 8238//10306 +f 8211//10307 8239//10307 8215//10307 +f 8211//10307 8232//10307 8239//10307 +f 8216//10308 8235//10308 8240//10308 +f 8216//10295 8240//10295 4585//10295 +f 8129//10309 8224//10309 8241//10309 +f 8129//10309 8241//10309 8147//10309 +f 8146//10289 8242//10289 8225//10289 +f 8146//10310 8162//10310 8242//10310 +f 8177//10266 8204//10266 8243//10266 +f 8177//10311 8243//10311 8207//10311 +f 8132//10312 8244//10312 8205//10312 +f 8132//10312 8175//10312 8244//10312 +f 8201//10313 8212//10313 8245//10313 +f 8201//10313 8245//10313 8231//10313 +f 8213//10314 8246//10314 8214//10314 +f 8213//10297 8230//10297 8246//10297 +f 8152//10315 8167//10315 8247//10315 +f 8152//10284 8247//10284 8220//10284 +f 8124//10316 8248//10316 8151//10316 +f 8124//10316 8221//10316 8248//10316 +f 8214//10317 8246//10317 8249//10317 +f 8214//10318 8249//10318 8217//10318 +f 8087//10319 8250//10319 8198//10319 +f 8087//10319 8160//10319 8250//10319 +f 8161//10320 8251//10320 8204//10320 +f 8161//10260 8199//10260 8251//10260 +f 8212//10321 8217//10321 8252//10321 +f 8212//10321 8252//10321 8245//10321 +f 8202//10322 8218//10322 8253//10322 +f 8202//10322 8253//10322 8228//10322 +f 8219//10323 8254//10323 8230//10323 +f 8219//10294 8229//10294 8254//10294 +f 4585//10324 8240//10324 4584//10324 +f 4571//10325 4572//10325 8232//10325 +f 8217//10326 8249//10326 8252//10326 +f 4584//10327 8255//10327 4583//10327 +f 4584//10328 8240//10328 8255//10328 +f 8147//10329 8241//10329 8256//10329 +f 8147//10329 8256//10329 8163//10329 +f 8162//10310 8257//10310 8242//10310 +f 8162//10330 8172//10330 8257//10330 +f 4572//10331 8258//10331 8232//10331 +f 4572//10332 4573//10332 8258//10332 +f 8081//10333 8164//10333 8259//10333 +f 8081//10333 8259//10333 8193//10333 +f 8165//10334 8260//10334 8226//10334 +f 8165//10254 8194//10254 8260//10254 +f 8232//10335 8261//10335 8239//10335 +f 8232//10335 8258//10335 8261//10335 +f 8240//10336 8262//10336 8255//10336 +f 8240//10308 8235//10308 8262//10308 +f 8179//10257 8263//10257 8194//10257 +f 8179//10337 8225//10337 8263//10337 +f 8105//10338 8197//10338 8264//10338 +f 8105//10338 8264//10338 8178//10338 +f 8235//10339 8265//10339 8262//10339 +f 8235//10303 8236//10303 8265//10303 +f 8215//10340 8266//10340 8237//10340 +f 8215//10340 8239//10340 8266//10340 +f 8167//10341 8173//10341 8267//10341 +f 8167//10315 8267//10315 8247//10315 +f 8151//10342 8268//10342 8166//10342 +f 8151//10342 8248//10342 8268//10342 +f 8163//10343 8256//10343 8269//10343 +f 8163//10343 8269//10343 8173//10343 +f 8172//10330 8270//10330 8257//10330 +f 8172//10344 8166//10344 8270//10344 +f 8173//10341 8269//10341 8267//10341 +f 8166//10344 8268//10344 8270//10344 +f 8230//10323 8254//10323 8271//10323 +f 8230//10345 8271//10345 8246//10345 +f 8218//10346 8231//10346 8272//10346 +f 8218//10346 8272//10346 8253//10346 +f 4583//10347 8255//10347 4582//10347 +f 4573//10348 4574//10348 8258//10348 +f 8195//10287 8273//10287 8223//10287 +f 8195//10349 8234//10349 8273//10349 +f 8144//10350 8274//10350 8196//10350 +f 8144//10350 8222//10350 8274//10350 +f 8115//10351 8193//10351 8275//10351 +f 8115//10351 8275//10351 8197//10351 +f 8194//10352 8263//10352 8260//10352 +f 4582//10353 8276//10353 4581//10353 +f 4582//10354 8255//10354 8276//10354 +f 4574//10355 8277//10355 8258//10355 +f 4574//10356 4575//10356 8277//10356 +f 8258//10357 8278//10357 8261//10357 +f 8258//10357 8277//10357 8278//10357 +f 8255//10358 8279//10358 8276//10358 +f 8255//10336 8262//10336 8279//10336 +f 8154//10359 8280//10359 8192//10359 +f 8154//10359 8233//10359 8280//10359 +f 8191//10360 8220//10360 8281//10360 +f 8191//10302 8281//10302 8234//10302 +f 8231//10361 8245//10361 8282//10361 +f 8231//10361 8282//10361 8272//10361 +f 8246//10362 8283//10362 8249//10362 +f 8246//10345 8271//10345 8283//10345 +f 4581//10363 8276//10363 4580//10363 +f 4575//10364 4576//10364 8277//10364 +f 8207//10365 8284//10365 8236//10365 +f 8207//10311 8243//10311 8284//10311 +f 8175//10366 8285//10366 8244//10366 +f 8175//10366 8208//10366 8285//10366 +f 7951//10367 8027//10367 8286//10367 +f 7951//10367 8286//10367 8227//10367 +f 8029//10368 8287//10368 8092//10368 +f 8029//10290 8226//10290 8287//10290 +f 8239//10369 8288//10369 8266//10369 +f 8239//10369 8261//10369 8288//10369 +f 8262//10339 8265//10339 8289//10339 +f 8262//10370 8289//10370 8279//10370 +f 4580//10371 8290//10371 4579//10371 +f 4580//10372 8276//10372 8290//10372 +f 4576//10373 8291//10373 8277//10373 +f 4576//10374 4577//10374 8291//10374 +f 8245//10375 8252//10375 8292//10375 +f 8245//10375 8292//10375 8282//10375 +f 8249//10362 8283//10362 8293//10362 +f 8249//10376 8293//10376 8252//10376 +f 4579//10377 8290//10377 4578//10377 +f 4577//10378 8294//10378 8291//10378 +f 4577//10378 4578//10378 8294//10378 +f 8277//10379 8295//10379 8278//10379 +f 8277//10379 8291//10379 8295//10379 +f 8276//10380 8296//10380 8290//10380 +f 8276//10358 8279//10358 8296//10358 +f 8252//10376 8293//10376 8292//10376 +f 4578//10377 8290//10377 8294//10377 +f 8174//10381 8297//10381 8222//10381 +f 8174//10381 8238//10381 8297//10381 +f 8223//10382 8273//10382 8298//10382 +f 8223//10305 8298//10305 8199//10305 +f 8291//10383 8299//10383 8295//10383 +f 8291//10383 8294//10383 8299//10383 +f 8290//10384 8300//10384 8294//10384 +f 8290//10380 8296//10380 8300//10380 +f 8294//10384 8300//10384 8299//10384 +f 8279//10370 8289//10370 8301//10370 +f 8279//10385 8301//10385 8296//10385 +f 8261//10386 8302//10386 8288//10386 +f 8261//10386 8278//10386 8302//10386 +f 8204//10387 8303//10387 8243//10387 +f 8160//10388 8304//10388 8250//10388 +f 8160//10388 8205//10388 8304//10388 +f 8204//10320 8251//10320 8303//10320 +f 8199//10389 8298//10389 8251//10389 +f 8135//10390 8305//10390 8238//10390 +f 8135//10390 8198//10390 8305//10390 +f 8296//10385 8301//10385 8306//10385 +f 8296//10391 8306//10391 8300//10391 +f 8278//10392 8307//10392 8302//10392 +f 8278//10392 8295//10392 8307//10392 +f 8192//10393 8308//10393 8221//10393 +f 8192//10393 8280//10393 8308//10393 +f 8220//10394 8247//10394 8309//10394 +f 8220//10360 8309//10360 8281//10360 +f 8208//10395 8310//10395 8285//10395 +f 8208//10395 8237//10395 8310//10395 +f 8236//10365 8284//10365 8311//10365 +f 8236//10396 8311//10396 8265//10396 +f 8225//10397 8242//10397 8312//10397 +f 8225//10337 8312//10337 8263//10337 +f 8178//10398 8264//10398 8313//10398 +f 8178//10398 8313//10398 8224//10398 +f 8300//10399 8314//10399 8299//10399 +f 8300//10391 8306//10391 8314//10391 +f 8295//10400 8315//10400 8307//10400 +f 8295//10400 8299//10400 8315//10400 +f 8299//10399 8314//10399 8315//10399 +f 8234//10401 8281//10401 8316//10401 +f 8234//10349 8316//10349 8273//10349 +f 8196//10402 8317//10402 8233//10402 +f 8196//10402 8274//10402 8317//10402 +f 8226//10334 8260//10334 8318//10334 +f 8226//10403 8318//10403 8287//10403 +f 8164//10404 8227//10404 8319//10404 +f 8164//10404 8319//10404 8259//10404 +f 8027//10405 8091//10405 8320//10405 +f 8027//10405 8320//10405 8286//10405 +f 8092//10368 8287//10368 8321//10368 +f 8092//10406 8321//10406 8141//10406 +f 8242//10397 8322//10397 8312//10397 +f 8242//10407 8257//10407 8322//10407 +f 8224//10408 8313//10408 8323//10408 +f 8224//10408 8323//10408 8241//10408 +f 8221//10409 8324//10409 8248//10409 +f 8221//10409 8308//10409 8324//10409 +f 8247//10410 8267//10410 8325//10410 +f 8247//10394 8325//10394 8309//10394 +f 8265//10396 8311//10396 8326//10396 +f 8265//10411 8326//10411 8289//10411 +f 8237//10412 8327//10412 8310//10412 +f 8237//10412 8266//10412 8327//10412 +f 8197//10413 8275//10413 8328//10413 +f 8197//10413 8328//10413 8264//10413 +f 8263//10414 8312//10414 8329//10414 +f 8263//10352 8329//10352 8260//10352 +f 8273//10382 8330//10382 8298//10382 +f 8222//10415 8331//10415 8274//10415 +f 8222//10415 8297//10415 8331//10415 +f 8273//10416 8316//10416 8330//10416 +f 8205//10417 8332//10417 8304//10417 +f 8205//10417 8244//10417 8332//10417 +f 8243//10387 8303//10387 8333//10387 +f 8243//10418 8333//10418 8284//10418 +f 8193//10419 8259//10419 8334//10419 +f 8193//10419 8334//10419 8275//10419 +f 8260//10420 8329//10420 8318//10420 +f 8257//10407 8335//10407 8322//10407 +f 8257//10421 8270//10421 8335//10421 +f 8241//10422 8323//10422 8336//10422 +f 8241//10422 8336//10422 8256//10422 +f 8248//10423 8337//10423 8268//10423 +f 8248//10423 8324//10423 8337//10423 +f 8267//10424 8269//10424 8338//10424 +f 8267//10410 8338//10410 8325//10410 +f 8270//10421 8339//10421 8335//10421 +f 8270//10425 8268//10425 8339//10425 +f 8256//10426 8336//10426 8340//10426 +f 8256//10426 8340//10426 8269//10426 +f 8289//10411 8326//10411 8341//10411 +f 8289//10427 8341//10427 8301//10427 +f 8266//10428 8342//10428 8327//10428 +f 8266//10428 8288//10428 8342//10428 +f 8238//10429 8343//10429 8297//10429 +f 8238//10429 8305//10429 8343//10429 +f 8298//10430 8330//10430 8344//10430 +f 8298//10389 8344//10389 8251//10389 +f 8281//10401 8345//10401 8316//10401 +f 8281//10431 8309//10431 8345//10431 +f 8233//10432 8346//10432 8280//10432 +f 8233//10432 8317//10432 8346//10432 +f 8268//10425 8337//10425 8339//10425 +f 8269//10424 8340//10424 8338//10424 +f 8251//10433 8344//10433 8303//10433 +f 8198//10434 8347//10434 8305//10434 +f 8198//10434 8250//10434 8347//10434 +f 8301//10435 8348//10435 8306//10435 +f 8301//10427 8341//10427 8348//10427 +f 8288//10436 8349//10436 8342//10436 +f 8288//10436 8302//10436 8349//10436 +f 8141//10437 8350//10437 8185//10437 +f 8141//10406 8321//10406 8350//10406 +f 8091//10438 8143//10438 8351//10438 +f 8091//10438 8351//10438 8320//10438 +f 8244//10439 8352//10439 8332//10439 +f 8244//10439 8285//10439 8352//10439 +f 8284//10440 8353//10440 8311//10440 +f 8284//10418 8333//10418 8353//10418 +f 8227//10441 8286//10441 8354//10441 +f 8227//10441 8354//10441 8319//10441 +f 8287//10442 8355//10442 8321//10442 +f 8287//10403 8318//10403 8355//10403 +f 8302//10443 8356//10443 8349//10443 +f 8302//10443 8307//10443 8356//10443 +f 8306//10435 8348//10435 8357//10435 +f 8306//10444 8357//10444 8314//10444 +f 8314//10444 8357//10444 8358//10444 +f 8314//10445 8358//10445 8315//10445 +f 8307//10446 8359//10446 8356//10446 +f 8307//10446 8315//10446 8359//10446 +f 8274//10447 8360//10447 8317//10447 +f 8274//10447 8331//10447 8360//10447 +f 8316//10416 8361//10416 8330//10416 +f 8316//10448 8345//10448 8361//10448 +f 8315//10445 8358//10445 8359//10445 +f 8309//10449 8325//10449 8362//10449 +f 8309//10431 8362//10431 8345//10431 +f 8280//10450 8363//10450 8308//10450 +f 8280//10450 8346//10450 8363//10450 +f 8264//10451 8328//10451 8364//10451 +f 8264//10451 8364//10451 8313//10451 +f 8312//10452 8322//10452 8365//10452 +f 8312//10414 8365//10414 8329//10414 +f 8330//10430 8366//10430 8344//10430 +f 8297//10453 8367//10453 8331//10453 +f 8297//10453 8343//10453 8367//10453 +f 8330//10454 8361//10454 8366//10454 +f 8318//10420 8329//10420 8368//10420 +f 8318//10455 8368//10455 8355//10455 +f 8259//10456 8319//10456 8369//10456 +f 8259//10456 8369//10456 8334//10456 +f 8303//10433 8344//10433 8370//10433 +f 8303//10457 8370//10457 8333//10457 +f 8250//10458 8371//10458 8347//10458 +f 8250//10458 8304//10458 8371//10458 +f 8143//10459 8184//10459 8372//10459 +f 8143//10459 8372//10459 8351//10459 +f 8185//10437 8350//10437 8373//10437 +f 8185//10460 8373//10460 8209//10460 +f 8285//10461 8374//10461 8352//10461 +f 8285//10461 8310//10461 8374//10461 +f 8311//10462 8375//10462 8326//10462 +f 8311//10440 8353//10440 8375//10440 +f 8322//10452 8376//10452 8365//10452 +f 8322//10463 8335//10463 8376//10463 +f 8313//10464 8364//10464 8377//10464 +f 8313//10464 8377//10464 8323//10464 +f 8305//10465 8378//10465 8343//10465 +f 8305//10465 8347//10465 8378//10465 +f 8344//10466 8366//10466 8370//10466 +f 8275//10467 8334//10467 8379//10467 +f 8275//10467 8379//10467 8328//10467 +f 8329//10468 8365//10468 8368//10468 +f 8325//10449 8380//10449 8362//10449 +f 8325//10469 8338//10469 8380//10469 +f 8308//10470 8381//10470 8324//10470 +f 8308//10470 8363//10470 8381//10470 +f 8323//10471 8377//10471 8382//10471 +f 8323//10471 8382//10471 8336//10471 +f 8335//10472 8339//10472 8383//10472 +f 8335//10463 8383//10463 8376//10463 +f 8317//10473 8384//10473 8346//10473 +f 8317//10473 8360//10473 8384//10473 +f 8345//10448 8385//10448 8361//10448 +f 8345//10474 8362//10474 8385//10474 +f 8286//10475 8320//10475 8386//10475 +f 8286//10475 8386//10475 8354//10475 +f 8321//10442 8355//10442 8387//10442 +f 8321//10476 8387//10476 8350//10476 +f 8338//10477 8340//10477 8388//10477 +f 8338//10469 8388//10469 8380//10469 +f 8324//10478 8389//10478 8337//10478 +f 8324//10478 8381//10478 8389//10478 +f 8336//10479 8382//10479 8390//10479 +f 8336//10479 8390//10479 8340//10479 +f 8339//10480 8337//10480 8391//10480 +f 8339//10472 8391//10472 8383//10472 +f 8310//10481 8392//10481 8374//10481 +f 8310//10481 8327//10481 8392//10481 +f 8326//10482 8393//10482 8341//10482 +f 8326//10462 8375//10462 8393//10462 +f 8340//10477 8390//10477 8388//10477 +f 8337//10480 8389//10480 8391//10480 +f 8209//10460 8373//10460 8394//10460 +f 8209//10483 8394//10483 8229//10483 +f 8184//10484 8210//10484 8395//10484 +f 8184//10484 8395//10484 8372//10484 +f 8333//10457 8370//10457 8396//10457 +f 8333//10485 8396//10485 8353//10485 +f 8304//10486 8397//10486 8371//10486 +f 8304//10486 8332//10486 8397//10486 +f 8361//10487 8385//10487 8398//10487 +f 8331//10488 8399//10488 8360//10488 +f 8331//10488 8367//10488 8399//10488 +f 8361//10454 8398//10454 8366//10454 +f 8327//10489 8400//10489 8392//10489 +f 8327//10489 8342//10489 8400//10489 +f 8341//10490 8401//10490 8348//10490 +f 8341//10482 8393//10482 8401//10482 +f 8346//10491 8402//10491 8363//10491 +f 8346//10491 8384//10491 8402//10491 +f 8362//10474 8403//10474 8385//10474 +f 8362//10492 8380//10492 8403//10492 +f 8347//10493 8404//10493 8378//10493 +f 8347//10493 8371//10493 8404//10493 +f 8370//10494 8405//10494 8396//10494 +f 8370//10466 8366//10466 8405//10466 +f 8343//10495 8406//10495 8367//10495 +f 8343//10495 8378//10495 8406//10495 +f 8366//10496 8398//10496 8405//10496 +f 8319//10497 8354//10497 8407//10497 +f 8319//10497 8407//10497 8369//10497 +f 8355//10498 8408//10498 8387//10498 +f 8355//10455 8368//10455 8408//10455 +f 8328//10499 8379//10499 8409//10499 +f 8328//10499 8409//10499 8364//10499 +f 8365//10468 8410//10468 8368//10468 +f 8365//10500 8376//10500 8410//10500 +f 8210//10501 8228//10501 8411//10501 +f 8210//10501 8411//10501 8395//10501 +f 8229//10502 8412//10502 8254//10502 +f 8229//10483 8394//10483 8412//10483 +f 8342//10503 8413//10503 8400//10503 +f 8342//10503 8349//10503 8413//10503 +f 8348//10504 8414//10504 8357//10504 +f 8348//10490 8401//10490 8414//10490 +f 8350//10505 8415//10505 8373//10505 +f 8350//10476 8387//10476 8415//10476 +f 8320//10506 8351//10506 8416//10506 +f 8320//10506 8416//10506 8386//10506 +f 8368//10507 8410//10507 8408//10507 +f 8334//10508 8369//10508 8417//10508 +f 8334//10508 8417//10508 8379//10508 +f 8349//10509 8418//10509 8413//10509 +f 8349//10509 8356//10509 8418//10509 +f 8357//10510 8419//10510 8358//10510 +f 8357//10504 8414//10504 8419//10504 +f 8376//10500 8420//10500 8410//10500 +f 8376//10511 8383//10511 8420//10511 +f 8364//10512 8409//10512 8421//10512 +f 8364//10512 8421//10512 8377//10512 +f 8228//10513 8253//10513 8422//10513 +f 8228//10513 8422//10513 8411//10513 +f 8254//10514 8423//10514 8271//10514 +f 8254//10502 8412//10502 8423//10502 +f 8363//10515 8424//10515 8381//10515 +f 8363//10515 8402//10515 8424//10515 +f 8380//10492 8425//10492 8403//10492 +f 8380//10516 8388//10516 8425//10516 +f 8358//10517 8426//10517 8359//10517 +f 8356//10518 8427//10518 8418//10518 +f 8356//10518 8359//10518 8427//10518 +f 8358//10510 8419//10510 8426//10510 +f 8353//10485 8396//10485 8428//10485 +f 8353//10519 8428//10519 8375//10519 +f 8332//10520 8429//10520 8397//10520 +f 8332//10520 8352//10520 8429//10520 +f 8359//10517 8426//10517 8427//10517 +f 8385//10521 8403//10521 8430//10521 +f 8385//10487 8430//10487 8398//10487 +f 8360//10522 8431//10522 8384//10522 +f 8360//10522 8399//10522 8431//10522 +f 8383//10523 8391//10523 8432//10523 +f 8383//10511 8432//10511 8420//10511 +f 8377//10524 8421//10524 8433//10524 +f 8377//10524 8433//10524 8382//10524 +f 8271//10514 8423//10514 8434//10514 +f 8271//10525 8434//10525 8283//10525 +f 8253//10526 8272//10526 8435//10526 +f 8253//10526 8435//10526 8422//10526 +f 8381//10527 8436//10527 8389//10527 +f 8381//10527 8424//10527 8436//10527 +f 8388//10516 8437//10516 8425//10516 +f 8388//10528 8390//10528 8437//10528 +f 8371//10529 8438//10529 8404//10529 +f 8371//10529 8397//10529 8438//10529 +f 8396//10530 8439//10530 8428//10530 +f 8396//10494 8405//10494 8439//10494 +f 8391//10523 8440//10523 8432//10523 +f 8391//10531 8389//10531 8440//10531 +f 8382//10532 8433//10532 8441//10532 +f 8382//10532 8441//10532 8390//10532 +f 8367//10533 8442//10533 8399//10533 +f 8367//10533 8406//10533 8442//10533 +f 8398//10534 8430//10534 8443//10534 +f 8398//10496 8443//10496 8405//10496 +f 8389//10531 8436//10531 8440//10531 +f 8390//10528 8441//10528 8437//10528 +f 8351//10535 8372//10535 8444//10535 +f 8351//10535 8444//10535 8416//10535 +f 8373//10505 8415//10505 8445//10505 +f 8373//10536 8445//10536 8394//10536 +f 8405//10537 8443//10537 8439//10537 +f 8378//10538 8446//10538 8406//10538 +f 8378//10538 8404//10538 8446//10538 +f 8272//10539 8282//10539 8447//10539 +f 8272//10539 8447//10539 8435//10539 +f 8283//10540 8448//10540 8293//10540 +f 8283//10525 8434//10525 8448//10525 +f 8354//10541 8386//10541 8449//10541 +f 8354//10541 8449//10541 8407//10541 +f 8387//10498 8408//10498 8450//10498 +f 8387//10542 8450//10542 8415//10542 +f 8282//10543 8292//10543 8451//10543 +f 8282//10543 8451//10543 8447//10543 +f 8293//10540 8448//10540 8452//10540 +f 8293//10544 8452//10544 8292//10544 +f 8375//10519 8428//10519 8453//10519 +f 8375//10545 8453//10545 8393//10545 +f 8352//10546 8454//10546 8429//10546 +f 8352//10546 8374//10546 8454//10546 +f 8292//10544 8452//10544 8451//10544 +f 8403//10547 8425//10547 8455//10547 +f 8403//10521 8455//10521 8430//10521 +f 8384//10548 8456//10548 8402//10548 +f 8384//10548 8431//10548 8456//10548 +f 8379//10549 8417//10549 8457//10549 +f 8379//10549 8457//10549 8409//10549 +f 8410//10507 8458//10507 8408//10507 +f 8410//10550 8420//10550 8458//10550 +f 8408//10551 8458//10551 8450//10551 +f 8369//10552 8407//10552 8459//10552 +f 8369//10552 8459//10552 8417//10552 +f 8394//10536 8445//10536 8460//10536 +f 8394//10553 8460//10553 8412//10553 +f 8372//10554 8395//10554 8461//10554 +f 8372//10554 8461//10554 8444//10554 +f 8397//10555 8462//10555 8438//10555 +f 8397//10555 8429//10555 8462//10555 +f 8428//10556 8463//10556 8453//10556 +f 8428//10530 8439//10530 8463//10530 +f 8393//10545 8453//10545 8464//10545 +f 8393//10557 8464//10557 8401//10557 +f 8374//10558 8465//10558 8454//10558 +f 8374//10558 8392//10558 8465//10558 +f 8409//10559 8457//10559 8466//10559 +f 8409//10559 8466//10559 8421//10559 +f 8420//10550 8467//10550 8458//10550 +f 8420//10560 8432//10560 8467//10560 +f 8399//10561 8468//10561 8431//10561 +f 8399//10561 8442//10561 8468//10561 +f 8430//10562 8455//10562 8469//10562 +f 8430//10534 8469//10534 8443//10534 +f 8425//10563 8437//10563 8470//10563 +f 8425//10547 8470//10547 8455//10547 +f 8402//10564 8471//10564 8424//10564 +f 8402//10564 8456//10564 8471//10564 +f 8439//10537 8443//10537 8472//10537 +f 8404//10565 8473//10565 8446//10565 +f 8404//10565 8438//10565 8473//10565 +f 8439//10566 8472//10566 8463//10566 +f 8415//10567 8474//10567 8445//10567 +f 8415//10542 8450//10542 8474//10542 +f 8386//10568 8416//10568 8475//10568 +f 8386//10568 8475//10568 8449//10568 +f 8443//10569 8469//10569 8472//10569 +f 8406//10570 8476//10570 8442//10570 +f 8406//10570 8446//10570 8476//10570 +f 8421//10571 8466//10571 8477//10571 +f 8421//10571 8477//10571 8433//10571 +f 8432//10560 8478//10560 8467//10560 +f 8432//10572 8440//10572 8478//10572 +f 8401//10557 8464//10557 8479//10557 +f 8401//10573 8479//10573 8414//10573 +f 8392//10574 8480//10574 8465//10574 +f 8392//10574 8400//10574 8480//10574 +f 8395//10575 8411//10575 8481//10575 +f 8395//10575 8481//10575 8461//10575 +f 8412//10576 8482//10576 8423//10576 +f 8412//10553 8460//10553 8482//10553 +f 8437//10577 8441//10577 8483//10577 +f 8437//10563 8483//10563 8470//10563 +f 8424//10578 8484//10578 8436//10578 +f 8424//10578 8471//10578 8484//10578 +f 8433//10579 8477//10579 8485//10579 +f 8433//10579 8485//10579 8441//10579 +f 8440//10572 8486//10572 8478//10572 +f 8440//10580 8436//10580 8486//10580 +f 8429//10581 8487//10581 8462//10581 +f 8429//10581 8454//10581 8487//10581 +f 8453//10582 8488//10582 8464//10582 +f 8453//10556 8463//10556 8488//10556 +f 8441//10577 8485//10577 8483//10577 +f 8436//10580 8484//10580 8486//10580 +f 8414//10573 8479//10573 8489//10573 +f 8414//10583 8489//10583 8419//10583 +f 8400//10584 8490//10584 8480//10584 +f 8400//10584 8413//10584 8490//10584 +f 8431//10585 8491//10585 8456//10585 +f 8431//10585 8468//10585 8491//10585 +f 8455//10586 8470//10586 8492//10586 +f 8455//10562 8492//10562 8469//10562 +f 8407//10587 8449//10587 8493//10587 +f 8407//10587 8493//10587 8459//10587 +f 8450//10551 8458//10551 8494//10551 +f 8450//10588 8494//10588 8474//10588 +f 8458//10589 8467//10589 8494//10589 +f 8417//10590 8459//10590 8495//10590 +f 8417//10590 8495//10590 8457//10590 +f 8411//10591 8422//10591 8496//10591 +f 8411//10591 8496//10591 8481//10591 +f 8423//10592 8497//10592 8434//10592 +f 8423//10576 8482//10576 8497//10576 +f 8419//10583 8489//10583 8498//10583 +f 8419//10593 8498//10593 8426//10593 +f 8413//10594 8499//10594 8490//10594 +f 8413//10594 8418//10594 8499//10594 +f 8438//10595 8500//10595 8473//10595 +f 8438//10595 8462//10595 8500//10595 +f 8463//10596 8501//10596 8488//10596 +f 8463//10566 8472//10566 8501//10566 +f 8416//10597 8444//10597 8502//10597 +f 8416//10597 8502//10597 8475//10597 +f 8445//10567 8474//10567 8503//10567 +f 8445//10598 8503//10598 8460//10598 +f 8426//10593 8498//10593 8504//10593 +f 8426//10599 8504//10599 8427//10599 +f 8418//10600 8505//10600 8499//10600 +f 8418//10600 8427//10600 8505//10600 +f 8454//10601 8506//10601 8487//10601 +f 8454//10601 8465//10601 8506//10601 +f 8464//10602 8507//10602 8479//10602 +f 8464//10582 8488//10582 8507//10582 +f 8469//10569 8508//10569 8472//10569 +f 8469//10603 8492//10603 8508//10603 +f 8442//10604 8509//10604 8468//10604 +f 8442//10604 8476//10604 8509//10604 +f 8427//10599 8504//10599 8505//10599 +f 8434//10592 8497//10592 8510//10592 +f 8434//10605 8510//10605 8448//10605 +f 8422//10606 8435//10606 8511//10606 +f 8422//10606 8511//10606 8496//10606 +f 8446//10607 8512//10607 8476//10607 +f 8446//10607 8473//10607 8512//10607 +f 8472//10608 8508//10608 8501//10608 +f 8467//10589 8513//10589 8494//10589 +f 8467//10609 8478//10609 8513//10609 +f 8457//10610 8495//10610 8514//10610 +f 8457//10610 8514//10610 8466//10610 +f 8456//10611 8515//10611 8471//10611 +f 8456//10611 8491//10611 8515//10611 +f 8470//10612 8483//10612 8516//10612 +f 8470//10586 8516//10586 8492//10586 +f 8435//10613 8447//10613 8517//10613 +f 8435//10613 8517//10613 8511//10613 +f 8448//10614 8518//10614 8452//10614 +f 8448//10605 8510//10605 8518//10605 +f 8447//10615 8451//10615 8519//10615 +f 8447//10615 8519//10615 8517//10615 +f 8452//10614 8518//10614 8520//10614 +f 8452//10616 8520//10616 8451//10616 +f 8478//10609 8521//10609 8513//10609 +f 8478//10617 8486//10617 8521//10617 +f 8466//10618 8514//10618 8522//10618 +f 8466//10618 8522//10618 8477//10618 +f 8465//10619 8523//10619 8506//10619 +f 8465//10619 8480//10619 8523//10619 +f 8479//10620 8524//10620 8489//10620 +f 8479//10602 8507//10602 8524//10602 +f 8451//10616 8520//10616 8519//10616 +f 8462//10621 8525//10621 8500//10621 +f 8462//10621 8487//10621 8525//10621 +f 8488//10622 8526//10622 8507//10622 +f 8488//10596 8501//10596 8526//10596 +f 8471//10623 8527//10623 8484//10623 +f 8471//10623 8515//10623 8527//10623 +f 8483//10624 8485//10624 8528//10624 +f 8483//10612 8528//10612 8516//10612 +f 8460//10598 8503//10598 8529//10598 +f 8460//10625 8529//10625 8482//10625 +f 8444//10626 8461//10626 8530//10626 +f 8444//10626 8530//10626 8502//10626 +f 8474//10627 8531//10627 8503//10627 +f 8474//10588 8494//10588 8531//10588 +f 8449//10628 8475//10628 8532//10628 +f 8449//10628 8532//10628 8493//10628 +f 8486//10617 8533//10617 8521//10617 +f 8486//10629 8484//10629 8533//10629 +f 8477//10630 8522//10630 8534//10630 +f 8477//10630 8534//10630 8485//10630 +f 8484//10629 8527//10629 8533//10629 +f 8485//10624 8534//10624 8528//10624 +f 8492//10631 8516//10631 8535//10631 +f 8492//10603 8535//10603 8508//10603 +f 8468//10632 8536//10632 8491//10632 +f 8468//10632 8509//10632 8536//10632 +f 8480//10633 8537//10633 8523//10633 +f 8480//10633 8490//10633 8537//10633 +f 8489//10634 8538//10634 8498//10634 +f 8489//10620 8524//10620 8538//10620 +f 8459//10635 8493//10635 8539//10635 +f 8459//10635 8539//10635 8495//10635 +f 8494//10636 8513//10636 8531//10636 +f 8501//10637 8540//10637 8526//10637 +f 8473//10638 8541//10638 8512//10638 +f 8473//10638 8500//10638 8541//10638 +f 8501//10608 8508//10608 8540//10608 +f 8476//10639 8542//10639 8509//10639 +f 8476//10639 8512//10639 8542//10639 +f 8508//10640 8535//10640 8540//10640 +f 8490//10641 8543//10641 8537//10641 +f 8490//10641 8499//10641 8543//10641 +f 8498//10642 8544//10642 8504//10642 +f 8498//10634 8538//10634 8544//10634 +f 8507//10643 8545//10643 8524//10643 +f 8487//10644 8546//10644 8525//10644 +f 8487//10644 8506//10644 8546//10644 +f 8507//10622 8526//10622 8545//10622 +f 8499//10645 8547//10645 8543//10645 +f 8499//10645 8505//10645 8547//10645 +f 8504//10646 8548//10646 8505//10646 +f 8504//10642 8544//10642 8548//10642 +f 8461//10647 8481//10647 8549//10647 +f 8461//10647 8549//10647 8530//10647 +f 8482//10648 8550//10648 8497//10648 +f 8482//10625 8529//10625 8550//10625 +f 8505//10646 8548//10646 8547//10646 +f 8495//10649 8539//10649 8551//10649 +f 8495//10649 8551//10649 8514//10649 +f 8513//10650 8521//10650 8552//10650 +f 8513//10636 8552//10636 8531//10636 +f 8516//10631 8553//10631 8535//10631 +f 8516//10651 8528//10651 8553//10651 +f 8491//10652 8554//10652 8515//10652 +f 8491//10652 8536//10652 8554//10652 +f 8475//10653 8502//10653 8555//10653 +f 8475//10653 8555//10653 8532//10653 +f 8503//10627 8531//10627 8556//10627 +f 8503//10654 8556//10654 8529//10654 +f 8514//10655 8551//10655 8557//10655 +f 8514//10655 8557//10655 8522//10655 +f 8521//10656 8533//10656 8558//10656 +f 8521//10650 8558//10650 8552//10650 +f 8524//10643 8545//10643 8559//10643 +f 8506//10657 8560//10657 8546//10657 +f 8506//10657 8523//10657 8560//10657 +f 8524//10658 8559//10658 8538//10658 +f 8526//10637 8540//10637 8561//10637 +f 8500//10659 8562//10659 8541//10659 +f 8500//10659 8525//10659 8562//10659 +f 8526//10660 8561//10660 8545//10660 +f 8481//10661 8496//10661 8563//10661 +f 8481//10661 8563//10661 8549//10661 +f 8497//10662 8564//10662 8510//10662 +f 8497//10648 8550//10648 8564//10648 +f 8528//10663 8534//10663 8565//10663 +f 8528//10651 8565//10651 8553//10651 +f 8515//10664 8566//10664 8527//10664 +f 8515//10664 8554//10664 8566//10664 +f 8509//10665 8567//10665 8536//10665 +f 8509//10665 8542//10665 8567//10665 +f 8535//10640 8568//10640 8540//10640 +f 8535//10666 8553//10666 8568//10666 +f 8522//10667 8557//10667 8569//10667 +f 8522//10667 8569//10667 8534//10667 +f 8533//10668 8527//10668 8570//10668 +f 8533//10656 8570//10656 8558//10656 +f 8531//10669 8552//10669 8556//10669 +f 8493//10670 8532//10670 8571//10670 +f 8493//10670 8571//10670 8539//10670 +f 8540//10671 8568//10671 8561//10671 +f 8512//10672 8572//10672 8542//10672 +f 8512//10672 8541//10672 8572//10672 +f 8534//10663 8569//10663 8565//10663 +f 8527//10668 8566//10668 8570//10668 +f 8523//10673 8573//10673 8560//10673 +f 8523//10673 8537//10673 8573//10673 +f 8538//10674 8574//10674 8544//10674 +f 8538//10658 8559//10658 8574//10658 +f 8510//10662 8564//10662 8575//10662 +f 8510//10675 8575//10675 8518//10675 +f 8496//10676 8511//10676 8576//10676 +f 8496//10676 8576//10676 8563//10676 +f 8529//10677 8577//10677 8550//10677 +f 8529//10654 8556//10654 8577//10654 +f 8502//10678 8530//10678 8578//10678 +f 8502//10678 8578//10678 8555//10678 +f 8545//10679 8579//10679 8559//10679 +f 8525//10680 8580//10680 8562//10680 +f 8525//10680 8546//10680 8580//10680 +f 8545//10660 8561//10660 8579//10660 +f 8537//10681 8581//10681 8573//10681 +f 8537//10681 8543//10681 8581//10681 +f 8544//10682 8582//10682 8548//10682 +f 8544//10674 8574//10674 8582//10674 +f 8511//10683 8517//10683 8583//10683 +f 8511//10683 8583//10683 8576//10683 +f 8518//10684 8584//10684 8520//10684 +f 8518//10675 8575//10675 8584//10675 +f 8552//10669 8585//10669 8556//10669 +f 8552//10685 8558//10685 8585//10685 +f 8539//10686 8571//10686 8586//10686 +f 8539//10686 8586//10686 8551//10686 +f 8536//10687 8587//10687 8554//10687 +f 8536//10687 8567//10687 8587//10687 +f 8553//10666 8588//10666 8568//10666 +f 8553//10688 8565//10688 8588//10688 +f 8548//10689 8589//10689 8547//10689 +f 8543//10690 8590//10690 8581//10690 +f 8543//10690 8547//10690 8590//10690 +f 8548//10682 8582//10682 8589//10682 +f 8547//10689 8589//10689 8590//10689 +f 8517//10691 8519//10691 8591//10691 +f 8517//10691 8591//10691 8583//10691 +f 8520//10684 8584//10684 8592//10684 +f 8520//10692 8592//10692 8519//10692 +f 8519//10692 8592//10692 8591//10692 +f 8561//10671 8568//10671 8593//10671 +f 8541//10693 8594//10693 8572//10693 +f 8541//10693 8562//10693 8594//10693 +f 8561//10694 8593//10694 8579//10694 +f 8558//10695 8570//10695 8595//10695 +f 8558//10685 8595//10685 8585//10685 +f 8551//10696 8586//10696 8596//10696 +f 8551//10696 8596//10696 8557//10696 +f 8568//10697 8588//10697 8593//10697 +f 8542//10698 8597//10698 8567//10698 +f 8542//10698 8572//10698 8597//10698 +f 8546//10699 8598//10699 8580//10699 +f 8546//10699 8560//10699 8598//10699 +f 8559//10679 8579//10679 8599//10679 +f 8559//10700 8599//10700 8574//10700 +f 8532//10701 8555//10701 8600//10701 +f 8532//10701 8600//10701 8571//10701 +f 8556//10702 8585//10702 8577//10702 +f 8554//10703 8601//10703 8566//10703 +f 8554//10703 8587//10703 8601//10703 +f 8565//10688 8602//10688 8588//10688 +f 8565//10704 8569//10704 8602//10704 +f 8570//10695 8603//10695 8595//10695 +f 8570//10705 8566//10705 8603//10705 +f 8557//10706 8596//10706 8604//10706 +f 8557//10706 8604//10706 8569//10706 +f 8530//10707 8549//10707 8605//10707 +f 8530//10707 8605//10707 8578//10707 +f 8550//10708 8606//10708 8564//10708 +f 8550//10677 8577//10677 8606//10677 +f 8566//10705 8601//10705 8603//10705 +f 8569//10704 8604//10704 8602//10704 +f 8574//10709 8607//10709 8582//10709 +f 8560//10710 8608//10710 8598//10710 +f 8560//10710 8573//10710 8608//10710 +f 8574//10700 8599//10700 8607//10700 +f 8571//10711 8600//10711 8609//10711 +f 8571//10711 8609//10711 8586//10711 +f 8585//10702 8610//10702 8577//10702 +f 8585//10712 8595//10712 8610//10712 +f 8579//10713 8611//10713 8599//10713 +f 8562//10714 8612//10714 8594//10714 +f 8562//10714 8580//10714 8612//10714 +f 8579//10694 8593//10694 8611//10694 +f 8588//10715 8602//10715 8613//10715 +f 8588//10697 8613//10697 8593//10697 +f 8567//10716 8614//10716 8587//10716 +f 8567//10716 8597//10716 8614//10716 +f 8549//10717 8563//10717 8615//10717 +f 8549//10717 8615//10717 8605//10717 +f 8564//10718 8616//10718 8575//10718 +f 8564//10708 8606//10708 8616//10708 +f 8582//10709 8607//10709 8617//10709 +f 8573//10719 8618//10719 8608//10719 +f 8573//10719 8581//10719 8618//10719 +f 8582//10720 8617//10720 8589//10720 +f 8572//10721 8619//10721 8597//10721 +f 8572//10721 8594//10721 8619//10721 +f 8593//10722 8613//10722 8611//10722 +f 8577//10723 8610//10723 8606//10723 +f 8555//10724 8578//10724 8620//10724 +f 8555//10724 8620//10724 8600//10724 +f 8589//10725 8621//10725 8590//10725 +f 8581//10726 8622//10726 8618//10726 +f 8581//10726 8590//10726 8622//10726 +f 8589//10720 8617//10720 8621//10720 +f 8586//10727 8609//10727 8623//10727 +f 8586//10727 8623//10727 8596//10727 +f 8595//10712 8624//10712 8610//10712 +f 8595//10728 8603//10728 8624//10728 +f 8590//10725 8621//10725 8622//10725 +f 8602//10729 8604//10729 8625//10729 +f 8602//10715 8625//10715 8613//10715 +f 8587//10730 8626//10730 8601//10730 +f 8587//10730 8614//10730 8626//10730 +f 8599//10713 8611//10713 8627//10713 +f 8580//10731 8628//10731 8612//10731 +f 8580//10731 8598//10731 8628//10731 +f 8599//10732 8627//10732 8607//10732 +f 8575//10718 8616//10718 8629//10718 +f 8575//10733 8629//10733 8584//10733 +f 8563//10734 8576//10734 8630//10734 +f 8563//10734 8630//10734 8615//10734 +f 8596//10735 8623//10735 8631//10735 +f 8596//10735 8631//10735 8604//10735 +f 8603//10728 8632//10728 8624//10728 +f 8603//10736 8601//10736 8632//10736 +f 8604//10729 8631//10729 8625//10729 +f 8601//10736 8626//10736 8632//10736 +f 8610//10723 8633//10723 8606//10723 +f 8610//10737 8624//10737 8633//10737 +f 8600//10738 8620//10738 8634//10738 +f 8600//10738 8634//10738 8609//10738 +f 8584//10739 8635//10739 8592//10739 +f 8584//10733 8629//10733 8635//10733 +f 8576//10740 8583//10740 8636//10740 +f 8576//10740 8636//10740 8630//10740 +f 8597//10741 8637//10741 8614//10741 +f 8597//10741 8619//10741 8637//10741 +f 8613//10742 8625//10742 8638//10742 +f 8613//10722 8638//10722 8611//10722 +f 8611//10743 8638//10743 8627//10743 +f 8594//10744 8639//10744 8619//10744 +f 8594//10744 8612//10744 8639//10744 +f 8607//10745 8640//10745 8617//10745 +f 8598//10746 8641//10746 8628//10746 +f 8598//10746 8608//10746 8641//10746 +f 8607//10732 8627//10732 8640//10732 +f 8578//10747 8605//10747 8642//10747 +f 8578//10747 8642//10747 8620//10747 +f 8606//10748 8633//10748 8616//10748 +f 8583//10749 8591//10749 8643//10749 +f 8583//10749 8643//10749 8636//10749 +f 8592//10739 8635//10739 8644//10739 +f 8592//10750 8644//10750 8591//10750 +f 8591//10750 8644//10750 8643//10750 +f 8624//10737 8645//10737 8633//10737 +f 8624//10751 8632//10751 8645//10751 +f 8609//10752 8634//10752 8646//10752 +f 8609//10752 8646//10752 8623//10752 +f 8617//10745 8640//10745 8647//10745 +f 8608//10753 8648//10753 8641//10753 +f 8608//10753 8618//10753 8648//10753 +f 8617//10754 8647//10754 8621//10754 +f 8614//10755 8649//10755 8626//10755 +f 8614//10755 8637//10755 8649//10755 +f 8625//10756 8631//10756 8650//10756 +f 8625//10742 8650//10742 8638//10742 +f 8621//10757 8651//10757 8622//10757 +f 8618//10758 8652//10758 8648//10758 +f 8618//10758 8622//10758 8652//10758 +f 8621//10754 8647//10754 8651//10754 +f 8632//10751 8653//10751 8645//10751 +f 8632//10759 8626//10759 8653//10759 +f 8623//10760 8646//10760 8654//10760 +f 8623//10760 8654//10760 8631//10760 +f 8627//10743 8638//10743 8655//10743 +f 8612//10761 8656//10761 8639//10761 +f 8612//10761 8628//10761 8656//10761 +f 8627//10762 8655//10762 8640//10762 +f 8622//10757 8651//10757 8652//10757 +f 8626//10759 8649//10759 8653//10759 +f 8631//10756 8654//10756 8650//10756 +f 8633//10748 8657//10748 8616//10748 +f 8633//10763 8645//10763 8657//10763 +f 8620//10764 8642//10764 8658//10764 +f 8620//10764 8658//10764 8634//10764 +f 8605//10765 8615//10765 8659//10765 +f 8605//10765 8659//10765 8642//10765 +f 8616//10766 8657//10766 8629//10766 +f 8638//10767 8650//10767 8655//10767 +f 8619//10768 8660//10768 8637//10768 +f 8619//10768 8639//10768 8660//10768 +f 8640//10769 8661//10769 8647//10769 +f 8628//10770 8662//10770 8656//10770 +f 8628//10770 8641//10770 8662//10770 +f 8640//10762 8655//10762 8661//10762 +f 8634//10771 8658//10771 8663//10771 +f 8634//10771 8663//10771 8646//10771 +f 8645//10772 8653//10772 8664//10772 +f 8645//10763 8664//10763 8657//10763 +f 8615//10773 8630//10773 8665//10773 +f 8615//10773 8665//10773 8659//10773 +f 8629//10766 8657//10766 8666//10766 +f 8629//10774 8666//10774 8635//10774 +f 8650//10775 8654//10775 8667//10775 +f 8650//10767 8667//10767 8655//10767 +f 8637//10776 8668//10776 8649//10776 +f 8637//10776 8660//10776 8668//10776 +f 8657//10777 8664//10777 8666//10777 +f 8642//10778 8659//10778 8669//10778 +f 8642//10778 8669//10778 8658//10778 +f 8646//10779 8663//10779 8670//10779 +f 8646//10779 8670//10779 8654//10779 +f 8653//10780 8649//10780 8671//10780 +f 8653//10772 8671//10772 8664//10772 +f 8639//10781 8672//10781 8660//10781 +f 8639//10781 8656//10781 8672//10781 +f 8655//10782 8667//10782 8661//10782 +f 8647//10769 8661//10769 8673//10769 +f 8641//10783 8674//10783 8662//10783 +f 8641//10783 8648//10783 8674//10783 +f 8647//10784 8673//10784 8651//10784 +f 8654//10775 8670//10775 8667//10775 +f 8649//10780 8668//10780 8671//10780 +f 8635//10785 8675//10785 8644//10785 +f 8635//10774 8666//10774 8675//10774 +f 8630//10786 8636//10786 8676//10786 +f 8630//10786 8676//10786 8665//10786 +f 8651//10787 8677//10787 8652//10787 +f 8648//10788 8678//10788 8674//10788 +f 8648//10788 8652//10788 8678//10788 +f 8651//10784 8673//10784 8677//10784 +f 8652//10787 8677//10787 8678//10787 +f 8636//10789 8643//10789 8679//10789 +f 8636//10789 8679//10789 8676//10789 +f 8644//10785 8675//10785 8680//10785 +f 8644//10790 8680//10790 8643//10790 +f 8664//10791 8671//10791 8681//10791 +f 8664//10777 8681//10777 8666//10777 +f 8658//10792 8669//10792 8682//10792 +f 8658//10792 8682//10792 8663//10792 +f 8659//10793 8665//10793 8683//10793 +f 8659//10793 8683//10793 8669//10793 +f 8666//10794 8681//10794 8675//10794 +f 8643//10790 8680//10790 8679//10790 +f 8661//10795 8684//10795 8673//10795 +f 8656//10796 8685//10796 8672//10796 +f 8656//10796 8662//10796 8685//10796 +f 8661//10782 8667//10782 8684//10782 +f 8660//10797 8686//10797 8668//10797 +f 8660//10797 8672//10797 8686//10797 +f 8667//10798 8670//10798 8684//10798 +f 8671//10791 8687//10791 8681//10791 +f 8671//10799 8668//10799 8687//10799 +f 8663//10800 8682//10800 8688//10800 +f 8663//10800 8688//10800 8670//10800 +f 8668//10799 8686//10799 8687//10799 +f 8670//10798 8688//10798 8684//10798 +f 8675//10801 8689//10801 8680//10801 +f 8675//10794 8681//10794 8689//10794 +f 8665//10802 8676//10802 8690//10802 +f 8665//10802 8690//10802 8683//10802 +f 8669//10803 8683//10803 8691//10803 +f 8669//10803 8691//10803 8682//10803 +f 8681//10804 8687//10804 8689//10804 +f 8673//10795 8684//10795 8692//10795 +f 8662//10805 8693//10805 8685//10805 +f 8662//10805 8674//10805 8693//10805 +f 8673//10806 8692//10806 8677//10806 +f 8676//10807 8679//10807 8694//10807 +f 8676//10807 8694//10807 8690//10807 +f 8680//10801 8689//10801 8695//10801 +f 8680//10808 8695//10808 8679//10808 +f 8679//10808 8695//10808 8694//10808 +f 8684//10809 8688//10809 8692//10809 +f 8672//10810 8696//10810 8686//10810 +f 8672//10810 8685//10810 8696//10810 +f 8677//10811 8697//10811 8678//10811 +f 8674//10812 8698//10812 8693//10812 +f 8674//10812 8678//10812 8698//10812 +f 8677//10806 8692//10806 8697//10806 +f 8678//10811 8697//10811 8698//10811 +f 8682//10813 8691//10813 8699//10813 +f 8682//10813 8699//10813 8688//10813 +f 8687//10804 8700//10804 8689//10804 +f 8687//10814 8686//10814 8700//10814 +f 8689//10815 8700//10815 8695//10815 +f 8683//10816 8690//10816 8701//10816 +f 8683//10816 8701//10816 8691//10816 +f 8688//10809 8699//10809 8692//10809 +f 8686//10814 8696//10814 8700//10814 +f 8685//10817 8702//10817 8696//10817 +f 8685//10817 8693//10817 8702//10817 +f 8692//10818 8699//10818 8697//10818 +f 8690//10819 8694//10819 8703//10819 +f 8690//10819 8703//10819 8701//10819 +f 8695//10815 8700//10815 8704//10815 +f 8695//10820 8704//10820 8694//10820 +f 8694//10820 8704//10820 8703//10820 +f 8700//10821 8696//10821 8704//10821 +f 8691//10822 8701//10822 8705//10822 +f 8691//10822 8705//10822 8699//10822 +f 8696//10821 8702//10821 8704//10821 +f 8699//10818 8705//10818 8697//10818 +f 8697//10823 8705//10823 8698//10823 +f 8693//10824 8706//10824 8702//10824 +f 8693//10824 8698//10824 8706//10824 +f 8698//10823 8705//10823 8706//10823 +f 8701//10825 8703//10825 8706//10825 +f 8701//10825 8706//10825 8705//10825 +f 8704//10826 8702//10826 8703//10826 +f 8703//10826 8702//10826 8706//10826 diff --git a/data/music/CMakeLists.txt b/data/music/CMakeLists.txt deleted file mode 100644 index 140cbf3..0000000 --- a/data/music/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################### -# tuxanci/data/music/CMakeLists.txt -############################################################################### -# DIRECTORIES -############################################################################### -# nada :P -############################################################################### -# CURRENT DIRECTORY FILES -############################################################################### -IF ( NOT NO_Audio ) - FILE ( GLOB files "*.ogg" ) - INSTALL ( FILES ${files} - DESTINATION ${CMAKE_INSTALL_DATADIR}/${APPNAME}/music/ ) -ENDIF ( NOT NO_Audio ) -###############################################################################
\ No newline at end of file diff --git a/data/music/menu.ogg b/data/music/menu.ogg Binary files differdeleted file mode 100644 index 0866ccb..0000000 --- a/data/music/menu.ogg +++ /dev/null diff --git a/data/music/theme.it b/data/music/theme.it Binary files differnew file mode 100644 index 0000000..c0f6d04 --- /dev/null +++ b/data/music/theme.it diff --git a/data/sound/CMakeLists.txt b/data/sound/CMakeLists.txt deleted file mode 100644 index 9e60aa7..0000000 --- a/data/sound/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################### -# tuxanci/data/sound/CMakeLists.txt -############################################################################### -# DIRECTORIES -############################################################################### -# nada :P -############################################################################### -# CURRENT DIRECTORY FILES -############################################################################### -IF ( NOT NO_Audio ) - FILE ( GLOB files "*.ogg" ) - INSTALL ( FILES ${files} - DESTINATION ${CMAKE_INSTALL_DATADIR}/${APPNAME}/sound/ ) -ENDIF ( NOT NO_Audio ) -###############################################################################
\ No newline at end of file diff --git a/data/sound/dead.ogg b/data/sound/dead.ogg Binary files differdeleted file mode 100644 index a78c53a..0000000 --- a/data/sound/dead.ogg +++ /dev/null diff --git a/data/sound/end.ogg b/data/sound/end.ogg Binary files differdeleted file mode 100644 index 613265e..0000000 --- a/data/sound/end.ogg +++ /dev/null diff --git a/data/sound/explozion.ogg b/data/sound/explozion.ogg Binary files differdeleted file mode 100644 index 6018394..0000000 --- a/data/sound/explozion.ogg +++ /dev/null diff --git a/data/sound/gun2.ogg b/data/sound/gun2.ogg Binary files differdeleted file mode 100644 index 2a360fd..0000000 --- a/data/sound/gun2.ogg +++ /dev/null diff --git a/data/sound/gun_lasser.ogg b/data/sound/gun_lasser.ogg Binary files differdeleted file mode 100644 index 56a7257..0000000 --- a/data/sound/gun_lasser.ogg +++ /dev/null diff --git a/data/sound/gun_revolver.ogg b/data/sound/gun_revolver.ogg Binary files differdeleted file mode 100644 index 3c2ea41..0000000 --- a/data/sound/gun_revolver.ogg +++ /dev/null diff --git a/data/sound/gun_scatter.ogg b/data/sound/gun_scatter.ogg Binary files differdeleted file mode 100644 index 32c267f..0000000 --- a/data/sound/gun_scatter.ogg +++ /dev/null diff --git a/data/sound/gun_tommy.ogg b/data/sound/gun_tommy.ogg Binary files differdeleted file mode 100644 index 79dcefd..0000000 --- a/data/sound/gun_tommy.ogg +++ /dev/null diff --git a/data/sound/item_bonus.ogg b/data/sound/item_bonus.ogg Binary files differdeleted file mode 100644 index c2b8ba8..0000000 --- a/data/sound/item_bonus.ogg +++ /dev/null diff --git a/data/sound/item_gun.ogg b/data/sound/item_gun.ogg Binary files differdeleted file mode 100644 index 1b749da..0000000 --- a/data/sound/item_gun.ogg +++ /dev/null diff --git a/data/sound/odraz-gun.ogg b/data/sound/odraz-gun.ogg Binary files differdeleted file mode 100644 index c007ae7..0000000 --- a/data/sound/odraz-gun.ogg +++ /dev/null diff --git a/data/sound/odraz-l.ogg b/data/sound/odraz-l.ogg Binary files differdeleted file mode 100644 index 258dbd5..0000000 --- a/data/sound/odraz-l.ogg +++ /dev/null diff --git a/data/sound/odraz-r.ogg b/data/sound/odraz-r.ogg Binary files differdeleted file mode 100644 index c885172..0000000 --- a/data/sound/odraz-r.ogg +++ /dev/null diff --git a/data/sound/put_mine.ogg b/data/sound/put_mine.ogg Binary files differdeleted file mode 100644 index b5fa822..0000000 --- a/data/sound/put_mine.ogg +++ /dev/null diff --git a/data/sound/smrt.ogg b/data/sound/smrt.ogg Binary files differdeleted file mode 100644 index 4981dba..0000000 --- a/data/sound/smrt.ogg +++ /dev/null diff --git a/data/sound/switch_gun.ogg b/data/sound/switch_gun.ogg Binary files differdeleted file mode 100644 index e453472..0000000 --- a/data/sound/switch_gun.ogg +++ /dev/null diff --git a/data/sound/teleport.ogg b/data/sound/teleport.ogg Binary files differdeleted file mode 100644 index 1d1ead1..0000000 --- a/data/sound/teleport.ogg +++ /dev/null diff --git a/data/sound/tuxanci-smrt.ogg b/data/sound/tuxanci-smrt.ogg Binary files differdeleted file mode 100644 index a78c53a..0000000 --- a/data/sound/tuxanci-smrt.ogg +++ /dev/null diff --git a/data/tuxanci.1 b/data/tuxanci.1 deleted file mode 100644 index 365f355..0000000 --- a/data/tuxanci.1 +++ /dev/null @@ -1,17 +0,0 @@ -.\" The Tuxanci man page. -.\" Contact tomas.chvatal@gmail.com to correct errors or omissions. -.TH man 6 "24 December 2008" "1.0" "Tuxanci man page" -.SH NAME -tuxanci - Tuxanci is first tux shooter inspired by game Bulanci. - -.SH AUTHOR -.nf -Dušan Ďurech (Oroborus) <dusan.d@centrum.sk> -Jiří Helebrant (helb) <helb@helb.cz> -Michal Zima (xHire) <xhire@tuxportal.cz> -Tomáš Chvátal (scarab) <tomas.chvatal@gmail.com> -Roman Kabelka (CJ Neti) <neti@cjneti.net> -.fi -.SH HISTORY -2008-10 \- Tuxanci 0.21.0 -2008-08 \- Tuxanci 0.20.0 diff --git a/data/tuxanci.desktop b/data/tuxanci.desktop deleted file mode 100644 index c09adfe..0000000 --- a/data/tuxanci.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=tuxanci -Comment=Tuxanci first tux shooter inspired by game Bulanci. -Exec=tuxanci -Terminal=false -Type=Application -Icon=tuxanci -StartupNotify=true -Categories=Game;ActionGame; diff --git a/data/tuxanci.svg b/data/tuxanci.svg deleted file mode 100644 index 927d3ec..0000000 --- a/data/tuxanci.svg +++ /dev/null @@ -1,915 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="311.32681" - height="193.36264" - id="svg2" - inkscape:label="Pozadí" - sodipodi:version="0.32" - inkscape:version="0.46" - version="1.0" - sodipodi:docname="tuxanci.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs2620"> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3490" - id="radialGradient4632" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - cx="309.25818" - cy="253.70972" - fx="309.25818" - fy="253.70972" - r="26.521585" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="linearGradient4630" - gradientUnits="userSpaceOnUse" - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3444" - id="linearGradient4628" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3412" - id="radialGradient4626" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3382" - id="radialGradient4624" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2454" - id="radialGradient4622" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - cx="314.18878" - cy="307.83929" - fx="314.18878" - fy="307.83929" - r="34.697639" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient4620" - gradientUnits="userSpaceOnUse" - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4618" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4616" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient4614" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - cx="300.21915" - cy="330.18991" - fx="300.21915" - fy="330.18991" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient4612" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - cx="306.686" - cy="329.11215" - fx="306.686" - fy="329.11215" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4610" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - cx="268.75073" - cy="281.56763" - fx="268.75073" - fy="281.56763" - r="47.562981" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3490" - id="radialGradient4604" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - cx="309.25818" - cy="253.70972" - fx="309.25818" - fy="253.70972" - r="26.521585" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="linearGradient4602" - gradientUnits="userSpaceOnUse" - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3444" - id="linearGradient4600" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3412" - id="radialGradient4598" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3382" - id="radialGradient4596" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2454" - id="radialGradient4594" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - cx="314.18878" - cy="307.83929" - fx="314.18878" - fy="307.83929" - r="34.697639" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient4592" - gradientUnits="userSpaceOnUse" - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4590" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4588" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient4586" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - cx="300.21915" - cy="330.18991" - fx="300.21915" - fy="330.18991" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient4584" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - cx="306.686" - cy="329.11215" - fx="306.686" - fy="329.11215" - r="16.087479" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4582" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - cx="268.75073" - cy="281.56763" - fx="268.75073" - fy="281.56763" - r="47.562981" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4483"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop4485" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop4487" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3490"> - <stop - style="stop-color:#808080;stop-opacity:1;" - offset="0" - id="stop3492" /> - <stop - style="stop-color:#808080;stop-opacity:0;" - offset="1" - id="stop3494" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3490" - id="radialGradient4578" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5215287,0.4233054,-0.3146444,-0.3876544,558.82887,262.29058)" - cx="309.25818" - cy="253.70972" - fx="309.25818" - fy="253.70972" - r="26.521585" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="linearGradient4576" - gradientUnits="userSpaceOnUse" - x1="319.82306" - y1="266.90137" - x2="321.8956" - y2="294.39261" /> - <linearGradient - id="linearGradient3444"> - <stop - id="stop3446" - offset="0" - style="stop-color:#7a7a7a;stop-opacity:1;" /> - <stop - id="stop3448" - offset="1" - style="stop-color:#2a2a2a;stop-opacity:1;" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3444" - id="linearGradient4574" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.4420738,0,0,1.4136784,776.41188,-112.0683)" - x1="322.00742" - y1="270.74054" - x2="323.14963" - y2="284.1427" /> - <linearGradient - id="linearGradient3412"> - <stop - id="stop3414" - offset="0" - style="stop-color:#ffffff;stop-opacity:0.19285715;" /> - <stop - id="stop3416" - offset="1" - style="stop-color:#ffdd55;stop-opacity:0;" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3412" - id="radialGradient4572" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.1405466,-0.4083978,-1.3815025,1.0858381,910.20702,58.634989)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <linearGradient - id="linearGradient3382"> - <stop - style="stop-color:#ffffff;stop-opacity:0.55000001;" - offset="0" - id="stop3384" /> - <stop - style="stop-color:#ffdd55;stop-opacity:0;" - offset="1" - id="stop3386" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3382" - id="radialGradient4570" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1071446,0.462478,2.1232802,-0.4882279,-538.24557,357.08959)" - cx="314.9783" - cy="383.21033" - fx="314.9783" - fy="383.21033" - r="25.671762" /> - <linearGradient - id="linearGradient2454"> - <stop - style="stop-color:#ffcc00;stop-opacity:1;" - offset="0" - id="stop2456" /> - <stop - style="stop-color:#ffcc00;stop-opacity:0;" - offset="1" - id="stop2458" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2454" - id="radialGradient4568" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.2575551e-3,1.2067088,-1.2389483,-5.3995161e-3,701.78446,-59.326932)" - cx="314.18878" - cy="307.83929" - fx="314.18878" - fy="307.83929" - r="34.697639" /> - <linearGradient - id="linearGradient3278"> - <stop - id="stop3280" - offset="0" - style="stop-color:#ffcc00;stop-opacity:1;" /> - <stop - id="stop3282" - offset="1" - style="stop-color:#cc7a00;stop-opacity:1;" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3278" - id="linearGradient4566" - gradientUnits="userSpaceOnUse" - x1="324.98563" - y1="327.61322" - x2="325.83279" - y2="378.64795" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4564" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4562" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.958896,0.2675357,-0.2492595,-0.6754105,685.88096,435.33294)" - cx="310.80884" - cy="309.07062" - fx="310.80884" - fy="309.07062" - r="7.2399807" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient4560" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0771341,0.1576576,-4.5345645e-2,0.6507152,-7.0919978,69.734943)" - cx="300.21915" - cy="330.18991" - fx="300.21915" - fy="330.18991" - r="16.087479" /> - <linearGradient - id="linearGradient3346"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop3348" /> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="1" - id="stop3350" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3346" - id="radialGradient4558" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0726343,-0.2097408,6.7176864e-2,0.6507152,-42.744493,182.41089)" - cx="306.686" - cy="329.11215" - fx="306.686" - fy="329.11215" - r="16.087479" /> - <linearGradient - id="linearGradient3260"> - <stop - style="stop-color:#666666;stop-opacity:1;" - offset="0" - id="stop3262" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="1" - id="stop3264" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3260" - id="radialGradient4556" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.641368,1.1145436,-1.2801625,-0.7366928,851.00609,201.24773)" - cx="268.75073" - cy="281.56763" - fx="268.75073" - fy="281.56763" - r="47.562981" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 526.18109 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="744.09448 : 526.18109 : 1" - inkscape:persp3d-origin="372.04724 : 350.78739 : 1" - id="perspective2626" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4483" - id="radialGradient2769" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.3861793,-0.3179904,0.3749104,0.5765624,-153.09864,-39.640975)" - cx="301.08719" - cy="515.88568" - fx="301.08719" - fy="515.88568" - r="65.12442" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4483" - id="radialGradient2790" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.4379406,6.2624944e-2,-0.1660869,0.8000038,93.472824,-256.85649)" - cx="559.03674" - cy="482.57309" - fx="559.03674" - fy="482.57309" - r="65.12442" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="0.7" - inkscape:cx="195.04288" - inkscape:cy="76.677059" - inkscape:document-units="px" - inkscape:current-layer="g2810" - showgrid="false" - inkscape:window-width="1280" - inkscape:window-height="747" - inkscape:window-x="0" - inkscape:window-y="28" /> - <metadata - id="metadata2623"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Vrstva 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(-67.396792,-73.22983)"> - <g - id="g2810" - transform="translate(10.101525,32.324881)"> - <g - id="g2868" - transform="translate(10.101525,8.0812202)"> - <g - id="g3872" - transform="matrix(0.9150898,0.4062163,-0.4282378,0.8481519,157.61445,-241.48985)"> - <path - transform="matrix(0.6882369,-7.5302481e-3,-1.0406728e-2,0.7876371,51.619489,30.132613)" - d="M 472.13252,390.32748 A 77.289841,50.710529 0 1 1 317.55284,390.32748 A 77.289841,50.710529 0 1 1 472.13252,390.32748 z" - sodipodi:ry="50.710529" - sodipodi:rx="77.289841" - sodipodi:cy="390.32748" - sodipodi:cx="394.84268" - id="path3874" - style="opacity:1;fill:#000000;fill-opacity:1" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="csssc" - id="path3876" - d="M 365.74864,327.91006 C 365.74864,349.91773 345.27315,372.35905 319.01839,372.35905 C 292.76362,372.35905 270.62268,349.91773 270.62268,327.91006 C 270.62268,305.90239 289.84906,273.88467 316.10383,273.88467 C 342.35859,273.88467 365.74864,305.90239 365.74864,327.91006 z" - style="fill:url(#radialGradient4556);fill-opacity:1" /> - <path - transform="matrix(1.0138481,0,0,0.7208741,-7.2445917,80.839045)" - d="M 321.74956,317.23438 A 16.087479,17.486389 0 1 1 289.5746,317.23438 A 16.087479,17.486389 0 1 1 321.74956,317.23438 z" - sodipodi:ry="17.486389" - sodipodi:rx="16.087479" - sodipodi:cy="317.23438" - sodipodi:cx="305.66208" - id="path3878" - style="opacity:1;fill:url(#radialGradient4558);fill-opacity:1" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4560);fill-opacity:1" - id="path3880" - sodipodi:cx="305.66208" - sodipodi:cy="317.23438" - sodipodi:rx="16.087479" - sodipodi:ry="17.486389" - d="M 321.74956,317.23438 A 16.087479,17.486389 0 1 1 289.5746,317.23438 A 16.087479,17.486389 0 1 1 321.74956,317.23438 z" - transform="matrix(1.0708886,0,0,0.7930302,1.8438299,56.686911)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4562);fill-opacity:1" - id="path3882" - sodipodi:cx="313.38773" - sodipodi:cy="313.14539" - sodipodi:rx="7.2399807" - sodipodi:ry="6.0579429" - d="M 320.62771,313.14539 A 7.2399807,6.0579429 0 1 1 306.14775,313.14539 A 7.2399807,6.0579429 0 1 1 320.62771,313.14539 z" - transform="matrix(1.122449,0,0,1.2909313,-27.988686,-94.598747)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4564);fill-opacity:1" - id="path3884" - sodipodi:cx="313.38773" - sodipodi:cy="313.14539" - sodipodi:rx="7.2399807" - sodipodi:ry="6.0579429" - d="M 320.62771,313.14539 A 7.2399807,6.0579429 0 1 1 306.14775,313.14539 A 7.2399807,6.0579429 0 1 1 320.62771,313.14539 z" - transform="matrix(1.0115466,0,0,1.1015857,-6.488929,-32.560137)" /> - <path - id="path3886" - d="M 318.25,314.4375 C 301.26162,314.4375 287.46874,321.0169 287.46875,329.125 C 287.46875,329.23072 287.49534,329.33231 287.5,329.4375 C 282.65487,331.8884 279.78125,334.92483 279.78125,338.21875 C 279.78125,346.32683 297.44648,367.59375 318.875,367.59375 C 340.30352,367.59375 357.40625,346.32682 357.40625,338.21875 C 357.40625,334.77607 354.27973,331.63008 349.03125,329.125 C 349.03125,329.11446 349.0313,329.10428 349.03125,329.09375 C 348.99547,321.00017 335.2163,314.43749 318.25,314.4375 z" - style="fill:url(#linearGradient4566);fill-opacity:1" /> - <path - style="fill:url(#radialGradient4568);fill-opacity:1" - d="M 318.42834,314.4375 C 303.24105,314.4375 290.91047,320.56027 290.91048,328.10565 C 290.91048,328.20403 290.93425,328.29857 290.93842,328.39646 C 286.60696,330.67726 284.038,333.50295 284.038,336.56827 C 284.038,344.11362 299.83039,363.90456 318.98707,363.90456 C 338.14376,363.90456 353.43328,344.11362 353.43328,336.56827 C 353.43328,333.36452 350.63823,330.43687 345.94619,328.10565 C 345.94619,328.09584 345.94623,328.08637 345.94619,328.07657 C 345.91421,320.5447 333.59589,314.43749 318.42834,314.4375 z" - id="path3888" /> - <path - sodipodi:nodetypes="ccc" - id="path3890" - d="M 294.05132,354.01593 C 307.36599,369.76095 337.0072,370.0159 354.40443,342.62485 C 338.45347,356.99755 319.48216,365.53902 294.05132,354.01593 z" - style="fill:#550000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path3892" - d="M 320.76534,314.59948 C 312.27548,316.59648 295.1791,322.79901 293.50338,329.35126 L 287.31924,329.55535 C 289.12411,317.43899 307.93285,314.44494 320.76534,314.59948 z" - style="fill:url(#radialGradient4570);fill-opacity:1;fill-rule:evenodd" /> - <path - style="fill:url(#radialGradient4572);fill-opacity:1;fill-rule:evenodd" - d="M 324.75905,353.90986 C 334.15313,349.79484 346.82934,337.43442 345.25604,328.50485 L 348.80588,330.12792 C 344.78242,342.35681 336.27221,350.73257 324.75905,353.90986 z" - id="path3894" - sodipodi:nodetypes="cccc" /> - <g - transform="translate(-0.4163651,-1.1672698)" - id="g3896"> - <path - style="fill:url(#linearGradient4574);fill-opacity:1;fill-rule:evenodd" - d="M 303.21875,254.71875 C 303.21875,254.71875 309.89223,266.08819 306.84774,277.74085 C 311.50005,277.57887 313.37082,281.96078 314.81931,284.73471 L 317.59375,277 C 312.25674,265.87773 303.21875,254.71875 303.21875,254.71875 z" - id="path3898" - sodipodi:nodetypes="ccccc" /> - <path - id="path3900" - d="M 325.7701,276.40799 C 323.65892,268.1652 326.27146,262.28979 326.27146,262.28979 C 326.27146,262.28979 314.23393,278.42053 314.5979,285.59697 C 319.79451,279.64452 321.95345,278.447 325.7701,276.40799 z" - style="fill:url(#linearGradient4576);fill-opacity:1;fill-rule:evenodd" - sodipodi:nodetypes="cccc" /> - <path - style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 303.125,254.625 C 309.05735,263.07821 313.99391,270.21536 317,278 L 317.75,276.0625 C 313.75103,267.31147 306.92126,259.02887 303.125,254.625 z" - id="path3902" /> - <path - style="fill:#999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 326.29146,262.15155 C 322.61088,266.72622 314.74014,277.09575 314.53648,285.75261 L 315.61414,284.45639 C 316.94182,276.57666 321.04509,270.18387 326.29146,262.15155 z" - id="path3904" - sodipodi:nodetypes="cccc" /> - </g> - <path - sodipodi:nodetypes="ccsscsccscc" - id="path3906" - d="M 326.02107,293.2888 C 321.17749,293.48314 316.9971,294.68774 314.07825,297.57845 C 311.23669,295.73698 307.47443,295.4091 303.51192,295.56811 C 294.85564,295.91545 288.0553,301.85966 288.33427,308.81228 C 288.34787,309.15117 288.38838,309.47822 288.43446,309.80907 C 288.81365,303.30094 295.25365,297.16827 303.48802,296.83786 C 307.08372,296.69357 310.51437,298.29989 313.22307,299.83843 L 314.5276,300.84944 C 317.43644,297.49222 322.78423,294.60605 328.08304,294.39343 C 333.65922,294.16966 337.93502,296.8998 341.0792,300.31571 C 338.16715,295.90972 332.4804,293.0296 326.02107,293.2888 z" - style="opacity:1;fill:url(#radialGradient4578);fill-opacity:1" /> - </g> - <path - style="fill:url(#radialGradient2790);fill-opacity:1" - d="M 194.22771,67.863982 C 160.51251,73.210133 134.36131,95.83672 120.41243,119.38195 C 112.25411,126.84451 105.99176,135.85471 103.15079,145.93561 C 97.774469,165.01311 105.34948,183.77025 119.86161,197.59867 C 134.37378,211.4271 155.80919,221.17069 181.07438,224.74353 C 206.3391,228.31629 231.26447,225.14468 251.9048,216.44064 C 272.54513,207.73657 289.45072,192.83878 294.82912,173.75395 C 299.10344,158.58679 294.89852,143.64855 285.87245,131.32118 C 278.39188,102.98541 256.1887,73.436119 218.4748,67.736577 C 210.29488,66.500378 202.08361,66.618284 194.22771,67.863982 z" - id="path4472" /> - <g - transform="matrix(1.1168022,-0.2522852,0.2555787,1.1028979,-334.87818,-123.31421)" - id="g3908"> - <path - transform="matrix(0.6882369,-7.5302481e-3,-1.0406728e-2,0.7876371,51.619489,30.132613)" - d="M 472.13252,390.32748 A 77.289841,50.710529 0 1 1 317.55284,390.32748 A 77.289841,50.710529 0 1 1 472.13252,390.32748 z" - sodipodi:ry="50.710529" - sodipodi:rx="77.289841" - sodipodi:cy="390.32748" - sodipodi:cx="394.84268" - id="path3910" - style="opacity:1;fill:#000000;fill-opacity:1" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="csssc" - id="path3912" - d="M 365.74864,327.91006 C 365.74864,349.91773 345.27315,372.35905 319.01839,372.35905 C 292.76362,372.35905 270.62268,349.91773 270.62268,327.91006 C 270.62268,305.90239 289.84906,273.88467 316.10383,273.88467 C 342.35859,273.88467 365.74864,305.90239 365.74864,327.91006 z" - style="fill:url(#radialGradient4582);fill-opacity:1" /> - <path - transform="matrix(1.0138481,0,0,0.7208741,-7.2445917,80.839045)" - d="M 321.74956,317.23438 A 16.087479,17.486389 0 1 1 289.5746,317.23438 A 16.087479,17.486389 0 1 1 321.74956,317.23438 z" - sodipodi:ry="17.486389" - sodipodi:rx="16.087479" - sodipodi:cy="317.23438" - sodipodi:cx="305.66208" - id="path3914" - style="opacity:1;fill:url(#radialGradient4584);fill-opacity:1" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4586);fill-opacity:1" - id="path3916" - sodipodi:cx="305.66208" - sodipodi:cy="317.23438" - sodipodi:rx="16.087479" - sodipodi:ry="17.486389" - d="M 321.74956,317.23438 A 16.087479,17.486389 0 1 1 289.5746,317.23438 A 16.087479,17.486389 0 1 1 321.74956,317.23438 z" - transform="matrix(1.0708886,0,0,0.7930302,1.8438299,56.686911)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4588);fill-opacity:1" - id="path3918" - sodipodi:cx="313.38773" - sodipodi:cy="313.14539" - sodipodi:rx="7.2399807" - sodipodi:ry="6.0579429" - d="M 320.62771,313.14539 A 7.2399807,6.0579429 0 1 1 306.14775,313.14539 A 7.2399807,6.0579429 0 1 1 320.62771,313.14539 z" - transform="matrix(1.122449,0,0,1.2909313,-27.988686,-94.598747)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4590);fill-opacity:1" - id="path3920" - sodipodi:cx="313.38773" - sodipodi:cy="313.14539" - sodipodi:rx="7.2399807" - sodipodi:ry="6.0579429" - d="M 320.62771,313.14539 A 7.2399807,6.0579429 0 1 1 306.14775,313.14539 A 7.2399807,6.0579429 0 1 1 320.62771,313.14539 z" - transform="matrix(1.0115466,0,0,1.1015857,-6.488929,-32.560137)" /> - <path - id="path3922" - d="M 318.25,314.4375 C 301.26162,314.4375 287.46874,321.0169 287.46875,329.125 C 287.46875,329.23072 287.49534,329.33231 287.5,329.4375 C 282.65487,331.8884 279.78125,334.92483 279.78125,338.21875 C 279.78125,346.32683 297.44648,367.59375 318.875,367.59375 C 340.30352,367.59375 357.40625,346.32682 357.40625,338.21875 C 357.40625,334.77607 354.27973,331.63008 349.03125,329.125 C 349.03125,329.11446 349.0313,329.10428 349.03125,329.09375 C 348.99547,321.00017 335.2163,314.43749 318.25,314.4375 z" - style="fill:url(#linearGradient4592);fill-opacity:1" /> - <path - style="fill:url(#radialGradient4594);fill-opacity:1" - d="M 318.42834,314.4375 C 303.24105,314.4375 290.91047,320.56027 290.91048,328.10565 C 290.91048,328.20403 290.93425,328.29857 290.93842,328.39646 C 286.60696,330.67726 284.038,333.50295 284.038,336.56827 C 284.038,344.11362 299.83039,363.90456 318.98707,363.90456 C 338.14376,363.90456 353.43328,344.11362 353.43328,336.56827 C 353.43328,333.36452 350.63823,330.43687 345.94619,328.10565 C 345.94619,328.09584 345.94623,328.08637 345.94619,328.07657 C 345.91421,320.5447 333.59589,314.43749 318.42834,314.4375 z" - id="path3924" /> - <path - sodipodi:nodetypes="ccc" - id="path3926" - d="M 294.05132,354.01593 C 307.36599,369.76095 337.0072,370.0159 354.40443,342.62485 C 338.45347,356.99755 319.48216,365.53902 294.05132,354.01593 z" - style="fill:#550000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path3928" - d="M 320.76534,314.59948 C 312.27548,316.59648 295.1791,322.79901 293.50338,329.35126 L 287.31924,329.55535 C 289.12411,317.43899 307.93285,314.44494 320.76534,314.59948 z" - style="fill:url(#radialGradient4596);fill-opacity:1;fill-rule:evenodd" /> - <path - style="fill:url(#radialGradient4598);fill-opacity:1;fill-rule:evenodd" - d="M 324.75905,353.90986 C 334.15313,349.79484 346.82934,337.43442 345.25604,328.50485 L 348.80588,330.12792 C 344.78242,342.35681 336.27221,350.73257 324.75905,353.90986 z" - id="path3930" - sodipodi:nodetypes="cccc" /> - <g - transform="translate(-0.4163651,-1.1672698)" - id="g3932"> - <path - style="fill:url(#linearGradient4600);fill-opacity:1;fill-rule:evenodd" - d="M 303.21875,254.71875 C 303.21875,254.71875 309.89223,266.08819 306.84774,277.74085 C 311.50005,277.57887 313.37082,281.96078 314.81931,284.73471 L 317.59375,277 C 312.25674,265.87773 303.21875,254.71875 303.21875,254.71875 z" - id="path3934" - sodipodi:nodetypes="ccccc" /> - <path - id="path3936" - d="M 325.7701,276.40799 C 323.65892,268.1652 326.27146,262.28979 326.27146,262.28979 C 326.27146,262.28979 314.23393,278.42053 314.5979,285.59697 C 319.79451,279.64452 321.95345,278.447 325.7701,276.40799 z" - style="fill:url(#linearGradient4602);fill-opacity:1;fill-rule:evenodd" - sodipodi:nodetypes="cccc" /> - <path - style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 303.125,254.625 C 309.05735,263.07821 313.99391,270.21536 317,278 L 317.75,276.0625 C 313.75103,267.31147 306.92126,259.02887 303.125,254.625 z" - id="path3938" /> - <path - style="fill:#999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 326.29146,262.15155 C 322.61088,266.72622 314.74014,277.09575 314.53648,285.75261 L 315.61414,284.45639 C 316.94182,276.57666 321.04509,270.18387 326.29146,262.15155 z" - id="path3940" - sodipodi:nodetypes="cccc" /> - </g> - <path - sodipodi:nodetypes="ccsscsccscc" - id="path3942" - d="M 326.02107,293.2888 C 321.17749,293.48314 316.9971,294.68774 314.07825,297.57845 C 311.23669,295.73698 307.47443,295.4091 303.51192,295.56811 C 294.85564,295.91545 288.0553,301.85966 288.33427,308.81228 C 288.34787,309.15117 288.38838,309.47822 288.43446,309.80907 C 288.81365,303.30094 295.25365,297.16827 303.48802,296.83786 C 307.08372,296.69357 310.51437,298.29989 313.22307,299.83843 L 314.5276,300.84944 C 317.43644,297.49222 322.78423,294.60605 328.08304,294.39343 C 333.65922,294.16966 337.93502,296.8998 341.0792,300.31571 C 338.16715,295.90972 332.4804,293.0296 326.02107,293.2888 z" - style="opacity:1;fill:url(#radialGradient4604);fill-opacity:1" /> - </g> - <path - id="path4491" - d="M 210.8499,50.231154 C 177.1347,55.903901 150.9835,79.912746 137.03461,104.89638 C 128.8763,112.81483 122.61395,122.37547 119.77297,133.0722 C 114.39666,153.31515 121.97166,173.21818 136.4838,187.8914 C 150.99597,202.56462 172.43137,212.90343 197.69657,216.69455 C 222.96128,220.48558 247.88666,217.1202 268.52699,207.88443 C 289.16731,198.64861 306.0729,182.8407 311.45131,162.58998 C 315.72563,146.49626 311.52071,130.64543 302.49464,117.56497 C 295.01407,87.498153 272.81089,56.143685 235.09699,50.095964 C 226.91706,48.784251 218.7058,48.90937 210.8499,50.231154 z" - style="fill:url(#radialGradient2769);fill-opacity:1" /> - <g - transform="matrix(1.3718769,0.5478271,-0.5478271,1.3718769,-51.034319,-480.72107)" - id="g3952"> - <path - sodipodi:type="arc" - style="opacity:1;fill:#000000;fill-opacity:1" - id="path3954" - sodipodi:cx="394.84268" - sodipodi:cy="390.32748" - sodipodi:rx="77.289841" - sodipodi:ry="50.710529" - d="M 472.13252,390.32748 A 77.289841,50.710529 0 1 1 317.55284,390.32748 A 77.289841,50.710529 0 1 1 472.13252,390.32748 z" - transform="matrix(0.6882369,-7.5302481e-3,-1.0406728e-2,0.7876371,51.619489,30.132613)" /> - <path - style="fill:url(#radialGradient4610);fill-opacity:1" - d="M 365.74864,327.91006 C 365.74864,349.91773 345.27315,372.35905 319.01839,372.35905 C 292.76362,372.35905 270.62268,349.91773 270.62268,327.91006 C 270.62268,305.90239 289.84906,273.88467 316.10383,273.88467 C 342.35859,273.88467 365.74864,305.90239 365.74864,327.91006 z" - id="path3956" - sodipodi:nodetypes="csssc" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#radialGradient4612);fill-opacity:1" - id="path3958" - sodipodi:cx="305.66208" - sodipodi:cy="317.23438" - sodipodi:rx="16.087479" - sodipodi:ry="17.486389" - d="M 321.74956,317.23438 A 16.087479,17.486389 0 1 1 289.5746,317.23438 A 16.087479,17.486389 0 1 1 321.74956,317.23438 z" - transform="matrix(1.0138481,0,0,0.7208741,-7.2445917,80.839045)" /> - <path - transform="matrix(1.0708886,0,0,0.7930302,1.8438299,56.686911)" - d="M 321.74956,317.23438 A 16.087479,17.486389 0 1 1 289.5746,317.23438 A 16.087479,17.486389 0 1 1 321.74956,317.23438 z" - sodipodi:ry="17.486389" - sodipodi:rx="16.087479" - sodipodi:cy="317.23438" - sodipodi:cx="305.66208" - id="path3960" - style="opacity:1;fill:url(#radialGradient4614);fill-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.122449,0,0,1.2909313,-27.988686,-94.598747)" - d="M 320.62771,313.14539 A 7.2399807,6.0579429 0 1 1 306.14775,313.14539 A 7.2399807,6.0579429 0 1 1 320.62771,313.14539 z" - sodipodi:ry="6.0579429" - sodipodi:rx="7.2399807" - sodipodi:cy="313.14539" - sodipodi:cx="313.38773" - id="path3962" - style="opacity:1;fill:url(#radialGradient4616);fill-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.0115466,0,0,1.1015857,-6.488929,-32.560137)" - d="M 320.62771,313.14539 A 7.2399807,6.0579429 0 1 1 306.14775,313.14539 A 7.2399807,6.0579429 0 1 1 320.62771,313.14539 z" - sodipodi:ry="6.0579429" - sodipodi:rx="7.2399807" - sodipodi:cy="313.14539" - sodipodi:cx="313.38773" - id="path3964" - style="opacity:1;fill:url(#radialGradient4618);fill-opacity:1" - sodipodi:type="arc" /> - <path - style="fill:url(#linearGradient4620);fill-opacity:1" - d="M 318.25,314.4375 C 301.26162,314.4375 287.46874,321.0169 287.46875,329.125 C 287.46875,329.23072 287.49534,329.33231 287.5,329.4375 C 282.65487,331.8884 279.78125,334.92483 279.78125,338.21875 C 279.78125,346.32683 297.44648,367.59375 318.875,367.59375 C 340.30352,367.59375 357.40625,346.32682 357.40625,338.21875 C 357.40625,334.77607 354.27973,331.63008 349.03125,329.125 C 349.03125,329.11446 349.0313,329.10428 349.03125,329.09375 C 348.99547,321.00017 335.2163,314.43749 318.25,314.4375 z" - id="path3966" /> - <path - id="path3968" - d="M 318.42834,314.4375 C 303.24105,314.4375 290.91047,320.56027 290.91048,328.10565 C 290.91048,328.20403 290.93425,328.29857 290.93842,328.39646 C 286.60696,330.67726 284.038,333.50295 284.038,336.56827 C 284.038,344.11362 299.83039,363.90456 318.98707,363.90456 C 338.14376,363.90456 353.43328,344.11362 353.43328,336.56827 C 353.43328,333.36452 350.63823,330.43687 345.94619,328.10565 C 345.94619,328.09584 345.94623,328.08637 345.94619,328.07657 C 345.91421,320.5447 333.59589,314.43749 318.42834,314.4375 z" - style="fill:url(#radialGradient4622);fill-opacity:1" /> - <path - style="fill:#550000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 294.05132,354.01593 C 307.36599,369.76095 337.0072,370.0159 354.40443,342.62485 C 338.45347,356.99755 319.48216,365.53902 294.05132,354.01593 z" - id="path3970" - sodipodi:nodetypes="ccc" /> - <path - style="fill:url(#radialGradient4624);fill-opacity:1;fill-rule:evenodd" - d="M 320.76534,314.59948 C 312.27548,316.59648 295.1791,322.79901 293.50338,329.35126 L 287.31924,329.55535 C 289.12411,317.43899 307.93285,314.44494 320.76534,314.59948 z" - id="path3972" - sodipodi:nodetypes="cccc" /> - <path - sodipodi:nodetypes="cccc" - id="path3974" - d="M 324.75905,353.90986 C 334.15313,349.79484 346.82934,337.43442 345.25604,328.50485 L 348.80588,330.12792 C 344.78242,342.35681 336.27221,350.73257 324.75905,353.90986 z" - style="fill:url(#radialGradient4626);fill-opacity:1;fill-rule:evenodd" /> - <g - id="g3976" - transform="translate(-0.4163651,-1.1672698)"> - <path - sodipodi:nodetypes="ccccc" - id="path3978" - d="M 303.21875,254.71875 C 303.21875,254.71875 309.89223,266.08819 306.84774,277.74085 C 311.50005,277.57887 313.37082,281.96078 314.81931,284.73471 L 317.59375,277 C 312.25674,265.87773 303.21875,254.71875 303.21875,254.71875 z" - style="fill:url(#linearGradient4628);fill-opacity:1;fill-rule:evenodd" /> - <path - sodipodi:nodetypes="cccc" - style="fill:url(#linearGradient4630);fill-opacity:1;fill-rule:evenodd" - d="M 325.7701,276.40799 C 323.65892,268.1652 326.27146,262.28979 326.27146,262.28979 C 326.27146,262.28979 314.23393,278.42053 314.5979,285.59697 C 319.79451,279.64452 321.95345,278.447 325.7701,276.40799 z" - id="path3980" /> - <path - id="path3982" - d="M 303.125,254.625 C 309.05735,263.07821 313.99391,270.21536 317,278 L 317.75,276.0625 C 313.75103,267.31147 306.92126,259.02887 303.125,254.625 z" - style="fill:#808080;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path3984" - d="M 326.29146,262.15155 C 322.61088,266.72622 314.74014,277.09575 314.53648,285.75261 L 315.61414,284.45639 C 316.94182,276.57666 321.04509,270.18387 326.29146,262.15155 z" - style="fill:#999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <path - style="opacity:1;fill:url(#radialGradient4632);fill-opacity:1" - d="M 326.02107,293.2888 C 321.17749,293.48314 316.9971,294.68774 314.07825,297.57845 C 311.23669,295.73698 307.47443,295.4091 303.51192,295.56811 C 294.85564,295.91545 288.0553,301.85966 288.33427,308.81228 C 288.34787,309.15117 288.38838,309.47822 288.43446,309.80907 C 288.81365,303.30094 295.25365,297.16827 303.48802,296.83786 C 307.08372,296.69357 310.51437,298.29989 313.22307,299.83843 L 314.5276,300.84944 C 317.43644,297.49222 322.78423,294.60605 328.08304,294.39343 C 333.65922,294.16966 337.93502,296.8998 341.0792,300.31571 C 338.16715,295.90972 332.4804,293.0296 326.02107,293.2888 z" - id="path3986" - sodipodi:nodetypes="ccsscsccscc" /> - </g> - </g> - </g> - </g> -</svg> diff --git a/em/tuxanci2.css b/em/tuxanci2.css new file mode 100644 index 0000000..978c5c4 --- /dev/null +++ b/em/tuxanci2.css @@ -0,0 +1,31 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +body { + margin: 0; + background: black; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; +} + +canvas { + display: block; +}
\ No newline at end of file diff --git a/em/tuxanci2.html b/em/tuxanci2.html new file mode 100644 index 0000000..ca777e9 --- /dev/null +++ b/em/tuxanci2.html @@ -0,0 +1,32 @@ +<!-- + -- Tuxánci 2 - A first person shooter + -- Copyright (C) 2007-2011 Tuxánci Development Team + -- Copyright (C) 2025-2026 Connor Thomson + -- + -- This program is free software: you can redistribute it and/or modify + -- it under the terms of the GNU General Public License as published by + -- the Free Software Foundation, either version 3 of the License, or + -- (at your option) any later version. + -- + -- This program is distributed in the hope that it will be useful, + -- but WITHOUT ANY WARRANTY; without even the implied warranty of + -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + -- GNU General Public License for more details. + -- + -- You should have received a copy of the GNU General Public License + -- along with this program. If not, see <https://www.gnu.org/licenses/>. + --> + +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>Tuxánci</title> + <link rel="stylesheet" href="tuxanci2.css"> +</head> +<body> + <canvas id="canvas"></canvas> + + {{{ SCRIPT }}} +</body> +</html>
\ No newline at end of file diff --git a/handbook/codestyle b/handbook/codestyle deleted file mode 100644 index 0e6a765..0000000 --- a/handbook/codestyle +++ /dev/null @@ -1,57 +0,0 @@ -~~~ Code style ~~~ -- based on K&R conventions -- line length: 80 characters -- comments: /* like this */ - - -%%% If statements -if (var <= 64) { - return TRUE; -} else if (var - vor >= 64 && - var + vor <= 128) { - return TRUE; -} else { - return FALSE; -} - - -%%% Switch statement -/* between case blocks could be one empty line if they are enough big */ -switch (var) { - case 10: - return 3; - break; - case 20: - return 30; - break; - default: - return 0; - break; -} - - -%%% Header files -#ifndef FOO_H -#define FOO_H - -#include <foolib.h> -#include "bar.h" - -#define FOO 1 -#define BAR 2 - -typedef struct foobar_struct { - int foo; - char *bar; -} foobar_t; - -typedef struct { - int foo; - char *bar; -} barfoo_t; - -/* breaking lines only when longer than 80 characters or for special purposes */ -extern foobar_t *foo_new(int faa, int fae, - char *bor, char *ber); - -#endif /* FOO_H */ diff --git a/handbook/handbook b/handbook/handbook deleted file mode 100644 index b60f2ea..0000000 --- a/handbook/handbook +++ /dev/null @@ -1,34 +0,0 @@ -~~~ Developer's Handbook ~~~ -* Basic rules -- always discuss your problem with other developers or with maintainer of the appropriate section -- be present on developer's IRC -- try not to break the code in master -- if you do one large thing that surely will break the code, create your own branch -- this Handbook is maintained by xHire - if you want to add or modify something, ask him first! - -* Directories -- client/ client code; mainly using SDL -- server/ server code; mustn't use SDL -- base/ code in common for client and server; doesn't use SDL -- widget/ GUI code -- screen/ code for designing each one screen of GUI -- audio/ code that handles audio - sounds and music -- modules/ code of all modules -- net/ code that operates networking - -* Filenames -- keep letters small -- if you need more words in a filename, then use this character for separating them: _ - -* Identificators -- if you need more words in an identificator, then use this character for separating them: _ -- don't use global variables - -* Translation strings -- keep them clear and following standard scheme -- if a filename is to be mentioned, don't use any quotes and try to situate it to the end of the string - -* Writing a module - -* Creating a package -- let us know and we will tell you everything :c) diff --git a/include/audio.h b/include/audio.h new file mode 100644 index 0000000..59867c5 --- /dev/null +++ b/include/audio.h @@ -0,0 +1,34 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifdef ENABLE_AUDIO +#ifndef TA_AUDIO_H +#define TA_AUDIO_H + +#include "ta_alc.h" + +extern ALCdevice *ta_audio_device; +extern ALCcontext * ta_audio_context; + +void ta_audio_init(void); +void ta_audio_update(void); +void ta_audio_destroy(void); + +#endif // TA_AUDIO_H +#endif // ENABLE_AUDIO
\ No newline at end of file diff --git a/include/color.h b/include/color.h new file mode 100644 index 0000000..e5c69d6 --- /dev/null +++ b/include/color.h @@ -0,0 +1,35 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_COLOR_H +#define TA_COLOR_H + +typedef struct { + int red; + int green; + int blue; + int alpha; +} ta_color; + +extern ta_color ta_color_black; +extern ta_color ta_color_white; + +void ta_color_init(void); + +#endif // TA_COLOR_H
\ No newline at end of file diff --git a/include/events.h b/include/events.h new file mode 100644 index 0000000..68267fd --- /dev/null +++ b/include/events.h @@ -0,0 +1,25 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_EVENTS_H +#define TA_EVENTS_H + +void ta_events_update(void); + +#endif // TA_EVENTS_H
\ No newline at end of file diff --git a/include/exit_key.h b/include/exit_key.h new file mode 100644 index 0000000..bd05645 --- /dev/null +++ b/include/exit_key.h @@ -0,0 +1,30 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_EXIT_KEY_H +#define TA_EXIT_KEY_H + +#include <stdbool.h> + +extern bool ta_exit_key_ignore; + +void ta_exit_key_callback(void); +void ta_exit_key_init(void); + +#endif // TA_EXIT_KEY_H
\ No newline at end of file diff --git a/include/files.h b/include/files.h new file mode 100644 index 0000000..b5b4a9d --- /dev/null +++ b/include/files.h @@ -0,0 +1,67 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_FILES_H +#define TA_FILES_H + +extern unsigned char *file_text_vert_slang_spv_start; +extern unsigned char *file_text_vert_slang_spv_end; +extern unsigned int file_text_vert_slang_spv_size; + +extern unsigned char *file_text_frag_slang_spv_start; +extern unsigned char *file_text_frag_slang_spv_end; +extern unsigned int file_text_frag_slang_spv_size; + +extern unsigned char *file_shape_vert_slang_spv_start; +extern unsigned char *file_shape_vert_slang_spv_end; +extern unsigned int file_shape_vert_slang_spv_size; + +extern unsigned char *file_shape_frag_slang_spv_start; +extern unsigned char *file_shape_frag_slang_spv_end; +extern unsigned int file_shape_frag_slang_spv_size; + +extern unsigned char *file_data_images_background_png_start; +extern unsigned char *file_data_images_background_png_end; +extern unsigned int file_data_images_background_png_size; + +extern unsigned char *file_data_fonts_DejaVuSans_ttf_start; +extern unsigned char *file_data_fonts_DejaVuSans_ttf_end; +extern unsigned int file_data_fonts_DejaVuSans_ttf_size; + +extern unsigned char *file_data_music_theme_it_start; +extern unsigned char *file_data_music_theme_it_end; +extern unsigned int file_data_music_theme_it_size; + +extern unsigned char *file_data_models_teapot_obj_start; +extern unsigned char *file_data_models_teapot_obj_end; +extern unsigned int file_data_models_teapot_obj_size; + +extern unsigned char *file_obj_vert_slang_spv_start; +extern unsigned char *file_obj_vert_slang_spv_end; +extern unsigned int file_obj_vert_slang_spv_size; + +extern unsigned char *file_obj_frag_slang_spv_start; +extern unsigned char *file_obj_frag_slang_spv_end; +extern unsigned int file_obj_frag_slang_spv_size; + +extern unsigned char *file_data_models_dounut_obj_start; +extern unsigned char *file_data_models_dounut_obj_end; +extern unsigned int file_data_models_dounut_obj_size; + +#endif // TA_FILES_H
\ No newline at end of file diff --git a/include/forever.h b/include/forever.h new file mode 100644 index 0000000..a1a4336 --- /dev/null +++ b/include/forever.h @@ -0,0 +1,27 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_FOREVER_H +#define TA_FOREVER_H + +typedef void (*ta_loop)(void); + +void ta_forever(ta_loop loop); + +#endif // TA_FOREVER_H
\ No newline at end of file diff --git a/include/gpu.h b/include/gpu.h new file mode 100644 index 0000000..873c2d5 --- /dev/null +++ b/include/gpu.h @@ -0,0 +1,39 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_GPU_H +#define TA_GPU_H + +#include <stdbool.h> +#include "ta_sdl.h" + +extern SDL_GPUDevice *ta_gpu_device; +extern SDL_GPUGraphicsPipeline *ta_gpu_text_pipeline; +extern SDL_GPUTexture *ta_gpu_text_texture; +extern SDL_GPUSampler *ta_gpu_text_sampler; +extern Uint32 ta_gpu_text_texture_width; +extern Uint32 ta_gpu_text_texture_height; +extern SDL_GPUSampleCount ta_gpu_sample_count; +extern SDL_GPUTextureFormat ta_gpu_swapchain_format; + +void ta_gpu_init(void); +void ta_gpu_start_frame(void); +void ta_gpu_end_frame(void); + +#endif // TA_RENDERER_H
\ No newline at end of file diff --git a/include/keyboard.h b/include/keyboard.h new file mode 100644 index 0000000..b47d4a3 --- /dev/null +++ b/include/keyboard.h @@ -0,0 +1,29 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_KEYBOARD_H +#define TA_KEYBOARD_H + +typedef void (*ta_key_callback_fn)(void); + +void ta_keyboard_set_callback(int key, ta_key_callback_fn callback); +void ta_keyboard_dispatch(int key); +void ta_keyboard_shutdown(void); + +#endif // TA_KEYBOARD_H
\ No newline at end of file diff --git a/include/logging.h b/include/logging.h new file mode 100644 index 0000000..d5385e2 --- /dev/null +++ b/include/logging.h @@ -0,0 +1,25 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2010 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_LOGGING_H +#define TA_LOGGING_H + +void ta_log(const char *format, ...); + +#endif // TA_LOGGING_H
\ No newline at end of file diff --git a/include/main.h b/include/main.h new file mode 100644 index 0000000..007f84c --- /dev/null +++ b/include/main.h @@ -0,0 +1,25 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_MAIN_H +#define TA_MAIN_H + +void ta_main_exit(int code); + +#endif // TA_MAIN_H
\ No newline at end of file diff --git a/include/mouse.h b/include/mouse.h new file mode 100644 index 0000000..ad600ef --- /dev/null +++ b/include/mouse.h @@ -0,0 +1,31 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_MOUSE_H +#define TA_MOUSE_H + +#include <stdbool.h> + +extern int ta_mouse_x; +extern int ta_mouse_y; +extern bool ta_mouse_click; + +void ta_mouse_update(void); + +#endif // TA_MOUSE_H
\ No newline at end of file diff --git a/include/obj.h b/include/obj.h new file mode 100644 index 0000000..190b459 --- /dev/null +++ b/include/obj.h @@ -0,0 +1,39 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_OBJ_H +#define TA_OBJ_H + +#include <stdbool.h> +#include <stddef.h> + +typedef struct ta_obj_vertex { + float position[3]; + float normal[3]; +} ta_obj_vertex; + +typedef struct ta_obj_mesh { + ta_obj_vertex *vertices; + size_t vertex_count; +} ta_obj_mesh; + +bool ta_obj_parse(const unsigned char *data, size_t size, ta_obj_mesh *mesh); +void ta_obj_free(ta_obj_mesh *mesh); + +#endif // TA_OBJ_H
\ No newline at end of file diff --git a/include/obj_model.h b/include/obj_model.h new file mode 100644 index 0000000..6f01ecf --- /dev/null +++ b/include/obj_model.h @@ -0,0 +1,41 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_OBJ_MODEL_H +#define TA_OBJ_MODEL_H + +#include "obj.h" +#include "ta_sdl.h" + +typedef struct ta_obj_model { + SDL_GPUGraphicsPipeline *pipeline; + SDL_GPUBuffer *vertex_buffer; + ta_obj_mesh mesh; + Uint32 vertex_count; + bool uploaded; + float position[3]; + float rotation[3]; +} ta_obj_model; + +bool ta_obj_model_init(ta_obj_model *model, SDL_GPUDevice *device, const unsigned char *data, size_t size, SDL_GPUTextureFormat color_format, SDL_GPUTextureFormat depth_format, SDL_GPUSampleCount sample_count); +void ta_obj_model_upload(ta_obj_model *model, SDL_GPUCommandBuffer *command_buffer, SDL_GPUDevice *device); +void ta_obj_model_render(const ta_obj_model *model, SDL_GPUCommandBuffer *command_buffer, SDL_GPURenderPass *render_pass, int window_width, int window_height); +void ta_obj_model_destroy(ta_obj_model *model, SDL_GPUDevice *device); + +#endif // TA_OBJ_MODEL_H
\ No newline at end of file diff --git a/include/scale.h b/include/scale.h new file mode 100644 index 0000000..8173760 --- /dev/null +++ b/include/scale.h @@ -0,0 +1,27 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_SCALE_H +#define TA_SCALE_H + +int X(float x); +int Y(float y); +int S(float scale); + +#endif // TA_SCALE_H
\ No newline at end of file diff --git a/include/screen.h b/include/screen.h new file mode 100644 index 0000000..0f6d9ba --- /dev/null +++ b/include/screen.h @@ -0,0 +1,36 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_SCREEN_H +#define TA_SCREEN_H + +#include "ta_sdl.h" + +typedef enum { + NONE, + MAIN_MENU +} ta_screens; + +extern ta_screens ta_screen_current; + +void ta_screen_update(void); +void ta_screen_upload(SDL_GPUCommandBuffer *command_buffer); +void ta_screen_render(SDL_GPUCommandBuffer *command_buffer, SDL_GPURenderPass *render_pass); + +#endif // TA_SCREEN_H
\ No newline at end of file diff --git a/include/screens/main_menu.h b/include/screens/main_menu.h new file mode 100644 index 0000000..93eb8c6 --- /dev/null +++ b/include/screens/main_menu.h @@ -0,0 +1,29 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_SCREENS_MAIN_MENU_H +#define TA_SCREENS_MAIN_MENU_H + +#include "ta_sdl.h" + +void ta_screens_main_menu_update(void); +void ta_screens_main_menu_upload(SDL_GPUCommandBuffer *command_buffer); +void ta_screens_main_menu_render(SDL_GPUCommandBuffer *command_buffer, SDL_GPURenderPass *render_pass); + +#endif // TA_SCREENS_MAIN_MENU_H
\ No newline at end of file diff --git a/include/ta_al.h b/include/ta_al.h new file mode 100644 index 0000000..59c32cc --- /dev/null +++ b/include/ta_al.h @@ -0,0 +1,27 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifdef ENABLE_AUDIO +#ifndef TA_AL_H +#define TA_AL_H + +#include <AL/al.h> + +#endif // TA_AL_H +#endif // ENABLE_AUDIO
\ No newline at end of file diff --git a/include/ta_alc.h b/include/ta_alc.h new file mode 100644 index 0000000..42b0a6b --- /dev/null +++ b/include/ta_alc.h @@ -0,0 +1,32 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifdef ENABLE_AUDIO +#ifndef TA_ALC_H +#define TA_ALC_H + +#include <AL/alc.h> + +ALCdevice *ta_alc_open_device(void); +ALCcontext *ta_alc_create_context(ALCdevice *device, ALCint* attrlist); +void ta_alc_make_context_current(ALCcontext *context); +void ta_alc_close_device(ALCdevice *device); + +#endif // TA_ALC_H +#endif // ENABLE_AUDIO
\ No newline at end of file diff --git a/include/ta_openmpt.h b/include/ta_openmpt.h new file mode 100644 index 0000000..f92e1e9 --- /dev/null +++ b/include/ta_openmpt.h @@ -0,0 +1,30 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifdef ENABLE_AUDIO +#ifndef TA_OPENMPT_H +#define TA_OPENMPT_H + +#include <libopenmpt/libopenmpt.h> + +openmpt_module *ta_openmpt_load_module(unsigned char *start, size_t size); +void ta_openmpt_set_module_repeat_count(openmpt_module *module, int count); + +#endif // TA_OPENMPT_H +#endif // ENABLE_AUDIO
\ No newline at end of file diff --git a/include/ta_sdl.h b/include/ta_sdl.h new file mode 100644 index 0000000..8ac9b21 --- /dev/null +++ b/include/ta_sdl.h @@ -0,0 +1,48 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_SDL_H +#define TA_SDL_H + +#include <SDL3/SDL.h> +#include <SDL3_ttf/SDL_ttf.h> + +void ta_sdl_init(SDL_InitFlags flags); +void ta_sdl_shutdown(void); +SDL_Window *ta_sdl_create_window(const char *title, int width, int height); +SDL_IOStream *ta_sdl_io_from_file(const char *file, const char *mode); +SDL_IOStream *ta_sdl_io_from_mem(void *mem, size_t size); +void ta_sdl_get_window_size(SDL_Window *window, int *width, int *height); +SDL_GPUDevice *ta_sdl_create_gpu_device(void); +void ta_sdl_claim_window_for_gpu_device(SDL_GPUDevice *device, SDL_Window *window); +SDL_GPUShader *ta_sdl_create_gpu_shader(SDL_GPUDevice *device, const SDL_GPUShaderCreateInfo *createinfo); +SDL_GPUGraphicsPipeline *ta_sdl_create_gpu_graphics_pipeline(SDL_GPUDevice *device, const SDL_GPUGraphicsPipelineCreateInfo *createinfo); +SDL_GPUTexture *ta_sdl_create_gpu_texture(SDL_GPUDevice *device, const SDL_GPUTextureCreateInfo *createinfo); +SDL_GPUSampler *ta_sdl_create_gpu_sampler(SDL_GPUDevice *device, const SDL_GPUSamplerCreateInfo *createinfo); +SDL_GPUTransferBuffer *ta_sdl_create_gpu_transfer_buffer(SDL_GPUDevice *device, const SDL_GPUTransferBufferCreateInfo *createinfo); +void *ta_sdl_map_gpu_transfer_buffer(SDL_GPUDevice *device, SDL_GPUTransferBuffer *transfer_buffer, bool cycle); +SDL_GPUCommandBuffer *ta_sdl_acquire_gpu_command_buffer(SDL_GPUDevice *device); +SDL_GPUCopyPass *ta_sdl_begin_gpu_copy_pass(SDL_GPUCommandBuffer *command_buffer); +SDL_GPURenderPass *ta_sdl_begin_gpu_render_pass(SDL_GPUCommandBuffer *command_buffer, const SDL_GPUColorTargetInfo *color_target_infos, Uint32 num_color_targets, const SDL_GPUDepthStencilTargetInfo *depth_stencil_target_info); +void ta_sdl_wait_and_acquire_gpu_swapchain_texture(SDL_GPUCommandBuffer *commandbuffer, SDL_Window *window, SDL_GPUTexture **swapchain_texture); +void ta_sdl_submit_gpu_command_buffer(SDL_GPUCommandBuffer *command_buffer); +SDL_Surface *ta_sdl_convert_surface(SDL_Surface *surface, SDL_PixelFormat format); +void ta_sdl_set_window_fullscreen(SDL_Window *window, bool fullscreen); + +#endif // TA_SDL_H
\ No newline at end of file diff --git a/include/ta_sdl_ttf.h b/include/ta_sdl_ttf.h new file mode 100644 index 0000000..f3b6a8d --- /dev/null +++ b/include/ta_sdl_ttf.h @@ -0,0 +1,32 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_SDL_TTF_H +#define TA_SDL_TTF_H + +#include <SDL3/SDL.h> +#include <SDL3_ttf/SDL_ttf.h> + +void ta_sdl_ttf_init(void); +void ta_sdl_ttf_shutdown(void); +TTF_Font *ta_sdl_ttf_open_font(SDL_IOStream *src); +void ta_sdl_ttf_set_font_size(TTF_Font *font, float ptsize); +SDL_Surface *ta_sdl_ttf_render_text_blended(TTF_Font *font, const char *text, size_t length, SDL_Color color); + +#endif // TA_SDL_TTF_H
\ No newline at end of file diff --git a/include/teapot.h b/include/teapot.h new file mode 100644 index 0000000..b19bd20 --- /dev/null +++ b/include/teapot.h @@ -0,0 +1,30 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_TEAPOT_H +#define TA_TEAPOT_H + +#include "ta_sdl.h" + +void ta_teapot_init(void); +void ta_teapot_upload(SDL_GPUCommandBuffer *command_buffer); +void ta_teapot_render(SDL_GPUCommandBuffer *command_buffer, SDL_GPURenderPass *render_pass); +void ta_teapot_shutdown(void); + +#endif // TA_TEAPOT_H
\ No newline at end of file diff --git a/include/text.h b/include/text.h new file mode 100644 index 0000000..2f4d559 --- /dev/null +++ b/include/text.h @@ -0,0 +1,44 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_TEXT_H +#define TA_TEXT_H + +#include "ta_sdl.h" +#include "color.h" + +typedef struct { + int x, y; + float size; + ta_color color; + const char *text; +} ta_text; + +extern SDL_Surface *ta_text_surface; +extern int ta_text_current_x; +extern int ta_text_current_y; + +void ta_text_init(void); +void ta_text_draw(int x, int y, float size, ta_color color, const char *format, ...); +void ta_text_clear(void); +void ta_text_shutdown(void); +void ta_gpu_upload_text(SDL_GPUCommandBuffer *command_buffer); +void ta_text_render(SDL_GPUCommandBuffer *command_buffer, SDL_GPURenderPass *render_pass); + +#endif // TA_TEXT_H diff --git a/include/version.h.in b/include/version.h.in new file mode 100644 index 0000000..3266765 --- /dev/null +++ b/include/version.h.in @@ -0,0 +1,30 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_VERSION_H +#define TA_VERSION_H + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +#define TA_VERSION "@PROJECT_VERSION@" +#define TA_BUILD_DATE __DATE__ +#define TA_BUILD_TIME __TIME__ + +#endif // TA_VERSION_H
\ No newline at end of file diff --git a/include/window.h b/include/window.h new file mode 100644 index 0000000..f249e93 --- /dev/null +++ b/include/window.h @@ -0,0 +1,35 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef TA_WINDOW_H +#define TA_WINDOW_H + +#include <stdbool.h> +#include "ta_sdl.h" + +extern int ta_window_width; +extern int ta_window_height; +extern bool ta_window_fullscreen; +extern SDL_Window *ta_window; + +void ta_window_init(void); +void ta_window_update(void); +void ta_window_shutdown(void); + +#endif // TA_WINDOW_H
\ No newline at end of file diff --git a/packaging/gentoo/tuxanci-0.20.0-r1.ebuild b/packaging/gentoo/tuxanci-0.20.0-r1.ebuild deleted file mode 100644 index 70115bb..0000000 --- a/packaging/gentoo/tuxanci-0.20.0-r1.ebuild +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 1999-2008 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -inherit games cmake-utils - -DESCRIPTION="Tuxanci is first cushion shooter based on well-known Czech game Bulanci." -HOMEPAGE="http://www.tuxanci.org/" -SRC_URI="http://download.${PN}.org/${PV}/${P}-src.tar.bz2" -LICENSE="GPL-2" - -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="alsa dedicated" -# alsa is used only when building client - -DEPEND="!dedicated? ( - >=media-libs/libsdl-1.2.10 - >=media-libs/sdl-ttf-2.0.7 - >=media-libs/sdl-image-1.2.6-r1 - alsa? ( - >=media-libs/sdl-mixer-1.2.7 - ) - )" - -S="${WORKDIR}/pkgs/${P}-src/" - -src_unpack() { - unpack ${A} - cd "${S}" - # setting proper prefix - sed -i \ - -e "s:PATH_DIR\tPREFIX:PATH_DIR:" src/base/path.h \ - || die "sed config.h failed!" - sed -i \ - -e "s:share/tuxanci:"${GAMES_DATADIR}"/"${PN}":" src/base/path.h \ - || die "sed config.h failed!" - sed -i \ - -e "s:CMAKE_INSTALL_DATADIR share/:CMAKE_INSTALL_DATADIR /usr/share/games/:" CMakeLists.txt \ - || die "sed CMakeLists.txt failed!" -} - -src_compile() { - local mycmakeargs - use alsa || mycmakeargs="${mycmakeargs} -DNO_Audio=1" - use dedicated && mycmakeargs="${mycmakeargs} -DServer=1" - mycmakeargs="${mycmakeargs} -DPREFIX=\\\"/usr/games\\\" -DCMAKE_INSTALL_PREFIX:PATH=/usr/games" - cmake-utils_src_compile -} - -src_install() { - cmake-utils_src_install - prepgamesdirs -} diff --git a/packaging/gentoo/tuxanci-0.21.0.ebuild b/packaging/gentoo/tuxanci-0.21.0.ebuild deleted file mode 100644 index 09ab6d4..0000000 --- a/packaging/gentoo/tuxanci-0.21.0.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2008 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/games-arcade/tuxanci/tuxanci-0.21.0.ebuild,v 1.2 2008/10/27 08:56:52 scarabeus Exp $ - -EAPI="1" - -inherit cmake-utils games - -DESCRIPTION="Tuxanci is first cushion shooter inspired by game Bulanci." -HOMEPAGE="http://www.tuxanci.org/" -SRC_URI="http://download.${PN}.org/${P}.tar.bz2" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="alsa debug dedicated nls" -# alsa is used only when building client - -RDEPEND="!dedicated? ( - >=media-libs/libsdl-1.2.10 - >=media-libs/sdl-ttf-2.0.7 - >=media-libs/sdl-image-1.2.6-r1 - alsa? ( - >=media-libs/sdl-mixer-1.2.7 - ) - ) - dev-libs/zziplib" -DEPEND="${RDEPEND} - >=dev-util/cmake-2.6.0 - nls? ( sys-devel/gettext )" - -src_configure() { - local mycmakeargs - use alsa || mycmakeargs="${mycmakeargs} -DNO_Audio=1" - use debug && mycmakeargs="${mycmakeargs} -DDebug=1" - use dedicated && mycmakeargs="${mycmakeargs} -DServer=1" - use nls && mycmakeargs="${mycmakeargs} -DNLS=1" - # This cant be quoted due to cmake nature. - # Read as: quote it and it wont compile. - mycmakeargs="${mycmakeargs} -DCMAKE_INSTALL_PREFIX=${GAMES_PREFIX} - -DCMAKE_DATA_PATH=${GAMES_DATADIR} - -DCMAKE_LOCALE_PATH=${GAMES_DATADIR_BASE}/locale/ - -DCMAKE_DOC_PATH=${GAMES_DATADIR_BASE}/doc/ - -DCMAKE_ETC_PATH=${GAMES_SYSCONFDIR} -DLIB_INSTALL_DIR=$(games_get_libdir)" - cmake-utils_src_configure -} - -src_install() { - local MY_PN - use dedicated && MY_PN=${PN}-server || MY_PN=${PN} - - cmake-utils_src_install - dosym "${GAMES_BINDIR}"/${MY_PN}-${PV} "${GAMES_BINDIR}"/${MY_PN} - doicon data/${PN}.svg - # we compile our desktop file - domenu data/${PN}.desktop - prepgamesdirs -} diff --git a/packaging/gentoo/tuxanci-9999.ebuild b/packaging/gentoo/tuxanci-9999.ebuild deleted file mode 100644 index 5af5965..0000000 --- a/packaging/gentoo/tuxanci-9999.ebuild +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright 1999-2009 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -EAPI="2" - -[[ ${PV} = 9999* ]] && GIT="git" -EGIT_REPO_URI="git://repo.or.cz/tuxanci.git" - -inherit games cmake-utils ${GIT} - -DESCRIPTION="Tuxanci is first tux shooter inspired by game Bulanci." -HOMEPAGE="http://www.tuxanci.org/" -if [[ ${PV} = 9999* ]]; then - SRC_URI="" - KEYWORDS="" -else - SRC_URI="http://download.${PN}.org/${P}.tar.bz2" - KEYWORDS="~amd64 ~x86" -fi -LICENSE="GPL-2" - -SLOT="0" -IUSE="debug dedicated +ipv6 nls opengl physfs +sound" - -# >=x11-libs/cairo-1.8.8[X,svg] -RDEPEND=" - !dedicated? ( - >=media-libs/fontconfig-2.7.0 - media-libs/libsdl[X,opengl?] - media-libs/sdl-ttf[X] - >=media-libs/sdl-image-1.2.10[png] - sound? ( - >=media-libs/sdl-mixer-1.2.11[vorbis] - ) - ) - physfs? ( >=dev-games/physfs-2.0.0[zip] ) - !physfs? ( >=dev-libs/libzip-0.9 )" -DEPEND="${RDEPEND} - dev-util/pkgconfig - nls? ( sys-devel/gettext )" - -src_configure() { - local mycmakeargs+=( - $(cmake-utils_use_with sound AUDIO) - $(cmake-utils_use_build dedicated SERVER) - $(cmake-utils_use_with nls) - $(cmake-utils_use_with opengl) - $(cmake-utils_use_with physfs) - $(cmake-utils_use_enable ipv6) - $(cmake-utils_use_enable debug) - ) - - mycmakeargs+=( - "-DCMAKE_INSTALL_PREFIX=${GAMES_PREFIX}" - "-DCMAKE_INSTALL_ICONDIR=${GAMES_DATADIR_BASE}/pixmaps/" - "-DCMAKE_INSTALL_DESKTOPDIR=${GAMES_DATADIR_BASE}/applications/" - "-DCMAKE_DATA_PATH=${GAMES_DATADIR}" - "-DCMAKE_LOCALE_PATH=${GAMES_DATADIR_BASE}/locale/" - "-DCMAKE_DOC_PATH=${GAMES_DATADIR_BASE}/doc/${PF}" - "-DCMAKE_CONF_PATH=${GAMES_SYSCONFDIR}" - ) - - cmake-utils_src_configure -} - -src_install() { - cmake-utils_src_install - - prepgamesdirs -} diff --git a/packaging/linux/build.sh b/packaging/linux/build.sh deleted file mode 100755 index 4007316..0000000 --- a/packaging/linux/build.sh +++ /dev/null @@ -1,170 +0,0 @@ -#!/usr/bin/env sh -# Created by Tomas Chvatal (Scarabeus_IV) -############################################################################### -echo "<******************************>" -echo "<GNU/Linux TUXANCI Packager>" -echo "<******************************>" -# This tool is only for tuxanci game developers, don't use it for yourself -############################################################################### -# HELP -############################################################################### -if [[ $1 == "--help" ]]; then - echo "usage: $0 -v version -a arch -r revision" - echo "-v 0.2.5 \"compile version 0.2.5\"" - echo "-a i386 \"compile 32b ELF (64b for 64b ELF)\"" - echo "!if no version is specified svn version is created!" - echo "!if no arch is specified 64b is used!" - echo "!if no revision is specified HEAD is used!" - exit 1 -fi -############################################################################### -# ARGUMENT PASSING -############################################################################### -VERSION="dev" -ARCH="amd64" -SVN_REV="" -while getopts v:a: arg ; do - case $arg in - v) VERSION=${OPTARG};; - a) ARCH=${OPTARG};; - esac -done -############################################################################### -# VARIABLES -############################################################################### -APPNAME="tuxanci" -GIT="git://repo.or.cz/tuxanci.git" -BUNDLE_PREFIX="${HOME}"/tmp/tuxanci-bundle -LOG="${BUNDLE_PREFIX}"/linux.log -SOURCE="${BUNDLE_PREFIX}"/"${APPNAME}-source-${VERSION}" -D="${BUNDLE_PREFIX}"/"${APPNAME}" -OPTIONS="client server" -ERROR_MESSAGE="Check ${LOG}, cause i was unable to finish my stuff correctly!" -CMAKE_PARAMS="-DWITH_NLS=1 -DTUXANCI_VERSION=${VERSION} -DCMAKE_BUILD_TYPE=Release" -############################################################################### -# PREPARING ENVIROMENT -############################################################################### -mkdir -p "${BUNDLE_PREFIX}" || { echo "I was unable to create working directory" && exit 1 ; } -rm -rf "${BUNDLE_PREFIX}"/* -cd "${BUNDLE_PREFIX}" -touch "${LOG}" || ( echo "I was unable to create log file"; exit 1 ) -echo "" > "${LOG}" # LOG CLEANUP -echo "<Downloading files from GIT repository>" -echo "<******************************>" -git clone ${GIT} ${SOURCE} >> "${LOG}" || { echo "${ERROR_MESSAGE}" && exit 1 ; } -rm -rf ${SOURCE}/.git -rm -rf ${SOURCE}/packaging -############################################################################### -# CREATE SOURCE PACKAGE -############################################################################### -tar cjf "${APPNAME}-source-${VERSION}".tar.bz2 "${APPNAME}-source-${VERSION}"/ -############################################################################### -# DEBIAN PACKAGE ENVIROMENT CREATION -############################################################################### -for Y in ${OPTIONS}; do -DEST_DEB="${BUNDLE_PREFIX}"/"${APPNAME}-${Y}"-deb -echo "<******************************>" -echo "<Building ${Y} ${ARCH} DEBPKG>" -echo "<******************************>" -mkdir "${DEST_DEB}" -mkdir -p "${DEST_DEB}"/DEBIAN -mkdir -p "${DEST_DEB}"/usr/share/applications/ -# create desktop file and other debian related -echo "2.0" > "${DEST_DEB}"/DEBIAN/debian-binary -echo "[Desktop Entry] -Name=${APPNAME}-${Y}-${VERSION} -Comment=game tuxanci -Exec=${APPNAME}-${Y}-${VERSION} -Terminal=false -Type=Application -Icon=/usr/games/share/doc/${APPNAME}-${Y}-${VERSION}/tuxanci.svg -Encoding=UTF-8 -Categories=Game;" > "${DEST_DEB}"/usr/share/applications/tuxanci.desktop -echo "Package: ${APPNAME}-${Y}-${VERSION} -Version: 0.2.1 -Section: Game -Priority: optional -Depends: libc6 (>= 2.2.4-4), libsdl1.2debian (>= 1.2), libsdl-image1.2 (>= 1.2), libsdl-mixer1.2 (>= 1.2), libsdl-ttf2.0-0 (>= 2.0) -Architecture: ${ARCH} -Installed-Size: 4993 -Maintainer: Tomas Chvatal <tomas.chvatal@gmail.com> -Description: Game tuxanci next generation version 0.2.1 - . - http://www.tuxanci.org" > "${DEST_DEB}"/DEBIAN/control -############################################################################### -# BUILDING DEBIAN PACKAGES -############################################################################### -CMAKE_PARAMS="${CMAKE_PARAMS} -DCMAKE_INSTALL_PREFIX=/usr/games/" -if [[ ${Y} == "server" ]]; then - CMAKE_PARAMS="${CMAKE_PARAMS} -DWITH_SERVER=1" -fi -cd "${SOURCE}" -rm CMakeCache.txt || ( echo "I was unable to cleanup CMakeCache.txt"; exit 1; ) -make clean >> "${LOG}" -cmake . ${CMAKE_PARAMS} >> "${LOG}" || ( echo "${ERROR_MESSAGE}"; exit 1 ) -make >> "${LOG}" || ( echo "${ERROR_MESSAGE}"; exit 1 ) -make install DESTDIR="${DEST_DEB}" >> "${LOG}" || ( echo "${ERROR_MESSAGE}"; exit 1 ) -cd "${DEST_DEB}"/ -`which strip` --strip-unneeded usr/games/lib/${APPNAME}-${VERSION}/* usr/games/bin/* >> "${LOG}" -md5sum `find . -type f | awk '/.\// { print substr($0, 3) }'` > DEBIAN/md5sums -cd "${BUNDLE_PREFIX}" -Y_N=$(echo ${Y} |tr s S |tr c C) -dpkg-deb -b "${DEST_DEB}" ${APPNAME}${Y_N}_${VERSION}-1_${ARCH}.deb -rm -rf "${DEST_DEB}" -done -CMAKE_PARAMS="-DBundle=1 -DWITH_NLS=1 -DTUXANCI_VERSION=${VERSION} -DCMAKE_BUILD_TYPE=Release" # duplicating due to override -############################################################################### -# BUILDING BINARIES -############################################################################### -for Y in ${OPTIONS}; do -echo "<******************************>" -echo "<Building ${Y} ${ARCH}>" -echo "<******************************>" -if [[ ${Y} == "server" ]]; then - CMAKE_PARAMS="${CMAKE_PARAMS} -DWITH_SERVER=1" -fi -cd "${SOURCE}" -rm CMakeCache.txt || ( echo "I was unable to cleanup CMakeCache.txt"; exit 1; ) -make clean >> "${LOG}" -cmake . ${CMAKE_PARAMS} >> "${LOG}" || ( echo "${ERROR_MESSAGE}"; exit 1 ) -make >> "${LOG}" || ( echo "${ERROR_MESSAGE}"; exit 1 ) -make install DESTDIR="${D}-${Y}-${VERSION}-${ARCH}/" >> "${LOG}" || ( echo "${ERROR_MESSAGE}"; exit 1 ) -cd "${D}"-"${Y}"-"${VERSION}"-"${ARCH}"/ -`which strip` --strip-unneeded lib/${APPNAME}-${VERSION}/* bin/* >> "${LOG}" -done -############################################################################### -# DESTRUCTION OF SRC -############################################################################### -cd "${BUNDLE_PREFIX}" -rm -rf "${SOURCE}" -############################################################################### -# BUILDING TARS -############################################################################### -echo "<Creating tar.bz2 archives>" -echo "<******************************>" -for Y in ${OPTIONS} ; do - tar cjf "${APPNAME}"-"${Y}"-"${VERSION}"-"${ARCH}".tar.bz2 "${APPNAME}"-"${Y}"-${VERSION}-"${ARCH}"/* -done -############################################################################### -# DESTRUCTION OF UNPACKED BINARIES -############################################################################### -for Y in ${OPTIONS} ; do - rm -rf "${APPNAME}"-"${Y}"-${VERSION}-"${ARCH}"/ -done -############################################################################### -# SHOW WHAT HAVE WE DONE -############################################################################### -echo "<What have i created :>" -echo "<******************************>" -find ./ -maxdepth 1 -type f \( -name \*.tar.bz2 -print , -name \*.deb -print \) | while read FILE ; do - echo "FILE: ${FILE}" - echo " SIZE: $(`which du` -h ${FILE} |`which awk` -F' ' '{print $1}')" - echo " MD5SUM: $(`which md5sum` ${FILE} |`which awk` -F' ' '{print $1}')" - echo " SHA1SUM: $(`which sha1sum` ${FILE} |`which awk` -F' ' '{print $1}')" - echo -done -echo -echo -echo "<GNU/Linux binary packages are ready>" -echo -echo diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt deleted file mode 100644 index d112d86..0000000 --- a/po/CMakeLists.txt +++ /dev/null @@ -1,51 +0,0 @@ -############################################################################### -# WE NEED GETTEXT -############################################################################## -MESSAGE ( STATUS "<Locating Gettext>" ) -FIND_PACKAGE ( Gettext REQUIRED ) -INCLUDE_DIRECTORIES ( ${GETTEXT_INCLUDE_DIR} ) -SET ( DOMAIN "tuxanci" ) -############################################################################### -# CREATE .MO FOR EACH .PO -############################################################################### -# How are languages installed: -# Check if there is env variable LINGUAS -# if it is unset, install all languages -# if it is empty, dont install any language -# if it is set to some value, install those -# cmake cant differ between empty and unset enviroment variable, so installing -# all linguas when linguas is emtpy -############################################################################### -SET ( lingua "$ENV{LINGUAS}" ) -string(REGEX REPLACE "[ \t]+" \; output "${lingua}") -SET ( lingua_list ${output} ) -IF ( "${lingua}" STREQUAL "" ) - # all languages - FILE ( GLOB _po_files *.po ) -ELSE ( "${lingua}" STREQUAL "" ) - # only specified languages - SET ( _install ) - SET ( _po_files ) - FOREACH ( _lang ${lingua_list} ) - FILE ( GLOB _po_file ${_lang}*.po ) - LIST ( APPEND _po_files ${_po_file} ) - ENDFOREACH ( _lang ) -ENDIF ( "${lingua}" STREQUAL "" ) -SET ( _gmoFiles ) -SET ( STORE_DIR "${CMAKE_BINARY_DIR}/po" ) -FOREACH ( _current_PO_FILE ${_po_files} ) - IF ( EXISTS ${_current_PO_FILE} ) - GET_FILENAME_COMPONENT ( _lang ${_current_PO_FILE} NAME_WE ) - SET ( _gmoFile "${_lang}.mo" ) - ADD_CUSTOM_COMMAND ( OUTPUT ${_gmoFile} - COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_current_PO_FILE} - WORKING_DIRECTORY "${STORE_DIR}" - DEPENDS ${_current_PO_FILE} - ) - INSTALL ( FILES "${STORE_DIR}/${_gmoFile}" - DESTINATION "${CMAKE_INSTALL_LOCALEDIR}/${_lang}/LC_MESSAGES/" RENAME ${DOMAIN}.mo ) - LIST ( APPEND _gmoFiles "${STORE_DIR}/${_gmoFile}" ) - ENDIF ( EXISTS ${_current_PO_FILE} ) -ENDFOREACH ( _current_PO_FILE ) -ADD_CUSTOM_TARGET ( pofiles ALL DEPENDS ${_gmoFiles} ) -############################################################################### diff --git a/po/cs_CZ.po b/po/cs_CZ.po deleted file mode 100644 index 0857ddf..0000000 --- a/po/cs_CZ.po +++ /dev/null @@ -1,367 +0,0 @@ -# Czech translation file of game Tuxanci. -# Copyright (C) 2010 -# This file is distributed under the same license as the tuxanci package. -# Michal Zima <xhire@mujmalysvet.cz>, 2008-2010 -# -msgid "" -msgstr "" -"Project-Id-Version: tuxanci\n" -"Report-Msgid-Bugs-To: team@tuxanci.org\n" -"POT-Creation-Date: 2010-06-06 23:32+0200\n" -"PO-Revision-Date: 2010-06-06 23:34+0200\n" -"Last-Translator: xHire <xhire@mujmalysvet.cz>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/base/downServer.c:68 -msgid "[Error] Arena not found\n" -msgstr "[Chyba] Aréna nenalezena\n" - -#: src/base/downServer.c:76 -msgid "[Error] Server has some problem\n" -msgstr "[Chyba] Server má nějaký problém\n" - -#: src/base/downServer.c:82 -#, c-format -msgid "OK %d\n" -msgstr "OK %d\n" - -#: src/base/index.c:52 -#, c-format -msgid "Nothing\n" -msgstr "Nic\n" - -#: src/base/proto.c:66 -msgid "Cannot connect to the server. You have incompatible version of the game." -msgstr "Nelze se připojit k serveru. Máš nekompatibilní verzi hry." - -#: src/base/proto.c:70 -msgid "Connection timeout" -msgstr "Spojení vypršelo" - -#: src/base/proto.c:74 -msgid "Server is full" -msgstr "Server je plný" - -#: src/base/udp_server.c:62 -#, c-format -msgid "New player [%s]:%d connected" -msgstr "Nový hráč [%s]:%d se připojil" - -#: src/base/udp_server.c:78 -#, c-format -msgid "Player [%s]:%d disconnected" -msgstr "Hráč [%s]:%d se odpojil" - -#: src/client/client.c:136 -msgid "Unable to connect to the game server" -msgstr "Nelze se připojit k serveru" - -#: src/client/panel.c:149 -msgid "Recived new chat message" -msgstr "Přijata nová chatová zpráva" - -#: src/client/saveDialog.c:68 -msgid "Save as:" -msgstr "Uložit jako:" - -#: src/client/saveDialog.c:76 -msgid "Save" -msgstr "Uložit" - -#: src/client/saveDialog.c:80 -#: src/screen/browser.c:692 -#: src/screen/credits.c:110 -#: src/screen/downArena.c:372 -#: src/screen/gameType.c:229 -#: src/screen/choiceArena.c:203 -#: src/screen/setting.c:288 -#: src/screen/settingKeys.c:282 -#: src/screen/table.c:203 -msgid "Back" -msgstr "Zpět" - -#: src/client/yes_no_dialog.c:56 -msgid "Yes" -msgstr "Ano" - -#: src/client/yes_no_dialog.c:60 -msgid "No" -msgstr "Ne" - -#: src/screen/analyze.c:167 -msgid "OK" -msgstr "OK" - -#: src/screen/browser.c:693 -#: src/screen/gameType.c:230 -#: src/screen/choiceArena.c:204 -msgid "Play" -msgstr "Hraj" - -#: src/screen/browser.c:695 -msgid "Refresh" -msgstr "Obnovit" - -#: src/screen/browser.c:698 -msgid "Reload" -msgstr "Znovu načíst" - -#: src/screen/browser.c:702 -msgid "Server" -msgstr "Server" - -#: src/screen/browser.c:703 -msgid "Version" -msgstr "Verze" - -#: src/screen/browser.c:704 -#: src/screen/gameType.c:254 -msgid "IP" -msgstr "IP" - -#: src/screen/browser.c:705 -msgid "Arena" -msgstr "Aréna" - -#: src/screen/browser.c:706 -msgid "Clients" -msgstr "Klienti" - -#: src/screen/browser.c:707 -msgid "Ping" -msgstr "Ping" - -#: src/screen/credits.c:137 -#, c-format -msgid "[Error] Credits file not found [%s]: %s\n" -msgstr "[Chyba] Soubor s autory nenalezen [%s]: %s\n" - -#: src/screen/downArena.c:67 -#, c-format -msgid "Error! Unable to connect to [%s]:%d download server" -msgstr "Chyba! Nelze se připojit k download serveru [%s]:%d" - -#: src/screen/downArena.c:87 -#, c-format -msgid "Connecting to [%s]:%d download server" -msgstr "Připojování k download serveru [%s]:%d" - -#: src/screen/downArena.c:108 -#, c-format -msgid "Error! Game server [%s]:%d is off" -msgstr "Chyba! Server [%s]:%d je vypnutý" - -#: src/screen/downArena.c:120 -#, c-format -msgid "Error! Unable to send message to [%s]:%d game server" -msgstr "Chyba! Serveru [%s]:%d nelze odeslat zprávu" - -#: src/screen/downArena.c:136 -#, c-format -msgid "Error! Unable to connect to [%s]:%d game server" -msgstr "Chyba! Nelze se připojit k serveru [%s]:%d" - -#: src/screen/downArena.c:144 -#, c-format -msgid "Connecting to [%s]:%d game server" -msgstr "Připojování k serveru [%s]:%d" - -#: src/screen/downArena.c:200 -#, c-format -msgid "Downloading: %d/%d" -msgstr "Stahování: %d/%d" - -#: src/screen/downArena.c:223 -#, c-format -msgid "Error! Receiving buffer is full" -msgstr "Chyba! Přijímací buffer je plný" - -#: src/screen/downArena.c:375 -msgid "none" -msgstr "" - -#: src/screen/gameType.c:231 -msgid "Browser" -msgstr "Vyhledávač" - -#: src/screen/gameType.c:249 -msgid "Local game" -msgstr "Lokální hra" - -#: src/screen/gameType.c:250 -msgid "Set up a server" -msgstr "Vytvořit server" - -#: src/screen/gameType.c:251 -msgid "Network game" -msgstr "Síťová hra" - -#: src/screen/gameType.c:252 -msgid "Load saved game" -msgstr "Nahrát hru" - -#: src/screen/gameType.c:255 -msgid "Port" -msgstr "Port" - -#: src/screen/gameType.c:256 -msgid "Load saved game:" -msgstr "Nahrát hru:" - -#: src/screen/choiceArena.c:206 -msgid "Previous arenas" -msgstr "Předchozí arény" - -#: src/screen/choiceArena.c:207 -msgid "Next arenas" -msgstr "Další arény" - -#: src/screen/mainMenu.c:118 -msgid "Start game" -msgstr "Spustit hru" - -#: src/screen/mainMenu.c:119 -msgid "Settings" -msgstr "Nastavení" - -#: src/screen/mainMenu.c:120 -msgid "Highscore" -msgstr "Nejlepší skóre" - -#: src/screen/mainMenu.c:121 -msgid "Credits" -msgstr "Autoři" - -#: src/screen/mainMenu.c:122 -msgid "Quit game" -msgstr "Ukončit hru" - -#: src/screen/setting.c:290 -msgid "Controls" -msgstr "Ovládání" - -#: src/screen/setting.c:294 -msgid "Music:" -msgstr "Hudba:" - -#: src/screen/setting.c:298 -msgid "Sound:" -msgstr "Zvuk:" - -#: src/screen/setting.c:304 -#: src/screen/setting.c:307 -msgid "AI:" -msgstr "AI:" - -#: src/screen/setting.c:312 -msgid "No. of rounds:" -msgstr "Počet kol:" - -#: src/screen/setting.c:313 -msgid "Player 1:" -msgstr "Hráč 1:" - -#: src/screen/setting.c:314 -msgid "Player 2:" -msgstr "Hráč 2:" - -#: src/screen/setting.c:329 -msgid "Weapons:" -msgstr "Zbraně:" - -#: src/screen/setting.c:330 -msgid "Bonuses:" -msgstr "Bonusy:" - -#: src/screen/setting.c:380 -msgid "Dual simple gun" -msgstr "Dvojitá pistole" - -#: src/screen/setting.c:381 -msgid "Scatter" -msgstr "Brokovnice" - -#: src/screen/setting.c:382 -msgid "Tommy" -msgstr "Samopal" - -#: src/screen/setting.c:383 -msgid "Laser beam" -msgstr "Laser" - -#: src/screen/setting.c:384 -msgid "Mine" -msgstr "Mina" - -#: src/screen/setting.c:385 -msgid "Bomb ball" -msgstr "Bomba" - -#: src/screen/setting.c:387 -msgid "Speed bonus" -msgstr "Bonus Rychlost" - -#: src/screen/setting.c:388 -msgid "Infinite ammo" -msgstr "Bonus Nekonečná munice" - -#: src/screen/setting.c:389 -msgid "Unkillable bonus" -msgstr "Bonus Nesmrtelnost" - -#: src/screen/setting.c:390 -msgid "No-walls bonus" -msgstr "Bonus Průchod zdí" - -#: src/screen/setting.c:391 -msgid "1 shot to 4 directions bonus" -msgstr "Bonus 1 střela do 4 stran" - -#: src/screen/setting.c:392 -msgid "Unvisibility bonus" -msgstr "Bonus neviditelnosti" - -#: src/screen/settingKeys.c:284 -msgid "Player 2" -msgstr "Hráč 2" - -#: src/screen/settingKeys.c:285 -#: src/screen/settingKeys.c:292 -msgid "Up:" -msgstr "Nahoru:" - -#: src/screen/settingKeys.c:286 -#: src/screen/settingKeys.c:293 -msgid "Down:" -msgstr "Dolů:" - -#: src/screen/settingKeys.c:287 -#: src/screen/settingKeys.c:294 -msgid "Left:" -msgstr "Vlevo:" - -#: src/screen/settingKeys.c:288 -#: src/screen/settingKeys.c:295 -msgid "Right:" -msgstr "Vpravo:" - -#: src/screen/settingKeys.c:289 -#: src/screen/settingKeys.c:296 -msgid "Fire:" -msgstr "Střelba:" - -#: src/screen/settingKeys.c:290 -#: src/screen/settingKeys.c:297 -msgid "Switch gun:" -msgstr "Změna zbraně:" - -#: src/screen/settingKeys.c:291 -msgid "Player 1" -msgstr "Hráč 1" - -#: src/screen/world.c:390 -msgid "Do you really want to quit the game?" -msgstr "Opravdu chceš ukončit hru?" diff --git a/po/de_DE.po b/po/de_DE.po deleted file mode 100644 index d1cfc7b..0000000 --- a/po/de_DE.po +++ /dev/null @@ -1,771 +0,0 @@ -# german translation for tuxanci. -# Copyright (C) 2008 -# This file is distributed under the same license as the tuxanci package. -# -msgid "" -msgstr "" -"Project-Id-Version: tuxanci\n" -"Report-Msgid-Bugs-To: team@tuxanci.org\n" -"POT-Creation-Date: 2010-06-06 23:32+0200\n" -"PO-Revision-Date: 2008-12-01 12:31+0100\n" -"Last-Translator: Evgeni Golov <sargentd@die-welt.net>\n" -"Language-Team: GERMAN <de@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/base/downServer.c:68 -#, fuzzy -msgid "[Error] Arena not found\n" -msgstr "FEHLER Arena nicht gefunden!\n" - -#: src/base/downServer.c:76 -#, fuzzy -msgid "[Error] Server has some problem\n" -msgstr "FEHLER Server hatte ein Problem!\n" - -#: src/base/downServer.c:82 -#, c-format -msgid "OK %d\n" -msgstr "" - -#: src/base/index.c:52 -#, c-format -msgid "Nothing\n" -msgstr "" - -#: src/base/proto.c:66 -msgid "Cannot connect to the server. You have incompatible version of the game." -msgstr "" - -#: src/base/proto.c:70 -msgid "Connection timeout" -msgstr "" - -#: src/base/proto.c:74 -msgid "Server is full" -msgstr "" - -#: src/base/udp_server.c:62 -#, fuzzy, c-format -msgid "New player [%s]:%d connected" -msgstr "Neuer Client \"%s\" auf Port \"%d\" verbunden" - -#: src/base/udp_server.c:78 -#, fuzzy, c-format -msgid "Player [%s]:%d disconnected" -msgstr "Client \"%s\" auf Port \"%d\" getrennt" - -#: src/client/client.c:136 -#, fuzzy -msgid "Unable to connect to the game server" -msgstr "Konnte Netzwerk Spiel nicht als Server initialisieren!\n" - -#: src/client/panel.c:149 -msgid "Recived new chat message" -msgstr "" - -#: src/client/saveDialog.c:68 -msgid "Save as:" -msgstr "" - -#: src/client/saveDialog.c:76 -msgid "Save" -msgstr "" - -#: src/client/saveDialog.c:80 -#: src/screen/browser.c:692 -#: src/screen/credits.c:110 -#: src/screen/downArena.c:372 -#: src/screen/gameType.c:229 -#: src/screen/choiceArena.c:203 -#: src/screen/setting.c:288 -#: src/screen/settingKeys.c:282 -#: src/screen/table.c:203 -msgid "Back" -msgstr "Zurück" - -#: src/client/yes_no_dialog.c:56 -msgid "Yes" -msgstr "" - -#: src/client/yes_no_dialog.c:60 -msgid "No" -msgstr "" - -#: src/screen/analyze.c:167 -msgid "OK" -msgstr "" - -#: src/screen/browser.c:693 -#: src/screen/gameType.c:230 -#: src/screen/choiceArena.c:204 -msgid "Play" -msgstr "Spielen" - -#: src/screen/browser.c:695 -msgid "Refresh" -msgstr "Aktualisieren" - -#: src/screen/browser.c:698 -msgid "Reload" -msgstr "" - -#: src/screen/browser.c:702 -#, fuzzy -msgid "Server" -msgstr "Server" - -#: src/screen/browser.c:703 -#, fuzzy -msgid "Version" -msgstr "Version" - -#: src/screen/browser.c:704 -#: src/screen/gameType.c:254 -msgid "IP" -msgstr "IP" - -#: src/screen/browser.c:705 -#, fuzzy -msgid "Arena" -msgstr "Arena" - -#: src/screen/browser.c:706 -#, fuzzy -msgid "Clients" -msgstr "Clients" - -#: src/screen/browser.c:707 -#, fuzzy -msgid "Ping" -msgstr "Ping" - -#: src/screen/credits.c:137 -#, fuzzy, c-format -msgid "[Error] Credits file not found [%s]: %s\n" -msgstr "Credit Datei nicht gefunden... %s/%s" - -#: src/screen/downArena.c:67 -#, fuzzy, c-format -msgid "Error! Unable to connect to [%s]:%d download server" -msgstr "Konnte Download-Server nicht initialisieren!\n" - -#: src/screen/downArena.c:87 -#, c-format -msgid "Connecting to [%s]:%d download server" -msgstr "" - -#: src/screen/downArena.c:108 -#, c-format -msgid "Error! Game server [%s]:%d is off" -msgstr "" - -#: src/screen/downArena.c:120 -#, c-format -msgid "Error! Unable to send message to [%s]:%d game server" -msgstr "" - -#: src/screen/downArena.c:136 -#, c-format -msgid "Error! Unable to connect to [%s]:%d game server" -msgstr "" - -#: src/screen/downArena.c:144 -#, c-format -msgid "Connecting to [%s]:%d game server" -msgstr "" - -#: src/screen/downArena.c:200 -#, c-format -msgid "Downloading: %d/%d" -msgstr "" - -#: src/screen/downArena.c:223 -#, c-format -msgid "Error! Receiving buffer is full" -msgstr "" - -#: src/screen/downArena.c:375 -msgid "none" -msgstr "" - -#: src/screen/gameType.c:231 -#, fuzzy -msgid "Browser" -msgstr "Browser" - -#: src/screen/gameType.c:249 -msgid "Local game" -msgstr "Lokales Spiel" - -#: src/screen/gameType.c:250 -msgid "Set up a server" -msgstr "Erstelle einen Server" - -#: src/screen/gameType.c:251 -msgid "Network game" -msgstr "Netzwerk Spiel" - -#: src/screen/gameType.c:252 -#, fuzzy -msgid "Load saved game" -msgstr "Lokales Spiel" - -#: src/screen/gameType.c:255 -#, fuzzy -msgid "Port" -msgstr "Port" - -#: src/screen/gameType.c:256 -#, fuzzy -msgid "Load saved game:" -msgstr "Lokales Spiel" - -#: src/screen/choiceArena.c:206 -msgid "Previous arenas" -msgstr "" - -#: src/screen/choiceArena.c:207 -msgid "Next arenas" -msgstr "" - -#: src/screen/mainMenu.c:118 -msgid "Start game" -msgstr "Starte Spiel" - -#: src/screen/mainMenu.c:119 -msgid "Settings" -msgstr "Einstellungen" - -#: src/screen/mainMenu.c:120 -msgid "Highscore" -msgstr "Highscore" - -#: src/screen/mainMenu.c:121 -msgid "Credits" -msgstr "Credits" - -#: src/screen/mainMenu.c:122 -msgid "Quit game" -msgstr "Beende Spiel" - -#: src/screen/setting.c:290 -#, fuzzy -msgid "Controls" -msgstr "Steuerung" - -#: src/screen/setting.c:294 -msgid "Music:" -msgstr "Musik:" - -#: src/screen/setting.c:298 -msgid "Sound:" -msgstr "Ton:" - -#: src/screen/setting.c:304 -#: src/screen/setting.c:307 -msgid "AI:" -msgstr "KI" - -#: src/screen/setting.c:312 -msgid "No. of rounds:" -msgstr "Anzahl der Runden:" - -#: src/screen/setting.c:313 -msgid "Player 1:" -msgstr "Spieler 1:" - -#: src/screen/setting.c:314 -msgid "Player 2:" -msgstr "Spieler 2:" - -#: src/screen/setting.c:329 -msgid "Weapons:" -msgstr "" - -#: src/screen/setting.c:330 -msgid "Bonuses:" -msgstr "" - -#: src/screen/setting.c:380 -msgid "Dual simple gun" -msgstr "" - -#: src/screen/setting.c:381 -msgid "Scatter" -msgstr "" - -#: src/screen/setting.c:382 -msgid "Tommy" -msgstr "" - -#: src/screen/setting.c:383 -msgid "Laser beam" -msgstr "" - -#: src/screen/setting.c:384 -msgid "Mine" -msgstr "" - -#: src/screen/setting.c:385 -msgid "Bomb ball" -msgstr "" - -#: src/screen/setting.c:387 -msgid "Speed bonus" -msgstr "" - -#: src/screen/setting.c:388 -msgid "Infinite ammo" -msgstr "" - -#: src/screen/setting.c:389 -msgid "Unkillable bonus" -msgstr "" - -#: src/screen/setting.c:390 -msgid "No-walls bonus" -msgstr "" - -#: src/screen/setting.c:391 -msgid "1 shot to 4 directions bonus" -msgstr "" - -#: src/screen/setting.c:392 -msgid "Unvisibility bonus" -msgstr "" - -#: src/screen/settingKeys.c:284 -msgid "Player 2" -msgstr "Spieler 2" - -#: src/screen/settingKeys.c:285 -#: src/screen/settingKeys.c:292 -msgid "Up:" -msgstr "Hoch:" - -#: src/screen/settingKeys.c:286 -#: src/screen/settingKeys.c:293 -msgid "Down:" -msgstr "Runter:" - -#: src/screen/settingKeys.c:287 -#: src/screen/settingKeys.c:294 -msgid "Left:" -msgstr "Links:" - -#: src/screen/settingKeys.c:288 -#: src/screen/settingKeys.c:295 -msgid "Right:" -msgstr "Rechts:" - -#: src/screen/settingKeys.c:289 -#: src/screen/settingKeys.c:296 -#, fuzzy -msgid "Fire:" -msgstr "Feuer:" - -#: src/screen/settingKeys.c:290 -#: src/screen/settingKeys.c:297 -msgid "Switch gun:" -msgstr "Wechsle Waffe:" - -#: src/screen/settingKeys.c:291 -msgid "Player 1" -msgstr "Spieler 1" - -#: src/screen/world.c:390 -msgid "Do you really want to quit the game?" -msgstr "" - -#~ msgid "Up" -#~ msgstr "Hoch:" - -#~ msgid "Error! Unable to initialize audio: %s\n" -#~ msgstr "Fehler! Konnte Ton nicht initialisieren: %s\n" - -#~ msgid "Unable to create proper audio settings: %s\n" -#~ msgstr "Konnte keine passenden Audio-Einstellungen vornehmen: %s\n" - -#~ msgid "Initializing audio\n" -#~ msgstr "Initialisiere Audio-System\n" - -#~ msgid "Quitting audio\n" -#~ msgstr "Beende Audio-System\n" - -#~ msgid "Initializing music\n" -#~ msgstr "Initialisiere Musik\n" - -#~ msgid "Loading a file with music: %s\n" -#~ msgstr "Lade Musik-Datei: %s\n" - -#~ msgid "Unable to load music from file %s\n" -#~ msgstr "Konnte Musik aus Datei %s nicht laden\n" - -#~ msgid "Stopping music\n" -#~ msgstr "Beende Musik\n" - -#~ msgid "Playing music from file %s\n" -#~ msgstr "Spiele Musik-Datei %s\n" - -#~ msgid "Quitting music\n" -#~ msgstr "Beende Musik\n" - -#~ msgid "Initializing sound\n" -#~ msgstr "Initialisiere Sound\n" - -#~ msgid "Loading sound file: %s\n" -#~ msgstr "Lade Sound-Datei: %s\n" - -#~ msgid "Unable to load sound from file %s with error: %s\n" -#~ msgstr "Laden von Sound-Datei %s fehlgeschlagen mit Fehler: %s\n" - -#~ msgid "Unable to play sound with error: %s\n" -#~ msgstr "Fehler bei Audio-Wiedergabe: %s\n" - -#~ msgid "Quitting sound\n" -#~ msgstr "Beende Sound\n" - -#~ msgid "Loaded new arena...\n" -#~ msgstr "Lade neue Arena...\n" - -#~ msgid "Load arena file from %s\n" -#~ msgstr "Lade Arena aus Datei: %s\n" - -#~ msgid "Director %s not found !\n" -#~ msgstr "Verzeichniss %s nicht gefunden!\n" - -#~ msgid "Loading arena: %s\n" -#~ msgstr "Lade Arena: %s\n" - -#~ msgid "Bad type of front!" -#~ msgstr "Schlechter Warteschleifentyp!" - -#~ msgid "There is wrong value in course variable!" -#~ msgstr "Falscher Wert in Kurs-Variable!" - -#~ msgid "Environment variable HOME not found!\n" -#~ msgstr "Umgebungsvariable HOME nicht gefunden!\n" - -#~ msgid "Creating home directory %s.\n" -#~ msgstr "Erstelle Home Verzeichnis %s.\n" - -#~ msgid "Unable to create home directory!\n" -#~ msgstr "Konnte Home Verzeichnis nicht erstellen!\n" - -#~ msgid "Starting ID manger\n" -#~ msgstr "Starte ID Manager\n" - -#~ msgid "No free ID left!" -#~ msgstr "Keine freie ID mehr übrig!" - -#~ msgid "This kind of ID was never registered!" -#~ msgstr "Diese ID wurde nie registriert!" - -#~ msgid "ID %d does not exist\n" -#~ msgstr "ID %d existiert nicht\n" - -#~ msgid "ID %d (count %d)\n" -#~ msgstr "ID %d (count %d)\n" - -#~ msgid "Quitting ID manger\n" -#~ msgstr "Beende ID Manager\n" - -#~ msgid "" -#~ "File %s not found !\n" -#~ "Program shutdown !\n" -#~ msgstr "" -#~ "Datei %s nicht gefunden !\n" -#~ "Beende Programm!\n" - -#~ msgid "" -#~ "WinSock initialization failed !\n" -#~ "Program shutdown !\n" -#~ msgstr "" -#~ "WinSock Initialisierung fehlgeschlagen!\n" -#~ "Beende Programm!\n" - -#~ msgid "Error %s occured when using getFce function!\n" -#~ msgstr "Fehler %s beim Verwenden der Funktion getFce aufgetreten!\n" - -#~ msgid "Unable to map file %s!\n" -#~ msgstr "Fehler beim Mappen der Datei %s!\n" - -#~ msgid "Loading module: \"%s\"\n" -#~ msgstr "Lade Modul: \"%s\"\n" - -#~ msgid "Failed initialization of module \"%s\"" -#~ msgstr "Fehler beim Initialisieren von Modul \"%s\"" - -#~ msgid "Destroing module...\n" -#~ msgstr "Zerstöre Modul...\n" - -#~ msgid "Loading module %s failed!\n" -#~ msgstr "Laden des Moduls %s fehlgeschlagen!\n" - -#~ msgid "Timer is really weirdly set!" -#~ msgstr "Timer ist sehr seltsam eingestellt!" - -#~ msgid "There is no such ID!" -#~ msgstr "Diese ID gibt es nicht!" - -#~ msgid "Unable to inicialize network game as client!\n" -#~ msgstr "Konnte Netzwerk Spiel nicht als Client initialisieren!\n" - -#~ msgid "Variable netGameType has a really weird value!" -#~ msgstr "Variable netGameType hat einen sehr seltsamen Wert!" - -#~ msgid "Proto error code: \"%d\"\n" -#~ msgstr "Proto Fehlermeldung: \"%d\"\n" - -#~ msgid "Version of your client isn't supported by the server." -#~ msgstr "Die Version deines Clients wird vom Server nicht unterstützt." - -#~ msgid "The timeout of ping from server is out" -#~ msgstr "Zeitüberschreitung des Pings vom Server" - -#~ msgid "The maximum amount of connected players has been exceeded!" -#~ msgstr "Die maximale Anzahl der verbundenen Spieler wurde erreicht!" - -#~ msgid "Sending: \"%s\"" -#~ msgstr "Gesendet: \"%s\"" - -#~ msgid "Recieved: \"%s\"" -#~ msgstr "Empfangen: \"%s\"" - -#~ msgid "Type variable has a really wierd value!" -#~ msgstr "Typ Variable hat einen sehr merkwürdigen Wert!" - -#~ msgid "Adding \"%s\" to share function.\n" -#~ msgstr "Füge \"%s\" zur share Funktion hinzu.\n" - -#~ msgid "%s %s was not found in storage!\n" -#~ msgstr "%s %s wurde nicht gefunden!\n" - -#~ msgid "Starting server: \"%s\" on port: \"%d\"\n" -#~ msgstr "Starte Server: \"%s\" auf Port: \"%d\"\n" - -#~ msgid "Starting server: \"%s\" on port: \"%d\" FAILED!\n" -#~ msgstr "Starten von Server: \"%s\" auf Port: \"%d\" FEHLGESCHLAGEN!\n" - -#~ msgid "Closing port: \"%d\"\n" -#~ msgstr "Schliesse Port: \"%d\"\n" - -#~ msgid "ERROR: unable to get file status for %s!\n" -#~ msgstr "FEHLER: konnte Status für Datei %s nicht ermitteln!\n" - -#~ msgid "ERROR: unable to open file %s for reading\n" -#~ msgstr "FEHLER: konnte die Datei %s nicht öffnen\n" - -#~ msgid "ERROR: unable to read data from file %s\n" -#~ msgstr "FEHLER: Konnte keine Daten aus der Datei %s auslesen\n" - -#~ msgid "" -#~ "Printing file: \"%s\"\n" -#~ "\n" -#~ msgstr "Schreibe Datei: \"%s\"\n" - -#~ msgid "p->control has a really wierd value!" -#~ msgstr "p->control hat einen sehr merkwürdigen Wert!" - -#~ msgid "Client was not FOUND!\n" -#~ msgstr "Client wurde NICHT gefunden!\n" - -#~ msgid "Quitting UDP\n" -#~ msgstr "Beende UDP\n" - -#~ msgid "Connected to: %s on port: %d via UDP\n" -#~ msgstr "Verbunden mit: %s auf Port: %d via UDP\n" - -#~ msgid "Server did not respond!\n" -#~ msgstr "Server antwortet nicht!\n" - -#~ msgid "Server is not running or being blocked. I was unable to connect." -#~ msgstr "Server läuft nicht oder wird geblockt. Konnte mich nicht verbinden." - -#~ msgid "down: %d\n" -#~ msgstr "Runter: %d\n" - -#~ msgid "up : %d\n" -#~ msgstr "Hoch: %d\n" - -#~ msgid "Closing UDP connection.\n" -#~ msgstr "Trenne UDP Verbindung.\n" - -#~ msgid "ADDING: \"%s\" into config file.\n" -#~ msgstr "Füge \"%s\" zur Config-Datei hinzu.\n" - -#~ msgid "Loading font: \"%s\"\n" -#~ msgstr "Lade Schriftart: \"%s\"\n" - -#~ msgid "Unloading font\n" -#~ msgstr "Entlade Schriftart\n" - -#~ msgid "Quitting TUXANCI...\n" -#~ msgstr "Beende TUXANCI...\n" - -#~ msgid "Initializing image database\n" -#~ msgstr "Initialisiere Bild Datenbank\n" - -#~ msgid "Loading image %s\n" -#~ msgstr "Lade Bild %s\n" - -#~ msgid "Quitting image database\n" -#~ msgstr "Schliesse Bild Datenbank\n" - -#~ msgid "Unable to switch to FULLSCREEN mode!\n" -#~ msgstr "Kann nicht in Vollbild Modus wechseln!\n" - -#~ msgid "Unable to switch to WINDOW mode! Error: %s\n" -#~ msgstr "Kann nicht in Fenster Modus wechseln! Error: %s\n" - -#~ msgid "Initializing SDL system\n" -#~ msgstr "Initialisiere SDL System\n" - -#~ msgid "Pressed key with SDL value: %d\n" -#~ msgstr "Taste mit SDL Wert %d gedrückt\n" - -#~ msgid "Unable to change WINDOW resolution! Error: %s\n" -#~ msgstr "Kann Fensterauflösung nicht ändern! Error: %s\n" - -#~ msgid "Quitting SDL\n" -#~ msgstr "Beende SDL\n" - -#~ msgid "Keyboard Buffer overrun! Dropping key: %02x\n" -#~ msgstr "Tastatur Pufferüberlauf! Verwerfe Taste: %02x\n" - -#~ msgid "Keyboard Buffer underrun!\n" -#~ msgstr "Tastatur Buffer underrun!\n" - -#~ msgid "Keyboard buffer is not empty!\n" -#~ msgstr "Tastatur Puffer ist nicht leer!\n" - -#~ msgid "Saving game to: \"%s\"\n" -#~ msgstr "Speichere Spiel nach: \"%s\"\n" - -#~ msgid "I was unable to save: \"%s\"\n" -#~ msgstr "Ich konnte \"%s\" nicht speichern \n" - -#~ msgid "Loadig game from file: \"%s\"\n" -#~ msgstr "Lade Spiel von Datei: \"%s\"\n" - -#~ msgid "Unable to load save: \"%s\"\n" -#~ msgstr "Fehler beim Laden von Spielstand: \"%s\"\n" - -#~ msgid "Registering screen: \"%s\"\n" -#~ msgstr "Registriere Bildschirm: \"%s\"\n" - -#~ msgid "Stopping screen: \"%s\"\n" -#~ msgstr "Beende Bildschirm: \"%s\"\n" - -#~ msgid "Starting screen: \"%s\"\n" -#~ msgstr "Starte Bildschirm: \"%s\"\n" - -#~ msgid "Unable to create socket when connecting!\n" -#~ msgstr "Konnte Socket beim Verbinden nicht erstellen!\n" - -#~ msgid "Unable to bint to port: %d\n" -#~ msgstr "Fehler beim Binden an Port: %d\n" - -#~ msgid "Bad IP proto!" -#~ msgstr "Schlechte IP proto!" - -#~ msgid "Unable to create TCP socket!\n" -#~ msgstr "Fehler beim Erstellen des TCP Sockets!\n" - -#~ msgid "Unable to create socket when binding!\n" -#~ msgstr "Konnte Socket beim Binden nicht erstellen!\n" - -#~ msgid "Unable to set socket %s %d!\n" -#~ msgstr "Konnte Socket %s %d nicht setzen!\n" - -#~ msgid "Unable to read form socket %d %s %d!\n" -#~ msgstr "Fehler beim Lesen von Socket %d %s %d!\n" - -#~ msgid "Unable to write on socket %d %s %d!\n" -#~ msgstr "Fehler beim Schreiben auf Socket %d %s %d!\n" - -#~ msgid "back" -#~ msgstr "Zurück" - -#~ msgid "play" -#~ msgstr "spielen" - -#~ msgid "Unknown game type!" -#~ msgstr "Unbekannter Spieltyp!" - -#~ msgid "Unknown IP protocol!\n" -#~ msgstr "Unbekanntes IP Protokoll!\n" - -#~ msgid "I am unable to load: \"%s\"!\n" -#~ msgstr "Ich konnte dies nicht laden: \"%s\"!\n" - -#~ msgid "Creating: \"%s\"\n" -#~ msgstr "Erstelle: \"%s\"\n" - -#~ msgid "I was unable to create: \"%s\"!\n" -#~ msgstr "Ich konnte \"%s\" nicht erstellen!\n" - -#~ msgid "I am unable to save configure file, because config file was not initialised!\n" -#~ msgstr "Konnte Config-Datei nicht speichern, da sie nicht initialisiert wurde!\n" - -#~ msgid "I was unable to load file: %s\n" -#~ msgstr "Ich konnte folgende Datei nicht laden: %s\n" - -#~ msgid "I try to create file: %s\n" -#~ msgstr "Versuche folgende Datei zu erstellen: %s\n" - -#~ msgid "I was unable to create file: %s\n" -#~ msgstr "Fehler beim Erstellen der Datei: %s\n" - -#~ msgid "Highscore file: \"%s\" was not loaded!" -#~ msgstr "Highscore Datei: \"%s\" wurde nicht geladen!" - -#~ msgid "Network initialization error!\n" -#~ msgstr "Netzwerk Fehler!\n" - -#~ msgid "Tux has not defined controls!" -#~ msgstr "Tux hat keine definierte Steuerung!" - -#~ msgid "Quitting screen world\n" -#~ msgstr "Beende Welt\n" - -#~ msgid "Opening logfile \"%s\" failed!\n" -#~ msgstr "Öffnen von Logfile \"%s\" fehlgeschlagen!\n" - -#~ msgid "I use logfile: \"%s\")\n" -#~ msgstr "Ich verwende Logfile: \"%s\")\n" - -#~ msgid "Really bad log value!" -#~ msgstr "Sehr schlechter Log-Wert!" - -#~ msgid "I dont load arena %s!\n" -#~ msgstr "Lade Arena %s nicht!\n" - -#~ msgid "I was unable to open config file!\n" -#~ msgstr "Konnte Config-Datei nicht öffnen.!\n" - -#~ msgid "Unable to initialize network socket!\n" -#~ msgstr "Fehler beim Initialisieren des Netzwerk Sockets!\n" - -#~ msgid "Unable to contact MasterServer!)\n" -#~ msgstr "Kann mich mit MasterServer nicht verbinden!\n" - -#~ msgid "Quitting public server\n" -#~ msgstr "Beende öffentlichen Server\n" - -#~ msgid "Loading configuration from: \"%s\"\n" -#~ msgstr "Lade Config-Datei von: \"%s\"\n" - -#~ msgid "I was unable to load config file. Falling back to defaults!\n" -#~ msgstr "Konnte Config-Datei nicht öffnen. Starte mit Standardwerten!\n" - -#~ msgid "Scorefile: \"%s\"\n" -#~ msgstr "Scorefile: \"%s\"\n" - -#~ msgid "Event caught\n" -#~ msgstr "Event caught\n" - -#~ msgid "Bad filter!" -#~ msgstr "Schlechter Filter!" diff --git a/po/tuxanci.pot b/po/tuxanci.pot deleted file mode 100644 index 962dbef..0000000 --- a/po/tuxanci.pot +++ /dev/null @@ -1,368 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: team@tuxanci.org\n" -"POT-Creation-Date: 2010-06-06 23:32+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/base/downServer.c:68 -msgid "[Error] Arena not found\n" -msgstr "" - -#: src/base/downServer.c:76 -msgid "[Error] Server has some problem\n" -msgstr "" - -#: src/base/downServer.c:82 -#, c-format -msgid "OK %d\n" -msgstr "" - -#: src/base/index.c:52 -#, c-format -msgid "Nothing\n" -msgstr "" - -#: src/base/proto.c:66 -msgid "Cannot connect to the server. You have incompatible version of the game." -msgstr "" - -#: src/base/proto.c:70 -msgid "Connection timeout" -msgstr "" - -#: src/base/proto.c:74 -msgid "Server is full" -msgstr "" - -#: src/base/udp_server.c:62 -#, c-format -msgid "New player [%s]:%d connected" -msgstr "" - -#: src/base/udp_server.c:78 -#, c-format -msgid "Player [%s]:%d disconnected" -msgstr "" - -#: src/client/client.c:136 -msgid "Unable to connect to the game server" -msgstr "" - -#: src/client/panel.c:149 -msgid "Recived new chat message" -msgstr "" - -#: src/client/saveDialog.c:68 -msgid "Save as:" -msgstr "" - -#: src/client/saveDialog.c:76 -msgid "Save" -msgstr "" - -#: src/client/saveDialog.c:80 -#: src/screen/browser.c:692 -#: src/screen/credits.c:110 -#: src/screen/downArena.c:372 -#: src/screen/gameType.c:229 -#: src/screen/choiceArena.c:203 -#: src/screen/setting.c:288 -#: src/screen/settingKeys.c:282 -#: src/screen/table.c:203 -msgid "Back" -msgstr "" - -#: src/client/yes_no_dialog.c:56 -msgid "Yes" -msgstr "" - -#: src/client/yes_no_dialog.c:60 -msgid "No" -msgstr "" - -#: src/screen/analyze.c:167 -msgid "OK" -msgstr "" - -#: src/screen/browser.c:693 -#: src/screen/gameType.c:230 -#: src/screen/choiceArena.c:204 -msgid "Play" -msgstr "" - -#: src/screen/browser.c:695 -msgid "Refresh" -msgstr "" - -#: src/screen/browser.c:698 -msgid "Reload" -msgstr "" - -#: src/screen/browser.c:702 -msgid "Server" -msgstr "" - -#: src/screen/browser.c:703 -msgid "Version" -msgstr "" - -#: src/screen/browser.c:704 -#: src/screen/gameType.c:254 -msgid "IP" -msgstr "" - -#: src/screen/browser.c:705 -msgid "Arena" -msgstr "" - -#: src/screen/browser.c:706 -msgid "Clients" -msgstr "" - -#: src/screen/browser.c:707 -msgid "Ping" -msgstr "" - -#: src/screen/credits.c:137 -#, c-format -msgid "[Error] Credits file not found [%s]: %s\n" -msgstr "" - -#: src/screen/downArena.c:67 -#, c-format -msgid "Error! Unable to connect to [%s]:%d download server" -msgstr "" - -#: src/screen/downArena.c:87 -#, c-format -msgid "Connecting to [%s]:%d download server" -msgstr "" - -#: src/screen/downArena.c:108 -#, c-format -msgid "Error! Game server [%s]:%d is off" -msgstr "" - -#: src/screen/downArena.c:120 -#, c-format -msgid "Error! Unable to send message to [%s]:%d game server" -msgstr "" - -#: src/screen/downArena.c:136 -#, c-format -msgid "Error! Unable to connect to [%s]:%d game server" -msgstr "" - -#: src/screen/downArena.c:144 -#, c-format -msgid "Connecting to [%s]:%d game server" -msgstr "" - -#: src/screen/downArena.c:200 -#, c-format -msgid "Downloading: %d/%d" -msgstr "" - -#: src/screen/downArena.c:223 -#, c-format -msgid "Error! Receiving buffer is full" -msgstr "" - -#: src/screen/downArena.c:375 -msgid "none" -msgstr "" - -#: src/screen/gameType.c:231 -msgid "Browser" -msgstr "" - -#: src/screen/gameType.c:249 -msgid "Local game" -msgstr "" - -#: src/screen/gameType.c:250 -msgid "Set up a server" -msgstr "" - -#: src/screen/gameType.c:251 -msgid "Network game" -msgstr "" - -#: src/screen/gameType.c:252 -msgid "Load saved game" -msgstr "" - -#: src/screen/gameType.c:255 -msgid "Port" -msgstr "" - -#: src/screen/gameType.c:256 -msgid "Load saved game:" -msgstr "" - -#: src/screen/choiceArena.c:206 -msgid "Previous arenas" -msgstr "" - -#: src/screen/choiceArena.c:207 -msgid "Next arenas" -msgstr "" - -#: src/screen/mainMenu.c:118 -msgid "Start game" -msgstr "" - -#: src/screen/mainMenu.c:119 -msgid "Settings" -msgstr "" - -#: src/screen/mainMenu.c:120 -msgid "Highscore" -msgstr "" - -#: src/screen/mainMenu.c:121 -msgid "Credits" -msgstr "" - -#: src/screen/mainMenu.c:122 -msgid "Quit game" -msgstr "" - -#: src/screen/setting.c:290 -msgid "Controls" -msgstr "" - -#: src/screen/setting.c:294 -msgid "Music:" -msgstr "" - -#: src/screen/setting.c:298 -msgid "Sound:" -msgstr "" - -#: src/screen/setting.c:304 -#: src/screen/setting.c:307 -msgid "AI:" -msgstr "" - -#: src/screen/setting.c:312 -msgid "No. of rounds:" -msgstr "" - -#: src/screen/setting.c:313 -msgid "Player 1:" -msgstr "" - -#: src/screen/setting.c:314 -msgid "Player 2:" -msgstr "" - -#: src/screen/setting.c:329 -msgid "Weapons:" -msgstr "" - -#: src/screen/setting.c:330 -msgid "Bonuses:" -msgstr "" - -#: src/screen/setting.c:380 -msgid "Dual simple gun" -msgstr "" - -#: src/screen/setting.c:381 -msgid "Scatter" -msgstr "" - -#: src/screen/setting.c:382 -msgid "Tommy" -msgstr "" - -#: src/screen/setting.c:383 -msgid "Laser beam" -msgstr "" - -#: src/screen/setting.c:384 -msgid "Mine" -msgstr "" - -#: src/screen/setting.c:385 -msgid "Bomb ball" -msgstr "" - -#: src/screen/setting.c:387 -msgid "Speed bonus" -msgstr "" - -#: src/screen/setting.c:388 -msgid "Infinite ammo" -msgstr "" - -#: src/screen/setting.c:389 -msgid "Unkillable bonus" -msgstr "" - -#: src/screen/setting.c:390 -msgid "No-walls bonus" -msgstr "" - -#: src/screen/setting.c:391 -msgid "1 shot to 4 directions bonus" -msgstr "" - -#: src/screen/setting.c:392 -msgid "Unvisibility bonus" -msgstr "" - -#: src/screen/settingKeys.c:284 -msgid "Player 2" -msgstr "" - -#: src/screen/settingKeys.c:285 -#: src/screen/settingKeys.c:292 -msgid "Up:" -msgstr "" - -#: src/screen/settingKeys.c:286 -#: src/screen/settingKeys.c:293 -msgid "Down:" -msgstr "" - -#: src/screen/settingKeys.c:287 -#: src/screen/settingKeys.c:294 -msgid "Left:" -msgstr "" - -#: src/screen/settingKeys.c:288 -#: src/screen/settingKeys.c:295 -msgid "Right:" -msgstr "" - -#: src/screen/settingKeys.c:289 -#: src/screen/settingKeys.c:296 -msgid "Fire:" -msgstr "" - -#: src/screen/settingKeys.c:290 -#: src/screen/settingKeys.c:297 -msgid "Switch gun:" -msgstr "" - -#: src/screen/settingKeys.c:291 -msgid "Player 1" -msgstr "" - -#: src/screen/world.c:390 -msgid "Do you really want to quit the game?" -msgstr "" diff --git a/scripts/clean.sh b/scripts/clean.sh deleted file mode 100755 index 461b226..0000000 --- a/scripts/clean.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash -PWD=$(pwd) -[[ ${PWD/*\//} = scripts ]] && pushd .. > /dev/null || pushd . > /dev/null -# remove compiled files -[ -e "[Mm]akefile" ] && make clean - -# remove folders -find ./ -type d -name CMakeFiles -print | xargs -i rm {} -rf -# some people build Tuxanci in speacial folder -rm -rf ./build - -# remove cmake files -find ./ \( -type f -name \*.so -print , -type f -name \*.cmake -print , -type f -name CMakeCache.txt -print , -type f -name Makefile -print \) | grep -v "./cmake" | xargs -i rm {} -f -find ./ \( -type f -name install_manifest.txt -print , -type f -name cmake_install.cmake -print \) | xargs -i rm {} -f - -# remove precompiled in files -find ./ -name \*.in -print | while read r; do rm -f ${r/\.in/}; done - -# remove compiled binaries -find ./src -name tuxanci -print | xargs -i rm {} -f -find ./src -name tuxanci-server -print | xargs -i rm {} -f - -# remove compiled gettext files -find ./ -name \*.gmo -print | xargs -i rm {} -f - -# remove temporary backup files -find ./ -type f -name \*~ -print | xargs -i rm {} -f - -# remove so libraries -find ./src/modules -type f -name mod\*.so\* | xargs -i rm {} -f -popd >> /dev/null diff --git a/scripts/dos2unix.sh b/scripts/dos2unix.sh deleted file mode 100755 index 70f9c77..0000000 --- a/scripts/dos2unix.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -for suffix in c h sh cmake txt in conf lang ebuild po pot 1 rc desktop; do - find . -name \*.$suffix -print | xargs -i sed -i -e 's@\r@@g' {} -done diff --git a/scripts/generate_gettext_pot.sh b/scripts/generate_gettext_pot.sh deleted file mode 100755 index dd97ff1..0000000 --- a/scripts/generate_gettext_pot.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -PWD=$(pwd) -[[ ${PWD/*\//} = scripts ]] && pushd .. > /dev/null || pushd . > /dev/null -xgettext --no-wrap --width 1 --default-domain=tuxanci --msgid-bugs-address=team@tuxanci.org --add-comments=/// -k_ `find ./ -name \*.c | grep -v .git | sort | uniq | tr '\n' ' '` -o ./po/tuxanci.pot -cd po/ -find ./ -name \*.po -print | xargs -i msgmerge --no-wrap --width 1 -U {} tuxanci.pot -rm -rf *~ -popd > /dev/null diff --git a/scripts/kr.sh b/scripts/kr.sh deleted file mode 100755 index 4977efc..0000000 --- a/scripts/kr.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -PWD=$(pwd) -[[ ${PWD/*\//} = scripts ]] && pushd .. > /dev/null || pushd . > /dev/null - -if [ ! "$1" ]; then - echo "Help: this script indents code according to the K&R standard" - echo "Usage: $0 path/to/file.c" - exit 1 -elif [ ! -e "$1" ]; then - echo "Error: file '$1' doesn't exist!" - exit 1 -fi - -indent -kr -l79 -ts4 -ip4 -ppi 4 "$1" diff --git a/scripts/replace.sh b/scripts/replace.sh deleted file mode 100755 index 7912c72..0000000 --- a/scripts/replace.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# '@' - this char is prohibited to use -oldtext="$1" -newtext="$2" - -GoThroughDir() { - for D in $1*; do - if [ -d $D ] && [ "$D" == "./.git" ]; then - continue - elif [ -d $D ] && [ "$D" == "./build" ]; then - continue - elif [ -d $D ]; then - GoThroughDir $D/ - elif [ "$D" == "$0" ]; then - continue - else - sed -i -e "s@$oldtext@$newtext@" $D - fi - done -} - -GoThroughDir ./ - -grep -iHr "$oldtext" ./ | grep -v .git/ diff --git a/scripts/webserver.py b/scripts/webserver.py new file mode 100755 index 0000000..b00ccff --- /dev/null +++ b/scripts/webserver.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 + +# Tuxanci 2 - A first person shooter +# Copyright (C) 2007-2011 Tuxánci Development Team +# Copyright (C) 2025-2026 Connor Thomson +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +from http.server import HTTPServer, SimpleHTTPRequestHandler +import os + +addr = "127.0.0.1" +port = 8080 +path = "../build" +file = "tuxanci2.html" + +script_dir = os.path.dirname(os.path.abspath(__file__)) +serve_dir = os.path.join(script_dir, path) + +class HTTPServerHandler(SimpleHTTPRequestHandler): + def __init__(self, *args, **kwargs): + super().__init__(*args, directory=serve_dir, **kwargs) + + def do_GET(self): + if self.path in ("/", "/index.html"): + self.path = f"/{file}" + return super().do_GET() + +server = HTTPServer((addr, port), HTTPServerHandler) + +print(f"http://{addr}:{port}/") +server.serve_forever() diff --git a/shaders/obj.frag.slang b/shaders/obj.frag.slang new file mode 100644 index 0000000..90525a3 --- /dev/null +++ b/shaders/obj.frag.slang @@ -0,0 +1,35 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +struct FSInput { + float3 normal : TEXCOORD0; +}; + +struct FSOutput { + float4 out_color : SV_Target0; +}; + +FSOutput main(FSInput input) { + float3 light_direction = normalize(float3(-0.45, 0.75, 0.55)); + float light = max(dot(normalize(input.normal), light_direction), 0.0); + float shade = 0.22 + light * 0.78; + FSOutput output; + output.out_color = float4(shade, shade, shade, 1.0); + return output; +} diff --git a/shaders/obj.vert.slang b/shaders/obj.vert.slang new file mode 100644 index 0000000..2d45e1d --- /dev/null +++ b/shaders/obj.vert.slang @@ -0,0 +1,43 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +struct ObjUniforms { + float4x4 mvp; + float4x4 model; +}; + +[[vk::binding(0, 1)]] +ConstantBuffer<ObjUniforms> uniforms : register(b0, space1); + +struct VSInput { + float3 position : POSITION0; + float3 normal : NORMAL0; +}; + +struct VSOutput { + float4 position : SV_Position; + float3 normal : TEXCOORD0; +}; + +VSOutput main(VSInput input) { + VSOutput output; + output.position = mul(uniforms.mvp, float4(input.position, 1.0)); + output.normal = normalize(mul((float3x3)uniforms.model, input.normal)); + return output; +} diff --git a/shaders/text.frag.slang b/shaders/text.frag.slang new file mode 100644 index 0000000..f5eaf0c --- /dev/null +++ b/shaders/text.frag.slang @@ -0,0 +1,38 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +[[vk::binding(0, 2)]] +Texture2D<float4> text_texture : register(t0, space2); + +[[vk::binding(1, 2)]] +SamplerState text_sampler : register(s0, space2); + +struct FSInput { + float2 uv : TEXCOORD0; +}; + +struct FSOutput { + float4 out_color : SV_Target0; +}; + +FSOutput main(FSInput input) { + FSOutput output; + output.out_color = text_texture.Sample(text_sampler, float2(input.uv.x, 1.0 - input.uv.y)); + return output; +}
\ No newline at end of file diff --git a/shaders/text.vert.slang b/shaders/text.vert.slang new file mode 100644 index 0000000..867cb67 --- /dev/null +++ b/shaders/text.vert.slang @@ -0,0 +1,49 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +struct TextUniforms { + float4 clip_rect; +}; + +[[vk::binding(0, 1)]] +ConstantBuffer<TextUniforms> uniforms : register(b0, space1); + +struct VSOutput { + float4 position : SV_Position; + float2 uv : TEXCOORD0; +}; + +VSOutput main(uint vertexID : SV_VertexID) { + static const float2 positions[6] = { + float2(0.0, 0.0), + float2(1.0, 0.0), + float2(0.0, 1.0), + float2(0.0, 1.0), + float2(1.0, 0.0), + float2(1.0, 1.0) + }; + + float2 position = positions[vertexID]; + float2 clip = lerp(uniforms.clip_rect.xy, uniforms.clip_rect.zw, position); + + VSOutput output; + output.position = float4(clip, 0.0, 1.0); + output.uv = position; + return output; +}
\ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt deleted file mode 100644 index 77df5e5..0000000 --- a/src/CMakeLists.txt +++ /dev/null @@ -1,118 +0,0 @@ -############################################################################### -# tuxanci/src/CMakeLists.txt -############################################################################### -# LINKING ( for binary ) -############################################################################### -IF ( WITH_PHYSFS ) - LINK_LIBRARIES ( ${PHYSFS_LIBRARY} ) -ELSE ( WITH_PHYSFS ) - LINK_LIBRARIES ( ${ZIP_LIBRARIES} ) -ENDIF ( WITH_PHYSFS ) -IF ( NOT BUILD_SERVER ) - IF ( WITH_OPENGL ) - LINK_LIBRARIES ( ${OPENGL_LIBRARIES} ) - ENDIF ( WITH_OPENGL ) - IF ( WITH_AUDIO ) - LINK_LIBRARIES ( - ${SDL_LIBRARIES} - ${SDLIMAGE_LIBRARIES} - ${SDLMIXER_LIBRARIES} - ${SDLTTF_LIBRARY} - ) - ELSE ( WITH_AUDIO ) - LINK_LIBRARIES ( - ${SDL_LIBRARIES} - ${SDLIMAGE_LIBRARIES} - ${SDLTTF_LIBRARY} - ) - ENDIF ( WITH_AUDIO ) - LINK_LIBRARIES ( - ${CAIRO_LIBRARIES} - ${FONTCONFIG_LIBRARIES} - ) -ENDIF ( NOT BUILD_SERVER ) -IF( WIN32 ) - LINK_LIBRARIES( -lwsock32 -lintl ) -ENDIF ( WIN32 ) -############################################################################### -# SOURCE SPECIFICATION -############################################################################### -FILE ( GLOB DIRS * ) -FOREACH ( dir ${DIRS} ) - GET_FILENAME_COMPONENT (fn ${dir} NAME) - IF ( ${fn} STREQUAL "modules" ) - ADD_SUBDIRECTORY ( ${fn} ) - ELSE ( ${fn} STREQUAL "modules" ) - INCLUDE ( ${fn}/CMakeLists.txt OPTIONAL ) - ENDIF ( ${fn} STREQUAL "modules" ) -ENDFOREACH ( dir ) -############################################################################### -# INCLUDE CONFIGURED HEADERS -############################################################################### -INCLUDE_DIRECTORIES ( ${CMAKE_BINARY_DIR}/src/base/ ) -############################################################################### -# IPv6 CHECK -############################################################################### -IF ( ENABLE_IPV6 ) - ADD_DEFINITIONS ( -DSUPPORT_IPv6 ) -ENDIF ( ENABLE_IPV6 ) -############################################################################### -# PHYSFS CHECK -############################################################################### -IF ( WITH_PHYSFS ) - ADD_DEFINITIONS ( -DSUPPORT_LIBPHYSFS ) -ELSE ( WITH_PHYSFS ) - ADD_DEFINITIONS ( -DSUPPORT_LIBZIP ) -ENDIF ( WITH_PHYSFS ) -############################################################################### -# AUDIO CHECK -############################################################################### -IF ( NOT BUILD_SERVER ) - SET ( SRC_compile ${SRC_net} - ${SRC_widget} - ${SRC_screen} - ${SRC_base} - ${SRC_client} - ) - IF ( WITH_AUDIO ) - MESSAGE ( STATUS "<Building with audio as requested>" ) - SET ( SRC_compile ${SRC_compile} ${SRC_audio} ) - INCLUDE_DIRECTORIES ( ${CMAKE_CURRENT_SOURCE_DIR}/audio ) - ELSE ( WITH_AUDIO ) - ADD_DEFINITIONS ( -DNO_SOUND ) - ENDIF ( WITH_AUDIO ) -ENDIF ( NOT BUILD_SERVER ) -############################################################################### -# OPENGL CHECK -############################################################################### -IF ( WITH_OPENGL AND NOT BUILD_SERVER ) - ADD_DEFINITIONS ( -DSUPPORT_OPENGL ) -ENDIF ( WITH_OPENGL AND NOT BUILD_SERVER ) -############################################################################### -############################################################################### -# SERVER COMPILATION -############################################################################### -IF ( BUILD_SERVER ) - MESSAGE ( STATUS "<Building server as requested>" ) - SET ( SRC_compile ${SRC_net} ${SRC_server} ${SRC_base} ) - ADD_EXECUTABLE ( ${APPNAME} ${SRC_compile} ) -ELSE ( BUILD_SERVER ) -############################################################################### -# CLIENT COMPILATION -############################################################################### - MESSAGE ( STATUS "<Building client as requested>" ) - ADD_EXECUTABLE ( ${APPNAME} ${SRC_compile} ) -ENDIF ( BUILD_SERVER ) -################################################################################ -# INSTALLATION OF BINARY -################################################################################ -FILE ( GLOB _lib_files modules/mod*.c ) -FOREACH( _lib_file ${_lib_files} ) - GET_FILENAME_COMPONENT ( _lib ${_lib_file} NAME_WE ) - ADD_DEPENDENCIES ( ${APPNAME} ${_lib} ) - TARGET_LINK_LIBRARIES ( ${APPNAME} ${_lib} ) -ENDFOREACH ( _lib_file ${_lib_files} ) -INSTALL ( TARGETS ${APPNAME} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${APPNAME} ) -################################################################################ diff --git a/src/audio.c b/src/audio.c new file mode 100644 index 0000000..0f8a337 --- /dev/null +++ b/src/audio.c @@ -0,0 +1,125 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifdef ENABLE_AUDIO + +#include <libopenmpt/libopenmpt.h> +#include "ta_sdl.h" +#include "ta_alc.h" +#include "ta_al.h" +#include "files.h" +#include "main.h" +#include "ta_openmpt.h" + +#define TA_AUDIO_FREQUENCY_HZ 44100 +#define TA_AUDIO_BUFFER_AMOUNT 4 +#define TA_AUDIO_MIXBUFFER_SAMPLES 2048 + +ALCdevice *ta_audio_device; +ALCcontext *ta_audio_context; +ALuint ta_audio_source; +ALuint ta_audio_buffers[TA_AUDIO_BUFFER_AMOUNT]; +int16_t ta_audio_mixbuffer[TA_AUDIO_MIXBUFFER_SAMPLES]; + +static openmpt_module *ta_audio_module; + +static void ta_audio_decode(void) { + size_t frame_count = TA_AUDIO_MIXBUFFER_SAMPLES / 2; + size_t rendered = openmpt_module_read_interleaved_stereo( + ta_audio_module, + TA_AUDIO_FREQUENCY_HZ, + frame_count, + ta_audio_mixbuffer + ); + + if (rendered < frame_count) { + SDL_memset( + ta_audio_mixbuffer + rendered * 2, + 0, + (frame_count - rendered) * 2 * sizeof(*ta_audio_mixbuffer) + ); + } +} + +void ta_audio_init(void) { + ta_audio_device = ta_alc_open_device(); + + ALCint attributes[] = { + ALC_FREQUENCY, TA_AUDIO_FREQUENCY_HZ, + 0 + }; + ta_audio_context = ta_alc_create_context(ta_audio_device, attributes); + ta_alc_make_context_current(ta_audio_context); + + ta_audio_module = ta_openmpt_load_module(file_data_music_theme_it_start, file_data_music_theme_it_size); + + ta_openmpt_set_module_repeat_count(ta_audio_module, -1); + + alGenSources(1, &ta_audio_source); + + alGenBuffers(TA_AUDIO_BUFFER_AMOUNT, ta_audio_buffers); + + for (int index = 0; index < TA_AUDIO_BUFFER_AMOUNT; index++) { + ta_audio_decode(); + alBufferData( + ta_audio_buffers[index], + AL_FORMAT_STEREO16, + ta_audio_mixbuffer, + sizeof(ta_audio_mixbuffer), + TA_AUDIO_FREQUENCY_HZ + ); + } + + alSourceQueueBuffers( + ta_audio_source, + TA_AUDIO_BUFFER_AMOUNT, + ta_audio_buffers + ); + alSourcePlay(ta_audio_source); +} + +void ta_audio_update(void) { + ALint processed = 0; + alGetSourcei(ta_audio_source, AL_BUFFERS_PROCESSED, &processed); + + while (processed--) { + ALuint buffer; + alSourceUnqueueBuffers(ta_audio_source, 1, &buffer); + + ta_audio_decode(); + + alBufferData(buffer, AL_FORMAT_STEREO16, ta_audio_mixbuffer, sizeof(ta_audio_mixbuffer), TA_AUDIO_FREQUENCY_HZ); + alSourceQueueBuffers(ta_audio_source, 1, &buffer); + } +} + +void ta_audio_destroy(void) { + alSourceStop(ta_audio_source); + alDeleteSources(1, &ta_audio_source); + alDeleteBuffers(TA_AUDIO_BUFFER_AMOUNT, ta_audio_buffers); + if (!ta_audio_module) { + openmpt_module_destroy(ta_audio_module); + ta_audio_module = NULL; + } + ta_alc_make_context_current(NULL); + alcDestroyContext(ta_audio_context); + ta_alc_close_device(ta_audio_device); +} + +#endif // ENABLE_AUDIO
\ No newline at end of file diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt deleted file mode 100644 index 2e93cef..0000000 --- a/src/audio/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -############################################################################### -# tuxanci/src/*/CMakeLists.txt -############################################################################### -# Generate source_code files from .c files we find in directory -############################################################################### -MacroAddSources() -############################################################################### diff --git a/src/audio/audio.c b/src/audio/audio.c deleted file mode 100644 index 8e224fd..0000000 --- a/src/audio/audio.c +++ /dev/null @@ -1,55 +0,0 @@ -#include <stdio.h> -#include <assert.h> -#include <SDL_mixer.h> - -#include "main.h" -#include "audio.h" -#include "interface.h" - -static bool_t isAudioInit = FALSE; - -/** - * Return status of audio - */ -bool_t audio_is_inicialized() -{ - return isAudioInit; -} - -/** - * Initialize audio - */ -void audio_init() -{ - if (isParamFlag("--no-audio")) { - return; - } - - debug("Initializing audio"); - - if (SDL_InitSubSystem(SDL_INIT_AUDIO) == -1) { - error("Unable to initialize audio: %s", SDL_GetError()); - return; - } - - if (Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, 2, 1024) == -1) { - error("Unable to create proper audio settings: %s", Mix_GetError()); - return; - } - - Mix_AllocateChannels(16); - Mix_Volume(-1, MIX_MAX_VOLUME); - - isAudioInit = TRUE; -} - -/** - * Shutdown audio - */ -void audio_quit() -{ - debug("Shutting down audio"); - - Mix_CloseAudio(); - isAudioInit = TRUE; -} diff --git a/src/audio/audio.h b/src/audio/audio.h deleted file mode 100644 index cc0b197..0000000 --- a/src/audio/audio.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef AUDIO_H -#define AUDIO_H - -#include "main.h" - -extern bool_t audio_is_inicialized(); -extern void audio_init(); -extern void audio_quit(); - -#endif /* AUDIO_H */ diff --git a/src/audio/music.c b/src/audio/music.c deleted file mode 100644 index 9834630..0000000 --- a/src/audio/music.c +++ /dev/null @@ -1,232 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "storage.h" -#include "interface.h" -#include "audio.h" -#include "music.h" - -static list_t *listStorage; - -static bool_t isMusicInit = FALSE; -static bool_t var_music_is_active = TRUE; -static Mix_Music *currentMusic; - -/** - * Return status of music - */ -bool_t music_is_inicialized() -{ - return isMusicInit; -} - -/** - * Initialize music - */ -void music_init() -{ - if (audio_is_inicialized() == FALSE) { - isMusicInit = FALSE; - return; - } - - debug("Initializing music"); - - listStorage = storage_new(); - currentMusic = NULL; - isMusicInit = TRUE; - var_music_is_active = TRUE; - - if (isParamFlag("--no-music")) { - music_set_active(FALSE); - } else if (isParamFlag("--music")) { - music_set_active(TRUE); - } -} - -/** - * Load a file with music and returns it - */ -static Mix_Music *loadMixMusic(char *file) -{ - Mix_Music *mixer; - char str[STR_PATH_SIZE]; - - debug("Loading music [%s]", file); - - if (isFillPath(file)) { - strcpy(str, file); - } else { - sprintf(str, PATH_MUSIC "%s", file); - } - - accessExistFile(str); - - mixer = Mix_LoadMUS(str); - - if (mixer == NULL) { - error("Unable to load music [%s]", file); - return NULL; - } - - return mixer; -} - -/** - * Prepare the music mixer - */ -static void playMixMusic() -{ - if (currentMusic != NULL) { - Mix_PlayMusic(currentMusic, 1000); - } -} - -/** - * Remove music from the memory - */ -static void destroyMusic(void *p) -{ - Mix_FreeMusic((Mix_Music *) p); -} - -/** - * Add a file to the music list - */ -void music_add(char *file, char *name, char *group) -{ - Mix_Music *new; - - if (isMusicInit == FALSE) { - return; - } - - assert(file != NULL); - assert(name != NULL); - assert(group != NULL); - - new = loadMixMusic(file); - storage_add(listStorage, group, name, new); -} - -/** - * Stop playing music - */ -void music_stop() -{ - if (isMusicInit == FALSE || var_music_is_active == FALSE) { - return; - } - - if (currentMusic != NULL) { - debug("Stopping playing music"); - - Mix_HaltMusic(); - currentMusic = NULL; - } -} - -/** - * Play music playback - */ -void music_play(char *name, char *group) -{ - static char currentMusic_group[STR_SIZE]; - static char currentMusic_name[STR_SIZE]; - static int isStrInit = 0; - - if (isStrInit == 0) { - strcpy(currentMusic_group, "none"); - strcpy(currentMusic_name, "none"); - isStrInit = 1; - } - - if (isMusicInit == FALSE || var_music_is_active == FALSE) { - return; - } - - if (currentMusic != NULL && - strcmp(currentMusic_group, group) == 0 && - strcmp(currentMusic_name, name) == 0) { - return; - } - - if (currentMusic != NULL) { - music_stop(); - } - - currentMusic = storage_get(listStorage, group, name); - strcpy(currentMusic_group, group); - strcpy(currentMusic_name, name); - - if (currentMusic != NULL) { - debug("Playing music [%s]", name); - - playMixMusic(); - } -} - -/** - * Set music status to active/inactive - */ -void music_set_active(bool_t n) -{ - static Mix_Music *music = NULL; - - if (n == FALSE) { - music = currentMusic; - music_stop(); - } else if (n == TRUE) { - currentMusic = music; - playMixMusic(); - } - - var_music_is_active = n; -} - -/** - * Return the activity status of music - */ -bool_t music_is_active() -{ - return var_music_is_active; -} - -/** - * Return the music playing right now - */ -char *music_get_current() -{ - return "unknown"; -} - -/** - * Remove all music files belonging to the certain group - */ -void music_del_all_in_group(char *group) -{ - if (isMusicInit == FALSE) { - return; - } - - storage_del_all(listStorage, group, destroyMusic); -} - -/** - * Shutdown music - */ -void music_quit() -{ - if (isMusicInit == FALSE) { - return; - } - - debug("Shutting down music"); - - music_stop(); - storage_destroy(listStorage, destroyMusic); - isMusicInit = FALSE; -} diff --git a/src/audio/music.h b/src/audio/music.h deleted file mode 100644 index 9eedac7..0000000 --- a/src/audio/music.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef MUSIC_H -#define MUSIC_H - -#ifndef NO_SOUND - -#include <SDL_mixer.h> -#include "main.h" - -#define MUSIC_GROUP_BASE "base" -#define MUSIC_GROUP_USER "user" - -/* - typedef struct music_struct - { - char *name; - int group; - Mix_Music *music; - } music_t; - */ - -extern bool_t music_is_inicialized(); -extern void music_init(); -extern void music_add(char *file, char *name, char *group); -extern void music_stop(); -extern void music_play(char *name, char *group); -extern void music_set_active(bool_t n); -extern bool_t music_is_active(); -extern char *music_get_current(); -extern void music_del_all_in_group(char *group); -extern void music_quit(); - -#endif /* NO_SOUND */ -#endif /* MUSIC_H */ diff --git a/src/audio/sound.c b/src/audio/sound.c deleted file mode 100644 index 79a152d..0000000 --- a/src/audio/sound.c +++ /dev/null @@ -1,148 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "storage.h" -#include "interface.h" -#include "audio.h" -#include "sound.h" - -static list_t *listStorage; -static bool_t isSoundInit = FALSE; -static bool_t var_sound_is_active = TRUE; - -/** - * Return status of sound - */ -bool_t sound_is_inicialized() -{ - return isSoundInit; -} - -/** - * Initialize sound - */ -void sound_init() -{ - if (audio_is_inicialized() == FALSE) { - isSoundInit = FALSE; - return; - } - - debug("Initializing sound"); - - listStorage = storage_new(); - isSoundInit = TRUE; - var_sound_is_active = TRUE; - - if (isParamFlag("--no-sound")) { - sound_set_active(FALSE); - } else if (isParamFlag("--sound")) { - sound_set_active(TRUE); - } -} - -/** - * Load sound from file (Null/mixer) - */ -static Mix_Chunk *loadMixSound(char *file) -{ - Mix_Chunk *new; - char str[STR_PATH_SIZE]; - - debug("Loading sound [%s]", file); - - sprintf(str, PATH_SOUND "%s", file); - accessExistFile(str); - new = Mix_LoadWAV(str); - - if (new == NULL) { - error("Unable to load sound [%s]: %s", str, Mix_GetError()); - return NULL; - } - - return new; -} - -/** - * Play sound with mixer - */ -static void playMixSound(Mix_Chunk *p) -{ - if (Mix_PlayChannel(-1, p, 0) == -1) { - error("Unable to play sound: %s", Mix_GetError()); - return; - } -} - -/** - * Destroy mixer chunk - */ -static void destroySound(void *p) -{ - Mix_FreeChunk((Mix_Chunk *) p); -} - -/** - * Add a sound to list - */ -void sound_add(char *file, char *name, char *group) -{ - Mix_Chunk *new; - - if (isSoundInit == FALSE) { - return; - } - - assert(file != NULL); - assert(name != NULL); - assert(group != NULL); - - new = loadMixSound(file); - storage_add(listStorage, group, name, new); -} - -/** - * Start playing a sound from a file from the list - */ -void sound_play(char *name, char *group) -{ - if (isSoundInit == FALSE || var_sound_is_active == FALSE) { - return; - } - - playMixSound(storage_get(listStorage, group, name)); -} - -/** - * Set sound status to active/inactive (true/false) - */ -void sound_set_active(bool_t n) -{ - var_sound_is_active = n; -} - -/** - * Return status of sound - */ -bool_t sound_is_active() -{ - return var_sound_is_active; -} - -/** - * Shutdown sound - */ -void sound_quit() -{ - if (isSoundInit == FALSE) { - return; - } - - debug("Shutting down sound"); - - storage_destroy(listStorage, destroySound); - isSoundInit = FALSE; -} diff --git a/src/audio/sound.h b/src/audio/sound.h deleted file mode 100644 index f8cf2d3..0000000 --- a/src/audio/sound.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef SOUND_H -#define SOUND_H - -#ifndef NO_SOUND - -#include <SDL_mixer.h> -#include "main.h" - -#define SOUND_GROUP_BASE "base" -#define SOUND_GROUP_USER "user" - -/* - typedef struct sound_struct - { - char *name; - int group; - Mix_Chunk *sound; - } sound_t; - */ - -extern bool_t sound_is_inicialized(); -extern void sound_init(); -extern void sound_add(char *file, char *name, char *group); -extern void sound_play(char *name, char *group); -extern void sound_set_active(bool_t n); -extern bool_t sound_is_active(); -extern void sound_quit(); - -#endif /* NO_SOUND */ -#endif /* SOUND_H */ diff --git a/src/base/CMakeLists.txt b/src/base/CMakeLists.txt deleted file mode 100644 index 2e93cef..0000000 --- a/src/base/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -############################################################################### -# tuxanci/src/*/CMakeLists.txt -############################################################################### -# Generate source_code files from .c files we find in directory -############################################################################### -MacroAddSources() -############################################################################### diff --git a/src/base/archive.c b/src/base/archive.c deleted file mode 100644 index 2c188c3..0000000 --- a/src/base/archive.c +++ /dev/null @@ -1,143 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#ifdef SUPPORT_LIBPHYSFS -#include <physfs.h> -#endif /* SUPPORT_LIBPHYSFS */ - -#ifdef SUPPORT_LIBZIP -#include <zip.h> -#endif /* SUPPORT_LIBZIP */ - -#include "main.h" -#include "archive.h" - -#define ARCHIVE_BUFFER_SIZE 4096 -#define STR_TMP_FILE_NAME 4096 - -#ifdef SUPPORT_LIBZIP -char *archive_extract_file(char *archive, char *filename) -{ - char name[STR_TMP_FILE_NAME]; - char buf[ARCHIVE_BUFFER_SIZE]; - - struct zip *zipArchive; - struct zip_file *zipFile; - - FILE *file; - int len; - int err; - char *tmp; - -#ifndef __WIN32__ - tmp = getenv("TMPDIR") == NULL ? "/tmp" : getenv("TMPDIR"); -#else /* __WIN32__ */ - tmp = getenv("TEMP"); -#endif /* __WIN32__ */ - sprintf(name, "%s%stuxanci.%d-%s", tmp, PATH_SEPARATOR, getpid(), filename); - - /*printf("ARCHIVE %s %s %s\n", archive, filename, name);*/ - - zipArchive = zip_open(archive, 0, &err); - - if (zipArchive == NULL) { - error("Unable to open archive [%s]", archive); - return NULL; - } - - zipFile = zip_fopen(zipArchive, filename, ZIP_FL_UNCHANGED); - - if (zipFile == NULL) { - error("Unable to extract the file [%s] from archive [%s]", filename, archive); - zip_close(zipArchive); - return NULL; - } - - if ((file = fopen(name, "wb")) == NULL) { - error("Unable to create temporary file [%s]", name); - zip_fclose(zipFile); - zip_close(zipArchive); - return NULL; - } - - do { - len = zip_fread(zipFile, buf, ARCHIVE_BUFFER_SIZE); - - if (len > 0) { - fwrite(buf, len, 1, file); - } - } while (len > 0); - - fclose(file); - zip_fclose(zipFile); - zip_close(zipArchive); - - return strdup(name); -} -#endif /* SUPPORT_LIBZIP */ - -#ifdef SUPPORT_LIBPHYSFS -char *archive_extract_file(char *archive, char *filename) -{ - char name[STR_TMP_FILE_NAME]; - char buffer[ARCHIVE_BUFFER_SIZE]; - - PHYSFS_file *file_archive; - FILE *file; - int count; - - char *tmp; - -#ifndef __WIN32__ - tmp = getenv("TMPDIR") == NULL ? "/tmp" : getenv("TMPDIR"); -#else /* __WIN32__ */ - tmp = getenv("TEMP"); -#endif /* __WIN32__ */ - sprintf(name, "%s%stuxanci.%d-%s", tmp, PATH_SEPARATOR, getpid(), filename); - - if (!(PHYSFS_init(get_program_name()))) { - error("Unable to init physfs"); - return NULL; - } - - if (!(PHYSFS_addToSearchPath(archive, 1))) { - error("Unable to open archive [%s]", archive); - PHYSFS_deinit(); - return NULL; - } - - file_archive = PHYSFS_openRead(filename); - - if (file_archive == NULL) { - error("Unable to extract the file [%s] from archive [%s]", filename, archive); - PHYSFS_deinit(); - return NULL; - } - - if ((file = fopen(name, "wb")) == NULL) { - error("Unable to create temporary file [%s]", name); - PHYSFS_close(file_archive); - PHYSFS_deinit(); - return NULL; - } - - while ((count = PHYSFS_read(file_archive, buffer, 1, ARCHIVE_BUFFER_SIZE)) > 0) { - fwrite(buffer, count, 1, file); - } - - PHYSFS_close(file_archive); - fclose(file); - - PHYSFS_deinit(); - - return strdup(name); -} -#endif /* SUPPORT_LIBPHYSFS */ - -void archive_delete_file(char *s) -{ - unlink(s); - free(s); -} diff --git a/src/base/archive.h b/src/base/archive.h deleted file mode 100644 index e2ad361..0000000 --- a/src/base/archive.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef ARCHIVE_H -#define ARCHIVE_H - -extern char *archive_extract_file(char *archive, char *file); -extern void archive_delete_file(char *s); - -#endif /* ARCHIVE_H */ diff --git a/src/base/arena.c b/src/base/arena.c deleted file mode 100644 index 6d883b3..0000000 --- a/src/base/arena.c +++ /dev/null @@ -1,392 +0,0 @@ -#include <stdlib.h> -#include <assert.h> -#include <string.h> - -#include "main.h" -#include "arena.h" -#include "list.h" -#include "tux.h" -#include "shot.h" -#include "item.h" -#include "myTimer.h" -#include "modules.h" - -#ifndef PUBLIC_SERVER -#include "hotKey.h" -#include "world.h" -#include "setting.h" -#include "layer.h" -#endif /* PUBLIC_SERVER */ - -static arena_t *currentArena; -static int splitType; - -#ifndef PUBLIC_SERVER -static int isBigArena(arena_t *arena) -{ - if (arena->w > WINDOW_SIZE_X || arena->h > WINDOW_SIZE_Y) { - return 1; - } else { - return 0; - } -} - -static int isTuxNear(tux_t *tux1, tux_t *tux2) -{ - if (abs(tux1->x - tux2->x) < WINDOW_SIZE_X && - abs(tux1->y - tux2->y) < WINDOW_SIZE_Y) { - return 1; - } - - return 0; -} -#endif /* PUBLIC_SERVER */ - -void arena_set_current(arena_t *p) -{ - currentArena = p; -} - -arena_t *arena_get_current() -{ - return currentArena; -} - -void hotkey_splitArena() -{ - if (splitType == SCREEN_SPLIT_VERTICAL) { - splitType = SCREEN_SPLIT_HORIZONTAL; - } else { - splitType = SCREEN_SPLIT_VERTICAL; - } -} - -#ifndef PUBLIC_SERVER -void arena_init() -{ - splitType = SCREEN_SPLIT_VERTICAL; - - if (getParam("--split-vertical")) { - splitType = SCREEN_SPLIT_VERTICAL; - debug("Set vertical screen splitting"); - } - - if (getParam("--split-horizontal")) { - splitType = SCREEN_SPLIT_HORIZONTAL; - debug("Set horizontal screen splitting"); - } - - hot_key_register(SDLK_F3, hotkey_splitArena); -} - -void arena_quit() -{ - hot_key_unregister(SDLK_F3); -} -#endif /* PUBLIC_SERVER */ - -arena_t *arena_new(int w, int h) -{ - arena_t *new; - int zone_w, zone_h; - - new = malloc(sizeof(arena_t)); - -#ifndef PUBLIC_SERVER - new->background = NULL; - strcpy(new->music, ""); -#endif /* PUBLIC_SERVER */ - - new->w = w; - new->h = h; - - new->listTimer = list_new(); - - if (w > 800 || h > 600) { - zone_w = 320; - zone_h = 240; - } else { - zone_w = 80; - zone_h = 60; - } - - new->spaceTux = space_new(w, h, zone_w, zone_h, tux_get_status, tux_set_status); - new->spaceItem = space_new(w, h, zone_w, zone_h, item_get_status, item_set_status); - new->spaceShot = space_new(w, h, zone_w, zone_h, shot_get_status, shot_set_status); - - new->countRound = 0; - new->max_countRound = 0; - - return new; -} - -int arena_conflict_space(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2) -{ - return (x1 < x2 + w2 && x2 < x1 + w1 && y1 < y2 + h2 && y2 < y1 + h1); -} - -int arena_is_free_space(arena_t *arena, int x, int y, int w, int h) -{ - if ((x < 0 || y < 0 || x + w > arena->w || y + h > arena->h) || - space_is_conflict_with_object(arena->spaceTux, x, y, w, h) || - space_is_conflict_with_object(arena->spaceShot, x, y, w, h) || - space_is_conflict_with_object(arena->spaceItem, x, y, w, h) || - space_is_conflict_with_object(arena->spaceShot, x, y, w, h) || - module_is_conflict(x, y, w, h)) { - return 0; - } - - return 1; -} - -void arena_find_free_space(arena_t *arena, int *x, int *y, int w, int h) -{ - int z_x; - int z_y; - - assert(x != NULL); - assert(y != NULL); - - do { - z_x = random() % (arena->w - w); - z_y = random() % (arena->h - h); - } while (arena_is_free_space(arena, z_x, z_y, w, h) == 0); - - *x = z_x; - *y = z_y; -} - -void arena_get_center_screen(int *screen_x, int *screen_y, int x, int y, int screen_size_x, int screen_size_y) -{ - arena_t *arena; - - arena = arena_get_current(); - - *screen_x = x - screen_size_x / 2; - *screen_y = y - screen_size_y / 2; - - if (*screen_x < 0) { - *screen_x = 0; - } - - if (*screen_y < 0) { - *screen_y = 0; - } - - if (*screen_x + screen_size_x >= arena->w) { - *screen_x = arena->w - screen_size_x; - } - - if (*screen_y + screen_size_y >= arena->h) { - *screen_y = arena->h - screen_size_y; - } -} - -#ifndef PUBLIC_SERVER -static void drawBackground(arena_t *arena, int screen_x, int screen_y) -{ - if (isBigArena(arena)) { - int i, j; - - for (i = screen_y / arena->background->h; - i <= screen_y / arena->background->h + WINDOW_SIZE_Y / arena->background->h + 1; - i++) { - for (j = screen_x / arena->background->w; - j <= screen_x / arena->background->w + WINDOW_SIZE_X / arena->background->w + 1; - j++) { - addLayer(arena->background, j * arena->background->w, - i * arena->background->h, 0, 0, arena->background->w, - arena->background->h, -100); - - /*count++;*/ - } - } - } else { - addLayer(arena->background, 0, 0, 0, 0, arena->background->w, arena->background->h, -100); - } -} - -static void action_tux_draw(space_t *space, tux_t *tux, void *p) -{ - tux_draw(tux); -} - -static void action_item_draw(space_t *space, item_t *item, void *p) -{ - item_draw(item); -} - -static void action_shot_draw(space_t *space, shot_t *shot, void *p) -{ - shot_draw(shot); -} - -static void drawObjects(arena_t *arena, int screen_x, int screen_y) -{ - space_action_from_location(arena->spaceTux, action_tux_draw, NULL, screen_x, screen_y, WINDOW_SIZE_X, WINDOW_SIZE_Y); - space_action_from_location(arena->spaceItem, action_item_draw, NULL, screen_x, screen_y, WINDOW_SIZE_X, WINDOW_SIZE_Y); - space_action_from_location(arena->spaceShot, action_shot_draw, NULL, screen_x, screen_y, WINDOW_SIZE_X, WINDOW_SIZE_Y); - - module_draw(screen_x, screen_y, WINDOW_SIZE_X, WINDOW_SIZE_Y); -} - -static void drawSplitArenaForTux(arena_t *arena, tux_t *tux, int location_x, int location_y) -{ - int screen_x, screen_y; - - switch (splitType) { - case SCREEN_SPLIT_HORIZONTAL: - arena_get_center_screen(&screen_x, &screen_y, tux->x, tux->y, WINDOW_SIZE_X, WINDOW_SIZE_Y / 2); - break; - case SCREEN_SPLIT_VERTICAL: - arena_get_center_screen(&screen_x, &screen_y, tux->x, tux->y, WINDOW_SIZE_X / 2, WINDOW_SIZE_Y); - break; - default: - screen_x = -1; - screen_y = -1; - fatal("Unknown method of splitting the screen"); - break; - } - - drawBackground(arena, screen_x, screen_y); - drawObjects(arena, screen_x, screen_y); - - switch (splitType) { - case SCREEN_SPLIT_HORIZONTAL: - layer_draw_slpit(location_x, location_y, screen_x, screen_y, WINDOW_SIZE_X, WINDOW_SIZE_Y / 2); - break; - case SCREEN_SPLIT_VERTICAL: - layer_draw_slpit(location_x, location_y, screen_x, screen_y, WINDOW_SIZE_X / 2, WINDOW_SIZE_Y); - break; - default: - screen_x = -1; - screen_y = -1; - fatal("Unknown method of splitting the screen"); - break; - } -} - -void drawSplitArena(arena_t *arena) -{ - tux_t *tux = NULL; - - tux = world_get_control_tux(TUX_CONTROL_KEYBOARD_RIGHT); - - if (tux != NULL) { - switch (splitType) { - case SCREEN_SPLIT_HORIZONTAL: - drawSplitArenaForTux(arena, tux, 0, WINDOW_SIZE_Y / 2); - break; - case SCREEN_SPLIT_VERTICAL: - drawSplitArenaForTux(arena, tux, WINDOW_SIZE_X / 2, 0); - break; - } - } - - tux = world_get_control_tux(TUX_CONTROL_KEYBOARD_LEFT); - - if (tux != NULL) { - drawSplitArenaForTux(arena, tux, 0, 0); - } -} - -void drawCenterArena(arena_t *arena, int x, int y) -{ - int screen_x, screen_y; - - arena_get_center_screen(&screen_x, &screen_y, x, y, WINDOW_SIZE_X, WINDOW_SIZE_Y); - drawBackground(arena, screen_x, screen_y); - drawObjects(arena, screen_x, screen_y); - layer_draw_center(x, y); -} - -void drawSimpleArena(arena_t *arena) -{ - int screen_x, screen_y; - tux_t *tux = NULL; - - tux = world_get_control_tux(TUX_CONTROL_KEYBOARD_RIGHT); - - if (tux == NULL) { - return; - } - - screen_x = 0; - screen_y = 0; - - drawBackground(arena, screen_x, screen_y); - drawObjects(arena, screen_x, screen_y); - layer_draw_all(tux->x, tux->y); -} - -void arena_draw(arena_t *arena) -{ - if (isBigArena(arena) && - net_multiplayer_get_game_type() == NET_GAME_TYPE_NONE && !setting_is_ai()) { - tux_t *tux1; - tux_t *tux2; - - tux1 = world_get_control_tux(TUX_CONTROL_KEYBOARD_RIGHT); - tux2 = world_get_control_tux(TUX_CONTROL_KEYBOARD_LEFT); - - if (isTuxNear(tux1, tux2)) { - drawCenterArena(arena, (tux1->x + tux2->x) / 2, (tux1->y + tux2->y) / 2); - } else { - drawSplitArena(arena); - } - - return; - } - - if (isBigArena(arena)) { - tux_t *tux = NULL; - - tux = world_get_control_tux(TUX_CONTROL_KEYBOARD_RIGHT); - - if (tux == NULL) { - return; - } - - drawCenterArena(arena, tux->x, tux->y); - return; - } - - drawSimpleArena(arena); -} - -#endif /* PUBLIC_SERVER */ - -static void action_tux(space_t *space, tux_t *tux, void *p) -{ - tux_event(tux); -} - -void arena_event(arena_t *arena) -{ - int i; - - for (i = 0; i < 8; i++) { - shot_check_is_tux_screen(arena); - - item_event_conglicts_shot_with_item(arena); - tux_conflict_woth_shot(arena); - module_event(); - - shot_event_move_list(arena); - } - - item_event(arena->spaceItem); - - space_action(arena->spaceTux, action_tux, NULL); - - timer_event(arena->listTimer); -} - -void arena_destroy(arena_t *p) -{ - space_destroy_with_item(p->spaceTux, tux_destroy); - space_destroy_with_item(p->spaceItem, item_destroy); - space_destroy_with_item(p->spaceShot, shot_destroy); - timer_destroy(p->listTimer); - free(p); -} diff --git a/src/base/arena.h b/src/base/arena.h deleted file mode 100644 index a01484a..0000000 --- a/src/base/arena.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef ARENA_H -#define ARENA_H - -#include "main.h" - -#ifndef PUBLIC_SERVER -#include "image.h" -#endif /* PUBLIC_SERVER */ - -#include "list.h" -#include "space.h" - -#ifdef __WIN32__ -#define random rand -#endif /* __WIN32__ */ - -#define SCREEN_SPLIT_HORIZONTAL 1 -#define SCREEN_SPLIT_VERTICAL 2 - -typedef struct arena_struct { -#ifndef PUBLIC_SERVER - char music[STR_SIZE]; - - image_t *background; -#endif /* PUBLIC_SERVER */ - int w, h; - - list_t *listTimer; - - space_t *spaceShot; - space_t *spaceTux; - space_t *spaceItem; - - int countRound; - int max_countRound; -} arena_t; - -extern void arena_set_current(arena_t *p); -extern arena_t *arena_get_current(); -extern void arena_init(); -extern void arena_quit(); -extern arena_t *arena_new(int w, int h); -extern int arena_conflict_space(int x1, int y1, int w1, int h1, - int x2, int y2, int w2, int h2); -extern int arena_is_free_space(arena_t *arena, int x, int y, int w, int h); -extern void arena_find_free_space(arena_t *arena, int *x, int *y, int w, int h); -extern void arena_get_center_screen(int *screen_x, int *screen_y, int x, int y, - int screen_size_x, int screen_size_y); -#ifndef PUBLIC_SERVER -extern void arena_draw(arena_t *arena); -#endif /* PUBLIC_SERVER */ -extern void arena_event(arena_t *arena); -extern void arena_destroy(arena_t *p); - -#endif /* ARENA_H */ diff --git a/src/base/arenaFile.c b/src/base/arenaFile.c deleted file mode 100644 index b5ef6a2..0000000 --- a/src/base/arenaFile.c +++ /dev/null @@ -1,413 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "textFile.h" -#include "arenaFile.h" -#include "arena.h" -#include "tux.h" -#include "shot.h" -#include "item.h" -#include "director.h" -#include "modules.h" -#include "archive.h" -#include "homeDirector.h" - -#ifndef PUBLIC_SERVER -#include "configFile.h" -#include "image.h" -#endif /* PUBLIC_SERVER */ - -#ifndef NO_SOUND -#include "music.h" -#endif /* NO_SOUND */ - -static list_t *listArenaFile; -static bool_t isArenaFileInit = FALSE; - -bool_t arena_file_is_inicialized() -{ - return isArenaFileInit; -} - -int arena_file_get_value(char *line, char *env, char *val, int len) -{ - char *offset_env; - char *offset_val_begin; - char *offset_val_end; - char clone_env[STR_SIZE]; - int val_len; - - strcpy(clone_env, " "); - strcat(clone_env, env); - - offset_env = strstr(line, clone_env); - - if (offset_env == NULL) { - return -1; - } - - offset_val_begin = strchr(offset_env, '"'); - - if (offset_val_begin == NULL) { - return -1; - } - - offset_val_end = strchr(offset_val_begin + 1, '"'); - - if (offset_val_end == NULL) { - return -1; - } - - val_len = (int) (offset_val_end - (offset_val_begin + 1)); - - if (val_len > len - 1) { - val_len = len - 1; - } - - memset(val, 0, len); - memcpy(val, offset_val_begin + 1, val_len); - - return 0; -} - - -#ifndef PUBLIC_SERVER -image_t *arena_file_load_image(arenaFile_t *arenaFile, char *filename, char *group, char *name, int alpha) -{ - char *extractFile; - image_t *image; - - extractFile = archive_extract_file(arenaFile->path, filename); - image = image_add(extractFile, alpha, name, group); - archive_delete_file(extractFile); - - return image; -} - -#ifndef NO_SOUND -void loadMusicFromArena(arenaFile_t *arenaFile, char *filename, char *group, char *name) -{ - char *extractFile; - - extractFile = archive_extract_file(arenaFile->path, filename); - music_add(extractFile, name, group); - archive_delete_file(extractFile); -} -#endif /* NO_SOUND */ -#endif /* PUBLIC_SERVER */ - -static void cmd_arena(arena_t **arena, char *line) -{ - char str_image[STR_SIZE]; - char str_w[STR_SIZE]; - char str_h[STR_SIZE]; - - if (arena_file_get_value(line, "background", str_image, STR_SIZE) != 0) { - return; - } - - if (arena_file_get_value(line, "w", str_w, STR_SIZE) != 0) { - return; - } - - if (arena_file_get_value(line, "h", str_h, STR_SIZE) != 0) { - return; - } - - (*arena) = arena_new(atoi(str_w), atoi(str_h)); -#ifndef PUBLIC_SERVER - (*arena)->background = image_get(IMAGE_GROUP_USER, str_image); -#endif /* PUBLIC_SERVER */ - /* - (*arena)->w = atoi(str_w); - (*arena)->h = atoi(str_h); - */ - arena_set_current(*arena); - - debug("Arena loaded"); -} - -static void cmd_module_load(char *line) -{ - char str_file[STR_SIZE]; - - if (arena_file_get_value(line, "file", str_file, STR_SIZE) != 0) { - return; - } - - module_load(str_file); -} - -#ifndef PUBLIC_SERVER -static void cmd_loadImage(arenaFile_t *arenaFile, char *line) -{ - char str_file[STR_SIZE]; - char str_name[STR_SIZE]; - char str_alpha[STR_SIZE]; - - if (arena_file_get_value(line, "file", str_file, STR_SIZE) != 0) { - return; - } - - if (arena_file_get_value(line, "name", str_name, STR_SIZE) != 0) { - return; - } - - if (arena_file_get_value(line, "alpha", str_alpha, STR_SIZE) != 0) { - return; - } - - /*printf("str_file=%s str_name=%s str_alpha=%s\n", str_file, str_name, str_alpha);*/ - arena_file_load_image(arenaFile, str_file, IMAGE_GROUP_USER, str_name, isYesOrNO(str_alpha)); - - /*image_add(str_file, isYesOrNO(str_alpha), str_name, IMAGE_GROUP_USER);*/ -} - -static void cmd_loadMusic(arenaFile_t *arenaFile, char *line) -{ - char str_file[STR_SIZE]; - char str_name[STR_SIZE]; - - if (arena_file_get_value(line, "file", str_file, STR_SIZE) != 0) { - return; - } - - if (arena_file_get_value(line, "name", str_name, STR_SIZE) != 0) { - return; - } - -#ifndef NO_SOUND - /*music_add(str_file, str_name, MUSIC_GROUP_USER);*/ - loadMusicFromArena(arenaFile, str_file, MUSIC_GROUP_USER, str_name); -#endif /* NO_SOUND */ -} - -static void cmd_music_play(arena_t *arena, char *line) -{ - char str_music[STR_SIZE]; - - if (arena_file_get_value(line, "music", str_music, STR_SIZE) != 0) { - return; - } - - strcpy(arena->music, str_music); -} -#endif /* PUBLIC_SERVER */ - -int arena_file_get_count() -{ - return listArenaFile->count; -} - -static char *arena_file_get_status(textFile_t *ts, char *s) -{ - int len; - int i; - - len = strlen(s); - - for (i = 0; i < ts->text->count; i++) { - char *line; - - line = (char *) (ts->text->list[i]); - - if (strncmp(line, s, len) == 0) { - return line + len + 1; - } - } - - return NULL; -} - -char *arena_file_get_name(arenaFile_t *arenaFile) -{ - char *ret; - - ret = arena_file_get_status(arenaFile->map, "name"); - return (ret != NULL ? ret : "arena_no_name"); -} - -char *arena_file_get_net_name(arenaFile_t *arenaFile) -{ - char *ret; - - ret = arena_file_get_status(arenaFile->map, "netName"); - return (ret != NULL ? ret : "arena_no_net_name"); -} - -arenaFile_t *arena_file_get_file_format_net_name(char *s) -{ - int i; - - for (i = 0; i < listArenaFile->count; i++) { - arenaFile_t *arenaFile; - - arenaFile = (arenaFile_t *) listArenaFile->list[i]; - - if (strcmp(arena_file_get_net_name(arenaFile), s) == 0) { - return arenaFile; - } - } - - return NULL; -} - -char *arena_file_get_image(arenaFile_t *arenaFile) -{ - return arena_file_get_status(arenaFile->map, "screen"); -} - -arenaFile_t *arena_file_get(int n) -{ - return (arenaFile_t *) listArenaFile->list[n]; -} - -int arena_file_get_id(arenaFile_t *arenaFile) -{ - int i; - - for (i = 0; i < listArenaFile->count; i++) { - arenaFile_t *this; - - this = (arenaFile_t *) listArenaFile->list[i]; - - if (this == arenaFile) { - return i; - } - } - - return -1; -} - -arena_t *arena_file_get_arena(arenaFile_t *arenaFile) -{ - textFile_t *ts; - arena_t *arena = NULL; /* no warnings */ - int i; - - ts = (textFile_t *) arenaFile->map; - - for (i = 0; i < ts->text->count; i++) { - char *line; - - line = (char *) ts->text->list[i]; - module_cmd(line); -#ifndef PUBLIC_SERVER - if (strncmp(line, "loadImage", 9) == 0) { - cmd_loadImage(arenaFile, line); - } - - if (strncmp(line, "loadMusic", 9) == 0) { - cmd_loadMusic(arenaFile, line); - } - - if (strncmp(line, "playMusic", 9) == 0) { - cmd_music_play(arena, line); - } -#endif /* PUBLIC_SERVER */ - - if (strncmp(line, "arena", 5) == 0) { - cmd_arena(&arena, line); - } - - if (strncmp(line, "loadModule", 10) == 0) { - cmd_module_load(line); - } - } - - return arena; -} - -arenaFile_t *arena_file_new(char *path) -{ - arenaFile_t *new; - char *extractFile; - - new = malloc(sizeof(arenaFile_t)); - new->path = strdup(path); - - extractFile = archive_extract_file(path, "arena.map"); - new->map = text_file_load(extractFile); - archive_delete_file(extractFile); - - return new; -} - -void arena_destroyFile(arenaFile_t *p) -{ - text_file_destroy(p->map); - free(p->path); - free(p); -} - -void arena_file_load(char *path) -{ - list_add(listArenaFile, arena_file_new(path)); -} - -static void load_arenaFromDirector(char *director) -{ - director_t *p; - int i; - - debug("Loading arena files [%s]", director); - p = director_load(director); - - if (p == NULL) { - error("Directory not found [%s]", director); - exit(-1); - } - - unsigned l = strlen(director) - 1; - - for (i = 0; i < p->list->count; i++) { - char *line; - - line = (char *) p->list->list[i]; - - if (strstr(line, ".zip") != NULL && strstr(line, "~") == NULL) { - char path[STR_PATH_SIZE]; - - - if (director[l] == (char) PATH_SEPARATOR[0]) { - sprintf(path, "%s%s", director, line); - } else { - sprintf(path, "%s%s%s", director, PATH_SEPARATOR, line); - } - - debug("Loading arena [%s]", line); - - accessExistFile(path); - arena_file_load(path); - } - } - - /*printf("No. of Arens: %d\n", listArenaFile->count);*/ - director_destroy(p); - -} - -void arena_file_init() -{ -#ifndef PUBLIC_SERVER - assert(image_is_inicialized() == TRUE); -#endif /* PUBLIC_SERVER */ - isArenaFileInit = TRUE; - listArenaFile = list_new(); - - load_arenaFromDirector(PATH_ARENA); - -#ifndef PUBLIC_SERVER - load_arenaFromDirector(home_director_get()); -#endif /* PUBLIC_SERVER */ -} - -void arena_file_quit() -{ - isArenaFileInit = FALSE; - list_destroy_item(listArenaFile, arena_destroyFile); -} diff --git a/src/base/arenaFile.h b/src/base/arenaFile.h deleted file mode 100644 index 40a9f5f..0000000 --- a/src/base/arenaFile.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef ARENA_FILE_H -#define ARENA_FILE_H - -#define PUBLIC_SERVER_PATH_ARENA "./arena/" - -#include "main.h" -#include "arena.h" -#include "textFile.h" - -typedef struct { - char *path; - textFile_t *map; -} arenaFile_t; - -extern bool_t arena_file_is_inicialized(); -extern int arena_file_get_value(char *line, char *env, char *val, int len); -extern int arena_file_get_count(); -extern char *arena_file_get_name(arenaFile_t *arenaFile); -extern char *arena_file_get_net_name(arenaFile_t *arenaFile); -extern arenaFile_t *arena_file_get_file_format_net_name(char *s); -extern char *arena_file_get_image(arenaFile_t *arenaFile); -#ifndef PUBLIC_SERVER -extern image_t *arena_file_load_image(arenaFile_t *arenaFile, char *filename, - char *group, char *name, int alpha); -#endif /* PUBLIC_SERVER */ -extern arenaFile_t *arena_file_get(int n); -extern int arena_file_get_id(arenaFile_t *arenaFile); -extern arena_t *arena_file_get_arena(arenaFile_t *arenaFile); -extern arenaFile_t *arena_file_new(char *path); -extern void arena_file_load(char *path); -extern void arena_file_init(); -extern void arena_file_quit(); - -#endif /* ARENA_FILE_H */ diff --git a/src/base/bool.h b/src/base/bool.h deleted file mode 100644 index 76a3756..0000000 --- a/src/base/bool.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef BOOL_H -#define BOOL_H - -#include "main.h" - -#define bool_t int -#define TRUE 1 -#define FALSE 0 - -#endif /* BOOL_H */ diff --git a/src/base/buffer.c b/src/base/buffer.c deleted file mode 100644 index 2ecc148..0000000 --- a/src/base/buffer.c +++ /dev/null @@ -1,142 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "buffer.h" - -buffer_t *buffer_new(int n) -{ - buffer_t *new; - - new = malloc(sizeof(buffer_t)); - memset(new, 0, sizeof(buffer_t)); - new->alloc = n; - new->data = malloc(n); - memset(new->data, 0, n); - - return new; -} - -void *buffer_get_data(buffer_t *p) -{ - return p->data; -} - -int buffer_get_size(buffer_t *p) -{ - return p->size; -} - -int buffer_append(buffer_t *p, char *data, int len) -{ - assert(p != NULL); - assert(data != NULL); - assert(len >= 0); - - if (p->size + len <= p->alloc) { - memcpy(p->data + p->size, data, len); - p->size += len; - return len; - } - - return -1; -} - -int buffer_cut(buffer_t *p, int len) -{ - assert(p != NULL); - assert(len >= 0); - - if (p->size - len >= 0) { - memmove(p->data, p->data + len, p->size - len); - p->size -= len; - return 0; - } - - return -1; -} - -int buffer_count_line(buffer_t *p) -{ - char *begin; - char *end; - int count; - int size; - - assert(p != NULL); - - count = 0; - begin = p->data; - size = p->size; - - while ((end = memchr(begin, '\n', size)) != NULL) { - count++; - size -= ((end + 1) - begin); - begin = end + 1; - } - - /* - printf("count = %d\n", count); - printf("data = %s\n", p->data); - */ - - return count; -} - -int buffer_get_line(buffer_t *p, char *line, int len) -{ - char *end; - int ret_len; - - assert(p != NULL); - assert(line != NULL); - assert(len >= 0); - - end = NULL; - - end = memchr(p->data, '\n', p->size); - - if (end == NULL) { - return -1; - } - - ret_len = (int) (end - p->data) + 1; - if (ret_len > len - 1) { - ret_len = len - 1; - } - - memset(line, 0, len); - memcpy(line, p->data, ret_len); - - buffer_cut(p, ret_len); - - return ret_len; -} - -int buffer_get_data_len(buffer_t *p, char *line, int len) -{ - assert(p != NULL); - assert(line != NULL); - assert(len >= 0); - - if ((unsigned)p->size < (unsigned)len) { - len = p->size; - } - - memcpy(line, p->data, len); - buffer_cut(p, len); - - return len; -} - -void buffer_destroy(buffer_t *p) -{ - assert(p != NULL); - - if (p->data != NULL) { - free(p->data); - } - - free(p); -} diff --git a/src/base/buffer.h b/src/base/buffer.h deleted file mode 100644 index 9ddc5e6..0000000 --- a/src/base/buffer.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef BUFFER_H -#define BUFFER_H - -#define BUFFER_LIMIT_ALLOC 1024 - -typedef struct str_buffer { - char *data; - unsigned int size; - unsigned int alloc; -} buffer_t; - -extern buffer_t *buffer_new(int n); -extern void *buffer_get_data(buffer_t *p); -extern int buffer_get_size(buffer_t *p); -extern int buffer_append(buffer_t *p, char *data, int len); -extern int buffer_cut(buffer_t *p, int len); -extern int buffer_count_line(buffer_t *p); -extern int buffer_get_line(buffer_t *p, char *line, int len); -extern int buffer_get_data_len(buffer_t *p, char *line, int len); -extern void buffer_destroy(buffer_t *p); - -#endif /* BUFFER_H */ diff --git a/src/base/checkFront.c b/src/base/checkFront.c deleted file mode 100644 index 999eb58..0000000 --- a/src/base/checkFront.c +++ /dev/null @@ -1,117 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "myTimer.h" -#include "checkFront.h" -#include "idManager.h" -#include "server.h" - -typedef struct struct_checkfront_t { - char *msg; - my_time_t time; - int id; - int count; - int type; -} checkfront_t; - -static checkfront_t *newCheck(char *s, int type, int id) -{ - checkfront_t *new; - - assert(s != NULL); - - new = malloc(sizeof(checkfront_t)); - memset(new, 0, sizeof(checkfront_t)); - new->msg = strdup(s); - new->time = timer_get_current_time(); - new->id = id; - new->type = type; - new->count = 0; - - return new; -} - -static void destroyCheck(checkfront_t *p) -{ - assert(p != NULL); - free(p->msg); - free(p); -} - -list_t *check_front_new() -{ - return list_new(); -} - -void check_front_msg_add(list_t *list, char *msg, int type, int id) -{ - if (type == CHECK_FRONT_TYPE_CHECK) { - id_inc(id); - } - - list_add(list, newCheck(msg, type, id)); -} - -void check_front_event(client_t *client) -{ - my_time_t currentTime; - int i; - - currentTime = timer_get_current_time(); - - for (i = 0; i < client->listSendMsg->count; i++) { - checkfront_t *this; - - this = (checkfront_t *) client->listSendMsg->list[i]; - - switch (this->type) { - case CHECK_FRONT_TYPE_SIMPLE: - server_send_client(client, this->msg); - list_del_item(client->listSendMsg, i, destroyCheck); - i--; - break; - case CHECK_FRONT_TYPE_CHECK: - if (this->count == 0 || currentTime - this->time > CHECK_FRONT_SEND_TIME_INTERVAL) { - server_send_client(client, this->msg); - this->time = currentTime; - this->count++; - } - if (this->count > CHECK_FRONT_MAX_COUNT_SEND) { - id_del(this->id); - list_del_item(client->listSendMsg, i, destroyCheck); - i--; - } - break; - default: - fatal("Wrong type of the event front"); - break; - } - } -} - -void check_front_del_msg(list_t *listCheckFront, int id) -{ - int i; - - for (i = 0; i < listCheckFront->count; i++) { - checkfront_t *this; - - this = (checkfront_t *) listCheckFront->list[i]; - - if (this->id == id) { - id_del(this->id); - list_del_item(listCheckFront, i, destroyCheck); - return; - } - } -} - -void check_front_destroy(list_t *p) -{ - assert(p != NULL); - list_destroy_item(p, destroyCheck); -} diff --git a/src/base/checkFront.h b/src/base/checkFront.h deleted file mode 100644 index a65d532..0000000 --- a/src/base/checkFront.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef CHECK_FRONT_H -#define CHECK_FRONT_H - -#include "list.h" -#include "server.h" - -#define CHECK_FRONT_SEND_TIME_INTERVAL 100 -#define CHECK_FRONT_MAX_COUNT_SEND 30 - -#define CHECK_FRONT_ID_NONE -1 -#define CHECK_FRONT_TYPE_SIMPLE 1 -#define CHECK_FRONT_TYPE_CHECK 2 - -extern list_t *check_front_new(); -extern void check_front_msg_add(list_t *list, char *msg, int type, int id); -extern void check_front_event(client_t *client); -extern void check_front_del_msg(list_t *listCheckFront, int id); -extern void check_front_destroy(list_t *p); - -#endif /* CHECK_FRONT_H */ diff --git a/src/base/director.c b/src/base/director.c deleted file mode 100644 index 5c005cb..0000000 --- a/src/base/director.c +++ /dev/null @@ -1,69 +0,0 @@ -#include <dirent.h> -#include <sys/types.h> -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <unistd.h> -#include <assert.h> - -#include "main.h" -#include "list.h" - -typedef struct director_struct { - char *path; - list_t *list; -} director_t; - -director_t *director_load(char *s) -{ - director_t *new; - DIR *dir; - struct dirent *item; - char path[STR_PATH_SIZE]; - - assert(s != 0); - - new = malloc(sizeof(director_t)); - memset(new, 0, sizeof(director_t)); - - new->list = list_new(); - -#ifndef __WIN32__ - if (s[0] == '/') { -#else - if (s[1] == ':') { -#endif - strcpy(path, s); - } else { - /* this is really correct aproach */ - getcwd(path, STR_PATH_SIZE); - strcat(path, PATH_SEPARATOR); - strcat(path, s); - } - - new->path = strdup(path); - dir = opendir(new->path); - - if (dir == NULL) { - free(new->path); - free(new); - return NULL; - } - - while ((item = readdir(dir)) != NULL) { - list_add(new->list, strdup(item->d_name)); - } - - closedir(dir); - - return new; -} - -void director_destroy(director_t *p) -{ - assert(p != NULL); - - list_destroy_item(p->list, free); - free(p->path); - free(p); -} diff --git a/src/base/director.h b/src/base/director.h deleted file mode 100644 index 18c15e9..0000000 --- a/src/base/director.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef DIRECTOR_H -#define DIRECTOR_H - -#include "main.h" -#include "list.h" - -typedef struct director_struct { - char *path; - list_t *list; -} director_t; - -extern director_t *director_load(char *s); -extern void director_destroy(director_t * p); - -#endif /* DIRECTOR_H */ diff --git a/src/base/downServer.c b/src/base/downServer.c deleted file mode 100644 index a5ab58a..0000000 --- a/src/base/downServer.c +++ /dev/null @@ -1,288 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <sys/types.h> - -#include <unistd.h> -#include <fcntl.h> -#include <signal.h> -#include <sys/time.h> -#include <sys/stat.h> - -#include "main.h" -#include "list.h" -#include "server.h" -#include "myTimer.h" -#include "arena.h" -#include "serverSelect.h" -#include "downServer.h" -#include "arenaFile.h" - -#include "tcp.h" -#include "buffer.h" - -#define DOWN_SERVER_LIMIT_BUFFER 10240 -#define DOWN_SERVER_SEND_FILE_BUFFER 4096 - -#define NET_STATUS_OK 0 -#define NET_STATUS_ZOMBIE 1 - -static sock_tcp_t *sock_server_tcp; -static list_t *listClient; - -typedef struct client_down_server_struct { - int status_connect; - sock_tcp_t *sock; - buffer_t *recvBuffer; - buffer_t *sendBuffer; - - FILE *file; - int size; - int send; -} client_ds_t; - -static int getFileSize(char *s) -{ - struct stat buf; - - if (lstat(s, &buf) < 0) { - return -1; - } - - return buf.st_size; -} - -static void proto_getarena(client_ds_t *client, char *msg) -{ - arenaFile_t *arenaFile; - char msg_out[STR_PROTO_SIZE]; - char *arenaName; - - arenaName = msg + 9; - - /*printf("arena = >>%s<<\n", arenaName);*/ - arenaFile = arena_file_get_file_format_net_name(arenaName); - - if (arenaFile == NULL) { - char *error_msg = _("[Error] Arena not found\n"); - buffer_append(client->sendBuffer, error_msg, strlen(error_msg)); - return; - } - - client->file = fopen(arenaFile->path, "rb"); - - if (client->file == NULL) { - char *error_msg = _("[Error] Server has some problem\n"); - buffer_append(client->sendBuffer, error_msg, strlen(error_msg)); - return; - } - - client->size = getFileSize(arenaFile->path); - sprintf(msg_out, _("OK %d\n"), client->size); - buffer_append(client->sendBuffer, msg_out, strlen(msg_out)); -} - -static void do_proto(client_ds_t *client, char *msg) -{ - if (strncmp(msg, "GETARENA ", 9) == 0 && client->file == NULL) { - proto_getarena(client, msg); - } -} - -static client_ds_t *newClient(sock_tcp_t *sock) -{ - client_ds_t *new; - - new = malloc(sizeof(client_ds_t)); - memset(new, 0, sizeof(client_ds_t)); - - new->status_connect = NET_STATUS_OK; - new->sock = sock; - new->recvBuffer = buffer_new(DOWN_SERVER_LIMIT_BUFFER); - new->sendBuffer = buffer_new(DOWN_SERVER_LIMIT_BUFFER); - - return new; -} - -static void destroyClient(client_ds_t *client) -{ - sock_tcp_close(client->sock); - buffer_destroy(client->recvBuffer); - buffer_destroy(client->sendBuffer); - - if (client->file != NULL) { - fclose(client->file); - } - - free(client); -} - -int down_server_init(char *ip, int port) -{ - sock_server_tcp = sock_tcp_bind(ip, port); - - if (sock_server_tcp == NULL) { - error("Unable to initialize download server"); - return -1; - } - - sock_tcp_set_non_block(sock_server_tcp); - - listClient = list_new(); - - return 0; -} - -int down_server_set_select() -{ - int i; - - select_add_sock_for_read(sock_server_tcp->sock); - - for (i = 0; i < listClient->count; i++) { - client_ds_t *this; - - this = (client_ds_t *) listClient->list[i]; - - select_add_sock_for_read(this->sock->sock); - - if (buffer_get_size(this->sendBuffer) > 0) { - select_add_sock_for_write(this->sock->sock); - } - } - - return 0; -} - -static void eventNewClient(sock_tcp_t *sock_server) -{ - sock_tcp_t *sock_client; - client_ds_t *client; - - sock_client = sock_tcp_accept(sock_server); - sock_tcp_set_non_block(sock_client); - client = newClient(sock_client); - - list_add(listClient, client); -} - -static void eventReadClient(client_ds_t *client) -{ - char buffer[STR_PROTO_SIZE]; - int ret; - - memset(buffer, 0, STR_PROTO_SIZE); - - ret = sock_tcp_read(client->sock, buffer, STR_PROTO_SIZE - 1); - /*printf("sock_tcp_read = %d\n", ret);*/ - - if (ret <= 0) { - client->status_connect = NET_STATUS_ZOMBIE; - return; - } - - if (buffer_append(client->recvBuffer, buffer, ret) < 0) { - client->status_connect = NET_STATUS_ZOMBIE; - return; - } - - while (buffer_get_line(client->recvBuffer, buffer, STR_PROTO_SIZE) >= 0) { - int len; - - len = strlen(buffer); - - if (buffer[len - 1] == '\n') { - buffer[len - 1] = '\0'; - } - - do_proto(client, buffer); - /*buffer_append(client->sendBuffer, buffer, strlen(buffer));*/ - } -} - -static void eventWriteClient(client_ds_t *client) -{ - void *data; - int len; - int res; - - len = buffer_get_size(client->sendBuffer); - - if (len == 0) { - return; - } - - data = buffer_get_data(client->sendBuffer); - - res = sock_tcp_write(client->sock, data, len); - /*printf("sock_tcp_write = %d\n", res);*/ - - if (res < 0) { - client->status_connect = NET_STATUS_ZOMBIE; - return; - } - - buffer_cut(client->sendBuffer, res); -} - -static void sendFile(client_ds_t *client) -{ - char buffer[DOWN_SERVER_SEND_FILE_BUFFER]; - int count; - - count = client->size - client->send; - - if (count > DOWN_SERVER_SEND_FILE_BUFFER) { - count = DOWN_SERVER_SEND_FILE_BUFFER; - } - - if (fread(buffer, count, 1, client->file) != 1) { - client->status_connect = NET_STATUS_ZOMBIE; - return; - } - - buffer_append(client->sendBuffer, buffer, count); - client->send += count; -} - -int down_server_select_socket() -{ - int i; - - if (select_is_change_sock_for_read(sock_server_tcp->sock)) { - eventNewClient(sock_server_tcp); - } - - for (i = 0; i < listClient->count; i++) { - client_ds_t *this; - - this = (client_ds_t *) listClient->list[i]; - - if (select_is_change_sock_for_read(this->sock->sock)) { - eventReadClient(this); - } - - if (select_is_change_sock_for_write(this->sock->sock)) { - eventWriteClient(this); - } - - if (this->file != NULL && buffer_get_size(this->sendBuffer) == 0) { - sendFile(this); - } - - if (this->status_connect == NET_STATUS_ZOMBIE) { - list_del_item(listClient, i, destroyClient); - } - } - - return 0; -} - -int down_server_quit() -{ - sock_tcp_close(sock_server_tcp); - list_destroy_item(listClient, destroyClient); - - return 0; -} diff --git a/src/base/downServer.h b/src/base/downServer.h deleted file mode 100644 index cab59e3..0000000 --- a/src/base/downServer.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef DOWN_SERVER_H -#define DOWN_SERVER_H - -#include "list.h" -#include "tcp.h" -#include "buffer.h" - -extern int down_server_init(char *ip, int port); -extern int down_server_set_select(); -extern int down_server_select_socket(); -extern int down_server_quit(); - -#endif /* DOWN_SERVER_H */ diff --git a/src/base/gun.c b/src/base/gun.c deleted file mode 100644 index 9c59662..0000000 --- a/src/base/gun.c +++ /dev/null @@ -1,316 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "arena.h" -#include "tux.h" -#include "shot.h" -#include "myTimer.h" -#include "item.h" -#include "gun.h" -#include "proto.h" -#include "net_multiplayer.h" -#include "serverSendMsg.h" - -#ifndef NO_SOUND -#include "sound.h" -#endif /* NO_SOUND */ - -#ifndef PUBLIC_SERVER -#include "interface.h" -#include "world.h" -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#endif /* PUBLIC_SERVER */ - -static void modificiationCopuse(int courser, int right_x, int right_y, int *dest_x, int *dest_y) -{ - assert(dest_x != NULL); - assert(dest_y != NULL); - - switch (courser) { - case TUX_UP: - *dest_x = right_y; - *dest_y = -right_x; - break; - case TUX_RIGHT: - *dest_x = right_x; - *dest_y = right_y; - break; - case TUX_LEFT: - *dest_x = -right_x; - *dest_y = right_y; - break; - case TUX_DOWN: - *dest_x = right_y; - *dest_y = right_x; - break; - default: - fatal("Wrong Tux course change"); - break; - } -} - -static void addShotTrivial(tux_t *tux, int x, int y, int px, int py, int gun) -{ - int dest_x = 0, dest_y = 0; - int dest_px = 0, dest_py = 0; - shot_t *shot; - - modificiationCopuse(tux->position, px, py, &dest_px, &dest_py); - modificiationCopuse(tux->position, x, y, &dest_x, &dest_y); - - if (gun == GUN_LASSER) { - switch (tux->position) { - case TUX_UP: - dest_y -= GUN_LASSER_HORIZONTAL; - break; - case TUX_RIGHT: - break; - case TUX_LEFT: - dest_x -= GUN_LASSER_HORIZONTAL; - break; - case TUX_DOWN: - break; - } - } - - shot = shot_new(tux->x + dest_x, tux->y + dest_y, dest_px, dest_py, gun, tux->id); - space_add(arena_get_current()->spaceShot, shot); -} - -static void addShot(tux_t *tux, int x, int y, int px, int py) -{ - int gun; - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_CLIENT) { - return; - } - - if (tux->gun == GUN_BOMBBALL) { - gun = GUN_BOMBBALL; - } else if (tux->gun == GUN_LASSER) { - gun = GUN_LASSER; - } else { - gun = GUN_SIMPLE; - } - - if (tux->bonus == BONUS_4X) { - int zal; - int i; - - zal = tux->position; - - for (i = 0; i < 4; i++) { - switch (i) { - case 0: - tux->position = TUX_UP; - break; - case 1: - tux->position = TUX_RIGHT; - break; - case 2: - tux->position = TUX_LEFT; - break; - case 3: - tux->position = TUX_DOWN; - break; - } - - addShotTrivial(tux, x, y, px, py, gun); - } - - tux->position = zal; - } else { - addShotTrivial(tux, x, y, px, py, gun); - } -} - -static void gun_shotSimpe(tux_t *tux) -{ - addShot(tux, 0, 0, +5, 0); -} - -static void gun_shotDualSimpe(tux_t *tux) -{ - addShot(tux, 0, -10, +6, 0); - addShot(tux, 0, +10, +6, 0); -} - -static void gun_shotScatter(tux_t *tux) -{ - int i; - - for (i = -2; i <= +2; i++) { - addShot(tux, 0, 0, +8, i); - } -} - -static void timer_addShotTimer(void *p) -{ - tux_t *tux; - int id; - int gun; - - id = *((int *) p); - free(p); - - tux = space_get_object_id(arena_get_current()->spaceTux, id); - - if (tux == NULL) { - return; - } - - if (tux->status != TUX_STATUS_ALIVE) { - return; - } - - gun = tux->gun; - tux->gun = GUN_SIMPLE; - addShot(tux, 0, 0, +6, 0); - tux->gun = gun; -} - -static void gun_shotTommy(tux_t *tux) -{ - int i; - - for (i = 0; i < 10; i++) { - timer_add_task(arena_get_current()->listTimer, TIMER_ONE, - timer_addShotTimer, newInt(tux->id), i * 100); - } -} - -static void timer_addLaserTimer(void *p) -{ - tux_t *tux; - int id; - int gun; - - id = *((int *) p); - free(p); - - tux = space_get_object_id(arena_get_current()->spaceTux, id); - - if (tux == NULL) { - return; - } - - if (tux->status != TUX_STATUS_ALIVE) { - return; - } - - gun = tux->gun; - tux->gun = GUN_LASSER; - - addShot(tux, 0, 0, +10, 0); - addShot(tux, +40, 0, +10, 0); - /*addShot(tux, +40, 0, +10, 0);*/ - tux->gun = gun; -} - -static void gun_shotLasser(tux_t *tux) -{ - int i; - - for (i = 0; i < 50; i++) { - timer_add_task(arena_get_current()->listTimer, TIMER_ONE, - timer_addLaserTimer, newInt(tux->id), i * 10); - } -} - -static void putInGunMine(tux_t *tux) -{ - int x, y; - arena_t *arena; - - x = tux->x; - y = tux->y; - - switch (tux->position) { - case TUX_UP: - y += TUX_HEIGHT; - break; - case TUX_RIGHT: - x -= TUX_WIDTH; - break; - case TUX_LEFT: - x += TUX_WIDTH; - break; - case TUX_DOWN: - y -= TUX_HEIGHT; - break; - } - - arena = arena_get_current(); - - if (arena_is_free_space(arena_get_current(), x, y, ITEM_MINE_WIDTH, ITEM_MINE_HEIGHT)) { - item_t *item; -#ifndef NO_SOUND - sound_play("put_mine", SOUND_GROUP_BASE); -#endif /* NO_SOUND */ - tux->shot[tux->gun]--; - - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - item = item_new(x, y, ITEM_MINE, tux->id); - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_additem_server(PROTO_SEND_ALL, NULL, item); - } - - space_add(arena->spaceItem, item); - } - } -} - -static void gun_shotBombball(tux_t *tux) -{ - addShot(tux, 0, 0, +10, 0); -} - -void gun_shot(tux_t *tux) -{ - if (tux->bonus != BONUS_SHOT && tux->gun != GUN_MINE) { - tux->shot[tux->gun]--; - } - - switch (tux->gun) { - case GUN_SIMPLE: - #ifndef NO_SOUND - sound_play("gun_revolver", SOUND_GROUP_BASE); - #endif /* NO_SOUND */ - gun_shotSimpe(tux); - break; - case GUN_DUAL_SIMPLE: - #ifndef NO_SOUND - sound_play("gun_revolver", SOUND_GROUP_BASE); - #endif /* NO_SOUND */ - gun_shotDualSimpe(tux); - break; - case GUN_SCATTER: - #ifndef NO_SOUND - sound_play("gun_scatter", SOUND_GROUP_BASE); - #endif /* NO_SOUND */ - gun_shotScatter(tux); - break; - case GUN_TOMMY: - #ifndef NO_SOUND - sound_play("gun_tommy", SOUND_GROUP_BASE); - #endif /* NO_SOUND */ - gun_shotTommy(tux); - break; - case GUN_LASSER: - #ifndef NO_SOUND - sound_play("gun_lasser", SOUND_GROUP_BASE); - #endif /* NO_SOUND */ - gun_shotLasser(tux); - break; - case GUN_BOMBBALL: - gun_shotBombball(tux); - break; - case GUN_MINE: - putInGunMine(tux); - break; - } -} diff --git a/src/base/gun.h b/src/base/gun.h deleted file mode 100644 index 94d2cc9..0000000 --- a/src/base/gun.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef GUN_H -#define GUN_H - -#define GUN_SHOT_WIDTH 5 -#define GUN_SHOT_HEIGHT 5 -#define GUN_LASSER_HORIZONTAL 40 -#define GUN_SHOT_VERTICAL 5 -#define GUN_BOMBBALL_WIDTH 20 -#define GUN_BOMBBALL_HEIGHT 20 - -#include "main.h" -#include "tux.h" - -extern void gun_shot(tux_t *p); - -#endif /* GUN_H */ diff --git a/src/base/homeDirector.c b/src/base/homeDirector.c deleted file mode 100644 index 5ff14b7..0000000 --- a/src/base/homeDirector.c +++ /dev/null @@ -1,44 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <unistd.h> -#include <assert.h> -#include <sys/stat.h> - -#include "main.h" -#include "homeDirector.h" - -static char homeDirector[STR_PATH_SIZE]; - -void home_director_create() -{ - char *envHome; -#ifndef __WIN32__ - envHome = getenv("HOME"); -#else /* __WIN32__ */ - envHome = getenv("USERPROFILE"); -#endif /* __WIN32__ */ - if (envHome == NULL) { - error("Environment variable HOME not found"); - exit(0); - } - - sprintf(homeDirector, "%s%s%s", envHome, PATH_SEPARATOR, HOMEDIRECTOR_NAME); - - if (access(homeDirector, F_OK) != 0) { - debug("Creating home directory [%s]", homeDirector); - -#ifndef __WIN32__ - if (mkdir(homeDirector, 0755) != 0) { -#else /* __WIN32__ */ - if (mkdir(homeDirector) != 0) { -#endif /* __WIN32__ */ - error("Unable to create home directory [%s]", homeDirector); - exit(0); - } - } -} - -char *home_director_get() -{ - return homeDirector; -} diff --git a/src/base/homeDirector.h b/src/base/homeDirector.h deleted file mode 100644 index e89f0af..0000000 --- a/src/base/homeDirector.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef HOMEDIRECTOR_H -#define HOMEDIRECTOR_H - -#include "main.h" - -#define HOMEDIRECTOR_NAME ".tuxanci" - -extern void home_director_create(); -extern char *home_director_get(); - -#endif /* HOMEDIRECTOR_H */ diff --git a/src/base/idManager.c b/src/base/idManager.c deleted file mode 100644 index 87042bb..0000000 --- a/src/base/idManager.c +++ /dev/null @@ -1,198 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "idManager.h" - -static list_t *listID; -static int lastID; - -typedef struct id_item_struct { - int id; - int count; -} id_item_t; - -static id_item_t *newIdItem(int id, int count) -{ - id_item_t *new; - - new = malloc(sizeof(id_item_t)); - new->id = id; - new->count = count; - - return new; -} - -static void destroyIdItem(id_item_t *p) -{ - assert(p != NULL); - - free(p); -} - -void id_init_list() -{ - debug("Initializing ID manager"); - - listID = list_new(); - lastID = 0; - -} - -int id_is_register(int id) -{ - int i; - - assert(listID != NULL); - - for (i = 0; i < listID->count; i++) { - id_item_t *this; - - this = listID->list[i]; - - if (this->id == id) { - return i; - } - } - - return -1; -} - -static int findNewID() -{ - int ret; - - assert(listID != NULL); - - if (listID->count >= MAX_ID - 1) { - fatal("There is no free ID left"); - } - - do { - /*ret = (random() % (listID->count + 8 )) + 1;*/ - ret = random() % MAX_ID + 1; - } while (id_is_register(ret) != -1); - - /*printf("new ID %d\n", ret);*/ - - return ret; -} - -int id_get_newcount(int count) -{ - int id; - - id = findNewID(); - - list_add(listID, newIdItem(id, count)); - - return id; -} - -int id_get_new() -{ - return id_get_newcount(1); -} - -void id_inc(int id) -{ - id_item_t *this; - int index; - - assert(listID != NULL); - - index = id_is_register(id); - - if (index == -1) { - error("Trying to increment counter of never registered ID [%d]", id); - assert(0); - return; /* ha ha ha */ - } - - this = listID->list[index]; - - this->count++; - - /*printf("inc ID %d %d\n", this->id, this->count);*/ - return; -} - -void id_del(int id) -{ - id_item_t *this; - int index; - - assert(listID != NULL); - - index = id_is_register(id); - - if (index == -1) { - error("Trying to delete never registered ID [%d]", id); - assert(0); - return; /* ha ha ha */ - } - - this = listID->list[index]; - - this->count--; - /*printf("dec ID %d %d\n", this->id, this->count);*/ - - if (this->count <= 0) { - list_del_item(listID, index, free); - /*printf("listID->count = %d\n", listID->count);*/ - } - - return; -} - -void id_replace(int old_id, int new_id) -{ - int index_old_id; - int index_new_id; - id_item_t *this; - - if (old_id == new_id) { - return; - } - - index_old_id = id_is_register(old_id); - assert(index_old_id != -1); - - index_new_id = id_is_register(new_id); - assert(index_new_id == -1); - - this = listID->list[index_old_id]; - this->id = new_id; -} - -void infoID(int id) -{ - id_item_t *this; - int index; - - assert(listID != NULL); - - index = id_is_register(id); - - if (index == -1) { - debug("Getting information of nonexistent ID [%d]", id); - - return; - } - - this = listID->list[index]; - - debug("ID information [%d]: used %d times", this->id, this->count); - - return; -} - -void id_quit_list() -{ - debug("Shutting down ID manager"); - - assert(listID != NULL); - list_destroy_item(listID, destroyIdItem); -} diff --git a/src/base/idManager.h b/src/base/idManager.h deleted file mode 100644 index 4ad2abc..0000000 --- a/src/base/idManager.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef ID_MANAGER_H -#define ID_MANAGER_H - -#include "list.h" - -#define MAX_ID 1000000 -#define ID_UNKNOWN -1 - -#ifdef __WIN32__ -#define random rand -#endif /* __WIN32__ */ - -extern void id_init_list(); -extern int id_is_register(int id); -extern int id_get_newcount(int count); -extern int id_get_new(); -extern void id_inc(int id); -extern void id_del(int id); -extern void id_replace(int old_id, int new_id); -extern void id_quit_list(); - -#endif /* ID_MANAGER_H */ diff --git a/src/base/index.c b/src/base/index.c deleted file mode 100644 index a320443..0000000 --- a/src/base/index.c +++ /dev/null @@ -1,267 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "index.h" - -#define DEBUG_INDEX - -static index_item_t *index_item_new(int key, void *data) -{ - index_item_t *new; - - new = malloc(sizeof(index_item_t)); - new->key = key; - new->data = data; - - return new; -} - -#ifdef DEBUG_INDEX -static void printIndexItem(index_item_t *p) -{ - debug("Index [%d] contains: %p", p->key, p->data); -} - -static void printListIndexItem(list_t *list) -{ - int i; - - debug("List:"); - - for (i = 0; i < list->count; i++) { - index_item_t *this; - - this = (index_item_t *) list->list[i]; - printIndexItem(this); - } -} - -static void checkList(list_t *list) -{ - int i; - int prev; - int this; - - /*return;*/ - - if (list->count == 0) { - printf(_("Nothing\n")); - return; - } - - prev = ((index_item_t *) list->list[0])->key; - - for (i = 1; i < list->count; i++) { - this = ((index_item_t *) list->list[i])->key; - - if (prev >= this) { - printListIndexItem(list); - fatal("Error in list"); - } - - prev = this; - } -} -#endif /* DEBUG_INDEX */ - -static void index_item_destroy(index_item_t *p) -{ - free(p); -} - -list_t *index_new() -{ - return list_new(); -} - -void index_add(list_t *list, int key, void *data) -{ -#ifdef DEBUG_INDEX - int count = 0; -#endif /* DEBUG_INDEX */ - - index_item_t *item; - index_item_t *this; - int min, max, point; - int len; - - item = index_item_new(key, data); - len = list->count; - - min = 0; - max = len - 1; - - for (;;) { - point = min + (max - min) / 2; - -#ifdef DEBUG_INDEX - if (++count == len * 5) { - error("Cyclic error"); - printIndexItem(item); - printListIndexItem(list); - abort(); - } -#endif /* DEBUG_INDEX */ - - if (max < 0) { - list_ins(list, 0, item); -#ifdef DEBUG_INDEX - checkList(list); -#endif /* DEBUG_INDEX */ - return; - } - - if (min >= len) { - list_add(list, item); -#ifdef DEBUG_INDEX - checkList(list); -#endif /* DEBUG_INDEX */ - return; - } - - this = (index_item_t *) list->list[point]; - -/* - printf("min = %d max = %d point = %d len = %d offset = %d\n", - min, max, point, len, offset); -*/ - - if (min > max) { - list_ins(list, point, item); -#ifdef DEBUG_INDEX - checkList(list); -#endif /* DEBUG_INDEX */ - return; - } - - if (item->key > this->key) { - min = point + 1; - continue; - } - - if (item->key < this->key) { - max = point - 1; - continue; - } - } -} - -static int getOffsetFromIndex(list_t *list, int key) -{ - index_item_t *this; - int min, max, point, len; - - len = list->count; - - if (len == 0) { - return -1; - } - - min = 0; - max = len - 1; - - for (;;) { - point = min + (max - min) / 2; - - if (max < 0 || point >= len || max < min) { - return -1; - } - - this = (index_item_t *) list->list[point]; - -/* - printf("min = %d max = %d point = %d len = %d offset = %d\n", - min, max, point, len, offset); -*/ - - if (key == this->key) { - return point; - } - - if (key > this->key) { - min = point + 1; - continue; - } - - if (key < this->key) { - max = point - 1; - continue; - } - } -} - -void *index_get(list_t *list, int key) -{ - int offset; - - offset = getOffsetFromIndex(list, key); - - if (offset != -1) { - index_item_t *this; - - this = list->list[offset]; - return this->data; - } - - return NULL; -} - -void index_del(list_t *list, int key) -{ - int offset; - - offset = getOffsetFromIndex(list, key); - - if (offset != -1) { - list_del_item(list, offset, index_item_destroy); - } -} - -void index_del_with_object(list_t *list, int key, void *f) -{ - int offset; - - offset = getOffsetFromIndex(list, key); - - if (offset != -1) { - index_item_t *this; - void (*fce) (void *p); - - this = list->list[offset]; - - fce = f; - fce(this); - - list_del_item(list, offset, index_item_destroy); - } -} - -void index_action(list_t *list, void *f) -{ - int i; - - for (i = 0; i < list->count; i++) { - index_item_t *this; - void (*fce) (void *p); - - this = list->list[i]; - - fce = f; - fce(this); - } -} - -void index_destroy(list_t *list) -{ - list_destroy_item(list, index_item_destroy); -} - -void index_destroyWithObject(list_t *list, void *f) -{ - index_action(list, f); - list_destroy_item(list, index_item_destroy); -} diff --git a/src/base/index.h b/src/base/index.h deleted file mode 100644 index 4bb1c1b..0000000 --- a/src/base/index.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef INDEX_H -#define INDEX_H - -#include "main.h" -#include "list.h" - -typedef struct index_item_struct { - int key; - void *data; -} index_item_t; - -extern list_t *index_new(); -extern void index_add(list_t *list, int key, void *data); -extern void *index_get(list_t *list, int key); -extern void index_del(list_t *list, int key); -extern void index_del_with_object(list_t *list, int key, void *f); -extern void index_action(list_t *list, void *f); -extern void index_destroy(list_t *list); -extern void index_destroyWithObject(list_t *list, void *f); - -#endif /* INDEX_H */ diff --git a/src/base/item.c b/src/base/item.c deleted file mode 100644 index 66d69e2..0000000 --- a/src/base/item.c +++ /dev/null @@ -1,551 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "arena.h" -#include "tux.h" -#include "item.h" -#include "shot.h" -#include "proto.h" -#include "idManager.h" -#include "net_multiplayer.h" -#include "serverSendMsg.h" - -#ifndef PUBLIC_SERVER -#include "interface.h" -#include "image.h" -#include "radar.h" -#include "layer.h" - -#include "world.h" -#include "setting.h" - -#ifndef NO_SOUND -#include "sound.h" -#endif /* NO_SOUND */ - -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#endif /* PUBLIC_SERVER */ - -#ifndef PUBLIC_SERVER -static image_t *g_item[ITEM_COUNT]; -#endif /* PUBLIC_SERVER */ - -static bool_t isItemInit = FALSE; - -bool_t item_is_inicialized() -{ - return isItemInit; -} - -void item_init() -{ -#ifndef PUBLIC_SERVER - g_item[GUN_DUAL_SIMPLE] = image_add("item.dual.png", IMAGE_ALPHA, "item_dual_simple", IMAGE_GROUP_BASE); - g_item[GUN_TOMMY] = image_add("item.tommy.png", IMAGE_ALPHA, "item_tommy_simple", IMAGE_GROUP_BASE); - g_item[GUN_SCATTER] = image_add("item.scatter.png", IMAGE_ALPHA, "item_scatter_simple", IMAGE_GROUP_BASE); - g_item[GUN_LASSER] = image_add("item.lasser.png", IMAGE_ALPHA, "item_lasser_simple", IMAGE_GROUP_BASE); - g_item[GUN_MINE] = image_add("item.mine.png", IMAGE_ALPHA, "item_mines_simple", IMAGE_GROUP_BASE); - g_item[GUN_BOMBBALL] = image_add("item.bombball.png", IMAGE_ALPHA, "item_bombball_simple", IMAGE_GROUP_BASE); - g_item[ITEM_MINE] = image_add("mine.png", IMAGE_ALPHA, "item_mine_simple", IMAGE_GROUP_BASE); - g_item[ITEM_EXPLOSION] = image_add("explosion.png", IMAGE_ALPHA, "item_explosion_simple", IMAGE_GROUP_BASE); - g_item[ITEM_BIG_EXPLOSION] = image_add("big-explosion.png", IMAGE_ALPHA, "item_big-explosion_simple", IMAGE_GROUP_BASE); - g_item[BONUS_SPEED] = image_add("item.bonus.speed.png", IMAGE_ALPHA, "item_bonus_speed", IMAGE_GROUP_BASE); - g_item[BONUS_SHOT] = image_add("item.bonus.shot.png", IMAGE_ALPHA, "item_shot_speed", IMAGE_GROUP_BASE); - g_item[BONUS_TELEPORT] = image_add("item.bonus.teleport.png", IMAGE_ALPHA, "item_teleport_speed", IMAGE_GROUP_BASE); - g_item[BONUS_GHOST] = image_add("item.bonus.ghost.png", IMAGE_ALPHA, "item_ghost_speed", IMAGE_GROUP_BASE); - g_item[BONUS_4X] = image_add("item.bonus.4x.png", IMAGE_ALPHA, "item_4x_speed", IMAGE_GROUP_BASE); - g_item[BONUS_HIDDEN] = image_add("item.bonus.hidden.png", IMAGE_ALPHA, "item_hidden_speed", IMAGE_GROUP_BASE); -#endif /* PUBLIC_SERVER */ - isItemInit = TRUE; -} - -item_t *item_new(int x, int y, int type, int author_id) -{ - item_t *new; - - new = malloc(sizeof(item_t)); - assert(new != NULL); - new->type = type; - new->id = id_get_new(); - new->x = x; - new->y = y; - new->frame = 0; - new->count = 0; -#ifndef PUBLIC_SERVER - new->img = g_item[type]; -#endif /* PUBLIC_SERVER */ - new->author_id = author_id; - - switch (type) { - case GUN_DUAL_SIMPLE: - case GUN_SCATTER: - case GUN_TOMMY: - case GUN_LASSER: - case GUN_MINE: - case GUN_BOMBBALL: - new->w = ITEM_GUN_WIDTH; - new->h = ITEM_GUN_HEIGHT; - break; - case ITEM_MINE: - new->w = ITEM_MINE_WIDTH; - new->h = ITEM_MINE_HEIGHT; - break; - case ITEM_EXPLOSION: -#ifndef NO_SOUND - sound_play("explozion", SOUND_GROUP_BASE); -#endif /* NO_SOUND */ - new->w = ITEM_EXPLOSION_WIDTH; - new->h = ITEM_EXPLOSION_HEIGHT; - break; - case ITEM_BIG_EXPLOSION: -#ifndef NO_SOUND - sound_play("explozion", SOUND_GROUP_BASE); -#endif /* NO_SOUND */ - new->w = ITEM_BIG_EXPLOSION_WIDTH; - new->h = ITEM_BIG_EXPLOSION_HEIGHT; - break; - case BONUS_SPEED: - case BONUS_SHOT: - case BONUS_TELEPORT: - case BONUS_GHOST: - case BONUS_4X: - case BONUS_HIDDEN: - new->w = ITEM_BONUS_WIDTH; - new->h = ITEM_BONUS_HEIGHT; - break; - } - - return new; -} - -void item_get_status(void *p, int *id, int *x, int *y, int *w, int *h) -{ - item_t *item; - - item = p; - *id = item->id; - *x = item->x; - *y = item->y; - *w = item->w; - *h = item->h; -} - -void item_set_status(void *p, int x, int y, int w, int h) -{ - item_t *item; - - item = p; - item->x = x; - item->y = y; - item->w = w; - item->h = h; -} - -void item_replace_id(item_t *item, int id) -{ - id_replace(item->id, id); - item->id = id; -} - -#ifdef PUBLIC_SERVER -static void action_countitem(space_t *space, item_t *item, int *count) -{ - if ((item->type >= GUN_DUAL_SIMPLE && item->type <= GUN_BOMBBALL) || - (item->type >= BONUS_SPEED && item->type <= BONUS_HIDDEN)) { - (*count)++; - } -} - -static int getCountWeaponOrBonusItem(space_t *spaceItem) -{ - int count = 0; - - space_action(spaceItem, action_countitem, &count); - - return count; -} -#endif /* PUBLIC_SERVER */ - -void item_add_new_item(space_t *spaceItem, int author_id) -{ - arena_t *arena; - item_t *item; - int new_x, new_y; - int type; - -#ifdef PUBLIC_SERVER - if (getCountWeaponOrBonusItem(spaceItem) >= atoi(public_server_get_setting("MAX_ITEM", "--max-item", "100"))) { - return; - } -#endif /* PUBLIC_SERVER */ - -#ifndef PUBLIC_SERVER - if (setting_is_any_item() == FALSE || net_multiplayer_get_game_type() == NET_GAME_TYPE_CLIENT) { - return; - } -#endif /* PUBLIC_SERVER */ - - arena = arena_get_current(); - arena_find_free_space(arena_get_current(), &new_x, &new_y, ITEM_GUN_WIDTH, ITEM_GUN_HEIGHT); - - type = GUN_DUAL_SIMPLE; - -#ifndef PUBLIC_SERVER - do { -#endif /* PUBLIC_SERVER */ - switch (random() % 12) { - case 0: - type = GUN_DUAL_SIMPLE; - break; - case 1: - type = GUN_SCATTER; - break; - case 2: - type = GUN_TOMMY; - break; - case 3: - type = GUN_MINE; - break; - case 4: - type = GUN_LASSER; - break; - case 5: - type = GUN_BOMBBALL; - break; - case 6: - type = BONUS_SPEED; - break; - case 7: - type = BONUS_SHOT; - break; - case 8: - type = BONUS_TELEPORT; - break; - case 9: - type = BONUS_GHOST; - break; - case 10: - type = BONUS_4X; - break; - case 11: - type = BONUS_HIDDEN; - break; - } -#ifndef PUBLIC_SERVER - } while (setting_is_item(type) == FALSE || - (net_multiplayer_get_game_type() == NET_GAME_TYPE_NONE && type == BONUS_HIDDEN)); -#endif /* PUBLIC_SERVER */ - item = item_new(new_x, new_y, type, author_id); - space_add(spaceItem, item); - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_additem_server(PROTO_SEND_ALL, NULL, item); - } - -#ifndef PUBLIC_SERVER - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - radar_add(item->id, new_x, new_y, RADAR_TYPE_ITEM); - } -#endif /* PUBLIC_SERVER */ -} - -#ifndef PUBLIC_SERVER -void item_draw(item_t *p) -{ - assert(p != NULL); - addLayer(p->img, p->x, p->y, p->frame * p->w, 0, p->w, p->h, TUX_LAYER); -} - -void item_draw_list(list_t *listItem) -{ - item_t *thisItem; - int i; - - assert(listItem != NULL); - - for (i = 0; i < listItem->count; i++) { - thisItem = (item_t *) listItem->list[i]; - assert(thisItem != NULL); - item_draw(thisItem); - } -} - -#endif /* PUBLIC_SERVER */ - -static void action_itemevent(space_t *space, item_t *item, void *p) -{ - my_time_t currentTime; - - currentTime = timer_get_current_time(); - item->count++; - - if (item->count == ITEM_MAX_COUNT) { - item->count = 0; - item->frame++; - } - - switch (item->type) { - case GUN_TOMMY: - case GUN_DUAL_SIMPLE: - case GUN_SCATTER: - case GUN_LASSER: - case GUN_MINE: - case GUN_BOMBBALL: - if (item->frame == ITEM_GUN_MAX_FRAME) { - item->frame = 0; - } - break; - case ITEM_MINE: - if (item->frame == ITEM_MINE_MAX_FRAME) { - item->frame = 0; - } - break; - case ITEM_EXPLOSION: - case ITEM_BIG_EXPLOSION: - if (item->frame == ITEM_EXPLOSION_MAX_FRAME) { - space_del_with_item(space, item, item_destroy); - } - break; - case BONUS_SPEED: - case BONUS_SHOT: - case BONUS_TELEPORT: - case BONUS_GHOST: - case BONUS_4X: - case BONUS_HIDDEN: - if (item->frame == ITEM_GUN_MAX_FRAME) { - item->frame = 0; - } - break; - } -} - -void item_event(space_t *spaceItem) -{ - space_action(spaceItem, action_itemevent, NULL); -} - -static void mineExplosion(space_t *spaceItem, item_t *item) -{ - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - int x, y; - item_t *item_explosion; - - x = (item->x + item->w / 2) - ITEM_BIG_EXPLOSION_WIDTH / 2; - y = (item->y + item->h / 2) - ITEM_BIG_EXPLOSION_HEIGHT / 2; - item_explosion = item_new(x, y, ITEM_BIG_EXPLOSION, item->author_id); - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_additem_server(PROTO_SEND_ALL, NULL, item_explosion); - } - - space_add(spaceItem, item_explosion); - } - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_del_server(PROTO_SEND_ALL, NULL, item->id); - } - - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - space_del_with_item(spaceItem, item, item_destroy); - } -} - -static void action_item(space_t *space, item_t *item, int *isDel) -{ - switch (item->type) { - case ITEM_MINE: - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - mineExplosion(space, item); - } - break; - case ITEM_EXPLOSION: - case ITEM_BIG_EXPLOSION: - *isDel = 1; - break; - } -} - -static void action_shot(space_t *space, shot_t *shot, space_t *spaceItem) -{ - int isDel = 0; - - space_action_from_location(spaceItem, action_item, &isDel, - shot->x, shot->y, shot->w, shot->h); - - if (isDel) { - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_del_server(PROTO_SEND_ALL, NULL, shot->id); - } - - space_del_with_item(space, shot, shot_destroy); - } -} - -void item_event_conglicts_shot_with_item(arena_t *arena) -{ - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_CLIENT) { - return; - } - - space_action(arena->spaceShot, action_shot, arena->spaceItem); -} - -static void tux_event_tux_is_deadWithItem(tux_t *tux, item_t *item) -{ - if (tux->bonus == BONUS_GHOST) { - return; - } - - if (tux->bonus == BONUS_TELEPORT) { - tux_teleport(tux); - return; - } - - if (item->author_id == tux->id) { - tux->score--; - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_newtux_server(PROTO_SEND_ALL, NULL, tux); - } - } - - if (item->author_id != tux->id) { - tux_t *author; - - author = space_get_object_id(arena_get_current()->spaceTux, item->author_id); - - if (author != NULL) { - author->score++; - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_newtux_server(PROTO_SEND_ALL, NULL, author); - } - } - } - - tux_event_tux_is_dead(tux); -} - -static void tuxGiveBonus(tux_t *tux, item_t *item) -{ -#ifndef NO_SOUND - sound_play("item_bonus", SOUND_GROUP_BASE); -#endif /* NO_SOUND */ - tux->bonus = item->type; - tux->bonus_time = TUX_MAX_BONUS; - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_newtux_server(PROTO_SEND_ALL, NULL, tux); - } - -#ifndef PUBLIC_SERVER - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - radar_del(item->id); - } -#endif /* PUBLIC_SERVER */ -} - -static void tuxGiveGun(tux_t *tux, item_t *item) -{ -#ifndef NO_SOUND - sound_play("item_gun", SOUND_GROUP_BASE); -#endif /* NO_SOUND */ - tux->pickup_time = 0; - tux->shot[item->type] += GUN_MAX_SHOT; - tux->gun = item->type; - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_newtux_server(PROTO_SEND_ALL, NULL, tux); - } - -#ifndef PUBLIC_SERVER - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - radar_del(item->id); - } -#endif /* PUBLIC_SERVER */ -} - -static void action_giveitem(space_t *space, item_t *item, tux_t *tux) -{ - switch (item->type) { - case GUN_TOMMY: - case GUN_DUAL_SIMPLE: - case GUN_SCATTER: - case GUN_LASSER: - case GUN_MINE: - case GUN_BOMBBALL: - tuxGiveGun(tux, item); - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_del_server(PROTO_SEND_ALL, NULL, item->id); - } - - space_del_with_item(space, item, item_destroy); -#ifdef PUBLIC_SERVER - item_add_new_item(space, ID_UNKNOWN); -#endif /* PUBLIC_SERVER */ - break; - - case ITEM_MINE: - if (tux->bonus != BONUS_GHOST) { - mineExplosion(space, item); - } - break; - case ITEM_EXPLOSION: - case ITEM_BIG_EXPLOSION: - if (tux->bonus != BONUS_GHOST) { - tux_event_tux_is_deadWithItem(tux, item); - } - break; - case BONUS_SPEED: - case BONUS_SHOT: - case BONUS_TELEPORT: - case BONUS_GHOST: - case BONUS_4X: - case BONUS_HIDDEN: - tuxGiveBonus(tux, item); - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_del_server(PROTO_SEND_ALL, NULL, item->id); - } - - space_del_with_item(space, item, item_destroy); -#ifdef PUBLIC_SERVER - item_add_new_item(space, ID_UNKNOWN); -#endif /* PUBLIC_SERVER */ - break; - } -} - -void item_tux_give_list_item(tux_t *tux, space_t *spaceItem) -{ - int x, y, w, h; - - assert(spaceItem != NULL); - assert(tux != NULL); - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_CLIENT) { - return; - } - - if (tux->status == TUX_STATUS_DEAD) { - return; - } - - tux_get_proportion(tux, &x, &y, &w, &h); - space_action_from_location(spaceItem, action_giveitem, tux, x, y, w, h); -} - -void item_destroy(item_t *p) -{ - assert(p != NULL); - id_del(p->id); - free(p); -} - -void item_quiy() -{ - isItemInit = FALSE; -} diff --git a/src/base/item.h b/src/base/item.h deleted file mode 100644 index 48f2930..0000000 --- a/src/base/item.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef ITEM_H -#define ITEM_H - -#include "main.h" - -#ifndef PUBLIC_SERVER -#include "image.h" -#endif /* PUBLIC_SERVER */ - -#include "list.h" -#include "tux.h" -#include "myTimer.h" - -#define ITEM_SYNC_TIMEOUT 5000 - -#ifdef __WIN32__ -#define random rand -#endif /* __WIN32__ */ - -#define ITEM_MAX_COUNT 1 -#define ITEM_GUN_MAX_FRAME 8 -#define ITEM_MINE_MAX_FRAME 1 -#define ITEM_EXPLOSION_MAX_FRAME 10 -#define ITEM_BONUS_MAX_FRAME 8 -#define ITEM_GUN_WIDTH 50 -#define ITEM_GUN_HEIGHT 20 -#define ITEM_MINE_WIDTH 15 -#define ITEM_MINE_HEIGHT 11 -#define ITEM_EXPLOSION_WIDTH 40 -#define ITEM_EXPLOSION_HEIGHT 40 -#define ITEM_BIG_EXPLOSION_WIDTH 100 -#define ITEM_BIG_EXPLOSION_HEIGHT 100 -#define ITEM_BONUS_WIDTH 20 -#define ITEM_BONUS_HEIGHT 20 - -typedef struct item_struct { - int id; - int type; /* type of the item */ - - /* position */ - int x; - int y; - - /* size */ - int w; - int h; - - int frame; /* number of animation frames */ - int count; - - int author_id; -#ifndef PUBLIC_SERVER - image_t *img; /* picture of the item*/ -#endif -} item_t; - -extern bool_t item_is_inicialized(); -extern void item_init(); -extern item_t *item_new(int x, int y, int type, int author_id); -extern void item_get_status(void *p, int *id, int *x, int *y, int *w, int *h); -extern void item_set_status(void *p, int x, int y, int w, int h); -extern void item_replace_id(item_t *item, int id); -extern void item_add_new_item(space_t *spaceItem, int author_id); -#ifndef PUBLIC_SERVER -extern void item_draw(item_t *p); -extern void item_draw_list(list_t *listItem); -#endif /* PUBLIC_SERVER */ -extern void item_event(space_t *listSpace); -extern void item_event_conglicts_shot_with_item(arena_t *arena); -extern void item_event_tux_give_item(tux_t *tux, item_t *item, space_t *spaceItem); -extern void item_tux_give_list_item(tux_t *tux, space_t *spaceItem); -extern void item_destroy(item_t *p); -extern void item_quiy(); - -#endif /* ITEM_H */ diff --git a/src/base/list.c b/src/base/list.c deleted file mode 100644 index 482b50e..0000000 --- a/src/base/list.c +++ /dev/null @@ -1,184 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" - -list_t *list_new() -{ - list_t *new; - - new = malloc(sizeof(list_t)); - memset(new, 0, sizeof(list_t)); - - return new; -} - -list_t *list_clone(list_t *p) -{ - list_t *new; - - assert(p != NULL); - new = malloc(sizeof(list_t)); - memcpy(new, p, sizeof(list_t)); - - if (p->list != NULL) { - new->list = malloc(p->alloc * sizeof(void *)); - memcpy(new->list, p->list, p->alloc * sizeof(void *)); - } - - return new; -} - -list_t *list_clone_item(list_t *p, void *f) -{ - list_t *new; - void *(*fce) (void *); - int i; - - assert(p != NULL); - assert(f != NULL); - new = list_clone(p); - fce = f; - - for (i = 0; i < p->count; i++) { - new->list[i] = fce(p->list[i]); - } - - return new; -} - -void list_add(list_t *p, void *item) -{ - assert(p != NULL); - - if (p->alloc == 0) { - p->alloc = LIST_ALLOC_LIMIT; - p->count = 1; - p->list = malloc(p->alloc * sizeof(void *)); - p->list[0] = item; - return; - } - - if (p->count + 1 <= p->alloc) { - p->list[p->count] = item; - p->count += 1; - return; - } - - if (p->count + 1 > p->alloc) { -#ifdef DEBUG_LIST - printf("[Debug] Reallocating list from %d to %d (count: %d)\n", - p->alloc, p->alloc + LIST_ALLOC_LIMIT, p->count); -#endif - p->alloc += LIST_ALLOC_LIMIT; - p->list = realloc(p->list, p->alloc * sizeof(void *)); - p->list[p->count] = item; - p->count++; - return; - } -} - -void list_ins(list_t *p, int n, void *item) -{ - assert(p != NULL); - list_add(p, NULL); /* :) */ - assert(n >= 0 || n < p->count); - memmove(p->list + n + 1, p->list + n, ((p->count - 1) - n) * sizeof(void *)); - p->list[n] = item; -} - -void *list_get(list_t *p, int n) -{ - assert(p != NULL); - assert(n >= 0 || n < p->count); - return p->list[n]; -} - -int list_search(list_t *p, void *n) -{ - int i; - - assert(p != NULL); - - for (i = 0; i < p->count; i++) { - if (p->list[i] == n) { - return i; - } - } - - return -1; -} - -void list_del(list_t *p, int n) -{ - assert(p != NULL); - assert(n >= 0 || n < p->count); - - memmove(p->list + n, p->list + n + 1, ((p->count - 1) - n) * sizeof(void *)); - p->count--; - - if (p->count + LIST_ALLOC_LIMIT < p->alloc) { - void **new; - -#ifdef DEBUG_LIST - printf("Reallocating list from %d to %d (count: %d)\n", - p->alloc, p->alloc - LIST_ALLOC_LIMIT, p->count); -#endif - p->alloc -= LIST_ALLOC_LIMIT; - new = malloc(p->alloc * sizeof(void *)); - memcpy(new, p->list, p->count * sizeof(void *)); - free(p->list); - p->list = new; - } -} - -void list_del_item(list_t *p, int n, void *f) -{ - int (*fce) (void *); - - assert(p != NULL); - assert(n >= 0 || n < p->count); - fce = f; - - if (fce != NULL) { - fce(p->list[n]); - } - - list_del(p, n); -} - -void list_do_empty(list_t *p) -{ - p->count = 0; -} - -void list_destroy(list_t *p) -{ - assert(p != NULL); - - if (p->list != NULL) { - free(p->list); - } - - free(p); -} - -void list_destroy_item(list_t *p, void *f) -{ - void (*fce) (void *); - int i; - - assert(p != NULL); - assert(f != NULL); - - fce = f; - - for (i = 0; i < p->count; i++) { - fce(p->list[i]); - } - - list_destroy(p); -} diff --git a/src/base/list.h b/src/base/list.h deleted file mode 100644 index 7c9c610..0000000 --- a/src/base/list.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef LIST_H -#define LIST_H - -#include "main.h" - -#define LIST_ALLOC_LIMIT 16 - -typedef struct list_str { - void **list; - int count; - int alloc; -} list_t; - -extern list_t *list_new(); -extern list_t *list_clone(list_t *p); -extern list_t *list_clone_item(list_t *p, void *f); -extern void list_add(list_t *p, void *item); -extern void list_ins(list_t *p, int n, void *item); -extern void *list_get(list_t *p, int n); -extern int list_search(list_t *p, void *n); -extern void list_del(list_t *p, int n); -extern void list_del_item(list_t *p, int n, void *f); -extern void list_do_empty(list_t *p); -extern void list_destroy(list_t *p); -extern void list_destroy_item(list_t *p, void *f); - -#endif /* LIST_H */ diff --git a/src/base/main.c b/src/base/main.c deleted file mode 100644 index b2ab1f6..0000000 --- a/src/base/main.c +++ /dev/null @@ -1,186 +0,0 @@ -#include <time.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <signal.h> -#include <unistd.h> -#include <assert.h> -#include <sys/stat.h> - -#ifdef __WIN32__ -#include <windows.h> -#include <wininet.h> -#endif /* __WIN32__ */ - -#include "main.h" -#include "tux.h" - -#ifndef PUBLIC_SERVER -#include "game.h" -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#endif /* PUBLIC_SERVER */ - -static int my_argc; -static char **my_argv; - -char *getParam(char *s) -{ - unsigned int len; - int i; - - len = strlen(s); - - for (i = 1; i < my_argc; i++) { - /*printf("%s %s\n", s, my_argv[i]);*/ - - if (strlen(my_argv[i]) < len) { - continue; - } - - if (strncmp(s, my_argv[i], len) == 0 && strchr(my_argv[i], '=') != NULL ) { - return strchr(my_argv[i], '=') + 1; - } - } - - return NULL; -} - -char *getParamElse(char *s1, char *s2) -{ - char *ret; - ret = getParam(s1); - - if (ret == NULL) { - return s2; - } - - return ret; -} - -bool_t isParamFlag(char *s) -{ - int i; - - for (i = 0; i < my_argc; i++) { - if (strcmp(s, my_argv[i]) == 0) { - return TRUE; - } - } - - return FALSE; -} - -char *get_program_name() -{ - return my_argv[0]; -} - -char *getString(int n) -{ - char str[STR_NUM_SIZE]; - sprintf(str, "%d", n); - return strdup(str); -} - -char *get_string_static(int n) -{ - static char str[STR_SIZE]; - sprintf(str, "%d", n); - - return str; /* !!! */ -} - -int *newInt(int x) -{ - int *new; - - new = malloc(sizeof(int)); - *new = x; - - return new; -} - -void accessExistFile(const char *s) -{ - if (access(s, F_OK) != 0) { - error("File not found [%s]", s); - error("Shutting down the game"); - exit(-1); - } -} - -int tryExistFile(const char *s) -{ - if (access(s, F_OK) != 0) { - return 1; - } else { - return 0; - } -} - -int isFillPath(const char *path) -{ - assert(path != NULL); - -#ifndef __WIN32__ - if (path[0] == '/') { /* for Unix-like systems ;) */ -#else /* __WIN32__ */ - if (path[1] == ':') { /* for Windows-like systems ;) */ -#endif /* __WIN32__ */ - return 1; - } - - return 0; -} - -#ifdef __WIN32__ -int WINAPI -WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) -#else /* __WIN32__ */ -int main(int argc, char *argv[]) -#endif /* __WIN32__ */ -{ -#ifndef __WIN32__ - signal(SIGPIPE, SIG_IGN); -#endif /* __WIN32__ */ - - srand((unsigned) time(NULL)); - -#ifdef NLS - setlocale(LC_ALL, ""); - bindtextdomain(PACKAGE, PATH_LOCALE); - bind_textdomain_codeset(PACKAGE, "UTF-8"); - textdomain(PACKAGE); -#endif /* NLS */ - -#ifndef __WIN32__ - my_argc = argc; - my_argv = argv; -#endif /* __WIN32__ */ - -/* - test_space(); - exit(0); -*/ - -#ifdef __WIN32__ - WORD wVersionRequested = MAKEWORD(1, 1); /* WinSock version */ - WSADATA data; /* WinSock information structure */ - - /* let's initialize WinSock */ - if (WSAStartup(wVersionRequested, &data) != 0) { - error("Initialization of WinSock failed"); - error("Shutting down the game"); - exit(-1); - } -#endif /* __WIN32__ */ - -#ifndef PUBLIC_SERVER - game_start(); -#else /* PUBLIC_SERVER */ - public_server_start(); -#endif /* PUBLIC_SERVER */ - - return 0; -} diff --git a/src/base/main.h b/src/base/main.h deleted file mode 100644 index cf380cd..0000000 --- a/src/base/main.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef MAIN_H -#define MAIN_H - -#ifdef NLS -#include <libintl.h> -#include <locale.h> -#endif /* NLS */ - -#include "bool.h" -#include "string_length.h" -#include "path.h" - -#define WINDOW_SIZE_X 800 -#define WINDOW_SIZE_Y 600 - -#ifdef NLS -#define _(text) gettext(text) -#else /* NLS */ -#define _(text) (text) -#endif /* NLS */ - -#include "msg.h" - -#ifndef __WIN32__ -#define PATH_SEPARATOR "/" -#else /* __WIN32__ */ -#define PATH_SEPARATOR "\\" -#endif /* __WIN32__ */ - -extern char *getParam(char *s); -extern char *getParamElse(char *s1, char *s2); -extern bool_t isParamFlag(char *s); -extern char *get_program_name(); -extern char *getString(int n); -extern char *get_string_static(int n); -extern int *newInt(int x); -extern int isFillPath(const char *path); -extern void accessExistFile(const char *s); -extern int tryExistFile(const char *s); - -#endif /* MAIN_H */ diff --git a/src/base/modules.c b/src/base/modules.c deleted file mode 100644 index eab4506..0000000 --- a/src/base/modules.c +++ /dev/null @@ -1,317 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "shot.h" -#include "modules.h" -#include "arena.h" -#include "arenaFile.h" -#include "proto.h" -#include "shareFunction.h" - -#ifndef PUBLIC_SERVER -#include "interface.h" -#include "image.h" -#include "layer.h" -#include "configFile.h" -#endif /* PUBLIC_SERVER */ - -static export_fce_t export_fce = { -#ifndef PUBLIC_SERVER - .fce_addLayer = addLayer, - .fce_image_get = image_get, -#endif /* PUBLIC_SERVER */ - .fce_module_load_dep = module_load_dep, - .fce_share_function_add = share_function_add, - .fce_share_function_get = share_function_get, - - .fce_getValue = arena_file_get_value, - .fce_net_multiplayer_get_game_type = net_multiplayer_get_game_type, - .fce_tux_get_proportion = tux_get_proportion, - .fce_tux_set_proportion = tux_set_proportion, - .fce_tux_action = tux_action, - - .fce_timer_get_current_time = timer_get_current_time, - - .fce_arena_get_current = arena_get_current, - .fce_arena_conflict_space = arena_conflict_space, - .fce_arena_is_free_space = arena_is_free_space, - .fce_arena_find_free_space = arena_find_free_space, - - .fce_proto_send_module_server = proto_send_module_server, - .fce_proto_send_del_server = proto_send_del_server, -#ifndef PUBLIC_SERVER - .fce_proto_send_module_client = proto_send_module_client, -#endif /* PUBLIC_SERVER */ - .fce_shot_destroy = shot_destroy, - .fce_shot_bound_bombBall = shot_bound_bombBall, - .fce_shot_transform_lasser = shot_transform_lasser -}; - -static list_t *listModule; -static mod_reg_t mod_reglist; - -/* register module as valid */ -static mod_reg_t *mod_register(char *name, mod_sym_t *sym) -{ - /* alloc and init context */ - mod_reg_t *mod = (mod_reg_t *) malloc(sizeof(mod_reg_t)); - - if (!mod) { - return 0; - } - - mod->name = strdup(name); - mod->sym = sym; - - /* add entry into list */ - mod->next = &mod_reglist; - mod->prev = mod_reglist.prev; - mod->prev->next = mod; - mod->next->prev = mod; - - return mod; -} - -/* free all unnecessary memory blocks from module's reglist */ -static void mod_destroy() -{ - unsigned i; - for (;;) { - i = 0; - - mod_reg_t *mod; - for (mod = mod_reglist.next; mod != &mod_reglist; mod = mod->next) { - /* delete entry from context */ - mod->next->prev = mod->prev; - mod->prev->next = mod->next; - - free(mod->name); - free(mod); - - i++; - - break; - } - - if (!i) { - break; - } - } -} - -static mod_reg_t *mod_find(char *name) -{ - mod_reg_t *mod; - for (mod = mod_reglist.next; mod != &mod_reglist; mod = mod->next) { - if (!strcmp(mod->name, name)) { - return mod; - } - } - - return 0; -} - -static module_t *newModule(char *name) -{ - assert(name != NULL); - - mod_reg_t *mod = mod_find(name); - - if (!mod) { - error("Module [%s] is unavailable", name); - return 0; - } - - module_t *ret = malloc(sizeof(module_t)); - - if (!ret) { - return 0; - } - - ret->name = strdup(name); - - if (!ret->name) { - free(ret); - return 0; - } - - ret->fce_init = mod->sym->init; -#ifndef PUBLIC_SERVER - ret->fce_draw = mod->sym->draw; -#endif /* PUBLIC_SERVER */ - ret->fce_event = mod->sym->event; - ret->fce_destroy = mod->sym->destroy; - ret->fce_isConflict = mod->sym->isConflict; - ret->fce_cmd = mod->sym->cmdArena; - ret->fce_recvMsg = mod->sym->recvMsg; - - debug("Loading module [%s]", name); - - if (ret->fce_init(&export_fce) != 0) { - error("Unable to load module [%s]", name); - free(ret->name); - free(ret); - return NULL; - } - - return ret; -} - -static int destroyModule(module_t *p) -{ - assert(p != NULL); - - debug("Unloading module [%s]", p->name); - - p->fce_destroy(); - - free(p->name); - free(p); - - return 0; -} - -void module_init() -{ - listModule = list_new(); - share_function_init(); - - mod_reglist.next = &mod_reglist; - mod_reglist.prev = &mod_reglist; - - mod_register("libmodAI", &modai_sym); - mod_register("libmodWall", &modwall_sym); - mod_register("libmodPipe", &modpipe_sym); - mod_register("libmodMove", &modmove_sym); - mod_register("libmodBasic", &modbasic_sym); - mod_register("libmodTeleport", &modteleport_sym); -} - -int isModuleLoaded(char *name) -{ - int i; - - for (i = 0; i < listModule->count; i++) { - module_t *this; - - this = (module_t *) listModule->list[i]; - - if (strcmp(this->name, name) == 0) { - return 1; - } - } - - return 0; -} - -int module_load(char *name) -{ - module_t *module; - - if (isModuleLoaded(name)) { - error("Unable to load already loaded module [%s]", name); - return -1; - } - - module = newModule(name); - - if (module == NULL) { - error("Unable to load module [%s]", name); - return -1; - } - - list_add(listModule, module); - - return 0; -} - -int module_load_dep(char *name) -{ - if (isModuleLoaded(name)) { - return 0; - } - - return module_load(name); -} - -void module_cmd(char *s) -{ - int i; - - for (i = 0; i < listModule->count; i++) { - module_t *this; - - this = (module_t *) listModule->list[i]; - this->fce_cmd(s); - } -} - -#ifndef PUBLIC_SERVER -void module_draw(int x, int y, int w, int h) -{ - int i; - - for (i = 0; i < listModule->count; i++) { - module_t *this; - - this = (module_t *) listModule->list[i]; - this->fce_draw(x, y, w, h); - } -} -#endif /* PUBLIC_SERVER */ - -void module_event() -{ - int i; - - for (i = 0; i < listModule->count; i++) { - module_t *this; - - this = (module_t *) listModule->list[i]; - this->fce_event(); - } -} - -int module_is_conflict(int x, int y, int w, int h) -{ - int i; - - for (i = 0; i < listModule->count; i++) { - module_t *this; - - this = (module_t *) listModule->list[i]; - - if (this->fce_isConflict(x, y, w, h) == 1) { - return 1; - } - } - - return 0; -} - -int module_recv_msg(char *msg) -{ - int i; - - for (i = 0; i < listModule->count; i++) { - module_t *this; - - this = (module_t *) listModule->list[i]; - this->fce_recvMsg(msg); - } - - return 0; -} - -void module_quit() -{ - list_destroy_item(listModule, destroyModule); - share_function_quit(); - - mod_destroy(); -} diff --git a/src/base/modules.h b/src/base/modules.h deleted file mode 100644 index 7cece8a..0000000 --- a/src/base/modules.h +++ /dev/null @@ -1,110 +0,0 @@ -#ifndef MODULE_H -#define MODULE_H - -#include "tux.h" -#include "shot.h" -#include "arena.h" -#include "proto.h" -#include "myTimer.h" - -#ifndef PUBLIC_SERVER -#include "image.h" -#endif /* PUBLIC_SERVER */ - -typedef struct export_fce_s { - int (*fce_getValue) (char *line, char *env, char *val, int len); - -#ifndef PUBLIC_SERVER - image_t *(*fce_image_get) (char *group, char *name); - - void (*fce_addLayer) (image_t *img, int x, int y, int px, int py, - int w, int h, int player); -#endif - - int (*fce_net_multiplayer_get_game_type) (); - int (*fce_module_load_dep) (char *name); - void (*fce_share_function_add) (char *name, void *function); - void *(*fce_share_function_get) (char *name); - - void (*fce_tux_get_proportion) (tux_t *tux, int *x, int *y, int *w, int *h); - void (*fce_tux_set_proportion) (tux_t *tux, int x, int y); - tux_t *(*fce_getTuxID) (list_t *listTux, int id); - void (*fce_tux_action) (tux_t *tux, int action); - - arena_t *(*fce_arena_get_current) (); - int (*fce_arena_conflict_space) (int x1, int y1, int w1, int h1, - int x2, int y2, int w2, int h2); - int (*fce_arena_is_free_space) (arena_t *arena, int x, int y, int w, int h); - void (*fce_arena_find_free_space) (arena_t *arena, int *x, int *y, int w, int h); - - void (*fce_proto_send_del_server)(int type, client_t *client, int id); - void (*fce_proto_send_module_server) (int type, client_t *client, char *msg); - void (*fce_proto_send_module_client) (char *msg); - - my_time_t(*fce_timer_get_current_time) (); - - void (*fce_shot_destroy) (shot_t *p); - void (*fce_shot_bound_bombBall) (shot_t *shot); - void (*fce_shot_transform_lasser) (shot_t *shot); -} export_fce_t; - -typedef struct module_s { - char *name; -#ifndef __WIN32__ - void *image; -#else /* __WIN32__ */ - HINSTANCE *image; -#endif /* __WIN32__ */ - - int (*fce_init) (export_fce_t *p); -#ifndef PUBLIC_SERVER - int (*fce_draw) (int x, int y, int w, int h); -#endif /* PUBLIC_SERVER */ - int (*fce_event) (); - int (*fce_isConflict) (int x, int y, int w, int h); - void (*fce_cmd) (char *line); - void (*fce_recvMsg) (char *msg); - int (*fce_destroy) (); - -} module_t; - -/* module's call list */ -typedef struct { - void *init; - void *draw; - void *event; - void *isConflict; - void *cmdArena; - void *recvMsg; - void *destroy; -} mod_sym_t; - -/* structure of the registered modules */ -typedef struct mod_context { - struct mod_context *next, *prev; - - char *name; - mod_sym_t *sym; -} mod_reg_t; - -/* available modules */ -extern mod_sym_t modai_sym; -extern mod_sym_t modwall_sym; -extern mod_sym_t modpipe_sym; -extern mod_sym_t modmove_sym; -extern mod_sym_t modbasic_sym; -extern mod_sym_t modteleport_sym; - -extern void module_init(); -extern int module_load(char *name); -extern int module_load_dep(char *name); -#ifndef PUBLIC_SERVER -extern void module_draw(int x, int y, int w, int h); -#endif /* PUBLIC_SERVER */ -extern void module_event(); -extern void module_cmd(char *s); -extern int module_is_conflict(int x, int y, int w, int h); -extern int module_recv_msg(char *msg); -extern void module_quit(); - -#endif /* MODULES_H */ diff --git a/src/base/msg.h b/src/base/msg.h deleted file mode 100644 index 403100c..0000000 --- a/src/base/msg.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef MSG_H -#define MSG_H - -#ifdef DEBUG -#define debug(msg,arg...) fprintf(stdout, "%s ", _("[Debug]")); fprintf(stdout, _(msg), ##arg); fprintf(stdout, "\n") -#else /* DEBUG */ -#define debug(msg,arg...) -#endif /* DEBUG */ - -#define warning(msg,arg...) fprintf(stderr, "%s ", _("[Warning]")); fprintf(stderr, _(msg), ##arg); fprintf(stderr, "\n") -#define error(msg,arg...) fprintf(stderr, "%s ", _("[Error]")); fprintf(stderr, _(msg), ##arg); fprintf(stderr, "\n") -#define fatal(msg,arg...) \ -{ \ - fprintf(stderr, "%s ", _("[Fatal]")); fprintf(stderr, _(msg), ##arg); fprintf(stderr, "\n"); \ - abort(); \ -} - -#endif /* MSG_H */ diff --git a/src/base/myTimer.c b/src/base/myTimer.c deleted file mode 100644 index 5015cc6..0000000 --- a/src/base/myTimer.c +++ /dev/null @@ -1,157 +0,0 @@ -#include <time.h> -#include <assert.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <sys/time.h> -#include <signal.h> -#ifdef __WIN32__ -#include <time.h> -#endif /* __WIN32__ */ - -#include "main.h" -#include "list.h" -#include "myTimer.h" -#ifndef PUBLIC_SERVER -#include "interface.h" -#endif /* PUBLIC_SERVER */ - -static struct timeval my_start = {.tv_sec = 0, .tv_usec = 0}; - -list_t *timer_new() -{ - return list_new(); -} - -void timer_restart() -{ - gettimeofday(&my_start, NULL); -} - - -my_time_t timer_get_current_time() -{ - struct timeval now; - my_time_t ticks; - - if (my_start.tv_sec == 0 && my_start.tv_usec == 0) { - timer_restart(); - } - - gettimeofday(&now, NULL); - ticks = (now.tv_sec - my_start.tv_sec) * 1000 + (now.tv_usec - my_start.tv_usec) / 1000; - /*printf("-> %d\n", ticks);*/ - - return ticks; -} - -my_time_t timer_get_current_timeMicro() -{ - static struct timeval my_micro_start = {.tv_sec = 0,.tv_usec = 0 }; - struct timeval now; - my_time_t ticks; - - if (my_micro_start.tv_sec == 0 && my_micro_start.tv_usec == 0) { - gettimeofday(&my_micro_start, NULL); - } - - gettimeofday(&now, NULL); - ticks = (now.tv_sec - my_micro_start.tv_sec) * 1000 * 1000 + (now.tv_usec - my_micro_start.tv_usec); - /*printf("-> %d\n", ticks);*/ - - return ticks; -} - -my_timer_t *timer_newItem(int type, void (*fce) (void *p), void *arg, my_time_t my_time) -{ - static int new_id = 0; - my_timer_t *new; - - assert(fce != NULL); - - new = malloc(sizeof(my_timer_t)); - memset(new, 0, sizeof(my_timer_t)); - new->id = new_id++; - new->type = type; - new->fce = fce; - new->arg = arg; - new->createTime = timer_get_current_time(); - new->time = my_time; - - return new; -} - -static void timer_destroyItem(my_timer_t *p) -{ - assert(p != NULL); - free(p); -} - -int timer_add_task(list_t *listTimer, int type, void (*fce) (void *p), void *arg, my_time_t my_time) -{ - my_timer_t *new; - - new = timer_newItem(type, fce, arg, my_time); - list_add(listTimer, new); - - return new->id; -} - -void timer_event(list_t *listTimer) -{ - int i; - my_timer_t *thisTimer; - my_time_t currentTime; - - currentTime = timer_get_current_time(); - - for (i = 0; i < listTimer->count; i++) { - thisTimer = (my_timer_t *) listTimer->list[i]; - assert(thisTimer != NULL); - - switch (thisTimer->type) { - case TIMER_ONE: - if (currentTime >= thisTimer->createTime + thisTimer->time) { - thisTimer->fce(thisTimer->arg); - list_del_item(listTimer, i, free); - i--; - } - break; - case TIMER_PERIODIC: - if (currentTime >= thisTimer->createTime + thisTimer->time) { - thisTimer->fce(thisTimer->arg); - thisTimer->createTime = timer_get_current_time(); - } - break; - default: - fatal("Bad setting of the timer"); - break; - } - } -} - -void timer_del(list_t *listTimer, int id) -{ - my_timer_t *thisTimer; - int i; - - for (i = 0; i < listTimer->count; i++) { - thisTimer = (my_timer_t *) listTimer->list[i]; - - assert(thisTimer != NULL); - - if (thisTimer->id == (unsigned) id) { - list_del_item(listTimer, i, free); - return; - } - } - - error("Unable to delete event from the timer as it is not present in it [%d]", id); - assert(0); -} - - -void timer_destroy(list_t *listTimer) -{ - list_destroy_item(listTimer, timer_destroyItem); -} diff --git a/src/base/myTimer.h b/src/base/myTimer.h deleted file mode 100644 index db05365..0000000 --- a/src/base/myTimer.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef MY_TIME_H -#define MY_TIME_H - -#include "main.h" -#include "list.h" - -#define my_time_t unsigned int -#define TIMER_ONE 0 -#define TIMER_PERIODIC 1 - -typedef struct my_timer_struct { - unsigned int id; - void (*fce) (void *p); - void *arg; - int type; - my_time_t createTime; - my_time_t time; -} my_timer_t; - -extern list_t *timer_new(); -extern void timer_restart(); -extern my_time_t timer_get_current_time(); -extern int timer_add_task(list_t *listTimer, int type, void (*fce) (void *p), - void *arg, my_time_t my_time); -extern void timer_event(list_t *listTimer); -extern void timer_del(list_t *listTimer, int id); -extern void timer_destroy(list_t *listTimer); - -#endif /* MY_TIME_H */ diff --git a/src/base/net_multiplayer.c b/src/base/net_multiplayer.c deleted file mode 100644 index 9888f03..0000000 --- a/src/base/net_multiplayer.c +++ /dev/null @@ -1,138 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> -#include <unistd.h> - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "item.h" -#include "arenaFile.h" -#include "net_multiplayer.h" -#include "server.h" - -#include "udp.h" - -#ifndef PUBLIC_SERVER -#include "setting.h" -#include "choiceArena.h" - -#include "screen.h" -#include "client.h" -#endif /* PUBLIC_SERVER */ - -static int netGameType; - -int net_multiplayer_get_game_type() -{ - return netGameType; -} - -int net_multiplayer_init_for_game_server(char *ip4, char *ip6, int port) -{ - int ret; - - ret = server_init(ip4, ip6, port); - - if (ret > 0) { - netGameType = NET_GAME_TYPE_SERVER; - } - - return ret; -} - -int net_multiplayer_init(int type, char *ip, int port, int proto) -{ - netGameType = type; - - switch (netGameType) { - case NET_GAME_TYPE_NONE: - break; - - case NET_GAME_TYPE_SERVER: - switch (proto) { - case PROTO_UDPv4: - if (server_init(ip, NULL, port) != 1) { - error("Unable to initialize multiplayer game"); - netGameType = NET_GAME_TYPE_NONE; - return -1; - } - break; - - case PROTO_UDPv6: - if (server_init(NULL, ip, port) != 1) { - error("Unable to initialize multiplayer game"); - netGameType = NET_GAME_TYPE_NONE; - return -1; - } - break; - } - break; - -#ifndef PUBLIC_SERVER - case NET_GAME_TYPE_CLIENT: - if (client_init(ip, port) != 0) { - error("Unable to join multiplayer game"); - netGameType = NET_GAME_TYPE_NONE; - return -1; - } - break; -#endif /* PUBLIC_SERVER */ - - default: - error("Unknown type of the network game [%d]", netGameType); - assert(0); - break; - } - - return 0; -} - -void net_multiplayer_event() -{ - switch (netGameType) { - case NET_GAME_TYPE_NONE: - break; - - case NET_GAME_TYPE_SERVER: - server_event(); - break; - -#ifndef PUBLIC_SERVER - case NET_GAME_TYPE_CLIENT: - client_event(); - break; -#endif /* PUBLIC_SERVER */ - - default: - error("Unknown type of the network game [%d]", netGameType); - assert(0); - break; - } -} - -void net_multiplayer_quit() -{ - switch (netGameType) { - case NET_GAME_TYPE_NONE: - break; - - case NET_GAME_TYPE_SERVER: - server_quit(); - break; - -#ifndef PUBLIC_SERVER - case NET_GAME_TYPE_CLIENT: - client_quit(); - break; -#endif /* PUBLIC_SERVER */ - - default: - error("Unknown type of the network game [%d]", netGameType); - assert(0); - break; - } - - netGameType = NET_GAME_TYPE_NONE; -} diff --git a/src/base/net_multiplayer.h b/src/base/net_multiplayer.h deleted file mode 100644 index c52b1ee..0000000 --- a/src/base/net_multiplayer.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef NET_MULTIPLAYER_H -#define NET_MULTIPLAYER_H - -#include "main.h" -#include "tux.h" -#include "item.h" -#include "arena.h" - -#define PROTO_UDPv4 0 -#define PROTO_UDPv6 1 - -#define NET_GAME_TYPE_NONE 0 -#define NET_GAME_TYPE_SERVER 1 -#define NET_GAME_TYPE_CLIENT 2 - -#define NET_STATUS_OK 0 -#define NET_STATUS_ZOMBIE 1 - -#define NET_PROTOCOL_TYPE_TCP 0 -#define NET_PROTOCOL_TYPE_UDP 1 - -#define LIMIT_BUFFER 10240 - -#define NET_MASTER_SERVER_DOMAIN "ms.tuxanci.org" -#define NET_MASTER_SERVER "83.167.234.16" -#define NET_MASTER_PORT 6800 - -#ifdef PUBLIC_SERVER -extern int net_multiplayer_init_for_game_server(char *ip4, char *ip6, int port); -#endif /* PUBLIC_SERVER */ - -extern int net_multiplayer_init(int type, char *ip, int port, int proto); -extern int net_multiplayer_get_game_type(); -extern void net_multiplayer_event(); -extern void net_multiplayer_quit(); - -#endif /* NET_MULTIPLAYER_H */ diff --git a/src/base/path.h.in b/src/base/path.h.in deleted file mode 100644 index 8dfded9..0000000 --- a/src/base/path.h.in +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef PATH_H -#define PATH_H - -#include "main.h" - -#cmakedefine USE_MAGICK -#define APPNAME "@APPNAME@" -#ifdef __WIN32__ - #define PATH_DIR "data" PATH_SEPARATOR -#else - #define PATH_DIR "@CMAKE_DATA_PATH@" PATH_SEPARATOR APPNAME PATH_SEPARATOR -#endif -#define TUXANCI_VERSION "@TUXANCI_VERSION@" -#define PREFIX "@CMAKE_INSTALL_PREFIX@" PATH_SEPARATOR -#ifdef PUBLIC_SERVER - #define SERVER_CONFIG "@CMAKE_CONF_PATH@" PATH_SEPARATOR APPNAME PATH_SEPARATOR "server.conf" -#endif /* PUBLIC_SERVER */ -#define PATH_IMAGE PATH_DIR "images" PATH_SEPARATOR -#define PATH_ARENA PATH_DIR "arena" PATH_SEPARATOR -#define PATH_SOUND PATH_DIR "sound" PATH_SEPARATOR -#define PATH_MUSIC PATH_DIR "music" PATH_SEPARATOR -#define PATH_LOCALE "@CMAKE_LOCALE_PATH@" PATH_SEPARATOR -#define PATH_DOC "@CMAKE_DOC_PATH@" PATH_SEPARATOR -#define PACKAGE APPNAME - -#endif /* PATH_H */ diff --git a/src/base/protect.c b/src/base/protect.c deleted file mode 100644 index 754fa26..0000000 --- a/src/base/protect.c +++ /dev/null @@ -1,86 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "myTimer.h" -#include "protect.h" - -protect_t *newProtect() -{ - protect_t *new; - - new = malloc(sizeof(protect_t)); - new->lastMove = timer_get_current_time(); - new->lastPing = timer_get_current_time(); - new->avarage = 0; - new->count = 0; - new->isDown = FALSE; - - return new; -} - -void refreshLastMove(protect_t *p) -{ - my_time_t currentTime; - my_time_t interval; - - currentTime = timer_get_current_time(); - interval = currentTime - p->lastMove; - - p->lastMove = timer_get_current_time(); - p->avarage += interval; - p->count++; - - if (p->count == PROTECT_SPEED_AVARAGE) { - int my_index; - - my_index = p->avarage / PROTECT_SPEED_AVARAGE; - p->avarage = 0; - p->count = 0; - -/* - if (my_index < PROTECT_SPEED_INTERVAL_TIMEOUT) { - p->isDown = TRUE; - } -*/ - - /*printf("speed index = %d\n", my_index);*/ - } -} - -void rereshLastPing(protect_t *p) -{ - /* - my_time_t currentTime; - my_time_t interval; - currentTime = timer_get_current_time(); - interval = currentTime - p->lastPing; - */ - - p->lastPing = timer_get_current_time(); - - /*printf("interval = %d\n", interval);*/ -} - -bool_t isDown(protect_t *p) -{ - my_time_t currentTime; - my_time_t interval; - - currentTime = timer_get_current_time(); - interval = currentTime - p->lastPing; - - if (interval > PROTECT_PING_INTERVAL_TIMEOUT) { - p->isDown = TRUE; - } - - return p->isDown; -} - -void destroyProtect(protect_t *p) -{ - assert(p != NULL); - free(p); -} diff --git a/src/base/protect.h b/src/base/protect.h deleted file mode 100644 index 1a55ef7..0000000 --- a/src/base/protect.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PROTECT_H -#define PROTECT_H - -#include "main.h" -#include "myTimer.h" - -#define PROTECT_PING_INTERVAL_TIMEOUT 5000 -#define PROTECT_SPEED_INTERVAL_TIMEOUT 40 -#define PROTECT_SPEED_AVARAGE 10 - -typedef struct protect_struct { - my_time_t lastPing; - my_time_t lastMove; - my_time_t avarage; - int count; - bool_t isDown; -} protect_t; - -extern protect_t *newProtect(); -extern void refreshLastMove(protect_t *p); -extern void rereshLastPing(protect_t *p); -extern bool_t isDown(protect_t *p); -extern void destroyProtect(protect_t *p); - -#endif /* PROTECT_H */ diff --git a/src/base/proto.c b/src/base/proto.c deleted file mode 100644 index 422a304..0000000 --- a/src/base/proto.c +++ /dev/null @@ -1,937 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "item.h" -#include "shot.h" -#include "arenaFile.h" -#include "myTimer.h" -#include "server.h" -#include "proto.h" -#include "net_multiplayer.h" -#include "checkFront.h" -#include "idManager.h" -#include "modules.h" -#include "protect.h" -#include "serverSendMsg.h" - -#ifndef PUBLIC_SERVER -#include "world.h" -#include "setting.h" -#include "choiceArena.h" -#include "analyze.h" -#include "downArena.h" -#include "client.h" -#include "term.h" -#include "radar.h" -#include "chat.h" -#else /* PUBLIC_SERVER*/ -#include "highScore.h" -#include "publicServer.h" -#include "serverConfigFile.h" -#endif /* PUBLIC_SERVER*/ - -void proto_send_error_server(int type, client_t *client, int errorcode) -{ - char msg[STR_PROTO_SIZE]; - - snprintf(msg, STR_PROTO_SIZE, "error %d\n", errorcode); - - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_SIMPLE, CHECK_FRONT_ID_NONE); -} - -#ifndef PUBLIC_SERVER -void proto_recv_error_client(char *msg) -{ - char cmd[STR_PROTO_SIZE]; - int errorcode; - int recv_count; - - assert(msg != NULL); - - recv_count = sscanf(msg, "%s %d", cmd, &errorcode); - - if (recv_count != 2) { - return; - } - - debug("Communication error [%d]", errorcode); - - switch (errorcode) { - case PROTO_ERROR_CODE_BAD_VERSION: - analyze_set_msg(_("Cannot connect to the server. You have incompatible version of the game.")); - world_do_end(); - break; - case PROTO_ERROR_CODE_TIMEOUT: - analyze_set_msg(_("Connection timeout")); - world_do_end(); - break; - case PROTO_ERROR_LIMIT_MAX_CLIENT: - analyze_set_msg(_("Server is full")); - world_do_end(); - break; - } -} - -void proto_send_hello_client(char *name) -{ - char msg[STR_PROTO_SIZE]; - - snprintf(msg, STR_PROTO_SIZE, "hello %s %s\n", - getParamElse("--version", TUXANCI_VERSION), name); - - debug("Sending: %s", msg); - client_send(msg); -} -#endif /* PUBLIC_SERVER */ - -static void action_sendItem(space_t *space, item_t *item, client_t *client) -{ - proto_send_additem_server(PROTO_SEND_ONE, client, item); -} - -static void sendInfoCreateClient(client_t *client) -{ - list_t *listClient; - client_t *thisClient; - tux_t *thisTux; - int i; - - assert(client != NULL); - - listClient = server_get_list_clients(); - - proto_send_init_server(PROTO_SEND_ONE, client, client); - -#ifndef PUBLIC_SERVER - proto_send_newtux_server(PROTO_SEND_ONE, client, world_get_control_tux(TUX_CONTROL_KEYBOARD_RIGHT)); -#endif /* PUBLIC_SERVER */ - - for (i = 0; i < listClient->count; i++) { - thisClient = (client_t *) listClient->list[i]; - thisTux = thisClient->tux; - - /* odosli kazdemu stremu hracovy informacie o novom hracovy */ - /* send to all players information about new player */ - if (thisTux != NULL && thisTux != client->tux) { - proto_send_newtux_server(PROTO_SEND_ONE, thisClient, client->tux); - } - - /* send to new players information about all players, including himself */ - if (thisTux != NULL) { - proto_send_newtux_server(PROTO_SEND_ONE, client, thisTux); - } - } - - space_action(arena_get_current()->spaceItem, action_sendItem, client); - -/* - for (i = 0; i < arena_get_current()->spaceItem->listIndex->count; i++) { - thisItem = (item_t *) arena_get_current()->spaceItem->list->list[i]; - proto_send_additem_server(PROTO_SEND_ONE, client, thisItem); - } -*/ -} - -void proto_recv_hello_server(client_t *client, char *msg) -{ - static char *supportVersion = NULL; - char cmd[STR_PROTO_SIZE]; - char version[STR_NAME_SIZE]; - char name[STR_NAME_SIZE]; - int recv_count; - - assert(client != NULL); - - if (space_get_count(arena_get_current()->spaceTux) + 1 > server_get_max_clients()) { - proto_send_error_server(PROTO_SEND_ONE, client, PROTO_ERROR_LIMIT_MAX_CLIENT); - check_front_event(client); - client->status = NET_STATUS_ZOMBIE; - return; - } - - strcpy(version, ""); - strcpy(name, ""); - - if (supportVersion == NULL) { -#ifndef PUBLIC_SERVER - supportVersion = TUXANCI_VERSION; -#else /* PUBLIC_SERVER */ - supportVersion = public_server_get_setting("SUPPORT_CLIENTS", "--support-clients", TUXANCI_VERSION); -#endif /* PUBLIC_SERVER */ - } - - recv_count = sscanf(msg, "%s %s %s", cmd, version, name); - - if (recv_count != 3) { - return; - } - - if (strstr(supportVersion, version) == NULL) { - proto_send_error_server(PROTO_SEND_ONE, client, PROTO_ERROR_CODE_BAD_VERSION); - check_front_event(client); - client->status = NET_STATUS_ZOMBIE; - return; - } - - client->tux = tux_new(); - client->tux->control = TUX_CONTROL_NET; - client->tux->client = client; - - space_add(arena_get_current()->spaceTux, client->tux); - - if (strlen(name) > STR_NAME_SIZE - 1) { - name[STR_NAME_SIZE - 1] = '\0'; - } - - tux_set_name(client->tux, name); - sendInfoCreateClient(client); -} - -void proto_send_status_server(int type, client_t *client) -{ - char msg[STR_PROTO_SIZE]; - char *name; - char *version; - int clients; - int maxclients; - unsigned int uptime; - char *arena; - -#ifndef PUBLIC_SERVER - name = "NewServer"; -#endif /* PUBLIC_SERVER */ - -#ifdef PUBLIC_SERVER - name = public_server_get_setting("NAME", "--name", "noname"); -#endif /* PUBLIC_SERVER */ - - version = TUXANCI_VERSION; - clients = arena_get_current()->spaceTux->listIndex->count; - maxclients = server_get_max_clients(); - uptime = (unsigned int) server_get_update(); - arena = arena_file_get_net_name(choice_arena_get()); - - snprintf(msg, STR_PROTO_SIZE, - "name: %s\n" - "version: %s\n" - "clients: %d\n" - "maxclients: %d\n" - "uptime: %d\n" - "arena: %s\n", - name, version, clients, maxclients, uptime, arena); - - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_SIMPLE, CHECK_FRONT_ID_NONE); - /*proto_send(type, client, msg);*/ -} - -void proto_recv_status_server(client_t *client, char *msg) -{ - proto_send_status_server(PROTO_SEND_ONE, client); -} - -#ifndef PUBLIC_SERVER -void proto_send_check_client(int id) -{ - char msg[STR_PROTO_SIZE]; - - snprintf(msg, STR_PROTO_SIZE, "check %d\n", id); - client_send(msg); -} -#else /* PUBLIC_SERVER */ -void proto_send_listscore_server(int type, client_t *client, int max) -{ - char *str; - char *msg; - int i; - - msg = malloc((max * 48) * sizeof(char)); - strcpy(msg, ""); - - for (i = 0; i < max; i++) { - str = high_score_get_table(i); - - if (str == NULL) { - break; - } - - strcat(msg, str); - strcat(msg, "\n"); - } - - /*proto_send(type, client, msg);*/ - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_SIMPLE, CHECK_FRONT_ID_NONE); - free(msg); -} - -void proto_recv_listscore_server(client_t *client, char *msg) -{ - char cmd[STR_PROTO_SIZE]; - int recv_count; - int max; - - assert(msg != NULL); - - recv_count = sscanf(msg, "%s %d", cmd, &max); - - if (recv_count != 2) { - max = HIGHSCORE_MAX_PLAYERS; - } - - proto_send_listscore_server(PROTO_SEND_ONE, client, max); -} -#endif /* PUBLIC_SERVER */ - -void proto_recv_check_server(client_t *client, char *msg) -{ - char cmd[STR_PROTO_SIZE]; - int recv_count; - int id; - - assert(msg != NULL); - - recv_count = sscanf(msg, "%s %d", cmd, &id); - - if (recv_count != 2) { - return; - } - - check_front_del_msg(client->listSendMsg, id); -} - -void proto_send_init_server(int type, client_t *client, client_t *client2) -{ - char msg[STR_PROTO_SIZE]; - int count; - int check_id; - - assert(client2 != NULL); - - count = WORLD_COUNT_ROUND_UNLIMITED; - -#ifndef PUBLIC_SERVER - public_server_get_settingCountRound(&count); -#endif /* PUBLIC_SERVER */ - - check_id = id_get_newcount(0); - - snprintf(msg, STR_PROTO_SIZE, "init %d %d %d %d %s %d\n", - client2->tux->id, client2->tux->x, client2->tux->y, - count, arena_file_get_net_name(choice_arena_get()), check_id); - - /*proto_send(type, client, msg);*/ - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_CHECK, check_id); -} - -#ifndef PUBLIC_SERVER -void proto_recv_init_client(char *msg) -{ - char cmd[STR_PROTO_SIZE]; - char arena_name[STR_PROTO_SIZE]; - tux_t *tux; - int id; - int x, y, n; - int check_id; - int recv_count; - arena_t *arena; - - assert(msg != NULL); - - recv_count = sscanf(msg, "%s %d %d %d %d %s %d", - cmd, &id, &x, &y, &n, arena_name, &check_id); - - if (recv_count != 7) { - return; - } - - proto_send_check_client(check_id); - - if (arena_get_current() != NULL) { - return; - } - - world_set_arena(arena_file_get_file_format_net_name(arena_name)); - - arena = arena_get_current(); - arena->max_countRound = n; - - tux = tux_new(); - tux_replace_id(tux, id); - tux->x = x; - tux->y = y; - tux->control = TUX_CONTROL_KEYBOARD_RIGHT; - world_set_control_tux(tux, TUX_CONTROL_KEYBOARD_RIGHT); - - public_server_get_setting_name_right(tux->name); - - space_add(arena->spaceTux, tux); -} -#endif /* PUBLIC_SERVER */ - -void proto_send_event_server(int type, client_t *client, tux_t *tux, int action) -{ - char msg[STR_PROTO_SIZE]; - - snprintf(msg, STR_PROTO_SIZE, "event %d %d\n", tux->id, action); - - /*proto_send(type, client, msg);*/ - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_SIMPLE, CHECK_FRONT_ID_NONE); -} - -#ifndef PUBLIC_SERVER -void proto_recv_event_client(char *msg) -{ - char cmd[STR_PROTO_SIZE]; - int id, action; - tux_t *tux; - int recv_count; - - assert(msg != NULL); - - recv_count = sscanf(msg, "%s %d %d", cmd, &id, &action); - - if (recv_count != 3) { - return; - } - - tux = space_get_object_id(arena_get_current()->spaceTux, id); - - if (tux != NULL) { - tux_action(tux, action); - radar_add(tux->id, tux->x, tux->y, RADAR_TYPE_TUX); - } -} - -void proto_send_event_client(int action) -{ - char msg[STR_PROTO_SIZE]; - - snprintf(msg, STR_PROTO_SIZE, "event %d\n", action); - - client_send(msg); -} -#endif /* PUBLIC_SERVER */ - -void proto_recv_event_server(client_t *client, char *msg) -{ - char cmd[STR_PROTO_SIZE]; - int action; - int recv_count; - - assert(client != NULL); - assert(msg != NULL); - - /*debug_interval();*/ - - recv_count = sscanf(msg, "%s %d", cmd, &action); - - if (recv_count != 2) { - return; - } - - if (client->tux->bonus != BONUS_HIDDEN) { - proto_send_event_server(PROTO_SEND_ALL_SEES_TUX, client, client->tux, action); - } - - refreshLastMove(client->protect); - - tux_action(client->tux, action); -} - -void proto_send_newtux_server(int type, client_t *client, tux_t *tux) -{ - char msg[STR_PROTO_SIZE]; - int x, y; - - assert(tux != NULL); - - if (tux->bonus == BONUS_HIDDEN) { - x = TUX_LOCATE_UNKNOWN; - y = TUX_LOCATE_UNKNOWN; - } else { - tux_get_proportion(tux, &x, &y, NULL, NULL); - } - - snprintf(msg, STR_PROTO_SIZE, "newtux %d %d %d %d %d %d %d %s %d %d %d %d %d %d %d %d %d %d %d\n", - tux->id, x, y, tux->status, tux->position, tux->frame, - tux->score, tux->name, tux->gun, tux->bonus, - tux->shot[GUN_SIMPLE], tux->shot[GUN_DUAL_SIMPLE], - tux->shot[GUN_SCATTER], tux->shot[GUN_TOMMY], - tux->shot[GUN_LASSER], tux->shot[GUN_MINE], - tux->shot[GUN_BOMBBALL], tux->bonus_time, tux->pickup_time); - - /*proto_send(type, client, msg);*/ - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_SIMPLE, - CHECK_FRONT_ID_NONE); -} - -#ifndef PUBLIC_SERVER -void proto_recv_newtux_client(char *msg) -{ - char cmd[STR_PROTO_SIZE]; - char name[STR_NAME_SIZE]; - int id, x, y, status, position, frame, score; - int myGun, myBonus; - int gun1, gun2, gun3, gun4, gun5, gun6, gun7; - int time1, time2; - tux_t *tux; - int recv_count; - - assert(msg != NULL); - - if (arena_get_current() == NULL) { - return; - } - - recv_count = sscanf(msg, "%s %d %d %d %d %d %d %d %s %d %d %d %d %d %d %d %d %d %d %d", - cmd, &id, &x, &y, &status, &position, &frame, &score, name, - &myGun, &myBonus, &gun1, &gun2, &gun3, &gun4, &gun5, &gun6, - &gun7, &time1, &time2); - - if (recv_count != 20) { - return; - } - - tux = space_get_object_id(arena_get_current()->spaceTux, id); - - if (tux != NULL) { - assert(tux->id == id); - } - - if (tux == NULL) { - tux = tux_new(); - tux_replace_id(tux, id); - tux->control = TUX_CONTROL_NET; - space_add(arena_get_current()->spaceTux, tux); - } - - if (tux->control == TUX_CONTROL_KEYBOARD_RIGHT && - x == TUX_LOCATE_UNKNOWN && y == TUX_LOCATE_UNKNOWN) { - tux_get_proportion(tux, &x, &y, NULL, NULL); - } - - radar_add(id, x, y, RADAR_TYPE_TUX); - - if (tux->bonus == BONUS_HIDDEN) { - radar_del(id); - } - - space_move_object(arena_get_current()->spaceTux, tux, x, y); - tux->status = status; - tux->position = position; - tux->frame = frame; - tux->score = score; - strcpy(tux->name, name); - tux->gun = myGun; - tux->bonus = myBonus; - tux->shot[GUN_SIMPLE] = gun1; - tux->shot[GUN_DUAL_SIMPLE] = gun2; - tux->shot[GUN_SCATTER] = gun3; - tux->shot[GUN_TOMMY] = gun4; - tux->shot[GUN_LASSER] = gun5; - tux->shot[GUN_MINE] = gun6; - tux->shot[GUN_BOMBBALL] = gun7; - tux->bonus_time = time1; - tux->pickup_time = time2; -} -#endif /* PUBLIC_SERVER */ - -void proto_send_kill_server(int type, client_t *client, tux_t *tux) -{ - char msg[STR_PROTO_SIZE]; - - assert(tux != NULL); - - snprintf(msg, STR_PROTO_SIZE, "kill %d\n", tux->id); - - /*proto_send(type, client, msg);*/ - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_SIMPLE, CHECK_FRONT_ID_NONE); -} - -#ifndef PUBLIC_SERVER -void proto_recv_kill_client(char *msg) -{ - char cmd[STR_PROTO_SIZE]; - int id; - tux_t *tux; - int recv_count; - - assert(msg != NULL); - - recv_count = sscanf(msg, "%s %d", cmd, &id); - - if (recv_count != 2) { - return; - } - - tux = space_get_object_id(arena_get_current()->spaceTux, id); - - if (tux != NULL) { - tux_event_tux_is_dead(tux); - } -} -#endif /* PUBLIC_SERVER */ - -void proto_send_del_server(int type, client_t *client, int id) -{ - char msg[STR_PROTO_SIZE]; - int check_id; - - check_id = id_get_newcount(0); - - snprintf(msg, STR_PROTO_SIZE, "del %d %d\n", id, check_id); - - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_CHECK, check_id); - /*proto_check(type, client, msg, check_id);*/ -} - -#ifndef PUBLIC_SERVER - -void timer_delShot(void *p) -{ - shot_t *shot; - int *id; - - assert( p != NULL ); - id = (int *) p; - - shot = space_get_object_id(arena_get_current()->spaceShot, *id); - - if (shot != NULL) { - radar_del(shot->id); - space_del_with_item(arena_get_current()->spaceShot, shot, shot_destroy); - } - - free(p); -} - -void proto_recv_del_client(char *msg) -{ - char cmd[STR_PROTO_SIZE]; - int id, check_id; - tux_t *tux; - shot_t *shot; - item_t *item; - int recv_count; - - assert(msg != NULL); - - recv_count = sscanf(msg, "%s %d %d", cmd, &id, &check_id); - - if (recv_count != 3) { - return; - } - - proto_send_check_client(check_id); - - tux = space_get_object_id(arena_get_current()->spaceTux, id); - - if (tux != NULL) { - radar_del(id); - space_del_with_item(arena_get_current()->spaceTux, tux, tux_destroy); - return; - } - - shot = space_get_object_id(arena_get_current()->spaceShot, id); - - if (shot != NULL) { - /* - printf("delete shot..\n"); - radar_del(id); - space_del_with_item(arena_get_current()->spaceShot, shot, shot_destroy); - */ - timer_add_task(arena_get_current()->listTimer, TIMER_ONE, timer_delShot, newInt(id), 50); - return; - } - - item = space_get_object_id(arena_get_current()->spaceItem, id); - - if (item != NULL) { - /*printf("delete item..\n");*/ - radar_del(id); - space_del_with_item(arena_get_current()->spaceItem, item, item_destroy); - return; - } -} -#endif /* PUBLIC_SERVER */ - -void proto_send_additem_server(int type, client_t *client, item_t *p) -{ - char msg[STR_PROTO_SIZE]; - int check_id; - - assert(p != NULL); - - check_id = id_get_newcount(0); - - snprintf(msg, STR_PROTO_SIZE, "additem %d %d %d %d %d %d %d %d\n", - p->id, p->type, p->x, p->y, p->count, p->frame, p->author_id, check_id); - - /* - proto_send(type, client, msg); - proto_check(type, client, msg, check_id); - */ - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_CHECK, check_id); -} - -#ifndef PUBLIC_SERVER -void proto_recv_additem_client(char *msg) -{ - char cmd[STR_PROTO_SIZE]; - int id, type, x, y, count, frame, author_id, check_id; - item_t *item; - int recv_count; - - assert(msg != NULL); - - if (arena_get_current() == NULL) { - return; - } - - recv_count = sscanf(msg, "%s %d %d %d %d %d %d %d %d", - cmd, &id, &type, &x, &y, &count, &frame, &author_id, &check_id); - - if (recv_count != 9) { - return; - } - - proto_send_check_client(check_id); - - if ((item = space_get_object_id(arena_get_current()->spaceItem, id)) != NULL) { - return; - } - - if (type != ITEM_MINE && type != ITEM_EXPLOSION && - type != ITEM_BIG_EXPLOSION) { - radar_add(id, x, y, RADAR_TYPE_ITEM); - } - - item = item_new(x, y, type, author_id); - - item_replace_id(item, id); - item->count = count; - item->frame = frame; - - space_add(arena_get_current()->spaceItem, item); -} -#endif /* PUBLIC_SERVER */ - -void proto_send_shot_server(int type, client_t *client, shot_t *p) -{ - char msg[STR_PROTO_SIZE]; - - assert(p != NULL); - - snprintf(msg, STR_PROTO_SIZE, "shot %d %d %d %d %d %d %d %d %d\n", - p->id, p->x, p->y, p->px, p->py, p->position, p->gun, - p->author_id, p->isCanKillAuthor); - - /* - proto_send(type, client, msg); - proto_check(type, client, msg, check_id); - */ - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_SIMPLE, CHECK_FRONT_ID_NONE); -} - -#ifndef PUBLIC_SERVER -void proto_recv_shot_client(char *msg) -{ - char cmd[STR_PROTO_SIZE]; - int x, y, px, py, position, gun, shot_id, author_id, isCanKillAuthor; - shot_t *shot; - int recv_count; - - assert(msg != NULL); - - recv_count = sscanf(msg, "%s %d %d %d %d %d %d %d %d %d", - cmd, &shot_id, &x, &y, &px, &py, &position, &gun, - &author_id, &isCanKillAuthor); - - if (recv_count != 10) { - return; - } - - if ((shot = space_get_object_id(arena_get_current()->spaceShot, shot_id)) != NULL) { - space_del_with_item(arena_get_current()->spaceShot, shot, shot_destroy); - /*return;*/ - } - - shot = shot_new(x, y, px, py, gun, author_id); - - shot_replace_id(shot, shot_id); - shot->isCanKillAuthor = isCanKillAuthor; - shot->position = position; - - if (shot->gun == GUN_LASSER) { - shot_transform_lasser(shot); - } - - space_add(arena_get_current()->spaceShot, shot); -} - -void proto_send_chat_client(char *s) -{ - char msg[STR_PROTO_SIZE]; - snprintf(msg, STR_PROTO_SIZE, "chat %s\n", s); - client_send(msg); -} -#endif /* PUBLIC_SERVER */ - -void proto_recv_chat_server(client_t *client, char *msg) -{ - char out[STR_PROTO_SIZE]; - int len; - - if (client->tux == NULL) { - return; - } - - len = strlen(msg); - msg[len - 1] = '\0'; - - snprintf(out, STR_PROTO_SIZE, "chat %s:%s\n", client->tux->name, msg + 5); - - proto_send_chat_server(PROTO_SEND_ALL, NULL, out); -} - -void proto_send_chat_server(int type, client_t *client, char *msg) -{ - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_SIMPLE, CHECK_FRONT_ID_NONE); - -#ifndef PUBLIC_SERVER - proto_recv_chat_client(msg); -#endif /* PUBLIC_SERVER */ -} - -#ifndef PUBLIC_SERVER -void proto_recv_chat_client(char *msg) -{ - int len; - - assert(msg != NULL); - - len = strlen(msg); - msg[len - 1] = '\0'; - - chat_add(msg + 5); -} - -void proto_send_module_client(char *msg) -{ - char out[STR_PROTO_SIZE]; - - snprintf(out, STR_PROTO_SIZE, "module %s\n", msg); - -/* - strcpy(out, "modules "); - strcat(out, msg); - strcat(out, "\n"); -*/ - - client_send(out); -} -#endif /* PUBLIC_SERVER */ - -void proto_recv_module_server(client_t *client, char *msg) -{ - module_recv_msg(msg + 7); -} - -void proto_send_module_server(int type, client_t *client, char *msg) -{ - char out[STR_PROTO_SIZE]; - - snprintf(out, STR_PROTO_SIZE, "module %s\n", msg); - -/* - strcpy(out, "modules "); - strcat(out, msg); - strcat(out, "\n"); -*/ - - send_msg_to_client(type, client, out, CHECK_FRONT_TYPE_SIMPLE, CHECK_FRONT_ID_NONE); -} - -#ifndef PUBLIC_SERVER -void proto_recv_module_client(char *msg) -{ - module_recv_msg(msg + 7); -} - -void proto_send_ping_client() -{ - char msg[STR_PROTO_SIZE]; - snprintf(msg, STR_PROTO_SIZE, "ping\n"); - client_send(msg); -} -#endif /* PUBLIC_SERVER */ - -void proto_recv_ping_server(client_t *client, char *msg) -{ -} - -void proto_send_ping_server(int type, client_t *client) -{ - char msg[STR_PROTO_SIZE]; - snprintf(msg, STR_PROTO_SIZE, "ping\n"); - /*proto_send(type, client, msg);*/ - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_SIMPLE, CHECK_FRONT_ID_NONE); -} - -#ifndef PUBLIC_SERVER -void proto_recv_ping_client(char *msg) -{ -} -#endif /* PUBLIC_SERVER */ - -void proto_recv_echo_server(client_t *client, char *msg) -{ - proto_send_echo_server(PROTO_SEND_ONE, client, msg + 4); /* msg + strlen("echo"); */ -} - -void proto_send_echo_server(int type, client_t *client, char *s) -{ - char msg[STR_PROTO_SIZE]; - - snprintf(msg, STR_PROTO_SIZE, "echo%s", s); - /*proto_send(type, client, msg);*/ - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_SIMPLE, CHECK_FRONT_ID_NONE); -} - -void proto_send_end_server(int type, client_t *client) -{ - char msg[STR_PROTO_SIZE]; - - snprintf(msg, STR_PROTO_SIZE, "end\n"); - /*proto_send(type, client, msg);*/ - send_msg_to_client(type, client, msg, CHECK_FRONT_TYPE_SIMPLE, CHECK_FRONT_ID_NONE); -} - -#ifndef PUBLIC_SERVER -void proto_recv_end_client(char *msg) -{ - assert(msg != NULL); - - world_do_end(); -} - -void proto_send_end_client() -{ - char msg[STR_PROTO_SIZE]; - - snprintf(msg, STR_PROTO_SIZE, "end\n"); - client_send(msg); -} -#endif /* PUBLIC_SERVER */ - -void proto_recv_end_server(client_t *client, char *msg) -{ - assert(msg != NULL); - assert(client != NULL); - - client->status = NET_STATUS_ZOMBIE; -} diff --git a/src/base/proto.h b/src/base/proto.h deleted file mode 100644 index a743b8c..0000000 --- a/src/base/proto.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifndef MY_PROTO_H -#define MY_PROTO_H - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "item.h" -#include "shot.h" -#include "arenaFile.h" -#include "myTimer.h" -#include "server.h" -#include "net_multiplayer.h" - -#ifndef PUBLIC_SERVER -#include "world.h" -#include "setting.h" -#include "choiceArena.h" -#include "client.h" -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#endif /* PUBLIC_SERVER */ - -#define PROTO_ERROR_CODE_UNKNOWN 0 -#define PROTO_ERROR_CODE_BAD_VERSION 1 -#define PROTO_ERROR_CODE_BAD_NAME 2 -#define PROTO_ERROR_CODE_BAD_COMMAND 3 -#define PROTO_ERROR_CODE_TIMEOUT 4 -#define PROTO_ERROR_LIMIT_MAX_CLIENT 5 - -extern void proto_send_error_server(int type, client_t *client, int errorcode); -extern void proto_recv_error_client(char *msg); - -extern void proto_send_hello_client(char *name); -extern void proto_recv_hello_server(client_t *client, char *msg); - -extern void proto_send_status_server(int type, client_t *client); -extern void proto_recv_status_server(client_t *client, char *msg); - -extern void proto_send_listscore_server(int type, client_t *client, int max); -extern void proto_recv_listscore_server(client_t *client, char *msg); - -extern void proto_send_check_client(int id); -extern void proto_recv_check_server(client_t *client, char *msg); - -extern void proto_send_init_server(int type, client_t *client, client_t *client2); -extern void proto_recv_init_client(char *msg); - -extern void proto_send_event_server(int type, client_t *client, tux_t *tux, int action); -extern void proto_recv_event_client(char *msg); -extern void proto_send_event_client(int action); -extern void proto_recv_event_server(client_t *client, char *msg); - -extern void proto_send_newtux_server(int type, client_t *client, tux_t *tux); -extern void proto_recv_newtux_client(char *msg); - -extern void proto_send_kill_server(int type, client_t *client, tux_t *tux); -extern void proto_recv_kill_client(char *msg); - -extern void proto_send_score_server(int type, client_t *client, tux_t *tux); -extern void proto_recv_score_client(char *msg); - -extern void proto_send_del_server(int type, client_t *client, int id); -extern void proto_recv_del_client(char *msg); - -extern void proto_send_additem_server(int type, client_t *client, item_t *p); -extern void proto_recv_additem_client(char *msg); - -extern void proto_send_shot_server(int type, client_t *client, shot_t *p); -extern void proto_recv_shot_client(char *msg); - -extern void proto_send_chat_client(char *s); -extern void proto_recv_chat_server(client_t *client, char *msg); -extern void proto_send_chat_server(int type, client_t *client, char *msg); -extern void proto_recv_chat_client(char *msg); - -extern void proto_send_module_client(char *s); -extern void proto_recv_module_server(client_t *client, char *msg); -extern void proto_send_module_server(int type, client_t *client, char *msg); -extern void proto_recv_module_client(char *msg); - -extern void proto_send_ping_client(); -extern void proto_recv_ping_server(client_t *client, char *msg); -extern void proto_send_ping_server(int type, client_t *client); -extern void proto_recv_ping_client(char *msg); - -extern void proto_recv_echo_server(client_t *client, char *msg); -extern void proto_send_echo_server(int type, client_t *client, char *s); - -extern void proto_send_end_server(int type, client_t *client); -extern void proto_recv_end_client(char *msg); -extern void proto_send_end_client(); -extern void proto_recv_end_server(client_t *client, char *msg); - -#endif /* MY_PROTO_H */ diff --git a/src/base/server.c b/src/base/server.c deleted file mode 100644 index 6f26859..0000000 --- a/src/base/server.c +++ /dev/null @@ -1,383 +0,0 @@ -#ifndef __WIN32__ -#include <sys/socket.h> -#include <sys/types.h> -#include <netinet/in.h> -#include <arpa/inet.h> -#include <netdb.h> -#else /* __WIN32__ */ -#include <windows.h> -#include <wininet.h> -#endif /* __WIN32__ */ - -#include <unistd.h> -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <assert.h> -#include <fcntl.h> - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "proto.h" -#include "server.h" -#include "myTimer.h" -#include "arena.h" -#include "net_multiplayer.h" -#include "checkFront.h" -#include "protect.h" -#include "index.h" -#include "serverSelect.h" -#include "serverSendMsg.h" -#include "downServer.h" - -#ifndef PUBLIC_SERVER -#include "world.h" -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#include "highScore.h" -#endif /* PUBLIC_SERVER */ - -#include "udp_server.h" - -static list_t *listClient; - -static list_t *listServerTimer; -static time_t timeUpdate; -static int maxClients; - -typedef struct proto_cmd_server_struct { - char *name; - int len; - int tux; - void (*fce_proto) (client_t *, char *msg); -} proto_cmd_server_t; - -static proto_cmd_server_t proto_cmd_list[] = { - {.name = "hello",.len = 5,.tux = 0,.fce_proto = proto_recv_hello_server}, - {.name = "status",.len = 6,.tux = 0,.fce_proto = proto_recv_status_server}, -#ifdef PUBLIC_SERVER - {.name = "list",.len = 4,.tux = 0,.fce_proto = proto_recv_listscore_server}, -#endif /* PUBLIC_SERVER */ - {.name = "event",.len = 5,.tux = 1,.fce_proto = proto_recv_event_server}, - {.name = "check",.len = 5,.tux = 1,.fce_proto = proto_recv_check_server}, - {.name = "module",.len = 6,.tux = 1,.fce_proto = proto_recv_module_server}, - {.name = "chat",.len = 4,.tux = 1,.fce_proto = proto_recv_chat_server}, - {.name = "ping",.len = 4,.tux = 1,.fce_proto = proto_recv_ping_server}, - {.name = "echo",.len = 4,.tux = 0,.fce_proto = proto_recv_echo_server}, - {.name = "end",.len = 3,.tux = 1,.fce_proto = proto_recv_end_server}, - {.name = "",.len = 0,.tux = 0,.fce_proto = NULL}, -}; - -static proto_cmd_server_t *findCmdProto(client_t *client, char *msg) -{ - int len; - int i; - - len = strlen(msg); - - for (i = 0; proto_cmd_list[i].len != 0; i++) { - proto_cmd_server_t *thisCmd; - - thisCmd = &proto_cmd_list[i]; - - if (len >= thisCmd->len && strncmp(msg, thisCmd->name, thisCmd->len) == 0) { - if ((thisCmd->tux == 1 && client->tux == NULL) || - (thisCmd->tux == 0 && client->tux != NULL)) { - return NULL; - } - - return thisCmd; - } - } - - return NULL; -} - -static void startUpdateServer() -{ - timeUpdate = time(NULL); -} - -time_t server_get_update() -{ - return time(NULL) - timeUpdate; -} - -client_t *server_new_any_client() -{ - client_t *new; - - new = malloc(sizeof(client_t)); - memset(new, 0, sizeof(client_t)); - - new->status = NET_STATUS_OK; - new->listRecvMsg = list_new(); - new->listSendMsg = check_front_new(); - new->listSeesShot = list_new(); - new->protect = newProtect(); - - return new; -} - -void server_destroy_any_client(client_t *p) -{ - assert(p != NULL); - - /*check_front_event(p);*/ - list_destroy_item(p->listRecvMsg, free); - list_destroy_item(p->listSeesShot, free); - check_front_destroy(p->listSendMsg); - - destroyProtect(p->protect); - - if (p->tux != NULL) { -#ifdef PUBLIC_SERVER - table_add(p->tux->name, p->tux->score); -#endif /* PUBLIC_SERVER */ - space_del_with_item(arena_get_current()->spaceTux, p->tux, tux_destroy); - } - - free(p); -} - -static void eventDelClientFromListClient(client_t *client) -{ - int offset; - - offset = list_search(listClient, client); - - assert(offset != -1); - - list_del_item(listClient, offset, server_udp_destroy_client); -} - -static void delZombieCLient(void *p_nothing) -{ - client_t *thisClient; - my_time_t currentTime; - int i; - - currentTime = timer_get_current_time(); - - for (i = 0; i < listClient->count; i++) { - thisClient = (client_t *) listClient->list[i]; - - if (isDown(thisClient->protect) == TRUE) { - proto_send_end_server(PROTO_SEND_ONE, thisClient); - check_front_event(thisClient); - thisClient->status = NET_STATUS_ZOMBIE; - } - - if (thisClient->status == NET_STATUS_ZOMBIE) { - if (thisClient->tux != NULL) { - proto_send_del_server(PROTO_SEND_ALL, NULL, thisClient->tux->id); - } - - eventDelClientFromListClient(thisClient); - i--; - } - } -} - -static void eventPeriodicSyncClient(void *p_nothing) -{ - client_t *thisClientSend; - tux_t *thisTux; - int i; - -#ifndef PUBLIC_SERVER - proto_send_newtux_server(PROTO_SEND_ALL_SEES_TUX, NULL, world_get_control_tux(TUX_CONTROL_KEYBOARD_RIGHT)); -#endif /* PUBLIC_SERVER */ - - for (i = 0; i < listClient->count; i++) { - thisClientSend = (client_t *) listClient->list[i]; - thisTux = thisClientSend->tux; - - if (thisTux == NULL) { - continue; - } - - proto_send_newtux_server(PROTO_SEND_ALL_SEES_TUX, thisClientSend, thisTux); - /*proto_send_newtux_server(PROTO_SEND_BUT, thisClientSend, thisTux);*/ - } -} - -static void eventSendPingClients(void *p_nothing) -{ - proto_send_ping_server(PROTO_SEND_ALL, NULL); -} - -void server_set_time() -{ - if (listServerTimer != NULL) { - timer_destroy(listServerTimer); - } - - timer_restart(); - listServerTimer = timer_new(); - - timer_add_task(listServerTimer, TIMER_PERIODIC, delZombieCLient, NULL, SERVER_TIMEOUT); - timer_add_task(listServerTimer, TIMER_PERIODIC, eventPeriodicSyncClient, NULL, SERVER_TIME_SYNC); - timer_add_task(listServerTimer, TIMER_PERIODIC, eventSendPingClients, NULL, SERVER_TIME_PING); -} - -int server_init(char *ip4, char *ip6, int port) -{ - int ret; - - startUpdateServer(); - listServerTimer = NULL; - - listClient = list_new(); - - server_set_max_clients(SERVER_MAX_CLIENTS); - server_set_time(); - - ret = server_udp_init(ip4, ip6, port); - - if (ret == 0) { - return -1; - } - - /* initialize the arena download server */ - if (ip4 != NULL) { - down_server_init(ip4, port); - } else if (ip6 != NULL) { - down_server_init(ip6, port); - } - - return ret; -} - -list_t *server_get_list_clients() -{ - return listClient; -} - -int server_get_max_clients() -{ - return maxClients; -} - -void server_set_max_clients(int n) -{ - maxClients = n; -} - -void server_send_client(client_t *p, char *msg) -{ - assert(p != NULL); - assert(msg != NULL); - - if (p->status != NET_STATUS_ZOMBIE) { - int ret = -1; - -#ifndef PUBLIC_SERVER - if (isParamFlag("--send")) { - debug("Sending: %s", msg); - } -#endif /* PUBLIC_SERVER */ - - ret = sock_udp_write(p->socket_udp, p->socket_udp, msg, strlen(msg)); - - if (ret <= 0) { - p->status = NET_STATUS_ZOMBIE; - } - } -} - -static void client_eventWorkRecvList(client_t *client) -{ - proto_cmd_server_t *protoCmd; - char *line; - int i; - - assert(client != NULL); - - /* processing of events from clients */ - for (i = 0; i < client->listRecvMsg->count; i++) { - line = (char *) client->listRecvMsg->list[i]; - protoCmd = findCmdProto(client, line); - -#ifndef PUBLIC_SERVER - if (isParamFlag("--recv")) { - debug("Received: %s", line); - } -#endif /* PUBLIC_SERVER */ - - if (protoCmd != NULL) { - protoCmd->fce_proto(client, line); - rereshLastPing(client->protect); - } else { - proto_send_error_server(PROTO_SEND_ONE, client, PROTO_ERROR_CODE_BAD_COMMAND); - } - } - - list_destroy_item(client->listRecvMsg, free); - client->listRecvMsg = list_new(); -} - -static void porcesListClients() -{ - int i; - client_t *thisClient; - - for (i = 0; i < listClient->count; i++) { - thisClient = (client_t *) listClient->list[i]; - - client_eventWorkRecvList(thisClient); - check_front_event(thisClient); - } -} - -void server_event() -{ -#ifndef PUBLIC_SERVER - int count; - - do { - select_restart(); - - server_udp_set_select(); - down_server_set_select(); - - select_action(); - - count = server_udp_select_sock(); - down_server_select_socket(); - } while (count > 0); -#else /* PUBLIC_SERVER */ - int ret; - - select_restart(); - - server_udp_set_select(); - down_server_set_select(); - - ret = select_action(); - - if (ret > 0) { - server_udp_select_sock(); - down_server_select_socket(); - } -#endif /* PUBLIC_SERVER */ - - porcesListClients(); - timer_event(listServerTimer); -} - -void server_quit() -{ - proto_send_end_server(PROTO_SEND_ALL, NULL); - - assert(listClient != NULL); - - list_destroy_item(listClient, server_udp_destroy_client); - - timer_destroy(listServerTimer); - - server_udp_quit(); - - down_server_quit(); -} diff --git a/src/base/server.h b/src/base/server.h deleted file mode 100644 index 72d7585..0000000 --- a/src/base/server.h +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef MY_SERVER_H -#define MY_SERVER_H - -#include <time.h> - -#include "list.h" -#include "tux.h" -#include "myTimer.h" -#include "protect.h" -#include "buffer.h" - -#ifndef PUBLIC_SERVER -#include "interface.h" -#endif /* PUBLIC_SERVER */ - -#include "udp.h" - -#define SERVER_TIMEOUT 1000 -#define SERVER_TIME_SYNC 1000 -#define SERVER_TIME_PING 1000 -#define SERVER_MAX_CLIENTS 100 - -#define SERVER_INDEX_ROOT_TUX 0 - -#define CLIENT_TYPE_UDP 1 -#define CLIENT_TYPE_TCP 2 - -typedef struct client_struct { - int type; - - sock_udp_t *socket_udp; - - buffer_t *recvBuffer; - buffer_t *sendBuffer; - - int status; - - tux_t *tux; - - protect_t *protect; - - list_t *listSendMsg; - list_t *listRecvMsg; - - list_t *listSeesShot; -} client_t; - -extern int server_init(char *ip4, char *ip6, int port); -extern time_t server_get_update(); -extern client_t *server_new_any_client(); -extern void server_destroy_any_client(client_t *p); -extern list_t *server_get_list_clients(); -extern int server_get_max_clients(); -extern void server_set_time(); -extern void server_set_max_clients(int n); -extern void server_send_client(client_t *p, char *msg); -extern void server_event(); -extern void server_quit(); - -#endif /* MY_SERVER_H */ diff --git a/src/base/serverSelect.c b/src/base/serverSelect.c deleted file mode 100644 index 6f8d64e..0000000 --- a/src/base/serverSelect.c +++ /dev/null @@ -1,105 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <sys/types.h> - -#include <unistd.h> -#include <fcntl.h> -#include <sys/time.h> - -#ifndef __WIN32__ -#include <sys/ioctl.h> -#include <sys/socket.h> -#include <sys/select.h> -#else /* __WIN32__ */ -#include <io.h> -#include <winsock2.h> -#endif /* __WIN32__ */ - -#include "server.h" - -static struct timeval tv; -static fd_set readfds; -static fd_set writefds; -static int max_fd; - -void select_restart() -{ -#ifndef PUBLIC_SERVER - tv.tv_sec = 0; - tv.tv_usec = 0; -#else /* PUBLIC_SERVER */ - tv.tv_sec = 0; - tv.tv_usec = 1000; -#endif /* PUBLIC_SERVER */ - - FD_ZERO(&readfds); - FD_ZERO(&writefds); - max_fd = 0; -} - -void select_add_sock_for_read(int sock) -{ - /*printf("select_add_sock_for_read %d\n", sock);*/ - - FD_SET(sock, &readfds); - - if (sock > max_fd) { - max_fd = sock; - } -} - -void select_add_sock_for_write(int sock) -{ - /*printf("select_add_sock_for_write %d\n", sock);*/ - - FD_SET(sock, &writefds); - - if (sock > max_fd) { - max_fd = sock; - } -} - -int select_action() -{ - int ret; - -#ifndef PUBLIC_SERVER - ret = select(max_fd + 1, &readfds, &writefds, (fd_set *) NULL, &tv); -#else /* PUBLIC_SERVER */ - list_t *listClient; - listClient = server_get_list_clients(); - - if (listClient->count == 0) { - ret = select(max_fd + 1, &readfds, &writefds, (fd_set *) NULL, NULL); - server_set_time(); - } else { - ret = select(max_fd + 1, &readfds, &writefds, (fd_set *) NULL, &tv); - } -#endif /* PUBLIC_SERVER */ - - return ret; -} - -int select_is_change_sock_for_read(int sock) -{ - int ret; - - ret = FD_ISSET(sock, &readfds); - - /*printf("select_is_change_sock %d -> %d\n", sock, ret);*/ - - return ret; -} - -int select_is_change_sock_for_write(int sock) -{ - int ret; - - ret = FD_ISSET(sock, &writefds); - - /*printf("select_is_change_sock %d -> %d\n", sock, ret);*/ - - return ret; -} diff --git a/src/base/serverSelect.h b/src/base/serverSelect.h deleted file mode 100644 index e1880cb..0000000 --- a/src/base/serverSelect.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef SERVER_SELECT_H -#define SERVER_SELECT_H - -extern void select_restart(); -extern void select_add_sock_for_read(int sock); -extern void select_add_sock_for_write(int sock); -extern int select_action(); -extern int select_is_change_sock(int sock); -extern int select_is_change_sock_for_read(int sock); -extern int select_is_change_sock_for_write(int sock); - -#endif /* SERVER_SELECT_H */ diff --git a/src/base/serverSendMsg.c b/src/base/serverSendMsg.c deleted file mode 100644 index d74103e..0000000 --- a/src/base/serverSendMsg.c +++ /dev/null @@ -1,145 +0,0 @@ -#include <unistd.h> -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <assert.h> - -#include "server.h" -#include "net_multiplayer.h" -#include "checkFront.h" -#include "serverSendMsg.h" - -#ifndef PUBLIC_SERVER -#include "world.h" -#endif /* PUBLIC_SERVER */ - -static void addMsgClient(client_t *p, char *msg, int type, int id) -{ - assert(p != NULL); - assert(msg != NULL); - - if (p->status != NET_STATUS_ZOMBIE) { - check_front_msg_add(p->listSendMsg, msg, type, id); - } -} - -static void addMsgAllClientBut(char *msg, client_t *p, int type, int id) -{ - list_t *listClient; - client_t *thisClient; - int i; - - assert(msg != NULL); - - listClient = server_get_list_clients(); - - for (i = 0; i < listClient->count; i++) { - thisClient = (client_t *) listClient->list[i]; - - if (thisClient->tux != NULL && thisClient != p) { - addMsgClient(thisClient, msg, type, id); - } - } -} - -static void addMsgAllClient(char *msg, int type, int id) -{ - assert(msg != NULL); - - addMsgAllClientBut(msg, NULL, type, id); -} - -static void addMsgAllClientSeesTux(char *msg, tux_t *tux, int type, int id) -{ - list_t *listHelp; - arena_t *arena; - space_t *space; - int x, y, w, h; - int i; - - assert(msg != NULL); - - arena = arena_get_current(); - space = arena->spaceTux; - - x = tux->x - WINDOW_SIZE_X; - y = tux->y - WINDOW_SIZE_Y; - - w = 2 * WINDOW_SIZE_X; - h = 2 * WINDOW_SIZE_Y; - - if (x < 0) { - x = 0; - } - - if (y < 0) { - y = 0; - } - - if (w + x >= arena->w) { - w = arena->w - (x + 1); - } - - if (h + y >= arena->h) { - h = arena->h - (y + 1); - } - - listHelp = list_new(); - - space_get_object(space, x, y, w, h, listHelp); - /*printf("%d %d %d %d %d\n", x, y, w, h, listHelp->count);*/ - - for (i = 0; i < listHelp->count; i++) { - tux_t *thisTux; - client_t *thisClient; - - thisTux = (tux_t *) listHelp->list[i]; - - if (thisTux == tux) { - continue; - } - - thisClient = thisTux->client; - - if (thisClient != NULL) { - addMsgClient(thisClient, msg, type, id); - } - } - - list_destroy(listHelp); -} - -void send_msg_to_client(int type, client_t *client, char *msg, int type2, int id) -{ - assert(msg != NULL); - - switch (type) { - case PROTO_SEND_ONE: - assert(client != NULL); - addMsgClient(client, msg, type2, id); - break; - case PROTO_SEND_ALL: - assert(client == NULL); - addMsgAllClient(msg, type2, id); - break; - case PROTO_SEND_BUT: - assert(client != NULL); - addMsgAllClientBut(msg, client, type2, id); - break; - case PROTO_SEND_ALL_SEES_TUX: -#ifndef PUBLIC_SERVER - if (client != NULL) { - addMsgAllClientSeesTux(msg, client->tux, type2, id); - } else { - addMsgAllClientSeesTux(msg, world_get_control_tux(TUX_CONTROL_KEYBOARD_RIGHT), type2, id); - } -#else /* PUBLIC_SERVER*/ - addMsgAllClientSeesTux(msg, client->tux, type2, id); -#endif /* PUBLIC_SERVER */ - break; - default: - error("Unknown type of target group of players [%d]", type); - assert(0); - break; - } -} diff --git a/src/base/serverSendMsg.h b/src/base/serverSendMsg.h deleted file mode 100644 index 68bd65c..0000000 --- a/src/base/serverSendMsg.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef SERVER_SEND_MSG_H -#define SERVER_SEND_MSG_H - -#include "server.h" - -#define PROTO_SEND_ONE 0 -#define PROTO_SEND_ALL 1 -#define PROTO_SEND_BUT 3 -#define PROTO_SEND_ALL_SEES_TUX 4 - -extern void send_msg_to_client(int type, client_t *client, char *msg, int type2, int id); - -#endif /* SERVER_SEND_MSG_H */ diff --git a/src/base/shareFunction.c b/src/base/shareFunction.c deleted file mode 100644 index a9cd69d..0000000 --- a/src/base/shareFunction.c +++ /dev/null @@ -1,65 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "shareFunction.h" - -typedef struct share_fce_item_struct { - char *name; - void *function; -} share_fce_item_t; - -static list_t *listShareFce; - -static share_fce_item_t *newShareFceItem(char *name, void *function) -{ - share_fce_item_t *new; - - new = malloc(sizeof(share_fce_item_t)); - new->name = strdup(name); - new->function = function; - return new; -} - -static void destroyShareFce(share_fce_item_t *p) -{ - free(p->name); - free(p); -} - -void share_function_init() -{ - listShareFce = list_new(); -} - -void share_function_add(char *name, void *function) -{ - debug("Adding new shared function [%s]", name); - - list_add(listShareFce, newShareFceItem(name, function)); -} - -void *share_function_get(char *name) -{ - int i; - - for (i = 0; i < listShareFce->count; i++) { - share_fce_item_t *this; - - this = (share_fce_item_t *) listShareFce->list[i]; - - if (strcmp(this->name, name) == 0) { - return this->function; - } - } - - return NULL; -} - -void share_function_quit() -{ - list_destroy_item(listShareFce, destroyShareFce); -} diff --git a/src/base/shareFunction.h b/src/base/shareFunction.h deleted file mode 100644 index a444842..0000000 --- a/src/base/shareFunction.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef SHARE_FUNCTION_H -#define SHARE_FUNCTION_H - -extern void share_function_init(); -extern void share_function_add(char *name, void *function); -extern void *share_function_get(char *name); -extern void share_function_quit(); - -#endif /* SHARE_FUNCTION_H */ diff --git a/src/base/shot.c b/src/base/shot.c deleted file mode 100644 index 0d30750..0000000 --- a/src/base/shot.c +++ /dev/null @@ -1,347 +0,0 @@ -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "shot.h" -#include "gun.h" -#include "net_multiplayer.h" -#include "proto.h" -#include "idManager.h" -#include "serverSendMsg.h" - -#ifndef PUBLIC_SERVER -#include "image.h" -#include "layer.h" -#include "world.h" -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#endif /* PUBLIC_SERVER */ - -#ifndef PUBLIC_SERVER -static image_t *g_shot_simple; -static image_t *g_shot_lasserX; -static image_t *g_shot_lasserY; -static image_t *g_shot_bombball; -#endif /* PUBLIC_SERVER */ - -static bool_t isShotInit = FALSE; - -bool_t shot_is_inicialized() -{ - return isShotInit; -} - -void shot_init() -{ -#ifndef PUBLIC_SERVER - assert(image_is_inicialized() == TRUE); - - g_shot_simple = image_add("shot.png", IMAGE_ALPHA, "shot", IMAGE_GROUP_BASE); - g_shot_lasserX = image_add("lasserX.png", IMAGE_NO_ALPHA, "lasserX", IMAGE_GROUP_BASE); - g_shot_lasserY = image_add("lasserY.png", IMAGE_NO_ALPHA, "lasserY",IMAGE_GROUP_BASE); - g_shot_bombball = image_add("bombball.png", IMAGE_ALPHA, "bombball", IMAGE_GROUP_BASE); -#endif /* PUBLIC_SERVER */ - - isShotInit = TRUE; -} - -shot_t *shot_new(int x, int y, int px, int py, int gun, int author_id) -{ - shot_t *new; - tux_t *author; - - new = malloc(sizeof(shot_t)); - memset(new, 0, sizeof(shot_t)); - - new->id = id_get_new(); - new->x = x; - new->y = y; - new->px = px; - new->py = py; - new->gun = gun; - new->author_id = author_id; - - new->position = POSITION_UNKNOWN; - - author = space_get_object_id(arena_get_current()->spaceTux, author_id); - - if (author != NULL) { - new->position = author->position; - } - - new->isCanKillAuthor = FALSE; - new->del = FALSE; - - switch (gun) { - case GUN_SIMPLE: - new->w = GUN_SHOT_WIDTH; - new->h = GUN_SHOT_HEIGHT; -#ifndef PUBLIC_SERVER - new->img = g_shot_simple; -#endif /* PUBLIC_SERVER */ - break; - - case GUN_LASSER: - switch (author->position) { - case TUX_RIGHT: - case TUX_LEFT: - new->w = GUN_LASSER_HORIZONTAL; - new->h = GUN_SHOT_VERTICAL; -#ifndef PUBLIC_SERVER - new->img = g_shot_lasserX; -#endif /* PUBLIC_SERVER */ - break; - case TUX_UP: - case TUX_DOWN: - new->w = GUN_SHOT_VERTICAL; - new->h = GUN_LASSER_HORIZONTAL; -#ifndef PUBLIC_SERVER - new->img = g_shot_lasserY; -#endif /* PUBLIC_SERVER */ - break; - } - break; - - case GUN_BOMBBALL: - new->w = GUN_BOMBBALL_WIDTH; - new->h = GUN_BOMBBALL_HEIGHT; - -#ifndef PUBLIC_SERVER - new->img = g_shot_bombball; -#endif /* PUBLIC_SERVER */ - break; - - default: - error("Unknown type of gun [%d]", gun); - assert(0); - break; - } - - return new; -} - -void shot_replace_id(shot_t *shot, int id) -{ - id_replace(shot->id, id); - shot->id = id; -} - - -void shot_get_status(void *p, int *id, int *x, int *y, int *w, int *h) -{ - shot_t *shot; - - shot = p; - *id = shot->id; - *x = shot->x; - *y = shot->y; - *w = shot->w; - *h = shot->h; -} - -void shot_set_status(void *p, int x, int y, int w, int h) -{ - shot_t *shot; - - shot = p; - shot->x = x; - shot->y = y; - shot->w = w; - shot->h = h; -} - -#ifndef PUBLIC_SERVER -void shot_draw(shot_t *p) -{ - assert(p != NULL); - addLayer(p->img, p->x, p->y, 0, 0, p->img->w, p->img->h, TUX_LAYER); -} - -void shot_draw_list(list_t *listShot) -{ - shot_t *thisShot; - int i; - - assert(listShot != NULL); - - for (i = 0; i < listShot->count; i++) { - thisShot = (shot_t *) listShot->list[i]; - assert(thisShot != NULL); - shot_draw(thisShot); - } -} -#endif /* PUBLIC_SERVER */ - -static int getRandomCourse(int x, int y) -{ - int ret = -1; - - do { - switch (random() % 3) { - case 0: - ret = y; - break; - case 1: - ret = -y; - break; - case 2: - ret = 0; - break; - } - } while (ret == x); - - return ret; -} - -void shot_bound_bombBall(shot_t *shot) -{ - if (shot->gun != GUN_BOMBBALL) { - return; - } - - shot->px = getRandomCourse(shot->px, +10); - shot->py = getRandomCourse(shot->py, +10); - shot->isCanKillAuthor = 1; - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_shot_server(PROTO_SEND_ALL, NULL, shot); - } -} - -void shot_transform_lasser(shot_t *shot) -{ - space_t *space; - int mustRefesh = 0; - - space = arena_get_current()->spaceShot; - - if (space_get_object_id(space, shot->id) != NULL) { - mustRefesh = 1; - } - - if (mustRefesh) { - space_del(space, shot); - } - - switch (shot->position) { - case TUX_RIGHT: - case TUX_LEFT: - shot->w = GUN_LASSER_HORIZONTAL; - shot->h = GUN_SHOT_VERTICAL; -#ifndef PUBLIC_SERVER - shot->img = g_shot_lasserX; -#endif /* PUBLIC_SERVER */ - break; - - case TUX_UP: - case TUX_DOWN: - shot->w = GUN_SHOT_VERTICAL; - shot->h = GUN_LASSER_HORIZONTAL; -#ifndef PUBLIC_SERVER - shot->img = g_shot_lasserY; -#endif /* PUBLIC_SERVER */ - break; - } - - if (mustRefesh) { - space_add(space, shot); - } -} - -static void action_moveShot(space_t *space, shot_t *shot, void *p) -{ - int new_x, new_y; - arena_t *arena; - - arena = arena_get_current(); - - new_x = shot->x + shot->px; - new_y = shot->y + shot->py; - - space_move_object(space, shot, new_x, new_y); - - if (shot->x + shot->w < 0 || shot->x > arena->w || - shot->y + shot->h < 0 || shot->y > arena->h) { - space_del_with_item(space, shot, shot_destroy); - } -} - -void shot_event_move_list(arena_t *arena) -{ - space_action(arena->spaceShot, action_moveShot, NULL); -} - -static int isValueInList(list_t *list, int x) -{ - int i; - - for (i = 0; i < list->count; i++) { - if (x == (*(int *) list->list[i])) { - return 1; - } - } - - return 0; -} - -static void action_check(space_t *space, shot_t *shot, client_t *client) -{ - if (isValueInList(client->listSeesShot, shot->id) == 0) { - list_add(client->listSeesShot, newInt(shot->id)); - proto_send_shot_server(PROTO_SEND_ONE, client, shot); - } -} - -void shot_check_is_tux_screen(arena_t *arena) -{ - int screen_x, screen_y; - tux_t *thisTux; - client_t *thisClient; - list_t *listClient; - int i; - - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_SERVER) { - return; - } - - listClient = server_get_list_clients(); - - for (i = 0; i < listClient->count; i++) { - thisClient = (client_t *) listClient->list[i]; - thisTux = (tux_t *) thisClient->tux; - int del = 0; - - if (thisTux == NULL || thisTux->control != TUX_CONTROL_NET) { - continue; - } - - arena_get_center_screen(&screen_x, &screen_y, thisTux->x, thisTux->y, - WINDOW_SIZE_X, WINDOW_SIZE_Y); - - space_action_from_location(arena->spaceShot, action_check, - thisClient, screen_x, screen_y, - WINDOW_SIZE_X, WINDOW_SIZE_Y); - - while (thisClient->listSeesShot->count > 100) { - list_del_item(thisClient->listSeesShot, 0, free); - del++; - } - - /*if( del > 0 )printf("del = %d\n", del);*/ - } -} - -void shot_destroy(shot_t *p) -{ - assert(p != NULL); - - id_del(p->id); - - free(p); -} - -void shot_quit() -{ - isShotInit = FALSE; -} diff --git a/src/base/shot.h b/src/base/shot.h deleted file mode 100644 index 97b7a91..0000000 --- a/src/base/shot.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef SHOT_H -#define SHOT_H - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "arena.h" -#ifndef PUBLIC_SERVER -#include "image.h" -#endif /* PUBLIC_SERVER */ - -#ifdef __WIN32__ -#define random rand -#endif /* __WIN32__ */ - -typedef struct shot_struct { - int id; - int x; - int y; - int w; - int h; - int px; - int py; - int position; - int gun; - int author_id; - bool_t isCanKillAuthor; - bool_t del; -#ifndef PUBLIC_SERVER - image_t *img; -#endif /* PUBLIC_SERVER */ -} shot_t; - -extern bool_t shot_is_inicialized(); -extern void shot_init(); -extern shot_t *shot_new(int x, int y, int px, int py, int gun, int author_id); -extern shot_t *shot_get_id(list_t *listShot, int id); -extern void shot_replace_id(shot_t *shot, int id); -extern void shot_get_status(void *p, int *id, int *x, int *y, int *w, int *h); -extern void shot_set_status(void *p, int x, int y, int w, int h); -#ifndef PUBLIC_SERVER -extern void shot_draw(shot_t *p); -extern void shot_draw_list(list_t *listShot); -#endif /* PUBLIC_SERVER */ -extern int shot_is_conflict_with_list_shot(list_t *listShot, int x, int y, int w, int h); -extern void shot_event_move_list(arena_t *arena); -extern void shot_check_is_tux_screen(arena_t *arena); -extern void shot_bound_bombBall(shot_t *shot); -extern void shot_transform_lasser(shot_t *shot); -extern void shot_destroy(shot_t *p); -extern void shot_quit(); - -#endif /* SHOT_H */ diff --git a/src/base/space.c b/src/base/space.c deleted file mode 100644 index 6ef2892..0000000 --- a/src/base/space.c +++ /dev/null @@ -1,375 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "space.h" -#include "index.h" - -zone_t *newZone() -{ - zone_t *new; - - new = malloc(sizeof(zone_t)); - new->list = list_new(); - - return new; -} - -void destroyZone(zone_t *p) -{ - assert(p != NULL); - - list_destroy(p->list); - free(p); -} - -static int my_arena_conflict_space(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2) -{ - return (x1 < x2 + w2 && x2 < x1 + w1 && y1 < y2 + h2 && y2 < y1 + h1); -} - -space_t *space_new(int w, int h, int segW, int segH, - void (*getStatus) (void *p, int *id, int *x, int *y, int *w, int *h), - void (*setStatus) (void *p, int x, int y, int w, int h)) -{ - space_t *new; - int i, j; - - assert(w > 0 && h > 0 && segW > 0 && segH > 0); - - new = malloc(sizeof(space_t)); - - if (!new) { - return 0; - } - - memset(new, 0, sizeof(space_t)); - - new->w = w / segW + 1; - new->h = h / segH + 1; - new->segW = segW; - new->segH = segH; - new->getStatus = getStatus; - new->setStatus = setStatus; - new->listIndex = index_new(); - - new->zone = malloc(new->w * sizeof(list_t **)); - - for (i = 0; i < new->w; i++) { - new->zone[i] = malloc(new->h * sizeof(list_t *)); - } - - for (i = 0; i < new->h; i++) { - for (j = 0; j < new->w; j++) { - new->zone[j][i] = newZone(); - } - } - - return new; -} - -static void getSegment(space_t *p, int x, int y, int w, int h, - int *segX, int *segY, int *segW, int *segH) -{ - *segX = x / p->segW; - *segY = y / p->segH; - *segW = ((x + w) / p->segW + 1) - *segX; - *segH = ((y + h) / p->segH + 1) - *segY; -} - -int space_get_count(space_t *p) -{ - return p->listIndex->count; -} - -void *space_get_item(space_t *p, int offset) -{ - index_item_t *this; - - this = (index_item_t *) p->listIndex->list[offset]; - return this->data; -} - -void space_add(space_t *p, void *item) -{ - int segX, segY, segW, segH; - int id, x, y, w, h; - int i, j; - - if (!p || !item) { - return; - } - - if (!p->zone) { - return; - } - - p->getStatus(item, &id, &x, &y, &w, &h); - getSegment(p, x, y, w, h, &segX, &segY, &segW, &segH); - - for (i = segY; i < segY + segH; i++) { - for (j = segX; j < segX + segW; j++) { - if (j < 0 || j >= p->w || i < 0 || i >= p->h) { - continue; - } - - list_add(p->zone[j][i]->list, item); - } - } - - index_add(p->listIndex, id, item); -} - -void space_get_object(space_t *p, int x, int y, int w, int h, list_t *list) -{ - int segX, segY, segW, segH; - int id, this_x, this_y, this_w, this_h; - int i, j, k; - - getSegment(p, x, y, w, h, &segX, &segY, &segW, &segH); - - for (i = segY; i < segY + segH; i++) { - for (j = segX; j < segX + segW; j++) { - void *this; - - if (j < 0 || j >= p->w || i < 0 || i >= p->h) { - continue; - } - - for (k = 0; k < p->zone[j][i]->list->count; k++) { - this = p->zone[j][i]->list->list[k]; - p->getStatus(this, &id, &this_x, &this_y, &this_w, &this_h); - - if (my_arena_conflict_space(x, y, w, h, this_x, this_y, this_w, this_h) && - list_search(list, this) == -1) { - list_add(list, this); - } - } - } - } -} - -void *space_get_object_id(space_t *space, int id) -{ - return index_get(space->listIndex, id); -} - -int space_is_conflict_with_object(space_t *p, int x, int y, int w, int h) -{ - int segX, segY, segW, segH; - int id, this_x, this_y, this_w, this_h; - int i, j, k; - - getSegment(p, x, y, w, h, &segX, &segY, &segW, &segH); - - for (i = segY; i < segY + segH; i++) { - for (j = segX; j < segX + segW; j++) { - void *this; - - if (j < 0 || j >= p->w || i < 0 || i >= p->h) { - continue; - } - - for (k = 0; k < p->zone[j][i]->list->count; k++) { - this = p->zone[j][i]->list->list[k]; - p->getStatus(this, &id, &this_x, &this_y, &this_w, &this_h); - - if (my_arena_conflict_space(x, y, w, h, this_x, this_y, this_w, this_h)) { - return 1; - } - } - } - } - - return 0; -} - -int space_is_conflict_with_object_but(space_t *p, int x, int y, int w, int h, void *but) -{ - int segX, segY, segW, segH; - int id, this_x, this_y, this_w, this_h; - int i, j, k; - - getSegment(p, x, y, w, h, &segX, &segY, &segW, &segH); - - for (i = segY; i < segY + segH; i++) { - for (j = segX; j < segX + segW; j++) { - void *this; - - if (j < 0 || j >= p->w || i < 0 || i >= p->h) { - continue; - } - - for (k = 0; k < p->zone[j][i]->list->count; k++) { - this = p->zone[j][i]->list->list[k]; - - if (this == but) { - continue; - } - - p->getStatus(this, &id, &this_x, &this_y, &this_w, &this_h); - - if (my_arena_conflict_space(x, y, w, h, this_x, this_y, this_w, this_h)) { - return 1; - } - } - } - } - - return 0; -} - -void space_del(space_t *p, void *item) -{ - int segX, segY, segW, segH; - int id, x, y, w, h; - int myIndex; - int i, j; - - p->getStatus(item, &id, &x, &y, &w, &h); - getSegment(p, x, y, w, h, &segX, &segY, &segW, &segH); - - for (i = segY; i < segY + segH; i++) { - for (j = segX; j < segX + segW; j++) { - if (j < 0 || j >= p->w || i < 0 || i >= p->h) { - continue; - } - - myIndex = list_search(p->zone[j][i]->list, item); - assert(myIndex != -1); - list_del(p->zone[j][i]->list, myIndex); - } - } - - index_del(p->listIndex, id); -} - -void space_del_with_item(space_t *p, void *item, void *f) -{ - void (*fce) (void *param); - - fce = f; - - space_del(p, item); - fce(item); -} - -void space_move_object(space_t *p, void *item, int move_x, int move_y) -{ - int old_segX, old_segY, old_segW, old_segH; - int new_segX, new_segY, new_segW, new_segH; - int id, x, y, w, h; - - p->getStatus(item, &id, &x, &y, &w, &h); - getSegment(p, x, y, w, h, &old_segX, &old_segY, &old_segW, &old_segH); - getSegment(p, move_x, move_y, w, h, &new_segX, &new_segY, &new_segW, &new_segH); - -/* - printf("%d %d %d %d -> %d %d %d %d \n", - old_segX, old_segY, old_segW, old_segH, - new_segX, new_segY, new_segW, new_segH); -*/ - - if (old_segX != new_segX || old_segY != new_segY || - old_segW != new_segW || old_segH != new_segH) { - space_del(p, item); - p->setStatus(item, move_x, move_y, w, h); - space_add(p, item); - return; - } - - p->setStatus(item, move_x, move_y, w, h); -} - -void space_print(space_t *p) -{ - int i, j; - - debug("Debugging space:"); - - for (i = 0; i < p->h; i++) { - for (j = 0; j < p->w; j++) { - printf("%3d ", p->zone[j][i]->list->count); - } - - putchar('\n'); - } -} - -void space_action(space_t *space, void *f, void *p) -{ - void (*fce) (space_t *space, void *f, void *p); - int len; - int i; - - fce = f; - len = space->listIndex->count; - - for (i = 0; i < len; i++) { - fce(space, space_get_item(space, i), p); - - if (space->listIndex->count == len - 1) { - len--; - i--; - } - } -} - -void space_action_from_location(space_t *space, void *f, void *p, int x, int y, int w, int h) -{ - void (*fce) (space_t *space, void *f, void *p); - list_t *list; - int len; - int i; - - fce = f; - - list = list_new(); - - space_get_object(space, x, y, w, h, list); - - len = list->count; - - for (i = 0; i < len; i++) { - fce(space, list->list[i], p); - } - - list_destroy(list); -} - -void space_destroy(space_t *p) -{ - int j, i; - - index_destroy(p->listIndex); - - for (i = 0; i < p->h; i++) { - for (j = 0; j < p->w; j++) { - destroyZone(p->zone[j][i]); - } - } - - for (i = 0; i < p->w; i++) { - free(p->zone[i]); - } - - free(p->zone); - free(p); -} - -void space_destroy_with_item(space_t *p, void *f) -{ - void (*fce) (void *param); - int i; - - fce = f; - - for (i = 0; i < p->listIndex->count; i++) { - fce(space_get_item(p, i)); - } - - space_destroy(p); -} diff --git a/src/base/space.h b/src/base/space.h deleted file mode 100644 index 8b888a7..0000000 --- a/src/base/space.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef SPACE_H -#define SPACE_H - -#include "main.h" -#include "list.h" - -typedef struct zone_struct { - list_t *list; -} zone_t; - -typedef struct space_struct { - int w; - int h; - - int segW; - int segH; - - zone_t ***zone; - - list_t *listIndex; - - void (*getStatus) (void *p, int *id, int *x, int *y, int *w, int *h); - void (*setStatus) (void *p, int x, int y, int w, int h); -} space_t; - -extern space_t *space_new(int w, int h, int segW, int segH, - void (*getStatus) (void *p, int *id, int *x, int *y, int *w, int *h), - void (*setStatus) (void *p, int x, int y, int w, int h)); - -extern int space_get_count(space_t *p); -extern void *space_get_item(space_t *p, int offset); -extern void space_add(space_t *p, void *item); -extern void space_get_object(space_t *p, int x, int y, int w, int h, list_t *list); -extern void *space_get_object_id(space_t *p, int id); -extern int space_is_conflict_with_object(space_t *p, int x, int y, int w, int h); -extern int space_is_conflict_with_object_but(space_t *p, int x, int y, int w, int h, void *but); -extern void space_del(space_t *p, void *item); -extern void space_del_with_item(space_t *p, void *item, void *f); -extern void space_move_object(space_t *p, void *item, int move_x, int move_y); -extern void space_print(space_t *p); -extern void space_action(space_t *space, void *f, void *p); -extern void space_action_from_location(space_t *space, void *f, void *p, - int x, int y, int w, int h); -extern void space_destroy(space_t *p); -extern void space_destroy_with_item(space_t *p, void *f); - -#endif /* SPACE_H */ diff --git a/src/base/storage.c b/src/base/storage.c deleted file mode 100644 index 842c560..0000000 --- a/src/base/storage.c +++ /dev/null @@ -1,136 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" - -typedef struct struct_storage_item { - char *name; - char *group; - void *data; -} storage_item_t; - -list_t *storage_new() -{ - return list_new(); -} - -static storage_item_t *storage_new_item(char *group, char *name, void *data) -{ - storage_item_t *new; - - assert(name != NULL); - assert(group != NULL); - assert(data != NULL); - new = malloc(sizeof(storage_item_t)); - new->name = strdup(name); - new->group = strdup(group); - new->data = data; - - return new; -} - -static void storage_destroy_item(storage_item_t *p, void *f) -{ - void (*fce) (void *); - - assert(p != NULL); - assert(f != NULL); - - fce = f; - fce(p->data); - free(p->name); - free(p->group); - free(p); -} - -void storage_add(list_t *list, char *group, char *name, void *data) -{ - assert(list != NULL); - assert(group != NULL); - assert(name != NULL); - - list_add(list, storage_new_item(group, name, data)); -} - -void *storage_get(list_t *list, char *group, char *name) -{ - storage_item_t *this; - int i; - - assert(list != NULL); - assert(group != NULL); - assert(name != NULL); - - for (i = 0; i < list->count; i++) { - this = (storage_item_t *) list->list[i]; - - if (strcmp(group, this->group) == 0 && strcmp(name, this->name) == 0) { - return this->data; - } - } - - debug("Storage item not found [%s %s]", group, name); - - return NULL; -} - -void storage_del(list_t *list, char *group, char *name, void *f) -{ - storage_item_t *this; - int i; - - assert(list != NULL); - assert(group != NULL); - assert(name != NULL); - - for (i = 0; i < list->count; i++) { - this = (storage_item_t *) list->list[i]; - - if (strcmp(group, this->group) == 0 && strcmp(name, this->name) == 0) { - storage_destroy_item(this, f); - list_del(list, i); - return; - } - } - - return; -} - -void storage_del_all(list_t *list, char *group, void *f) -{ - storage_item_t *this; - int i; - - assert(list != NULL); - assert(group != NULL); - - for (i = 0; i < list->count; i++) { - this = (storage_item_t *) list->list[i]; - - if (strcmp(group, this->group) == 0) { - storage_destroy_item(this, f); - list_del(list, i); - i--; - } - } -} - -void storage_destroy(list_t *p, void *f) -{ - storage_item_t *this; - int i; - - assert(p != NULL); - assert(f != NULL); - - for (i = 0; i < p->count; i++) { - this = (storage_item_t *) p->list[i]; - - storage_destroy_item(this, f); - } - - list_destroy(p); -} diff --git a/src/base/storage.h b/src/base/storage.h deleted file mode 100644 index 1ef9b78..0000000 --- a/src/base/storage.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef STORAGE_H -#define STORAGE_H - -#include "main.h" -#include "list.h" - -extern list_t *storage_new(); -extern void storage_add(list_t *list, char *group, char *name, void *data); -extern void *storage_get(list_t *list, char *group, char *name); -extern void storage_del(list_t *list, char *group, char *name, void *f); -extern void storage_del_all(list_t *list, char *group, void *f); -extern void storage_destroy(list_t *p, void *f); - -#endif /* STORAGE_H */ diff --git a/src/base/string_length.h b/src/base/string_length.h deleted file mode 100644 index 43a6883..0000000 --- a/src/base/string_length.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef STR_LENGTH_H -#define STR_LENGTH_H - -#include "main.h" - -#define STR_SIZE 128 -#define STR_PROTO_SIZE 128 -#define STR_LOG_SIZE 256 -#define STR_NUM_SIZE 8 -#define STR_NAME_SIZE 32 -#define STR_PATH_SIZE 4096 -#define STR_FILE_NAME_SIZE 256 -#define STR_IP_SIZE 64 - -#endif /* STR_LENGTH_H */ diff --git a/src/base/textFile.c b/src/base/textFile.c deleted file mode 100644 index b1c2ad9..0000000 --- a/src/base/textFile.c +++ /dev/null @@ -1,151 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <sys/stat.h> -#include <assert.h> -#include <unistd.h> - -#include "main.h" -#include "textFile.h" - -textFile_t *text_file_new(char *s) -{ - textFile_t *new; - char path[STR_PATH_SIZE]; - - assert(s != NULL); - - if (isFillPath(s)) { - strcpy(path, s); - } else { - getcwd(path, STR_PATH_SIZE); - strcat(path, PATH_SEPARATOR); - strcat(path, s); - } - - new = malloc(sizeof(textFile_t)); - new->file = strdup(path); - new->text = list_new(); - - return new; -} - -static void createLine(list_t *list, char *p, int len) -{ - char *line; - char *begin_line; - char *end_line; - int length_line = 0; - - assert(list != NULL); - assert(p != NULL); - assert(len >= 0); - - begin_line = p; - - do { - end_line = memchr(begin_line, '\n', len); - - if (end_line == NULL) { - break; - } - - length_line = (int) (end_line - begin_line); - - line = malloc((length_line + 1) * sizeof(char)); - memset(line, 0, (length_line + 1) * sizeof(char)); - strncpy(line, begin_line, length_line); - - list_add(list, line); - len -= (length_line + 1); - - begin_line = end_line + 1; - - } while (begin_line != NULL); -} - -/** - * Loads file *s and returns him formatted to textFile_t* - */ -textFile_t *text_file_load(char *s) -{ - FILE *file; - textFile_t *ret; - char *p; - int file_length = 0; - struct stat buf; - - assert(s != NULL); - - if (lstat(s, &buf) < 0) { - error("Unable to get file status [%s]", s); - return NULL; - } - - file_length = buf.st_size; - if ((file = fopen(s, "rb")) == NULL) { - error("Unable to open file for reading [%s]", s); - return NULL; - } - - p = malloc(file_length * sizeof(char)); - - if (fread(p, file_length * sizeof(char), 1, file) != 1) { - error("Unable to read data from file [%s]", s); - fclose(file); - return NULL; - } - - fclose(file); - - ret = text_file_new(s); - createLine(ret->text, p, file_length); - - free(p); - - return ret; -} - -/** - * Prints the text saved in *p into stdout - */ -void text_file_print(textFile_t *p) -{ - int i; - - assert(p != NULL); - - debug("Printing file [%s]", p->file); - - for (i = 0; i < p->text->count; i++) { - printf("%3d >> %s\n", i, (char *) p->text->list[i]); - } -} - -void text_file_save(textFile_t *p) -{ - int i; - FILE *file; - - assert(p != NULL); - - file = fopen(p->file, "wb"); - - for (i = 0; i < p->text->count; i++) { - fprintf(file, "%s\n", (char *) p->text->list[i]); - } - - fclose(file); -} - -/** - * Removes text saved in *p from the memory - */ -void text_file_destroy(textFile_t *p) -{ - assert(p != NULL); - - free(p->file); - list_destroy_item(p->text, free); - free(p); -} diff --git a/src/base/textFile.h b/src/base/textFile.h deleted file mode 100644 index d2153fc..0000000 --- a/src/base/textFile.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef TEXTFILE_H -#define TEXTFILE_H - -#include "list.h" - -#ifdef __WIN32__ -#define lstat stat -#endif /* __WIN32__ */ - -typedef struct str_textFile_t { - char *file; - list_t *text; -} textFile_t; - -extern textFile_t *text_file_new(char *s); -extern textFile_t *text_file_load(char *s); -extern void text_file_print(textFile_t *p); -extern void text_file_save(textFile_t *p); -extern void text_file_destroy(textFile_t *p); - -#endif /* TEXTFILE_H */ diff --git a/src/base/tux.c b/src/base/tux.c deleted file mode 100644 index f88d6a4..0000000 --- a/src/base/tux.c +++ /dev/null @@ -1,766 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "tux.h" -#include "arena.h" -#include "shot.h" -#include "gun.h" -#include "item.h" -#include "arena.h" -#include "myTimer.h" -#include "net_multiplayer.h" -#include "proto.h" -#include "modules.h" -#include "idManager.h" -#include "serverSendMsg.h" - -#ifndef PUBLIC_SERVER -#include "font.h" -#include "image.h" -#include "layer.h" -#include "radar.h" - -#ifndef NO_SOUND -#include "sound.h" -#endif /* NO_SOUND */ - -#include "world.h" -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#endif /* PUBLIC_SERVER */ - -#ifndef PUBLIC_SERVER -static image_t *g_tux_up; -static image_t *g_tux_right; -static image_t *g_tux_left; -static image_t *g_tux_down; -static image_t *g_cross; -#endif /* PUBLIC_SERVER */ - -static bool_t isTuxInit = FALSE; - -bool_t tux_is_inicialized() -{ - return isTuxInit; -} - -void tux_init() -{ -#ifndef PUBLIC_SERVER - assert(image_is_inicialized() == TRUE); - - g_tux_up = image_add("tux8.png", IMAGE_ALPHA, "tux8", IMAGE_GROUP_BASE); - g_tux_right = image_add("tux6.png", IMAGE_ALPHA, "tux6", IMAGE_GROUP_BASE); - g_tux_left = image_add("tux4.png", IMAGE_ALPHA, "tux4", IMAGE_GROUP_BASE); - g_tux_down = image_add("tux2.png", IMAGE_ALPHA, "tux2", IMAGE_GROUP_BASE); - g_cross = image_add("cross.png", IMAGE_ALPHA, "cross", IMAGE_GROUP_BASE); -#endif /* PUBLIC_SERVER */ - isTuxInit = TRUE; -} - -int getRandomGun() -{ - return random() % (GUN_BOMBBALL+1); -} - -tux_t *tux_new() -{ - int x, y; - tux_t *new; - - new = malloc(sizeof(tux_t)); - assert(new != NULL); - - memset(new, 0, sizeof(tux_t)); - - new->id = id_get_new(); - new->status = TUX_STATUS_ALIVE; - new->control = TUX_CONTROL_NONE; - - arena_find_free_space(arena_get_current(), &x, &y, TUX_WIDTH, TUX_HEIGHT); - tux_set_proportion(new, x, y); - - new->position = TUX_DOWN; - new->gun = getRandomGun(); - new->shot[new->gun] = GUN_MAX_SHOT; - - sprintf(new->name, "no_name_id_%d", new->id); - new->score = 0; - new->frame = 0; - - new->bonus = BONUS_NONE; - new->bonus_time = 0; - - new->isCanShot = TRUE; - new->isCanSwitchGun = TRUE; - - new->client = NULL; - - return new; -} - -void tux_set_name(tux_t *tux, char *name) -{ - strcpy(tux->name, name); - /*tux->g_name = getFontImage(name, COLOR_WHITE);*/ -} - -bool_t tux_is_any_gun(tux_t *tux) -{ - int i; - - for (i = 0; i < GUN_COUNT; i++) { - if (tux->shot[i] > 0) { - return TRUE; - } - } - - return FALSE; -} - -void tux_get_course(int n, int *x, int *y) -{ - assert(x != NULL); - assert(y != NULL); - - switch (n) { - case TUX_UP: - *x = 0; - *y = -1; - break; - - case TUX_LEFT: - *x = -1; - *y = 0; - break; - - case TUX_RIGHT: - *x = +1; - *y = 0; - break; - - case TUX_DOWN: - *x = 0; - *y = +1; - break; - - default: - error("Unknown direction of the tux [%d]", n); - assert(0); - break; - } -} - -#ifndef PUBLIC_SERVER -void tux_draw(tux_t *tux) -{ - image_t *g_image = NULL; - - assert(tux != NULL); - - if (tux->bonus == BONUS_HIDDEN && - net_multiplayer_get_game_type() != NET_GAME_TYPE_NONE && - tux->control == TUX_CONTROL_NET) { - return; - } - - switch (tux->position) { - case TUX_UP: - g_image = g_tux_up; - break; - - case TUX_LEFT: - g_image = g_tux_left; - break; - - case TUX_RIGHT: - g_image = g_tux_right; - break; - - case TUX_DOWN: - g_image = g_tux_down; - break; - - default: - error("Unknown direction of the tux [%d]", tux->position); - assert(0); - break; - } - - if (tux->status == TUX_STATUS_DEAD) { - g_image = g_cross; - - addLayer(g_cross, tux->x - g_cross->w / 2, - (tux->y + g_cross->h / 2) - g_cross->h, - 0, 0, g_cross->w, g_cross->h, TUX_LAYER); - - return; - } - -/* - if (tux->g_name != NULL) { - addLayer(tux->g_name, - tux->x - TUX_IMG_WIDTH / 2, - (tux->y + TUX_HEIGHT / 2) - TUX_IMG_HEIGHT, - 0, 0, - tux->g_name->w, tux->g_name->h, TUX_LAYER); - } -*/ - - addLayer(g_image, tux->x - TUX_IMG_WIDTH / 2, - (tux->y + TUX_HEIGHT / 2) - TUX_IMG_HEIGHT, - (tux->frame / TUX_KEY) * TUX_IMG_WIDTH, 0, - TUX_IMG_WIDTH, TUX_IMG_HEIGHT, TUX_LAYER); -} - -/* -void drawListTux(list_t *listTux) -{ - tux_t *thisTux; - int i; - - assert(listTux != NULL); - - for(i = 0; i < listTux->count; i++) { - thisTux = (tux_t *) listTux->list[i]; - assert(thisTux != NULL); - tux_draw(thisTux); - } -} -*/ -#endif /* PUBLIC_SERVER */ - -void tux_replace_id(tux_t *tux, int id) -{ - id_replace(tux->id, id); - tux->id = id; -} - -static void timer_spawnTux(void *p) -{ - tux_t *tux; - arena_t *arena; - int x, y; - int id; - - id = *((int *) p); - free(p); - - arena = arena_get_current(); - tux = space_get_object_id(arena->spaceTux, id); - - if (tux == NULL) { - return; - } - - tux->status = TUX_STATUS_ALIVE; - arena_find_free_space(arena_get_current(), &x, &y, TUX_WIDTH, TUX_HEIGHT); - space_move_object(arena_get_current()->spaceTux, tux, x, y); - tux->gun = GUN_SIMPLE; - - item_add_new_item(arena->spaceItem, ID_UNKNOWN); - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_newtux_server(PROTO_SEND_ALL, NULL, tux); - } -} - -static void timer_tuxCanShot(void *p) -{ - tux_t *tux; - int id; - - id = *((int *) p); - free(p); - - tux = space_get_object_id(arena_get_current()->spaceTux, id); - - if (tux == NULL) { - return; - } - - tux->isCanShot = TRUE; -} - -static void timer_tuxCanSwitchGun(void *p) -{ - tux_t *tux; - int id; - - id = *((int *) p); - free(p); - - tux = space_get_object_id(arena_get_current()->spaceTux, id); - - if (tux == NULL) { - return; - } - - tux->isCanSwitchGun = TRUE; -} - -void tux_event_tux_is_dead(tux_t *tux) -{ - if (tux->status == TUX_STATUS_DEAD) { - return; - } - - world_inc_round(); - -#ifndef NO_SOUND - sound_play("dead", SOUND_GROUP_BASE); -#endif /* NO_SOUND */ - - tux->status = TUX_STATUS_DEAD; - memset(tux->shot, 0, sizeof(int) * GUN_COUNT); - tux->gun = GUN_SIMPLE; - tux->shot[tux->gun] = GUN_MAX_SHOT; - - tux->bonus = BONUS_NONE; - tux->bonus_time = 0; - tux->pickup_time = 0; - - tux->isCanShot = TRUE; - tux->isCanSwitchGun = TRUE; - - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - timer_add_task(arena_get_current()->listTimer, TIMER_ONE, - timer_spawnTux, newInt(tux->id), TUX_TIME_SPAWN); - } - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_kill_server(PROTO_SEND_ALL, NULL, tux); - } -} - -static void tux_event_tux_is_deadWIthShot(tux_t *tux, shot_t *shot) -{ - if (shot->author_id == tux->id) { - tux->score--; - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_newtux_server(PROTO_SEND_ALL, NULL, tux); - } - } - - if (shot->author_id != tux->id) { - tux_t *author; - - author = space_get_object_id(arena_get_current()->spaceTux, shot->author_id); - - if (author != NULL) { - author->score++; - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_newtux_server(PROTO_SEND_ALL, NULL, author); - } - } - - } - - tux_event_tux_is_dead(tux); -} - -void tux_teleport(tux_t *tux) -{ - int x, y; - -#ifndef NO_SOUND - sound_play("teleport", SOUND_GROUP_BASE); -#endif /* NO_SOUND */ - - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - arena_find_free_space(arena_get_current(), &x, &y, TUX_WIDTH, TUX_HEIGHT); - space_move_object(arena_get_current()->spaceTux, tux, x, y); - /*tux_set_proportion(tux, x, y);*/ - } - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_newtux_server(PROTO_SEND_ALL, NULL, tux); - } -} - -static void bombBallExplosion(shot_t *shot) -{ - item_t *item; - int x, y; - - x = (shot->x + shot->w / 2) - ITEM_BIG_EXPLOSION_WIDTH / 2; - y = (shot->y + shot->h / 2) - ITEM_BIG_EXPLOSION_HEIGHT / 2; - - item = item_new(x, y, ITEM_BIG_EXPLOSION, shot->author_id); - - space_add(arena_get_current()->spaceItem, item); - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - /*proto_send_del_server(PROTO_SEND_ALL, NULL, shot->id);*/ - proto_send_additem_server(PROTO_SEND_ALL, NULL, item); - } - - /*space_del_with_item(arena_get_current()->spaceShot, shot, shot_destroy);*/ -} - -static void action_tux(space_t *space, tux_t *tux, shot_t *shot) -{ - if (tux->status == TUX_STATUS_ALIVE) { - if (shot->author_id == tux->id && shot->isCanKillAuthor == FALSE) { - return; - } - - if (tux->bonus == BONUS_TELEPORT) { - tux_teleport(tux); - return; - } - - if (shot->gun == GUN_BOMBBALL) { - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - bombBallExplosion(shot); - shot->del = TRUE; - } - - return; - } - - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - tux_event_tux_is_deadWIthShot(tux, shot); - } - } - - shot->del = TRUE; - -/* - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_del_server(PROTO_SEND_ALL, NULL, shot->id); - } - - space_del_with_item(arena->spaceShot, shot, shot_destroy); -*/ -} - -static void action_shot(space_t *space, shot_t *shot, space_t *spaceTux) -{ - space_action_from_location(spaceTux, action_tux, shot, shot->x, shot->y, shot->w, shot->h); - - if (shot->del == TRUE) { - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_del_server(PROTO_SEND_ALL, NULL, shot->id); - } - - space_del_with_item(space, shot, shot_destroy); - } -} - -void tux_conflict_woth_shot(arena_t *arena) -{ - /* just for a test */ - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_CLIENT) { - return; - } - - space_action(arena->spaceShot, action_shot, arena->spaceTux); -} - -void moveTux(tux_t *tux, int n) -{ - int px = 0, py = 0; /* no warnings */ - int zal_x, zal_y; - int new_x, new_y; - int w, h; - arena_t *arena; - - assert(tux != NULL); - - arena = arena_get_current(); - /*interval();*/ - - if (tux->position != n) { - tux->position = n; - return; - } - - if ((n == TUX_LEFT && tux->x - TUX_STEP <= 0) || - (n == TUX_RIGHT && tux->x + TUX_STEP >= arena->w) || - (n == TUX_UP && tux->y - TUX_STEP <= 0) || - (n == TUX_DOWN && tux->y + TUX_STEP >= arena->h)) { - return; - } - - tux_get_proportion(tux, &zal_x, &zal_y, &w, &h); - - tux_get_course(tux->position, &px, &py); - - new_x = zal_x; - new_y = zal_y; - - new_x += px * TUX_STEP; - new_y += py * TUX_STEP; - - if (tux->bonus == BONUS_SPEED) { - new_x += px * TUX_STEP; - new_y += py * TUX_STEP; - } - - if (tux->bonus != BONUS_GHOST && - (space_is_conflict_with_object_but(arena->spaceTux, new_x, new_y, w, h, tux) || - module_is_conflict(new_x, new_y, w, h))) { - tux_set_proportion(tux, zal_x, zal_y); - return; - } - - tux_set_proportion(tux, zal_x, zal_y); - space_move_object(arena->spaceTux, tux, new_x, new_y); - item_tux_give_list_item(tux, arena_get_current()->spaceItem); - tux->frame++; - - if (tux->frame == TUX_KEY * TUX_MAX_ANIMATION_FRAME) { - tux->frame = 0; - } -} - -void switchTuxGun(tux_t *tux) -{ - int i; - - if (tux->control != TUX_CONTROL_NET && tux->isCanSwitchGun == FALSE) { - return; - } - - for (i = tux->gun + 1; i < GUN_COUNT; i++) { - if (tux->shot[i] > 0) { - tux->gun = i; - tux->isCanSwitchGun = FALSE; - timer_add_task(arena_get_current()->listTimer, TIMER_ONE, - timer_tuxCanSwitchGun, newInt(tux->id), - TUX_TIME_CAN_SWITCH_GUN); -#ifndef NO_SOUND - sound_play("switch_gun", SOUND_GROUP_BASE); -#endif /* NO_SOUND */ - return; - } - } - - for (i = 0; i < GUN_COUNT; i++) { - if (tux->shot[i] > 0) { - tux->gun = i; - tux->isCanSwitchGun = FALSE; - - timer_add_task(arena_get_current()->listTimer, TIMER_ONE, - timer_tuxCanSwitchGun, newInt(tux->id), - TUX_TIME_CAN_SWITCH_GUN); - -#ifndef NO_SOUND - sound_play("switch_gun", SOUND_GROUP_BASE); -#endif /* NO_SOUND */ - return; - } - } -} - -void shotTux(tux_t *tux) -{ - assert(tux != NULL); - - if (tux->isCanShot == FALSE || tux->shot[tux->gun] == 0) { - return; - } - -#ifndef NO_SOUND - sound_play("switch_gun", SOUND_GROUP_BASE); -#endif /* NO_SOUND */ - - gun_shot(tux); - - tux->isCanShot = FALSE; - - timer_add_task(arena_get_current()->listTimer, TIMER_ONE, timer_tuxCanShot, - newInt(tux->id), TUX_TIME_CAN_SHOT); - - if (tux->shot[tux->gun] == 0) { - switchTuxGun(tux); - } -} - -void tux_action(tux_t *tux, int action) -{ - if (tux->status == TUX_STATUS_DEAD) { - return; - } - - switch (action) { - case TUX_UP: - case TUX_LEFT: - case TUX_RIGHT: - case TUX_DOWN: - moveTux(tux, action); - break; - - case TUX_SHOT: - shotTux(tux); - break; - - case TUX_SWITCH_GUN: - switchTuxGun(tux); - break; - } -} - -static void pickUpGun(tux_t *tux) -{ - if (tux_is_any_gun(tux) == FALSE) { - tux->gun = GUN_SIMPLE; - - if (tux->pickup_time < TUX_MAX_PICKUP) { - tux->pickup_time++; - } - - if (tux->pickup_time == TUX_MAX_PICKUP && net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { -#ifndef NO_SOUND - sound_play("switch_gun", SOUND_GROUP_BASE); -#endif /* NO_SOUND */ - - tux->gun = GUN_SIMPLE; - tux->shot[tux->gun] = GUN_MAX_SHOT; - tux->pickup_time = 0; - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_newtux_server(PROTO_SEND_ALL, NULL, tux); - } - } - } -} - -static void eventBonus(tux_t *tux) -{ - if (tux->bonus != BONUS_NONE) { - if (tux->bonus_time > 0) { - tux->bonus_time--; - } - - if (tux->bonus_time == 0 && net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - if (tux->bonus == BONUS_GHOST) { - int x, y, w, h; - tux_get_proportion(tux, &x, &y, &w, &h); - - tux->bonus = BONUS_NONE; - - if (/*isConflictTuxWithListTux(tux, arena_get_current()->listTux) ||*/ - module_is_conflict(x, y, w, h)) { - tux->bonus = BONUS_GHOST; - return; - } - } - - tux->bonus = BONUS_NONE; - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - proto_send_newtux_server(PROTO_SEND_ALL, NULL, tux); - } - } - } -} - -void tux_event(tux_t *tux) -{ - arena_t *arena; - - arena = arena_get_current(); - -#ifndef PUBLIC_SERVER - world_tux_control(tux); -#endif /* PUBLIC_SERVER */ - pickUpGun(tux); - eventBonus(tux); - item_tux_give_list_item(tux, arena->spaceItem); -} - -/* -void eventListTux(list_t *listTux) -{ - tux_t *thisTux; - int i; - - assert(listTux != NULL); - - for (i = 0; i < listTux->count; i++) { - thisTux = (tux_t *) listTux->list[i]; - assert(thisTux != NULL); - tux_event(thisTux); - } -} -*/ - -void tux_get_proportion(tux_t *tux, int *x, int *y, int *w, int *h) -{ - assert(tux != NULL); - - if (x != NULL) { - *x = tux->x - TUX_WIDTH / 2; - } - - if (y != NULL) { - *y = tux->y - TUX_HEIGHT / 2; - } - - if (w != NULL) { - *w = TUX_WIDTH; - } - - if (h != NULL) { - *h = TUX_HEIGHT; - } -} - -void tux_set_proportion(tux_t *tux, int x, int y) -{ - assert(tux != NULL); - - tux->x = x + TUX_WIDTH / 2; - tux->y = y + TUX_WIDTH / 2; -} - -void tux_get_status(void *p, int *id, int *x, int *y, int *w, int *h) -{ - tux_t *tux; - - tux = p; - *id = tux->id; - tux_get_proportion(tux, x, y, w, h); -} - -void tux_set_status(void *p, int x, int y, int w, int h) -{ - tux_t *tux; - - tux = p; - tux_set_proportion(tux, x, y); -} - -static void action_checkMine(space_t *space, item_t *item, tux_t *tux) -{ - if (item->type == ITEM_MINE && item->author_id == tux->id) { - item->author_id = ID_UNKNOWN; - } -} - -void tux_destroy(tux_t *tux) -{ - arena_t *arena; - - arena = arena_get_current(); - - assert(tux != NULL); - - id_del(tux->id); - - space_action(arena->spaceItem, action_checkMine, tux); - - free(tux); -} - -void tux_quit() -{ - isTuxInit = FALSE; -} diff --git a/src/base/tux.h b/src/base/tux.h deleted file mode 100644 index 9258a78..0000000 --- a/src/base/tux.h +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef TUX_H -#define TUX_H - -#include "main.h" -#include "list.h" -#include "arena.h" - -#define TUX_STEP 7 -#define TUX_LAYER 0 - -#define TUX_MAX_ANIMATION_FRAME 10 -#define TUX_KEY 1 - -#define TUX_LOCATE_UNKNOWN -100 - -#define TUX_MAX_PICKUP 50 -#define TUX_MAX_BONUS 500 - -#define TUX_TIME_SPAWN 2000 -#define TUX_TIME_CAN_SHOT 500 -#define TUX_TIME_CAN_SWITCH_GUN 100 - -#define TUX_STATUS_ALIVE 0 -#define TUX_STATUS_DEAD 1 -#define TUX_STATUS_PAUZED 2 - -#define TUX_CONTROL_NONE 0 -#define TUX_CONTROL_KEYBOARD_LEFT 1 -#define TUX_CONTROL_KEYBOARD_RIGHT 2 -#define TUX_CONTROL_NET 3 -#define TUX_CONTROL_AI 4 - -#define TUX_WIDTH 30 -#define TUX_HEIGHT 30 - -#define TUX_IMG_WIDTH 40 -#define TUX_IMG_HEIGHT 54 - -#define TUX_UP 8 -#define TUX_LEFT 4 -#define TUX_RIGHT 6 -#define TUX_DOWN 2 -#define POSITION_UNKNOWN -1 - -#define TUX_SHOT 5 -#define TUX_SWITCH_GUN 0 - - -#define GUN_NONE -1 - -#define GUN_COUNT 7 -#define GUN_MAX_SHOT 5 - -#define BONUS_COUNT 6 -#define ITEM_COUNT 16 - - -#define SHOT_CHECK_AREA 25 - -#define GUN_SIMPLE 0 -#define GUN_DUAL_SIMPLE 1 -#define GUN_SCATTER 2 -#define GUN_TOMMY 3 -#define GUN_LASSER 4 -#define GUN_MINE 5 -#define GUN_BOMBBALL 6 - -#define ITEM_MINE 7 -#define ITEM_EXPLOSION 8 -#define ITEM_BIG_EXPLOSION 9 - -#define BONUS_NONE -1 -#define BONUS_SPEED 10 -#define BONUS_SHOT 11 -#define BONUS_TELEPORT 12 -#define BONUS_GHOST 13 -#define BONUS_4X 14 -#define BONUS_HIDDEN 15 - -typedef struct tux_struct { - int id; - - int x; - int y; - - char name[STR_NAME_SIZE]; - - int status; - int control; - int position; - int score; - - int gun; - int shot[GUN_COUNT]; - int round; - int bonus; - - int bonus_time; - int pickup_time; - - bool_t isCanShot; - bool_t isCanSwitchGun; - - int frame; - - void *client; -} tux_t; - -extern bool_t tux_is_inicialized(); -extern void tux_init(); -extern tux_t *tux_new(); -extern void tux_set_name(tux_t *tux, char *name); -extern bool_t tux_is_any_gun(tux_t *tux); -extern void tux_get_course(int n, int *x, int *y); -extern void tux_draw(tux_t *tux); -/*extern void drawListTux(list_t *listTux);*/ -extern void tux_event_tux_is_dead(tux_t *tux); -/*extern tux_t *isConflictWithListTux(list_t *listTux, int x, int y, int w, int h);*/ -/*extern int isConflictTuxWithListTux(tux_t *tux, list_t *listTux);*/ -extern void tux_conflict_woth_shot(arena_t *arena); -/*extern void eventConflictTuxWithTeleport(list_t *listTux, list_t *listTeleport);*/ -extern void tux_teleport(tux_t *tux); -extern void tux_action(tux_t *tux, int action); -extern void tux_event(tux_t *tux); -/*extern void eventListTux(list_t *listTux);*/ -/*extern tux_t *getTuxID(list_t *listTux, int id);*/ -extern void tux_get_proportion(tux_t *tux, int *x, int *y, int *w, int *h); -extern void tux_replace_id(tux_t *tux, int id); -extern void tux_set_proportion(tux_t *tux, int x, int y); -extern void tux_get_status(void *p, int *id, int *x, int *y, int *w, int *h); -extern void tux_set_status(void *p, int x, int y, int w, int h); -extern void tux_destroy(tux_t *tux); -extern void tux_quit(); - -#endif /* TUX_H */ diff --git a/src/base/udp_server.c b/src/base/udp_server.c deleted file mode 100644 index aa24c46..0000000 --- a/src/base/udp_server.c +++ /dev/null @@ -1,244 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <sys/types.h> - -#include <unistd.h> -#include <fcntl.h> -#include <sys/time.h> - -#ifndef __WIN32__ -#include <sys/ioctl.h> -#include <sys/socket.h> -#include <sys/select.h> -#else /* __WIN32__ */ -#include <io.h> -#include <winsock2.h> -#endif /* __WIN32__ */ - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "proto.h" -#include "server.h" -#include "myTimer.h" -#include "arena.h" -#include "net_multiplayer.h" -#include "checkFront.h" -#include "protect.h" -#include "index.h" - -#ifndef PUBLIC_SERVER -#include "world.h" -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#include "highScore.h" -#include "log.h" -#endif /* PUBLIC_SERVER */ - -#include "udp.h" -#include "udp_server.h" -#include "serverSelect.h" - -static sock_udp_t *sock_server_udp; -static sock_udp_t *sock_server_udp_second; - -client_t *server_udp_new_client(sock_udp_t *sock_udp) -{ - client_t *new; - - assert(sock_udp != NULL); - - new = server_new_any_client(); - new->type = CLIENT_TYPE_UDP; - new->socket_udp = sock_udp; - -#ifdef PUBLIC_SERVER - char str_log[STR_LOG_SIZE]; - char str_ip[STR_IP_SIZE]; - - sock_udp_get_ip(sock_udp, str_ip, STR_IP_SIZE); - sprintf(str_log, _("New player [%s]:%d connected"), str_ip, sock_udp_get_port(sock_udp)); - log_add(LOG_INF, str_log); -#endif /* PUBLIC_SERVER */ - - return new; -} - -void server_udp_destroy_client(client_t *p) -{ - check_front_event(p); - -#ifdef PUBLIC_SERVER - char str_log[STR_LOG_SIZE]; - char str_ip[STR_IP_SIZE]; - - sock_udp_get_ip(p->socket_udp, str_ip, STR_IP_SIZE); - sprintf(str_log, _("Player [%s]:%d disconnected"), str_ip, sock_udp_get_port(p->socket_udp)); - log_add(LOG_INF, str_log); -#endif /* PUBLIC_SERVER */ - - sock_udp_destroy(p->socket_udp); - - server_destroy_any_client(p); -} - -int server_udp_init(char *ip4, char *ip6, int port) -{ - int ret; - - ret = 0; - - if (ip4 != NULL) { - sock_server_udp = sock_udp_bind(ip4, port); - - if (sock_server_udp != NULL) { - ret++; - debug("Starting server on [%s]:%d", ip4, port); - } else { - debug("Unable to start server on [%s]:%d", ip4, port); - } - } - - if (ip6 != NULL) { - sock_server_udp_second = sock_udp_bind(ip6, port); - - if (sock_server_udp_second != NULL) { - ret++; - debug("Starting server on [%s]:%d", ip6, port); - } else { - debug("Unable to start server on [%s]:%d", ip6, port); - } - } - - return ret; -} - -static void eventCreateNewUdpClient(sock_udp_t *socket_udp) -{ - list_t *listClient; - client_t *client; - - assert(socket_udp != NULL); - - listClient = server_get_list_clients(); - - client = server_udp_new_client(socket_udp); - list_add(listClient, client); -} - -static client_t *findUdpClient(sock_udp_t *sock_udp) -{ - list_t *listClient; - int port; - int i; - - port = sock_udp_get_port(sock_udp); - listClient = server_get_list_clients(); - - for (i = 0; i < listClient->count; i++) { - client_t *client; - - client = (client_t *) listClient->list[i]; - - if (client->type == CLIENT_TYPE_UDP && - sock_udp_get_port(client->socket_udp) == port) { - return client; - } - } - - return NULL; -} - -static void client_eventUdpSelect(sock_udp_t *sock_server) -{ - sock_udp_t *sock_client; - client_t *client; - char listRecvMsg[STR_SIZE]; - bool_t isCreateNewClient; - int ret; - - assert(sock_server != NULL); - - sock_client = sock_udp_new(); - isCreateNewClient = FALSE; - - memset(listRecvMsg, 0, STR_SIZE); - - ret = sock_udp_read(sock_server, sock_client, listRecvMsg, STR_SIZE - 1); - - client = findUdpClient(sock_client); - - if (client == NULL) { - eventCreateNewUdpClient(sock_client); - client = findUdpClient(sock_client); - isCreateNewClient = TRUE; - } - - if (client == NULL) { - error("UDP client not found"); - return; - } - - if (isCreateNewClient == FALSE) { - sock_udp_destroy(sock_client); - } - - if (ret <= 0) { - client->status = NET_STATUS_ZOMBIE; - return; - } - - /*printf("add packet >>%s<<\n", listRecvMsg);*/ - list_add(client->listRecvMsg, strdup(listRecvMsg)); -} - -void server_udp_set_select() -{ - if (sock_server_udp != NULL) { - select_add_sock_for_read(sock_server_udp->sock); - } - - if (sock_server_udp_second != NULL) { - select_add_sock_for_read(sock_server_udp_second->sock); - } -} - -int server_udp_select_sock() -{ - int count; - - count = 0; - - if (sock_server_udp != NULL) { - if (select_is_change_sock_for_read(sock_server_udp->sock)) { - client_eventUdpSelect(sock_server_udp); - count++; - } - } - - if (sock_server_udp_second != NULL) { - if (select_is_change_sock_for_read(sock_server_udp_second->sock)) { - client_eventUdpSelect(sock_server_udp_second); - count++; - } - } - - return count; -} - -void server_udp_quit() -{ - debug("Shutting down UDP"); - - if (sock_server_udp != NULL) { - debug("Closing IPv4 [port %d]", sock_udp_get_port(sock_server_udp)); - sock_udp_close(sock_server_udp); - } - - if (sock_server_udp_second != NULL) { - debug("Closing IPv6 [port %d]", sock_udp_get_port(sock_server_udp_second)); - sock_udp_close(sock_server_udp_second); - } -} diff --git a/src/base/udp_server.h b/src/base/udp_server.h deleted file mode 100644 index 0d4c1d9..0000000 --- a/src/base/udp_server.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef SERVER_UDP_H -#define SERVER_UDP_H - -#include "server.h" -#include "udp.h" - -extern client_t *server_udp_new_client(sock_udp_t *sock_udp); -extern void server_udp_destroy_client(client_t *p); -extern int server_udp_init(char *ip4, char *ip6, int port); -extern void server_udp_set_select(); -extern int server_udp_select_sock(); -extern void server_udp_quit(); - -#endif /* SERVER_UDP_H */ diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt deleted file mode 100644 index 2e93cef..0000000 --- a/src/client/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -############################################################################### -# tuxanci/src/*/CMakeLists.txt -############################################################################### -# Generate source_code files from .c files we find in directory -############################################################################### -MacroAddSources() -############################################################################### diff --git a/src/client/chat.c b/src/client/chat.c deleted file mode 100644 index d68edb8..0000000 --- a/src/client/chat.c +++ /dev/null @@ -1,295 +0,0 @@ -#include <stdlib.h> -#include <ctype.h> -#include <assert.h> -#include <SDL.h> - -#include "main.h" -#include "list.h" -#include "myTimer.h" -#include "image.h" -#include "serverSendMsg.h" - -#include "net_multiplayer.h" -#include "world.h" -#include "proto.h" -#include "interface.h" -#include "chat.h" -#include "font.h" -#include "keyboardBuffer.h" -#include "hotKey.h" - -static image_t *g_chat; - -static list_t *listText; - -static char line[STR_SIZE]; - -static int line_time, line_atime; -static int timeBlick; - -static bool_t chat_active; -static bool_t receivedNewMsg; - -static void hotkey_chat_enter(); -static void hotkey_chat_enter(); -static void chat_eventDisable(); - -static void hotkey_chat_esc() -{ - /* - printf("*** hotkey_chat_esc\n"); - hot_key_unregister(SDLK_ESCAPE); - */ - chat_eventDisable(); -} - -static void hotkey_chat_enter() -{ - if (chat_active == TRUE) { - return; - } - - chat_active = TRUE; - receivedNewMsg = FALSE; - - hot_key_disable(SDLK_RETURN); - hot_key_disable(SDLK_p); - hot_key_register(SDLK_ESCAPE, hotkey_chat_esc); - - interface_enable_keyboard_buffer(); - keyboard_buffer_clear(); -} - -void chat_init() -{ - g_chat = image_add("chat.png", IMAGE_NO_ALPHA, "chat", IMAGE_GROUP_USER); - - listText = list_new(); - strcpy(line, ""); - chat_active = FALSE; - - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_NONE) { - hot_key_register(SDLK_RETURN, hotkey_chat_enter); - } - - receivedNewMsg = FALSE; - line_time = 0; - line_atime = 0; - timeBlick = 0; -} - -void chat_draw() -{ - char str[STR_SIZE]; - int i; - - if (chat_active == FALSE) { - return; - } - - image_draw(g_chat, CHAT_LOCATION_X, CHAT_LOCATION_Y, - 0, 0, - CHAT_SIZE_X, CHAT_SIZE_Y); - - for (i = 0; i < listText->count; i++) { - char *s; - - s = (char *) listText->list[i]; - - font_drawMaxSize(s, CHAT_LOCATION_X + 5, CHAT_LOCATION_Y + 5 + i * 20, - CHAT_SIZE_X - 10, 20, COLOR_WHITE); - } - - strcpy(str, line); - - if (timeBlick > CHAT_TIME_BLICK_CURSOR / 2) { - strcat(str, "\f"); - } - - timeBlick++; - - if (timeBlick == CHAT_TIME_BLICK_CURSOR) { - timeBlick = 0; - } - - font_draw(str, CHAT_LOCATION_X + 5, (CHAT_LOCATION_Y + 5) + (CHAT_MAX_LINES * 20), COLOR_WHITE); -} - -static void processMessageKey(SDL_keysym keysym) -{ - int w, h; - int len; - unsigned n; - - char shift_map[] = { - '-', '_', - '=', '+', - '[', '{', - ']', '}', - ';', ':', - '/', '\"', - '\\', '|', - ',', '<', - '.', '>', - '/', '?', - ')', '(' - }; - - if (line_atime < 100) { - line_atime++; - } - - len = strlen(line); - font_text_size(line, &w, &h); - - /* processing of backspace */ - if (keysym.sym == SDLK_BACKSPACE && len > 0) { - line[len - 1] = '\0'; - return; - } - - /* end of line */ - if (w > CHAT_SIZE_X - 20) { - return; - } - - /* processing of printable chars but not letters */ - if ((keysym.sym >= SDLK_SPACE && keysym.sym <= SDLK_AT) || - (keysym.sym >= SDLK_LEFTBRACKET && keysym.sym <= SDLK_BACKQUOTE)) { - /* here would be much better to put 'strcat' as 'line' is expected - * to be full of '0' up to its end - */ - char c = keysym.sym; - - if (keysym.mod & KMOD_RSHIFT) { - for (n = 0; n < sizeof (shift_map); n += 2) { - if (c == shift_map[n]) { - c = shift_map[n+1]; - break; - } - } - } - - line[len] = c; - return; - } - - /* processing of letters */ - if (keysym.sym >= SDLK_a && keysym.sym <= SDLK_z) { - char c = keysym.sym; - - if (keysym.mod & KMOD_SHIFT) { - c = toupper(c); - } - - /* here would be much better to put 'strcat' as 'line' is expected - * to be full of '0' up to its end - */ - line[len] = c; - } - - return; -} - -static void sendNewMessage() -{ - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_CLIENT) { - proto_send_chat_client(line); - } - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - char out[STR_PROTO_SIZE]; - - snprintf(out, STR_PROTO_SIZE, "chat %s:%s\n", - world_get_control_tux(TUX_CONTROL_KEYBOARD_RIGHT)->name, - line); - - proto_send_chat_server(PROTO_SEND_ALL, NULL, out); - } -} - -static void chat_eventDisable() -{ - chat_active = FALSE; - memset(line, '\0', STR_SIZE); - - hot_key_enable(SDLK_RETURN); - hot_key_enable(SDLK_p); - hot_key_unregister(SDLK_ESCAPE); - - interface_disable_keyboard_buffer(); - keyboard_buffer_clear(); -} - -static void chat_eventEnable() -{ - /* The chat window is displayed. It is needed to process all keys in the buffer - * but when ENTER is pressed the chat row is sent to the server - */ - - while (keyboard_buffer_is_any_key() == TRUE) { - SDL_keysym key; - key = keyboard_buffer_pop(); - - if (key.sym == SDLK_RETURN) { - if (strcmp(line, "") != 0) { - /* the chat row is already written - it is needed to send it */ - sendNewMessage(); - memset(line, '\0', STR_SIZE); - continue; /* continue with other keys */ - } else { - /* the chat row is empty - it is needed to turn off the chat window */ - /*chat_eventDisable();*/ - /* turn off key catching into the buffer and clear the buffer */ - /*interface_disable_keyboard_buffer();*/ - /*keyboard_buffer_clear();*/ - } - } - - processMessageKey(key); - } -} - -/** - * Processing of chat 'events' - */ -void chat_event() -{ - if (chat_is_active()) { - chat_eventEnable(); - } -} - -bool_t chat_is_active() -{ - return chat_active; -} - -bool_t chat_is_recived_new_msg() -{ - return receivedNewMsg; -} - -void chat_add(char *s) -{ - list_add(listText, strdup(s)); - - if (listText->count > CHAT_MAX_LINES) { - list_del_item(listText, 0, free); - } - - if (chat_active == FALSE) { - receivedNewMsg = TRUE; - } -} - -void chat_quit() -{ - assert(listText != NULL); - - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_NONE) { - hot_key_unregister(SDLK_RETURN); - } - - list_destroy_item(listText, free); -} diff --git a/src/client/chat.h b/src/client/chat.h deleted file mode 100644 index 5427f60..0000000 --- a/src/client/chat.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef CHAT_H -#define CHAT_H - -#define CHAT_MAX_LINES 10 -#define CHAT_TIME_MULTIPLE 10 -#define CHAT_TIME_BLICK_CURSOR 20 -#define CHAT_LINE_WIDTH 320 - -#define CHAT_SIZE_X 320 -#define CHAT_SIZE_Y 240 - -#define CHAT_LOCATION_X (WINDOW_SIZE_X / 2 - CHAT_SIZE_X / 2) -#define CHAT_LOCATION_Y (WINDOW_SIZE_Y / 2 - CHAT_SIZE_Y / 2) - -extern void chat_init(); -extern void chat_draw(); -extern void chat_event(); -extern void chat_add(char *s); -extern bool_t chat_is_active(); -extern bool_t chat_is_recived_new_msg(); -extern void chat_quit(); - -#endif /* CHAT_H */ diff --git a/src/client/client.c b/src/client/client.c deleted file mode 100644 index 054b3ea..0000000 --- a/src/client/client.c +++ /dev/null @@ -1,338 +0,0 @@ -#include <assert.h> -#include <stdio.h> -#include <stdlib.h> - -#include <fcntl.h> -#include <sys/types.h> -#include <sys/time.h> - -#ifndef __WIN32__ -#include <sys/ioctl.h> -#include <sys/socket.h> -#include <sys/select.h> -#else /* __WIN32__ */ -#include <io.h> -#include <winsock2.h> -#endif /* __WIN32__ */ - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "proto.h" - -#include "client.h" - -#include "analyze.h" -#include "world.h" -#include "buffer.h" - -#include "udp.h" - -static sock_udp_t *sock_server_udp; - -static list_t *listRecvMsg; - -static buffer_t *clientRecvBuffer; -static buffer_t *clientSendBuffer; - -static my_time_t lastPing; -static my_time_t lastPingServerAlive; - -#ifdef SUPPORT_TRAFFIC -static my_time_t lastTraffic; -static int traffic_down; -static int traffic_up; -#endif /* SUPPORT_TRAFFIC */ - -typedef struct proto_cmd_client_struct { - char *name; - int len; - void (*fce_proto) (char *msg); -} proto_cmd_client_t; - -static proto_cmd_client_t proto_cmd_list[] = { - {.name = "error",.len = 5,.fce_proto = proto_recv_error_client}, - {.name = "init",.len = 4,.fce_proto = proto_recv_init_client}, - {.name = "event",.len = 5,.fce_proto = proto_recv_event_client}, - {.name = "newtux",.len = 6,.fce_proto = proto_recv_newtux_client}, - {.name = "del",.len = 3,.fce_proto = proto_recv_del_client}, - {.name = "additem",.len = 7,.fce_proto = proto_recv_additem_client}, - {.name = "shot",.len = 4,.fce_proto = proto_recv_shot_client}, - {.name = "kill",.len = 4,.fce_proto = proto_recv_kill_client}, - {.name = "module",.len = 6,.fce_proto = proto_recv_module_client}, - {.name = "chat",.len = 4,.fce_proto = proto_recv_chat_client}, - {.name = "ping",.len = 4,.fce_proto = proto_recv_ping_client}, - {.name = "end",.len = 3,.fce_proto = proto_recv_end_client}, - {.name = "",.len = 0,.fce_proto = NULL} -}; - -static proto_cmd_client_t *findCmdProto(char *msg) -{ - int len; - int i; - - len = strlen(msg); - - for (i = 0; proto_cmd_list[i].len != 0; i++) { - proto_cmd_client_t *thisCmd; - - thisCmd = &proto_cmd_list[i]; - - if (len >= thisCmd->len && - strncmp(msg, thisCmd->name, thisCmd->len) == 0) { - return thisCmd; - } - } - - return NULL; -} - -static int initUdpClient(char *ip, int port) -{ - sock_server_udp = sock_udp_connect(ip, port); - - if (sock_server_udp == NULL) { - return -1; - } - - debug("Connected to game server [%s]:[%d]", ip, port); - - return 0; -} - -int client_init(char *ip, int port) -{ - char name[STR_NAME_SIZE]; - int ret; - - listRecvMsg = list_new(); - lastPing = timer_get_current_time(); - lastPingServerAlive = timer_get_current_time(); - -#ifdef SUPPORT_TRAFFIC - lastTraffic = timer_get_current_time(); - traffic_down = 0; - traffic_up = 0; -#endif /* SUPPORT_TRAFFIC */ - - clientRecvBuffer = buffer_new(CLIENT_BUFFER_LIMIT); - clientSendBuffer = buffer_new(CLIENT_BUFFER_LIMIT); - - ret = initUdpClient(ip, port); - - if (ret < 0) { - return -1; - } - - public_server_get_setting_name_right(name); - proto_send_hello_client(name); - - return 0; -} - -static void errorWithServer() -{ - error("Game server is not responding"); - analyze_set_msg(_("Unable to connect to the game server")); - world_do_end(); -} - -void client_send(char *msg) -{ - int ret; - - assert(msg != NULL); - - ret = -1; - - if (isParamFlag("--send")) { - debug("Sending data: %s", msg); - } - -#ifdef SUPPORT_TRAFFIC - traffic_up += strlen(msg); -#endif /* SUPPORT_TRAFFIC */ - - if (sock_server_udp != NULL) { - ret = sock_udp_write(sock_server_udp, sock_server_udp, msg, strlen(msg)); - } - - if (ret < 0) { - errorWithServer(); - return; - } -} - -static int server_eventSelect() -{ - char buffer[STR_PROTO_SIZE]; - int ret; - - memset(buffer, 0, STR_PROTO_SIZE); - ret = -1; - - if (sock_server_udp != NULL) { - ret = sock_udp_read(sock_server_udp, sock_server_udp, buffer, STR_PROTO_SIZE - 1); - } - - if (ret < 0) { - errorWithServer(); - return ret; - } - -#ifdef SUPPORT_TRAFFIC - traffic_down += ret; -#endif /* SUPPORT_TRAFFIC */ - - list_add(listRecvMsg, strdup(buffer)); - - return ret; -} - -static void client_eventWorkRecvList() -{ - proto_cmd_client_t *protoCmd; - char *line; - int i; - - /* processing of an event received from a game server */ - - assert(listRecvMsg != NULL); - - for (i = 0; i < listRecvMsg->count; i++) { - line = (char *) listRecvMsg->list[i]; - protoCmd = findCmdProto(line); - - if (isParamFlag("--recv")) { - debug("Recieved data: %s", line); - } - - if (protoCmd != NULL) { - protoCmd->fce_proto(line); - lastPingServerAlive = timer_get_current_time(); - } - } - - list_destroy_item(listRecvMsg, free); - listRecvMsg = list_new(); -} - -static void eventPingServer() -{ - my_time_t currentTime; - - currentTime = timer_get_current_time(); - - if (currentTime - lastPing > CLIENT_TIMEOUT) { - proto_send_ping_client(); - lastPing = timer_get_current_time(); - } -} - -static bool_t isServerAlive() -{ - my_time_t currentTime; - - currentTime = timer_get_current_time(); - - if (currentTime - lastPingServerAlive > SERVER_TIMEOUT_ALIVE) { - return FALSE; - } - - return TRUE; -} - -static void selectClientSocket() -{ - fd_set readfds; - struct timeval tv; - int max_fd; - int sock; - bool_t isNext; - - max_fd = 0; - sock = 0; - - if (sock_server_udp != NULL) { - if (isServerAlive() == FALSE) { - errorWithServer(); - return; - } - } - - do { - isNext = FALSE; - - tv.tv_sec = 0; - tv.tv_usec = 0; - - FD_ZERO(&readfds); - - if (sock_server_udp != NULL) { - sock = sock_server_udp->sock; - } - - FD_SET(sock, &readfds); - max_fd = sock; - select(max_fd + 1, &readfds, (fd_set *) NULL, (fd_set *) NULL, &tv); - - if (FD_ISSET(sock, &readfds)) { - if (server_eventSelect() > 0) { - isNext = TRUE; - } - } - - } while (isNext == TRUE); -} - -#ifdef SUPPORT_TRAFFIC -static void eventTraffic() -{ - my_time_t currentTime; - - currentTime = timer_get_current_time(); - - if (currentTime - lastTraffic > 5000) { - lastTraffic = currentTime; - - debug("Traffic: down [%d]/up [%d]", traffic_down, traffic_up); - - traffic_down = 0; - traffic_up = 0; - } -} -#endif /* SUPPORT_TRAFFIC */ - -void client_event() -{ -#ifdef SUPPORT_TRAFFIC - eventTraffic(); -#endif /* SUPPORT_TRAFFIC */ - - eventPingServer(); - selectClientSocket(); - client_eventWorkRecvList(); -} - -static void quitUdpClient() -{ - assert(sock_server_udp != NULL); - sock_udp_close(sock_server_udp); - - debug("Closing connection to game server"); -} - -void client_quit() -{ - proto_send_end_client(); - - assert(listRecvMsg != NULL); - - list_destroy_item(listRecvMsg, free); - buffer_destroy(clientRecvBuffer); - buffer_destroy(clientSendBuffer); - - if (sock_server_udp != NULL) { - quitUdpClient(); - } -} diff --git a/src/client/client.h b/src/client/client.h deleted file mode 100644 index ce41ffb..0000000 --- a/src/client/client.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef MY_CLIENT_H -#define MY_CLIENT_H - -#include "main.h" - -#define CLIENT_TIMEOUT 1000 -#define SERVER_TIMEOUT_ALIVE 5000 - -#define CLIENT_BUFFER_LIMIT 4096 - -extern int client_init(char *ip, int port); -extern void client_send(char *msg); -extern void client_event(); -extern void client_quit(); - -#endif /* MY_CLIENT_H */ diff --git a/src/client/config.c b/src/client/config.c deleted file mode 100644 index 130fcdf..0000000 --- a/src/client/config.c +++ /dev/null @@ -1,227 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "homeDirector.h" -#include "textFile.h" -#include "configFile.h" -#include "config.h" - -typedef struct setting_int_struct { - int key; /* identification key */ - char *param; /* parameter of the program */ - char *var; /* variable in the config file */ - int type; /* type of the data - string/number */ - int value_int; /* numeric data */ - char *value_str; /* textual data */ -} config_t; - -#define CONFIG_TYPE_INT 1 -#define CONFIG_TYPE_STR 2 - -static config_t config_list[] = -{ - { .key=CFG_NAME_RIGHT, .var="NAME_PLAYER_RIGHT", .param="--name-right", .type=CONFIG_TYPE_STR, .value_str="name1" }, - { .key=CFG_NAME_LEFT, .var="NAME_PLAYER_LEFT", .param="--name-left", .type=CONFIG_TYPE_STR, .value_str="name2" }, - { .key=CFG_COUNT_ROUND, .var="COUNT_ROUND", .param="--count", .type=CONFIG_TYPE_INT, .value_int=15 }, - { .key=CFG_AI, .var="AI", .param="--ai", .type=CONFIG_TYPE_INT, .value_int=0 }, - { .key=CFG_MUSIC, .var="MUSIC", .param="--music", .type=CONFIG_TYPE_INT, .value_int=1 }, - { .key=CFG_SOUND, .var="SOUND", .param="--sound", .type=CONFIG_TYPE_INT, .value_int=1 }, - { .key=CFG_ARENA, .var="ARENA", .param="--arena", .type=CONFIG_TYPE_STR, .value_str="FAGN" }, - - { .key=CFG_GUN_DUAL_SIMPLE, .var="GUN_DUAL_SIMPLE", .param="--gun-dual-simple", .type=CONFIG_TYPE_INT, .value_int=1 }, - { .key=CFG_GUN_SCATTER, .var="GUN_SCATTER", .param="--gun-scatter", .type=CONFIG_TYPE_INT, .value_int=1 }, - { .key=CFG_GUN_TOMMY, .var="GUN_TOMMY", .param="--gun-tommy", .type=CONFIG_TYPE_INT, .value_int=1 }, - { .key=CFG_GUN_LASSER, .var="GUN_LASSER", .param="--gun-lasser", .type=CONFIG_TYPE_INT, .value_int=1 }, - { .key=CFG_GUN_MINE, .var="GUN_MINE", .param="--gun-mine", .type=CONFIG_TYPE_INT, .value_int=1 }, - { .key=CFG_GUN_BOMBBALL, .var="GUN_BOMBBALL", .param="--gun-bombball", .type=CONFIG_TYPE_INT, .value_int=1 }, - - { .key=CFG_BONUS_SPEED, .var="BONUS_SPEED", .param="--bonus-speed", .type=CONFIG_TYPE_INT, .value_int=1 }, - { .key=CFG_BONUS_SHOT, .var="BONUS_SHOT", .param="--bonus-shot", .type=CONFIG_TYPE_INT, .value_int=1 }, - { .key=CFG_BONUS_TELEPORT, .var="BONUS_TELEPORT", .param="--bonus-teleport", .type=CONFIG_TYPE_INT, .value_int=1 }, - { .key=CFG_BONUS_GHOST, .var="BONUS_GHOST", .param="--bonus-ghost", .type=CONFIG_TYPE_INT, .value_int=1 }, - { .key=CFG_BONUS_4X, .var="BONUS_4X", .param="--bonus-4x", .type=CONFIG_TYPE_INT, .value_int=1 }, - { .key=CFG_BONUS_HIDDEN, .var="BONUS_HIDDEN", .param="--bonus-hidden", .type=CONFIG_TYPE_INT, .value_int=1 }, - - { .key=CFG_GAME_TYPE, .var="GAME_TYPE", .param="--game-type", .type=CONFIG_TYPE_STR, .value_str="none" }, - { .key=CFG_NET_IP, .var="NET_IP", .param="--ip", .type=CONFIG_TYPE_STR, .value_str="127.0.0.1" }, - { .key=CFG_NET_PORT, .var="NET_PORT", .param="--port", .type=CONFIG_TYPE_STR, .value_str="6800" } -}; - -static textFile_t *config_file; - -static config_t *find_config(int key) -{ - int i; - - for (i = 0; i < CONFIG_LIST_COUNT; i++) { - if (config_list[i].key == key) { - return &config_list[i]; - } - } - - return NULL; -} - -static void check_param() -{ - int i; - - for (i = 0; i < CONFIG_LIST_COUNT; i++) { - char *str; - - str = getParam(config_list[i].param); - - if (str != NULL) { - if (config_list[i].type == CONFIG_TYPE_INT) { - config_list[i].value_int = atoi(str); - } else { - if (config_list[i].value_str != NULL) { - free(config_list[i].value_str); - } - - config_list[i].value_str = strdup(str); - } - } - } -} - -int config_init() -{ - config_load(); - check_param(); - - return 0; -} - -void config_load() -{ - char path[STR_PATH_SIZE]; - char val[STR_SIZE]; - int i; - - sprintf(path, "%s%stuxanci.conf", home_director_get(), PATH_SEPARATOR); - - config_file = text_file_load(path); - - if (config_file == NULL) { - error("Unable to load config file [%s]", path); - debug("Creating config file [%s]", path); - - config_file = text_file_new(path); - } - - if (config_file == NULL) { - error("Unable to create config file [%s]", path); - return; - } - - for (i = 0; i < CONFIG_LIST_COUNT; i++) { - if (config_list[i].type == CONFIG_TYPE_INT) { - char str[STR_SIZE]; - - sprintf(str, "%d", config_list[i].value_int); - loadValueFromConfigFile(config_file, config_list[i].var, val, STR_SIZE, str); - config_list[i].value_int = atoi(val); - } else { - loadValueFromConfigFile(config_file, config_list[i].var, val, STR_SIZE, config_list[i].value_str); - config_list[i].value_str = strdup(val); - } - } -} - -void config_save() -{ - int i; - - if (config_file == NULL) { - return; - } - - for (i = 0; i < CONFIG_LIST_COUNT; i++) { - if (config_list[i].type == CONFIG_TYPE_INT) { - char str[STR_SIZE]; - - sprintf(str, "%d", config_list[i].value_int); - setValueInConfigFile(config_file, config_list[i].var, str); - } else { - setValueInConfigFile(config_file, config_list[i].var, config_list[i].value_str); - } - } - - text_file_save(config_file); -} - -int config_get_int_value(int key) -{ - config_t *tmp; - - tmp = find_config(key); - - assert(tmp != NULL); - assert(tmp->type == CONFIG_TYPE_INT); - - return tmp->value_int; -} - -char *config_get_str_value(int key) -{ - config_t *tmp; - - tmp = find_config(key); - - assert(tmp != NULL); - assert(tmp->type == CONFIG_TYPE_STR); - - return tmp->value_str; -} - -void config_set_int_value(int key, int n) -{ - config_t *tmp; - - tmp = find_config(key); - - assert(tmp != NULL); - assert(tmp->type == CONFIG_TYPE_INT); - - tmp->value_int = n; -} - -void config_set_str_value(int key, char *str) -{ - config_t *tmp; - - tmp = find_config(key); - - assert(tmp != NULL); - assert(tmp->type == CONFIG_TYPE_STR); - - if (tmp->value_str != NULL) { - free(tmp->value_str); /* has to be allocated */ - } - - tmp->value_str = strdup(str); -} - -int config_quit() -{ - int i; - - config_save(); - - if (config_file != NULL) { - text_file_destroy(config_file); - } - - for (i = 0; i < CONFIG_LIST_COUNT; i++) { - if (config_list[i].type == CONFIG_TYPE_STR && config_list[i].value_str != NULL) { - free(config_list[i].value_str); - } - } - - return 0; -} diff --git a/src/client/config.h b/src/client/config.h deleted file mode 100644 index 46e0da5..0000000 --- a/src/client/config.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef CONFIG_H -#define CONFIG_H - -#define CFG_NAME_RIGHT 1 -#define CFG_NAME_LEFT 2 -#define CFG_COUNT_ROUND 3 -#define CFG_AI 4 -#define CFG_MUSIC 5 -#define CFG_SOUND 6 -#define CFG_ARENA 7 - -#define CFG_GUN_DUAL_SIMPLE 8 -#define CFG_GUN_SCATTER 9 -#define CFG_GUN_TOMMY 10 -#define CFG_GUN_LASSER 11 -#define CFG_GUN_MINE 12 -#define CFG_GUN_BOMBBALL 13 - - -#define CFG_BONUS_SPEED 14 -#define CFG_BONUS_SHOT 15 -#define CFG_BONUS_TELEPORT 16 -#define CFG_BONUS_GHOST 17 -#define CFG_BONUS_4X 18 -#define CFG_BONUS_HIDDEN 19 - -#define CFG_GAME_TYPE 20 -#define CFG_NET_IP 21 -#define CFG_NET_PORT 22 - -#define CONFIG_LIST_COUNT 22 - -extern int config_init(); -extern void config_load(); -extern void config_save(); -extern int config_get_int_value(int key); -extern char *config_get_str_value(int key); -extern void config_set_int_value(int key, int n); -extern void config_set_str_value(int key, char *str); -extern int config_quit(); - -#endif /* CONFIG_H */ diff --git a/src/client/configFile.c b/src/client/configFile.c deleted file mode 100644 index 9d6d65b..0000000 --- a/src/client/configFile.c +++ /dev/null @@ -1,152 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "configFile.h" - -int isYesOrNO(char *s) -{ - if (s[0] == 'Y' || s[0] == 'y') { - return 1; - } else { - return 0; - } -} - -char *getYesOrNo(int n) -{ - return (n != 0 ? "YES" : "NO"); -} - -int getValue(char *line, char *env, char *val, int len) -{ - char *offset_env; - char *offset_val_begin; - char *offset_val_end; - char clone_env[STR_SIZE]; - int val_len; - - strcpy(clone_env, env); - - offset_env = strstr(line, clone_env); - - if (offset_env == NULL) { - return -1; - } - - offset_val_begin = strchr(offset_env, '"'); - - if (offset_val_begin == NULL) { - return -1; - } - - offset_val_end = strchr(offset_val_begin + 1, '"'); - - if (offset_val_end == NULL) { - return -1; - } - - val_len = (int) (offset_val_end - (offset_val_begin + 1)); - - if (val_len > len - 1) { - val_len = len - 1; - } - - memset(val, 0, len); - memcpy(val, offset_val_begin + 1, val_len); - - return 0; -} - -char *setValue(char *line, char *env, char *val) -{ - char *offset_env; - char *offset_val_begin; - char *offset_val_end; - char clone_env[STR_SIZE]; - char clone[STR_SIZE]; - - /*strcpy(clone_env, " ");*/ - strcpy(clone_env, env); - - offset_env = strstr(line, clone_env); - - if (offset_env == NULL) { - return NULL; - } - - offset_val_begin = strchr(offset_env, '"'); - - if (offset_val_begin == NULL) { - return NULL; - } - - offset_val_end = strchr(offset_val_begin + 1, '"'); - - if (offset_val_end == NULL) { - return NULL; - } - - memset(clone, 0, STR_SIZE); - strncpy(clone, line, (int) ((offset_val_begin - line) + 1)); - strcat(clone, val); - strcat(clone, offset_val_end); - - return strdup(clone); -} - -int getValueInConfigFile(textFile_t * textFile, char *env, char *val, int len) -{ - int i; - char *line; - - for (i = 0; i < textFile->text->count; i++) { - line = (char *) (textFile->text->list[i]); - - if (strncmp(line, env, strlen(env)) == 0) { - return getValue(line, env, val, len); - } - } - - return -1; -} - -int setValueInConfigFile(textFile_t * textFile, char *env, char *val) -{ - int i; - char *line; - char *ret; - - for (i = 0; i < textFile->text->count; i++) { - line = (char *) (textFile->text->list[i]); - - if (strncmp(line, env, strlen(env)) == 0) { - ret = setValue(line, env, val); - - if (ret != NULL) { - list_del_item(textFile->text, i, free); - list_ins(textFile->text, i, ret); - - return 0; - } - } - } - - return -1; -} - -void loadValueFromConfigFile(textFile_t * textFile, char *env, char *val, int len, char *butVal) -{ - strcpy(val, butVal); - - if (getValueInConfigFile(textFile, env, val, len) != 0) { - char line[STR_SIZE]; - - sprintf(line, "%s=\"%s\"", env, butVal); - list_add(textFile->text, strdup(line)); - - debug("Expanding config file [%s]", line); - } -} diff --git a/src/client/configFile.h b/src/client/configFile.h deleted file mode 100644 index fc56899..0000000 --- a/src/client/configFile.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef CONFIGFILE_H -#define CONFIGFILE_H - -#include "main.h" -#include "textFile.h" - -extern int isYesOrNO(char *s); -extern char *getYesOrNo(int n); - -extern int getValue(char *line, char *env, char *val, int len); -extern char *setValue(char *line, char *env, char *val); - -extern int getValueInConfigFile(textFile_t *textFile, char *env, char *val, int len); -extern int setValueInConfigFile(textFile_t *textFile, char *env, char *val); - -extern void loadValueFromConfigFile(textFile_t *textFile, char *env, char *val, - int len, char *butVal); - -#endif /* CONFIGFILE_H */ diff --git a/src/client/control.c b/src/client/control.c deleted file mode 100644 index bfc2428..0000000 --- a/src/client/control.c +++ /dev/null @@ -1,84 +0,0 @@ -#include <SDL.h> -#include <limits.h> -#include <assert.h> - -#include "main.h" -#include "control.h" - -control_t *control_new(SDLKey arg_up, SDLKey arg_right, SDLKey arg_left, - SDLKey arg_down, SDLKey arg_shot, SDLKey arg_switch) -{ - control_t *tmp; - - tmp = malloc(sizeof(control_t)); - memset(tmp, 0, sizeof(control_t)); - tmp->key[CONTROL_UP] = arg_up; - tmp->key[CONTROL_RIGHT] = arg_right; - tmp->key[CONTROL_LEFT] = arg_left; - tmp->key[CONTROL_DOWN] = arg_down; - tmp->key[CONTROL_SHOT] = arg_shot; - tmp->key[CONTROL_SWITCH] = arg_switch; - - return tmp; -} - -int control_get_key_route(control_t *my_control) -{ - Uint8 *map; - SDLKey ret_key; - int z; - int i; - - assert(my_control != NULL); - - ret_key = CONTROL_NONE; - - map = SDL_GetKeyState(NULL); - - for (i = 0; i < CONTROL_KEY_COUNT_ROUTE; i++) { - if (map[my_control->key[i]] == SDL_PRESSED) { - my_control->count[i]++; - } else { - my_control->count[i] = 0; - } - } - - z = INT_MAX; - - for (i = 0; i < CONTROL_KEY_COUNT_ROUTE; i++) { - if (my_control->count[i] > 0 && - my_control->count[i] < z && - map[my_control->key[i]] == SDL_PRESSED) { - z = my_control->count[i]; - ret_key = i; - } - } - - return ret_key; -} - -int control_get_key_action(control_t *my_control) -{ - Uint8 *map; - - assert(my_control != NULL); - - map = SDL_GetKeyState(NULL); - - if (map[my_control->key[CONTROL_SHOT]] == SDL_PRESSED) { - return CONTROL_SHOT; - } - - if (map[my_control->key[CONTROL_SWITCH]] == SDL_PRESSED) { - return CONTROL_SWITCH; - } - - return CONTROL_NONE; -} - -void control_destroy(control_t *my_control) -{ - assert(my_control != NULL); - - free(my_control); -} diff --git a/src/client/control.h b/src/client/control.h deleted file mode 100644 index 6b08189..0000000 --- a/src/client/control.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef CONTROL_H -#define CONTROL_H - -#define CONTROL_NONE -1 -#define CONTROL_UP 0 -#define CONTROL_RIGHT 1 -#define CONTROL_LEFT 2 -#define CONTROL_DOWN 3 -#define CONTROL_SHOT 4 -#define CONTROL_SWITCH 5 - -#define CONTROL_KEY_COUNT_ROUTE 4 -#define CONTROL_KEY_COUNT 6 - -typedef struct control_struct { - SDLKey key[CONTROL_KEY_COUNT]; - int count[CONTROL_KEY_COUNT]; -} control_t; - -extern control_t *control_new(SDLKey arg_up, SDLKey arg_right, - SDLKey arg_left, SDLKey arg_down, - SDLKey arg_shot, SDLKey arg_switch); -extern int control_get_key_route(control_t *my_control); -extern int control_get_key_action(control_t *my_control); -extern void control_destroy(control_t *my_control); - -#endif /* CONTROL_H */ diff --git a/src/client/font.c b/src/client/font.c deleted file mode 100644 index d052cbb..0000000 --- a/src/client/font.c +++ /dev/null @@ -1,156 +0,0 @@ -#include "main.h" -#include "interface.h" -#include "font.h" -#include "image.h" -#include "fontConfig.h" - -static TTF_Font *g_font; -static int fontSize; - -static bool_t isFontInit = FALSE; - -bool_t font_is_inicialized() -{ - return isFontInit; -} - -void font_init() -{ - char *arg[] = {":lang=he:outline=true:style=Book", "family", "style", "weight", "file", NULL}; - char *font_file; - font_config_t *font_list; - int res; - - assert(interface_is_inicialized() == TRUE); - - res = fontconfig_init(); - - if (res != 0) { - return; - } - - font_list = fontconfig_find(arg); -/* - int i; - for(i = 0 ; font_list[i].path != NULL ; i++ ) - { - printf("path[%d]=%s\nflag[%d]=%s\n\n", i, font_list[i].path, i, font_list[i].flag); - } -*/ - if (font_list == NULL) { - error("Unable to locate a font"); - return; - } - - font_file = strdup(font_list[0].path); - fontSize = FONT_SIZE; - - fontconfig_del_list(font_list); - fontconfig_quit(); - - if (TTF_Init() == -1) { - free(font_file); - error("SDL: %s", SDL_GetError()); - return; - } - - accessExistFile(font_file); - - g_font = TTF_OpenFont(font_file, fontSize); - TTF_SetFontStyle(g_font, TTF_STYLE_NORMAL); - - debug("Loading font [%s]", font_file); - - free(font_file); - isFontInit = TRUE; -} - -/* - * Shows text *string on coordinates [x,y] with RGB color - */ -void font_draw(char *string, int x, int y, int r, int g, int b) -{ - SDL_Surface *text; - image_t *image; - SDL_Color font_color = {r, g, b, SDL_ALPHA_OPAQUE}; - - assert( string != NULL ); - - text = TTF_RenderUTF8_Blended(g_font, string, font_color); - - /* because if string=="" TTF_RenderUTF8_Blended returns NULL */ - if (text != NULL) { - image = image_new(text); - image_draw(image, x, y, 0, 0, image->w, image->h); - image_destroy(image); - } -} - -void font_drawMaxSize(char *s, int x, int y, int w, int h, int r, int g, int b) -{ - SDL_Rect src_rect, dst_rect; - SDL_Surface *text; - image_t *i; - SDL_Color font_color = {r, g, b, SDL_ALPHA_OPAQUE}; - int my_w, my_h; - - assert(s != NULL); - - text = TTF_RenderUTF8_Blended(g_font, s, font_color); - - my_w = text->w; - - if (my_w > w) { - my_w = w; - } - - my_h = text->h; - - if (my_w > w) { - my_h = h; - } - - src_rect.x = 0; - src_rect.y = 0; - src_rect.w = my_w; - src_rect.h = my_h; - - dst_rect.x = x; - dst_rect.y = y; - - i = image_new(text); - - /* possibly broken */ - image_draw(i, x, y, 0, 0, my_w, my_h); - image_destroy(i); -} - -/* - * Returns size of the font - */ -int font_get_size() -{ - return fontSize; -} - -void font_text_size(char *s, int *w, int *h) -{ - assert(s != NULL); - assert(w != NULL); - assert(h != NULL); - - TTF_SizeUTF8(g_font, s, w, h); -} - -/* - * Frees font from memory - */ -void font_quit() -{ - TTF_CloseFont(g_font); - TTF_Quit(); - - debug("Unloading font"); - - isFontInit = FALSE; -} diff --git a/src/client/font.h b/src/client/font.h deleted file mode 100644 index 8ee2cf0..0000000 --- a/src/client/font.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef FONT_H -#define FONT_H - -#include <SDL_ttf.h> -#include <assert.h> -#include "main.h" - -#define COLOR_WHITE 255, 255, 255 -#define COLOR_BLACK 0, 0, 0 - -#define COLOR_RED 255, 0, 0 -#define COLOR_GREEN 0, 255, 0 -#define COLOR_BLUE 0, 0, 255 -#define COLOR_YELLOW 255, 255, 0 - -#define FONT_SIZE 16 - -extern bool_t font_is_inicialized(); -extern void font_init(); -extern void font_draw(char *s, int x, int y, int r, int g, int b); -extern void font_drawMaxSize(char *s, int x, int y, int w, int h, - int r, int g, int b); -extern int font_get_size(); -extern void font_text_size(char *s, int *w, int *h); -extern void font_quit(); - -#endif /* FONT_H */ diff --git a/src/client/fontConfig.c b/src/client/fontConfig.c deleted file mode 100644 index b0e0741..0000000 --- a/src/client/fontConfig.c +++ /dev/null @@ -1,102 +0,0 @@ -#include <stdio.h> -#include <unistd.h> -#include <stdlib.h> -#include <string.h> -#include <fontconfig/fontconfig.h> - -#include "main.h" -#include "fontConfig.h" - -int fontconfig_init() -{ - int res; - - res = FcInit(); - - if (res == 0) { - error("Unable to init fontconfig library"); - return 1; - } - - return 0; -} - -font_config_t *fontconfig_find(char **arg) -{ - FcObjectSet *os; - FcFontSet *fs; - FcPattern *pat; - font_config_t *ret; - int i; - - os = NULL; - ret = NULL; - - for (i = 0; arg[i] != NULL; i++) { - if (i == 0) { - pat = FcNameParse((FcChar8 *) arg[i]); - } - - if (os == NULL) { - os = FcObjectSetCreate(); - } - - FcObjectSetAdd(os, arg[i]); - } - - if (os == NULL) { - os = FcObjectSetBuild(FC_FAMILY, FC_STYLE, (char *) 0); - } - - fs = FcFontList(0, pat, os); - FcObjectSetDestroy(os); - - if (pat != NULL) { - FcPatternDestroy(pat); - } - - if (fs != NULL) { - int j; - - ret = malloc((fs->nfont + 1) * sizeof(font_config_t)); - - for (j = 0; j < fs->nfont; j++) { - FcChar8 *font; - FcChar8 *file; - - font = FcNameUnparse(fs->fonts[j]); - - if (FcPatternGetString(fs->fonts[j], FC_FILE, 0, &file) == FcResultMatch) { - ret[j].path = strdup((char *) file); - } - - ret[j].flag = strdup((char *) font); - free(font); - } - - ret[fs->nfont].path = NULL; - ret[fs->nfont].flag = NULL; - - FcFontSetDestroy(fs); - } - - return ret; -} - -void fontconfig_del_list(font_config_t *list) -{ - int i; - - for (i = 0; list[i].path != NULL; i++) { - free(list[i].path); - free(list[i].flag); - } - - free(list); -} - -int fontconfig_quit() -{ - FcFini(); - return 0; -} diff --git a/src/client/fontConfig.h b/src/client/fontConfig.h deleted file mode 100644 index 09e75a3..0000000 --- a/src/client/fontConfig.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef FONT_CONFIG_H -#define FONT_CONFIG_H - -typedef struct font_config_struct { - char *path; - char *flag; -} font_config_t; - -extern int fontconfig_init(); -extern font_config_t *fontconfig_find(char **arg); -extern void fontconfig_del_list(font_config_t *list); -extern int fontconfig_quit(); - -#endif /* FONT_CONFIG_H */ diff --git a/src/client/game.c b/src/client/game.c deleted file mode 100644 index 2481cee..0000000 --- a/src/client/game.c +++ /dev/null @@ -1,127 +0,0 @@ -#include <time.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <signal.h> -#include <unistd.h> -#include <assert.h> -#include <sys/stat.h> - -#include "main.h" -#include "tux.h" -#include "homeDirector.h" -#include "item.h" -#include "shot.h" -#include "arenaFile.h" -#include "config.h" - -#include "image.h" -#include "layer.h" -#include "interface.h" -#include "screen.h" -#include "font.h" -#include "settingKeys.h" -#include "panel.h" -#include "radar.h" -#include "mouse_buffer.h" - -#ifndef NO_SOUND -#include "audio.h" -#include "sound.h" -#include "music.h" -#endif - -#include "world.h" -#include "mainMenu.h" -#include "analyze.h" -#include "setting.h" -#include "settingKeys.h" -#include "gameType.h" -#include "downArena.h" -#include "choiceArena.h" -#include "table.h" -#include "credits.h" -#include "browser.h" - -static void initGame() -{ - home_director_create(); - - mouse_buffer_init(); - interface_init(); - font_init(); - layer_init(); - image_init(); -#ifndef NO_SOUND - audio_init(); - sound_init(); - music_init(); -#endif /* NO_SOUND */ - screen_init(); - arena_file_init(); - tux_init(); - item_init(); - shot_init(); - panel_init(); - world_init(); - config_init(); - - main_menu_init(); - analyze_init(); - choice_arena_init(); - setting_init(); - setting_key_int(); - game_type_init(); - down_arena_init(); - scredits_init(); - table_init(); - browser_init(); -} - -void game_quit() -{ - mouse_buffer_quit(); - interface_quit(); - - main_menu_quit(); - analyze_quit(); - setting_quit(); - setting_key_quit(); - game_type_quit(); - down_arena_quit(); - choice_arena_quit(); - scredits_quit(); - table_quit(); - browser_quit(); - config_quit(); - - layer_quit(); - font_quit(); - screen_quit(); - arena_file_quit(); - item_quiy(); - tux_quit(); - shot_quit(); - panel_quit(); - world_quit(); - image_quit(); -#ifndef NO_SOUND - sound_quit(); - music_quit(); - audio_quit(); -#endif /* NO_SOUND */ - - debug("Shutting down the game"); - - exit(0); -} - -void game_start() -{ - initGame(); - - screen_start("mainMenu"); - - interface_event(); - game_quit(); -} diff --git a/src/client/game.h b/src/client/game.h deleted file mode 100644 index e5f2d86..0000000 --- a/src/client/game.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef GAME_H -#define GAME_H - -extern void game_quit(); -extern void game_start(); - -#endif /* GAME_H */ diff --git a/src/client/hotKey.c b/src/client/hotKey.c deleted file mode 100644 index 5471101..0000000 --- a/src/client/hotKey.c +++ /dev/null @@ -1,149 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "myTimer.h" - -#include "interface.h" -#include "hotKey.h" - -typedef struct hotKey_struct { - SDLKey key; - bool_t active; - void (*handler) (); -} hotKey_t; - -static list_t *listHotKey; -static my_time_t lastActive; - -static hotKey_t *newHotKey(SDLKey key, void (*handler) ()) -{ - hotKey_t *new; - - new = malloc(sizeof(hotKey_t)); - new->key = key; - new->active = TRUE; - new->handler = handler; - - return new; -} - -static void destroyHotKey(hotKey_t *hotkey) -{ - free(hotkey); -} - -static hotKey_t *findHotkey(SDLKey key) -{ - int i; - - for (i = 0; i < listHotKey->count; i++) { - hotKey_t *this; - - this = (hotKey_t *) listHotKey->list[i]; - - if (this->key == key) { - return this; - } - } - - return NULL; -} - -void hot_key_init() -{ - listHotKey = list_new(); - lastActive = timer_get_current_time(); -} - -void hot_key_register(SDLKey key, void (*handler) ()) -{ - hotKey_t *hotkey; -/* - if (findHotkey(key) != NULL) { - assert(!"Conflict with register key"); - } -*/ - hotkey = newHotKey(key, handler); - list_ins(listHotKey, 0, hotkey); -} - -void hot_key_unregister(SDLKey key) -{ - hotKey_t *hotkey; - int my_index; - - hotkey = findHotkey(key); - - if (hotkey == NULL) { - fatal("Unregistering not registered hotkey"); - } - - my_index = list_search(listHotKey, hotkey); - assert(my_index != -1); - list_del_item(listHotKey, my_index, destroyHotKey); -} - -void hot_key_enable(SDLKey key) -{ - hotKey_t *hotkey; - - hotkey = findHotkey(key); - - if (hotkey == NULL) { - fatal("Enabling not registered hotkey"); - } - - lastActive = timer_get_current_time(); - hotkey->active = TRUE; -} - -void hot_key_disable(SDLKey key) -{ - hotKey_t *hotkey; - - hotkey = findHotkey(key); - - if (hotkey == NULL) { - fatal("Disabling not registered hotkey"); - } - - lastActive = timer_get_current_time(); - hotkey->active = FALSE; -} - -void hot_key_event() -{ - my_time_t currentTime; - Uint8 *mapa; - int i; - - currentTime = timer_get_current_time(); - - if (currentTime - lastActive < HOTKEY_ACTIVE_INTERVAL) { - return; - } - - mapa = SDL_GetKeyState(NULL); - - for (i = 0; i < listHotKey->count; i++) { - hotKey_t *this; - - this = (hotKey_t *) listHotKey->list[i]; - - if (mapa[this->key] == SDL_PRESSED && this->active == TRUE) { - lastActive = timer_get_current_time(); - /*printf("hotKey = %d\n", this->key);*/ - this->handler(); - - return; - } - } -} - -void hot_key_quit() -{ - list_destroy_item(listHotKey, destroyHotKey); -} diff --git a/src/client/hotKey.h b/src/client/hotKey.h deleted file mode 100644 index 51b027f..0000000 --- a/src/client/hotKey.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef HOTKEY_H -#define HOTKEY_H - -#define HOTKEY_ACTIVE_INTERVAL 500 - -extern void hot_key_init(); -extern void hot_key_register(SDLKey key, void (*handler) ()); -extern void hot_key_unregister(SDLKey key); -extern void hot_key_enable(SDLKey key); -extern void hot_key_disable(SDLKey key); -extern void hot_key_event(); -extern void hot_key_quit(); - -#endif /* HOTKEY_H */ diff --git a/src/client/image.c b/src/client/image.c deleted file mode 100644 index cdd7c9b..0000000 --- a/src/client/image.c +++ /dev/null @@ -1,323 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "storage.h" - -#include "interface.h" -#include "image.h" - -static list_t *listStorage; - -static bool_t isImageDataInit = FALSE; - -bool_t image_is_inicialized() -{ - return isImageDataInit; -} - -/* - * Initialization of global list of images - */ -void image_init() -{ - assert(interface_is_inicialized() == TRUE); - - debug("Initializing image database"); - - listStorage = storage_new(); - isImageDataInit = TRUE; -} - -static SDL_Surface *loadImage(const char *filename, int alpha) -{ - SDL_Surface *tmp; - SDL_Surface *ret; - - char str[STR_PATH_SIZE]; - - if (isFillPath(filename)) { - strcpy(str, filename); - } else { - sprintf(str, PATH_IMAGE "%s", filename); - } - - accessExistFile(str); - - if ((tmp = IMG_Load(str)) == NULL) { - error("SDL: %s", SDL_GetError()); - return NULL; - } - - if ((ret = (alpha) ? SDL_DisplayFormatAlpha(tmp) : SDL_DisplayFormat(tmp)) == NULL) { - error("SDL: %s", SDL_GetError()); - SDL_FreeSurface(tmp); - return NULL; - } - - SDL_FreeSurface(tmp); - return ret; -} - - -image_t *image_new_sdl(SDL_Surface *surface) -{ - image_t *new; - - assert(surface != NULL); - - new = malloc(sizeof(image_t)); - new->image = surface; - new->w = surface->w; - new->h = surface->h; - - return new; -} - -#ifdef SUPPORT_OPENGL -/* - * returns closest bigger power of 2 to i - */ -unsigned int closestpoweroftwo(unsigned int i) -{ - int p; - p=0; - while (i) { - i = i >> 1; - p++; - } - return 1 << (p - 0); -} - -/* convert from SDL_Surface to image_t - * WARNING: image_new is indestructive to surface, caller is responsible for freeing surface - * surface is not needed for image_t after execution of image_new - */ - -image_t *image_new_opengl(SDL_Surface *surface) -{ - image_t *new; - Uint32 rmask, gmask, bmask, amask; - SDL_Surface *sdl_rgba_surface; - unsigned int bpp; - - /* it is unoptimal to blit to buffer surface before actual loading to opengl texture but it is safer and simpler to implement */ - /* it is unoptimal to always use RGBA texture */ - - /* we set properties of our buffer sdl_rgba_surface */ - rmask = 0x000000ff; - gmask = 0x0000ff00; - bmask = 0x00ff0000; - amask = 0xff000000; - bpp = 32; /* bits per pixel */ - - assert(surface != NULL); - - new = malloc(sizeof(image_t)); - new->w = surface->w; - new->h = surface->h; - - /* because some older hw is really slow when using textures with width and height which is not a power of two */ - new->tw = closestpoweroftwo(new->w); - new->th = closestpoweroftwo(new->h); - - sdl_rgba_surface = SDL_CreateRGBSurface(SDL_SWSURFACE, new->tw, new->th, bpp, rmask, gmask, bmask, amask); - - SDL_SetAlpha(surface, 0, SDL_ALPHA_OPAQUE); /* we unset SDL_SRCALPHA to preserve alpha channel of original image */ - SDL_BlitSurface(surface, 0, sdl_rgba_surface, 0); - - SDL_LockSurface(sdl_rgba_surface); /* we ensure that we can read pixels from sdl_rgba_surface */ - - GLuint tid; - glGenTextures(1, &tid); /* we ask for free texture id */ - glBindTexture(GL_TEXTURE_2D, tid); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); /* scale linearly when image bigger than texture */ - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); /* scale linearly when image smalled than texture */ - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, new->tw, new->th, 0, GL_RGBA, GL_UNSIGNED_BYTE, sdl_rgba_surface->pixels); - SDL_UnlockSurface(sdl_rgba_surface); - SDL_FreeSurface(sdl_rgba_surface); - - new->tex_id = tid; - - SDL_FreeSurface(surface); - - return new; -} -#endif /* SUPPORT_OPENGL */ - -image_t *image_new(SDL_Surface *surface) -{ -#ifdef SUPPORT_OPENGL - if (interface_is_use_open_gl()) { - return image_new_opengl(surface); - } else { - return image_new_sdl(surface); - } -#else /* SUPPORT_OPENGL */ - return image_new_sdl(surface); -#endif /* SUPPORT_OPENGL */ -} - -void image_destroy(image_t *p) -{ - assert(p != NULL); - -#ifndef SUPPORT_OPENGL - SDL_FreeSurface((SDL_Surface *) p->image); -#else /* SUPPORT_OPENGL */ - if (interface_is_use_open_gl()) { - glDeleteTextures(1, &p->tex_id); - } else { - SDL_FreeSurface((SDL_Surface *) p->image); - } -#endif /* SUPPORT_OPENGL */ - - free(p); -} - -/* - * Adds an image to the global image list - * *file - name of the image file - * *name - name of the image (is used for searching in the list) - * alpha - [0] without alpha channel; [1] with alpha channel - */ -image_t *image_add(char *file, int alpha, char *name, char *group) -{ - SDL_Surface *surface; - image_t *new; - - assert(file != NULL); - assert(name != NULL); - assert(group != NULL); - - surface = loadImage(file, alpha); - new = image_new(surface); - - storage_add(listStorage, group, name, new); - - debug("Loading image [%s]", file); - - return new; -} - -/* - * Returns pointer to image with name *name in the global image list - */ -image_t *image_get(char *group, char *name) -{ - assert(group != NULL); - assert(name != NULL); - - return storage_get(listStorage, group, name); -} - -void image_del(char *group, char *name) -{ - assert(group != NULL); - assert(name != NULL); - - storage_del(listStorage, group, name, image_destroy); -} - -void image_del_all_image_in_group(char *group) -{ - assert(group != NULL); - - storage_del_all(listStorage, group, image_destroy); -} - -void image_draw_sdl(image_t *p, int x, int y, int px, int py, int w, int h) -{ - static SDL_Surface *screen = NULL; - SDL_Rect dst_rect, src_rect; - - if (screen == NULL) { - screen = interface_get_screen(); - } - - dst_rect.x = x; - dst_rect.y = y; - - src_rect.x = px; - src_rect.y = py; - src_rect.w = w; - src_rect.h = h; - - SDL_BlitSurface(p->image, &src_rect, screen, &dst_rect); -} - -#ifdef SUPPORT_OPENGL -/* - * Draws image on screen at [x,y], with width w and height h, top-left corner on image is at [px,py] - */ -void image_draw_opengl(image_t *image, int x,int y, int px, int py, int w, int h) -{ - /* x - coordinate of left border; xx - coordinate of right border - * y - coordinate of top border; yy - coordinate of bottom border - * t - texture space; d - screen space - */ - float t_x, t_y, t_xx, t_yy; - float d_x, d_y, d_xx, d_yy; - - /* screen space */ - d_x = x; - d_y = y; - d_xx = x+w; - d_yy = y+h; - - /* texture space (remember that texture space is from 0.0 to 1.0) */ - t_x = px / (float) image->tw; - t_y = py / (float) image->th; - t_xx = (px+w) / (float) image->tw; - t_yy = (py+h) / (float) image->th; - - glBindTexture(GL_TEXTURE_2D, image->tex_id); - - /* - * 2--4 - * |\ | - * | \| - * 1--3 - */ - glBegin(GL_TRIANGLE_STRIP); - /* 1 */ - glTexCoord2f(t_x,t_yy); - glVertex2f(d_x, d_yy); - /* 2 */ - glTexCoord2f(t_x, t_y); - glVertex2f(d_x, d_y); - /* 3 */ - glTexCoord2f(t_xx, t_yy); - glVertex2f(d_xx, d_yy); - /* 4 */ - glTexCoord2f(t_xx,t_y); - glVertex2f(d_xx, d_y); - glEnd(); -} -#endif /* SUPPORT_OPENGL */ - -void image_draw(image_t *image, int x,int y, int px, int py, int w, int h) -{ -#ifdef SUPPORT_OPENGL - if (interface_is_use_open_gl()) { - image_draw_opengl(image, x, y, px, py, w, h); - } else { - image_draw_sdl(image, x, y, px, py, w, h); - } -#else /* SUPPORT_OPENGL */ - image_draw_sdl(image, x, y, px, py, w, h); -#endif /* SUPPORT_OPENGL */ -} - -/* - * Frees global image list - */ -void image_quit() -{ - debug("Shutting down image database"); - - storage_destroy(listStorage, image_destroy); - isImageDataInit = FALSE; -} diff --git a/src/client/image.h b/src/client/image.h deleted file mode 100644 index 9f225c6..0000000 --- a/src/client/image.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef IMAGE_H -#define IMAGE_H - -#include "main.h" -#include "interface.h" - -#define IMAGE_NO_ALPHA 0 -#define IMAGE_ALPHA 1 - -#define IMAGE_GROUP_BASE "base" -#define IMAGE_GROUP_EXTENDSIO "extension" -#define IMAGE_GROUP_USER "user" -#define IMAGE_GROUP_OTHER "other" - -#ifdef SUPPORT_OPENGL -#include <SDL_opengl.h> -#endif - -/* -typedef struct image_struct { - char *name; - char *group; - SDL_Surface *image; -} image_data_t; -*/ - -#ifndef SUPPORT_OPENGL -typedef struct image_struct { - int w; - int h; - SDL_Surface *image; -} image_t; -#else /* SUPPORT_OPENGL */ -typedef struct image_struct { - int w; /* width of actual picture */ - int h; /* height of actual picture */ - SDL_Surface *image; - GLuint tw; /* width of allocated texture */ - GLuint th; /* height of allocated texture */ - GLuint tex_id; /* texture id */ -} image_t; -#endif /* SUPPORT_OPENGL */ - -extern bool_t image_is_inicialized(); -extern void image_init(); -extern image_t *image_new(SDL_Surface *surface); -extern void image_destroy(image_t * p); -extern image_t *image_add(char *file, int alpha, char *name, char *group); -extern image_t *image_get(char *group, char *name); -extern void image_del(char *group, char *name); -extern void image_del_all_image_in_group(char *group); -extern void image_draw(image_t * p, int x, int y, int px, int py, int w, int h); -extern void image_quit(); - -#endif /* IMAGE_H */ diff --git a/src/client/interface.c b/src/client/interface.c deleted file mode 100644 index 62d7f96..0000000 --- a/src/client/interface.c +++ /dev/null @@ -1,358 +0,0 @@ -#include <stdlib.h> - -#include "main.h" -#include "myTimer.h" - -#include "interface.h" -#include "screen.h" -#include "keyboardBuffer.h" -#include "hotKey.h" -#include "mouse_buffer.h" - -static SDL_Surface *screen; /* window surface */ -/*static SDL_Surface *my_surface;*/ -static SDL_TimerID timer; /* timer */ -static Uint32 g_win_flags; /* window flags */ - -static bool_t isInterfaceInit = FALSE; -static bool_t keyboardBufferEnabled = FALSE; /* flag that controls organising keys into the buffer */ -static bool_t use_open_gl; - -bool_t interface_is_use_open_gl() -{ - return use_open_gl; -} - -bool_t interface_is_inicialized() -{ - return isInterfaceInit; -} - -static Uint32 TimerCallback(Uint32 interval, void *param) -{ - SDL_Event event; - - event.type = SDL_USEREVENT; - event.user.code = USR_EVT_TIMER; - event.user.data1 = NULL; - event.user.data2 = NULL; - - SDL_PushEvent(&event); - - return interval; -} - -void interface_enable_keyboard_buffer() -{ - keyboardBufferEnabled = TRUE; -} - -void interface_disable_keyboard_buffer() -{ - keyboardBufferEnabled = FALSE; -} - -void hotkey_screen() -{ - if (g_win_flags & SDL_FULLSCREEN) { - g_win_flags &= ~SDL_FULLSCREEN; - } else { - g_win_flags |= SDL_FULLSCREEN; - } - - if (SDL_WM_ToggleFullScreen(screen) == 0) { - error("Unable to switch to the fullscreen mode"); - - SDL_FreeSurface(screen); - screen = SDL_SetVideoMode(WINDOW_SIZE_X, WINDOW_SIZE_Y, WIN_BPP, g_win_flags); - - if (screen == NULL) { - error("Unable to switch to the window mode: %s", SDL_GetError()); - return; - } - } -} - -#ifdef SUPPORT_OPENGL -/** - * Sets video mode and sets up OpenGL for this change - */ -SDL_Surface *SetVideoMode(int width, int height, int bpp, Uint32 flags) -{ - SDL_Surface *rval = 0; - - SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); - rval = SDL_SetVideoMode(width, height, bpp, flags); - - glClearColor(0.0f, 0.0f, 0.0f, 0.5f); - glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - glClearDepth(1.0); - glDisable(GL_DEPTH_TEST); - - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); -#ifdef SDL_GL_SWAP_CONTROL - SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 1); -#endif /* SDL_GL_SWAP_CONTROL */ - - glViewport(0, 0, width, height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - - glOrtho(0.0f, width, height, 0.0f, -1.0f, 1.0f); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - glEnable(GL_TEXTURE_2D); - - return rval; -} -#endif /* SUPPORT_OPENGL */ - -int interface_init() -{ - debug("Initializing SDL"); - - /* initialization of SDL */ - if (SDL_Init(SDL_SUBSYSTEMS) == -1) { - fatal("Unable to initialize SDL: %s", SDL_GetError()); - SDL_Quit(); - exit(0); - return -1; - } - -#ifndef SUPPORT_OPENGL - use_open_gl = FALSE; - g_win_flags = SDL_SWSURFACE | SDL_DOUBLEBUF | SDL_ANYFORMAT; - - screen = SDL_SetVideoMode(WINDOW_SIZE_X, WINDOW_SIZE_Y, 0, g_win_flags); -#else /* SUPPORT_OPENGL */ - use_open_gl = !isParamFlag("--disable-opengl"); - - if (interface_is_use_open_gl()) { - g_win_flags = SDL_OPENGL; - screen = SetVideoMode(WINDOW_SIZE_X, WINDOW_SIZE_Y, 0, g_win_flags); - - if (screen == NULL) { - use_open_gl = FALSE; - g_win_flags = SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_ANYFORMAT; - - screen = SDL_SetVideoMode(WINDOW_SIZE_X, WINDOW_SIZE_Y, 0, g_win_flags); - } - } else { - g_win_flags = SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_ANYFORMAT; - screen = SDL_SetVideoMode(WINDOW_SIZE_X, WINDOW_SIZE_Y, 0, g_win_flags); - } -#endif /* SUPPORT_OPENGL */ - - if (screen == NULL) { - error("Unable to create interface: %s", SDL_GetError()); - SDL_Quit(); - return -1; - } - /** - * enable unicode by default for keyboard support - it is a bit more - * consuming than the nonsdl but can draw more characters - */ - SDL_EnableUNICODE(1); - SDL_WM_SetCaption(WINDOW_TITLE, NULL); - - /* keyboard repeating */ - SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); - timer = SDL_AddTimer(INTERVAL, TimerCallback, NULL); - - keyboard_buffer_init(KEYBOARD_BUFFER_SIZE); - - hot_key_init(); - hot_key_register(SDLK_F1, hotkey_screen); - - srand((unsigned) time(NULL)); - isInterfaceInit = TRUE; - - return 0; -} - -SDL_Surface *interface_get_screen() -{ - /*return my_surface;*/ - return screen; -} - -void interface_refresh() -{ -#ifndef SUPPORT_OPENGL - SDL_Flip(screen); -#else /* SUPPORT_OPENGL */ - if (interface_is_use_open_gl()) { - SDL_GL_SwapBuffers(); - } else { - SDL_Flip(screen); - } -#endif /* SUPPORT_OPENGL */ -} - -void interface_get_mouse_position(int *x, int *y) -{ - SDL_GetMouseState(x, y); -} - -int interface_is_mouse_clicket() -{ - return SDL_GetMouseState(NULL, NULL) & SDL_BUTTON(SDL_BUTTON_LEFT); -} - -int interface_is_press_any_key() -{ - Uint8 *mapa; - int i; - - mapa = SDL_GetKeyState(NULL); - - for (i = SDLK_BACKSPACE; i < SDLK_KP9; i++) { - if (mapa[i] == SDL_PRESSED) { - return 1; - } - } - - return 0; -} - -void printPressAnyKey() -{ - Uint8 *mapa; - int i; - - mapa = SDL_GetKeyState(NULL); - - for (i = SDLK_BACKSPACE; i < SDLK_KP9; i++) { - if (mapa[i] == SDL_PRESSED) { - debug("Pressed key [SDL: %d]", i); - } - } - -} - -int hack_slow() -{ - static time_t lastTime = 0; - static bool_t isSlowHack = FALSE; - time_t currentTime; - - currentTime = timer_get_current_time(); - - if (lastTime == 0) { - lastTime = currentTime; - return 0; - } - - /*printf("DEBUG: time interval %d\n", currentTime - lastTime);*/ - - if (isSlowHack == FALSE && currentTime - lastTime >= 100) { - /*printf("start slow hack (%d)\n", currentTime - lastTime);*/ - isSlowHack = TRUE; - lastTime = timer_get_current_time(); - return 1; - } - - if (isSlowHack == TRUE && currentTime - lastTime >= 50) { - /*printf("stop slow hack (%d)\n", currentTime - lastTime);*/ - isSlowHack = FALSE; - lastTime = timer_get_current_time(); - return 0; - } - - if (isSlowHack == TRUE) { - /*printf("hack time interval %d\n", currentTime - lastTime);*/ - } - - lastTime = timer_get_current_time(); - - return isSlowHack; -} - -int eventAction() -{ - SDL_Event event; - - while (SDL_WaitEvent(&event)) { - switch (event.type) { - case SDL_MOUSEBUTTONDOWN: - mouse_buffer_event(&event.button); - break; - - case SDL_KEYDOWN: - switch (event.key.keysym.sym) { - default: - /* it is not necessary to always use the buffer */ - if (keyboardBufferEnabled == TRUE) { - keyboard_buffer_push(event.key.keysym); - } - break; - } - break; - - case SDL_USEREVENT: - switch (event.user.code) { - case USR_EVT_TIMER: - if (hack_slow()) { - break; - } - - screen_draw(); - screen_event(); - hot_key_event(); - screen_switch(); - mouse_buffer_clean(); - break; - - default: - break; - } - break; - - /* change the window size */ - case SDL_VIDEORESIZE: - screen = SDL_SetVideoMode(event.resize.w, event.resize.h, - WIN_BPP, g_win_flags); - - if (screen == NULL) { - error("Unable to change resolution of the window: %s", SDL_GetError()); - return 0; - } - break; - - /* termination request */ - case SDL_QUIT: - return -1; - break; - - default: - break; - } - } - - return 0; -} - -void interface_event() -{ - while (1) { - if (eventAction() == -1) { - return; - } - } -} - -void interface_quit() -{ - debug("Shutting down SDL"); - - hot_key_quit(); - keyboard_buffer_quit(); - - SDL_Quit(); - - isInterfaceInit = FALSE; -} diff --git a/src/client/interface.h b/src/client/interface.h deleted file mode 100644 index 2fd23e9..0000000 --- a/src/client/interface.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef INTERFACE_H -#define INTERFACE_H - -#include <stdio.h> -#include <string.h> -#include <time.h> - -#include <SDL.h> -#include <SDL_image.h> -#include <SDL_thread.h> - -#include "main.h" - -#ifdef SUPPORT_OPENGL -#include <SDL_opengl.h> -#endif - -/* -#include <SDL_net.h> -*/ - -#define SDL_SUBSYSTEMS SDL_INIT_VIDEO|SDL_INIT_TIMER - -/* the window title */ -#define WINDOW_TITLE "Tuxánci " TUXANCI_VERSION -#define WIN_BPP 0 -#define USR_EVT_TIMER 0 - -/* timing of the timer [in ms] */ -#define INTERVAL 50 - -/* size of the keyboard buffer (in characters) */ -#define KEYBOARD_BUFFER_SIZE 256 - -extern bool_t interface_is_inicialized(); -extern bool_t interface_is_use_open_gl(); -extern void interface_enable_keyboard_buffer(); -extern void interface_disable_keyboard_buffer(); -extern int interface_init(); -extern SDL_Surface *interface_get_screen(); -extern void interface_get_mouse_position(int *x, int *y); -extern int interface_is_mouse_clicket(); -extern int interface_is_press_any_key(); -extern void interface_refresh(); -extern void interface_event(); -extern void interface_quit(); - -#endif /* INTERFACE_H */ diff --git a/src/client/keyboardBuffer.c b/src/client/keyboardBuffer.c deleted file mode 100644 index 129389f..0000000 --- a/src/client/keyboardBuffer.c +++ /dev/null @@ -1,142 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> -#include <SDL.h> - -#include "keyboardBuffer.h" - -static keyboardBuffer_t *keyboardBuffer = NULL; - -static SDL_keysym emptyKey; - -/* - * Key buffer initialization - * the parameter sets the number of keys - */ -void keyboard_buffer_init(int size) -{ - assert(size > 0); - assert(keyboardBuffer == NULL); - - keyboardBuffer = malloc(sizeof(keyboardBuffer_t)); - assert(keyboardBuffer != NULL); - memset(keyboardBuffer, 0, sizeof(keyboardBuffer_t)); - - keyboardBuffer->buff = malloc(size * sizeof(SDL_keysym)); - assert(keyboardBuffer->buff != NULL); - memset(keyboardBuffer->buff, 0, size * sizeof(SDL_keysym)); - - keyboardBuffer->begin = 0; - keyboardBuffer->end = 0; - keyboardBuffer->count = 0; - keyboardBuffer->size = size; - - emptyKey.sym = SDLK_UNKNOWN; -} - -/* - * Empty the buffer - */ -void keyboard_buffer_clear() -{ - assert(keyboardBuffer != NULL); - - keyboardBuffer->begin = 0; - keyboardBuffer->end = 0; - keyboardBuffer->count = 0; - memset(keyboardBuffer->buff, 0, keyboardBuffer->size * sizeof(SDL_keysym)); -} - -/* - * Adds key to the end of the buffer. If the buffer is overrun, - * an error is printed to stderr and the key is dropped. - */ -bool_t keyboard_buffer_push(SDL_keysym key) -{ - assert(keyboardBuffer != NULL); - - if (keyboardBuffer->count >= keyboardBuffer->size) { - error("Keyboard buffer overrun - dropping the key [%02x]", key.sym); - return FALSE; - } - - keyboardBuffer->buff[keyboardBuffer->end] = key; - - keyboardBuffer->end++; - if (keyboardBuffer->end >= keyboardBuffer->size) { - keyboardBuffer->end = 0; - } - - keyboardBuffer->count++; - - return TRUE; -} - -/* - * Takes out first key from the buffer and returns it. If the buffer is empty, - * an error is printed to stderr and SDLK_UNKNOWN is returned. - */ -SDL_keysym keyboard_buffer_pop() -{ - assert(keyboardBuffer != NULL); - - if (keyboardBuffer->count <= 0) { - error("Keyboard buffer underrun"); - return emptyKey; - } - - SDL_keysym key = keyboardBuffer->buff[keyboardBuffer->begin]; - keyboardBuffer->buff[keyboardBuffer->begin] = emptyKey; - - keyboardBuffer->begin++; - - if (keyboardBuffer->begin >= keyboardBuffer->size) { - keyboardBuffer->begin = 0; - } - - keyboardBuffer->count--; - - return key; -} - -/* - * The buffer size - */ -int keyboard_buffer_get_size() -{ - assert(keyboardBuffer != NULL); - return keyboardBuffer->size; -} - -/* - * Number of keys in the buffer - */ -int keyboard_buffer_get_count() -{ - assert(keyboardBuffer != NULL); - return keyboardBuffer->count; -} - - -bool_t keyboard_buffer_is_any_key() -{ - return keyboard_buffer_get_count() > 0 ? TRUE : FALSE; -} - -/* - * Frees the buffer. If it is not empty, information - * about filling is prined to stderr first. - */ -void keyboard_buffer_quit() -{ - assert(keyboardBuffer != NULL); - - if (keyboardBuffer->count > 0) { - warning("Shutting down non-empty keyboard buffer"); - } - - free(keyboardBuffer->buff); - free(keyboardBuffer); - keyboardBuffer = NULL; -} diff --git a/src/client/keyboardBuffer.h b/src/client/keyboardBuffer.h deleted file mode 100644 index e3596ef..0000000 --- a/src/client/keyboardBuffer.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef KEYBOARD_BUFFER_H -#define KEYBOARD_BUFFER_H - -#include <SDL.h> -#include "main.h" - -typedef struct { - SDL_keysym *buff; /* buffer of keys (code according to the SDLKey enum) */ - int size; /* up-to-date size of allocated buffer (size == number of saveable keys) */ - int count; /* up-to-date number of keys saved in the buffer */ - int begin; /* pointer to the beginning of the buffer (i.e. where to add new keys to) */ - int end; /* pointer to the end of the buffer (i.e. where to remove old keys from) */ -} keyboardBuffer_t; - -extern void keyboard_buffer_init(int size); -extern void keyboard_buffer_clear(); -extern bool_t keyboard_buffer_push(SDL_keysym key); -extern SDL_keysym keyboard_buffer_pop(); -extern int keyboard_buffer_get_size(); -extern int keyboard_buffer_get_count(); -extern bool_t keyboard_buffer_is_any_key(); -extern void keyboard_buffer_quit(); - -#endif /* KEYBOARD_BUFFER_H */ diff --git a/src/client/layer.c b/src/client/layer.c deleted file mode 100644 index 22c037d..0000000 --- a/src/client/layer.c +++ /dev/null @@ -1,200 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "tux.h" - -#include "interface.h" -#include "layer.h" -#include "image.h" - -#include "world.h" - -static list_t *listLayer; - -static bool_t isLayerInit = FALSE; - -bool_t layer_is_inicialized() -{ - return isLayerInit; -} - -/* - * Initialize global list of the layers - */ -void layer_init() -{ - listLayer = list_new(); - isLayerInit = TRUE; -} - -/* - * Add image to queue for rendering - * *img - image to be rendered - * x,y - coordinates where to draw the image - * w,h - width and height of rendered part of image - * px,py - coordinates of upper left corner of rendered part of image - * layer - on which layer to draw - * [0] - under Tuxanek; [1] same as Tuxanek; [2] over Tuxanek - */ -void addLayer(image_t *img, int x, int y, int px, int py, int w, int h, int player) -{ - layer_t *new; - layer_t *actual; - int actual_value; - int new_value; - int i; - - assert(img != NULL); - - new = malloc(sizeof(layer_t)); - new->x = x; - new->y = y; - new->w = w; - new->h = h; - new->px = px; - new->py = py; - new->layer = player; - new->image = img; - - new_value = player * WINDOW_SIZE_Y + y + h; - - /* here we are sure, that we want to insert it somewhere else than the begining */ - for (i = 0; i < listLayer->count; i++) { - actual = list_get(listLayer, i); - - actual_value = actual->layer * WINDOW_SIZE_Y + actual->y + actual->h; - - if (actual_value > new_value) { - list_ins(listLayer, i, new); - return; - } - } - - list_add(listLayer, new); -} - -/* - * Draws all items onto the screen according to the layer and coordinate Y+H - * After drawing frees the list - */ -void layer_draw_all() -{ - layer_t *this; - int i; - - for (i = 0; i < listLayer->count; i++) { - this = (layer_t *) listLayer->list[i]; - - image_draw(this->image, this->x, this->y, this->px, this->py, this->w, this->h); - } - - /*printf("listLayer->count = %d\n", listLayer->count);*/ - - list_destroy_item(listLayer, free); - listLayer = list_new(); -} - -void layer_draw_center(int x, int y) -{ - layer_t *this; - int screen_x, screen_y; - int i; - /*int count = 0;*/ - - arena_get_center_screen(&screen_x, &screen_y, x, y, WINDOW_SIZE_X, WINDOW_SIZE_Y); - - for (i = 0; i < listLayer->count; i++) { - this = (layer_t *) listLayer->list[i]; - - if (this->x + this->w < screen_x || - this->x > screen_x + WINDOW_SIZE_X || - this->y + this->h < screen_y || - this->y > screen_y + WINDOW_SIZE_Y) { - continue; - } - /*count++;*/ - - image_draw(this->image, this->x - screen_x, this->y - screen_y, - this->px, this->py, this->w, this->h); - - /*printf("%d %d\n", this->x - screen_x, this->y - screen_y);*/ - } - - /*printf("count = %d\n", count);*/ - - list_destroy_item(listLayer, free); - listLayer = list_new(); -} - -void layer_draw_slpit(int local_x, int local_y, int x, int y, int w, int h) -{ - layer_t *this; - int i; - /*int count = 0;*/ - - for (i = 0; i < listLayer->count; i++) { - this = (layer_t *) listLayer->list[i]; - - if (this->x + this->w < x || this->x > x + w || - this->y + this->h < y || this->y > y + h) { - continue; - } - - /*count++;*/ - - if (local_x + (this->x - x) < local_x) { - int z; - - z = local_x - (local_x + (this->x - x)); - - this->x += z; - this->px += z; - this->w -= z; - } - - if (local_x + (this->x - x) + this->w > local_x + w) { - this->w -= (local_x + (this->x - x) + this->w) - (local_x + w); - } - - if (local_y + (this->y - y) < local_y) { - int z; - - z = local_y - (local_y + (this->y - y)); - - this->y += z; - this->py += z; - this->h -= z; - } - - if (local_y + (this->y - y) + this->h > local_y + h) { - this->h -= (local_y + (this->y - y) + this->h) - (local_y + h); - } - - image_draw(this->image, local_x + (this->x - x), local_y + (this->y - y), - this->px, this->py, this->w, this->h); - - /*printf("%d %d\n", this->x - screen_x, this->y - screen_y);*/ - } - - /*printf("count = %d\n", count);*/ - - list_destroy_item(listLayer, free); - listLayer = list_new(); -} - -void layer_flush() -{ - list_destroy_item(listLayer, free); - listLayer = list_new(); -} - -/* - * Delete list of layers from memory - */ -void layer_quit() -{ - list_destroy_item(listLayer, free); - isLayerInit = FALSE; -} diff --git a/src/client/layer.h b/src/client/layer.h deleted file mode 100644 index 3642a0a..0000000 --- a/src/client/layer.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef MY_LAYER_H -#define MY_LAYER_H - -#include "main.h" -#include "image.h" - -typedef struct layer_str { - /* coordinates of the image */ - int x; - int y; - - /* size of the image */ - int w; - int h; - - /* coordinates of a part of the surface */ - int px; - int py; - - /* size of a part of the surface */ - int pw; - int ph; - - /* in which layer to lay it */ - int layer; - - /* image of the surface */ - image_t *image; -} layer_t; - -extern bool_t layer_is_inicialized(); -extern void layer_init(); - -extern void addLayer(image_t *img, int x, int y, int px, int py, int w, int h, int player); - -extern void layer_draw_all(); -extern void layer_draw_center(int x, int y); -extern void layer_draw_slpit(int local_x, int local_y, int x, int y, int w, int h); -extern void layer_flush(); -extern void layer_quit(); - -#endif /* MY_LAYER_H */ diff --git a/src/client/mouse_buffer.c b/src/client/mouse_buffer.c deleted file mode 100644 index f301b28..0000000 --- a/src/client/mouse_buffer.c +++ /dev/null @@ -1,138 +0,0 @@ -#include <SDL.h> - -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "mouse_buffer.h" - -static list_t *list_event; - -typedef struct mouse_event_struct { - Uint8 button; - int x; - int y; -} mouse_event_t; - -static mouse_event_t *mouse_event_new(int x, int y, Uint8 button) -{ - mouse_event_t *mouse_event; - - mouse_event = malloc(sizeof(mouse_event_t)); - mouse_event->x = x; - mouse_event->y = y; - mouse_event->button = button; - - return mouse_event; -} - -static void mouse_event_destroy(mouse_event_t *mouse_event) -{ - assert(mouse_event != NULL); - free(mouse_event); -} - -int mouse_buffer_init() -{ - list_event = list_new(); - - return 0; -} - -int mouse_buffer_event(SDL_MouseButtonEvent *button) -{ - assert(button != NULL); - assert(list_event != NULL); - - switch (button->button) { - case SDL_BUTTON_LEFT: - case SDL_BUTTON_RIGHT: - /*printf("mouse button - pos(%d,%d)\n", button->x, button->y);*/ - - list_add(list_event, mouse_event_new(button->x, button->y, button->button)); - - return 1; - break; - - default: - break; - } - - return 0; -} - -int mouse_buffer_clean() -{ - assert(list_event != NULL); - - list_destroy_item(list_event, mouse_event_destroy); - list_event = list_new(); - - return 0; -} - -bool_t mouse_buffer_is_on_area(int x, int y, int w, int h, unsigned int flag) -{ - mouse_event_t *mouse_event; - int i; - - assert(list_event != NULL); - - if (flag & MOUSE_BUF_MOTION) { - int mouse_x, mouse_y; - - SDL_GetMouseState(&mouse_x, &mouse_y); - - if (mouse_x >= x && mouse_y >= y && - mouse_x < x+w && mouse_y < y+h) { - return TRUE; - } - } else { - for (i = 0; i < list_event->count; i++) { - mouse_event = (mouse_event_t *) list_event->list[i]; - - if ((mouse_event->x >= x && mouse_event->y >= y && - mouse_event->x < x + w && mouse_event->y < y + h) || - (flag & MOUSE_BUF_AREA_NONE)) { - if (flag & MOUSE_BUF_CLICK_LEFT) { - if (mouse_event->button == SDL_BUTTON_LEFT) { - return TRUE; - } else { - return FALSE; - } - } - - if (flag & MOUSE_BUF_CLICK_RIGHT) { - if (mouse_event->button == SDL_BUTTON_RIGHT) { - return TRUE; - } else { - return FALSE; - } - } - - if (flag & MOUSE_BUF_CLICK) { - if (mouse_event->button == SDL_BUTTON_LEFT || - mouse_event->button == SDL_BUTTON_RIGHT) { - return TRUE; - } else { - return FALSE; - } - } - - return TRUE; - } - } - } - - return FALSE; -} - -int mouse_buffer_quit() -{ - assert(list_event != NULL); - list_destroy_item(list_event, mouse_event_destroy); - - return 0; -} diff --git a/src/client/mouse_buffer.h b/src/client/mouse_buffer.h deleted file mode 100644 index 7cc6588..0000000 --- a/src/client/mouse_buffer.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef MOUSE_EVENT_H -#define MOUSE_EVENT_H - -#include <SDL.h> - -#define MOUSE_BUF_MOTION 1 -#define MOUSE_BUF_CLICK_LEFT 2 -#define MOUSE_BUF_CLICK_RIGHT 4 -#define MOUSE_BUF_CLICK 8 -#define MOUSE_BUF_AREA_NONE 16 - -extern int mouse_buffer_init(); -extern int mouse_buffer_event(SDL_MouseButtonEvent *button); -extern int mouse_buffer_clean(); -extern bool_t mouse_buffer_is_on_area(int x, int y, int w, int h, unsigned int flag); -extern int mouse_buffer_quit(); - -#endif /* MOUSE_EVENT_H */ diff --git a/src/client/panel.c b/src/client/panel.c deleted file mode 100644 index 43dab1a..0000000 --- a/src/client/panel.c +++ /dev/null @@ -1,159 +0,0 @@ -#include <stdio.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "tux.h" - -#include "interface.h" -#include "image.h" -#include "panel.h" -#include "font.h" -#include "chat.h" - -static image_t *g_panel; -static image_t *g_shot; -static image_t *g_icon[ITEM_COUNT]; -static image_t *g_bonus; - -static bool_t isPanelInit = FALSE; - -bool_t panel_is_inicialized() -{ - return isPanelInit; -} - -void panel_init() -{ - assert(image_is_inicialized() == TRUE); - assert(interface_is_inicialized() == TRUE); - - g_panel = image_add("panel.png", IMAGE_ALPHA, "panel", IMAGE_GROUP_BASE); - g_shot = image_add("panel_shot.png", IMAGE_ALPHA, "panel_image_shot",IMAGE_GROUP_BASE); - g_bonus = image_add("graf.bonus.png", IMAGE_ALPHA, "panel_graf_bonus", IMAGE_GROUP_BASE); - g_icon[GUN_SIMPLE] = image_add("icon.gun.simple.png", IMAGE_ALPHA, "panel_gun", IMAGE_GROUP_BASE); - g_icon[GUN_DUAL_SIMPLE] = image_add("icon.gun.dual.simple.png", IMAGE_ALPHA, "panel_dual", IMAGE_GROUP_BASE); - g_icon[GUN_TOMMY] = image_add("icon.gun.tommy.png", IMAGE_ALPHA, "panel_tommy", IMAGE_GROUP_BASE); - g_icon[GUN_SCATTER] = image_add("icon.gun.scatter.png", IMAGE_ALPHA, "panel_scatter", IMAGE_GROUP_BASE); - g_icon[GUN_LASSER] = image_add("icon.gun.lasser.png", IMAGE_ALPHA, "panel_lasser", IMAGE_GROUP_BASE); - g_icon[GUN_MINE] = image_add("icon.gun.mine.png", IMAGE_ALPHA, "panel_mine", IMAGE_GROUP_BASE); - g_icon[GUN_BOMBBALL] = image_add("icon.gun.bombball.png", IMAGE_ALPHA, "panel_bombball", IMAGE_GROUP_BASE); - g_icon[BONUS_SPEED] = image_add("icon.bonus.speed.png", IMAGE_ALPHA, "panel_speed", IMAGE_GROUP_BASE); - g_icon[BONUS_SHOT] = image_add("icon.bonus.shot.png", IMAGE_ALPHA, "panel_shot", IMAGE_GROUP_BASE); - g_icon[BONUS_TELEPORT] = image_add("icon.bonus.teleport.png", IMAGE_ALPHA, "panel_teleport", IMAGE_GROUP_BASE); - g_icon[BONUS_GHOST] = image_add("icon.bonus.ghost.png", IMAGE_ALPHA, "panel_ghost", IMAGE_GROUP_BASE); - g_icon[BONUS_4X] = image_add("icon.bonus.4x.png", IMAGE_ALPHA, "panel_4x", IMAGE_GROUP_BASE); - g_icon[BONUS_HIDDEN] = image_add("icon.bonus.hidden.png", IMAGE_ALPHA, "panel_hidden", IMAGE_GROUP_BASE); - - isPanelInit = TRUE; -} - -static void drawScore(tux_t *tux_left, tux_t *tux_right) -{ - char strScoreLine[STR_SIZE]; - int w, h; - - if (tux_right != NULL && tux_left != NULL) { - sprintf(strScoreLine, "%d : %d", tux_right->score, tux_left->score); - } else if (tux_right != NULL) { - sprintf(strScoreLine, "%d", tux_right->score); - } else if (tux_left != NULL) { - sprintf(strScoreLine, "%d", tux_left->score); - } - - font_text_size(strScoreLine, &w, &h); - font_draw(strScoreLine, PANEL_SCORE_LOCATION_X, PANEL_SCORE_LOCATION_Y, COLOR_WHITE); -} - -static void shot_draw(int n, int x, int y) -{ - image_draw(g_shot, x, y, n * PANEL_SHOT_WIDTH, 0, PANEL_SHOT_WIDTH, PANEL_SHOT_HEIGHT); -} - -static void shot_drawInfo(tux_t *tux, int x, int y) -{ - int i; - - if (tux->pickup_time > 0) { - for (i = 0; i < tux->pickup_time / 3; i++) { - shot_draw(PANEL_SHOT_LINE, x + i * PANEL_SHOT_WIDTH, y); - } - - return; - } - - for (i = 0; i < GUN_MAX_SHOT; i++) { - if (tux->shot[tux->gun] > i) { - shot_draw(PANEL_SHOT_FILL, x + i * (PANEL_SHOT_WIDTH + 2), y); - } else { - shot_draw(PANEL_SHOT_EMPTY, x + i * (PANEL_SHOT_WIDTH + 2), y); - } - } -} - -static void drawGunInfo(tux_t *tux, int x, int y) -{ - image_draw(g_icon[tux->gun], x, y, 0, 0, g_icon[tux->gun]->w, g_icon[tux->gun]->h); -} - -static void drawBonusInfo(tux_t *tux, int x, int y) -{ - image_draw(g_icon[tux->bonus], x, y, 0, 0, g_icon[tux->bonus]->w, g_icon[tux->bonus]->h); -} - -static void drawGrafBonus(tux_t *tux, int x, int y) -{ - int offset; - - offset = tux->bonus_time / 5; - image_draw(g_bonus, x, y, 0, 0, g_bonus->w, g_bonus->h / 2); - image_draw(g_bonus, x + 1, y, 0, g_bonus->h / 2, offset, g_bonus->h / 2); -} - -static void tux_drawRight(tux_t *tux) -{ - if (tux == NULL) { - return; - } - - shot_drawInfo(tux, PANEL_LOCATION_X + 740, PANEL_LOCATION_Y + 34); - drawGunInfo(tux, PANEL_LOCATION_X + 620, PANEL_LOCATION_Y + 30); - - if (tux->bonus != BONUS_NONE) { - drawGrafBonus(tux, PANEL_LOCATION_X + 460, PANEL_LOCATION_Y + 50); - drawBonusInfo(tux, PANEL_LOCATION_X + 460, PANEL_LOCATION_Y + 30); - } -} - -static void tux_drawLeft(tux_t *tux) -{ - if (tux == NULL) { - return; - } - - shot_drawInfo(tux, PANEL_LOCATION_X + 8, PANEL_LOCATION_Y + 34); - drawGunInfo(tux, PANEL_LOCATION_X + 130, PANEL_LOCATION_Y + 30); - - if (tux->bonus != BONUS_NONE) { - drawGrafBonus(tux, PANEL_LOCATION_X + 200, PANEL_LOCATION_Y + 50); - drawBonusInfo(tux, PANEL_LOCATION_X + 200, PANEL_LOCATION_Y + 30); - } -} - -void panel_draw(tux_t *tux_right, tux_t *tux_left) -{ - image_draw(g_panel, PANEL_LOCATION_X, PANEL_LOCATION_Y, 0, 0, g_panel->w, g_panel->h); - drawScore(tux_right, tux_left); - - if (chat_is_recived_new_msg()) { - font_draw(_("Recived new chat message"), PANEL_LOCATION_X, PANEL_LOCATION_Y, COLOR_WHITE); - } - - tux_drawRight(tux_right); - tux_drawLeft(tux_left); -} - -void panel_quit() -{ - isPanelInit = FALSE; -} diff --git a/src/client/panel.h b/src/client/panel.h deleted file mode 100644 index 8ae92b3..0000000 --- a/src/client/panel.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PANEL_H -#define PANEL_H - -#include "main.h" -#include "list.h" - -#define PANEL_SCORE_LOCATION_X (WINDOW_SIZE_X / 2 - w / 2) -#define PANEL_SCORE_LOCATION_Y (WINDOW_SIZE_Y - 40) - -#define PANEL_SHOT_WIDTH 4 -#define PANEL_SHOT_HEIGHT 8 - -#define PANEL_LOCATION_X 0 -#define PANEL_LOCATION_Y (WINDOW_SIZE_Y - g_panel->h) - -#define PANEL_SHOT_FILL 0 -#define PANEL_SHOT_EMPTY 1 -#define PANEL_SHOT_LINE 2 - -extern bool_t panel_is_inicialized(); -extern void panel_init(); -extern void panel_draw(tux_t *tux_right, tux_t *tux_left); -extern void panel_quit(); - -#endif /* PANEL_H */ diff --git a/src/client/pauza.c b/src/client/pauza.c deleted file mode 100644 index 61f80ea..0000000 --- a/src/client/pauza.c +++ /dev/null @@ -1,61 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "myTimer.h" - -#include "interface.h" -#include "image.h" -#include "pauza.h" -#include "hotKey.h" - -static image_t *g_pauza; -static bool_t activePauza; - -static void switchPauzed() -{ - if (activePauza == TRUE) { - activePauza = FALSE; - } else { - activePauza = TRUE; - } -} - -static void hotkey_pauze() -{ - switchPauzed(); -} - -void pauza_init() -{ - g_pauza = image_add("pauza.png", IMAGE_ALPHA, "pauza", IMAGE_GROUP_USER); - activePauza = FALSE; - - hot_key_register(SDLK_p, hotkey_pauze); -} - -void pauza_draw() -{ - if (activePauza) { - image_draw(g_pauza, - WINDOW_SIZE_X / 2 - g_pauza->w / 2, - WINDOW_SIZE_Y / 2 - g_pauza->h / 2, - 0, 0, g_pauza->w, g_pauza->h); - } -} - -void pauza_event() -{ -} - -bool_t pauza_is_active() -{ - return activePauza; -} - -void pauza_quit() -{ - hot_key_unregister(SDLK_p); -} diff --git a/src/client/pauza.h b/src/client/pauza.h deleted file mode 100644 index a432d5f..0000000 --- a/src/client/pauza.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PAUZA_H -#define PAUZA_H - -#include "main.h" - -#define PAUZE_ACTIVE_TIME_INTERVAL 1000 - -extern void pauza_init(); -extern void pauza_draw(); -extern void pauza_event(); -extern bool_t pauza_is_active(); -extern void pauza_quit(); - -#endif /* PAUZA_H */ diff --git a/src/client/radar.c b/src/client/radar.c deleted file mode 100644 index e8457e9..0000000 --- a/src/client/radar.c +++ /dev/null @@ -1,113 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "arena.h" - -#include "interface.h" -#include "image.h" -#include "radar.h" - -static image_t *g_radar; -static list_t *listRadar; - -typedef struct radar_item_struct { - int id; - int x, y; - int type; -} radar_item_t; - -static radar_item_t *newRadarItem(int id, int x, int y, int type) -{ - radar_item_t *new; - - new = malloc(sizeof(radar_item_t)); - new->id = id; - new->x = x; - new->y = y; - new->type = type; - - return new; -} - -static void destroyRadarItem(radar_item_t *p) -{ - assert(p != NULL); - free(p); -} - -void radar_add(int id, int x, int y, int type) -{ - int i; - - for (i = 0; i < listRadar->count; i++) { - radar_item_t *thisRadarItem; - - thisRadarItem = (radar_item_t *) listRadar->list[i]; - - if (thisRadarItem->id == id) { - thisRadarItem->x = x; - thisRadarItem->y = y; - thisRadarItem->type = type; - return; - } - } - - list_add(listRadar, newRadarItem(id, x, y, type)); -} - -void radar_del(int id) -{ - int i; - - for (i = 0; i < listRadar->count; i++) { - radar_item_t *thisRadarItem; - - thisRadarItem = (radar_item_t *) listRadar->list[i]; - - if (thisRadarItem->id == id) { - list_del_item(listRadar, i, destroyRadarItem); - return; - } - } -} - -void radar_init() -{ - assert(image_is_inicialized() == TRUE); - assert(interface_is_inicialized() == TRUE); - - g_radar = image_add("radar.png", IMAGE_NO_ALPHA, "radar", IMAGE_GROUP_USER); - listRadar = list_new(); -} - -void radar_draw(arena_t *arena) -{ - int i; - - image_draw(g_radar, RADAR_LOCATION_X, RADAR_LOCATION_Y, 0, 0, RADAR_SIZE_X + 2, RADAR_SIZE_Y + 2); - - for (i = 0; i < listRadar->count; i++) { - radar_item_t *thisRadarItem; - int x, y; - - thisRadarItem = (radar_item_t *) listRadar->list[i]; - - x = (((float) RADAR_SIZE_X) / ((float) arena->w)) * ((float) thisRadarItem->x); - - y = (((float) RADAR_SIZE_Y) / ((float) arena->h)) * ((float) thisRadarItem->y); - - if (x >= 0 && x <= RADAR_SIZE_X && y >= 0 && y <= RADAR_SIZE_Y) { - image_draw(g_radar, RADAR_LOCATION_X + 1 + x, RADAR_LOCATION_Y + 1 + y, - 2 * thisRadarItem->type, RADAR_SIZE_Y + 2, 2, 2); - } - } -} - -void radar_quit() -{ - list_destroy_item(listRadar, destroyRadarItem); -} diff --git a/src/client/radar.h b/src/client/radar.h deleted file mode 100644 index 8bc2a01..0000000 --- a/src/client/radar.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef RADAR_H -#define RADAR_H - -#include "arena.h" - -#define RADAR_LOCATION_X (WINDOW_SIZE_X - 110) -#define RADAR_LOCATION_Y 10 - -#define RADAR_SIZE_X 100 -#define RADAR_SIZE_Y 100 - -#define RADAR_TYPE_YOU 3 -#define RADAR_TYPE_TUX 1 -#define RADAR_TYPE_ITEM 2 - -extern void radar_init(); -extern void radar_add(int id, int x, int y, int type); -extern void radar_del(int id); -extern void radar_draw(arena_t *arena); -extern void radar_quit(); - -#endif /* RADAR_H */ diff --git a/src/client/saveDialog.c b/src/client/saveDialog.c deleted file mode 100644 index 7a0c316..0000000 --- a/src/client/saveDialog.c +++ /dev/null @@ -1,134 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "space.h" -#include "arena.h" -#include "net_multiplayer.h" - -#include "interface.h" -#include "saveDialog.h" -#include "image.h" -#include "font.h" -#include "saveLoad.h" -#include "hotKey.h" - -#include "widget.h" -#include "widget_label.h" -#include "widget_button.h" -#include "widget_textfield.h" - -static image_t *g_background; -static bool_t activeSaveDialog; - -static widget_t *widgetLabelMsg; -static widget_t *widgetTextFieldName; - -static widget_t *widgetButtonSave; -static widget_t *widgetButtonBack; - -static void switchTerm() -{ - if (activeSaveDialog == TRUE) { - activeSaveDialog = FALSE; - hot_key_unregister(SDLK_ESCAPE); - } else { - activeSaveDialog = TRUE; - hot_key_register(SDLK_ESCAPE, switchTerm); - } -} - -static void eventWidget(void *p) -{ - widget_t *button; - - button = (widget_t *) p; - - if (button == widgetButtonSave) { - save_arena(text_field_get_text(widgetTextFieldName), arena_get_current()); - switchTerm(); - } - - if (button == widgetButtonBack) { - switchTerm(); - } -} - -static void hotkey_saveDialog() -{ - switchTerm(); -} - -void save_dialog_init() -{ - activeSaveDialog = FALSE; - - g_background = image_get(IMAGE_GROUP_BASE, "screen_main"); - - widgetLabelMsg = label_new(_("Save as:"), SAVE_DIALOG_LOCATIN_X + 20, - SAVE_DIALOG_LOCATIN_Y + 20, - WIDGET_LABEL_LEFT); - - widgetTextFieldName = text_field_new("", WIDGET_TEXTFIELD_FILTER_ALPHANUM, - widgetLabelMsg->x + widgetLabelMsg->w + 10, - widgetLabelMsg->y); - - widgetButtonSave = button_new(_("Save"), SAVE_DIALOG_LOCATIN_X + 20, - SAVE_DIALOG_LOCATIN_Y + 60, - eventWidget); - - widgetButtonBack = button_new(_("Back"), SAVE_DIALOG_LOCATIN_X + 20 + - WIDGET_BUTTON_WIDTH + 20, - SAVE_DIALOG_LOCATIN_Y + 60, - eventWidget); - - hot_key_register(SDLK_F2, hotkey_saveDialog); -} - -bool_t save_dialog_is_active() -{ - return activeSaveDialog; -} - -void save_dialog_draw() -{ - if (activeSaveDialog == FALSE) { - return; - } - - image_draw(g_background, SAVE_DIALOG_LOCATIN_X, - SAVE_DIALOG_LOCATIN_Y, - SAVE_DIALOG_LOCATIN_X, - SAVE_DIALOG_LOCATIN_Y, - SAVE_DIALOG_SIZE_X, - SAVE_DIALOG_SIZE_Y); - - label_draw(widgetLabelMsg); - text_field_draw(widgetTextFieldName); - button_draw(widgetButtonSave); - button_draw(widgetButtonBack); -} - -void save_dialog_event() -{ - if (activeSaveDialog == FALSE) { - return; - } - - text_field_event(widgetTextFieldName); - button_event(widgetButtonSave); - button_event(widgetButtonBack); - -} - -void save_dialog_quit() -{ - hot_key_unregister(SDLK_F2); - - label_destroy(widgetLabelMsg); - text_field_destroy(widgetTextFieldName); - button_destroy(widgetButtonSave); - button_destroy(widgetButtonBack); -} diff --git a/src/client/saveDialog.h b/src/client/saveDialog.h deleted file mode 100644 index f5fb91f..0000000 --- a/src/client/saveDialog.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SAVE_DIALOG_H -#define SAVE_DIALOG_H - -#define SAVEDIALOG_ACTIVE_TIME_INTERVAL 500 - -#define SAVE_DIALOG_SIZE_X 320 -#define SAVE_DIALOG_SIZE_Y 120 - -#define SAVE_DIALOG_LOCATIN_X (WINDOW_SIZE_X / 2 - SAVE_DIALOG_SIZE_X / 2) -#define SAVE_DIALOG_LOCATIN_Y (WINDOW_SIZE_Y / 2 - SAVE_DIALOG_SIZE_Y / 2) - -extern void save_dialog_init(); -extern bool_t save_dialog_is_active(); -extern void save_dialog_draw(); -extern void save_dialog_event(); -extern void save_dialog_quit(); - -#endif /* SAVE_DIALOG_H */ diff --git a/src/client/saveLoad.c b/src/client/saveLoad.c deleted file mode 100644 index 899ef25..0000000 --- a/src/client/saveLoad.c +++ /dev/null @@ -1,258 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "textFile.h" -#include "homeDirector.h" - -#include "arena.h" -#include "arenaFile.h" -#include "tux.h" -#include "shot.h" -#include "item.h" -#include "modules.h" - -#include "saveLoad.h" - -#include "choiceArena.h" -#include "world.h" - -static void action_saveTux(space_t *space, tux_t *tux, textFile_t *textFile) -{ - char str[STR_PROTO_SIZE]; - - snprintf(str, STR_PROTO_SIZE, - "TUX %d %d %d %d %d %d %d %d %s %d %d %d %d %d %d %d %d %d %d %d", - tux->id, tux->x, tux->y, tux->status, tux->position, - tux->control, tux->frame, tux->score, tux->name, tux->gun, - tux->bonus, tux->shot[GUN_SIMPLE], tux->shot[GUN_DUAL_SIMPLE], - tux->shot[GUN_SCATTER], tux->shot[GUN_TOMMY], - tux->shot[GUN_LASSER], tux->shot[GUN_MINE], - tux->shot[GUN_BOMBBALL], tux->bonus_time, tux->pickup_time); - - list_add(textFile->text, strdup(str)); -} - -static void action_saveShot(space_t *space, shot_t *shot, textFile_t *textFile) -{ - char str[STR_PROTO_SIZE]; - - snprintf(str, STR_PROTO_SIZE, "SHOT %d %d %d %d %d %d %d %d %d", - shot->id, shot->x, shot->y, shot->px, shot->py, - shot->position, shot->gun, shot->author_id, - shot->isCanKillAuthor); - - list_add(textFile->text, strdup(str)); -} - -static void action_saveItem(space_t *space, item_t *item, textFile_t *textFile) -{ - char str[STR_PROTO_SIZE]; - - snprintf(str, STR_PROTO_SIZE, "ITEM %d %d %d %d %d %d %d", - item->id, item->type, item->x, item->y, - item->count, item->frame, item->author_id); - - list_add(textFile->text, strdup(str)); -} - -static void saveContextArenaToTextFile(textFile_t *textFile, arena_t *arena) -{ - char str[STR_PROTO_SIZE]; - - sprintf(str, "ARENA %s %d %d", - arena_file_get_net_name(choice_arena_get()), - arena->countRound, arena->max_countRound); - - list_add(textFile->text, strdup(str)); - - space_action(arena->spaceTux, action_saveTux, textFile); - space_action(arena->spaceShot, action_saveShot, textFile); - space_action(arena->spaceItem, action_saveItem, textFile); -} - -void save_arena(char *filename, arena_t *arena) -{ - textFile_t *textFile; - char path[STR_PATH_SIZE]; - - sprintf(path, "%s%s%s.sav", home_director_get(), PATH_SEPARATOR, filename); - - debug("Saving game [%s]", path); - - textFile = text_file_new(path); - - if (textFile != NULL) { - saveContextArenaToTextFile(textFile, arena); - text_file_save(textFile); - text_file_destroy(textFile); - } else { - error("Unable to save game [%s]", path); - } -} - -static arena_t *load_arenaFromLine(char *line) -{ - char cmd[STR_SIZE]; - char name[STR_SIZE]; - int countRound; - int max_countRound; - arena_t *arena; - - sscanf(line, "%s %s %d %d", cmd, name, &countRound, &max_countRound); - - world_set_arena(arena_file_get_file_format_net_name(name)); - - arena = arena_get_current(); - arena->max_countRound = max_countRound; - arena->countRound = countRound; - - return arena; -} - -static void loadTuxFromLine(char *line, arena_t *arena) -{ - char cmd[STR_PROTO_SIZE]; - char name[STR_NAME_SIZE]; - int id, x, y, status, position, frame, score, control; - int myGun, myBonus; - int gun1, gun2, gun3, gun4, gun5, gun6, gun7; - int time1, time2; - tux_t *tux; - - sscanf(line, - "%s %d %d %d %d %d %d %d %d %s %d %d %d %d %d %d %d %d %d %d %d", - cmd, &id, &x, &y, &status, &position, &control, &frame, &score, - name, &myGun, &myBonus, &gun1, &gun2, &gun3, &gun4, &gun5, &gun6, - &gun7, &time1, &time2); - - tux = tux_new(); - tux_replace_id(tux, id); - space_add(arena->spaceTux, tux); - - tux->control = control; - - if (tux->control == TUX_CONTROL_KEYBOARD_RIGHT) { - world_set_control_tux(tux, TUX_CONTROL_KEYBOARD_RIGHT); - } - - if (tux->control == TUX_CONTROL_KEYBOARD_LEFT) { - world_set_control_tux(tux, TUX_CONTROL_KEYBOARD_LEFT); - } - - if (tux->control == TUX_CONTROL_AI) { - module_load("libmodAI"); - world_set_control_tux(tux, TUX_CONTROL_KEYBOARD_LEFT); - } - - space_move_object(arena->spaceTux, tux, x, y); - tux->status = status; - tux->position = position; - tux->frame = frame; - tux->score = score; - strcpy(tux->name, name); - tux->gun = myGun; - tux->bonus = myBonus; - tux->shot[GUN_SIMPLE] = gun1; - tux->shot[GUN_DUAL_SIMPLE] = gun2; - tux->shot[GUN_SCATTER] = gun3; - tux->shot[GUN_TOMMY] = gun4; - tux->shot[GUN_LASSER] = gun5; - tux->shot[GUN_MINE] = gun6; - tux->shot[GUN_BOMBBALL] = gun7; - tux->bonus_time = time1; - tux->pickup_time = time2; -} - -static void loadShotFromLine(char *line, arena_t *arena) -{ - char cmd[STR_PROTO_SIZE]; - int x, y, px, py, position, gun, shot_id, author_id, isCanKillAuthor; - shot_t *shot; - - sscanf(line, "%s %d %d %d %d %d %d %d %d %d", - cmd, &shot_id, &x, &y, &px, &py, &position, &gun, &author_id, - &isCanKillAuthor); - - shot = shot_new(x, y, px, py, gun, author_id); - - shot_replace_id(shot, shot_id); - shot->isCanKillAuthor = isCanKillAuthor; - shot->position = position; - - if (shot->gun == GUN_LASSER) { - shot_transform_lasser(shot); - } - - space_add(arena->spaceShot, shot); -} - -static void loadItemFromLine(char *line, arena_t *arena) -{ - char cmd[STR_PROTO_SIZE]; - int id, type, x, y, count, frame, author_id, check_id; - item_t *item; - - sscanf(line, "%s %d %d %d %d %d %d %d %d", - cmd, &id, &type, &x, &y, &count, &frame, &author_id, &check_id); - - item = item_new(x, y, type, author_id); - - item_replace_id(item, id); - item->count = count; - item->frame = frame; - - space_add(arena->spaceItem, item); -} - -static arena_t *loadContextArenaFromTextFile(textFile_t *textFile) -{ - arena_t *arena; - int i; - - arena = NULL; - - for (i = 0; i < textFile->text->count; i++) { - char *line; - - line = (char *) textFile->text->list[i]; - - if (strncmp(line, "ARENA", 5) == 0) { - arena = load_arenaFromLine(line); - } - - if (strncmp(line, "TUX", 3) == 0) { - loadTuxFromLine(line, arena); - } - - if (strncmp(line, "SHOT", 4) == 0) { - loadShotFromLine(line, arena); - } - - if (strncmp(line, "ITEM", 4) == 0) { - loadItemFromLine(line, arena); - } - } - - return arena; -} - -void load_arena(char *filename) -{ - textFile_t *textFile; - char path[STR_PATH_SIZE]; - - sprintf(path, "%s%s%s", home_director_get(), PATH_SEPARATOR, filename); - - debug("Loading arena [%s]", path); - - textFile = text_file_load(path); - - if (textFile != NULL) { - loadContextArenaFromTextFile(textFile); - text_file_destroy(textFile); - } else { - error("Unable to load saved game [%s]", path); - } -} diff --git a/src/client/saveLoad.h b/src/client/saveLoad.h deleted file mode 100644 index eaf27e2..0000000 --- a/src/client/saveLoad.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef SAVELOAD_H -#define SAVELOAD_H - -#include "textFile.h" -#include "arena.h" - -extern void save_arena(char *filename, arena_t *arena); -extern void load_arena(char *filename); - -#endif /* SAVELOAD_H */ diff --git a/src/client/screen.c b/src/client/screen.c deleted file mode 100644 index 476cf3e..0000000 --- a/src/client/screen.c +++ /dev/null @@ -1,175 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" - -#include "interface.h" -#include "screen.h" -#include "layer.h" -#include "myTimer.h" - -/*#define DEBUG_TIME_DRAW*/ - -static screen_t *currentScreen; -static screen_t *futureScreen; - -static list_t *listScreen; - -static bool_t isScreenInit = FALSE; - -bool_t screen_is_inicialized() -{ - return isScreenInit; -} - -screen_t *screen_new(char *name, void (*fce_start) (), void (*fce_event) (), - void (*fce_draw) (), void (*fce_stop) ()) -{ - screen_t *new; - - assert(name != NULL); - assert(fce_start != NULL); - assert(fce_event != NULL); - assert(fce_draw != NULL); - assert(fce_stop != NULL); - - new = malloc(sizeof(screen_t)); - new->name = strdup(name); - new->fce_start = fce_start; - new->fce_event = fce_event; - new->fce_draw = fce_draw; - new->fce_stop = fce_stop; - - return new; -} - -void screen_destroy(screen_t *p) -{ - assert(p != NULL); - - free(p->name); - free(p); -} - -void screen_register(screen_t *p) -{ - assert(p != NULL); - - debug("Registering screen [%s]", p->name); - - list_add(listScreen, p); -} - -void screen_init() -{ - listScreen = list_new(); - - currentScreen = NULL; - futureScreen = NULL; - - isScreenInit = TRUE; -} - -static screen_t *findScreen(char *name) -{ - screen_t *this; - int i; - - for (i = 0; i < listScreen->count; i++) { - this = (screen_t *) listScreen->list[i]; - assert(this != NULL); - - if (strcmp(name, this->name) == 0) { - return this; - } - } - - return NULL; -} - -void screen_set(char *name) -{ - futureScreen = findScreen(name); - assert(futureScreen != NULL); -} - -void screen_switch() -{ - if (futureScreen == NULL) { - return; - } - - layer_flush(); - - if (currentScreen != NULL) { - debug("Stopping screen [%s]", currentScreen->name); - currentScreen->fce_stop(); - } - - currentScreen = futureScreen; - futureScreen = NULL; - - debug("Starting screen [%s]", currentScreen->name); - - currentScreen->fce_start(); -} - -void screen_start(char *name) -{ - screen_set(name); - screen_switch(); -} - -char *screen_get() -{ - assert(currentScreen != NULL); - return currentScreen->name; -} - -void screen_draw() -{ - static int count = 0; - - count++; - - if (count == 1) { - count = 0; - - assert(currentScreen != NULL); - -#ifdef DEBUG_TIME_DRAW - my_time_t prev; - - prev = timer_get_current_timeMicro(); -#endif /* DEBUG_TIME_DRAW */ - - currentScreen->fce_draw(); - - interface_refresh(); - -#ifdef DEBUG_TIME_DRAW - printf("c draw time = %d\n", timer_get_current_timeMicro() - prev); -#endif /* DEBUG_TIME_DRAW */ - } -} - - -void screen_event() -{ - assert(currentScreen != NULL); - - currentScreen->fce_event(); - -#ifdef DEBUG_TIME_EVENT - printf("c event time = %d\n", timer_get_current_timeMicro() - prev); -#endif /* DEBUG_TIME_EVENT */ -} - -void screen_quit() -{ - assert(listScreen != NULL); - - list_destroy_item(listScreen, screen_destroy); - isScreenInit = FALSE; -} diff --git a/src/client/screen.h b/src/client/screen.h deleted file mode 100644 index 718fb57..0000000 --- a/src/client/screen.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef SCREEN_H -#define SCREEN_H - -#include "main.h" - -typedef struct screen_struct { - char *name; - void (*fce_start) (); - void (*fce_event) (); - void (*fce_draw) (); - void (*fce_stop) (); -} screen_t; - -extern bool_t screen_is_inicialized(); - -extern screen_t *screen_new(char *name, void (*fce_start) (), - void (*fce_event) (), - void (*fce_draw) (), - void (*fce_stop) ()); - -extern void screen_destroy(screen_t *p); -extern void screen_register(screen_t *p); -extern void screen_init(); -extern void screen_set(char *name); -extern void screen_switch(); -extern void screen_start(char *name); -extern char *screen_get(); -extern void screen_draw(); -extern void screen_event(); -extern void screen_quit(); - -#endif /* SCREEN_H */ diff --git a/src/client/term.c b/src/client/term.c deleted file mode 100644 index dc4a51b..0000000 --- a/src/client/term.c +++ /dev/null @@ -1,157 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "myTimer.h" -#include "tux.h" -#include "space.h" -#include "arena.h" - -#include "interface.h" -#include "term.h" -#include "font.h" - -static list_t *listText; -static bool_t activeTerm; -static my_time_t lastActive; -static my_time_t lastRefresh; - -void term_init() -{ - listText = list_new(); - - activeTerm = FALSE; - lastActive = timer_get_current_time(); - lastRefresh = lastActive; -} - -static char *getStrGun(int gun) -{ - switch (gun) { - case GUN_SIMPLE: - return "revolver"; - case GUN_DUAL_SIMPLE: - return "dual revolver"; - case GUN_SCATTER: - return "scatter"; - case GUN_TOMMY: - return "tommy"; - case GUN_LASSER: - return "lasser"; - case GUN_MINE: - return "mine"; - case GUN_BOMBBALL: - return "bombball"; - default: - return "none"; - } - - return "gun_unknown"; -} - -static char *getStrBonus(int bonus) -{ - switch (bonus) { - case BONUS_SPEED: - return "speed"; - case BONUS_SHOT: - return "shot"; - case BONUS_TELEPORT: - return "teleport"; - case BONUS_GHOST: - return "ghost"; - case BONUS_4X: - return "4"; - case BONUS_HIDDEN: - return "hidden"; - default: - return "none"; - } - - return "bonus_unknown"; -} - -static void action_refreshTerm(space_t *space, tux_t *tux, void *p) -{ - char str[STR_SIZE]; - - sprintf(str, - "name: %s " - "score: %d " - "gun: %s " - "shot: %d " - "bonus: %s", - tux->name, tux->score, - getStrGun(tux->gun), tux->shot[tux->gun], getStrBonus(tux->bonus) - ); - - list_add(listText, strdup(str)); -} - -static void refreshTerm() -{ - arena_t *arena; - - arena = arena_get_current(); - - list_destroy_item(listText, free); - listText = list_new(); - - space_action(arena->spaceTux, action_refreshTerm, NULL); - - /*printf("refresh term..\n");*/ -} - -void term_draw() -{ - int i; - - if (activeTerm == FALSE) { - return; - } - - for (i = 0; i < listText->count; i++) { - char *line; - - line = (char *) listText->list[i]; - font_draw(line, 10, 10 + i * 20, COLOR_WHITE); - } -} - -static void switchTerm() -{ - if (activeTerm == TRUE) { - activeTerm = FALSE; - } else { - activeTerm = TRUE; - } -} - -void term_event() -{ - my_time_t currentTime; - Uint8 *mapa; - - mapa = SDL_GetKeyState(NULL); - - currentTime = timer_get_current_time(); - - if (currentTime - lastRefresh > TERM_REFRESH_TIME_INTERVAL) { - lastRefresh = currentTime; - refreshTerm(); - } - - if (mapa[SDLK_TAB] == SDL_PRESSED) { - if (currentTime - lastActive > TERM_ACTIVE_TIME_INTERVAL) { - lastActive = currentTime; - switchTerm(); - } - } -} - -void term_quit() -{ - assert(listText != NULL); - list_destroy_item(listText, free); -} diff --git a/src/client/term.h b/src/client/term.h deleted file mode 100644 index 719df2d..0000000 --- a/src/client/term.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef TERM_H -#define TERM_H - -#include "main.h" - -#define TERM_ACTIVE_TIME_INTERVAL 500 -#define TERM_REFRESH_TIME_INTERVAL 1000 - -extern void term_init(); -extern void term_draw(); -extern void term_event(); -extern void term_quit(); - -#endif /* TERM_H */ diff --git a/src/client/yes_no_dialog.c b/src/client/yes_no_dialog.c deleted file mode 100644 index d982933..0000000 --- a/src/client/yes_no_dialog.c +++ /dev/null @@ -1,134 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" - -#include "interface.h" -#include "hotKey.h" -#include "yes_no_dialog.h" -#include "image.h" -#include "font.h" - -#include "widget.h" -#include "widget_label.h" -#include "widget_button.h" - -static image_t *g_background; - -static widget_t *widgetLabelMsg; - -static widget_t *widgetButtonYes; -static widget_t *widgetButtonNo; - -static void (*handle_yes)(void *param); -static void (*handle_no)(void *param); -static void *param; -static bool_t active_dialog; - -static void eventWidget(void *p) -{ - widget_t *button; - - button = (widget_t *) p; - - yes_no_dialog_set_active(FALSE); - - if (button == widgetButtonYes) { - handle_yes(param); - } - - if (button == widgetButtonNo) { - handle_no(param); - } -} - -void yes_no_dialog_init() -{ - active_dialog = FALSE; - - g_background = image_get(IMAGE_GROUP_BASE, "screen_main"); - - widgetLabelMsg = label_new("empty label", WINDOW_SIZE_X / 2, - YES_NO_DIALOG_LOCATIN_Y + 20, - WIDGET_LABEL_CENTER); - - widgetButtonYes = button_new(_("Yes"), YES_NO_DIALOG_LOCATIN_X + 20, - YES_NO_DIALOG_LOCATIN_Y + 60, - eventWidget); - - widgetButtonNo = button_new(_("No"), YES_NO_DIALOG_LOCATIN_X + 20 + - WIDGET_BUTTON_WIDTH + 20, - YES_NO_DIALOG_LOCATIN_Y + 60, - eventWidget); -} - -static void hotkey_escape() -{ - yes_no_dialog_set_active(FALSE); - handle_no(param); -} - -void yes_no_dialog_set_active(bool_t active) -{ - active_dialog = active; - - if (active_dialog == TRUE) { - hot_key_register(SDLK_ESCAPE, hotkey_escape); - } else { - hot_key_unregister(SDLK_ESCAPE); - } -} - -bool_t yes_no_dialog_is_active() -{ - return active_dialog; -} - -void yes_no_dialog_set(char *label, void *function_yes, void *function_no, void *p_param) -{ - label_destroy(widgetLabelMsg); - - widgetLabelMsg = label_new(label, WINDOW_SIZE_X / 2, - YES_NO_DIALOG_LOCATIN_Y + 20, - WIDGET_LABEL_CENTER); - - handle_yes = function_yes; - handle_no = function_no; - param = p_param; -} - -void yes_no_dialog_draw() -{ - if (active_dialog == FALSE) { - return; - } - - image_draw(g_background, YES_NO_DIALOG_LOCATIN_X, - YES_NO_DIALOG_LOCATIN_Y, - YES_NO_DIALOG_LOCATIN_X, - YES_NO_DIALOG_LOCATIN_Y, - YES_NO_DIALOG_SIZE_X, - YES_NO_DIALOG_SIZE_Y); - - label_draw(widgetLabelMsg); - button_draw(widgetButtonYes); - button_draw(widgetButtonNo); -} - -void yes_no_dialog_event() -{ - if (active_dialog == FALSE) { - return; - } - - button_event(widgetButtonYes); - button_event(widgetButtonNo); -} - -void yes_no_dialog_quit() -{ - label_destroy(widgetLabelMsg); - button_destroy(widgetButtonYes); - button_destroy(widgetButtonNo); -} diff --git a/src/client/yes_no_dialog.h b/src/client/yes_no_dialog.h deleted file mode 100644 index 3cef74c..0000000 --- a/src/client/yes_no_dialog.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef YES_NO_DIALOG_H -#define YES_NO_DIALOG_H - -#define YES_NO_ACTIVE_TIME_INTERVAL 500 - -#define YES_NO_DIALOG_SIZE_X 320 -#define YES_NO_DIALOG_SIZE_Y 120 - -#define YES_NO_DIALOG_LOCATIN_X (WINDOW_SIZE_X / 2 - YES_NO_DIALOG_SIZE_X / 2) -#define YES_NO_DIALOG_LOCATIN_Y (WINDOW_SIZE_Y / 2 - YES_NO_DIALOG_SIZE_Y / 2) - -extern void yes_no_dialog_init(); -extern void yes_no_dialog_set_active(bool_t active); -extern bool_t yes_no_dialog_is_active(); -extern void yes_no_dialog_set(char *label, void *function_yes, void *function_no, void *p_param); -extern void yes_no_dialog_draw(); -extern void yes_no_dialog_event(); -extern void yes_no_dialog_quit(); - -#endif /* YES_NO_DIALOG_H */ diff --git a/src/color.c b/src/color.c new file mode 100644 index 0000000..de05866 --- /dev/null +++ b/src/color.c @@ -0,0 +1,28 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "color.h" + +ta_color ta_color_white; +ta_color ta_color_black; + +void ta_color_init(void) { + ta_color_white = (ta_color){ 255, 255, 255, 255 }; + ta_color_black = (ta_color){ 0, 0, 0, 255 }; +}
\ No newline at end of file diff --git a/src/events.c b/src/events.c new file mode 100644 index 0000000..f107733 --- /dev/null +++ b/src/events.c @@ -0,0 +1,34 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "ta_sdl.h" +#include "main.h" +#include "exit_key.h" +#include "keyboard.h" + +void ta_events_update(void) { + SDL_Event event; + while (SDL_PollEvent(&event)) { + if (event.type == SDL_EVENT_QUIT) { + ta_main_exit(1); + } else if (event.type == SDL_EVENT_KEY_DOWN) { + ta_keyboard_dispatch(event.key.key); + } + } +}
\ No newline at end of file diff --git a/src/exit_key.c b/src/exit_key.c new file mode 100644 index 0000000..263934b --- /dev/null +++ b/src/exit_key.c @@ -0,0 +1,42 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include <stdbool.h> +#include "ta_sdl.h" +#include "main.h" +#include "logging.h" +#include "keyboard.h" + +#define TA_EXIT_KEY SDLK_ESCAPE + +bool ta_exit_key_ignore = false; + +void ta_exit_key_callback(void) { + if (ta_exit_key_ignore) { + ta_log("Escape key pressed but ta_exit_key_ignore is true, ignoring"); + return; + } else { + ta_log("Escape key pressed, exiting"); + ta_main_exit(0); + } +} + +void ta_exit_key_init(void) { + ta_keyboard_set_callback(TA_EXIT_KEY, ta_exit_key_callback); +}
\ No newline at end of file diff --git a/src/forever.c b/src/forever.c new file mode 100644 index 0000000..a8e0351 --- /dev/null +++ b/src/forever.c @@ -0,0 +1,37 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "forever.h" + +#ifdef __EMSCRIPTEN__ +#include <emscripten/emscripten.h> +#include <stdbool.h> +#endif // __EMSCRIPTEN__ + +void ta_forever(ta_loop loop) { +#ifndef __EMSCRIPTEN__ + while (1) { + loop(); + } +#else // __EMSCRIPTEN__ + int fps = 0; + bool simulate_infinite_loop = true; + emscripten_set_main_loop(loop, fps, simulate_infinite_loop); +#endif // __EMSCRIPTEN__ +}
\ No newline at end of file diff --git a/src/gpu.c b/src/gpu.c new file mode 100644 index 0000000..9d4bd9d --- /dev/null +++ b/src/gpu.c @@ -0,0 +1,209 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include <stdbool.h> +#include "ta_sdl.h" +#include "window.h" +#include "files.h" +#include "text.h" +#include "logging.h" +#include "screen.h" + +#define SPIRV_ENTRY_POINT "main" + +SDL_GPUDevice *ta_gpu_device; +SDL_GPUGraphicsPipeline *ta_gpu_text_pipeline; +SDL_GPUTexture *ta_gpu_text_texture; +SDL_GPUSampler *ta_gpu_text_sampler; +Uint32 ta_gpu_text_texture_width; +Uint32 ta_gpu_text_texture_height; +static SDL_GPUTexture *ta_gpu_msaa_texture; +static SDL_GPUTexture *ta_gpu_depth_texture; +SDL_GPUSampleCount ta_gpu_sample_count = SDL_GPU_SAMPLECOUNT_8; +SDL_GPUTextureFormat ta_gpu_swapchain_format; +static Uint32 ta_gpu_msaa_texture_width; +static Uint32 ta_gpu_msaa_texture_height; +static SDL_GPUCommandBuffer *ta_gpu_command_buffer; +static SDL_GPUTexture *ta_gpu_swapchain_texture; + +static void ta_gpu_resize_msaa_texture(SDL_GPUTextureFormat format) { + if (ta_gpu_msaa_texture_width == (Uint32)ta_window_width && + ta_gpu_msaa_texture_height == (Uint32)ta_window_height && + ta_gpu_msaa_texture) { + return; + } + + SDL_ReleaseGPUTexture(ta_gpu_device, ta_gpu_msaa_texture); + SDL_ReleaseGPUTexture(ta_gpu_device, ta_gpu_depth_texture); + ta_gpu_msaa_texture = NULL; + ta_gpu_depth_texture = NULL; + + SDL_GPUTextureCreateInfo texture_info = { + .type = SDL_GPU_TEXTURETYPE_2D, + .format = format, + .usage = SDL_GPU_TEXTUREUSAGE_COLOR_TARGET, + .width = (Uint32)ta_window_width, + .height = (Uint32)ta_window_height, + .layer_count_or_depth = 1, + .num_levels = 1, + .sample_count = ta_gpu_sample_count, + }; + ta_gpu_msaa_texture = ta_sdl_create_gpu_texture(ta_gpu_device, &texture_info); + texture_info.format = SDL_GPU_TEXTUREFORMAT_D32_FLOAT; + texture_info.usage = SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET; + ta_gpu_depth_texture = ta_sdl_create_gpu_texture(ta_gpu_device, &texture_info); + ta_gpu_msaa_texture_width = (Uint32)ta_window_width; + ta_gpu_msaa_texture_height = (Uint32)ta_window_height; +} + +static SDL_GPUShader *ta_gpu_load_shader(SDL_GPUDevice *device, const void *code, size_t code_size, SDL_GPUShaderStage stage, Uint32 num_samplers, Uint32 num_uniform_buffers) { + SDL_GPUShaderCreateInfo info = { + .code = code, + .code_size = code_size, + .entrypoint = SPIRV_ENTRY_POINT, + .format = SDL_GPU_SHADERFORMAT_SPIRV, + .stage = stage, + .num_samplers = num_samplers, + .num_uniform_buffers = num_uniform_buffers, + }; + + SDL_GPUShader *shader = ta_sdl_create_gpu_shader(device, &info); + return shader; +} + +void ta_gpu_init(void) { + ta_gpu_device = ta_sdl_create_gpu_device(); + + ta_sdl_claim_window_for_gpu_device(ta_gpu_device, ta_window); + + ta_gpu_swapchain_format = SDL_GetGPUSwapchainTextureFormat(ta_gpu_device, ta_window); + ta_gpu_resize_msaa_texture(ta_gpu_swapchain_format); + + SDL_GPUShader *vertex_shader = ta_gpu_load_shader( + ta_gpu_device, + file_text_vert_slang_spv_start, + file_text_vert_slang_spv_size, + SDL_GPU_SHADERSTAGE_VERTEX, + 0, + 1 + ); + SDL_GPUShader *fragment_shader = ta_gpu_load_shader( + ta_gpu_device, + file_text_frag_slang_spv_start, + file_text_frag_slang_spv_size, + SDL_GPU_SHADERSTAGE_FRAGMENT, + 1, + 0 + ); + + SDL_GPUColorTargetDescription color_target = { + .format = ta_gpu_swapchain_format, + .blend_state = { + .src_color_blendfactor = SDL_GPU_BLENDFACTOR_SRC_ALPHA, + .dst_color_blendfactor = SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA, + .color_blend_op = SDL_GPU_BLENDOP_ADD, + .src_alpha_blendfactor = SDL_GPU_BLENDFACTOR_ONE, + .dst_alpha_blendfactor = SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA, + .alpha_blend_op = SDL_GPU_BLENDOP_ADD, + .enable_blend = true, + }, + }; + SDL_GPUGraphicsPipelineCreateInfo pipeline_info = { + .vertex_shader = vertex_shader, + .fragment_shader = fragment_shader, + .primitive_type = SDL_GPU_PRIMITIVETYPE_TRIANGLELIST, + .target_info = { + .num_color_targets = 1, + .color_target_descriptions = &color_target, + }, + .multisample_state = { + .sample_count = ta_gpu_sample_count, + }, + }; + ta_gpu_text_pipeline = ta_sdl_create_gpu_graphics_pipeline(ta_gpu_device, &pipeline_info); + SDL_ReleaseGPUShader(ta_gpu_device, vertex_shader); + SDL_ReleaseGPUShader(ta_gpu_device, fragment_shader); + + SDL_GPUSamplerCreateInfo sampler_info = { + .min_filter = SDL_GPU_FILTER_LINEAR, + .mag_filter = SDL_GPU_FILTER_LINEAR, + .mipmap_mode = SDL_GPU_SAMPLERMIPMAPMODE_NEAREST, + .address_mode_u = SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE, + .address_mode_v = SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE, + .address_mode_w = SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE, + }; + ta_gpu_text_sampler = ta_sdl_create_gpu_sampler(ta_gpu_device, &sampler_info); +} + +void ta_gpu_start_frame(void) { + ta_gpu_command_buffer = ta_sdl_acquire_gpu_command_buffer(ta_gpu_device); + ta_gpu_swapchain_texture = NULL; + ta_gpu_swapchain_format = SDL_GetGPUSwapchainTextureFormat(ta_gpu_device, ta_window); + + ta_sdl_wait_and_acquire_gpu_swapchain_texture(ta_gpu_command_buffer, ta_window, &ta_gpu_swapchain_texture); + if (ta_gpu_swapchain_texture) { + ta_gpu_resize_msaa_texture(ta_gpu_swapchain_format); + } +} + +void ta_gpu_end_frame(void) { + if (ta_gpu_swapchain_texture) { + ta_gpu_upload_text(ta_gpu_command_buffer); + ta_screen_upload(ta_gpu_command_buffer); + + float red = 0.0f; + float green = 0.0f; + float blue = 0.0f; + float alpha = 1.0f; + + SDL_GPUColorTargetInfo color_target = { + .texture = ta_gpu_msaa_texture, + .load_op = SDL_GPU_LOADOP_CLEAR, + .store_op = SDL_GPU_STOREOP_RESOLVE, + .resolve_texture = ta_gpu_swapchain_texture, + .clear_color = { + red, + green, + blue, + alpha + }, + }; + + SDL_GPUDepthStencilTargetInfo depth_target = { + .texture = ta_gpu_depth_texture, + .clear_depth = 1.0f, + .load_op = SDL_GPU_LOADOP_CLEAR, + .store_op = SDL_GPU_STOREOP_DONT_CARE, + .stencil_load_op = SDL_GPU_LOADOP_DONT_CARE, + .stencil_store_op = SDL_GPU_STOREOP_DONT_CARE, + }; + SDL_GPURenderPass *render_pass = ta_sdl_begin_gpu_render_pass( + ta_gpu_command_buffer, + &color_target, + 1, + &depth_target + ); + + ta_text_render(ta_gpu_command_buffer, render_pass); + ta_screen_render(ta_gpu_command_buffer, render_pass); + SDL_EndGPURenderPass(render_pass); + } + + ta_sdl_submit_gpu_command_buffer(ta_gpu_command_buffer); +} diff --git a/src/keyboard.c b/src/keyboard.c new file mode 100644 index 0000000..b5f6a2c --- /dev/null +++ b/src/keyboard.c @@ -0,0 +1,81 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "ta_sdl.h" +#include "keyboard.h" +#include <stdlib.h> +#include <string.h> + +static ta_key_callback_fn *ta_keyboard_callbacks = NULL; +static int ta_keyboard_callbacks_capacity = 0; + +static int ta_keyboard_ensure_capacity(int key) { + if (key < ta_keyboard_callbacks_capacity) { + return 1; + } + + int new_capacity = ta_keyboard_callbacks_capacity; + while (new_capacity <= key) { + new_capacity += sizeof(SDLK_UNKNOWN); + } + + ta_key_callback_fn *new_array = realloc( + ta_keyboard_callbacks, + (size_t)new_capacity * sizeof(ta_key_callback_fn) + ); + if (new_array == NULL) { + return 0; + } + + memset( + new_array + ta_keyboard_callbacks_capacity, + 0, + (size_t)(new_capacity - ta_keyboard_callbacks_capacity) * sizeof(ta_key_callback_fn) + ); + + ta_keyboard_callbacks = new_array; + ta_keyboard_callbacks_capacity = new_capacity; + return 1; +} + +void ta_keyboard_set_callback(int key, void (*callback)(void)) { + if (key < 0 || !ta_keyboard_ensure_capacity(key)) { + return; + } + ta_keyboard_callbacks[key] = callback; +} + +void ta_keyboard_dispatch(int key) { + if (key < 0) { + return; + } + + if (key < ta_keyboard_callbacks_capacity && ta_keyboard_callbacks[key] != NULL) { + ta_keyboard_callbacks[key](); + } +} + +void ta_keyboard_shutdown(void) { + if (ta_keyboard_callbacks) { + free(ta_keyboard_callbacks); + } + + ta_keyboard_callbacks = NULL; + ta_keyboard_callbacks_capacity = 0; +}
\ No newline at end of file diff --git a/src/logging.c b/src/logging.c new file mode 100644 index 0000000..cdaa6bb --- /dev/null +++ b/src/logging.c @@ -0,0 +1,227 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2010 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "ta_sdl.h" + +#ifdef UNIX_LIKE +#define UNW_LOCAL_ONLY +#include <libunwind.h> +#include <elfutils/libdwfl.h> +#include <unistd.h> +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#include <stdarg.h> +#include <time.h> +#include <sys/time.h> + +#define LOG_TIMESTAMP_SIZE 30 + +static Dwfl *ta_dwfl_open_self(void) { + static char *debuginfo_path; + static const Dwfl_Callbacks callbacks = { + .find_elf = dwfl_linux_proc_find_elf, + .find_debuginfo = dwfl_standard_find_debuginfo, + .debuginfo_path = &debuginfo_path, + }; + + Dwfl *dwfl = dwfl_begin(&callbacks); + if (dwfl == NULL) { + return NULL; + } + + if (dwfl_linux_proc_report(dwfl, getpid()) != 0) { + dwfl_end(dwfl); + return NULL; + } + + if (dwfl_report_end(dwfl, NULL, NULL) != 0) { + dwfl_end(dwfl); + return NULL; + } + + return dwfl; +} + +static char *ta_get_proc_name(unw_cursor_t *cursor) { + char *buf = NULL; + size_t cap = 0; + unw_word_t proc_offset = 0; + + while (1) { + size_t grow_to = (cap == 0) ? 64 : (cap * 2); + char *grown = realloc(buf, grow_to); + if (grown == NULL) { + free(buf); + return NULL; + } + buf = grown; + cap = grow_to; + + int ret = unw_get_proc_name(cursor, buf, cap, &proc_offset); + if (ret == 0) { + return buf; + } + if (ret != -UNW_ENOMEM) { + free(buf); + return NULL; + } + } +} + +static void ta_get_timestamp(char *buf, size_t buf_size) { + struct timespec ts; + clock_gettime(CLOCK_REALTIME, &ts); + + struct tm tm_info; + localtime_r(&ts.tv_sec, &tm_info); + + size_t len = strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S", &tm_info); + snprintf(buf + len, buf_size - len, ".%03ld", ts.tv_nsec / 1000000); +} + +static char *ta_format_message(const char *format, va_list args) { + va_list args_copy; + va_copy(args_copy, args); + int needed = vsnprintf(NULL, 0, format, args_copy); + va_end(args_copy); + + if (needed < 0) { + return NULL; + } + + char *message = malloc((size_t)needed + 1); + if (message == NULL) { + return NULL; + } + + vsnprintf(message, (size_t)needed + 1, format, args); + return message; +} + +void ta_log(const char *format, ...) { + unw_cursor_t cursor; + unw_context_t context; + int code; + + code = unw_getcontext(&context); + if (code != 0) { + SDL_Log("unw_getcontext failed with code %d\n", code); + return; + } + + code = unw_init_local(&cursor, &context); + if (code != 0) { + SDL_Log("unw_init_local failed with code %d\n", code); + return; + } + + code = unw_step(&cursor); + if (code <= 0) { + SDL_Log("unw_step failed with code %d\n", code); + return; + } + + unw_word_t ip = 0; + if (unw_get_reg(&cursor, UNW_REG_IP, &ip) != 0 || ip == 0) { + SDL_Log("unw_get_reg failed to resolve caller IP\n"); + return; + } + + const char *file = NULL; + int src_line = 0; + const char *func_name = NULL; + char *proc_name_buf = NULL; + + Dwfl *dwfl = ta_dwfl_open_self(); + if (dwfl != NULL) { + Dwfl_Module *mod = dwfl_addrmodule(dwfl, (Dwarf_Addr)ip); + if (mod != NULL) { + func_name = dwfl_module_addrname(mod, (GElf_Addr)ip); + + Dwfl_Line *dwfl_line = dwfl_module_getsrc(mod, (Dwarf_Addr)ip); + if (dwfl_line != NULL) { + Dwarf_Addr src_addr; + file = dwfl_lineinfo(dwfl_line, &src_addr, &src_line, NULL, NULL, NULL); + } + } + } + + if (func_name == NULL) { + proc_name_buf = ta_get_proc_name(&cursor); + func_name = proc_name_buf; + } + + va_list args; + va_start(args, format); + char *message = ta_format_message(format, args); + va_end(args); + + const char *out_message = (message != NULL) ? message : format; + + /* + * PATCH: + * Remove leading '/' + * I cannot find a way to make it not do it with the compiler. + * This uses extra cpu cycles and makes the binary larger then it has to be. + * Make a script to trim it from the DWARF info. + */ + if (file != NULL) { + const char *basename = strrchr(file, '/'); + if (basename != NULL) { + file = basename + 1; + } + } + + char timestamp[LOG_TIMESTAMP_SIZE]; + ta_get_timestamp(timestamp, sizeof(timestamp)); + + if (file != NULL && src_line > 0 && func_name != NULL) { + printf("[%s] %s:%d:%s(): %s\n", timestamp, file, src_line, func_name, out_message); + } else if (func_name != NULL) { + printf("[%s] %s(): %s\n", timestamp, func_name, out_message); + } else { + printf("[%s] 0x%lx: %s\n", timestamp, (unsigned long)ip, out_message); + } + + free(message); + free(proc_name_buf); + + if (dwfl != NULL) { + dwfl_end(dwfl); + } +} + +#else // UNIX_LIKE + +void ta_log(const char *fmt, ...) { + va_list args; + va_start(args, fmt); + + SDL_LogMessageV( + SDL_LOG_CATEGORY_APPLICATION, + SDL_LOG_PRIORITY_INFO, + fmt, + args + ); + + va_end(args); +} + +#endif // UNIX_LIKE
\ No newline at end of file diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..4cbd53a --- /dev/null +++ b/src/main.c @@ -0,0 +1,88 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include <stdlib.h> +#include "window.h" +#include "version.h" +#include "ta_sdl.h" +#include "logging.h" +#include "forever.h" +#include "gpu.h" +#include "text.h" +#include "events.h" +#include "exit_key.h" +#include "keyboard.h" +#include "ta_sdl_ttf.h" +#include "scale.h" +#include "audio.h" +#include "screen.h" +#include "color.h" +#include "teapot.h" +#include "mouse.h" + +static void ta_main_init(void) { + ta_color_init(); + ta_window_init(); + ta_exit_key_init(); + ta_sdl_ttf_init(); + ta_text_init(); + ta_gpu_init(); + ta_teapot_init(); +#ifdef ENABLE_AUDIO + ta_audio_init(); +#endif // ENABLE_AUDIO + ta_screen_current = MAIN_MENU; +} + +static void ta_main_update(void) { + ta_events_update(); + ta_window_update(); +#ifdef ENABLE_AUDIO + ta_audio_update(); +#endif // ENABLE_AUDIO + ta_gpu_start_frame(); + ta_mouse_update(); + ta_screen_update(); + ta_gpu_end_frame(); +} + +void ta_main_exit(int code) { + ta_keyboard_shutdown(); +#ifdef ENABLE_AUDIO + ta_audio_destroy(); +#endif // ENABLE_AUDIO + ta_text_shutdown(); + ta_teapot_shutdown(); + ta_window_shutdown(); + ta_sdl_ttf_shutdown(); + ta_sdl_shutdown(); + + ta_log("Exiting tuxanci2 with code %d", code); + exit(code); +} + +int main(void) { + SDL_Log("tuxanci2 version " TA_VERSION "\n\n"); + + ta_main_init(); + + ta_forever(ta_main_update); + + return 0; +}
\ No newline at end of file diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt deleted file mode 100644 index 50b3c79..0000000 --- a/src/modules/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -############################################################################### -# tuxanci/src/modules/CMakeLists.txt -############################################################################### -############################################################################### -# SOURCE SPECIFICATION -############################################################################### -INCLUDE_DIRECTORIES ( ${CMAKE_BINARY_DIR}/src/base/ ) -IF ( BUILD_SERVER ) - SET ( SRC_base_modules - ${WORKDIR}/server/publicServer.h - ) -ELSE ( BUILD_SERVER ) - SET ( SRC_base_modules - ${WORKDIR}/client/interface.h ${WORKDIR}/client/image.h - ) -ENDIF ( BUILD_SERVER ) -SET ( SRC_base_modules - ${SRC_base_modules} - ${WORKDIR}/base/main.h ${WORKDIR}/base/modules.h - ${WORKDIR}/base/shot.h ${WORKDIR}/base/tux.h - ${WORKDIR}/base/list ${WORKDIR}/base/gun.h - ${WORKDIR}/base/space ${WORKDIR}/base/index -) -############################################################################### -# COMPILATION AND INSTALLATION ITSELF -############################################################################### -FILE ( GLOB _lib_files mod*.c ) -FOREACH ( _current_LIB_FILE ${_lib_files} ) - GET_FILENAME_COMPONENT( _lib ${_current_LIB_FILE} NAME_WE ) - ADD_LIBRARY ( ${_lib} STATIC ${SRC_base_modules} ${_current_LIB_FILE} ) -ENDFOREACH ( _current_LIB_FILE ) -############################################################################### diff --git a/src/modules/modAI.c b/src/modules/modAI.c deleted file mode 100644 index c7d2c02..0000000 --- a/src/modules/modAI.c +++ /dev/null @@ -1,410 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "modules.h" -#include "tux.h" -#include "shot.h" -#include "list.h" -#include "gun.h" -#include "space.h" - -#ifndef PUBLIC_SERVER -#include "interface.h" -#include "image.h" -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#endif /* PUBLIC_SERVER */ - -static export_fce_t *export_fce; - -typedef struct alternative_struct { - int first; - int route; - int step; - int x, y; -} alternative_t; - -static alternative_t *newAlternative(int route, int x, int y) -{ - alternative_t *new; - - new = malloc(sizeof(alternative_t)); - new->first = route; - new->route = route; - new->x = x; - new->y = y; - new->step = 0; - - return new; -} - -static alternative_t *cloneAlternative(alternative_t *p, int route, int x, int y) -{ - alternative_t *new; - - assert(p != NULL); - - new = newAlternative(route, p->x, p->y); - new->first = p->first; - new->step = p->step; - - return new; -} - -static void forkAlternative(list_t *list, alternative_t *p, int w, int h) -{ - int x, y; - - assert(list != NULL); - assert(p != NULL); - - x = p->x; - y = p->y; - - switch (p->route) { - case TUX_UP: - list_add(list, cloneAlternative(p, TUX_RIGHT, x + (w + 5), y)); - list_add(list, cloneAlternative(p, TUX_LEFT, x - (w + 5), y)); - break; - case TUX_RIGHT: - list_add(list, cloneAlternative(p, TUX_UP, x, y - (h + 5))); - list_add(list, cloneAlternative(p, TUX_DOWN, x, y + (h + 5))); - break; - case TUX_LEFT: - list_add(list, cloneAlternative(p, TUX_UP, x, y - (h + 5))); - list_add(list, cloneAlternative(p, TUX_DOWN, x, y + (h + 5))); - break; - case TUX_DOWN: - list_add(list, cloneAlternative(p, TUX_RIGHT, x + (w + 5), y)); - list_add(list, cloneAlternative(p, TUX_LEFT, x - (w + 5), y)); - break; - } - -} - -static void moveAlternative(alternative_t *p, int offset) -{ - assert(p != NULL); - - p->step++; - - /*printf("move %d %d %d\n", p->x, p->y, p->step);*/ - - switch (p->route) { - case TUX_UP: - p->y -= offset; - break; - case TUX_RIGHT: - p->x += offset; - break; - case TUX_LEFT: - p->x -= offset; - break; - case TUX_DOWN: - p->y += offset; - break; - } -} - -static void destroyAlternative(alternative_t *p) -{ - assert(p != NULL); - free(p); -} - -static void cmd_ai(char *line) -{ -} - -static int init(export_fce_t *p) -{ - export_fce = p; - - return 0; -} - -#ifndef PUBLIC_SERVER -static int draw(int x, int y, int w, int h) -{ - return 0; -} -#endif /* PUBLIC_SERVER */ - -static tux_t *findOtherTux(space_t *space) -{ - int i; - - for (i = 0; i < space_get_count(space); i++) { - tux_t *thisTux; - - thisTux = space_get_item(space, i); - - if (thisTux->control != TUX_CONTROL_AI) { - return thisTux; - } - } - - return NULL; -} - -static void shotTux(arena_t *arena, tux_t *tux_ai, tux_t *tux_rival) -{ - const int limit = 20; - int x_ai, y_ai; - int x_rival, y_rival; - int w, h; - - export_fce->fce_tux_get_proportion(tux_ai, &x_ai, &y_ai, &w, &h); - export_fce->fce_tux_get_proportion(tux_rival, &x_rival, &y_rival, &w, &h); - - if (y_rival < y_ai && x_rival > x_ai && x_rival < x_ai + limit) { - export_fce->fce_tux_action(tux_ai, TUX_UP); - export_fce->fce_tux_action(tux_ai, TUX_SHOT); - } - - if (x_rival > x_ai && y_rival > y_ai && y_rival < y_ai + limit) { - export_fce->fce_tux_action(tux_ai, TUX_RIGHT); - export_fce->fce_tux_action(tux_ai, TUX_SHOT); - } - - if (x_rival < x_ai && y_rival > y_ai && y_rival < y_ai + limit) { - export_fce->fce_tux_action(tux_ai, TUX_LEFT); - export_fce->fce_tux_action(tux_ai, TUX_SHOT); - } - - if (y_rival > y_ai && x_rival > x_ai && x_rival < x_ai + limit) { - export_fce->fce_tux_action(tux_ai, TUX_DOWN); - export_fce->fce_tux_action(tux_ai, TUX_SHOT); - } -} - -static void tux_eventAI(tux_t *tux) -{ - arena_t *arena; - tux_t *rivalTux; - - list_t *listAlternative; - list_t *listDst; - list_t *listFork; - - int x, y, w, h; - int rival_x, rival_y; - int i, my_index; - - int countFork = 0; - int countDel = 0; - int countLimit = 0; - int countDo = 0; - - export_fce->fce_tux_get_proportion(tux, &x, &y, &w, &h); - /*printf("tux AI %d %d\n", x, y);*/ - - arena = export_fce->fce_arena_get_current(); - - rivalTux = findOtherTux(arena->spaceTux); - - if (rivalTux == NULL || rivalTux->status != TUX_STATUS_ALIVE) { - return; - } - - listAlternative = list_new(); - listDst = list_new(); - listFork = list_new(); - - shotTux(arena, tux, rivalTux); - - export_fce->fce_tux_get_proportion(rivalTux, &rival_x, &rival_y, NULL, NULL); - /*printf("tux rival %d %d\n", rival_x, rival_y);*/ - - list_add(listAlternative, newAlternative(TUX_UP, x, y - (h + 10))); - list_add(listAlternative, newAlternative(TUX_RIGHT, x + (w + 10), y)); - list_add(listAlternative, newAlternative(TUX_LEFT, x - (w + 10), y)); - list_add(listAlternative, newAlternative(TUX_DOWN, x, y + (h + 10))); - - my_index = -1; - for (;;) { - alternative_t *this; - - my_index++; - if (my_index < 0 || my_index >= listAlternative->count) { - int j; - - /*printf("listFork->count = %d\n", listFork->count);*/ - - for (j = 0; j < listFork->count; j++) { - list_add(listAlternative, listFork->list[j]); - } - - list_do_empty(listFork); - - my_index = 0; - } - - if (listAlternative->count == 0) { - break; - } - - this = (alternative_t *) listAlternative->list[my_index]; - - if (++countDo == 100) { - break; - } - - if (this->step > 100) { - list_del_item(listAlternative, my_index, destroyAlternative); - countLimit++; - my_index--; - continue; - } - - moveAlternative(this, w * 2); - - if (export_fce->fce_arena_is_free_space(arena, this->x, this->y, w, h) == 1) { - forkAlternative(listFork, this, 2 * w, 2 * h); - countFork++; - continue; - } - - if (export_fce->fce_arena_conflict_space(this->x, this->y, w, h, - rival_x, rival_y, w, h)) { - /*printf("this->step = %d\n", this->step);*/ - - list_del(listAlternative, my_index); - list_add(listDst, this); - my_index--; - /*continue;*/ - break; - } - - if (export_fce->fce_arena_is_free_space(arena, this->x, this->y, w, h) == 0) { - /*forkAlternative(listFork, this, w*2, h*2);*/ - list_del_item(listAlternative, my_index, destroyAlternative); - my_index--; - countDel++; - - continue; - } - - } - - int minStep = 1000; - int recRoute = 0; - - /*printf("------------\n");*/ - for (i = 0; i < listDst->count; i++) { - alternative_t *this; - - this = (alternative_t *) listDst->list[i]; - - /*printf("XXX step %d route = %d\n", this->step, this->first);*/ - if (this->step < minStep) { - minStep = this->step; - recRoute = this->first; - } - } - - if (recRoute != 0) { - export_fce->fce_tux_action(tux, recRoute); - } - - list_destroy_item(listFork, destroyAlternative); - list_destroy_item(listAlternative, destroyAlternative); - list_destroy_item(listDst, destroyAlternative); -/* - printf("countFork = %d\n", countFork); - printf("countDel = %d\n", countDel); - printf("countLimit = %d\n", countLimit); - printf("countDo = %d\n", countDo); -*/ -} - -static void action_tuxAI(space_t *space, tux_t *tux, void *p) -{ - if (tux->control == TUX_CONTROL_AI && tux->status == TUX_STATUS_ALIVE) { - tux_eventAI(tux); - } -} - -static int event() -{ - static my_time_t lastEvent = 0; - my_time_t curentTime; - arena_t *arena; - int countTuxAI; - /*int i;*/ - - if (lastEvent == 0) { - lastEvent = export_fce->fce_timer_get_current_time(); - } - - curentTime = export_fce->fce_timer_get_current_time(); - - if (curentTime - lastEvent < 25) { - return 0; - } - - lastEvent = export_fce->fce_timer_get_current_time(); - /*printf("event AI\n");*/ - - arena = export_fce->fce_arena_get_current(); - - if (arena == NULL) { - return 0; - } - - countTuxAI = 0; - - space_action(arena->spaceTux, action_tuxAI, NULL); -/* - for( i = 0 ; i < arena->spaceTux->list->count ; i++ ) - { - tux_t *thisTux; - - thisTux = arena->spaceTux->list->list[i]; - - if( thisTux->control == TUX_CONTROL_AI && - thisTux->status == TUX_STATUS_ALIVE ) - { - tux_event(thisTux); - countTuxAI = 0; - } - } -*/ - return 0; -} - -static int isConflict(int x, int y, int w, int h) -{ - return 0; -} - -static void cmdArena(char *line) -{ - if (strncmp(line, "ai", 2) == 0) { - cmd_ai(line); - } -} - -static void recvMsg(char *msg) -{ -} - -static int destroy() -{ - return 0; -} - -mod_sym_t modai_sym = { &init, -#ifndef PUBLIC_SERVER - &draw, -#else /* PUBLIC_SERVER */ - 0, -#endif /* PUBLIC_SERVER */ - &event, - &isConflict, - &cmdArena, - &recvMsg, - &destroy }; diff --git a/src/modules/modBasic.c b/src/modules/modBasic.c deleted file mode 100644 index 8494916..0000000 --- a/src/modules/modBasic.c +++ /dev/null @@ -1,84 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "modules.h" -#include "tux.h" -#include "shot.h" -#include "list.h" -#include "gun.h" -#include "space.h" - -#ifndef PUBLIC_SERVER -#include "interface.h" -#include "image.h" -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#endif /* PUBLIC_SERVER */ - -static export_fce_t *export_fce; - -static int init(export_fce_t *p) -{ - export_fce = p; - - debug("Initializing Basic module"); - return 0; -} - -#ifndef PUBLIC_SERVER -static int draw(int x, int y, int w, int h) -{ - debug("Drawing Basic module"); - return 0; -} -#endif /* PUBLIC_SERVER */ - -static int event() -{ - debug("Basic module catch event"); - return 0; -} - -static int isConflict(int x, int y, int w, int h) -{ - debug("isConflict(%d, %d, %d, %d) in Basic module", x, y, w, h); - return 0; -} - -static void cmd_basic(char *line) -{ - debug("cmd_basic(%s) in Basic module", line); -} - -static void cmdArena(char *line) -{ - if (strncmp(line, "basic", 5) == 0) { - cmd_basic(line); - } -} - -static void recvMsg(char *msg) -{ - debug("recvMsg(%s) in Basic module", msg); -} - -static int destroy() -{ - debug("Destroying Basic module"); - return 0; -} - -mod_sym_t modbasic_sym = { &init, -#ifndef PUBLIC_SERVER - &draw, -#else /* PUBLIC_SERVER */ - 0, -#endif /* PUBLIC_SERVER */ - &event, - &isConflict, - &cmdArena, - &recvMsg, - &destroy }; diff --git a/src/modules/modMove.c b/src/modules/modMove.c deleted file mode 100644 index 9774170..0000000 --- a/src/modules/modMove.c +++ /dev/null @@ -1,269 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "modules.h" -#include "tux.h" -#include "shot.h" -#include "list.h" -#include "gun.h" -#include "space.h" -#include "serverSendMsg.h" - -#ifndef PUBLIC_SERVER -#include "interface.h" -#include "image.h" -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#endif /* PUBLIC_SERVER */ - -static export_fce_t *export_fce; - -static void move_tux(tux_t *tux, int x, int y, int w, int h) -{ - int dist_x = 0, dist_y = 0; - - if (tux->bonus == BONUS_GHOST || export_fce->fce_net_multiplayer_get_game_type() == NET_GAME_TYPE_CLIENT) { - return; - } - - switch (tux->position) { - case TUX_UP: - dist_x = x + w / 2; - dist_y = y - (TUX_HEIGHT + 20); - break; - case TUX_LEFT: - dist_x = x - (TUX_WIDTH + 20); - dist_y = y + h / 2; - break; - case TUX_RIGHT: - dist_x = x + w + 20; - dist_y = y + h / 2; - break; - case TUX_DOWN: - dist_x = x + w / 2; - dist_y = y + h + 20; - break; - default: - fatal("Variable tux->position in modMove has an undefined value [%d]", tux->position); - break; - } - - if (export_fce->fce_arena_is_free_space(export_fce->fce_arena_get_current(), dist_x, dist_y, TUX_WIDTH, TUX_HEIGHT)) { - space_move_object(export_fce->fce_arena_get_current()->spaceTux, tux, dist_x, dist_y); -#ifndef PUBLIC_SERVER - /*sound_play("teleport", SOUND_GROUP_BASE);*/ -#endif /* PUBLIC_SERVER */ - if (export_fce->fce_net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - char msg[STR_PROTO_SIZE]; - sprintf(msg, "movetux %d %d %d", tux->id, dist_x, dist_y); - if (tux->bonus == BONUS_HIDDEN) { - export_fce->fce_proto_send_module_server(PROTO_SEND_ONE, (client_t *) tux->client, msg); - } else { - export_fce->fce_proto_send_module_server(PROTO_SEND_ALL, NULL, msg); - } - } - } -} - -static int myAbs(int n) -{ - return (n > 0 ? n : -n); -} - - -static int getSppedShot(shot_t *shot) -{ - return (myAbs(shot->px) > myAbs(shot->py) ? myAbs(shot->px) : myAbs(shot->py)); -} - -static void transformShot(shot_t *shot, int position) -{ - int speed; - - speed = getSppedShot(shot); - switch (position) { - case TUX_UP: - shot->px = 0; - shot->py = -speed; - break; - case TUX_LEFT: - shot->px = -speed; - shot->py = 0; - break; - case TUX_RIGHT: - shot->px = +speed; - shot->py = 0; - break; - case TUX_DOWN: - shot->px = 0; - shot->py = +speed; - break; - } - - shot->position = position; - shot->isCanKillAuthor = TRUE; - - if (shot->gun == GUN_LASSER) { - export_fce->fce_shot_transform_lasser(shot); - } -} - -static void move_shot(shot_t *shot, int position, int src_x, int src_y, - int dist_x, int dist_y, int dist_w, int dist_h) -{ - int offset = 0; - int new_x = 0, new_y = 0; - - switch (shot->position) { - case TUX_UP: - case TUX_DOWN: - offset = shot->x - src_x; - break; - - case TUX_RIGHT: - case TUX_LEFT: - offset = shot->y - src_y; - break; - } - - transformShot(shot, position); - - switch (shot->position) { - case TUX_UP: - new_x = dist_x + offset; - new_y = dist_y - (shot->h + 5); - break; - case TUX_LEFT: - new_x = dist_x - (shot->w + 5); - new_y = dist_y + offset; - break; - case TUX_RIGHT: - new_x = dist_x + dist_w + 5; - new_y = dist_y + offset; - break; - case TUX_DOWN: - new_x = dist_x + offset; - new_y = dist_y + dist_h + 5; - break; - } - - space_move_object(export_fce->fce_arena_get_current()->spaceShot, shot, new_x, new_y); - if (export_fce->fce_net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - char msg[STR_PROTO_SIZE]; - - sprintf(msg, "moveshot %d %d %d %d %d %d", shot->id, - shot->x, shot->y, shot->px, shot->py, shot->position); - export_fce->fce_proto_send_module_server(PROTO_SEND_ALL, NULL, msg); - } -} - -static int init(export_fce_t *p) -{ - export_fce = p; - export_fce->fce_share_function_add("move_tux", (void *) move_tux); - export_fce->fce_share_function_add("move_shot", (void *) move_shot); - - return 0; -} - -static void proto_movetux(char *msg) -{ - char cmd[STR_PROTO_SIZE]; - int id, x, y; - space_t *space; - tux_t *tux; - - assert(msg != NULL); - - sscanf(msg, "%s %d %d %d", cmd, &id, &x, &y); - space = export_fce->fce_arena_get_current()->spaceTux; - tux = space_get_object_id(space, id); - - if (tux != NULL) { - space_move_object(space, tux, x, y); - } -} - -static void proto_moveshot(char *msg) -{ - char cmd[STR_PROTO_SIZE]; - int shot_id, x, y, px, py, position; - space_t *space; - shot_t *shot; - - assert(msg != NULL); - - sscanf(msg, "%s %d %d %d %d %d %d", cmd, &shot_id, &x, &y, &px, &py, &position); - - space = export_fce->fce_arena_get_current()->spaceShot; - - if ((shot = space_get_object_id(space, shot_id)) == NULL) { - return; - } - - space_move_object(space, shot, x, y); - shot->isCanKillAuthor = 1; - shot->position = position; - shot->px = px; - shot->py = py; - - if (shot->gun == GUN_LASSER) { - export_fce->fce_shot_transform_lasser(shot); - } -} - -#ifndef PUBLIC_SERVER -static int draw(int x, int y, int w, int h) -{ - return 0; -} -#endif /* PUBLIC_SERVER */ - -static int event() -{ - return 0; -} - -static int isConflict(int x, int y, int w, int h) -{ - return 0; -} - -static void cmdArena(char *line) -{ -} - -static void recvMsg(char *msg) -{ - if (export_fce->fce_net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - return; - } - - if (strncmp(msg, "movetux", 7) == 0) { - proto_movetux(msg); - } - - if (strncmp(msg, "moveshot", 8) == 0) { - proto_moveshot(msg); - } -} - -static int destroy() -{ - return 0; -} - -mod_sym_t modmove_sym = { &init, -#ifndef PUBLIC_SERVER - &draw, -#else /* PUBLIC_SERVER */ - 0, -#endif /* PUBLIC_SERVER */ - &event, - &isConflict, - &cmdArena, - &recvMsg, - &destroy }; diff --git a/src/modules/modPipe.c b/src/modules/modPipe.c deleted file mode 100644 index 9319fe0..0000000 --- a/src/modules/modPipe.c +++ /dev/null @@ -1,335 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "modules.h" -#include "tux.h" -#include "shot.h" -#include "list.h" -#include "gun.h" -#include "space.h" -#include "proto.h" -#include "serverSendMsg.h" - -#ifndef PUBLIC_SERVER -#include "interface.h" -#include "image.h" -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#endif /* PUBLIC_SERVER */ - -typedef struct pipe_struct { - /* position of the pipe */ - int x; - int y; - - /* size of the pipe */ - int w; - int h; - - int id; - int id_out; - int position; - - /* layer in the arena where the pipe lies */ - int layer; - -#ifndef PUBLIC_SERVER - /* its image */ - image_t *img; -#endif /* PUBLIC_SERVER */ -} pipe_t; - -static void (*fce_move_shot) (shot_t *shot, int position, int src_x, int src_y, int dist_x, int dist_y, int dist_w, int dist_h); - -static export_fce_t *export_fce; - -static list_t *listPipe; -static space_t *spacePipe; - -#ifndef PUBLIC_SERVER -static pipe_t *newPipe(int x, int y, int w, int h, int layer, int id, int id_out, int position, image_t *img) -#else /* PUBLIC_SERVER */ -static pipe_t *newPipe(int x, int y, int w, int h, int layer, int id, int id_out, int position) -#endif /* PUBLIC_SERVER */ -{ - pipe_t *new; - -#ifndef PUBLIC_SERVER - assert(img != NULL); -#endif /* PUBLIC_SERVER */ - - new = malloc(sizeof(pipe_t)); - assert(new != NULL); - - new->x = x; - new->y = y; - new->w = w; - new->h = h; - new->layer = layer; - new->id = id; - new->id_out = id_out; - new->position = position; -#ifndef PUBLIC_SERVER - new->img = img; -#endif /* PUBLIC_SERVER */ - return new; -} - -static void setStatusPipe(void *p, int x, int y, int w, int h) -{ - pipe_t *pipe; - - pipe = p; - - pipe->x = x; - pipe->y = y; - pipe->w = w; - pipe->h = h; -} - -static void getStatusPipe(void *p, int *id, int *x, int *y, int *w, int *h) -{ - pipe_t *pipe; - - pipe = p; - - *id = pipe->id; - *x = pipe->x; - *y = pipe->y; - *w = pipe->w; - *h = pipe->h; -} - -#ifndef PUBLIC_SERVER -static void drawPipe(pipe_t *p) -{ - assert(p != NULL); - - export_fce->fce_addLayer(p->img, p->x, p->y, 0, 0, p->img->w, p->img->h, p->layer); -} -#endif /* PUBLIC_SERVER */ - -static void destroyPipe(pipe_t *p) -{ - assert(p != NULL); - free(p); -} - -static void cmd_teleport(char *line) -{ - char str_x[STR_NUM_SIZE]; - char str_y[STR_NUM_SIZE]; - char str_w[STR_NUM_SIZE]; - char str_h[STR_NUM_SIZE]; - char str_id[STR_NUM_SIZE]; - char str_id_out[STR_NUM_SIZE]; - char str_position[STR_NUM_SIZE]; - char str_layer[STR_NUM_SIZE]; - char str_image[STR_SIZE]; - pipe_t *new; - - if (export_fce->fce_getValue(line, "x", str_x, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "y", str_y, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "w", str_w, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "h", str_h, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "id", str_id, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "id_out", str_id_out, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "position", str_position, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "layer", str_layer, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "image", str_image, STR_SIZE) != 0) { - return; - } - -#ifndef PUBLIC_SERVER - new = newPipe(atoi(str_x), atoi(str_y), - atoi(str_w), atoi(str_h), - atoi(str_layer), atoi(str_id), atoi(str_id_out), - atoi(str_position), - export_fce->fce_image_get(IMAGE_GROUP_USER, str_image)); -#else /* PUBLIC_SERVER */ - new = newPipe(atoi(str_x), atoi(str_y), - atoi(str_w), atoi(str_h), - atoi(str_layer), atoi(str_id), atoi(str_id_out), - atoi(str_position)); -#endif /* PUBLIC_SERVER */ - - if (spacePipe == NULL) { - spacePipe = space_new(export_fce->fce_arena_get_current()->w, - export_fce->fce_arena_get_current()->h, 320, 240, - getStatusPipe, setStatusPipe); - } - - space_add(spacePipe, new); -} - -static void moveShotFromPipe(shot_t *shot, pipe_t *pipe) -{ - pipe_t *distPipe; - - distPipe = space_get_object_id(spacePipe, pipe->id_out); - - if (distPipe == NULL) { - error("Pipe ID was not found [%d]", pipe->id); - return; - } - - fce_move_shot(shot, distPipe->position, pipe->x, pipe->y, distPipe->x, distPipe->y, distPipe->w, distPipe->h); -} - -static int init(export_fce_t *p) -{ - export_fce = p; - - listPipe = list_new(); - - if (export_fce->fce_module_load_dep("libmodMove") != 0) { - return -1; - } - - if ((fce_move_shot = export_fce->fce_share_function_get("move_shot")) == NULL) { - return -1; - } - - return 0; -} - -#ifndef PUBLIC_SERVER -static void action_drawpipe(space_t *space, pipe_t *pipe, void *p) -{ - drawPipe(pipe); -} - -static int draw(int x, int y, int w, int h) -{ - if (spacePipe == NULL) { - return 0; - } - - space_action_from_location(spacePipe, action_drawpipe, NULL, x, y, w, h); - /*space_print(spacePipe);*/ - - return 0; -} -#endif /* PUBLIC_SERVER */ - -static int negPosition(int n) -{ - switch (n) { - case TUX_UP: - return TUX_DOWN; - - case TUX_LEFT: - return TUX_RIGHT; - - case TUX_RIGHT: - return TUX_LEFT; - - case TUX_DOWN: - return TUX_UP; - - default: - fatal("Tux is probably moving in another dimension"); - break; - } - - return -1; -} - -static void action_eventpipe(space_t *space, pipe_t *pipe, shot_t *shot) -{ - arena_t *arena; - tux_t *author; - - arena = export_fce->fce_arena_get_current(); - - author = space_get_object_id(arena->spaceTux, shot->author_id); - - if (author != NULL && author->bonus == BONUS_GHOST && author->bonus_time > 0) { - return; - } - - if (negPosition(shot->position) == pipe->position) { - moveShotFromPipe(shot, pipe); - } else { - if (shot->gun == GUN_BOMBBALL) { - export_fce->fce_shot_bound_bombBall(shot); - } else { - shot->del = TRUE; - } - } -} - -static void action_eventshot(space_t *space, shot_t *shot, space_t *p_spacePipe) -{ - space_action_from_location(p_spacePipe, action_eventpipe, shot, shot->x, shot->y, shot->w, shot->h); - - if (shot->del == TRUE) { - if (export_fce->fce_net_multiplayer_get_game_type() == NET_GAME_TYPE_SERVER) { - export_fce->fce_proto_send_del_server(PROTO_SEND_ALL, NULL, shot->id); - } - - space_del_with_item(space, shot, export_fce->fce_shot_destroy); - } -} - -static int event() -{ - if (spacePipe == NULL) { - return 0; - } - - /* just for a test */ - if (export_fce->fce_net_multiplayer_get_game_type() == NET_GAME_TYPE_CLIENT) { - return 0; - } - - space_action(export_fce->fce_arena_get_current()->spaceShot, action_eventshot, spacePipe); - - return 0; -} - -static int isConflict(int x, int y, int w, int h) -{ - if (spacePipe == NULL) { - return 0; - } - - return space_is_conflict_with_object(spacePipe, x, y, w, h); -} - -static void cmdArena(char *line) -{ - if (strncmp(line, "pipe", 4) == 0) { - cmd_teleport(line); - } -} - -static void recvMsg(char *msg) -{ -} - -static int destroy() -{ - space_destroy_with_item(spacePipe, destroyPipe); - spacePipe = NULL; - - list_destroy(listPipe); - listPipe = NULL; - - return 0; -} - -mod_sym_t modpipe_sym = { &init, -#ifndef PUBLIC_SERVER - &draw, -#else /* PUBLIC_SERVER */ - 0, -#endif /* PUBLIC_SERVER */ - &event, - &isConflict, - &cmdArena, - &recvMsg, - &destroy }; diff --git a/src/modules/modTeleport.c b/src/modules/modTeleport.c deleted file mode 100644 index c8cf573..0000000 --- a/src/modules/modTeleport.c +++ /dev/null @@ -1,343 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "modules.h" -#include "tux.h" -#include "shot.h" -#include "list.h" -#include "gun.h" -#include "space.h" - -#ifndef PUBLIC_SERVER -#include "interface.h" -#include "image.h" -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#endif /* PUBLIC_SERVER */ - -typedef struct teleport_struct { - int id; - - /* position of the teleport */ - int x; - int y; - - /* size of the teleport */ - int w; - int h; - - /* layer in the arena where the teleport lies */ - int layer; - -#ifndef PUBLIC_SERVER - /* its image */ - image_t *img; -#endif /* PUBLIC_SERVER */ -} teleport_t; - -static export_fce_t *export_fce; - -static space_t *spaceTeleport; -static list_t *listTeleport; - -static void (*fce_move_tux) (tux_t *tux, int x, int y, int w, int h); -static void (*fce_move_shot) (shot_t *shot, int position, int src_x, - int src_y, int dist_x, int dist_y, int dist_w, - int dist_h); - -#ifndef PUBLIC_SERVER -static teleport_t *newTeleport(int x, int y, int w, int h, int layer, image_t *img) -#else /* PUBLIC_SERVER */ -static teleport_t *newTeleport(int x, int y, int w, int h, int layer) -#endif /* PUBLIC_SERVER */ -{ - static int last_id = 0; - - teleport_t *new; - -#ifndef PUBLIC_SERVER - assert(img != NULL); -#endif /* PUBLIC_SERVER */ - - new = malloc(sizeof(teleport_t)); - assert(new != NULL); - - new->id = ++last_id; - new->x = x; - new->y = y; - new->w = w; - new->h = h; - new->layer = layer; -#ifndef PUBLIC_SERVER - new->img = img; -#endif /* PUBLIC_SERVER */ - - return new; -} - -static void setStatusTeleport(void *p, int x, int y, int w, int h) -{ - teleport_t *teleport; - - teleport = p; - - teleport->x = x; - teleport->y = y; - teleport->w = w; - teleport->h = h; -} - -static void getStatusTeleport(void *p, int *id, int *x, int *y, int *w, int *h) -{ - teleport_t *teleport; - teleport = p; - - *id = teleport->id; - *x = teleport->x; - *y = teleport->y; - *w = teleport->w; - *h = teleport->h; -} - -#ifndef PUBLIC_SERVER -static void drawTeleport(teleport_t *p) -{ - assert(p != NULL); - - export_fce->fce_addLayer(p->img, p->x, p->y, 0, 0, p->img->w, p->img->h, p->layer); -} -#endif /* PUBLIC_SERVER */ - -static void destroyTeleport(teleport_t *p) -{ - assert(p != NULL); - free(p); -} - -static void cmd_teleport(char *line) -{ - char str_x[STR_NUM_SIZE]; - char str_y[STR_NUM_SIZE]; - char str_w[STR_NUM_SIZE]; - char str_h[STR_NUM_SIZE]; - char str_layer[STR_NUM_SIZE]; - char str_image[STR_SIZE]; - teleport_t *new; - - if (export_fce->fce_getValue(line, "x", str_x, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "y", str_y, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "w", str_w, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "h", str_h, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "layer", str_layer, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "image", str_image, STR_SIZE) != 0) { - return; - } - -#ifndef PUBLIC_SERVER - new = newTeleport(atoi(str_x), atoi(str_y), - atoi(str_w), atoi(str_h), - atoi(str_layer), - export_fce->fce_image_get(IMAGE_GROUP_USER, str_image)); -#else /* PUBLIC_SERVER */ - new = newTeleport(atoi(str_x), atoi(str_y), - atoi(str_w), atoi(str_h), - atoi(str_layer)); -#endif /* PUBLIC_SERVER */ - - if (spaceTeleport == NULL) { - spaceTeleport = space_new(export_fce->fce_arena_get_current()->w, - export_fce->fce_arena_get_current()->h, - 320, 240, - getStatusTeleport, setStatusTeleport); - } - - space_add(spaceTeleport, new); -} - -static teleport_t *getRandomTeleportBut(space_t *space, teleport_t *teleport) -{ - int my_index; - - do { - my_index = random() % space_get_count(space); - } while (space_get_item(space, my_index) == teleport); - - return (teleport_t *) space_get_item(space, my_index); -} - -static int getRandomPosition() -{ - switch (random() % 4) { - case 0: - return TUX_UP; - - case 1: - return TUX_LEFT; - - case 2: - return TUX_RIGHT; - - case 3: - return TUX_DOWN; - } - - fatal("Generated a random number which is not in range 0 to 3"); - - return -1; -} - -static void teleportTux(tux_t *tux, teleport_t *teleport) -{ - teleport_t *distTeleport; - - if (tux->bonus == BONUS_GHOST || - export_fce->fce_net_multiplayer_get_game_type() == NET_GAME_TYPE_CLIENT) { - return; - } - - distTeleport = getRandomTeleportBut(spaceTeleport, teleport); - - fce_move_tux(tux, distTeleport->x, distTeleport->y, distTeleport->w, distTeleport->h); -} - -static void moveShotFromTeleport(shot_t *shot, teleport_t *teleport, space_t *space) -{ - teleport_t *distTeleport; - - distTeleport = getRandomTeleportBut(space, teleport); - - fce_move_shot(shot, getRandomPosition(), teleport->x, teleport->y, - distTeleport->x, distTeleport->y, distTeleport->w, - distTeleport->h); -} - -static int init(export_fce_t *p) -{ - export_fce = p; - - listTeleport = list_new(); - - if (export_fce->fce_module_load_dep("libmodMove") != 0 || - (fce_move_tux = export_fce->fce_share_function_get("move_tux")) == NULL || - (fce_move_shot = export_fce->fce_share_function_get("move_shot")) == NULL) { - return -1; - } - - return 0; -} - -#ifndef PUBLIC_SERVER -static void action_drawteleport(space_t *space, teleport_t *teleport, void *p) -{ - drawTeleport(teleport); -} - -static int draw(int x, int y, int w, int h) -{ - if (spaceTeleport == NULL) { - return 0; - } - - space_action_from_location(spaceTeleport, action_drawteleport, NULL, x, y, w, h); - - return 0; -} -#endif /* PUBLIC_SERVER */ - -static void action_eventteleportshot(space_t *space, teleport_t *teleport, shot_t *shot) -{ - arena_t *arena; - tux_t *author; - - arena = export_fce->fce_arena_get_current(); - - author = space_get_object_id(arena->spaceTux, shot->author_id); - - if (author != NULL && author->bonus == BONUS_GHOST && author->bonus_time > 0) { - return; - } - - moveShotFromTeleport(shot, teleport, spaceTeleport); -} - -static void action_eventshot(space_t *space, shot_t *shot, space_t *p_spaceTeleport) -{ - space_action_from_location(p_spaceTeleport, action_eventteleportshot, - shot, shot->x, shot->y, shot->w, shot->h); -} - -static void action_eventteleporttux(space_t *space, teleport_t *teleport, tux_t *tux) -{ - teleportTux(tux, teleport); -} - -static void action_eventtux(space_t *space, tux_t *tux, space_t *p_spaceTeleport) -{ - int x, y, w, h; - - export_fce->fce_tux_get_proportion(tux, &x, &y, &w, &h); - - space_action_from_location(p_spaceTeleport, action_eventteleporttux, tux, x, y, w, h); -} - -static int event() -{ - if (spaceTeleport == NULL) { - return 0; - } - - if (export_fce->fce_net_multiplayer_get_game_type() == NET_GAME_TYPE_CLIENT) { - return 0; - } - - space_action(export_fce->fce_arena_get_current()->spaceShot, action_eventshot, spaceTeleport); - space_action(export_fce->fce_arena_get_current()->spaceTux, action_eventtux, spaceTeleport); - - return 0; -} - -static int isConflict(int x, int y, int w, int h) -{ - if (spaceTeleport == NULL) { - return 0; - } - - return 0; -} - -static void cmdArena(char *line) -{ - if (strncmp(line, "teleport", 8) == 0) { - cmd_teleport(line); - } -} - -static void recvMsg(char *msg) -{ -} - -static int destroy() -{ - space_destroy_with_item(spaceTeleport, destroyTeleport); - spaceTeleport = NULL; - - list_destroy(listTeleport); - listTeleport = NULL; - - return 0; -} - -mod_sym_t modteleport_sym = { &init, -#ifndef PUBLIC_SERVER - &draw, -#else /* PUBLIC_SERVER */ - 0, -#endif /* PUBLIC_SERVER */ - &event, - &isConflict, - &cmdArena, - &recvMsg, - &destroy }; diff --git a/src/modules/modWall.c b/src/modules/modWall.c deleted file mode 100644 index 7a1fa7a..0000000 --- a/src/modules/modWall.c +++ /dev/null @@ -1,336 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "modules.h" -#include "tux.h" -#include "shot.h" -#include "gun.h" -#include "space.h" - -#ifndef PUBLIC_SERVER -#include "interface.h" -#include "image.h" -#else /* PUBLIC_SERVER */ -#include "publicServer.h" -#endif /* PUBLIC_SERVER */ - -typedef struct wall_struct { - int id; - - /* position of the teleport */ - int x; - int y; - - /* size of the teleport */ - int w; - int h; - - int img_x; - int img_y; - - /* layer in the arena where the teleport lies */ - int layer; - -#ifndef PUBLIC_SERVER - /* its image */ - image_t *img; -#endif /* PUBLIC_SERVER */ -} wall_t; - -static export_fce_t *export_fce; - -static space_t *spaceWall; - -#ifndef PUBLIC_SERVER -static space_t *spaceImgWall; -#endif /* PUBLIC_SERVER */ - -#ifndef PUBLIC_SERVER -static wall_t *newWall(int x, int y, int w, int h, int img_x, int img_y, int layer, image_t *img) -#else /* PUBLIC_SERVER */ -static wall_t *newWall(int x, int y, int w, int h, int img_x, int img_y, int layer) -#endif /* PUBLIC_SERVER */ -{ - static int last_id = 0; - wall_t *new; - -#ifndef PUBLIC_SERVER - assert(img != NULL); -#endif /* PUBLIC_SERVER */ - new = malloc(sizeof(wall_t)); - assert(new != NULL); - - new->id = ++last_id; - new->x = x; - new->y = y; - new->w = w; - new->h = h; - new->img_x = img_x; - new->img_y = img_y; - new->layer = layer; -#ifndef PUBLIC_SERVER - new->img = img; -#endif /* PUBLIC_SERVER */ - - return new; -} - -#ifndef PUBLIC_SERVER -static void drawWall(wall_t *p) -{ - assert(p != NULL); - - export_fce->fce_addLayer(p->img, - p->img_x, p->img_y, - 0, 0, - p->img->w, p->img->h, - p->layer); -} -#endif /* PUBLIC_SERVER */ - -static void destroyWall(wall_t *p) -{ - assert(p != NULL); - free(p); -} - -static void getStatusWall(void *p, int *id, int *x, int *y, int *w, int *h) -{ - wall_t *wall; - - wall = p; - - *id = wall->id; - *x = wall->x; - *y = wall->y; - *w = wall->w; - *h = wall->h; -} - -static void setStatusWall(void *p, int x, int y, int w, int h) -{ - wall_t *wall; - - wall = p; - - wall->x = x; - wall->y = y; - wall->w = w; - wall->h = h; -} - -#ifndef PUBLIC_SERVER -static void getStatusImgWall(void *p, int *id, int *x, int *y, int *w, int *h) -{ - wall_t *wall; - - wall = p; - - *id = wall->id; - *x = wall->img_x; - *y = wall->img_y; - *w = wall->img->w; - *h = wall->img->h; -} - -static void setStatusImgWall(void *p, int x, int y, int w, int h) -{ -} -#endif /* PUBLIC_SERVER */ - -static void cmd_wall(char *line) -{ - char str_x[STR_NUM_SIZE]; - char str_y[STR_NUM_SIZE]; - char str_img_x[STR_NUM_SIZE]; - char str_img_y[STR_NUM_SIZE]; - char str_w[STR_NUM_SIZE]; - char str_h[STR_NUM_SIZE]; - char str_layer[STR_NUM_SIZE]; - char str_image[STR_SIZE]; - char str_rel[STR_SIZE]; - int x, y, w, h, img_x, img_y, layer; - int rel; - wall_t *new; - - rel = 0; - - if (export_fce->fce_getValue(line, "rel", str_rel, STR_NUM_SIZE) != 0) { - strcpy(str_rel, "0"); - } - - if (export_fce->fce_getValue(line, "x", str_x, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "y", str_y, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "w", str_w, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "h", str_h, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "img_x", str_img_x, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "img_y", str_img_y, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "layer", str_layer, STR_NUM_SIZE) != 0 || - export_fce->fce_getValue(line, "image", str_image, STR_SIZE) != 0) { - return; - } - - rel = atoi(str_rel); - x = atoi(str_x); - y = atoi(str_y); - w = atoi(str_w); - h = atoi(str_h); - img_x = atoi(str_img_x); - img_y = atoi(str_img_y); - layer = atoi(str_layer); - - if (rel == 1) { - img_x += x; - img_y += y; - } -#ifndef PUBLIC_SERVER - new = newWall(x, y, w, h, img_x, img_y, layer, export_fce->fce_image_get(IMAGE_GROUP_USER, str_image)); -#else /* PUBLIC_SERVER */ - new = newWall(x, y, w, h, img_x, img_y, layer); -#endif /* PUBLIC_SERVER */ - - if (spaceWall == NULL) { - spaceWall = space_new(export_fce->fce_arena_get_current()->w, - export_fce->fce_arena_get_current()->h, - 320, 240, - getStatusWall, setStatusWall); - } - -#ifndef PUBLIC_SERVER - if (spaceImgWall == NULL) { - spaceImgWall = space_new(export_fce->fce_arena_get_current()->w, - export_fce->fce_arena_get_current()->h, - 320, 240, - getStatusImgWall, setStatusImgWall); - } -#endif /* PUBLIC_SERVER */ - - space_add(spaceWall, new); - -#ifndef PUBLIC_SERVER - space_add(spaceImgWall, new); -#endif /* PUBLIC_SERVER */ -} - -static int init(export_fce_t *p) -{ - export_fce = p; - - return 0; -} - -#ifndef PUBLIC_SERVER -static void action_drawwall(space_t *space, wall_t *wall, void *p) -{ - drawWall(wall); -} - -static int draw(int x, int y, int w, int h) -{ - if (spaceWall == NULL) { - return 0; - } - - space_action_from_location(spaceImgWall, action_drawwall, NULL, x, y, w, h); - - /*space_print(spaceWall);*/ - - return 0; -} -#endif /* PUBLIC_SERVER */ - -static void action_eventwall(space_t *space, wall_t *wall, shot_t *shot) -{ - arena_t *arena; - tux_t *author; - - arena = export_fce->fce_arena_get_current(); - - author = space_get_object_id(arena->spaceTux, shot->author_id); - - if (author != NULL && author->bonus == BONUS_GHOST && author->bonus_time > 0) { - return; - } - - if (shot->gun == GUN_BOMBBALL) { - if (export_fce->fce_net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - export_fce->fce_shot_bound_bombBall(shot); - } - - return; - } - - /*space_del_with_item(arena->spaceShot, shot, export_fce->fce_shot_destroy);*/ - shot->del = TRUE; -} - -static void action_eventshot(space_t *space, shot_t *shot, space_t *p_spaceWall) -{ - space_action_from_location(p_spaceWall, action_eventwall, - shot, shot->x, shot->y, - shot->w, shot->h); - - if (shot->del == TRUE) { - space_del_with_item(space, shot, export_fce->fce_shot_destroy); - } -} - -static int event() -{ - if (spaceWall == NULL) { - return 0; - } - - space_action(export_fce->fce_arena_get_current()->spaceShot, - action_eventshot, spaceWall); - - return 0; -} - -static int isConflict(int x, int y, int w, int h) -{ - if (spaceWall == NULL) { - return 0; - } - - return space_is_conflict_with_object(spaceWall, x, y, w, h); -} - -static void cmdArena(char *line) -{ - if (strncmp(line, "wall", 4) == 0) { - cmd_wall(line); - } -} - -static void recvMsg(char *msg) -{ -} - -static int destroy() -{ - space_destroy_with_item(spaceWall, destroyWall); -#ifndef PUBLIC_SERVER - space_destroy(spaceImgWall); - spaceImgWall = NULL; -#endif /* PUBLIC_SERVER */ - - spaceWall = NULL; - - return 0; -} - -mod_sym_t modwall_sym = { &init, -#ifndef PUBLIC_SERVER - &draw, -#else /* PUBLIC_SERVER */ - 0, -#endif /* PUBLIC_SERVER */ - &event, - &isConflict, - &cmdArena, - &recvMsg, - &destroy }; diff --git a/src/mouse.c b/src/mouse.c new file mode 100644 index 0000000..2ae3229 --- /dev/null +++ b/src/mouse.c @@ -0,0 +1,35 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "mouse.h" +#include "ta_sdl.h" + +int ta_mouse_x; +int ta_mouse_y; +bool ta_mouse_click; + +void ta_mouse_update(void) { + float x; + float y; + SDL_MouseButtonFlags buttons = SDL_GetMouseState(&x, &y); + + ta_mouse_x = (int)x; + ta_mouse_y = (int)y; + ta_mouse_click = (buttons & SDL_BUTTON_LMASK) != 0; +}
\ No newline at end of file diff --git a/src/net/CMakeLists.txt b/src/net/CMakeLists.txt deleted file mode 100644 index 2e93cef..0000000 --- a/src/net/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -############################################################################### -# tuxanci/src/*/CMakeLists.txt -############################################################################### -# Generate source_code files from .c files we find in directory -############################################################################### -MacroAddSources() -############################################################################### diff --git a/src/net/dns.c b/src/net/dns.c deleted file mode 100644 index 83853e2..0000000 --- a/src/net/dns.c +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef __WIN32__ -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> -#include <netdb.h> -#else -#include <windows.h> -#include <wininet.h> -#endif - -#include <string.h> -#include "main.h" -#include "dns.h" - -char *dns_resolv(char *domain) -{ - struct hostent *host; - - host = gethostbyname(domain); - - if (host == NULL || host->h_addr_list[0] == NULL) { - return NULL; - } - - return strdup(inet_ntoa(*((struct in_addr *) host->h_addr_list[0]))); -} diff --git a/src/net/dns.h b/src/net/dns.h deleted file mode 100644 index 082c01f..0000000 --- a/src/net/dns.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef DNS_H -#define DNS_H - -extern char *dns_resolv(char *domain); - -#endif /* DNS_H */ diff --git a/src/net/tcp.c b/src/net/tcp.c deleted file mode 100644 index 20ab3aa..0000000 --- a/src/net/tcp.c +++ /dev/null @@ -1,337 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#ifndef __WIN32__ -#include <sys/types.h> -#include <sys/time.h> -#include <sys/socket.h> -#include <sys/select.h> -#include <netinet/in.h> -#include <arpa/inet.h> -#include <netdb.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <netinet/tcp.h> -#include <fcntl.h> -#else /* __WIN32__ */ -#include <windows.h> -#include <wininet.h> -#endif /* __WIN32__ */ - -#include <unistd.h> -#include <assert.h> - -#include "tcp.h" - -sock_tcp_t *sock_tcp_new(void) -{ - sock_tcp_t *new; - - new = malloc(sizeof(sock_tcp_t)); - memset(new, 0, sizeof(sock_tcp_t)); - - return new; -} - -void sock_tcp_destroy(sock_tcp_t *p) -{ - assert(p != NULL); - free(p); -} - -static int getProto(char *str) -{ - if (strstr(str, ".") != NULL) - return PROTO_TCPv4; - if (strstr(str, ":") != NULL) - return PROTO_TCPv6; - - fatal("Network protocol not detected"); - return -1; -} - -sock_tcp_t *sock_tcp_bind(char *address, int port) -{ - sock_tcp_t *new; - unsigned long param_setsock = 1; - int len; - int ret; - - assert(port > 0 && port < 65535); - - new = sock_tcp_new(); - new->proto = getProto(address); - ret = -1; /* no warnings */ - - assert(new != NULL); - - if (new->proto == PROTO_TCPv4) { - new->sock = socket(AF_INET, SOCK_STREAM, 0); - } -#ifdef SUPPORT_IPv6 - if (new->proto == PROTO_TCPv6) { - new->sock = socket(AF_INET6, SOCK_STREAM, 0); - } -#endif - - if (new->sock < 0) { - error("Unable to create TCP socket"); - sock_tcp_destroy(new); -#ifdef __WIN32__ - WSACleanup(); -#endif - return NULL; - } - - setsockopt(new->sock, SOL_SOCKET, SO_REUSEADDR, (char *) ¶m_setsock, sizeof(param_setsock)); - - if (new->proto == PROTO_TCPv4) { - new->sockAddr.sin_family = AF_INET; -#ifndef __WIN32__ - inet_pton(AF_INET, address, &(new->sockAddr.sin_addr)); -#else - new->sockAddr.sin_addr.s_addr = inet_addr(address); -#endif - new->sockAddr.sin_port = htons(port); - - len = sizeof(new->sockAddr); - ret = bind(new->sock, (struct sockaddr *) &new->sockAddr, len); - } -#ifdef SUPPORT_IPv6 - if (new->proto == PROTO_TCPv6) { - new->sockAddr6.sin6_family = AF_INET6; - /*new->sockAddr.sin_addr.s_addr = htonl(INADDR_ANY);*/ -#ifndef __WIN32__ - inet_pton(AF_INET6, address, &(new->sockAddr6.sin6_addr)); -#else /* __WIN32__ */ - new->sockAddr6.sin6_addr.s_addr = inet_addr(address); -#endif /* __WIN32__ */ - new->sockAddr6.sin6_port = htons(port); - - len = sizeof(new->sockAddr6); - ret = bind(new->sock, (struct sockaddr *) &new->sockAddr6, len); - } -#endif /* SUPPORT_IPv6 */ - - if (ret < 0) { - error("Unable to bind to TCP port [%d]", port); - sock_tcp_destroy(new); -#ifdef __WIN32__ - WSACleanup(); -#endif - return NULL; - } - - listen(new->sock, 5); - - return new; -} - -sock_tcp_t *sock_tcp_accept(sock_tcp_t *p) -{ - sock_tcp_t *new; - int client_len; - - assert(p != NULL); - assert(p->sock >= 0); - - new = sock_tcp_new(); - new->proto = p->proto; - - if (new->proto == PROTO_TCPv4) { - client_len = sizeof(new->sockAddr); -#ifndef __WIN32__ - new->sock = accept(p->sock, (struct sockaddr *) &new->sockAddr, (socklen_t *) &client_len); -#else - new->sock = accept(p->sock, (struct sockaddr *) &new->sockAddr, (long *) &client_len); -#endif - } -#ifdef SUPPORT_IPv6 - if (new->proto == PROTO_TCPv6) { - client_len = sizeof(new->sockAddr6); -#ifndef __WIN32__ - new->sock = accept(p->sock, (struct sockaddr *) &new->sockAddr6, (socklen_t *) &client_len); -#else /* __WIN32__ */ - new->sock = accept(p->sock, (struct sockaddr *) &new->sockAddr6, (long *) &client_len); -#endif /* __WIN32__ */ - } -#endif /* SUPPORT_IPv6 */ - - if (new->sock < 0) { - sock_tcp_destroy(new); -#ifdef __WIN32__ - WSACleanup(); -#endif - return NULL; - } - - return new; -} - -void sock_tcp_get_ip(sock_tcp_t *p, char *str_ip, int len) -{ - assert(p != NULL); - assert(str_ip != NULL); - - if (p->proto == PROTO_TCPv4) { -#ifndef __WIN32__ - inet_ntop(AF_INET, &(p->sockAddr.sin_addr), str_ip, len); -#else - strcpy(str_ip, inet_ntoa(p->sockAddr.sin_addr)); -#endif - } -#ifdef SUPPORT_IPv6 - if (p->proto == PROTO_TCPv6) { -#ifndef __WIN32__ - inet_ntop(AF_INET6, &(p->sockAddr6.sin6_addr), str_ip, len); -#else /* __WIN32__ */ - /* NOT TESTED */ - strcpy(str_ip, inet_ntoa(p->sockAddr6.sin6_addr)); -#endif /* __WIN32__ */ - } -#endif /* SUPPORT_IPv6 */ -} - -int sock_tcp_get_port(sock_tcp_t *p) -{ - assert(p != NULL); - - if (p->proto == PROTO_TCPv4) { - return htons(p->sockAddr.sin_port); - } -#ifdef SUPPORT_IPv6 - if (p->proto == PROTO_TCPv6) { - return htons(p->sockAddr6.sin6_port); - } -#endif - - fatal("Bad IP protocol"); - - return -1; -} - -sock_tcp_t *sock_tcp_connect(char *ip, int port) -{ - sock_tcp_t *new; - int len; - int ret; - - assert(ip != NULL); - assert(port > 0 && port < 65535); - - new = sock_tcp_new(); - new->proto = getProto(ip); - ret = -1; /* no warnings */ - - if (new->proto == PROTO_TCPv4) { - new->sock = socket(AF_INET, SOCK_STREAM, 0); - } -#ifdef SUPPORT_IPv6 - if (new->proto == PROTO_TCPv6) { - new->sock = socket(AF_INET6, SOCK_STREAM, 0); - } -#endif - - if (new->sock < 0) { - error("Unable to create TCP socket for connecting"); - sock_tcp_destroy(new); -#ifdef __WIN32__ - WSACleanup(); -#endif - return NULL; - } - - if (new->proto == PROTO_TCPv4) { - new->sockAddr.sin_family = AF_INET; - new->sockAddr.sin_addr.s_addr = inet_addr(ip); - new->sockAddr.sin_port = htons(port); - - len = sizeof(new->sockAddr); - ret = connect(new->sock, (struct sockaddr *) &new->sockAddr, len); - } -#ifdef SUPPORT_IPv6 - if (new->proto == PROTO_TCPv6) { - new->sockAddr6.sin6_family = AF_INET6; - inet_pton(AF_INET6, ip, &(new->sockAddr6.sin6_addr)); - new->sockAddr6.sin6_port = htons(port); - - len = sizeof(new->sockAddr6); - ret = connect(new->sock, (struct sockaddr *) &new->sockAddr6, len); - } -#endif - - if (ret < 0) { - error("Unable to connect to [%s]:%d", ip, port); - sock_tcp_destroy(new); -#ifdef __WIN32__ - WSACleanup(); -#endif - return NULL; - } - - return new; -} - -int sock_tcp_disable_nagle(sock_tcp_t *p) -{ - int flag = 1; - int result; - - result = setsockopt(p->sock, /* affected socket */ - IPPROTO_TCP, /* set option at TCP level */ - TCP_NODELAY, /* name of the option */ - (char *) &flag, /* the cast is a historical cruft */ - sizeof(int)); /* length of the option value */ - - return result; -} - -int sock_tcp_set_non_block(sock_tcp_t *p) -{ - /* set to nonblocking socket mode */ -#ifndef __WIN32__ - int oldFlag; - - oldFlag = fcntl(p->sock, F_GETFL, 0); - - if (fcntl(p->sock, F_SETFL, oldFlag | O_NONBLOCK) == -1) { - return -1; - } -#else - unsigned long arg = 1; - /* operation is FIONBIO; parameter is a pointer on non-zero number */ - if (ioctlsocket(p->sock, FIONBIO, &arg) == SOCKET_ERROR) { - WSACleanup(); - return -1; - } -#endif - return 0; -} - -int sock_tcp_read(sock_tcp_t *p, void *address, int len) -{ - assert(p != NULL); - assert(address != NULL); - - return read(p->sock, address, len); -} - -int sock_tcp_write(sock_tcp_t *p, void *address, int len) -{ - assert(p != NULL); - assert(address != NULL); - - return write(p->sock, address, len); -} - -void sock_tcp_close(sock_tcp_t *p) -{ - assert(p != NULL); - - close(p->sock); - sock_tcp_destroy(p); -#ifdef __WIN32__ - WSACleanup(); -#endif -} diff --git a/src/net/tcp.h b/src/net/tcp.h deleted file mode 100644 index 20d4136..0000000 --- a/src/net/tcp.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef MY_TCP_H -#define MY_TCP_H - -#include "main.h" - -#ifndef __WIN32__ -#include <sys/socket.h> -#include <netinet/in.h> -#include <netinet/tcp.h> -#else -#include <windows.h> -#include <wininet.h> -#endif - -#define PROTO_TCPv4 0 -#define PROTO_TCPv6 1 - -typedef struct struct_sock_tcp_t { -#ifndef __WIN32_ - int sock; -#else - SOCKET sock; -#endif - int proto; - - struct sockaddr_in sockAddr; -# ifdef SUPPORT_IPv6 - struct sockaddr_in6 sockAddr6; -# endif -} sock_tcp_t; - -extern sock_tcp_t *sock_tcp_new(void); -extern void sock_tcp_destroy(sock_tcp_t *p); -extern sock_tcp_t *sock_tcp_bind(char *addresss, int port); -extern sock_tcp_t *sock_tcp_accept(sock_tcp_t *p); -extern void sock_tcp_get_ip(sock_tcp_t *p, char *str_ip, int len); -extern int sock_tcp_get_port(sock_tcp_t *p); -extern sock_tcp_t *sock_tcp_connect(char *ip, int port); -extern int sock_tcp_disable_nagle(sock_tcp_t *p); -extern int sock_tcp_set_non_block(sock_tcp_t *p); -extern int sock_tcp_read(sock_tcp_t *p, void *address, int len); -extern int sock_tcp_write(sock_tcp_t *p, void *address, int len); -extern void sock_tcp_close(sock_tcp_t *p); - -#endif /* MY_TCP_H */ diff --git a/src/net/udp.c b/src/net/udp.c deleted file mode 100644 index 1771222..0000000 --- a/src/net/udp.c +++ /dev/null @@ -1,328 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#ifndef __WIN32__ -#include <sys/socket.h> -#include <sys/types.h> -#include <netinet/in.h> -#include <arpa/inet.h> -#include <netdb.h> -#else -#include <windows.h> -#include <wininet.h> -#endif - -#include <unistd.h> -#include <assert.h> -#include <fcntl.h> - -#include "main.h" -#include "net_multiplayer.h" - -#include "udp.h" -#include "dns.h" - -#define BUFSIZE 1000 - -static int getProto(char *str) -{ - if (strstr(str, ".") != NULL) - return PROTO_UDPv4; - if (strstr(str, ":") != NULL) - return PROTO_UDPv6; - - fatal("Network protocol not detected"); - return -1; -} - -sock_udp_t *sock_udp_new(void) -{ - sock_udp_t *new; - - new = malloc(sizeof(sock_udp_t)); - memset(new, 0, sizeof(sock_udp_t)); - - return new; -} - -void sock_udp_destroy(sock_udp_t *p) -{ - assert(p != NULL); - free(p); -} - -sock_udp_t *sock_udp_bind(char *address, int port) -{ - sock_udp_t *new; - int res = -1; /* no warnings */ - - assert(port > 0 && port < 65535); - - new = sock_udp_new(); - new->proto = getProto(address); - - assert(new != NULL); - - if (new->proto == PROTO_UDPv4) { - new->sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - } -#ifdef SUPPORT_IPv6 - if (new->proto == PROTO_UDPv6) { - new->sock = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP); - } -#endif - - if (new->sock < 0) { - error("Unable to create UDP socket"); - sock_udp_destroy(new); -#ifdef __WIN32__ - WSACleanup(); -#endif - return NULL; - } - - memset(&(new->sockAddr), 0, sizeof(new->sockAddr)); - - if (new->proto == PROTO_UDPv4) { - new->sockAddr.sin_family = AF_INET; - new->sockAddr.sin_port = htons(port); - new->sockAddr.sin_addr.s_addr = inet_addr(address); - - res = bind(new->sock, (struct sockaddr *) &(new->sockAddr), sizeof(new->sockAddr)); - } -#ifdef SUPPORT_IPv6 - if (new->proto == PROTO_UDPv6) { - new->sockAddr6.sin6_family = AF_INET6; - new->sockAddr6.sin6_port = htons(port); - inet_pton(AF_INET6, address, &(new->sockAddr6.sin6_addr)); - - res = bind(new->sock, (struct sockaddr *) &(new->sockAddr6), sizeof(new->sockAddr6)); - } -#endif - - if (res < 0) { - error("Unable to bind UDP socket to [%s]:%d", address, port); - sock_udp_destroy(new); -#ifdef __WIN32__ - WSACleanup(); -#endif - return NULL; - } - - return new; -} - -sock_udp_t *sock_udp_connect(char *address, int port) -{ - sock_udp_t *new; - char *domain; - - assert(address != NULL); - assert(port > 0 && port < 65536); - - new = sock_udp_new(); - new->proto = getProto(address); - - assert(new != NULL); - - if (new->proto == PROTO_UDPv4) { - new->sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - } -#ifdef SUPPORT_IPv6 - if (new->proto == PROTO_UDPv6) { - new->sock = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP); - } -#endif - - if (new->sock < 0) { - error("Unable to create UDP socket for connecting"); - sock_udp_destroy(new); -#ifdef __WIN32__ - WSACleanup(); -#endif - return NULL; - } - - domain = dns_resolv(address); - - if (domain) { - address = domain; - } - - memset(&(new->sockAddr), 0, sizeof(new->sockAddr)); - - if (new->proto == PROTO_UDPv4) { - new->sockAddr.sin_family = AF_INET; - new->sockAddr.sin_port = htons(port); - new->sockAddr.sin_addr.s_addr = inet_addr(address); - } -#ifdef SUPPORT_IPv6 - if (new->proto == PROTO_UDPv6) { - new->sockAddr6.sin6_family = AF_INET6; - new->sockAddr6.sin6_port = htons(port); - inet_pton(AF_INET6, address, &(new->sockAddr6.sin6_addr)); - } -#endif - if (domain) { - free(domain); - } - - return new; -} - -int sock_udp_set_non_block(sock_udp_t *p) -{ - /* set to nonblocking socket mode */ -#ifndef __WIN32__ - int oldFlag; - - oldFlag = fcntl(p->sock, F_GETFL, 0); - - if (fcntl(p->sock, F_SETFL, oldFlag | O_NONBLOCK) == -1) { - return -1; - } -#else - unsigned long arg = 1; - /* operation is FIONBIO; parameter is a pointer on non-zero number */ - if (ioctlsocket(p->sock, FIONBIO, &arg) == SOCKET_ERROR) { - WSACleanup(); - return -1; - } -#endif - return 0; -} - -int sock_udp_read(sock_udp_t *src, sock_udp_t *dst, void *address, int len) -{ - int addrlen; - int size = -1; /* no warnings */ - - assert(src != NULL); - assert(dst != NULL); - assert(address != NULL); - - if (src->proto == PROTO_UDPv4) { - addrlen = sizeof(src->sockAddr); - -#ifndef __WIN32 - size = recvfrom(src->sock, address, len, 0, (struct sockaddr *) &dst->sockAddr, (socklen_t *) &addrlen); -#else - size = recvfrom(src->sock, address, len, 0, (struct sockaddr *) &dst->sockAddr, (int *) &addrlen); -#endif - } -#ifdef SUPPORT_IPv6 - if (src->proto == PROTO_UDPv6) { - addrlen = sizeof(src->sockAddr6); - - size = recvfrom(src->sock, address, len, 0, (struct sockaddr *) &dst->sockAddr6, (socklen_t *) &addrlen); - } -#endif - - dst->sock = src->sock; - dst->proto = src->proto; - - if (size < 0) { - char str_ip[STR_IP_SIZE]; - - sock_udp_get_ip(dst, str_ip, STR_IP_SIZE); - - error("Unable to read from UDP socket [%s]:%d (read %d bytes)", str_ip, sock_udp_get_port(dst), size); - -#ifdef __WIN32__ - WSACleanup(); -#endif - return -1; - } - - return size; -} - -int sock_udp_write(sock_udp_t *src, sock_udp_t *dst, void *address, int len) -{ - int addrlen; - int size = -1; /* no warnings */ - - assert(src != NULL); - assert(dst != NULL); - assert(address != NULL); - - if (src->proto == PROTO_UDPv4) { - addrlen = sizeof(src->sockAddr); - - size = sendto(src->sock, address, len, 0, (struct sockaddr *) &dst->sockAddr, addrlen); - } -#ifdef SUPPORT_IPv6 - if (src->proto == PROTO_UDPv6) { - addrlen = sizeof(src->sockAddr6); - - size = sendto(src->sock, address, len, 0, (struct sockaddr *) &dst->sockAddr6, addrlen); - } -#endif - - if (size < 0) { - char str_ip[STR_IP_SIZE]; - - sock_udp_get_ip(dst, str_ip, STR_IP_SIZE); - - error("Unable to write to socket [%s]:%d with protocol %d (written %d bytes)", str_ip, sock_udp_get_port(dst), dst->proto, size); - -#ifdef __WIN32__ - WSACleanup(); -#endif - return -1; - } - - return size; -} - -void sock_udp_get_ip(sock_udp_t *p, char *str_ip, int len) -{ - assert(p != NULL); - assert(str_ip != NULL); - - - if (p->proto == PROTO_UDPv4) { -#ifndef __WIN32__ - inet_ntop(AF_INET, &(p->sockAddr.sin_addr), str_ip, len); -#else - strcpy(str_ip, inet_ntoa(p->sockAddr.sin_addr)); -#endif - } -#ifdef SUPPORT_IPv6 - if (p->proto == PROTO_UDPv6) { - inet_ntop(AF_INET6, &(p->sockAddr6.sin6_addr), str_ip, len); - } -#endif -} - -int sock_udp_get_port(sock_udp_t *p) -{ - assert(p != NULL); - - if (p->proto == PROTO_UDPv4) { - return htons(p->sockAddr.sin_port); - } -#ifdef SUPPORT_IPv6 - if (p->proto == PROTO_UDPv6) { - return htons(p->sockAddr6.sin6_port); - } -#endif - - fatal("Bad IP protocol"); - - return -1; -} - -void sock_udp_close(sock_udp_t *p) -{ - assert(p != NULL); - -#ifndef __WIN32__ - close(p->sock); -#else - closesocket(p->sock); - /*WSACleanup(); -- when the socket is closed correctly, it is not needed to do a cleanup */ -#endif - sock_udp_destroy(p); -} diff --git a/src/net/udp.h b/src/net/udp.h deleted file mode 100644 index 0e54a9c..0000000 --- a/src/net/udp.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef MY_UDP_H -#define MY_UDP_H - -#ifndef __WIN32__ -#include <netinet/in.h> -#else -#include <windows.h> -#include <wininet.h> -#include <winsock.h> -#endif - -typedef struct struct_sock_udp_t { -#ifndef __WIN32__ - int sock; -#else - SOCKET sock; -#endif - int proto; - -#ifdef SUPPORT_IPv6 - struct sockaddr_in6 sockAddr6; -#endif - struct sockaddr_in sockAddr; -} sock_udp_t; - -extern sock_udp_t *sock_udp_new(void); -extern void sock_udp_destroy(sock_udp_t *p); -extern sock_udp_t *sock_udp_bind(char *address, int port); -extern sock_udp_t *sock_udp_connect(char *address, int port); -extern int sock_udp_set_non_block(sock_udp_t *p); -extern int sock_udp_read(sock_udp_t *src, sock_udp_t *dst, void *address, int len); -extern int sock_udp_write(sock_udp_t *src, sock_udp_t *dst, void *address, int len); -extern void sock_udp_get_ip(sock_udp_t *p, char *str_ip, int len); -extern int sock_udp_get_port(sock_udp_t *p); -extern void sock_udp_close(sock_udp_t *p); - -#endif /* MY_UDP_H */ diff --git a/src/obj.c b/src/obj.c new file mode 100644 index 0000000..7f3442c --- /dev/null +++ b/src/obj.c @@ -0,0 +1,175 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include <stdbool.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "obj.h" + +typedef struct ta_obj_position { + float value[3]; +} ta_obj_position; + +typedef struct ta_obj_normal { + float value[3]; +} ta_obj_normal; + +static bool ta_obj_push_vertex(ta_obj_mesh *mesh, size_t *capacity, const ta_obj_vertex *vertex) { + if (mesh->vertex_count == *capacity) { + size_t next_capacity = *capacity == 0 ? 1024 : *capacity * 2; + ta_obj_vertex *vertices = realloc(mesh->vertices, next_capacity * sizeof(*vertices)); + if (!vertices) { + return false; + } + mesh->vertices = vertices; + *capacity = next_capacity; + } + mesh->vertices[mesh->vertex_count++] = *vertex; + return true; +} + +bool ta_obj_parse(const unsigned char *data, size_t size, ta_obj_mesh *mesh) { + ta_obj_position *positions = NULL; + ta_obj_normal *normals = NULL; + size_t position_count = 0; + size_t normal_count = 0; + size_t position_capacity = 0; + size_t normal_capacity = 0; + size_t vertex_capacity = 0; + bool success = false; + + memset(mesh, 0, sizeof(*mesh)); + char *text = malloc(size + 1); + if (!text) { + return false; + } + memcpy(text, data, size); + text[size] = '\0'; + + char *line = text; + while (line && *line) { + char *next_line = strchr(line, '\n'); + if (next_line) { + *next_line = '\0'; + } + + if (line[0] == 'v' && line[1] == ' ') { + ta_obj_position position; + if (sscanf(line + 2, "%f %f %f", &position.value[0], &position.value[1], &position.value[2]) != 3) { + goto done; + } + if (position_count == position_capacity) { + size_t next_capacity = position_capacity == 0 ? 1024 : position_capacity * 2; + ta_obj_position *grown = realloc(positions, next_capacity * sizeof(*grown)); + if (!grown) { + goto done; + } + positions = grown; + position_capacity = next_capacity; + } + positions[position_count++] = position; + } else if (line[0] == 'v' && line[1] == 'n' && line[2] == ' ') { + ta_obj_normal normal; + if (sscanf(line + 3, "%f %f %f", &normal.value[0], &normal.value[1], &normal.value[2]) != 3) { + goto done; + } + if (normal_count == normal_capacity) { + size_t next_capacity = normal_capacity == 0 ? 1024 : normal_capacity * 2; + ta_obj_normal *grown = realloc(normals, next_capacity * sizeof(*grown)); + if (!grown) { + goto done; + } + normals = grown; + normal_capacity = next_capacity; + } + normals[normal_count++] = normal; + } else if (line[0] == 'f' && line[1] == ' ') { + int position_indices[3]; + int normal_indices[3]; + bool has_normals = sscanf(line + 2, "%d//%d %d//%d %d//%d", + &position_indices[0], &normal_indices[0], + &position_indices[1], &normal_indices[1], + &position_indices[2], &normal_indices[2]) == 6; + if (!has_normals && sscanf(line + 2, "%d %d %d", + &position_indices[0], &position_indices[1], &position_indices[2]) != 3) { + goto done; + } + for (int index = 0; index < 3; index++) { + if (position_indices[index] <= 0 || + (size_t)position_indices[index] > position_count || + (has_normals && (normal_indices[index] <= 0 || + (size_t)normal_indices[index] > normal_count))) { + goto done; + } + } + float face_normal[3] = {0.0f, 0.0f, 1.0f}; + if (!has_normals) { + const float *first = positions[position_indices[0] - 1].value; + const float *second = positions[position_indices[1] - 1].value; + const float *third = positions[position_indices[2] - 1].value; + float edge_a[3] = {second[0] - first[0], second[1] - first[1], second[2] - first[2]}; + float edge_b[3] = {third[0] - first[0], third[1] - first[1], third[2] - first[2]}; + face_normal[0] = edge_a[1] * edge_b[2] - edge_a[2] * edge_b[1]; + face_normal[1] = edge_a[2] * edge_b[0] - edge_a[0] * edge_b[2]; + face_normal[2] = edge_a[0] * edge_b[1] - edge_a[1] * edge_b[0]; + float length = sqrtf(face_normal[0] * face_normal[0] + face_normal[1] * face_normal[1] + face_normal[2] * face_normal[2]); + if (length > 0.0f) { + face_normal[0] /= length; + face_normal[1] /= length; + face_normal[2] /= length; + } + } + for (int index = 0; index < 3; index++) { + ta_obj_vertex vertex; + memcpy(vertex.position, positions[position_indices[index] - 1].value, sizeof(vertex.position)); + if (has_normals) { + memcpy(vertex.normal, normals[normal_indices[index] - 1].value, sizeof(vertex.normal)); + } else { + memcpy(vertex.normal, face_normal, sizeof(vertex.normal)); + } + if (!ta_obj_push_vertex(mesh, &vertex_capacity, &vertex)) { + goto done; + } + } + } + + if (!next_line) { + break; + } + line = next_line + 1; + } + + success = mesh->vertex_count > 0; +done: + if (!success) { + ta_obj_free(mesh); + } + free(positions); + free(normals); + free(text); + return success; +} + +void ta_obj_free(ta_obj_mesh *mesh) { + free(mesh->vertices); + mesh->vertices = NULL; + mesh->vertex_count = 0; +}
\ No newline at end of file diff --git a/src/obj_model.c b/src/obj_model.c new file mode 100644 index 0000000..44cf8aa --- /dev/null +++ b/src/obj_model.c @@ -0,0 +1,180 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include <math.h> +#include <string.h> +#include "obj_model.h" +#include "ta_sdl.h" +#include "files.h" + +typedef struct ta_obj_uniforms { + float mvp[16]; + float model[16]; +} ta_obj_uniforms; + +static SDL_GPUShader *ta_obj_shader(SDL_GPUDevice *device, const void *code, size_t size, SDL_GPUShaderStage stage) { + SDL_GPUShaderCreateInfo info = { + .code = code, + .code_size = size, + .entrypoint = "main", + .format = SDL_GPU_SHADERFORMAT_SPIRV, + .stage = stage, + .num_uniform_buffers = stage == SDL_GPU_SHADERSTAGE_VERTEX ? 1 : 0, + }; + return ta_sdl_create_gpu_shader(device, &info); +} + +static void ta_obj_identity(float *matrix) { + for (int index = 0; index < 16; index++) matrix[index] = index % 5 == 0 ? 1.0f : 0.0f; +} + +static void ta_obj_multiply(float *result, const float *left, const float *right) { + float product[16]; + for (int column = 0; column < 4; column++) for (int row = 0; row < 4; row++) { + product[column * 4 + row] = 0.0f; + for (int inner = 0; inner < 4; inner++) product[column * 4 + row] += left[inner * 4 + row] * right[column * 4 + inner]; + } + memcpy(result, product, sizeof(product)); +} + +bool ta_obj_model_init(ta_obj_model *model, SDL_GPUDevice *device, const unsigned char *data, size_t size, SDL_GPUTextureFormat color_format, SDL_GPUTextureFormat depth_format, SDL_GPUSampleCount sample_count) { + memset(model, 0, sizeof(*model)); + if (!ta_obj_parse(data, size, &model->mesh) || model->mesh.vertex_count == 0) return false; + float minimum[3]; + float maximum[3]; + memcpy(minimum, model->mesh.vertices[0].position, sizeof(minimum)); + memcpy(maximum, minimum, sizeof(maximum)); + for (size_t index = 1; index < model->mesh.vertex_count; index++) for (int axis = 0; axis < 3; axis++) { + if (model->mesh.vertices[index].position[axis] < minimum[axis]) minimum[axis] = model->mesh.vertices[index].position[axis]; + if (model->mesh.vertices[index].position[axis] > maximum[axis]) maximum[axis] = model->mesh.vertices[index].position[axis]; + } + float center[3] = {(minimum[0] + maximum[0]) * 0.5f, (minimum[1] + maximum[1]) * 0.5f, (minimum[2] + maximum[2]) * 0.5f}; + float extent = maximum[0] - minimum[0]; + for (int axis = 1; axis < 3; axis++) if (maximum[axis] - minimum[axis] > extent) extent = maximum[axis] - minimum[axis]; + for (size_t index = 0; index < model->mesh.vertex_count; index++) for (int axis = 0; axis < 3; axis++) model->mesh.vertices[index].position[axis] = (model->mesh.vertices[index].position[axis] - center[axis]) * (2.2f / extent); + + SDL_GPUBufferCreateInfo buffer_info = {.usage = SDL_GPU_BUFFERUSAGE_VERTEX, .size = (Uint32)(model->mesh.vertex_count * sizeof(*model->mesh.vertices))}; + model->vertex_buffer = SDL_CreateGPUBuffer(device, &buffer_info); + if (!model->vertex_buffer) { + ta_obj_free(&model->mesh); + return false; + } + model->vertex_count = (Uint32)model->mesh.vertex_count; + SDL_GPUShader *vertex_shader = ta_obj_shader(device, file_obj_vert_slang_spv_start, file_obj_vert_slang_spv_size, SDL_GPU_SHADERSTAGE_VERTEX); + SDL_GPUShader *fragment_shader = ta_obj_shader(device, file_obj_frag_slang_spv_start, file_obj_frag_slang_spv_size, SDL_GPU_SHADERSTAGE_FRAGMENT); + SDL_GPUVertexBufferDescription vertex_buffer = {.slot = 0, .pitch = sizeof(ta_obj_vertex), .input_rate = SDL_GPU_VERTEXINPUTRATE_VERTEX}; + SDL_GPUVertexAttribute attributes[2] = { + {.location = 0, .buffer_slot = 0, .format = SDL_GPU_VERTEXELEMENTFORMAT_FLOAT3, .offset = 0}, + {.location = 1, .buffer_slot = 0, .format = SDL_GPU_VERTEXELEMENTFORMAT_FLOAT3, .offset = sizeof(float) * 3}, + }; + SDL_GPUColorTargetDescription color_target = {.format = color_format}; + SDL_GPUGraphicsPipelineCreateInfo pipeline_info = { + .vertex_shader = vertex_shader, + .fragment_shader = fragment_shader, + .vertex_input_state = {.vertex_buffer_descriptions = &vertex_buffer, .num_vertex_buffers = 1, .vertex_attributes = attributes, .num_vertex_attributes = 2}, + .primitive_type = SDL_GPU_PRIMITIVETYPE_TRIANGLELIST, + .rasterizer_state = {.cull_mode = SDL_GPU_CULLMODE_NONE}, + .depth_stencil_state = {.compare_op = SDL_GPU_COMPAREOP_LESS, .enable_depth_test = true, .enable_depth_write = true}, + .multisample_state = {.sample_count = sample_count}, + .target_info = {.num_color_targets = 1, .color_target_descriptions = &color_target, .depth_stencil_format = depth_format, .has_depth_stencil_target = true}, + }; + model->pipeline = ta_sdl_create_gpu_graphics_pipeline(device, &pipeline_info); + SDL_ReleaseGPUShader(device, vertex_shader); + SDL_ReleaseGPUShader(device, fragment_shader); + return model->pipeline != NULL; +} + +void ta_obj_model_upload(ta_obj_model *model, SDL_GPUCommandBuffer *command_buffer, SDL_GPUDevice *device) { + if (model->uploaded || !model->vertex_buffer) return; + Uint32 size = (Uint32)(model->mesh.vertex_count * sizeof(*model->mesh.vertices)); + SDL_GPUTransferBufferCreateInfo transfer_info = {.usage = SDL_GPU_TRANSFERBUFFERUSAGE_UPLOAD, .size = size}; + SDL_GPUTransferBuffer *transfer_buffer = ta_sdl_create_gpu_transfer_buffer(device, &transfer_info); + void *mapped = ta_sdl_map_gpu_transfer_buffer(device, transfer_buffer, false); + memcpy(mapped, model->mesh.vertices, size); + SDL_UnmapGPUTransferBuffer(device, transfer_buffer); + SDL_GPUCopyPass *copy_pass = ta_sdl_begin_gpu_copy_pass(command_buffer); + SDL_GPUTransferBufferLocation source = {.transfer_buffer = transfer_buffer}; + SDL_GPUBufferRegion destination = {.buffer = model->vertex_buffer, .size = size}; + SDL_UploadToGPUBuffer(copy_pass, &source, &destination, false); + SDL_EndGPUCopyPass(copy_pass); + SDL_ReleaseGPUTransferBuffer(device, transfer_buffer); + ta_obj_free(&model->mesh); + model->uploaded = true; +} + +void ta_obj_model_render(const ta_obj_model *model, SDL_GPUCommandBuffer *command_buffer, SDL_GPURenderPass *render_pass, int window_width, int window_height) { + if (!model->pipeline || !model->vertex_buffer || !model->uploaded) return; + ta_obj_uniforms uniforms; + float view[16]; + float projection[16] = {0}; + float view_model[16]; + float rotation_x[16]; + float rotation_y[16]; + float rotation_z[16]; + float rotation_xy[16]; + float cosine = cosf(model->rotation[0]); + float sine = sinf(model->rotation[0]); + ta_obj_identity(rotation_x); + rotation_x[5] = cosine; + rotation_x[6] = sine; + rotation_x[9] = -sine; + rotation_x[10] = cosine; + cosine = cosf(model->rotation[1]); + sine = sinf(model->rotation[1]); + ta_obj_identity(rotation_y); + rotation_y[0] = cosine; + rotation_y[2] = -sine; + rotation_y[8] = sine; + rotation_y[10] = cosine; + cosine = cosf(model->rotation[2]); + sine = sinf(model->rotation[2]); + ta_obj_identity(rotation_z); + rotation_z[0] = cosine; + rotation_z[1] = sine; + rotation_z[4] = -sine; + rotation_z[5] = cosine; + ta_obj_multiply(rotation_xy, rotation_y, rotation_x); + ta_obj_multiply(uniforms.model, rotation_z, rotation_xy); + uniforms.model[12] = model->position[0]; + uniforms.model[13] = model->position[1]; + uniforms.model[14] = model->position[2]; + float aspect = (float)window_width / (float)window_height; + float focal_length = 1.0f / tanf(22.5f * 0.01745329252f); + ta_obj_identity(view); + view[14] = -5.0f; + projection[0] = focal_length / aspect; + projection[5] = focal_length; + projection[10] = -101.0f / 99.0f; + projection[11] = -1.0f; + projection[14] = -200.0f / 99.0f; + ta_obj_multiply(view_model, view, uniforms.model); + ta_obj_multiply(uniforms.mvp, projection, view_model); + SDL_PushGPUVertexUniformData(command_buffer, 0, &uniforms, sizeof(uniforms)); + SDL_BindGPUGraphicsPipeline(render_pass, model->pipeline); + SDL_GPUBufferBinding binding = {.buffer = model->vertex_buffer}; + SDL_BindGPUVertexBuffers(render_pass, 0, &binding, 1); + SDL_DrawGPUPrimitives(render_pass, model->vertex_count, 1, 0, 0); +} + +void ta_obj_model_destroy(ta_obj_model *model, SDL_GPUDevice *device) { + SDL_ReleaseGPUGraphicsPipeline(device, model->pipeline); + SDL_ReleaseGPUBuffer(device, model->vertex_buffer); + ta_obj_free(&model->mesh); + memset(model, 0, sizeof(*model)); +}
\ No newline at end of file diff --git a/src/scale.c b/src/scale.c new file mode 100644 index 0000000..4aeea28 --- /dev/null +++ b/src/scale.c @@ -0,0 +1,32 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "window.h" + +int X(float x) { + return x * ta_window_height; +} + +int Y(float y) { + return y * ta_window_width; +} + +int S(float scale) { + return scale * ta_window_height; +}
\ No newline at end of file diff --git a/src/screen.c b/src/screen.c new file mode 100644 index 0000000..3497e52 --- /dev/null +++ b/src/screen.c @@ -0,0 +1,55 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "screen.h" +#include "screens/main_menu.h" + +ta_screens ta_screen_current = NONE; + +void ta_screen_update(void) { + switch (ta_screen_current) { + case NONE: { + break; + } + case MAIN_MENU: { + ta_screens_main_menu_update(); + break; + } + } +} + +void ta_screen_upload(SDL_GPUCommandBuffer *command_buffer) { + switch (ta_screen_current) { + case MAIN_MENU: + ta_screens_main_menu_upload(command_buffer); + break; + case NONE: + break; + } +} + +void ta_screen_render(SDL_GPUCommandBuffer *command_buffer, SDL_GPURenderPass *render_pass) { + switch (ta_screen_current) { + case MAIN_MENU: + ta_screens_main_menu_render(command_buffer, render_pass); + break; + case NONE: + break; + } +}
\ No newline at end of file diff --git a/src/screen/CMakeLists.txt b/src/screen/CMakeLists.txt deleted file mode 100644 index 2e93cef..0000000 --- a/src/screen/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -############################################################################### -# tuxanci/src/*/CMakeLists.txt -############################################################################### -# Generate source_code files from .c files we find in directory -############################################################################### -MacroAddSources() -############################################################################### diff --git a/src/screen/analyze.c b/src/screen/analyze.c deleted file mode 100644 index 450da41..0000000 --- a/src/screen/analyze.c +++ /dev/null @@ -1,186 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" - -#include "interface.h" -#include "screen.h" -#include "image.h" -#include "hotKey.h" - -#ifndef NO_SOUND -#include "music.h" -#endif - -#include "mainMenu.h" -#include "analyze.h" - -#include "widget.h" -#include "widget_label.h" -#include "widget_button.h" -#include "widget_image.h" - -static widget_t *image_backgorund; - -static list_t *listWidgetLabelName; -static list_t *listWidgetLabelScore; -static list_t *listAnalyze; -static widget_t *widgetLabelMsg; - -static widget_t *button_ok; - -static analyze_t *newAnalyze(char *name, int score) -{ - analyze_t *new; - - new = malloc(sizeof(analyze_t)); - new->name = strdup(name); - new->score = score; - - return new; -} - -static void destroyAnalyze(analyze_t *p) -{ - free(p->name); - free(p); -} - -static void hotkey_escape() -{ - screen_set("mainMenu"); -} - -void analyze_start() -{ -#ifndef NO_SOUND - music_play("menu", MUSIC_GROUP_BASE); -#endif - - hot_key_register(SDLK_ESCAPE, hotkey_escape); -} - -void analyze_draw() -{ - widget_t *this; - int i; - - wid_image_draw(image_backgorund); - - for (i = 0; i < listWidgetLabelName->count; i++) { - this = (widget_t *) listWidgetLabelName->list[i]; - label_draw(this); - } - - for (i = 0; i < listWidgetLabelScore->count; i++) { - this = (widget_t *) listWidgetLabelScore->list[i]; - label_draw(this); - } - - label_draw(widgetLabelMsg); - button_draw(button_ok); -} - -void analyze_event() -{ - button_event(button_ok); -} - -void analyze_stop() -{ - label_destroy(widgetLabelMsg); - widgetLabelMsg = label_new("", WINDOW_SIZE_X / 2, 250, WIDGET_LABEL_CENTER); - - hot_key_unregister(SDLK_ESCAPE); -} - -static void eventWidget(void *p) -{ - widget_t *button; - - button = (widget_t *) p; - - if (button == button_ok) { - screen_set("mainMenu"); - } -} - -void analyze_restart() -{ - list_destroy_item(listWidgetLabelName, label_destroy); - list_destroy_item(listWidgetLabelScore, label_destroy); - list_destroy_item(listAnalyze, destroyAnalyze); - - listWidgetLabelName = list_new(); - listWidgetLabelScore = list_new(); - listAnalyze = list_new(); -} - -void analyze_add(char *name, int score) -{ - list_add(listAnalyze, newAnalyze(name, score)); -} - -void analyze_set_msg(char *msg) -{ - label_destroy(widgetLabelMsg); - widgetLabelMsg = label_new(msg, WINDOW_SIZE_X / 2, 250, WIDGET_LABEL_CENTER); -} - -void analyze_end() -{ - int i; - - for (i = 0; i < listAnalyze->count; i++) { - analyze_t *this; - char *str; - - this = (analyze_t *) listAnalyze->list[i]; - - list_add(listWidgetLabelName, label_new(this->name, - 100, 200 + 20 * i, - WIDGET_LABEL_LEFT)); - - str = getString(this->score); - - list_add(listWidgetLabelScore, label_new(str, - WINDOW_SIZE_X - 100, 200 + 20 * i, - WIDGET_LABEL_RIGHT)); - - free(str); - } -} - -void analyze_init() -{ - image_t *image; - - image = image_get(IMAGE_GROUP_BASE, "screen_main"); - image_backgorund = wid_image_new(0, 0, image); - - listWidgetLabelName = list_new(); - listWidgetLabelScore = list_new(); - listAnalyze = list_new(); - - button_ok = button_new(_("OK"), WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2, - WINDOW_SIZE_Y - 100, eventWidget); - - screen_register(screen_new("analyze", analyze_start, analyze_event, - analyze_draw, analyze_stop)); - - widgetLabelMsg = label_new("", WINDOW_SIZE_X / 2, 250, WIDGET_LABEL_CENTER); -} - -void analyze_quit() -{ - wid_image_destroy(image_backgorund); - - list_destroy_item(listWidgetLabelName, label_destroy); - list_destroy_item(listWidgetLabelScore, label_destroy); - list_destroy_item(listAnalyze, destroyAnalyze); - - button_destroy(button_ok); - label_destroy(widgetLabelMsg); -} diff --git a/src/screen/analyze.h b/src/screen/analyze.h deleted file mode 100644 index 2fc2b7b..0000000 --- a/src/screen/analyze.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef SCREEN_ANALYZE_H -#define SCREEN_ANALYZE_H - -#include "main.h" - -typedef struct analyze_struct { - char *name; - int score; -} analyze_t; - -extern void analyze_start(); -extern void analyze_draw(); -extern void analyze_event(); -extern void analyze_stop(); -extern void analyze_restart(); -extern void analyze_add(char *name, int score); -extern void analyze_set_msg(char *msg); -extern void analyze_end(); -extern void analyze_init(); -extern void analyze_quit(); - -#endif /* SCREEN_ANALYZE_H */ diff --git a/src/screen/browser.c b/src/screen/browser.c deleted file mode 100644 index c826ce2..0000000 --- a/src/screen/browser.c +++ /dev/null @@ -1,759 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "textFile.h" -#include "homeDirector.h" -#include "net_multiplayer.h" - -#include "interface.h" -#include "screen.h" -#include "image.h" -#include "hotKey.h" - -#ifndef __WIN32__ -#include <sys/socket.h> -#include <sys/select.h> -#include <sys/types.h> -#include <netinet/in.h> -#include <arpa/inet.h> -#include <netdb.h> -#else /* __WIN32__ */ -#include <windows.h> -#include <wininet.h> -#endif /* __WIN32__ */ - -#include <unistd.h> -#include <fcntl.h> -#include <errno.h> - -#include "udp.h" -#include "dns.h" - -extern int errno; - -#ifndef NO_SOUND -#include "music.h" -#endif /* NO_SOUND */ - -#include "gameType.h" -#include "browser.h" - -#include "widget.h" -#include "widget_image.h" -#include "widget_label.h" -#include "widget_button.h" -#include "widget_select.h" - -#define SERVER_TIMEOUT 200 - -static widget_t *image_backgorund; - -static widget_t *button_play; -static widget_t *button_back; -static widget_t *button_refresh; -static widget_t *button_reload; - -static widget_t *label_server; -static widget_t *label_version; -static widget_t *label_address; -static widget_t *label_arena; -static widget_t *label_players; -static widget_t *label_ping; - -static widget_t *select_server; - -static server_t server_list; - -/* function prototypes */ -static int LoadServers(); -static int RefreshServers(); -static server_t *server_getcurr(); -static void clear_server_list(); - -static void hotkey_escape() -{ - screen_set("gameType"); -} - -void browser_start() -{ -#ifndef NO_SOUND - music_play("menu", MUSIC_GROUP_BASE); -#endif /* NO_SOUND */ - - hot_key_register(SDLK_ESCAPE, hotkey_escape); - - LoadServers(); -} - -void browser_draw() -{ - wid_image_draw(image_backgorund); - - label_draw(label_server); - label_draw(label_version); - label_draw(label_address); - label_draw(label_arena); - label_draw(label_players); - label_draw(label_ping); - - select_draw(select_server); - - button_draw(button_play); - button_draw(button_back); - button_draw(button_refresh); - button_draw(button_reload); -} - -void browser_event() -{ - select_event(select_server); - - button_event(button_play); - button_event(button_back); - button_event(button_refresh); - button_event(button_reload); -} - -void browser_stop() -{ - select_remove_all(select_server); - - hot_key_unregister(SDLK_ESCAPE); - - clear_server_list(); -} - -static void eventWidget(void *p) -{ - widget_t *button; - - button = (widget_t *) p; - - if (button == button_play) { - server_t *server = server_getcurr(); - - if (!server) { - return; - } - - /* server is offline */ - if (!server->state) { - return; - } - - struct in_addr srv; - srv.s_addr = server->ip; - - char *address = (char *) inet_ntoa(srv); - - setSettingGameType(NET_GAME_TYPE_CLIENT); - game_type_set_ip(address); - game_type_set_port(server->port); - - screen_set("world"); - } - - if (button == button_back) { - screen_set("gameType"); - } - - if (button == button_refresh) { - RefreshServers(); - } - - if (button == button_reload) { - LoadServers(); - } -} - -server_t *server_getcurr() -{ - int i = 0; - server_t *server; - - for (server = server_list.next; server != &server_list; server = server->next) { - if (i == select_get_index(select_server)) { - return server; - } - - i++; - } - - return 0; -} - -int server_getinfo(server_t *server) -{ - struct sockaddr_in srv; - int mySocket; - - if ((mySocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) { - return -1; - } -#ifndef __WIN32__ - /* let's make the socket non-blocking */ - int oldFlag = fcntl(mySocket, F_GETFL, 0); - if (fcntl(mySocket, F_SETFL, oldFlag | O_NONBLOCK) == -1) { - return -1; - } -#else /* __WIN32__ */ - unsigned long arg = 1; - /* Operation is FIONBIO. Parameter is pointer on non-zero number */ - if (ioctlsocket(mySocket, FIONBIO, &arg) == SOCKET_ERROR) { - WSACleanup(); - return -1; - } -#endif /* __WIN32__ */ - - struct timeval tv; - - fd_set myset; - FD_ZERO(&myset); - FD_SET(mySocket, &myset); - - tv.tv_sec = 2; - tv.tv_usec = 0; - - srv.sin_family = AF_INET; - srv.sin_port = htons(server->port); - srv.sin_addr.s_addr = server->ip; - - if (connect(mySocket, (struct sockaddr *) &srv, sizeof(srv)) == -1) { -#ifndef __WIN32__ - if (errno != EINPROGRESS) { - return -1; - } -#else /* __WIN32__ */ - if (WSAGetLastError() != WSAEWOULDBLOCK) { - WSACleanup(); - return -1; - } -#endif /* __WIN32__ */ - } - - int ret = select(mySocket + 1, NULL, &myset, NULL, &tv); - - if (ret == -1) { - return 0; - } - - if (ret == 0) { - return -2; - } - - char request[8]; - memcpy(request, "status\n", 7); - - int r = send(mySocket, request, 7, 0); - - if (r == -1) { - return -2; - } - - FD_ZERO(&myset); - FD_SET(mySocket, &myset); - tv.tv_sec = 1; - tv.tv_usec = 0; - - char *str = (char *) malloc(sizeof(char) * 257); - - if (!str) { - return -1; - } - - while (1) { - int sel = select(mySocket + 1, &myset, NULL, NULL, &tv); - - if (sel == 0) { - free(str); -#ifndef __WIN32__ - close(mySocket); -#else /* __WIN32__ */ - closesocket(mySocket); - WSACleanup(); -#endif /* __WIN32__ */ - return -2; - } - - if (sel == -1) { - free(str); -#ifndef __WIN32__ - close(mySocket); -#else /* __WIN32__ */ - closesocket(mySocket); - WSACleanup(); -#endif /* __WIN32__ */ - return -2; - } - - if ((ret = recv(mySocket, str, 256, 0)) == -1) { - free(str); -#ifndef __WIN32__ - close(mySocket); -#else /* __WIN32__ */ - closesocket(mySocket); - WSACleanup(); -#endif /* __WIN32__ */ - return -1; - } - - if (ret > 0) { - break; - } - } - -#ifndef __WIN32__ - close(mySocket); -#else /* __WIN32__ */ - closesocket(mySocket); - WSACleanup(); -#endif /* __WIN32__ */ - - server->ping = 1000 - (tv.tv_usec / 1000); - /* - ["name: F\n"] >= svn82 - "version: svnX\n" - "clients: N\n" - "maxclients: M\n" - "uptime: D\n" - */ - - int i = 0; - - while (i < ret) { - if (str[i] == '\n') { - str[i] = '\0'; - } - - i++; - } - - unsigned name = 0; - - /* get server's name */ - if (strstr(str, "name: ")) { - name = 1; - } - - int len = 0; - - if (name) { - len = strlen(str); - if (!strncmp(str, "name: ", 6)) { - unsigned name_len = strlen(str + 6); - server->name = (char *) malloc(sizeof(char) * (name_len + 2)); - - if (!server->name) { - return 0; - } - - memcpy(server->name, str + 6, name_len + 1); - server->name[name_len + 1] = '\0'; - } - } - - /* HACK */ - if (!name) { - len = -1; - } - - /* get server's version */ - if (!strncmp(str + len + 1, "version: ", 9)) { - unsigned ver_len = strlen(str + len + 10); - server->version = (char *) malloc(sizeof(char) * (ver_len + 2)); - - if (!server->version) { - return 0; - } - - memcpy(server->version, str + len + 10, ver_len + 1); - server->version[ver_len + 1] = '\0'; - } - - len += strlen(str + len + 1) + 1; - - /* get server's connected clients count */ - if (!strncmp(str + len + 1, "clients: ", 9)) { - server->clients = atoi(str + len + 10); - } - - len += strlen(str + len + 1) + 1; - - /* get server's maximum connected clients count */ - if (!strncmp(str + len + 1, "maxclients: ", 12)) { - server->maxclients = atoi(str + len + 13); - } - - len += strlen(str + len + 1) + 1; - - /* get server's uptime */ - if (!strncmp(str + len + 1, "uptime: ", 8)) { - server->uptime = atoi(str + len + 9); - } - - len += strlen(str + len + 1) + 1; - - /* get server's arena */ - if (!strncmp(str + len + 1, "arena: ", 7)) { - unsigned arena_len = strlen(str + len + 9); - server->arena = (char *) malloc(sizeof(char) * (arena_len + 2)); - - if (!server->arena) { - return 0; - } - - memcpy(server->arena, str + len + 8, arena_len + 1); - server->arena[arena_len + 1] = '\0'; - } - - - free(str); - - server->state = 1; - - return 1; -} - -/* - * Get server list - */ -static int LoadServers() -{ -#ifndef __WIN32__ - int s; -#else /* __WIN32__ */ - SOCKET s; -#endif /* __WIN32__ */ - - char buf[1025]; - - /* first of all ensure the server list is empty */ - clear_server_list(); - select_remove_all(select_server); - - /* TODO: TCP macro */ - struct sockaddr_in server; - char *master_server_ip; - - master_server_ip = dns_resolv(NET_MASTER_SERVER_DOMAIN); - - if (master_server_ip == NULL) { - warning("Did not obtained IP of the MasterServer"); - return -1; - } - - server.sin_family = AF_INET; - server.sin_port = htons(NET_MASTER_PORT); - server.sin_addr.s_addr = inet_addr(master_server_ip); - - free(master_server_ip); - - if ((s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) { - warning("Unable to open socket for connection to MasterServer"); - return -1; - } - - /* Set to nonblocking socket mode */ -#ifndef __WIN32__ - int oldFlag = fcntl(s, F_GETFL, 0); - if (fcntl(s, F_SETFL, oldFlag | O_NONBLOCK) == -1) { - return -1; - } -#else /* __WIN32__ */ - unsigned long arg = 1; - /* Operation is FIONBIO. Parameter is pointer on non-zero number. */ - if (ioctlsocket(s, FIONBIO, &arg) == SOCKET_ERROR) { - WSACleanup(); - return -1; - } -#endif /* __WIN32__ */ - - if (connect(s, (struct sockaddr *) &server, sizeof(server)) == -1) { -#ifndef __WIN32__ - if (errno != EINPROGRESS) { - return -1; - } -#else /* __WIN32__ */ - if (WSAGetLastError() != WSAEWOULDBLOCK) { - WSACleanup(); - return -1; - } -#endif /* __WIN32__ */ - } - - struct timeval tv; - - fd_set myset; - - FD_ZERO(&myset); - FD_SET(s, &myset); - - tv.tv_sec = 3; - tv.tv_usec = 0; - - int ret = select(s + 1, NULL, &myset, NULL, &tv); - - if (ret == -1) { - return 0; - } else if (ret == 0) { - return -2; - } - - /* send request for server list */ - send(s, "l", 1, 0); - - FD_ZERO(&myset); - FD_SET(s, &myset); - - ret = select(s + 1, &myset, NULL, NULL, &tv); - - if (ret == -1) { - return 0; - } else if (ret == 0) { - return -2; - } - - int len = recv(s, buf, 1024, 0); - -#ifndef __WIN32__ - close(s); -#else /* __WIN32__ */ - closesocket(s); - WSACleanup(); -#endif /* __WIN32__ */ - - if (len <= 0) { - return 0; - } - - int i = 0; - char list[256]; - - struct in_addr srv; - - typedef struct { - unsigned port; - unsigned ip; - } response_head; - - for (;;) { - response_head *header = (response_head *) ((char *) buf + i); - - server_t *ctx; - - /* alloc and init context */ - ctx = (server_t *) malloc(sizeof(server_t)); - - ctx->ip = header->ip; - ctx->port = header->port; - ctx->name = 0; - ctx->version = 0; - ctx->arena = 0; - - ret = server_getinfo(ctx); - - srv.s_addr = ctx->ip; - - char *address = (char *) inet_ntoa(srv); - - memset(list, ' ', 254); - list[255] = '\0'; - - if (ret == 1) { - /*sprintf (list, "%s (%s) - %s:%d - %s - %d/%d - %dms", ctx->name ? ctx->name : "Unknown", ctx->version, address, ctx->port, - ctx->arena ? ctx->arena : "Unknown", ctx->clients, ctx->maxclients, ctx->ping); */ - - if (ctx->name) { - memcpy(list, ctx->name, strlen(ctx->name)); - } else { - memcpy(list, "Unknown", 7); - } - - memcpy(list + 30, ctx->version, strlen(ctx->version)); - - unsigned a_len = strlen(address); - memcpy(list + 38, address, a_len); - memcpy(list + 38 + a_len, ":", 1); - - sprintf(buf, "%d", ctx->port); - - memcpy(list + 39 + a_len, buf, strlen(buf)); - - memcpy(list + 60, ctx->arena, strlen(ctx->arena)); - - sprintf(buf, "%d/%d", ctx->clients, ctx->maxclients); - - memcpy(list + 75, buf, strlen(buf)); - - sprintf(buf, "%dms", ctx->ping); - - memcpy(list + 83, buf, strlen(buf)); - } - - select_add(select_server, list); - - /* add server to server list */ - ctx->next = &server_list; - ctx->prev = server_list.prev; - ctx->prev->next = ctx; - ctx->next->prev = ctx; - - i += sizeof(response_head) + 1; - - if (buf[i - 1] != '\n' || (i + 1) > len) { - break; - } - } - - return 1; -} - -static int RefreshServers() -{ - select_remove_all(select_server); - - struct in_addr srv; - - server_t *server; - for (server = server_list.next; server != &server_list; server = server->next) { - if (server->name) { - free(server->name); - } - - if (server->version) { - free(server->version); - } - - if (server->arena) { - free(server->arena); - } - - server->name = 0; - server->version = 0; - server->arena = 0; - - char list[256]; - char buf[32]; - - int ret = server_getinfo(server); - - srv.s_addr = server->ip; - - char *address = (char *) inet_ntoa(srv); - - if (ret == 1) { - memset(list, ' ', 254); - list[255] = '\0'; - - if (server->name) { - memcpy(list, server->name, strlen(server->name)); - } else { - memcpy(list, "Unknown", 7); - } - - memcpy(list + 30, server->version, strlen(server->version)); - - unsigned a_len = strlen(address); - memcpy(list + 38, address, a_len); - memcpy(list + 38 + a_len, ":", 1); - - sprintf(buf, "%d", server->port); - - memcpy(list + 39 + a_len, buf, strlen(buf)); - - memcpy(list + 60, server->arena, strlen(server->arena)); - - sprintf(buf, "%d/%d", server->clients, server->maxclients); - - memcpy(list + 75, buf, strlen(buf)); - - sprintf(buf, "%dms", server->ping); - - memcpy(list + 83, buf, strlen(buf)); - - select_add(select_server, list); - } - } - - return 1; -} - -void browser_init() -{ - image_t *image; - - image = image_get(IMAGE_GROUP_BASE, "screen_main"); - image_backgorund = wid_image_new(0, 0, image); - - button_back = button_new(_("Back"), 100, WINDOW_SIZE_Y - 100, eventWidget); - button_play = button_new(_("Play"), WINDOW_SIZE_X - 200, WINDOW_SIZE_Y - 100, - eventWidget); - button_refresh = button_new(_("Refresh"), - WINDOW_SIZE_X / 2 - 130, WINDOW_SIZE_Y - 100, - eventWidget); - button_reload = button_new(_("Reload"), - WINDOW_SIZE_X / 2 + 35, WINDOW_SIZE_Y - 100, - eventWidget); - - label_server = label_new(_("Server"), 120, 145, WIDGET_LABEL_LEFT); - label_version = label_new(_("Version"), 290, 145, WIDGET_LABEL_LEFT); - label_address = label_new(_("IP"), 400, 145, WIDGET_LABEL_LEFT); - label_arena = label_new(_("Arena"), 550, 145, WIDGET_LABEL_LEFT); - label_players = label_new(_("Clients"), 645, 145, WIDGET_LABEL_LEFT); - label_ping = label_new(_("Ping"), 720, 145, WIDGET_LABEL_LEFT); - - select_server = select_new(50, label_server->y + 40, eventWidget); - - screen_register(screen_new("browser", browser_start, browser_event, - browser_draw, browser_stop)); - - server_list.next = &server_list; - server_list.prev = &server_list; -} - -void browser_quit() -{ - wid_image_destroy(image_backgorund); - - button_destroy(button_play); - button_destroy(button_back); - button_destroy(button_refresh); - button_destroy(button_reload); - - label_destroy(label_server); - label_destroy(label_version); - label_destroy(label_address); - label_destroy(label_arena); - label_destroy(label_players); - label_destroy(label_ping); - - select_destroy(select_server); -} - -static void clear_server_list() -{ - server_t *server; - - for (server = server_list.next; server != &server_list; server = server_list.next) { - server->next->prev = server->prev; - server->prev->next = server->next; - - if (server->name) { - free(server->name); - } - - if (server->version) { - free(server->version); - } - - if (server->arena) { - free(server->arena); - } - - free(server); - } -} diff --git a/src/screen/browser.h b/src/screen/browser.h deleted file mode 100644 index 76c0e42..0000000 --- a/src/screen/browser.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef SCREEN_BROWSER_H -#define SCREEN_BROWSER_H - -typedef struct server_context { - struct server_context *next, *prev; - - unsigned char state; - - unsigned char ping; - - unsigned ip; - unsigned port; - - char *name; - - char *version; - unsigned char clients; - unsigned char maxclients; - unsigned uptime; - char *arena; -} server_t; - -extern void browser_start(); -extern void browser_draw(); -extern void browser_event(); -extern void browser_stop(); -extern void browser_init(); -extern void browser_quit(); - -#endif /* SCREEN_BROWSER_H */ diff --git a/src/screen/choiceArena.c b/src/screen/choiceArena.c deleted file mode 100644 index d8c1a24..0000000 --- a/src/screen/choiceArena.c +++ /dev/null @@ -1,265 +0,0 @@ -#include <stdio.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "arenaFile.h" - -#include "interface.h" -#include "screen.h" -#include "image.h" -#include "hotKey.h" -#include "config.h" - -#ifndef NO_SOUND -#include "music.h" -#endif - -#include "mainMenu.h" -#include "choiceArena.h" - -#include "widget.h" -#include "widget_label.h" -#include "widget_button.h" -#include "widget_image.h" -#include "widget_buttonimage.h" - -static widget_t *image_backgorund; - -static widget_t *button_play; -static widget_t *button_back; -static widget_t *button_next; -static widget_t *button_prev; - -/*static list_t *listWidgetButtonimage;*/ /* map buttons to be showed and handled - well, show_map_buttons is used instead now */ -static list_t *listAllWidgetButtonimage; /* all map buttons */ -static int handled_map_button_group; /* 0 - first 6 buttons, 1 - second 6 buttons, ... */ -static void activateHandledMapButtonGroup(); -static struct show_map_buttons { - /* geez, it'd be nicer to use two lists - but how the hell list_t is supposed to be used?! :-) */ - int min; /* see activateHandledMapButtonGroup for description */ - int max; - int next; /* 0: max is last item+1 in listAllWidgetButtonimage, otherwise 1 */ - int prev; /* 0: min is first item in listAllWidgetButtonimage, otherwise 1 */ -} show_map_buttons = { 0,0,0,0 }; -static arenaFile_t *currentArena; - -static void hotkey_escape() -{ - screen_set("gameType"); -} - -void screen_startChoiceArena() -{ -#ifndef NO_SOUND - music_play("menu", MUSIC_GROUP_BASE); -#endif - - hot_key_register(SDLK_ESCAPE, hotkey_escape); -} - -void choice_arena_draw() -{ - int i; - - wid_image_draw(image_backgorund); - - button_draw(button_play); - button_draw(button_back); - if (show_map_buttons.next) { button_draw(button_next); } - if (show_map_buttons.prev) { button_draw(button_prev); } - - for (i = show_map_buttons.min; i < show_map_buttons.max; i++) { - button_image_draw((widget_t *) listAllWidgetButtonimage->list[i]); - } -} - -void choice_arena_event() -{ - int i; - - button_event(button_play); - button_event(button_back); - if (show_map_buttons.next) { button_event(button_next); } - if (show_map_buttons.prev) { button_event(button_prev); } - - for (i = show_map_buttons.min ; i < show_map_buttons.max; i++) { - button_image_event((widget_t *) listAllWidgetButtonimage->list[i]); - } -} - -void stopScreenChoiceArena() -{ - hot_key_unregister(SDLK_ESCAPE); -} - -static void button_eventImage(void *p) -{ - widget_t *buttonimage; - int i; - - buttonimage = (widget_t *) p; - - for (i = show_map_buttons.min; i < show_map_buttons.max; i++) { - widget_t *this; - - this = (widget_t *) listAllWidgetButtonimage->list[i]; - - if (buttonimage == this) { - button_image_set_active(this, TRUE); - currentArena = arena_file_get(i); - } else { - button_image_set_active(this, FALSE); - } - } -} - -arenaFile_t *choice_arena_get() -{ - return currentArena; -} - -void choice_arena_set(arenaFile_t *arenaFile) -{ - widget_t *widget_buttonimage; - int id; - - id = arena_file_get_id(arenaFile); - currentArena = arenaFile; - - if (id >= 0) { - widget_buttonimage = (widget_t *) listAllWidgetButtonimage->list[id]; - button_image_set_active(widget_buttonimage, TRUE); - } -} - -static void eventWidget(void *p) -{ - widget_t *button; - - button = (widget_t *) p; - - if (button == button_play) { - screen_set("world"); - } - - if (button == button_back) { - screen_set("gameType"); - } - - if (button == button_next) { - if (show_map_buttons.next) { - handled_map_button_group++; - activateHandledMapButtonGroup(); - } - } - - if (button == button_prev) { - if (show_map_buttons.prev) { - handled_map_button_group--; - activateHandledMapButtonGroup(); - } - } -} - -/** - * groups of 6 map buttons to be shown and handled - * the group is set by static global variable handled_map_button_group - * sets static global show_map_buttons.min to index of first button to be drawn in listAllButtonimage - * and show_map_buttons.max to index of last button to be drawn+1 in listAllButtonimage - */ -static void activateHandledMapButtonGroup(void) -{ - int min = handled_map_button_group * 6; - min = min < 0 ? 0 : min; - min = min <= arena_file_get_count() ? min : arena_file_get_count(); - int max = min + 6 <= arena_file_get_count() ? min + 6 : arena_file_get_count(); - - if (min) { - show_map_buttons.prev = 1; - } else { - show_map_buttons.prev = 0; - } - - if (max < arena_file_get_count()) { - show_map_buttons.next = 1; - } else { - show_map_buttons.next = 0; - } - - show_map_buttons.min = min; - show_map_buttons.max = max; -} - -void choice_arena_init() -{ - image_t *image; - int i; - - image = image_get(IMAGE_GROUP_BASE, "screen_main"); - image_backgorund = wid_image_new(0, 0, image); - - button_back = button_new(_("Back"), 100, WINDOW_SIZE_Y - 100, eventWidget); - button_play = button_new(_("Play"), WINDOW_SIZE_X - 200, WINDOW_SIZE_Y - 100, eventWidget); - - button_prev = button_new(_("Previous arenas"), 250, WINDOW_SIZE_Y - 100, eventWidget); - button_next = button_new(_("Next arenas"), WINDOW_SIZE_X - 350, WINDOW_SIZE_Y - 100, eventWidget); - - listAllWidgetButtonimage = list_new(); - currentArena = NULL; - - for (i = 0; i < arena_file_get_count(); i++) { - widget_t *widget_buttonimage; - arenaFile_t *arenaFile; - int x, y; - - arenaFile = arena_file_get(i); - /*image = image_add(arena_file_get_image(i), IMAGE_NO_ALPHA, "none", IMAGE_GROUP_BASE);*/ - image = arena_file_load_image(arenaFile, arena_file_get_image(arenaFile), - IMAGE_GROUP_BASE, "none", IMAGE_NO_ALPHA); - - /* - only 6 map buttons can be shown at once; - set buttons' positions in each group to the corresponding values - handled_map_button_group and activateHandledMapButtonGroup is used - to choose group to be shown and handled - */ - int pos = i % 6 ; - x = 100 + 200 * (pos - 3 * (pos / 3)); - y = 150 + 200 * (pos / 3); - - widget_buttonimage = button_image_new(image, x, y, button_eventImage); -/* - if (i == choiceArenaId) { - widget_buttonimage->active = 1; - } -*/ - list_add(listAllWidgetButtonimage, widget_buttonimage); - handled_map_button_group = 0; - activateHandledMapButtonGroup(); - } - - screen_register(screen_new("chiceArena", screen_startChoiceArena, - choice_arena_event, choice_arena_draw, - stopScreenChoiceArena)); - - choice_arena_set(arena_file_get_file_format_net_name(config_get_str_value(CFG_ARENA))); -} - -void choice_arena_quit() -{ - if (choice_arena_get() != NULL) { - config_set_str_value(CFG_ARENA, arena_file_get_net_name(choice_arena_get())); - } - - wid_image_destroy(image_backgorund); - - button_destroy(button_play); - button_destroy(button_back); - - button_destroy(button_next); - button_destroy(button_prev); - - list_destroy_item(listAllWidgetButtonimage, button_image_destroy); -} diff --git a/src/screen/choiceArena.h b/src/screen/choiceArena.h deleted file mode 100644 index c0adacd..0000000 --- a/src/screen/choiceArena.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef SCREEN_CHOICE_ARENA_H -#define SCREEN_CHOICE_ARENA_H - -#include "main.h" -#include "arenaFile.h" - -#define SCREENSHOT_ARENA_WIDTH 160 -#define SCREENSHOT_ARENA_HEIGHT 107 - -extern void choice_arena_draw(); -extern void choice_arena_event(); -extern arenaFile_t *choice_arena_get(); -extern void choice_arena_set(arenaFile_t *arenaFile); -extern void choice_arena_init(); -extern void choice_arena_quit(); - -#endif /* SCREEN_CHOICE_ARENA_H */ diff --git a/src/screen/credits.c b/src/screen/credits.c deleted file mode 100644 index cb8704e..0000000 --- a/src/screen/credits.c +++ /dev/null @@ -1,162 +0,0 @@ -#include <stdio.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "textFile.h" - -#include "interface.h" -#include "screen.h" -#include "image.h" -#include "hotKey.h" - -#ifndef NO_SOUND -#include "music.h" -#endif - -#include "credits.h" - -#include "widget.h" -#include "widget_image.h" -#include "widget_label.h" -#include "widget_button.h" - -static widget_t *image_backgorund; -static widget_t *button_back; -static list_t *listWidgetLabel; -static textFile_t *textFile; -static int offset; -static int creditExists; - -static void hotkey_escape() -{ - screen_set("mainMenu"); -} - -void scredits_start() -{ -#ifndef NO_SOUND - music_play("menu", MUSIC_GROUP_BASE); -#endif - offset = 0; - - hot_key_register(SDLK_ESCAPE, hotkey_escape); -} - -void scredits_draw() -{ - int i; - - wid_image_draw(image_backgorund); - - button_draw(button_back); - - for (i = 0; i < listWidgetLabel->count; i++) { - int z; - - widget_t *this; - - this = (widget_t *) listWidgetLabel->list[i]; - - z = this->y; - this->y += offset; - - if (this->y > SCREEN_CREDITS_OFFSET_MIN && this->y < SCREEN_CREDITS_OFFSET_MAX) { - label_draw(this); - } - - this->y = z; - } - -} - -void scredits_event() -{ - button_event(button_back); - - offset -= SCREEN_CREDITS_OFFSET_SPEED; - - if (offset < SCREEN_CREDITS_OFFSET_RESTART) { - offset = 0; - } - - /*printf("offset = %d\n", offset);*/ -} - -void scredits_stop() -{ - hot_key_unregister(SDLK_ESCAPE); -} - -static void eventWidget(void *p) -{ - widget_t *button; - - button = (widget_t *) p; - - if (button == button_back) { - screen_set("mainMenu"); - } -} - -void scredits_init() -{ - image_t *image; - int i; - - image = image_get(IMAGE_GROUP_BASE, "screen_main"); - image_backgorund = wid_image_new(0, 0, image); - - button_back = button_new(_("Back"), WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2, - WINDOW_SIZE_Y - 80, eventWidget); - - listWidgetLabel = list_new(); - - if (tryExistFile(PATH_DOC SCREEN_CREDITS_FILE) == 0) { - creditExists = 1; - textFile = text_file_load(PATH_DOC SCREEN_CREDITS_FILE); - - for (i = 0; i < textFile->text->count; i++) { - widget_t *label; - char *line; - - line = (char *) textFile->text->list[i]; - - label = label_new(line, WINDOW_SIZE_X / 3 - WINDOW_SIZE_X / 4, - (WINDOW_SIZE_Y - 100) + i * 20, - WIDGET_LABEL_LEFT); - - list_add(listWidgetLabel, label); - } - } else { - for (i = 0; i < 5; i++) { - creditExists = 0; - widget_t *label; - char line[STR_SIZE]; - - sprintf(line, _("[Error] Credits file not found [%s]: %s\n"), - PATH_DOC, SCREEN_CREDITS_FILE); - - label = label_new(line, WINDOW_SIZE_X / 2, - (WINDOW_SIZE_Y - 100) + i * 20, - WIDGET_LABEL_CENTER); - - list_add(listWidgetLabel, label); - } - } - - screen_register(screen_new("credits", scredits_start, scredits_event, - scredits_draw, scredits_stop)); -} - -void scredits_quit() -{ - wid_image_destroy(image_backgorund); - - button_destroy(button_back); - list_destroy_item(listWidgetLabel, label_destroy); - - if (creditExists) { - text_file_destroy(textFile); - } -} diff --git a/src/screen/credits.h b/src/screen/credits.h deleted file mode 100644 index 827b9c1..0000000 --- a/src/screen/credits.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SCREEN_CREDITS_H -#define SCREEN_CREDITS_H - -#define SCREEN_CREDITS_FILE "AUTHORS" - -#define SCREEN_CREDITS_OFFSET_MIN 130 -#define SCREEN_CREDITS_OFFSET_MAX WINDOW_SIZE_Y-120 -#define SCREEN_CREDITS_OFFSET_RESTART -1000 -#define SCREEN_CREDITS_OFFSET_SPEED 2 - -extern void scredits_start(); -extern void scredits_draw(); -extern void scredits_event(); -extern void scredits_stop(); -extern void scredits_init(); -extern void scredits_quit(); - -#endif /* SCREEN_CREDITS_H */ diff --git a/src/screen/downArena.c b/src/screen/downArena.c deleted file mode 100644 index ac211a9..0000000 --- a/src/screen/downArena.c +++ /dev/null @@ -1,386 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "buffer.h" -#include "textFile.h" -#include "arenaFile.h" -#include "homeDirector.h" - -#include "interface.h" -#include "screen.h" -#include "image.h" - -#include "net_multiplayer.h" -#include "udp.h" -#include "tcp.h" - -#include "widget.h" -#include "widget_image.h" -#include "widget_label.h" -#include "widget_button.h" - -#include "setting.h" -#include "downArena.h" -#include "gameType.h" - -static sock_udp_t *sock_server_udp; -static sock_tcp_t *sock_server_tcp; - -static widget_t *image_backgorund; -static widget_t *button_back; -static widget_t *label_status; - -static char str_status[STR_PROTO_SIZE]; -static char arenaNetName[STR_SIZE]; - -static int status_tcp_socket; -static buffer_t *recvBuffer; -static buffer_t *sendBuffer; - -static char path[STR_PATH_SIZE]; -static FILE *file; -static int fileSize; -static int fileOffset; - -static my_time_t timeSendMsg; -static int countSendMsg; - -static void setStatusString(char *s) -{ - printf("status -> %s\n", s); - label_destroy(label_status); - label_status = label_new(s, WINDOW_SIZE_X / 2, 250, WIDGET_LABEL_CENTER); -} - -static void connectToDownServer() -{ - char status[STR_SIZE]; - char msg[STR_PROTO_SIZE]; - - sock_server_tcp = sock_tcp_connect(public_server_get_settingIP(), public_server_get_settingPort()); - - if (sock_server_tcp == NULL) { - sprintf(status, _("Error! Unable to connect to [%s]:%d download server"), - public_server_get_settingIP(), public_server_get_settingPort()); - setStatusString(status); - return; - } - - sock_tcp_set_non_block(sock_server_tcp); - - recvBuffer = buffer_new(DOWN_ARENA_BUFFER_SIZE); - sendBuffer = buffer_new(DOWN_ARENA_BUFFER_SIZE); - status_tcp_socket = DOWN_SERVER_STATUS_OK; - - file = NULL; - countSendMsg = 0; - timeSendMsg = timer_get_current_time(); - - sprintf(msg, "GETARENA %s\n", arenaNetName); - - buffer_append(sendBuffer, msg, strlen(msg)); - - sprintf(status, _("Connecting to [%s]:%d download server"), - public_server_get_settingIP(), public_server_get_settingPort()); - setStatusString(status); -} - -static void closeConnectFromDownServer() -{ - sock_tcp_close(sock_server_tcp); - buffer_destroy(recvBuffer); - buffer_destroy(sendBuffer); - sock_server_tcp = NULL; - recvBuffer = NULL; - sendBuffer = NULL; -} - -static void sendStatusToGameServer() -{ - char *msg = "status\n"; - - if (countSendMsg > DOWN_ARENA_MAX_SEND_MSG_STATUS) { - char status[STR_SIZE]; - sprintf(status, _("Error! Game server [%s]:%d is off"), - public_server_get_settingIP(), public_server_get_settingPort()); - setStatusString(status); - return; - } - - timeSendMsg = timer_get_current_time(); - countSendMsg++; - printf("countSendMsg = %d\n", countSendMsg++); - - if (sock_udp_write(sock_server_udp, sock_server_udp, msg, strlen(msg)) < 0) { - char status[STR_SIZE]; - sprintf(status, _("Error! Unable to send message to [%s]:%d game server"), - public_server_get_settingIP(), public_server_get_settingPort()); - setStatusString(status); - } -} - -void down_arena_start() -{ - char status[STR_SIZE]; - - strcpy(str_status, "none"); - memset(arenaNetName, 0, STR_SIZE); - - sock_server_udp = sock_udp_connect(public_server_get_settingIP(), public_server_get_settingPort()); - - if (sock_server_udp == NULL) { - sprintf(status, _("Error! Unable to connect to [%s]:%d game server"), - public_server_get_settingIP(), public_server_get_settingPort()); - setStatusString(status); - return; - } - - sock_udp_set_non_block(sock_server_udp); - - sprintf(status, _("Connecting to [%s]:%d game server"), - public_server_get_settingIP(), public_server_get_settingPort()); - setStatusString(status); - - sendStatusToGameServer(); -} - -void down_arena_draw() -{ - wid_image_draw(image_backgorund); - label_draw(label_status); - button_draw(button_back); -} - -static void proto_ok(char *line) -{ - /*printf("line = %s\n", line);*/ - fileSize = atoi(line + 3); - fileOffset = 0; - - sprintf(path, "%s/%s.zip", home_director_get(), arenaNetName); - /*printf("path = %s\n", path);*/ - file = fopen(path, "wb"); -} - -static void proto_err(char *line) -{ - /*printf("line = %s\n", line);*/ - setStatusString(line + 4); - closeConnectFromDownServer(); -} - -static void eventProto(char *line) -{ - if (strncmp(line, "OK", 2) == 0) { - proto_ok(line); - } - - if (strncmp(line, "ERR", 3) == 0) { - proto_err(line); - } -} - -static int downArenaFile() -{ - char status[STR_SIZE]; - void *data; - int len; - - len = buffer_get_size(recvBuffer); - data = buffer_get_data(recvBuffer); - buffer_cut(recvBuffer, len); - - fwrite(data, len, 1, file); - fileOffset += len; - - sprintf(status, _("Downloading: %d/%d"), fileOffset, fileSize); - setStatusString(status); - - return len; -} - -static int eventRecvBuffer() -{ - char buffer[STR_PROTO_SIZE]; - char line[STR_PROTO_SIZE]; - int ret; - - memset(buffer, 0, STR_PROTO_SIZE); - - ret = sock_tcp_read(sock_server_tcp, buffer, STR_PROTO_SIZE - 1); - /*if (ret <= 0) printf("sock_tcp_read = %d\n", ret);*/ - - if (ret < 0) { - return -1; - } - - if (buffer_append(recvBuffer, buffer, ret) < 0) { - char status[STR_SIZE]; - sprintf(status, _("Error! Receiving buffer is full")); - setStatusString(status); - closeConnectFromDownServer(); - return -1; - } - - if (file == NULL && buffer_get_line(recvBuffer, line, STR_PROTO_SIZE) >= 0) { - eventProto(line); - return ret; - } - - if (file != NULL) { - return downArenaFile(); - } - - return -1; -} - -static int eventSendBuffer() -{ - void *data; - int len; - int res; - - len = buffer_get_size(sendBuffer); - - if (len == 0) { - return -1; - } - - data = buffer_get_data(sendBuffer); - - res = sock_tcp_write(sock_server_tcp, data, len); - - if (res < 0) { - return -1; - } - - buffer_cut(sendBuffer, res); - return res; -} - -static void readArenaFromStatus() -{ - const char *str_arena = "arena: "; - - char *offset_begin; - char *offset_end; - - offset_begin = strstr(str_status, str_arena); - - if (offset_begin != NULL) { - offset_begin += strlen(str_arena); - offset_end = strstr(offset_begin, "\n"); - - if (offset_end != NULL) { - sock_udp_close(sock_server_udp); - sock_server_udp = NULL; - strncpy(arenaNetName, offset_begin, offset_end - offset_begin); - - if (arena_file_get_file_format_net_name(arenaNetName) != NULL) { - screen_set("world"); - return; - } - - connectToDownServer(); - - debug("arenaNetName: %s", arenaNetName); - } - } -} - -static void eventStatus() -{ - if (timer_get_current_time() - timeSendMsg > DOWN_ARENA_MAX_TIEMOUT_LIMIT) { - sendStatusToGameServer(); - } - - if (sock_udp_read(sock_server_udp, sock_server_udp, str_status, STR_PROTO_SIZE - 1) > 0) { - /*printf("str_status = %s\n", str_status);*/ - readArenaFromStatus(); - } -} - -void down_arena_event() -{ - int i; - - if (strcmp(str_status, "none") == 0) { - eventStatus(); - } - - if (recvBuffer != NULL) { - for (i = 0; i < DOWN_ARENA_COUNT_READ_SOCKET; i++) { - if (eventRecvBuffer() <= 0) { - break; - } - } - } - - if (sendBuffer != NULL) { - eventSendBuffer(); - } - - if (file != NULL && fileSize == fileOffset && fileSize > 0) { - fclose(file); - file = NULL; - closeConnectFromDownServer(); - arena_file_load(path); - screen_set("world"); - } - - button_event(button_back); -} - -void down_arena_stop() -{ - if (file != NULL) { - unlink(path); - } - - if (sock_server_tcp != NULL) { - closeConnectFromDownServer(); - } - - if (sock_server_udp != NULL) { - sock_udp_close(sock_server_udp); - } - -} - -static void eventWidget(void *p) -{ - widget_t *button; - - button = (widget_t *) p; - - if (button == button_back) { - screen_set("mainMenu"); - } -} - -void down_arena_init() -{ - image_t *image; - - image = image_get(IMAGE_GROUP_BASE, "screen_main"); - image_backgorund = wid_image_new(0, 0, image); - - button_back = button_new(_("Back"), WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2, - WINDOW_SIZE_Y - 80, eventWidget); - - label_status = label_new(_("none"), WINDOW_SIZE_X / 2, 250, WIDGET_LABEL_CENTER); - - screen_register(screen_new("downArena", down_arena_start, down_arena_event, - down_arena_draw, down_arena_stop)); -} - -void down_arena_quit() -{ - wid_image_destroy(image_backgorund); - button_destroy(button_back); - label_destroy(label_status); -} diff --git a/src/screen/downArena.h b/src/screen/downArena.h deleted file mode 100644 index 444210c..0000000 --- a/src/screen/downArena.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef SCREEN_DOWN_ARENA_H -#define SCREEN_DOWN_ARENA_H - -#define DOWN_SERVER_STATUS_OK 0 -#define DOWN_SERVER_STATUS_ZOMBIE 1 - -#define DOWN_ARENA_BUFFER_SIZE 4096 - -#define DOWN_ARENA_MAX_SEND_MSG_STATUS 10 -#define DOWN_ARENA_MAX_TIEMOUT_LIMIT 500 -#define DOWN_ARENA_COUNT_READ_SOCKET 100 - -extern void down_arena_start(); -extern void down_arena_draw(); -extern void down_arena_event(); -extern void down_arena_stop(); -extern void down_arena_init(); -extern void down_arena_quit(); - -#endif /* SCREEN_DOWN_ARENA_H */ diff --git a/src/screen/gameType.c b/src/screen/gameType.c deleted file mode 100644 index e173ab2..0000000 --- a/src/screen/gameType.c +++ /dev/null @@ -1,416 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "director.h" -#include "homeDirector.h" -#include "net_multiplayer.h" -#include "tux.h" - -#include "interface.h" -#include "screen.h" -#include "image.h" -#include "hotKey.h" -#include "config.h" - -#ifndef NO_SOUND -#include "music.h" -#endif /* NO_SOUND */ - -#include "gameType.h" -#include "setting.h" - -#include "widget.h" -#include "widget_label.h" -#include "widget_button.h" -#include "widget_image.h" -#include "widget_textfield.h" -#include "widget_choicegroup.h" -#include "widget_check.h" -#include "widget_select.h" - -static widget_t *image_backgorund; - -static widget_t *button_back; -static widget_t *button_play; -static widget_t *button_browser; - -static widget_t *label_none; -static widget_t *label_server; -static widget_t *label_client; -static widget_t *label_load_session; - -static widget_t *label_ip; -static widget_t *label_port; -static widget_t *label_session; - -static list_t *listChoiceGroup; -static widget_t *check_none; -static widget_t *check_server; -static widget_t *check_client; -static widget_t *check_load_session; - -static widget_t *textfield_ip; -static widget_t *textfield_port; - -static widget_t *selectSession; - -static void loadSession(widget_t *p) -{ - director_t *director; - int i; - - director = director_load(home_director_get()); - - select_remove_all(p); - - if (director == NULL) { - return; - } - - for (i = 0; i < director->list->count; i++) { - char *line; - - line = director->list->list[i]; - - if (strstr(line, ".sav") != NULL) { - select_add(p, line); - } - } - - director_destroy(director); -} - -static void hotkey_escape() -{ - screen_set("mainMenu"); -} - -void screen_startGameType() -{ -#ifndef NO_SOUND - music_play("menu", MUSIC_GROUP_BASE); -#endif /* NO_SOUND */ - -/* - choiceGroup_set_status(check_none, TRUE); - choiceGroup_set_status(check_server, FALSE); - choiceGroup_set_status(check_client, FALSE); - choiceGroup_set_status(check_load_session, FALSE); -*/ - - loadSession(selectSession); - - hot_key_register(SDLK_ESCAPE, hotkey_escape); -} - -void game_type_draw() -{ - int i; - - wid_image_draw(image_backgorund); - - for (i = 0; i < listChoiceGroup->count; i++) { - widget_t *this; - - this = (widget_t *) listChoiceGroup->list[i]; - choice_group_draw(this); - } - - label_draw(label_none); - label_draw(label_server); - label_draw(label_client); - label_draw(label_load_session); - - if (choice_group_get_status(check_server) == TRUE || choice_group_get_status(check_client) == TRUE) { - label_draw(label_port); - text_field_draw(textfield_port); - label_draw(label_ip); - text_field_draw(textfield_ip); - } - - if (choice_group_get_status(check_load_session) == TRUE) { - label_draw(label_session); - select_draw(selectSession); - } -/* - if (check_server->status == TRUE) { - game_type_set_ip(getParamElse("--ip", "127.0.0.1")); - game_type_set_port(atoi(getParamElse("--port", "2200"))); - } -*/ - - if (choice_group_get_status(check_client) == TRUE) { - button_draw(button_browser); - } - - button_draw(button_back); - button_draw(button_play); -} - -void game_type_event() -{ - int i; - - for (i = 0; i < listChoiceGroup->count; i++) { - widget_t *this; - - this = (widget_t *) listChoiceGroup->list[i]; - choice_group_event(this); - } - - if (choice_group_get_status(check_server) == TRUE || choice_group_get_status(check_client) == TRUE) { - text_field_event(textfield_ip); - text_field_event(textfield_port); - } - - if (choice_group_get_status(check_load_session) == TRUE) { - select_event(selectSession); - } - - button_event(button_back); - button_event(button_play); - - if (choice_group_get_status(check_client) == TRUE) { - button_event(button_browser); - } -} - -void stopScreenGameType() -{ - hot_key_unregister(SDLK_ESCAPE); -} - -static void eventWidget(void *p) -{ - widget_t *button; - - button = (widget_t *) p; - - if (button == button_back) { - screen_set("mainMenu"); - return; - } - - if (button == button_play) { - char *str; - - str = game_type_load_session(); - - if (str != NULL) { - screen_set("world"); - return; - } - - if (public_server_get_settingGameType() == NET_GAME_TYPE_CLIENT) { - screen_set("downArena"); - } else { - screen_set("chiceArena"); - } - - return; - } - - if (button == button_browser) { - screen_set("browser"); - return; - } -} - -void game_type_init() -{ - image_t *image; - - image = image_get(IMAGE_GROUP_BASE, "screen_main"); - image_backgorund = wid_image_new(0, 0, image); - - button_back = button_new(_("Back"), 100, WINDOW_SIZE_Y - 100, eventWidget); - button_play = button_new(_("Play"), WINDOW_SIZE_X - 200, WINDOW_SIZE_Y - 100, eventWidget); - button_browser = button_new(_("Browser"), 300, 345, eventWidget); - - listChoiceGroup = list_new(); - check_none = choice_group_new(100, 150, FALSE, listChoiceGroup, eventWidget); - check_server = choice_group_new(100, 200, FALSE, listChoiceGroup, eventWidget); - check_client = choice_group_new(100, 250, FALSE, listChoiceGroup, eventWidget); - check_load_session = choice_group_new(100, 300, FALSE, listChoiceGroup, eventWidget); - - if (strcmp(config_get_str_value(CFG_GAME_TYPE), "server") == 0) { - choiceGroup_set_status(check_server, TRUE); - } else if (strcmp(config_get_str_value(CFG_GAME_TYPE), "client") == 0) { - choiceGroup_set_status(check_client, TRUE); - } else if (strcmp(config_get_str_value(CFG_GAME_TYPE), "none") == 0) { - choiceGroup_set_status(check_none, TRUE); - } else { - choiceGroup_set_status(check_load_session, TRUE); - } - - label_none = label_new(_("Local game"), 130, 145, WIDGET_LABEL_LEFT); - label_server = label_new(_("Set up a server"), 130, 195, WIDGET_LABEL_LEFT); - label_client = label_new(_("Network game"), 130, 245, WIDGET_LABEL_LEFT); - label_load_session = label_new(_("Load saved game"), 130, 295, WIDGET_LABEL_LEFT); - - label_ip = label_new(_("IP"), 300, 145, WIDGET_LABEL_LEFT); - label_port = label_new(_("Port"), 300, 245, WIDGET_LABEL_LEFT); - label_session = label_new(_("Load saved game:"), 300, 145, WIDGET_LABEL_LEFT); - - textfield_ip = text_field_new(config_get_str_value(CFG_NET_IP), - WIDGET_TEXTFIELD_FILTER_IP_OR_DOMAIN, - 300, 180); - - textfield_port = text_field_new(config_get_str_value(CFG_NET_PORT), - WIDGET_TEXTFIELD_FILTER_NUM, 300, 280); - - selectSession = select_new(300, 185, eventWidget); - - screen_register(screen_new("gameType", screen_startGameType, game_type_event, - game_type_draw, stopScreenGameType)); -} - -int setSettingGameType(int status) -{ - if (status == NET_GAME_TYPE_NONE) { - choiceGroup_set_status(check_none, TRUE); - return 0; - } - - if (status == NET_GAME_TYPE_SERVER) { - choiceGroup_set_status(check_server, TRUE); - return 0; - } - - if (status == NET_GAME_TYPE_CLIENT) { - choiceGroup_set_status(check_client, TRUE); - return 0; - } - - return -1; -} - -int public_server_get_settingGameType() -{ - if (choice_group_get_status(check_none) == TRUE || choice_group_get_status(check_load_session) == TRUE) { - return NET_GAME_TYPE_NONE; - } - - if (choice_group_get_status(check_server) == TRUE) { - return NET_GAME_TYPE_SERVER; - } - - if (choice_group_get_status(check_client) == TRUE) { - return NET_GAME_TYPE_CLIENT; - } - - fatal("Unknown game type"); - - return -1; -} - -char *game_type_load_session() -{ - if (choice_group_get_status(check_load_session) == TRUE) { - return select_get_item(selectSession); - } - - return NULL; -} - -int game_type_set_ip(char *address) -{ - char str[STR_SIZE]; - - strcpy(str, address); - text_field_set_text(textfield_ip, str); - - return 1; -} - -char *public_server_get_settingIP() -{ - return text_field_get_text(textfield_ip); -} - -int game_type_set_port(int port) -{ - char str[STR_SIZE]; - - sprintf(str, "%d", port); - text_field_set_text(textfield_port, str); - - return 0; -} - -int public_server_get_settingPort() -{ - return atoi(text_field_get_text(textfield_port)); -} - -int public_server_get_settingProto() -{ - if (strstr(text_field_get_text(textfield_ip), ".") != NULL) { - return PROTO_UDPv4; - } - - if (strstr(text_field_get_text(textfield_ip), ":") != NULL) { - return PROTO_UDPv6; - } - - debug("Unknown version of IP protocol"); - - return -1; -} - -static void save_config() -{ - if (choice_group_get_status(check_none) == TRUE) { - config_set_str_value(CFG_GAME_TYPE, "none"); - } - - if (choice_group_get_status(check_server) == TRUE) { - config_set_str_value(CFG_GAME_TYPE, "server"); - } - - if (choice_group_get_status(check_client) == TRUE) { - config_set_str_value(CFG_GAME_TYPE, "client"); - } - - if (choice_group_get_status(check_load_session) == TRUE) { - config_set_str_value(CFG_GAME_TYPE, "session"); - } - - config_set_str_value(CFG_NET_IP, text_field_get_text(textfield_ip)); - config_set_str_value(CFG_NET_PORT, text_field_get_text(textfield_port)); -} - -void game_type_quit() -{ - save_config(); - - wid_image_destroy(image_backgorund); - - label_destroy(label_none); - label_destroy(label_server); - label_destroy(label_client); - label_destroy(label_load_session); - - label_destroy(label_ip); - label_destroy(label_port); - label_destroy(label_session); - - text_field_destroy(textfield_ip); - text_field_destroy(textfield_port); - - select_destroy(selectSession); - - button_destroy(button_back); - button_destroy(button_play); - button_destroy(button_browser); - - choice_group_destroy(check_none); - choice_group_destroy(check_server); - choice_group_destroy(check_client); - choice_group_destroy(check_load_session); - - list_destroy(listChoiceGroup); -} diff --git a/src/screen/gameType.h b/src/screen/gameType.h deleted file mode 100644 index 49cf008..0000000 --- a/src/screen/gameType.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef SCREEN_GAME_TYPE_H -#define SCREEN_GAME_TYPE_H - -#include "main.h" - -extern void game_type_draw(); -extern void game_type_event(); -extern void game_type_init(); -extern int setSettingGameType(int status); -extern int public_server_get_settingGameType(); -extern char *game_type_load_session(); -extern int game_type_set_ip(char *address); -extern char *public_server_get_settingIP(); -extern int game_type_set_port(int port); -extern int public_server_get_settingPort(); -extern int public_server_get_settingProto(); -extern void game_type_quit(); - -#endif /* SCREEN_GAME_TYPE_H */ diff --git a/src/screen/mainMenu.c b/src/screen/mainMenu.c deleted file mode 100644 index 147ef59..0000000 --- a/src/screen/mainMenu.c +++ /dev/null @@ -1,149 +0,0 @@ -#include <stdio.h> -#include <assert.h> - -#include "main.h" - -#include "game.h" -#include "interface.h" -#include "screen.h" -#include "image.h" -#include "hotKey.h" - -#ifndef NO_SOUND -#include "music.h" -#endif - -#include "mainMenu.h" -#include "setting.h" - -#include "widget.h" -#include "widget_label.h" -#include "widget_button.h" -#include "widget_textfield.h" -#include "widget_check.h" -#include "widget_image.h" -#include "widget_container.h" - -static widget_t *image_backgorund; - -static widget_t *widget_container; -static widget_t *button_play; -static widget_t *button_setting; -static widget_t *button_table; -static widget_t *button_credits; -static widget_t *button_end; - -static void hotkey_escape() -{ - game_quit(); -} - -void main_menu_start() -{ -#ifndef NO_SOUND - music_play("menu", MUSIC_GROUP_BASE); -#endif - - hot_key_register(SDLK_ESCAPE, hotkey_escape); -} - -void main_menu_draw() -{ - wid_image_draw(image_backgorund); - - widget_container_draw(widget_container); -/* - button_draw(button_play); - button_draw(button_setting); - button_draw(button_table); - button_draw(button_credits); - button_draw(button_end); -*/ -} - -void main_menu_event() -{ - widget_container_event(widget_container); -/* - button_event(button_play); - button_event(button_setting); - button_event(button_table); - button_event(button_credits); - button_event(button_end); -*/ -} - -void main_menu_stop() -{ - hot_key_unregister(SDLK_ESCAPE); -} - -static void eventWidget(void *p) -{ - widget_t *button; - - button = (widget_t *) p; - - if (button == button_play) { - screen_set("gameType"); - } - - if (button == button_setting) { - screen_set("setting"); - } - - if (button == button_table) { - screen_set("table"); - } - - if (button == button_credits) { - screen_set("credits"); - } - - if (button == button_end) { - game_quit(); - } -} - -void main_menu_init() -{ - image_t *image; - - image = image_add("screen_main.png", IMAGE_NO_ALPHA, - "screen_main", IMAGE_GROUP_BASE); - image_backgorund = wid_image_new(0, 0, image); - - widget_container = widget_container_new(WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2, 200, WIDGET_BUTTON_WIDTH, 300); - - button_play = button_new(_("Start game"), WIDGET_NONE_VALUE, WIDGET_NONE_VALUE, eventWidget); - button_setting = button_new(_("Settings"), WIDGET_NONE_VALUE, WIDGET_NONE_VALUE, eventWidget); - button_table = button_new(_("Highscore"), WIDGET_NONE_VALUE, WIDGET_NONE_VALUE, eventWidget); - button_credits = button_new(_("Credits"), WIDGET_NONE_VALUE, WIDGET_NONE_VALUE, eventWidget); - button_end = button_new(_("Quit game"), WIDGET_NONE_VALUE, WIDGET_NONE_VALUE, eventWidget); - - widget_container_add(widget_container, button_play); - widget_container_add(widget_container, button_setting); - widget_container_add(widget_container, button_table); - widget_container_add(widget_container, button_credits); - widget_container_add(widget_container, button_end); - - widget_set_layout_table(widget_container, 1, 5, 0, 50); - -#ifndef NO_SOUND - music_add("menu.ogg", "menu", MUSIC_GROUP_BASE); -#endif - - screen_register(screen_new("mainMenu", main_menu_start, main_menu_event, - main_menu_draw, main_menu_stop)); -} - -void main_menu_quit() -{ - wid_image_destroy(image_backgorund); - - button_destroy(button_play); - button_destroy(button_setting); - button_destroy(button_table); - button_destroy(button_credits); - button_destroy(button_end); -} diff --git a/src/screen/mainMenu.h b/src/screen/mainMenu.h deleted file mode 100644 index 99249b4..0000000 --- a/src/screen/mainMenu.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef SCREEN_MAIN_MENU_H -#define SCREEN_MAIN_MENU_H - -#include "main.h" - -extern void main_menu_start(); -extern void main_menu_draw(); -extern void main_menu_event(); -extern void main_menu_stop(); -extern void main_menu_init(); -extern void main_menu_quit(); - -#endif /* SCREEN_MAIN_MENU_H */ diff --git a/src/screen/setting.c b/src/screen/setting.c deleted file mode 100644 index 2e1b615..0000000 --- a/src/screen/setting.c +++ /dev/null @@ -1,511 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "textFile.h" -#include "director.h" -#include "homeDirector.h" -#include "arenaFile.h" -#include "config.h" - -#include "configFile.h" -#include "interface.h" -#include "screen.h" -#include "image.h" -#include "hotKey.h" - -#ifndef NO_SOUND -#include "music.h" -#include "sound.h" -#endif - -#include "mainMenu.h" -#include "setting.h" -#include "settingKeys.h" -#include "settingKeys.h" -#include "choiceArena.h" - -#include "widget.h" -#include "widget_label.h" -#include "widget_button.h" -#include "widget_image.h" -#include "widget_textfield.h" -#include "widget_check.h" -#include "widget_select.h" -#include "widget_statusbar.h" - -static widget_t *image_backgorund; - -static widget_t *button_back; -static widget_t *button_keys; /* setting of keycontrols */ - -static widget_t *label_count_round; -static widget_t *label_name_player1; -static widget_t *label_name_player2; -static widget_t *label_ai; - -#ifndef NO_SOUND -static widget_t *label_music; -static widget_t *label_sound; -#endif - -static widget_t *label_weapons; -static widget_t *label_bonuses; - -static widget_t *check[ITEM_COUNT]; -#ifndef NO_SOUND -static widget_t *check_music; -static widget_t *check_sound; -#endif - -static widget_t *image_gun_dual_revolver; -static widget_t *image_gun_scatter; -static widget_t *image_gun_tommy; -static widget_t *image_gun_lasser; -static widget_t *image_gun_mine; -static widget_t *image_gun_bombball; - -static widget_t *image_bonus_speed; -static widget_t *image_bonus_shot; -static widget_t *image_bonus_teleport; -static widget_t *image_bonus_ghost; -static widget_t *image_bonus_4x; -static widget_t *image_bonus_hidden; - -static widget_t *textfield_count_cound; -static widget_t *textfield_name_player1; -static widget_t *textfield_name_player2; - -static widget_t *check_ai; - -static widget_t *statusbar; - -static void hotkey_escape() -{ - screen_set("mainMenu"); -} - -void screen_startSetting() -{ -#ifndef NO_SOUND - music_play("menu", MUSIC_GROUP_BASE); -#endif - - hot_key_register(SDLK_ESCAPE, hotkey_escape); -} - -void setting_draw() -{ - int i; - - wid_image_draw(image_backgorund); - - label_draw(label_weapons); - label_draw(label_bonuses); - - label_draw(label_count_round); - label_draw(label_name_player1); - label_draw(label_ai); - -#ifndef NO_SOUND - label_draw(label_music); - label_draw(label_sound); -#endif - - text_field_draw(textfield_count_cound); - text_field_draw(textfield_name_player1); - - if (check_get_status(check_ai) == FALSE) { - label_draw(label_name_player2); - text_field_draw(textfield_name_player2); - } - - wid_image_draw(image_gun_dual_revolver); - wid_image_draw(image_gun_scatter); - wid_image_draw(image_gun_tommy); - wid_image_draw(image_gun_lasser); - wid_image_draw(image_gun_mine); - wid_image_draw(image_gun_bombball); - - wid_image_draw(image_bonus_speed); - wid_image_draw(image_bonus_shot); - wid_image_draw(image_bonus_teleport); - wid_image_draw(image_bonus_ghost); - wid_image_draw(image_bonus_4x); - wid_image_draw(image_bonus_hidden); - -#ifndef NO_SOUND - check_draw(check_music); - check_draw(check_sound); -#endif - - for (i = GUN_DUAL_SIMPLE; i <= GUN_BOMBBALL; i++) { - check_draw(check[i]); - } - - for (i = BONUS_SPEED; i <= BONUS_HIDDEN; i++) { - check_draw(check[i]); - } - - check_draw(check_ai); - - statusbar_draw(statusbar); - - button_draw(button_back); - button_draw(button_keys); -} - -void setting_event() -{ - int i; - - text_field_event(textfield_count_cound); - text_field_event(textfield_name_player1); - - if (check_get_status(check_ai) == FALSE) { - text_field_event(textfield_name_player2); - } - -#ifndef NO_SOUND - check_event(check_music); - check_event(check_sound); -#endif - - for (i = GUN_DUAL_SIMPLE; i <= GUN_BOMBBALL; i++) { - check_event(check[i]); - } - - for (i = BONUS_SPEED; i <= BONUS_HIDDEN; i++) { - check_event(check[i]); - } - - check_event(check_ai); - - statusbar_event(statusbar); - - button_event(button_back); - button_event(button_keys); -} - -void stopScreenSetting() -{ - hot_key_unregister(SDLK_ESCAPE); -} - -static void eventWidget(void *p) -{ - widget_t *my_button; - widget_t *my_check; - - my_button = (widget_t *) p; - my_check = (widget_t *) p; - - if (my_button == button_back) { - screen_set("mainMenu"); - } - - if (my_button == button_keys) { - screen_set("settingKeys"); - } - -#ifndef NO_SOUND - if (my_check == check_music) { - music_set_active(check_get_status(check_music)); - } - - if (my_check == check_sound) { - sound_set_active(check_get_status(check_sound)); - } -#endif -} - -static void initSettingFile() -{ - text_field_set_text(textfield_count_cound, get_string_static(config_get_int_value(CFG_COUNT_ROUND))); - text_field_set_text(textfield_name_player1, config_get_str_value(CFG_NAME_RIGHT)); - text_field_set_text(textfield_name_player2, config_get_str_value(CFG_NAME_LEFT)); - - check_set_status(check[GUN_DUAL_SIMPLE], config_get_int_value(CFG_GUN_DUAL_SIMPLE)); - check_set_status(check[GUN_SCATTER], config_get_int_value(CFG_GUN_SCATTER)); - check_set_status(check[GUN_TOMMY], config_get_int_value(CFG_GUN_TOMMY)); - check_set_status(check[GUN_LASSER], config_get_int_value(CFG_GUN_LASSER)); - check_set_status(check[GUN_MINE], config_get_int_value(CFG_GUN_MINE)); - check_set_status(check[GUN_BOMBBALL], config_get_int_value(CFG_GUN_BOMBBALL)); - - check_set_status(check[BONUS_SPEED], config_get_int_value(CFG_BONUS_SPEED)); - check_set_status(check[BONUS_SHOT], config_get_int_value(CFG_BONUS_SHOT)); - check_set_status(check[BONUS_TELEPORT], config_get_int_value(CFG_BONUS_TELEPORT)); - check_set_status(check[BONUS_GHOST], config_get_int_value(CFG_BONUS_GHOST)); - check_set_status(check[BONUS_4X], config_get_int_value(CFG_BONUS_4X)); - check_set_status(check[BONUS_HIDDEN], config_get_int_value(CFG_BONUS_HIDDEN)); - - check_set_status(check_ai, config_get_int_value(CFG_AI)); - -#ifndef NO_SOUND - check_set_status(check_music, config_get_int_value(CFG_MUSIC)); - check_set_status(check_sound, config_get_int_value(CFG_SOUND)); -#endif -} - -static void saveAndDestroyConfigFile() -{ - config_set_int_value(CFG_COUNT_ROUND, atoi(text_field_get_text(textfield_count_cound))); - config_set_str_value(CFG_NAME_RIGHT, text_field_get_text(textfield_name_player1)); - config_set_str_value(CFG_NAME_LEFT, text_field_get_text(textfield_name_player2)); - - config_set_int_value(CFG_GUN_DUAL_SIMPLE, check_get_status(check[GUN_DUAL_SIMPLE])); - config_set_int_value(CFG_GUN_SCATTER, check_get_status(check[GUN_SCATTER])); - config_set_int_value(CFG_GUN_TOMMY, check_get_status(check[GUN_TOMMY])); - config_set_int_value(CFG_GUN_LASSER, check_get_status(check[GUN_LASSER])); - config_set_int_value(CFG_GUN_MINE, check_get_status(check[GUN_MINE])); - config_set_int_value(CFG_GUN_BOMBBALL, check_get_status(check[GUN_BOMBBALL])); - config_set_int_value(CFG_BONUS_SPEED, check_get_status(check[BONUS_SPEED])); - config_set_int_value(CFG_BONUS_SHOT, check_get_status(check[BONUS_SHOT])); - config_set_int_value(CFG_BONUS_TELEPORT, check_get_status(check[BONUS_TELEPORT])); - config_set_int_value(CFG_BONUS_GHOST, check_get_status(check[BONUS_GHOST])); - config_set_int_value(CFG_BONUS_4X, check_get_status(check[BONUS_4X])); - config_set_int_value(CFG_BONUS_HIDDEN, check_get_status(check[BONUS_HIDDEN])); - - config_set_int_value(CFG_AI, check_get_status(check_ai)); - -#ifndef NO_SOUND - config_set_int_value(CFG_MUSIC, check_get_status(check_music)); - config_set_int_value(CFG_SOUND, check_get_status(check_sound)); -#endif -} - -void setting_init() -{ - image_t *image; - int i; - - image = image_get(IMAGE_GROUP_BASE, "screen_main"); - image_backgorund = wid_image_new(0, 0, image); - - button_back = button_new(_("Back"), WINDOW_SIZE_X - 200, WINDOW_SIZE_Y - 100, eventWidget); - - button_keys = button_new(_("Controls"), WINDOW_SIZE_X - 200, - button_back->y - WIDGET_BUTTON_HEIGHT - 10, eventWidget); - -#ifndef NO_SOUND - label_music = label_new(_("Music:"), 100, WINDOW_SIZE_Y - 85, WIDGET_LABEL_LEFT); - - check_music = check_new(label_music->x + label_music->w + 10, WINDOW_SIZE_Y - 80, - music_is_active(), eventWidget); - label_sound = label_new(_("Sound:"), check_music->x + WIDGET_CHECK_WIDTH + 10, - WINDOW_SIZE_Y - 85, WIDGET_LABEL_LEFT); - - check_sound = check_new(label_sound->x + label_sound->w + 10, WINDOW_SIZE_Y - 80, - sound_is_active(), eventWidget); - - label_ai = label_new(_("AI:"), check_sound->x + WIDGET_CHECK_WIDTH + 10, - WINDOW_SIZE_Y - 85, WIDGET_LABEL_LEFT); -#else - label_ai = label_new(_("AI:"), 100, WINDOW_SIZE_Y - 85, WIDGET_LABEL_LEFT); -#endif - - check_ai = check_new(label_ai->x + label_ai->w + 10, WINDOW_SIZE_Y - 80, FALSE, eventWidget); - - label_count_round = label_new(_("No. of rounds:"), 100, WINDOW_SIZE_Y - 200, WIDGET_LABEL_LEFT); - label_name_player1 = label_new(_("Player 1:"), 100, WINDOW_SIZE_Y - 160, WIDGET_LABEL_LEFT); - label_name_player2 = label_new(_("Player 2:"), 100, WINDOW_SIZE_Y - 120, WIDGET_LABEL_LEFT); - - textfield_count_cound = text_field_new(getParamElse("--count", "15"), - WIDGET_TEXTFIELD_FILTER_NUM, - 110 + label_count_round->w, - WINDOW_SIZE_Y - 200); - - textfield_name_player1 = text_field_new(getParamElse("--name1", NAME_PLAYER_RIGHT), - WIDGET_TEXTFIELD_FILTER_ALPHANUM, - 110 + label_count_round->w, WINDOW_SIZE_Y - 160); - - textfield_name_player2 = text_field_new(getParamElse("--name2", NAME_PLAYER_LEFT), - WIDGET_TEXTFIELD_FILTER_ALPHANUM, - 110 + label_count_round->w, WINDOW_SIZE_Y - 120); - - label_weapons = label_new(_("Weapons:"), 100, 160, WIDGET_LABEL_LEFT); - label_bonuses = label_new(_("Bonuses:"), 430, 160, WIDGET_LABEL_LEFT); - - for (i = GUN_DUAL_SIMPLE; i <= GUN_BOMBBALL; i++) { - int x = 0; - int y = 0; - - if (i >= GUN_DUAL_SIMPLE && i <= GUN_TOMMY) { - x = 100; - y = 200 + (i - GUN_DUAL_SIMPLE) * 50; - } - - if (i >= GUN_LASSER && i <= GUN_BOMBBALL) { - x = 250; - y = 200 + (i - GUN_LASSER) * 50; - } - - check[i] = check_new(x, y, TRUE, NULL); - } - - for (i = BONUS_SPEED; i <= BONUS_HIDDEN; i++) { - int x = 0; - int y = 0; - - if (i >= BONUS_SPEED && i <= BONUS_TELEPORT) { - x = 430; - y = 200 + (i - BONUS_SPEED) * 50; - } - - if (i >= BONUS_GHOST && i <= BONUS_HIDDEN) { - x = 580; - y = 200 + (i - BONUS_GHOST) * 50; - } - - check[i] = check_new(x, y, TRUE, NULL); - } - - image_gun_dual_revolver = wid_image_new(110 + WIDGET_CHECK_WIDTH, 200, image_get(IMAGE_GROUP_BASE, "panel_dual")); - image_gun_scatter = wid_image_new(110 + WIDGET_CHECK_WIDTH, 250, image_get(IMAGE_GROUP_BASE, "panel_scatter")); - image_gun_tommy = wid_image_new(110 + WIDGET_CHECK_WIDTH, 300, image_get(IMAGE_GROUP_BASE, "panel_tommy")); - image_gun_lasser = wid_image_new(260 + WIDGET_CHECK_WIDTH, 200,image_get(IMAGE_GROUP_BASE, "panel_lasser")); - image_gun_mine = wid_image_new(260 + WIDGET_CHECK_WIDTH, 250, image_get(IMAGE_GROUP_BASE, "panel_mine")); - image_gun_bombball = wid_image_new(260 + WIDGET_CHECK_WIDTH, 300, image_get(IMAGE_GROUP_BASE, "panel_bombball")); - image_bonus_speed = wid_image_new(430 + WIDGET_CHECK_WIDTH, 200, image_get(IMAGE_GROUP_BASE, "panel_speed"));; - image_bonus_shot = wid_image_new(430 + WIDGET_CHECK_WIDTH, 250, image_get(IMAGE_GROUP_BASE, "panel_shot"));; - image_bonus_teleport = wid_image_new(430 + WIDGET_CHECK_WIDTH, 300, image_get(IMAGE_GROUP_BASE, "panel_teleport"));; - image_bonus_ghost = wid_image_new(580 + WIDGET_CHECK_WIDTH, 200, image_get(IMAGE_GROUP_BASE, "panel_ghost"));; - image_bonus_4x = wid_image_new(580 + WIDGET_CHECK_WIDTH, 250, image_get(IMAGE_GROUP_BASE, "panel_4x"));; - image_bonus_hidden = wid_image_new(580 + WIDGET_CHECK_WIDTH, 300, image_get(IMAGE_GROUP_BASE, "panel_hidden"));; - - statusbar = statusbar_new(400, 350); - statusbar_add(statusbar, check[GUN_DUAL_SIMPLE], _("Dual simple gun")); - statusbar_add(statusbar, check[GUN_SCATTER], _("Scatter")); - statusbar_add(statusbar, check[GUN_TOMMY], _("Tommy")); - statusbar_add(statusbar, check[GUN_LASSER], _("Laser beam")); - statusbar_add(statusbar, check[GUN_MINE], _("Mine")); - statusbar_add(statusbar, check[GUN_BOMBBALL], _("Bomb ball")); - - statusbar_add(statusbar, check[BONUS_SPEED], _("Speed bonus")); - statusbar_add(statusbar, check[BONUS_SHOT], _("Infinite ammo")); - statusbar_add(statusbar, check[BONUS_TELEPORT], _("Unkillable bonus")); - statusbar_add(statusbar, check[BONUS_GHOST], _("No-walls bonus")); - statusbar_add(statusbar, check[BONUS_4X], _("1 shot to 4 directions bonus")); - statusbar_add(statusbar, check[BONUS_HIDDEN], _("Unvisibility bonus")); - - screen_register(screen_new("setting", screen_startSetting, setting_event, - setting_draw, stopScreenSetting)); - - initSettingFile(); - -#ifndef NO_SOUND - eventWidget(check_music); - eventWidget(check_sound); -#endif -} - -void public_server_get_setting_name_right(char *s) -{ - strcpy(s, text_field_get_text(textfield_name_player1)); -} - -void public_server_get_settingNameLeft(char *s) -{ - if (check_get_status(check_ai)) { - strcpy(s, NAME_AI); - } else { - strcpy(s, text_field_get_text(textfield_name_player2)); - } -} - -void public_server_get_settingCountRound(int *n) -{ - *n = atoi(text_field_get_text(textfield_count_cound)); -} - -bool_t setting_is_ai() -{ - return check_get_status(check_ai); -} - -bool_t setting_is_any_item() -{ - int i; - - for (i = GUN_DUAL_SIMPLE; i <= GUN_BOMBBALL; i++) { - if (check_get_status(check[i]) == TRUE) { - return TRUE; - } - } - - for (i = BONUS_SPEED; i < BONUS_HIDDEN; i++) { - if (check_get_status(check[i]) == TRUE) { - return TRUE; - } - } - - return FALSE; -} - -bool_t setting_is_item(int item) -{ - return check_get_status(check[item]); -} - -void setting_quit() -{ - int i; - - saveAndDestroyConfigFile(); - - wid_image_destroy(image_backgorund); - - label_destroy(label_weapons); - label_destroy(label_bonuses); - - label_destroy(label_count_round); - label_destroy(label_name_player1); - label_destroy(label_ai); - -#ifndef NO_SOUND - label_destroy(label_music); - label_destroy(label_sound); -#endif - label_destroy(label_name_player2); - text_field_destroy(textfield_name_player2); - - text_field_destroy(textfield_name_player1); - text_field_destroy(textfield_count_cound); - - wid_image_destroy(image_gun_dual_revolver); - wid_image_destroy(image_gun_scatter); - wid_image_destroy(image_gun_tommy); - wid_image_destroy(image_gun_lasser); - wid_image_destroy(image_gun_mine); - wid_image_destroy(image_gun_bombball); - - wid_image_destroy(image_bonus_speed); - wid_image_destroy(image_bonus_shot); - wid_image_destroy(image_bonus_teleport); - wid_image_destroy(image_bonus_ghost); - wid_image_destroy(image_bonus_4x); - wid_image_destroy(image_bonus_hidden); - -#ifndef NO_SOUND - check_destroy(check_music); - check_destroy(check_sound); -#endif - - check_destroy(check_ai); - - for (i = GUN_DUAL_SIMPLE; i <= GUN_BOMBBALL; i++) { - check_destroy(check[i]); - } - - for (i = BONUS_SPEED; i <= BONUS_HIDDEN; i++) { - check_destroy(check[i]); - } - - statusbar_destroy(statusbar); - - button_destroy(button_back); - button_destroy(button_keys); -} diff --git a/src/screen/setting.h b/src/screen/setting.h deleted file mode 100644 index c29e6a9..0000000 --- a/src/screen/setting.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef SCREEN_SETTING_H -#define SCREEN_SETTING_H - -#include "main.h" - -#define NAME_AI "TuxBot" -#define NAME_PLAYER_RIGHT "Name1" -#define NAME_PLAYER_LEFT "Name2" - -extern void setting_init(); -extern void setting_draw(); -extern void setting_event(); -extern void public_server_get_setting_name_right(char *s); -extern void public_server_get_settingNameLeft(char *s); -extern void public_server_get_settingCountRound(int *n); -extern bool_t setting_is_ai(); -extern bool_t setting_is_any_item(); -extern bool_t setting_is_item(int item); -extern void setting_quit(); - -#endif /* SCREEN_SETTING_H */ diff --git a/src/screen/settingKeys.c b/src/screen/settingKeys.c deleted file mode 100644 index da74b7b..0000000 --- a/src/screen/settingKeys.c +++ /dev/null @@ -1,392 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "textFile.h" -#include "director.h" -#include "homeDirector.h" - -#include "configFile.h" -#include "interface.h" -#include "screen.h" -#include "image.h" -#include "hotKey.h" - -#ifndef NO_SOUND -#include "music.h" -#include "sound.h" -#endif - -#include "mainMenu.h" -#include "setting.h" -#include "settingKeys.h" - -#include "widget.h" -#include "widget_button.h" -#include "widget_image.h" -#include "widget_catchkey.h" -#include "widget_label.h" - -static int keytable[KEY_LENGTH]; - -static textFile_t *keycontrolFile; -static widget_t *image_backgorund; -static widget_t *button_back; - -/* key names */ -static widget_t *tux_right; -static widget_t *tux_right_keyup; -static widget_t *tux_right_keydown; -static widget_t *tux_right_keyleft; -static widget_t *tux_right_keyright; -static widget_t *tux_right_keyswitch; -static widget_t *tux_right_keyfire; - -static widget_t *tux_left; -static widget_t *tux_left_keyup; -static widget_t *tux_left_keydown; - -static widget_t *tux_left_keyleft; -static widget_t *tux_left_keyright; -static widget_t *tux_left_keyswitch; -static widget_t *tux_left_keyfire; - -/* key values */ -static widget_t *tux_right_keyup_val; -static widget_t *tux_right_keydown_val; -static widget_t *tux_right_keyleft_val; -static widget_t *tux_right_keyright_val; -static widget_t *tux_right_keyswitch_val; -static widget_t *tux_right_keyfire_val; -static widget_t *tux_left_keyup_val; -static widget_t *tux_left_keydown_val; -static widget_t *tux_left_keyleft_val; -static widget_t *tux_left_keyright_val; -static widget_t *tux_left_keyswitch_val; -static widget_t *tux_left_keyfire_val; - - -/* TODO: add key images - * possible variant will be reusing widget_image for current widget_label so there won't - * be key names but only images - */ - -static void hotkey_escape() -{ - screen_set("setting"); -} - -void screen_startSettingKeys() -{ -#ifndef NO_SOUND - music_play("menu", MUSIC_GROUP_BASE); -#endif - - hot_key_register(SDLK_ESCAPE, hotkey_escape); -} - -static void setKeytableFromConfigFile(textFile_t *configFile) -{ - char val[STR_SIZE]; - - loadValueFromConfigFile(configFile, "TUX_RIGHT_MOVE_UP", val, STR_SIZE, "273"); - keytable[KEY_TUX_RIGHT_MOVE_UP] = atoi(val); - - loadValueFromConfigFile(configFile, "TUX_RIGHT_MOVE_RIGHT", val, STR_SIZE, "275"); - keytable[KEY_TUX_RIGHT_MOVE_RIGHT] = atoi(val); - - loadValueFromConfigFile(configFile, "TUX_RIGHT_MOVE_LEFT", val, STR_SIZE, "276"); - keytable[KEY_TUX_RIGHT_MOVE_LEFT] = atoi(val); - - loadValueFromConfigFile(configFile, "TUX_RIGHT_MOVE_DOWN", val, STR_SIZE, "274"); - keytable[KEY_TUX_RIGHT_MOVE_DOWN] = atoi(val); - - loadValueFromConfigFile(configFile, "TUX_RIGHT_SHOOT", val, STR_SIZE, "48"); - keytable[KEY_TUX_RIGHT_SHOOT] = atoi(val); - - loadValueFromConfigFile(configFile, "TUX_RIGHT_SWITCH_WEAPON", val, STR_SIZE, "49"); - keytable[KEY_TUX_RIGHT_SWITCH_WEAPON] = atoi(val); - - loadValueFromConfigFile(configFile, "TUX_LEFT_MOVE_UP", val, STR_SIZE, "119"); - keytable[KEY_TUX_LEFT_MOVE_UP] = atoi(val); - - loadValueFromConfigFile(configFile, "TUX_LEFT_MOVE_RIGHT", val, STR_SIZE, "100"); - keytable[KEY_TUX_LEFT_MOVE_RIGHT] = atoi(val); - - loadValueFromConfigFile(configFile, "TUX_LEFT_MOVE_LEFT", val, STR_SIZE, "97"); - keytable[KEY_TUX_LEFT_MOVE_LEFT] = atoi(val); - - loadValueFromConfigFile(configFile, "TUX_LEFT_MOVE_DOWN", val, STR_SIZE, "115"); - keytable[KEY_TUX_LEFT_MOVE_DOWN] = atoi(val); - - loadValueFromConfigFile(configFile, "TUX_LEFT_SHOOT", val, STR_SIZE, "113"); - keytable[KEY_TUX_LEFT_SHOOT] = atoi(val); - - loadValueFromConfigFile(configFile, "TUX_LEFT_SWITCH_WEAPON", val, STR_SIZE, "9"); - keytable[KEY_TUX_LEFT_SWITCH_WEAPON] = atoi(val); -} - -void key_table_init() -{ - char path[STR_PATH_SIZE]; - - sprintf(path, "%s%skeycontrol.conf", home_director_get(), PATH_SEPARATOR); - - keycontrolFile = text_file_load(path); - - if (keycontrolFile == NULL) { - error("Unable to load config file [%s]", path); - debug("Creating config file [%s]", path); - - keycontrolFile = text_file_new(path); - - if (keycontrolFile == NULL) { - error("Unable to create config file [%s]", path); - return; - } - } - - setKeytableFromConfigFile(keycontrolFile); -} - -int key_table_get_key(int n) -{ - /*printf("keytable[n] = %d\n", keytable[n]);*/ - return keytable[n]; -} - -void setting_key_draw() -{ - wid_image_draw(image_backgorund); - - button_draw(button_back); - - /* key names */ - label_draw(tux_right); - label_draw(tux_left); - label_draw(tux_right_keyup); - label_draw(tux_right_keydown); - label_draw(tux_right_keyleft); - label_draw(tux_right_keyright); - label_draw(tux_right_keyswitch); - label_draw(tux_right_keyfire); - label_draw(tux_left_keyup); - label_draw(tux_left_keydown); - label_draw(tux_left_keyleft); - label_draw(tux_left_keyright); - label_draw(tux_left_keyswitch); - label_draw(tux_left_keyfire); - - /* key values */ - catch_key_draw(tux_right_keyup_val); - catch_key_draw(tux_right_keydown_val); - catch_key_draw(tux_right_keyleft_val); - catch_key_draw(tux_right_keyright_val); - catch_key_draw(tux_right_keyswitch_val); - catch_key_draw(tux_right_keyfire_val); - catch_key_draw(tux_left_keyup_val); - catch_key_draw(tux_left_keydown_val); - catch_key_draw(tux_left_keyleft_val); - catch_key_draw(tux_left_keyright_val); - catch_key_draw(tux_left_keyswitch_val); - catch_key_draw(tux_left_keyfire_val); -} - -static void refreshKeytable() -{ - keytable[6] = catch_key_get(tux_left_keyup_val); - keytable[9] = catch_key_get(tux_left_keydown_val); - keytable[8] = catch_key_get(tux_left_keyleft_val); - keytable[7] = catch_key_get(tux_left_keyright_val); - keytable[10] = catch_key_get(tux_left_keyfire_val); - keytable[11] = catch_key_get(tux_left_keyswitch_val); - - keytable[0] = catch_key_get(tux_right_keyup_val); - keytable[3] = catch_key_get(tux_right_keydown_val); - keytable[2] = catch_key_get(tux_right_keyleft_val); - keytable[1] = catch_key_get(tux_right_keyright_val); - keytable[4] = catch_key_get(tux_right_keyfire_val); - keytable[5] = catch_key_get(tux_right_keyswitch_val); -} - -static void eventWidget(void *p) -{ - widget_t *button; - widget_t *catcher; - - button = (widget_t *) p; - catcher = (widget_t *) p; - - if (button == button_back) { - screen_set("setting"); - } - - /* events on value */ - if ((catcher == tux_left_keyup_val) || - (catcher == tux_left_keydown_val) || - (catcher == tux_left_keyleft_val) || - (catcher == tux_left_keyright_val) || - (catcher == tux_left_keyfire_val) || - (catcher == tux_left_keyswitch_val) || - (catcher == tux_right_keyup_val) || - (catcher == tux_right_keydown_val) || - (catcher == tux_right_keyleft_val) || - (catcher == tux_right_keyright_val) || - (catcher == tux_right_keyswitch_val) || - (catcher == tux_right_keyfire_val)) { - /* draw press any key picture - this will be done by widget catchkey - check if there is no other key with new value (what to revert if yes?) - */ - - refreshKeytable(); - } - -} - -void setting_key_event() -{ - button_event(button_back); - - catch_key_event(tux_right_keyup_val); - catch_key_event(tux_right_keydown_val); - catch_key_event(tux_right_keyleft_val); - catch_key_event(tux_right_keyright_val); - catch_key_event(tux_right_keyswitch_val); - catch_key_event(tux_right_keyfire_val); - - catch_key_event(tux_left_keyup_val); - catch_key_event(tux_left_keydown_val); - catch_key_event(tux_left_keyleft_val); - catch_key_event(tux_left_keyright_val); - catch_key_event(tux_left_keyswitch_val); - catch_key_event(tux_left_keyfire_val); -} - -void stopScreenSettingKeys() -{ - hot_key_unregister(SDLK_ESCAPE); -} - -void setting_key_int() -{ - key_table_init(); - - image_t *image = image_get(IMAGE_GROUP_BASE, "screen_main"); - - image_backgorund = wid_image_new(0, 0, image); - - button_back = button_new(_("Back"), WINDOW_SIZE_X - 200, WINDOW_SIZE_Y - 100, eventWidget); - - tux_left = label_new(_("Player 2"), WINDOW_SIZE_X / 4, 150, WIDGET_LABEL_CENTER); - tux_left_keyup = label_new(_("Up:"), 50, tux_left->y + 50, WIDGET_LABEL_LEFT); - tux_left_keydown = label_new(_("Down:"), tux_left_keyup->x, tux_left_keyup->y + 20, WIDGET_LABEL_LEFT); - tux_left_keyleft = label_new(_("Left:"), tux_left_keyup->x, tux_left_keydown->y + 20, WIDGET_LABEL_LEFT); - tux_left_keyright = label_new(_("Right:"), tux_left_keyup->x, tux_left_keyleft->y + 20, WIDGET_LABEL_LEFT); - tux_left_keyfire = label_new(_("Fire:"), tux_left_keyup->x, tux_left_keyright->y + 20, WIDGET_LABEL_LEFT); - tux_left_keyswitch = label_new(_("Switch gun:"), tux_left_keyup->x, tux_left_keyfire->y + 20, WIDGET_LABEL_LEFT); - tux_right = label_new(_("Player 1"), WINDOW_SIZE_X / 2 + WINDOW_SIZE_X / 4, tux_left->y, WIDGET_LABEL_CENTER); - tux_right_keyup = label_new(_("Up:"), WINDOW_SIZE_X / 2 + tux_left_keyup->x, tux_left->y + 50, WIDGET_LABEL_LEFT); - tux_right_keydown = label_new(_("Down:"), WINDOW_SIZE_X / 2 + tux_left_keyup->x, tux_left_keyup->y + 20, WIDGET_LABEL_LEFT); - tux_right_keyleft = label_new(_("Left:"), WINDOW_SIZE_X / 2 + tux_left_keyup->x, tux_right_keydown->y + 20, WIDGET_LABEL_LEFT); - tux_right_keyright = label_new(_("Right:"), WINDOW_SIZE_X / 2 + tux_left_keyup->x, tux_right_keyleft->y + 20, WIDGET_LABEL_LEFT); - tux_right_keyfire = label_new(_("Fire:"), WINDOW_SIZE_X / 2 + tux_left_keyup->x, tux_left_keyright->y + 20, WIDGET_LABEL_LEFT); - tux_right_keyswitch = label_new(_("Switch gun:"), WINDOW_SIZE_X / 2 + tux_left_keyup->x, tux_left_keyfire->y + 20, WIDGET_LABEL_LEFT); - - tux_left_keyup_val = catch_key_new(keytable[6], tux_left_keyup->x + 200, tux_left->y + 55, eventWidget); - tux_left_keydown_val = catch_key_new(keytable[9], tux_left_keyup_val->x, tux_left_keyup->y + 25, eventWidget); - tux_left_keyleft_val = catch_key_new(keytable[8], tux_left_keyup_val->x, tux_left_keydown->y + 25, eventWidget); - tux_left_keyright_val = catch_key_new(keytable[7], tux_left_keyup_val->x, tux_left_keyleft->y + 25, eventWidget); - tux_left_keyfire_val = catch_key_new(keytable[10], tux_left_keyup_val->x, tux_left_keyright->y + 25, eventWidget); - tux_left_keyswitch_val = catch_key_new(keytable[11], tux_left_keyup_val->x, tux_left_keyfire->y + 25, eventWidget); - tux_right_keyup_val = catch_key_new(keytable[0], WINDOW_SIZE_X / 2 + tux_left_keyup_val->x, tux_left->y + 55, eventWidget); - tux_right_keydown_val = catch_key_new(keytable[3], WINDOW_SIZE_X / 2 + tux_left_keyup_val->x, tux_left_keyup->y + 25, eventWidget); - tux_right_keyleft_val = catch_key_new(keytable[2], WINDOW_SIZE_X / 2 + tux_left_keyup_val->x, tux_right_keydown->y + 25, eventWidget); - tux_right_keyright_val = catch_key_new(keytable[1], WINDOW_SIZE_X / 2 + tux_left_keyup_val->x, tux_right_keyleft->y + 25, eventWidget); - tux_right_keyfire_val = catch_key_new(keytable[4], WINDOW_SIZE_X / 2 + tux_left_keyup_val->x, tux_left_keyright->y + 25, eventWidget); - tux_right_keyswitch_val = catch_key_new(keytable[5], WINDOW_SIZE_X / 2 + tux_left_keyup_val->x, tux_left_keyfire->y + 25, eventWidget); - - screen_register(screen_new("settingKeys", screen_startSettingKeys, setting_key_event, setting_key_draw, stopScreenSettingKeys)); -} - -void key_table_quit() -{ - text_file_destroy(keycontrolFile); -} - -void saveKeyTable(textFile_t *configFile) -{ - char str[STR_SIZE]; - - sprintf(str, "%d", catch_key_get(tux_left_keyup_val)); - setValueInConfigFile(configFile, "TUX_LEFT_MOVE_UP", str); - sprintf(str, "%d", catch_key_get(tux_left_keydown_val)); - setValueInConfigFile(configFile, "TUX_LEFT_MOVE_DOWN", str); - sprintf(str, "%d", catch_key_get(tux_left_keyleft_val)); - setValueInConfigFile(configFile, "TUX_LEFT_MOVE_LEFT", str); - sprintf(str, "%d", catch_key_get(tux_left_keyright_val)); - setValueInConfigFile(configFile, "TUX_LEFT_MOVE_RIGHT", str); - sprintf(str, "%d", catch_key_get(tux_left_keyfire_val)); - setValueInConfigFile(configFile, "TUX_LEFT_SHOOT", str); - sprintf(str, "%d", catch_key_get(tux_left_keyswitch_val)); - setValueInConfigFile(configFile, "TUX_LEFT_SWITCH_WEAPON", str); - - sprintf(str, "%d", catch_key_get(tux_right_keyup_val)); - setValueInConfigFile(configFile, "TUX_RIGHT_MOVE_UP", str); - sprintf(str, "%d", catch_key_get(tux_right_keydown_val)); - setValueInConfigFile(configFile, "TUX_RIGHT_MOVE_DOWN", str); - sprintf(str, "%d", catch_key_get(tux_right_keyleft_val)); - setValueInConfigFile(configFile, "TUX_RIGHT_MOVE_LEFT", str); - sprintf(str, "%d", catch_key_get(tux_right_keyright_val)); - setValueInConfigFile(configFile, "TUX_RIGHT_MOVE_RIGHT", str); - sprintf(str, "%d", catch_key_get(tux_right_keyfire_val)); - setValueInConfigFile(configFile, "TUX_RIGHT_SHOOT", str); - sprintf(str, "%d", catch_key_get(tux_right_keyswitch_val)); - setValueInConfigFile(configFile, "TUX_RIGHT_SWITCH_WEAPON", str); - - text_file_save(configFile); -} - -void setting_key_quit() -{ - saveKeyTable(keycontrolFile); - - key_table_quit(); - - wid_image_destroy(image_backgorund); - - /* key names */ - label_destroy(tux_right); - label_destroy(tux_left); - label_destroy(tux_right_keyup); - label_destroy(tux_right_keydown); - label_destroy(tux_right_keyleft); - label_destroy(tux_right_keyright); - label_destroy(tux_right_keyswitch); - label_destroy(tux_right_keyfire); - label_destroy(tux_left_keyup); - label_destroy(tux_left_keydown); - label_destroy(tux_left_keyright); - label_destroy(tux_left_keyleft); - label_destroy(tux_left_keyswitch); - label_destroy(tux_left_keyfire); - - /* key values */ - catch_key_destroy(tux_right_keyup_val); - catch_key_destroy(tux_right_keydown_val); - catch_key_destroy(tux_right_keyleft_val); - catch_key_destroy(tux_right_keyright_val); - catch_key_destroy(tux_right_keyswitch_val); - catch_key_destroy(tux_right_keyfire_val); - catch_key_destroy(tux_left_keyup_val); - catch_key_destroy(tux_left_keydown_val); - catch_key_destroy(tux_left_keyleft_val); - catch_key_destroy(tux_left_keyright_val); - catch_key_destroy(tux_left_keyswitch_val); - catch_key_destroy(tux_left_keyfire_val); - - button_destroy(button_back); -} diff --git a/src/screen/settingKeys.h b/src/screen/settingKeys.h deleted file mode 100644 index c7d6c66..0000000 --- a/src/screen/settingKeys.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef SCREEN_SETTING_KEYS_H -#define SCREEN_SETTING_KEYS_H - -#define KEY_TUX_RIGHT_MOVE_UP 0 -#define KEY_TUX_RIGHT_MOVE_RIGHT 1 -#define KEY_TUX_RIGHT_MOVE_LEFT 2 -#define KEY_TUX_RIGHT_MOVE_DOWN 3 -#define KEY_TUX_RIGHT_SHOOT 4 -#define KEY_TUX_RIGHT_SWITCH_WEAPON 5 -#define KEY_TUX_LEFT_MOVE_UP 6 -#define KEY_TUX_LEFT_MOVE_RIGHT 7 -#define KEY_TUX_LEFT_MOVE_LEFT 8 -#define KEY_TUX_LEFT_MOVE_DOWN 9 -#define KEY_TUX_LEFT_SHOOT 10 -#define KEY_TUX_LEFT_SWITCH_WEAPON 11 -#define KEY_LENGTH 12 - -#include "main.h" - -extern void setting_key_int(); -extern void setting_key_draw(); -extern void setting_key_event(); -extern void setting_key_quit(); -extern void key_table_init(); -extern int key_table_get_key(int n); -extern void key_table_quit(); - -#endif /* SCREEN_SETTING_KEYS_H */ diff --git a/src/screen/table.c b/src/screen/table.c deleted file mode 100644 index 34b4680..0000000 --- a/src/screen/table.c +++ /dev/null @@ -1,228 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "textFile.h" -#include "homeDirector.h" - -#include "interface.h" -#include "screen.h" -#include "image.h" -#include "hotKey.h" - -#ifndef NO_SOUND -#include "music.h" -#endif - -#include "table.h" - -#include "widget_image.h" -#include "widget_label.h" -#include "widget_button.h" - -static widget_t *image_backgorund; -static widget_t *button_back; - -static list_t *listWidgetLabelNumer; -static list_t *listWidgetLabelName; -static list_t *listWidgetLabelScore; - -static textFile_t *textFile; - -static void hotkey_escape() -{ - screen_set("mainMenu"); -} - -void table_start() -{ -#ifndef NO_SOUND - music_play("menu", MUSIC_GROUP_BASE); -#endif - - hot_key_register(SDLK_ESCAPE, hotkey_escape); -} - -void table_draw() -{ - int i; - - wid_image_draw(image_backgorund); - - button_draw(button_back); - - for (i = 0; i < listWidgetLabelNumer->count; i++) { - widget_t *this; - this = (widget_t *) listWidgetLabelNumer->list[i]; - label_draw(this); - } - - for (i = 0; i < listWidgetLabelName->count; i++) { - widget_t *this; - this = (widget_t *) listWidgetLabelName->list[i]; - label_draw(this); - } - - for (i = 0; i < listWidgetLabelScore->count; i++) { - widget_t *this; - this = (widget_t *) listWidgetLabelScore->list[i]; - label_draw(this); - } -} - -void table_event() -{ - button_event(button_back); -} - -void table_stop() -{ - hot_key_unregister(SDLK_ESCAPE); -} - -static void eventWidget(void *p) -{ - widget_t *button; - - button = (widget_t *) p; - - if (button == button_back) { - screen_set("mainMenu"); - } -} - -static void setWidgetLabel() -{ - int i; - - if (textFile == NULL) { - error("Didn't load the high score file [%s]", SCREEN_TABLE_FILE_HIGHSCORE_NAME); - - return; - } - - if (listWidgetLabelNumer != NULL || - listWidgetLabelName != NULL || - listWidgetLabelScore != NULL) { - list_destroy_item(listWidgetLabelNumer, label_destroy); - list_destroy_item(listWidgetLabelName, label_destroy); - list_destroy_item(listWidgetLabelScore, label_destroy); - } - - listWidgetLabelNumer = list_new(); - listWidgetLabelName = list_new(); - listWidgetLabelScore = list_new(); - - for (i = 0; i < SCREEN_TABLE_MAX_PLAYERS; i++) { - widget_t *label; - char name[STR_NAME_SIZE]; - char score[STR_NUM_SIZE]; - char num[STR_NUM_SIZE]; - char *line; - - line = (char *) textFile->text->list[i]; - - sscanf(line, "%s %s", name, score); - sprintf(num, "%2d)", i + 1); - - label = label_new(num, WINDOW_SIZE_X / 2 - 100, 200 + i * 20, WIDGET_LABEL_LEFT); - list_add(listWidgetLabelNumer, label); - - label = label_new(name, WINDOW_SIZE_X / 2, 200 + i * 20, WIDGET_LABEL_CENTER); - list_add(listWidgetLabelName, label); - - label = label_new(score, WINDOW_SIZE_X / 2 + 80, 200 + i * 20, WIDGET_LABEL_LEFT); - list_add(listWidgetLabelScore, label); - } -} - -static void loadHighscoreFile() -{ - char path[STR_PATH_SIZE]; - int i; - - sprintf(path, "%s%s%s", home_director_get(), PATH_SEPARATOR, SCREEN_TABLE_FILE_HIGHSCORE_NAME); - textFile = text_file_load(path); - - if (textFile == NULL) { - error("Unable to load the high score file [%s]", path); - debug("Creating the high score file [%s]", path); - textFile = text_file_new(path); - } else { - return; - } - - if (textFile == NULL) { - error("Unable to create the high score file [%s]", path); - return; - } - - for (i = 0; i < SCREEN_TABLE_MAX_PLAYERS; i++) { - list_add(textFile->text, strdup("--- 0")); - } - - text_file_save(textFile); -} - -int table_add(char *name, int score) -{ - int i; - - for (i = 0; i < SCREEN_TABLE_MAX_PLAYERS; i++) { - char *line; - char thisName[STR_NAME_SIZE]; - int thisCore; - - line = (char *) textFile->text->list[i]; - sscanf(line, "%s %d", thisName, &thisCore); - - if (score >= thisCore) { - char new[STR_SIZE]; - - sprintf(new, "%s %d", name, score); - list_ins(textFile->text, i, strdup(new)); - list_del_item(textFile->text, SCREEN_TABLE_MAX_PLAYERS, free); - setWidgetLabel(); - - return 0; - } - } - - return -1; -} - -void table_init() -{ - image_t *image; - - image = image_add("screen_table.png", IMAGE_NO_ALPHA, "screen_table", IMAGE_GROUP_BASE); - image_backgorund = wid_image_new(0, 0, image); - - button_back = button_new(_("Back"), WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2, - WINDOW_SIZE_Y - 100, eventWidget); - - loadHighscoreFile(); - listWidgetLabelNumer = NULL; - listWidgetLabelName = NULL; - listWidgetLabelScore = NULL; - setWidgetLabel(); - - screen_register(screen_new("table", table_start, table_event, table_draw, table_stop)); -} - -void table_quit() -{ - wid_image_destroy(image_backgorund); - - button_destroy(button_back); - list_destroy_item(listWidgetLabelNumer, label_destroy); - list_destroy_item(listWidgetLabelName, label_destroy); - list_destroy_item(listWidgetLabelScore, label_destroy); - - if (textFile != NULL) { - text_file_save(textFile); - text_file_destroy(textFile); - } -} diff --git a/src/screen/table.h b/src/screen/table.h deleted file mode 100644 index 7940ee9..0000000 --- a/src/screen/table.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef SCREEN_TABLE_H -#define SCREEN_TABLE_H - -#define SCREEN_TABLE_MAX_PLAYERS 10 -#define SCREEN_TABLE_FILE_HIGHSCORE_NAME "highscore" - -extern void table_start(); -extern void table_draw(); -extern void table_event(); -extern void table_stop(); -extern int table_add(char *name, int score); -extern void table_init(); -extern void table_quit(); - -#endif /* SCREEN_TABLE_H */ diff --git a/src/screen/world.c b/src/screen/world.c deleted file mode 100644 index 90d10a1..0000000 --- a/src/screen/world.c +++ /dev/null @@ -1,536 +0,0 @@ -#include <stdio.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "item.h" -#include "shot.h" -#include "gun.h" -#include "myTimer.h" -#include "net_multiplayer.h" -#include "arena.h" -#include "arenaFile.h" -#include "proto.h" -#include "modules.h" -#include "idManager.h" -#include "serverSendMsg.h" - -#include "interface.h" -#include "layer.h" -#include "image.h" -#include "font.h" - -#include "hotKey.h" -#include "panel.h" -#include "radar.h" -#include "chat.h" -#include "pauza.h" -#include "term.h" -#include "saveDialog.h" -#include "yes_no_dialog.h" -#include "saveLoad.h" - -#ifndef NO_SOUND -#include "music.h" -#include "sound.h" -#endif /* NO_SOUND */ - -#include "screen.h" -#include "world.h" -#include "analyze.h" -#include "setting.h" -#include "gameType.h" -#include "settingKeys.h" -#include "choiceArena.h" -#include "table.h" -#include "control.h" - -static arena_t *arena; -static bool_t isScreenWorldInit = FALSE; -static bool_t isEndWorld; - -static tux_t *tuxWithControlRightKeyboard; -static tux_t *tuxWithControlLeftKeyboard; - -static control_t *control_tux_right; -static control_t *control_tux_left; - -bool_t world_is_inicialized() -{ - return isScreenWorldInit; -} - -void setGameType() -{ - int ret = 0; - - ret = net_multiplayer_init(public_server_get_settingGameType(), public_server_get_settingIP(), - public_server_get_settingPort(), public_server_get_settingProto()); - - if (ret != 0) { - error("Unable to initialize network"); - world_do_end(); - } -} - -void world_set_arena(arenaFile_t *arenaFile) -{ - arena = arena_file_get_arena(arenaFile); - -#ifndef NO_SOUND - music_play(arena->music, MUSIC_GROUP_USER); -#endif /* NO_SOUND */ -} - -void world_do_end() -{ - isEndWorld = TRUE; -} - -static void timer_endArena() -{ - if (net_multiplayer_get_game_type() != NET_GAME_TYPE_CLIENT) { - world_do_end(); - return; - } -} - -void world_inc_round() -{ - if (arena->max_countRound == WORLD_COUNT_ROUND_UNLIMITED || - arena->countRound >= arena->max_countRound) { - return; - } - - arena->countRound++; - /*printf("count %d/%d\n", count, max_count);*/ - - if (arena->countRound >= arena->max_countRound) { - /*printf("count %d ending\n", count);*/ -#ifndef NO_SOUND - sound_play("end", SOUND_GROUP_BASE); -#endif /* NO_SOUND */ - timer_add_task(arena_get_current()->listTimer, TIMER_ONE, timer_endArena, NULL, TIMER_END_ARENA); - } -} - -bool_t world_is_match_end() -{ - if (arena->max_countRound == WORLD_COUNT_ROUND_UNLIMITED) { - return FALSE; - } - - return (arena->countRound >= arena->max_countRound); -} - -void prepareArena() -{ - tux_t *tux; - char name[STR_NAME_SIZE]; - - /*printf("public_server_get_settingAI = %s\n", public_server_get_settingAI());*/ - arena_set_current(NULL); - tuxWithControlRightKeyboard = NULL; - tuxWithControlLeftKeyboard = NULL; - - control_tux_right = NULL; - control_tux_left = NULL; - - if (game_type_load_session() != NULL) { - load_arena(game_type_load_session()); - return; - } - - switch (net_multiplayer_get_game_type()) { - case NET_GAME_TYPE_NONE: - world_set_arena(choice_arena_get()); - item_add_new_item(arena->spaceItem, ID_UNKNOWN); - public_server_get_settingCountRound(&arena->max_countRound); - - tux = tux_new(); - - world_set_control_tux(tux, TUX_CONTROL_KEYBOARD_RIGHT); - public_server_get_setting_name_right(name); - tux_set_name(tux, name); - space_add(arena->spaceTux, tux); - - tux = tux_new(); - - world_set_control_tux(tux, TUX_CONTROL_KEYBOARD_LEFT); - public_server_get_settingNameLeft(name); - tux_set_name(tux, name); - space_add(arena->spaceTux, tux); - - if (setting_is_ai()) { - tux->control = TUX_CONTROL_AI; - - if (module_load("libmodAI") != 0) { - tux->control = TUX_CONTROL_KEYBOARD_LEFT; - } - } - /*printf("game_type_load_session = %s\n", game_type_load_session());*/ - - break; - - case NET_GAME_TYPE_SERVER: - world_set_arena(choice_arena_get()); - item_add_new_item(arena->spaceItem, ID_UNKNOWN); - public_server_get_settingCountRound(&arena->max_countRound); - - tux = tux_new(); - - world_set_control_tux(tux, TUX_CONTROL_KEYBOARD_RIGHT); - public_server_get_setting_name_right(name); - tux_set_name(tux, name); - space_add(arena->spaceTux, tux); - break; - - case NET_GAME_TYPE_CLIENT: - break; - } -} - -void world_draw() -{ - if (arena != NULL) { - arena_draw(arena); - panel_draw(tuxWithControlRightKeyboard, tuxWithControlLeftKeyboard); - - if (arena->w > WINDOW_SIZE_X || arena->h > WINDOW_SIZE_Y) { - radar_draw(arena); - } - } - - chat_draw(); - pauza_draw(); - term_draw(); - save_dialog_draw(); - yes_no_dialog_draw(); -} - -static void netAction(tux_t *tux, int action) -{ - if (public_server_get_settingGameType() == NET_GAME_TYPE_SERVER) { - proto_send_event_server(PROTO_SEND_ALL_SEES_TUX, NULL, tux, action); - } - - if (public_server_get_settingGameType() == NET_GAME_TYPE_CLIENT) { - proto_send_event_client(action); - } -} - -static void control_keyboard(tux_t *tux, control_t *control) -{ - switch (control_get_key_route(control)) { - case CONTROL_UP: - netAction(tux, TUX_UP); - tux_action(tux, TUX_UP); - break; - case CONTROL_RIGHT: - netAction(tux, TUX_RIGHT); - tux_action(tux, TUX_RIGHT); - break; - case CONTROL_LEFT: - netAction(tux, TUX_LEFT); - tux_action(tux, TUX_LEFT); - break; - case CONTROL_DOWN: - netAction(tux, TUX_DOWN); - tux_action(tux, TUX_DOWN); - break; - } - - switch (control_get_key_action(control)) { - case CONTROL_SHOT: - if (tux->isCanShot == TRUE) { - netAction(tux, TUX_SHOT); - tux_action(tux, TUX_SHOT); - } - break; - case CONTROL_SWITCH: - if (tux->isCanSwitchGun == TRUE) { - netAction(tux, TUX_SWITCH_GUN); - tux_action(tux, TUX_SWITCH_GUN); - } - break; - } -} - -static void eventEnd() -{ - if (isEndWorld == TRUE) { - screen_set("analyze"); - return; - } -} - -tux_t *world_get_control_tux(int control_type) -{ - switch (control_type) { - case TUX_CONTROL_KEYBOARD_RIGHT: - return tuxWithControlRightKeyboard; - break; - case TUX_CONTROL_KEYBOARD_LEFT: - return tuxWithControlLeftKeyboard; - break; - } - - return NULL; -} - -void world_set_control_tux(tux_t *tux, int control_type) -{ - switch (control_type) { - case TUX_CONTROL_KEYBOARD_RIGHT: - tuxWithControlRightKeyboard = tux; - tux->control = control_type; - - control_tux_right = control_new( - key_table_get_key(KEY_TUX_RIGHT_MOVE_UP), - key_table_get_key(KEY_TUX_RIGHT_MOVE_RIGHT), - key_table_get_key(KEY_TUX_RIGHT_MOVE_LEFT), - key_table_get_key(KEY_TUX_RIGHT_MOVE_DOWN), - key_table_get_key(KEY_TUX_RIGHT_SHOOT), - key_table_get_key(KEY_TUX_RIGHT_SWITCH_WEAPON) - ); - - break; - case TUX_CONTROL_KEYBOARD_LEFT: - tuxWithControlLeftKeyboard = tux; - tux->control = control_type; - - control_tux_left = control_new( - key_table_get_key(KEY_TUX_LEFT_MOVE_UP), - key_table_get_key(KEY_TUX_LEFT_MOVE_RIGHT), - key_table_get_key(KEY_TUX_LEFT_MOVE_LEFT), - key_table_get_key(KEY_TUX_LEFT_MOVE_DOWN), - key_table_get_key(KEY_TUX_LEFT_SHOOT), - key_table_get_key(KEY_TUX_LEFT_SWITCH_WEAPON) - ); - - break; - } -} - -void world_tux_control(tux_t *p) -{ - assert(p != NULL); - - if (p->status != TUX_STATUS_ALIVE) { - return; - } - - switch (p->control) { - case TUX_CONTROL_NONE: - fatal("Controls not defined"); - break; - - case TUX_CONTROL_KEYBOARD_RIGHT: - if (chat_is_active() == FALSE) { - control_keyboard(tuxWithControlRightKeyboard, control_tux_right); - } - break; - - case TUX_CONTROL_KEYBOARD_LEFT: - if (chat_is_active() == FALSE) { - control_keyboard(tuxWithControlLeftKeyboard, control_tux_left); - } - break; - } -} - -void world_event() -{ - tux_t *thisTux; - - if (arena == NULL) { - net_multiplayer_event(); - eventEnd(); - return; - } - - net_multiplayer_event(); - - if (pauza_is_active() == FALSE && - save_dialog_is_active() == FALSE && - yes_no_dialog_is_active() == FALSE) { - arena_event(arena); - /*module_event();*/ - } - - thisTux = world_get_control_tux(TUX_CONTROL_KEYBOARD_RIGHT); - - radar_add(thisTux->id, thisTux->x, thisTux->y, RADAR_TYPE_YOU); - - thisTux = world_get_control_tux(TUX_CONTROL_KEYBOARD_LEFT); - - if (thisTux != NULL) { - radar_add(thisTux->id, thisTux->x, thisTux->y, RADAR_TYPE_TUX); - } - - eventEnd(); - chat_event(); - pauza_event(); - term_event(); - save_dialog_event(); - yes_no_dialog_event(); -} - -void dialog_yes(void *p) -{ - world_do_end(); -} - -void dialog_no(void *p) -{ -} - -static void hotkey_escape() -{ - yes_no_dialog_set(_("Do you really want to quit the game?"), dialog_yes, dialog_no, NULL); - yes_no_dialog_set_active(TRUE); - /*world_do_end();*/ -} - -void startWorld() -{ - arena = NULL; - isEndWorld = FALSE; - - hot_key_register(SDLK_ESCAPE, hotkey_escape); - arena_init(); - id_init_list(); - radar_init(); - pauza_init(); - term_init(); - - setGameType(); - - yes_no_dialog_init(); - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_NONE) { - save_dialog_init(); - } - - module_init(); - chat_init(); - prepareArena(); -} - -static void action_analyze(space_t *space, tux_t *tux, void *p) -{ - analyze_add(tux->name, tux->score); -} - -static void setAnalyze() -{ - analyze_restart(); - - space_action(arena->spaceTux, action_analyze, NULL); - - analyze_end(); -} - -static void setTable() -{ - tux_t *tuxRight; - tux_t *tuxLeft; - - if (public_server_get_settingGameType() != NET_GAME_TYPE_NONE) { - return; - } - - tuxRight = world_get_control_tux(TUX_CONTROL_KEYBOARD_RIGHT); - tuxLeft = world_get_control_tux(TUX_CONTROL_KEYBOARD_LEFT); - - if (tuxRight->score > tuxLeft->score) { - table_add(tuxRight->name, tuxRight->score); - } - - if (tuxLeft->score > tuxRight->score) { - table_add(tuxLeft->name, tuxLeft->score); - } -} - -void stoptWorld() -{ - if (arena != NULL) { - setTable(); - setAnalyze(); - } - - hot_key_unregister(SDLK_ESCAPE); - arena_quit(); - - radar_quit(); - pauza_quit(); - term_quit(); - - yes_no_dialog_quit(); - - if (net_multiplayer_get_game_type() == NET_GAME_TYPE_NONE) { - save_dialog_quit(); - } - - if (control_tux_right != NULL) { - control_destroy(control_tux_right); - } - - if (control_tux_left != NULL) { - control_destroy(control_tux_left); - } - -#ifndef NO_SOUND - music_stop(); -#endif /* NO_SOUND */ - image_del_all_image_in_group(IMAGE_GROUP_USER); - -#ifndef NO_SOUND - music_del_all_in_group(MUSIC_GROUP_USER); -#endif /* NO_SOUND */ - module_quit(); - chat_quit(); - - net_multiplayer_quit(); - - if (arena != NULL) { - arena_destroy(arena); - } - - id_quit_list(); -} - -void world_init() -{ - assert(image_is_inicialized() == TRUE); - assert(tux_is_inicialized() == TRUE); - assert(shot_is_inicialized() == TRUE); - assert(panel_is_inicialized() == TRUE); - assert(screen_is_inicialized() == TRUE); - - screen_register(screen_new("world", startWorld, world_event, world_draw, stoptWorld)); - -#ifndef NO_SOUND - sound_add("dead.ogg", "dead", SOUND_GROUP_BASE); - sound_add("explozion.ogg", "explozion", SOUND_GROUP_BASE); - sound_add("gun_lasser.ogg", "gun_lasser", SOUND_GROUP_BASE); - sound_add("gun_revolver.ogg", "gun_revolver", SOUND_GROUP_BASE); - sound_add("gun_scatter.ogg", "gun_scatter", SOUND_GROUP_BASE); - sound_add("gun_tommy.ogg", "gun_tommy", SOUND_GROUP_BASE); - sound_add("put_mine.ogg", "put_mine", SOUND_GROUP_BASE); - sound_add("teleport.ogg", "teleport", SOUND_GROUP_BASE); - sound_add("item_bonus.ogg", "item_bonus", SOUND_GROUP_BASE); - sound_add("item_gun.ogg", "item_gun", SOUND_GROUP_BASE); - sound_add("switch_gun.ogg", "switch_gun", SOUND_GROUP_BASE); - sound_add("end.ogg", "end", SOUND_GROUP_BASE); -#endif /* NO_SOUND */ - - isScreenWorldInit = TRUE; -} - -void world_quit() -{ - debug("Shutting down the world screen"); - isScreenWorldInit = FALSE; -} diff --git a/src/screen/world.h b/src/screen/world.h deleted file mode 100644 index f64ac93..0000000 --- a/src/screen/world.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef SCREEN_WORLD_H -#define SCREEN_WORLD_H - -#include "main.h" -#include "myTimer.h" -#include "tux.h" -#include "arenaFile.h" -#include "arena.h" - -#define TIMER_END_ARENA 5000 -#define WORLD_COUNT_ROUND_UNLIMITED -1 -#define LAG_SERVER_UNKNOWN -1 - -extern bool_t world_is_inicialized(); -extern void world_init(); -extern void world_set_arena(arenaFile_t *arenaFile); -extern void world_do_end(); -extern void world_inc_round(); -extern bool_t world_is_match_end(); -extern tux_t *world_get_control_tux(int control_type); -extern void world_set_control_tux(tux_t *tux, int control_type); -extern void world_tux_control(tux_t *p); -extern void world_draw(); -extern void world_event(); -extern void world_start(); -extern void world_stop(); -extern void world_quit(); - -#endif /* SCREEN_WORLD_H */ diff --git a/src/screens/main_menu.c b/src/screens/main_menu.c new file mode 100644 index 0000000..3fe8a0c --- /dev/null +++ b/src/screens/main_menu.c @@ -0,0 +1,33 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "text.h" +#include "scale.h" +#include "teapot.h" + +void ta_screens_main_menu_update(void) { +} + +void ta_screens_main_menu_upload(SDL_GPUCommandBuffer *command_buffer) { + ta_teapot_upload(command_buffer); +} + +void ta_screens_main_menu_render(SDL_GPUCommandBuffer *command_buffer, SDL_GPURenderPass *render_pass) { + ta_teapot_render(command_buffer, render_pass); +}
\ No newline at end of file diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt deleted file mode 100644 index 2e93cef..0000000 --- a/src/server/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -############################################################################### -# tuxanci/src/*/CMakeLists.txt -############################################################################### -# Generate source_code files from .c files we find in directory -############################################################################### -MacroAddSources() -############################################################################### diff --git a/src/server/highScore.c b/src/server/highScore.c deleted file mode 100644 index 75323fa..0000000 --- a/src/server/highScore.c +++ /dev/null @@ -1,87 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "textFile.h" -#include "highScore.h" - -static textFile_t *textFile; - -void high_score_init(char *file) -{ - int i; - - textFile = text_file_load(file); - - if (textFile == NULL) { - error("Unable to load high score [%s]", file); - debug("Creating high score file [%s]", file); - textFile = text_file_new(file); - } else { - debug("Loading high score file [%s]", file); - return; - } - - if (textFile == NULL) { - error("Unable to create high score file [%s]", file); - return; - } - - for (i = 0; i < HIGHSCORE_MAX_PLAYERS; i++) { - list_add(textFile->text, strdup("--- 0")); - } - - text_file_save(textFile); -} - -int table_add(char *name, int score) -{ - int i; - - if (score <= 0) { - return -1; /* ha ha ha */ - } - - for (i = 0; i < HIGHSCORE_MAX_PLAYERS; i++) { - char *line; - char thisName[STR_NAME_SIZE]; - int thisCore; - - line = (char *) textFile->text->list[i]; - sscanf(line, "%s %d", thisName, &thisCore); - - if (score >= thisCore) { - char new[STR_SIZE]; - - sprintf(new, "%s %d", name, score); - list_ins(textFile->text, i, strdup(new)); - list_del_item(textFile->text, HIGHSCORE_MAX_PLAYERS, free); - /*text_file_print(textFile);*/ - text_file_save(textFile); - - return 0; - } - } - - return -1; -} - -char *high_score_get_table(int index) -{ - if (textFile != NULL && index >= 0 && index < textFile->text->count) { - return (char *) textFile->text->list[index]; - } - - return NULL; -} - -void high_score_quit() -{ - if (textFile != NULL) { - text_file_save(textFile); - text_file_destroy(textFile); - } -} diff --git a/src/server/highScore.h b/src/server/highScore.h deleted file mode 100644 index 604afb7..0000000 --- a/src/server/highScore.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef HIGH_SCORE_H -#define HIGH_SCORE_H - -#define HIGHSCORE_MAX_PLAYERS 100 - -extern void high_score_init(char *file); -extern int table_add(char *name, int score); -extern char *high_score_get_table(int index); -extern void high_score_quit(); - -#endif /* HIGH_SCORE_H */ diff --git a/src/server/log.c b/src/server/log.c deleted file mode 100644 index 00cde64..0000000 --- a/src/server/log.c +++ /dev/null @@ -1,79 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <sys/stat.h> -#include <time.h> -#include <assert.h> - -#include "log.h" -#include "main.h" - -static FILE *logFile; - -int log_init(char *name) -{ - logFile = fopen(name, "a"); - - if (logFile == NULL) { - error("Unable to open log file [%s]", name); - return -1; - } - - debug("Using log file [%s]", name); - - log_add(LOG_INF, "Logging started"); - - return 0; -} - -void log_add(int type, char *msg) -{ - char str[STR_LOG_SIZE]; - struct tm *tm_struct; - time_t currentTime; - char *str_type; - - if (logFile == NULL) { - return; - } - - currentTime = time(NULL); - tm_struct = localtime(¤tTime); - - switch (type) { - case LOG_INF: - str_type = "INFO"; - break; - case LOG_DBG: - str_type = "DEBUG"; - break; - case LOG_WRN: - str_type = "WARN"; - break; - case LOG_ERR: - str_type = "ERROR"; - break; - default: - fatal("Unknown type of the logging string"); - break; - } - - sprintf(str, "[%02d-%02d-%02d %02d:%02d:%02d] [%s] %s\n", - 1900 + tm_struct->tm_year, tm_struct->tm_mon + 1, tm_struct->tm_mday, - tm_struct->tm_hour, tm_struct->tm_min, tm_struct->tm_sec, - str_type, msg); - - fprintf(logFile, "%s", str); - - fflush(logFile); -} - -void log_quit() -{ - if (logFile == NULL) { - return; - } - - log_add(LOG_INF, "Logging finished"); - fclose(logFile); -} diff --git a/src/server/log.h b/src/server/log.h deleted file mode 100644 index b256e08..0000000 --- a/src/server/log.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef LOG_H -#define LOG_H - -#define LOG_INF 1 -#define LOG_DBG 2 -#define LOG_WRN 3 -#define LOG_ERR 4 - -extern int log_init(char *name); -extern void log_add(int type, char *msg); -extern void log_quit(); - -#endif /* LOG_H */ diff --git a/src/server/publicServer.c b/src/server/publicServer.c deleted file mode 100644 index ba97f7d..0000000 --- a/src/server/publicServer.c +++ /dev/null @@ -1,450 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> -#include <signal.h> -#include <time.h> - -#ifndef __WIN32__ -#include <sys/socket.h> -#include <sys/select.h> -#include <arpa/inet.h> -#else /* __WIN32__ */ -#include <windows.h> -#include <wininet.h> -#endif /* __WIN32__ */ - -#include <unistd.h> -#include <fcntl.h> -#include <errno.h> - -#include <sys/types.h> -#include <sys/stat.h> - -#include "main.h" -#include "list.h" -#include "tux.h" -#include "idManager.h" -#include "myTimer.h" -#include "arena.h" -#include "item.h" -#include "shot.h" -#include "arenaFile.h" -#include "proto.h" -#include "modules.h" -#include "net_multiplayer.h" - -#include "publicServer.h" -#include "serverConfigFile.h" -#include "highScore.h" -#include "log.h" - -#include "dns.h" - -static arena_t *arena; -static bool_t isSignalEnd; -static arenaFile_t *choice_arenaFile; - -extern int errno; - -#define __PACKED__ __attribute__ ((__packed__)) - -void world_inc_round() -{ -} - -char *public_server_get_setting(char *env, char *param, char *default_val) -{ - return getParamElse(param, server_configFile_get_value(env, default_val)); -} - -/** - * Send the process to the background - */ -static void daemonize() -{ -#ifndef __WIN32__ - pid_t pid, sid; - - FILE *pid_file; - - /* are we already a daemon? */ - if (getppid() == 1) { - return; - } - - /* fork off the parent process */ - pid = fork(); - if (pid < 0) { - exit(1); - /* if we got a good PID, then we can exit the parent process */ - } else if (pid > 0) { - exit(0); - } - - /* ↓ at this point we are executing as the child process ↓ */ - - /* change the file mode mask */ - umask(027); - - /* create a new SID for the child process */ - sid = setsid(); - if (sid < 0) { - exit(1); - } - - /* Change the current working directory. This prevents the current - * directory from being locked; hence not being able to remove it. - * /tmp seems to be the best place where to create temporary files ;c) - */ - if (chdir("/tmp") < 0) { - exit(1); - } - - /* say loudly what PID we got */ - printf("The Tuxanci game server started with the PID %d\n", sid); - - /* write the PID to the PID file */ - pid_file = fopen(public_server_get_setting("PID_FILE", "--pid-file", "/var/run/tuxanci-server.pid"), "w"); - fprintf(pid_file, "%d\n", sid); - fclose(pid_file); - - /* redirect standard files to /dev/null */ - freopen("/dev/null", "r", stdin); - freopen("/dev/null", "w", stdout); - freopen("/dev/null", "w", stderr); -#endif /* __WIN32__ */ -} - -/** - * Tell MasterServer that we want to be propagated - */ -static int public_server_register() -{ -#ifndef __WIN32__ - int s; -#else /* __WIN32__ */ - SOCKET s; -#endif /* __WIN32__ */ - - struct sockaddr_in server; - char *master_server_ip; - - master_server_ip = dns_resolv(NET_MASTER_SERVER_DOMAIN); - - if (master_server_ip == NULL) { - warning("Did not obtained IP of the MasterServer"); - return -1; - } - - server.sin_family = AF_INET; - server.sin_port = htons(NET_MASTER_PORT); - server.sin_addr.s_addr = inet_addr(master_server_ip); - - free(master_server_ip); - - if ((s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) { - warning("Unable to open socket for connection to MasterServer"); - return -1; - } - - /* connect to MasterServer */ - if (connect(s, (struct sockaddr *) &server, sizeof(server)) < 0) { - warning("Unable to estabilish connection to MasterServer"); - return -1; - } - - typedef struct { - unsigned char cmd; - unsigned port; - unsigned ip; - } __PACKED__ register_head; - - register_head *head = (register_head *) malloc(sizeof(register_head)); - - head->cmd = 'p'; - head->port = atoi(public_server_get_setting("PORT4", "--port4", "6800")); - head->ip = 0; /* TODO */ - - /* send request for server list */ - int r = send(s, head, sizeof(register_head), 0); - - free(head); - -#ifndef __WIN32__ - close(s); -#else /* __WIN32__ */ - closesocket(s); -#endif /* __WIN32__ */ - - if (r == -1) { - return -1; - } else { - return 0; - } -} - -/** - * Tell MasterServer that we are shutting down - */ -static int public_server_unregister() -{ -#ifndef __WIN32__ - int s; -#else /* __WIN32__ */ - SOCKET s; -#endif /* __WIN32__ */ - - struct sockaddr_in server; - char *master_server_ip; - - master_server_ip = dns_resolv(NET_MASTER_SERVER_DOMAIN); - - if (master_server_ip == NULL) { - warning("Did not obtained IP of the MasterServer"); - return -1; - } - - server.sin_family = AF_INET; - server.sin_port = htons(NET_MASTER_PORT); - server.sin_addr.s_addr = inet_addr(master_server_ip); - - free(master_server_ip); - - if ((s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) { - warning("Unable to open socket for connection to MasterServer"); - return -1; - } - - /* connect to MasterServer */ - if (connect(s, (struct sockaddr *) &server, sizeof(server)) < 0) { - warning("Unable to estabilish connection to MasterServer"); - return -1; - } - - typedef struct { - unsigned char cmd; - unsigned port; - unsigned ip; - } __PACKED__ register_head; - - register_head *head = (register_head *) malloc(sizeof(register_head)); - - head->cmd = 'u'; - head->port = atoi(public_server_get_setting("PORT4", "--port4", "6800")); - head->ip = 0; /* TODO */ - - /* send request for server list */ - int r = send(s, head, sizeof(register_head), 0); - - free(head); - -#ifndef __WIN32__ - close(s); -#else /* __WIN32__ */ - closesocket(s); -#endif /* __WIN32__ */ - - if (r == -1) { - return -1; - } else { - return 0; - } -} - -static int public_server_initNetwork() -{ - char ip4[STR_IP_SIZE]; - char ip6[STR_IP_SIZE]; - char *p_ip4, *p_ip6; - int port; - int ret; - - ret = -1; - - strcpy(ip4, public_server_get_setting("IP4", "--ip4", "none")); - strcpy(ip6, public_server_get_setting("IP6", "--ip6", "none")); - - p_ip4 = ip4; - - if (strcmp(ip4, "none") == 0 || strcmp(ip6, "::") == 0) { - p_ip4 = NULL; - } - - p_ip6 = ip6; - - if (strcmp(ip6, "none") == 0) { - p_ip6 = NULL; - } - - port = atoi(public_server_get_setting("PORT", "--port", "6800")); - - ret = net_multiplayer_init_for_game_server(p_ip4, p_ip6, port); - - return ret; -} - -static void load_arena() -{ - choice_arenaFile = arena_file_get_file_format_net_name(public_server_get_setting("ARENA", "--arena", "FAGN")); - - if (choice_arenaFile == NULL) { - error("Unable to load arena [%s]", public_server_get_setting("ARENA", "--arena", "FAGN")); - /* TODO: Why not to log it? */ - exit(-1); - } - - arena = arena_file_get_arena(choice_arenaFile); - - arena_set_current(arena); -} - -int public_server_init() -{ - int ret; - int i; - - id_init_list(); - module_init(); - arena_file_init(); - tux_init(); - item_init(); - shot_init(); - server_configFile_init(); - - ret = log_init(public_server_get_setting("LOG_FILE", "--log-file", "/tmp/tuxanci-server.log")); - - if (ret < 0) { - /* Error message has been already printed */ - return -1; - } - - high_score_init(public_server_get_setting("SCORE_FILE", "--score-file", "/tmp/highscore.txt")); - - load_arena(); - - for (i = 0; i < atoi(public_server_get_setting("ITEM", "--item", "10")); i++) { - item_add_new_item(arena->spaceItem, ID_UNKNOWN); - } - - isSignalEnd = FALSE; - - ret = public_server_initNetwork(); - - if (ret < 0) { - error("Unable to initialize network socket"); - /* TODO: Why not to log it? */ - return -1; - } - - server_set_max_clients(atoi(public_server_get_setting("MAX_CLIENTS", "--max-clients", "32"))); - - if (atoi(public_server_get_setting("LAN_ONLY", "--lan-only", "0")) == 0) { - if (public_server_register() < 0) { - error("Unable to contact MasterServer"); - /* TODO: Why not to log it? */ - } - } else { - debug("Starting LAN-only server"); - } - - return 0; -} - -arenaFile_t *choice_arena_get() -{ - return choice_arenaFile; -} - -void public_server_event() -{ - static my_time_t lastActive = 0; - my_time_t interval; - - net_multiplayer_event(); - - if (isSignalEnd == TRUE) { - public_server_quit(); - } - - if (lastActive == 0) { - lastActive = timer_get_current_time(); - } - - interval = timer_get_current_time() - lastActive; - - if (interval < 50) { - return; - } - - lastActive = timer_get_current_time(); - - arena_event(arena); -} - -void my_handler_quit(int n) -{ - debug("Received signal %d", n); - /* TODO: Why not to log it? */ - - isSignalEnd = TRUE; - - public_server_quit(); -} - -void public_server_quit() -{ - debug("Shutting down the Tuxanci game server"); - /* TODO: Why not to log it? */ - - if (atoi(public_server_get_setting("LAN_ONLY", "--lan-only", "0")) == 0) { - if (public_server_unregister() < 0) { - error("Unable to contact MasterServer"); - /* TODO: Why not to log it? */ - } - } - - net_multiplayer_quit(); - arena_destroy(arena); - - tux_quit(); - item_quiy(); - shot_quit(); - - /* remove the PID file */ - remove(public_server_get_setting("PID_FILE", "--pid-file", "/var/run/tuxanci-server.pid")); - - arena_file_quit(); - server_configFile_quit(); - module_quit(); - id_quit_list(); - high_score_quit(); - log_quit(); - - exit(0); -} - -int public_server_start() -{ -#ifndef __WIN32__ - signal(SIGINT, my_handler_quit); - signal(SIGTERM, my_handler_quit); - signal(SIGQUIT, my_handler_quit); -#endif /* __WIN32__ */ - if (public_server_init() < 0) { - public_server_quit(); - return -1; - } - - char *s = public_server_get_setting("DAEMON", "--daemon", "0"); - - if (atoi(s)) { - daemonize(); - } - - for (;;) { - public_server_event(); - } - - return 0; -} diff --git a/src/server/publicServer.h b/src/server/publicServer.h deleted file mode 100644 index 59c029e..0000000 --- a/src/server/publicServer.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef PUBLIC_SERVER_H -#define PUBLIC_SERVER_H - -#include "arena.h" -#include "arenaFile.h" - -#define WORLD_COUNT_ROUND_UNLIMITED -1 - -extern char *public_server_get_setting(char *env, char *param, char *default_val); -extern void world_inc_round(); -extern int public_server_init(); -extern arenaFile_t *choice_arena_get(); -extern void eventPublicServer(); -extern void my_handler_quit(int n); -extern void public_server_quit(); -extern int public_server_start(); - -#endif /* PUBLIC_SERVER_H */ diff --git a/src/server/serverConfigFile.c b/src/server/serverConfigFile.c deleted file mode 100644 index d872827..0000000 --- a/src/server/serverConfigFile.c +++ /dev/null @@ -1,94 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "textFile.h" -#include "serverConfigFile.h" - -static textFile_t *serverTextFile; - -static void prepareConfigFile(textFile_t *ts) -{ - int i, j; - - for (i = 0; i < serverTextFile->text->count; i++) { - char *line; - int len; - - line = (char *) (serverTextFile->text->list[i]); - len = strlen(line); - - for (j = 0; j < len; j++) { - if (line[j] == ' ') { /* [TAB] */ - line[j] = ' '; - } - } - } -} - -void server_configFile_init() -{ - char *configFile; - - configFile = getParamElse("--config-file", SERVER_CONFIG); - debug("Loading configuration file [%s]", getParamElse("--config-file", SERVER_CONFIG)); - - serverTextFile = text_file_load(configFile); - - if (serverTextFile == NULL) { - warning("Unable to load config file - using defaults"); - return; - } - - prepareConfigFile(serverTextFile); -} - -static char *findValue(char *s) -{ - int i; - int len; - - len = strlen(s); - - for (i = 0; i < len - 1; i++) { - if (s[i] == ' ' && s[i + 1] != ' ') { - return s + i + 1; - } - } - - return NULL; -} - -char *server_configFile_get_value(char *env, char *s) -{ - int i; - int len; - - if (serverTextFile == NULL) { - return s; - } - - len = strlen(env); - - for (i = 0; i < serverTextFile->text->count; i++) { - char *line; - - line = (char *) (serverTextFile->text->list[i]); - - if (strncmp(line, env, len) == 0) { - return findValue(line); - } - } - - return s; -} - -void server_configFile_quit() -{ - if (serverTextFile != NULL) { - text_file_destroy(serverTextFile); - } -} diff --git a/src/server/serverConfigFile.h b/src/server/serverConfigFile.h deleted file mode 100644 index b17b90f..0000000 --- a/src/server/serverConfigFile.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef SERVER_CONFIG_FILE_H -#define SERVER_CONFIG_FILE_H - -extern void server_configFile_init(); -extern char *server_configFile_get_value(char *env, char *s); -extern void server_configFile_quit(); - -#endif /* SERVER_CONFIG_FILE_H */ diff --git a/src/ta_al.c b/src/ta_al.c new file mode 100644 index 0000000..5d6076b --- /dev/null +++ b/src/ta_al.c @@ -0,0 +1,30 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifdef ENABLE_AUDIO + +#include <AL/al.h> +#include <AL/alc.h> +#include "ta_sdl.h" +#include "logging.h" +#include "main.h" + +// unused for now + +#endif // ENABLE_AUDIO
\ No newline at end of file diff --git a/src/ta_alc.c b/src/ta_alc.c new file mode 100644 index 0000000..a1dc06a --- /dev/null +++ b/src/ta_alc.c @@ -0,0 +1,70 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifdef ENABLE_AUDIO + +#include <AL/al.h> +#include <AL/alc.h> +#include "ta_sdl.h" +#include "logging.h" +#include "main.h" + +ALCdevice *ta_alc_open_device(void) { + ALCchar *devicename = NULL; // default + + ta_log("Opening AL device"); + ALCdevice *device = alcOpenDevice(devicename); + if (device) { + return device; + } else { + SDL_Log("AL: Failed to open device"); + return NULL; + } +} + +ALCcontext *ta_alc_create_context(ALCdevice *device, ALCint* attrlist) { + ta_log("Creating AL context"); + ALCcontext *context = alcCreateContext(device, attrlist); + if (context) { + return context; + } else { + SDL_Log("AL: Failed to create context"); + return NULL; + } +} + +void ta_alc_make_context_current(ALCcontext *context) { + ta_log("Making AL context current"); + ALCboolean status = alcMakeContextCurrent(context); + if (status == ALC_FALSE) { + SDL_Log("AL: Failed to make context current"); + ta_main_exit(1); + } +} + +void ta_alc_close_device(ALCdevice *device) { + ta_log("Closing AL device"); + ALCboolean status = alcCloseDevice(device); + if (status == ALC_FALSE) { + SDL_Log("AL: Failed to close device"); + ta_main_exit(1); + } +} + +#endif // ENABLE_AUDIO
\ No newline at end of file diff --git a/src/ta_openmpt.c b/src/ta_openmpt.c new file mode 100644 index 0000000..987f384 --- /dev/null +++ b/src/ta_openmpt.c @@ -0,0 +1,61 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifdef ENABLE_AUDIO + +#include <stdbool.h> +#include <libopenmpt/libopenmpt.h> +#include "logging.h" +#include "ta_sdl.h" +#include "main.h" + +openmpt_module *ta_openmpt_load_module(unsigned char *start, size_t size) { + const char *error = NULL; + + ta_log("Loading OpenMPT module from memory"); + openmpt_module *module = openmpt_module_create_from_memory2( + start, + size, + NULL, + NULL, + NULL, + NULL, + NULL, + &error, + NULL + ); + if (module) { + return module; + } else { + SDL_Log("OpenMPT: %s", error); + ta_main_exit(1); + return NULL; + } +} + +void ta_openmpt_set_module_repeat_count(openmpt_module *module, int count) { + ta_log("Setting OpenMPT module repeat count"); + bool success = openmpt_module_set_repeat_count(module, count); + if (!success) { + SDL_Log("Failed to set OpenMPT module repeat count"); + ta_main_exit(1); + } +} + +#endif // ENABLE_AUDIO
\ No newline at end of file diff --git a/src/ta_sdl.c b/src/ta_sdl.c new file mode 100644 index 0000000..d1519df --- /dev/null +++ b/src/ta_sdl.c @@ -0,0 +1,233 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include <stdbool.h> +#include <stdlib.h> +#include "ta_sdl.h" +#include "logging.h" +#include "main.h" + +static void ta_sdl_handle_error(void) { + const char *error = SDL_GetError(); + SDL_Log("SDL: %s\n", error); + + ta_main_exit(1); +} + +void ta_sdl_init(SDL_InitFlags flags) { + // TODO: Make it log what subsystem + ta_log("Initializing a SDL subsystem"); + bool success = SDL_Init(flags); + if (!success) { + ta_sdl_handle_error(); + } +} + +void ta_sdl_shutdown(void) { + ta_log("Exiting SDL"); + SDL_Quit(); +} + +SDL_Window *ta_sdl_create_window(const char *title, int width, int height) { + SDL_WindowFlags flags = { 0 }; + + ta_log("Initializing SDL window"); + SDL_Window *window = SDL_CreateWindow(title, width, height, flags); + if (window) { + return window; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +SDL_IOStream *ta_sdl_io_from_file(const char *file, const char *mode) { + ta_log("Opening %s as %s", file, mode); + + SDL_IOStream *io = SDL_IOFromFile(file, mode); + if (io) { + return io; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +SDL_IOStream *ta_sdl_io_from_mem(void *mem, size_t size) { + ta_log("Loading IO from memory"); + SDL_IOStream *io = SDL_IOFromMem(mem, size); + if (io) { + return io; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +void ta_sdl_get_window_size(SDL_Window *window, int *width, int *height) { + bool success = SDL_GetWindowSize(window, width, height); + if (!success) { + ta_sdl_handle_error(); + } +} + +SDL_GPUDevice *ta_sdl_create_gpu_device(void) { + ta_log("Creating SDL_gpu device"); + SDL_GPUDevice *device = SDL_CreateGPUDevice(SDL_GPU_SHADERFORMAT_SPIRV, true, NULL); + if (device) { + return device; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +void ta_sdl_claim_window_for_gpu_device(SDL_GPUDevice *device, SDL_Window *window) { + ta_log("Claiming SDL window for SDL_gpu device"); + bool success = SDL_ClaimWindowForGPUDevice(device, window); + if (!success) { + ta_sdl_handle_error(); + } +} + +SDL_GPUShader *ta_sdl_create_gpu_shader(SDL_GPUDevice *device, const SDL_GPUShaderCreateInfo *createinfo) { + ta_log("Creating a SDL_gpu shader"); + SDL_GPUShader *shader = SDL_CreateGPUShader(device, createinfo); + if (shader) { + return shader; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +SDL_GPUGraphicsPipeline *ta_sdl_create_gpu_graphics_pipeline(SDL_GPUDevice *device, const SDL_GPUGraphicsPipelineCreateInfo *createinfo) { + ta_log("Creating a SDL_gpu graphics pipeline"); + SDL_GPUGraphicsPipeline *graphics_pipeline = SDL_CreateGPUGraphicsPipeline(device, createinfo); + if (graphics_pipeline) { + return graphics_pipeline; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +SDL_GPUTexture *ta_sdl_create_gpu_texture(SDL_GPUDevice *device, const SDL_GPUTextureCreateInfo *createinfo) { + SDL_GPUTexture *texture = SDL_CreateGPUTexture(device, createinfo); + if (texture) { + return texture; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +SDL_GPUSampler *ta_sdl_create_gpu_sampler(SDL_GPUDevice *device, const SDL_GPUSamplerCreateInfo *createinfo) { + SDL_GPUSampler *sampler = SDL_CreateGPUSampler(device, createinfo); + if (sampler) { + return sampler; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +SDL_GPUTransferBuffer *ta_sdl_create_gpu_transfer_buffer(SDL_GPUDevice *device, const SDL_GPUTransferBufferCreateInfo *createinfo) { + SDL_GPUTransferBuffer *transfer_buffer = SDL_CreateGPUTransferBuffer(device, createinfo); + if (transfer_buffer) { + return transfer_buffer; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +void *ta_sdl_map_gpu_transfer_buffer(SDL_GPUDevice *device, SDL_GPUTransferBuffer *transfer_buffer, bool cycle) { + void *mapped = SDL_MapGPUTransferBuffer(device, transfer_buffer, cycle); + if (mapped) { + return mapped; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +SDL_GPUCommandBuffer *ta_sdl_acquire_gpu_command_buffer(SDL_GPUDevice *device) { + SDL_GPUCommandBuffer *command_buffer = SDL_AcquireGPUCommandBuffer(device); + if (command_buffer) { + return command_buffer; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +SDL_GPUCopyPass *ta_sdl_begin_gpu_copy_pass(SDL_GPUCommandBuffer *command_buffer) { + SDL_GPUCopyPass *copy_pass = SDL_BeginGPUCopyPass(command_buffer); + if (copy_pass) { + return copy_pass; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +SDL_GPURenderPass *ta_sdl_begin_gpu_render_pass(SDL_GPUCommandBuffer *command_buffer, const SDL_GPUColorTargetInfo *color_target_infos, Uint32 num_color_targets, const SDL_GPUDepthStencilTargetInfo *depth_stencil_target_info) { + SDL_GPURenderPass *render_pass = SDL_BeginGPURenderPass(command_buffer, color_target_infos, num_color_targets, depth_stencil_target_info); + if (render_pass) { + return render_pass; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +void ta_sdl_wait_and_acquire_gpu_swapchain_texture(SDL_GPUCommandBuffer *commandbuffer, SDL_Window *window, SDL_GPUTexture **swapchain_texture) { + Uint32 *swapchain_texture_width = NULL; + Uint32 *swapchain_texture_height = NULL; + + bool success = SDL_WaitAndAcquireGPUSwapchainTexture(commandbuffer, window, swapchain_texture, swapchain_texture_width, swapchain_texture_height); + if (!success) { + ta_sdl_handle_error(); + } +} + +void ta_sdl_submit_gpu_command_buffer(SDL_GPUCommandBuffer *command_buffer) { + bool success = SDL_SubmitGPUCommandBuffer(command_buffer); + if (!success) { + ta_sdl_handle_error(); + } +} + +SDL_Surface *ta_sdl_convert_surface(SDL_Surface *surface, SDL_PixelFormat format) { + SDL_Surface *converted_surface = SDL_ConvertSurface(surface, format); + if (converted_surface) { + return converted_surface; + } else { + ta_sdl_handle_error(); + return NULL; + } +} + +void ta_sdl_set_window_fullscreen(SDL_Window *window, bool fullscreen) { + bool success = SDL_SetWindowFullscreen(window, fullscreen); + if (!success) { + ta_sdl_handle_error(); + } +}
\ No newline at end of file diff --git a/src/ta_sdl_ttf.c b/src/ta_sdl_ttf.c new file mode 100644 index 0000000..4a37a4f --- /dev/null +++ b/src/ta_sdl_ttf.c @@ -0,0 +1,72 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "ta_sdl_ttf.h" +#include "main.h" +#include "logging.h" + +static void ta_sdl_ttf_handle_error(void) { + const char *error = SDL_GetError(); + SDL_Log("SDL_ttf: %s\n", error); + + ta_main_exit(1); +} + +void ta_sdl_ttf_init(void) { + bool success = TTF_Init(); + if (!success) { + ta_sdl_ttf_handle_error(); + } +} + +void ta_sdl_ttf_shutdown(void) { + ta_log("Exiting SDL_ttf"); + TTF_Quit(); +} + +TTF_Font *ta_sdl_ttf_open_font(SDL_IOStream *src) { + bool closeio = true; + float ptsize = 1.0f; + + ta_log("Loading font"); + TTF_Font *font = TTF_OpenFontIO(src, closeio, ptsize); + if (font) { + return font; + } else { + ta_sdl_ttf_handle_error(); + return NULL; + } +} + +void ta_sdl_ttf_set_font_size(TTF_Font *font, float ptsize) { + bool success = TTF_SetFontSize(font, ptsize); + if (!success) { + ta_sdl_ttf_handle_error(); + } +} + +SDL_Surface *ta_sdl_ttf_render_text_blended(TTF_Font *font, const char *text, size_t length, SDL_Color color) { + SDL_Surface *surface = TTF_RenderText_Blended(font, text, length, color); + if (surface) { + return surface; + } else { + ta_sdl_ttf_handle_error(); + return NULL; + } +}
\ No newline at end of file diff --git a/src/teapot.c b/src/teapot.c new file mode 100644 index 0000000..751eb55 --- /dev/null +++ b/src/teapot.c @@ -0,0 +1,70 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "files.h" +#include "gpu.h" +#include "obj_model.h" +#include "teapot.h" +#include "window.h" + +static ta_obj_model ta_teapot_model; +static ta_obj_model ta_dounut_model; + +void ta_teapot_init(void) { + ta_obj_model_init( + &ta_teapot_model, + ta_gpu_device, + file_data_models_teapot_obj_start, + file_data_models_teapot_obj_size, + ta_gpu_swapchain_format, + SDL_GPU_TEXTUREFORMAT_D32_FLOAT, + ta_gpu_sample_count + ); + ta_teapot_model.position[1] = 1.0f; + + ta_obj_model_init( + &ta_dounut_model, + ta_gpu_device, + file_data_models_dounut_obj_start, + file_data_models_dounut_obj_size, + ta_gpu_swapchain_format, + SDL_GPU_TEXTUREFORMAT_D32_FLOAT, + ta_gpu_sample_count + ); + ta_dounut_model.position[1] = -1.0f; + ta_dounut_model.rotation[0] = -1.0f; + +} + +void ta_teapot_upload(SDL_GPUCommandBuffer *command_buffer) { + ta_obj_model_upload(&ta_teapot_model, command_buffer, ta_gpu_device); + ta_obj_model_upload(&ta_dounut_model, command_buffer, ta_gpu_device); +} + +void ta_teapot_render(SDL_GPUCommandBuffer *command_buffer, SDL_GPURenderPass *render_pass) { + ta_teapot_model.rotation[1] = (float)SDL_GetTicks() * 0.01f; + ta_obj_model_render(&ta_teapot_model, command_buffer, render_pass, ta_window_width, ta_window_height); + ta_dounut_model.rotation[1] = (float)SDL_GetTicks() * 0.01f; + ta_obj_model_render(&ta_dounut_model, command_buffer, render_pass, ta_window_width, ta_window_height); +} + +void ta_teapot_shutdown(void) { + ta_obj_model_destroy(&ta_teapot_model, ta_gpu_device); + ta_obj_model_destroy(&ta_dounut_model, ta_gpu_device); +} diff --git a/src/text.c b/src/text.c new file mode 100644 index 0000000..6cff2b4 --- /dev/null +++ b/src/text.c @@ -0,0 +1,205 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "files.h" +#include "logging.h" +#include "main.h" +#include "ta_sdl_ttf.h" +#include "ta_sdl.h" +#include "gpu.h" +#include "window.h" +#include "color.h" + +static TTF_Font *ta_text_font; +SDL_Surface *ta_text_surface; +int ta_text_current_x; +int ta_text_current_y; + +static void ta_text_upload_surface(SDL_GPUCommandBuffer *command_buffer, SDL_Surface *text_surface, SDL_GPUTexture **texture, Uint32 *texture_width, Uint32 *texture_height) { + if (!text_surface) { + return; + } + + SDL_Surface *surface = ta_sdl_convert_surface(text_surface, SDL_PIXELFORMAT_RGBA32); + + Uint32 width = (Uint32)surface->w; + Uint32 height = (Uint32)surface->h; + if (!*texture || width != *texture_width || height != *texture_height) { + SDL_ReleaseGPUTexture(ta_gpu_device, *texture); + SDL_GPUTextureCreateInfo texture_info = { + .type = SDL_GPU_TEXTURETYPE_2D, + .format = SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM, + .usage = SDL_GPU_TEXTUREUSAGE_SAMPLER, + .width = width, + .height = height, + .layer_count_or_depth = 1, + .num_levels = 1, + }; + *texture = ta_sdl_create_gpu_texture(ta_gpu_device, &texture_info); + *texture_width = width; + *texture_height = height; + } + + SDL_GPUTransferBufferCreateInfo transfer_info = { + .usage = SDL_GPU_TRANSFERBUFFERUSAGE_UPLOAD, + .size = width * height * 4, + }; + SDL_GPUTransferBuffer *transfer_buffer = ta_sdl_create_gpu_transfer_buffer(ta_gpu_device, &transfer_info); + void *mapped = ta_sdl_map_gpu_transfer_buffer(ta_gpu_device, transfer_buffer, false); + for (Uint32 row = 0; row < height; row++) { + memcpy( + (Uint8 *)mapped + row * width * 4, + (Uint8 *)surface->pixels + row * (Uint32)surface->pitch, + width * 4 + ); + } + SDL_UnmapGPUTransferBuffer(ta_gpu_device, transfer_buffer); + + SDL_GPUTextureTransferInfo source = { + .transfer_buffer = transfer_buffer, + .pixels_per_row = width, + .rows_per_layer = height, + }; + SDL_GPUTextureRegion destination = { + .texture = *texture, + .w = width, + .h = height, + .d = 1, + }; + SDL_GPUCopyPass *copy_pass = ta_sdl_begin_gpu_copy_pass(command_buffer); + SDL_UploadToGPUTexture(copy_pass, &source, &destination, true); + SDL_EndGPUCopyPass(copy_pass); + SDL_ReleaseGPUTransferBuffer(ta_gpu_device, transfer_buffer); + + SDL_DestroySurface(surface); +} + +void ta_gpu_upload_text(SDL_GPUCommandBuffer *command_buffer) { + ta_text_upload_surface(command_buffer, ta_text_surface, &ta_gpu_text_texture, &ta_gpu_text_texture_width, &ta_gpu_text_texture_height); +} + +static void ta_text_render_surface(SDL_GPUCommandBuffer *command_buffer, SDL_GPURenderPass *render_pass, SDL_Surface *text_surface, SDL_GPUTexture *texture, Uint32 texture_width, Uint32 texture_height, int x, int y) { + if (!text_surface) { + return; + } + + float clip_rect[4] = { + 2.0f * (float) x / (float)ta_window_width - 1.0f, + 1.0f - 2.0f * (float)(y + (int)texture_height) / (float)ta_window_height, + 2.0f * (float)(x + (int)texture_width) / (float)ta_window_width - 1.0f, + 1.0f - 2.0f * (float) y / (float)ta_window_height, + }; + SDL_PushGPUVertexUniformData(command_buffer, 0, clip_rect, sizeof(clip_rect)); + SDL_BindGPUGraphicsPipeline(render_pass, ta_gpu_text_pipeline); + SDL_GPUTextureSamplerBinding binding = { + .texture = texture, + .sampler = ta_gpu_text_sampler, + }; + SDL_BindGPUFragmentSamplers(render_pass, 0, &binding, 1); + SDL_DrawGPUPrimitives(render_pass, 6, 1, 0, 0); +} + +void ta_text_render(SDL_GPUCommandBuffer *command_buffer, SDL_GPURenderPass *render_pass) { + ta_text_render_surface(command_buffer, render_pass, ta_text_surface, ta_gpu_text_texture, ta_gpu_text_texture_width, ta_gpu_text_texture_height, ta_text_current_x, ta_text_current_y); +} + +void ta_text_init(void) { + ta_sdl_ttf_init(); + + SDL_IOStream *font_io = ta_sdl_io_from_mem( + file_data_fonts_DejaVuSans_ttf_start, + file_data_fonts_DejaVuSans_ttf_size + ); + + ta_text_font = ta_sdl_ttf_open_font(font_io); +} + +static void ta_text_draw_surface(SDL_Surface **target, float size, int red, int green, int blue, int alpha, const char *format, va_list arguments) { + if (!ta_text_font || !format || size <= 0.0f) { + return; + } + + va_list length_arguments; + va_copy(length_arguments, arguments); + int length = vsnprintf(NULL, 0, format, length_arguments); + va_end(length_arguments); + if (length < 0) { + return; + } + + char *text = malloc((size_t)length + 1); + if (!text) { + return; + } + + va_list text_arguments; + va_copy(text_arguments, arguments); + vsnprintf(text, (size_t)length + 1, format, text_arguments); + va_end(text_arguments); + + ta_sdl_ttf_set_font_size(ta_text_font, size); + + SDL_Color color = { + red, + green, + blue, + alpha + }; + SDL_Surface *surface = ta_sdl_ttf_render_text_blended(ta_text_font, text, 0, color); + free(text); + + SDL_DestroySurface(*target); + *target = surface; +} + +void ta_text_draw(int x, int y, float size, ta_color color, const char *format, ...) { + int red = color.red; + int green = color.green; + int blue = color.blue; + int alpha = color.alpha; + + va_list arguments; + va_start(arguments, format); + + ta_text_draw_surface(&ta_text_surface, size, red, green, blue, alpha, format, arguments); + + va_end(arguments); + ta_text_current_x = x; + ta_text_current_y = y; +} + +void ta_text_clear(void) { + SDL_DestroySurface(ta_text_surface); + ta_text_surface = NULL; +} + +void ta_text_shutdown(void) { + ta_text_clear(); + + if (ta_text_font) { + TTF_CloseFont(ta_text_font); + ta_text_font = NULL; + } + + TTF_Quit(); +} diff --git a/src/tuxanci.rc b/src/tuxanci.rc deleted file mode 100644 index 1198660..0000000 --- a/src/tuxanci.rc +++ /dev/null @@ -1 +0,0 @@ -1 ICON "../data/tuxanci.svg" diff --git a/src/widget/CMakeLists.txt b/src/widget/CMakeLists.txt deleted file mode 100644 index 2e93cef..0000000 --- a/src/widget/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -############################################################################### -# tuxanci/src/*/CMakeLists.txt -############################################################################### -# Generate source_code files from .c files we find in directory -############################################################################### -MacroAddSources() -############################################################################### diff --git a/src/widget/widget.c b/src/widget/widget.c deleted file mode 100644 index 2c0651b..0000000 --- a/src/widget/widget.c +++ /dev/null @@ -1,102 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" - -#include "widget.h" -#include "widget_label.h" -#include "widget_button.h" -#include "widget_buttonimage.h" -#include "widget_textfield.h" -#include "widget_catchkey.h" -#include "widget_check.h" -#include "widget_choicegroup.h" -#include "widget_image.h" -#include "widget_select.h" -#include "widget_statusbar.h" - -widget_t *widget_new(int type, int x, int y, int w, int h, void *private_data) -{ - widget_t *new; - - new = malloc(sizeof(widget_t)); - new->type = type; - new->x = x; - new->y = y; - new->w = w; - new->h = h; - new->private_data = private_data; - - return new; -} - -void widget_set_location(widget_t *p, int x, int y) -{ - p->x = x; - p->y = y; -} - -void widget_get_location(widget_t *p, int *x, int *y) -{ - if (x != NULL) { - *x = p->x; - } - - if (y != NULL) { - *y = p->y; - } -} - -void widget_get_size(widget_t *p, int w, int h) -{ - p->w = w; - p->h = h; -} - -void widget_set_size(widget_t *p, int *w, int *h) -{ - if (w != NULL) { - *w = p->w; - } - - if (h != NULL) { - *h = p->h; - } -} - -void widget_draw(widget_t *p) -{ - switch (p->type) { - case WIDGET_TYPE_LABEL: label_draw(p); break; - case WIDGET_TYPE_BUTTON: button_draw(p); break; - case WIDGET_TYPE_BUTTONIMAGE: button_image_draw(p); break; - case WIDGET_TYPE_TEXTFILED: text_field_draw(p); break; - case WIDGET_TYPE_CATCHKEY: catch_key_draw(p); break; - case WIDGET_TYPE_CHECK: check_draw(p); break; - case WIDGET_TYPE_CHOICE: choice_group_draw(p); break; - case WIDGET_TYPE_IMAGE: wid_image_draw(p); break; - case WIDGET_TYPE_SELECT: select_draw(p); break; - case WIDGET_TYPE_STATUSBAR: statusbar_draw(p); break; - } -} - -void widget_event(widget_t *p) -{ - switch (p->type) { - case WIDGET_TYPE_LABEL: label_event(p); break; - case WIDGET_TYPE_BUTTON: button_event(p); break; - case WIDGET_TYPE_BUTTONIMAGE: button_image_event(p); break; - case WIDGET_TYPE_TEXTFILED: text_field_event(p); break; - case WIDGET_TYPE_CATCHKEY: catch_key_event(p); break; - case WIDGET_TYPE_CHECK: check_event(p); break; - case WIDGET_TYPE_CHOICE: choice_group_event(p); break; - case WIDGET_TYPE_IMAGE: wid_image_event(p); break; - case WIDGET_TYPE_SELECT: select_event(p); break; - case WIDGET_TYPE_STATUSBAR: statusbar_event(p); break; - } -} - -void widget_destroy(widget_t *p) -{ - free(p); -} diff --git a/src/widget/widget.h b/src/widget/widget.h deleted file mode 100644 index b5898c2..0000000 --- a/src/widget/widget.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef WIDGET_H -#define WIDGET_H - -#include "main.h" - -#define WIDGET_TYPE_LABEL 1 -#define WIDGET_TYPE_BUTTON 2 -#define WIDGET_TYPE_BUTTONIMAGE 3 -#define WIDGET_TYPE_TEXTFILED 4 -#define WIDGET_TYPE_CATCHKEY 5 -#define WIDGET_TYPE_CHECK 6 -#define WIDGET_TYPE_CHOICE 7 -#define WIDGET_TYPE_IMAGE 8 -#define WIDGET_TYPE_SELECT 9 -#define WIDGET_TYPE_STATUSBAR 10 -#define WIDGET_TYPE_CONTAINER 11 - -#define WIDGET_NONE_VALUE -1 - -typedef struct widget_struct { - int type; - int x, y; - int w, h; - void *private_data; -} widget_t; - -extern widget_t *widget_new(int type, int x, int y, int w, int h, void *private_data); -extern void widget_set_location(widget_t *p, int x, int y); -extern void widget_get_location(widget_t *p, int *x, int *y); -extern void widget_get_size(widget_t *p, int w, int h); -extern void widget_set_size(widget_t *p, int *w, int *h); -extern void widget_draw(widget_t *p); -extern void widget_event(widget_t *p); -extern void widget_destroy(widget_t *p); - -#endif /* WIDGET_H */ diff --git a/src/widget/widget_button.c b/src/widget/widget_button.c deleted file mode 100644 index 9d80294..0000000 --- a/src/widget/widget_button.c +++ /dev/null @@ -1,101 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" - -#include "interface.h" -#include "image.h" -#include "font.h" -#include "mouse_buffer.h" - -#include "widget.h" -#include "widget_button.h" - -widget_t *button_new(char *text, int x, int y, void (*fce_event) (void *)) -{ - widget_button_t *new; - - new = malloc(sizeof(widget_button_t)); - new->text = strdup(text); - new->fce_event = fce_event; - font_text_size(text, &(new->w), &(new->h)); - - return widget_new(WIDGET_TYPE_BUTTON, x, y, - WIDGET_BUTTON_WIDTH, WIDGET_BUTTON_HEIGHT, new); -} - -void button_draw(widget_t *widget) -{ - widget_button_t *p; - static image_t *g_button0 = NULL; - static image_t *g_button1 = NULL; - int x, y; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_BUTTON); - - p = (widget_button_t *) widget->private_data; - interface_get_mouse_position(&x, &y); - - if (g_button0 == NULL) { - g_button0 = image_add("button0.png", IMAGE_ALPHA, "button0", IMAGE_GROUP_BASE); - } - - if (g_button1 == NULL) { - g_button1 = image_add("button1.png", IMAGE_ALPHA, "button1", IMAGE_GROUP_BASE); - } - - if (mouse_buffer_is_on_area(widget->x, widget->y, WIDGET_BUTTON_WIDTH, - WIDGET_BUTTON_HEIGHT, MOUSE_BUF_MOTION)) { - image_draw(g_button1, widget->x, widget->y, 0, 0, - g_button0->w, g_button0->h); - } else { - image_draw(g_button0, widget->x, widget->y, 0, 0, - g_button0->w, g_button0->h); - } - - /*font_draw(p->text, p->x+WIDGET_BUTTON_WIDTH/2-p->w/2, p->y+p->h/2, COLOR_WHITE);*/ - font_draw(p->text, widget->x + WIDGET_BUTTON_WIDTH / 2 - p->w / 2, - widget->y + WIDGET_BUTTON_HEIGHT / 2 - p->h / 2, - COLOR_WHITE); -} - -void button_event(widget_t *widget) -{ - widget_button_t *p; - static int my_time = 0; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_BUTTON); - - p = (widget_button_t *) widget->private_data; - - if (my_time > 0) { - my_time--; - return; - } - - if (mouse_buffer_is_on_area(widget->x, widget->y, WIDGET_BUTTON_WIDTH, - WIDGET_BUTTON_HEIGHT, MOUSE_BUF_CLICK)) { - my_time = WIDGET_BUTTON_TIME; - - debug("Caught some button event"); - - p->fce_event(widget); - } -} - -void button_destroy(widget_t *widget) -{ - widget_button_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_BUTTON); - - p = (widget_button_t *) widget->private_data; - - free(p->text); - free(p); - - widget_destroy(widget); -} diff --git a/src/widget/widget_button.h b/src/widget/widget_button.h deleted file mode 100644 index 2ec4ae3..0000000 --- a/src/widget/widget_button.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef WIDGET_BUTTON_H -#define WIDGET_BUTTON_H - -#include "main.h" -#include "widget.h" - -#define WIDGET_BUTTON_TIME 10 - -#define WIDGET_BUTTON_WIDTH 125 -#define WIDGET_BUTTON_HEIGHT 36 - -typedef struct widget_button { - char *text; - int w, h; - void (*fce_event) (void *); -} widget_button_t; - -extern widget_t *button_new(char *text, int x, int y, void (*fce_event) (void *)); -extern void button_draw(widget_t *widget); -extern void button_event(widget_t *widget); -extern void button_destroy(widget_t *widget); - -#endif /* WIDGET_BUTTON_H */ diff --git a/src/widget/widget_buttonimage.c b/src/widget/widget_buttonimage.c deleted file mode 100644 index 134d34e..0000000 --- a/src/widget/widget_buttonimage.c +++ /dev/null @@ -1,82 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "interface.h" -#include "font.h" -#include "image.h" -#include "mouse_buffer.h" - -#include "widget.h" -#include "widget_buttonimage.h" - -widget_t *button_image_new(image_t *image, int x, int y, void (*fce_event) (void *)) -{ - widget_buttonimage_t *new; - - new = malloc(sizeof(widget_buttonimage_t)); - new->image = image; - new->w = image->w / 2; - new->h = image->h; - new->active = 0; - new->fce_event = fce_event; - - return widget_new(WIDGET_TYPE_BUTTONIMAGE, x, y, new->w, new->h, new); -} - -void button_image_set_active(widget_t *widget, bool_t active) -{ - widget_buttonimage_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_BUTTONIMAGE); - - p = (widget_buttonimage_t *) widget->private_data; - p->active = active; -} - -void button_image_draw(widget_t *widget) -{ - widget_buttonimage_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_BUTTONIMAGE); - - p = (widget_buttonimage_t *) widget->private_data; - image_draw(p->image, widget->x, widget->y, p->active *p->w, 0, p->w, p->h); -} - -void button_image_event(widget_t *widget) -{ - widget_buttonimage_t *p; - static int my_time = 0; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_BUTTONIMAGE); - - p = (widget_buttonimage_t *) widget->private_data; - - if (my_time > 0) { - my_time--; - return; - } - - if (mouse_buffer_is_on_area(widget->x, widget->y, p->w, p->h, MOUSE_BUF_CLICK)) { - my_time = WIDGET_BUTTONIMAGE_TIME; - p->active = 1; - p->fce_event(widget); - } -} - -void button_image_destroy(widget_t *widget) -{ - widget_buttonimage_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_BUTTONIMAGE); - - p = (widget_buttonimage_t *) widget->private_data; - - free(p); - widget_destroy(widget); -} diff --git a/src/widget/widget_buttonimage.h b/src/widget/widget_buttonimage.h deleted file mode 100644 index fff2658..0000000 --- a/src/widget/widget_buttonimage.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef WIDGET_BUTTONIMAGE_H -#define WIDGET_BUTTONIMAGE_H - -#include "main.h" -#include "image.h" -#include "widget.h" - -#define WIDGET_BUTTONIMAGE_TIME 10 - -typedef struct widget_buttonimageimage { - int w, h; - int active; - image_t *image; - void (*fce_event) (void *); -} widget_buttonimage_t; - -extern widget_t *button_image_new(image_t *image, int x, int y, void (*fce_event) (void *)); - -extern void button_image_set_active(widget_t *widget, bool_t active); -extern void button_image_draw(widget_t *widget); -extern void button_image_event(widget_t *widget); -extern void button_image_destroy(widget_t *widget); - -#endif /* WIDGET_BUTTONIMAGE_H */ diff --git a/src/widget/widget_catchkey.c b/src/widget/widget_catchkey.c deleted file mode 100644 index 814cfa1..0000000 --- a/src/widget/widget_catchkey.c +++ /dev/null @@ -1,141 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "interface.h" -#include "font.h" -#include "mouse_buffer.h" - -#include "widget.h" -#include "widget_catchkey.h" - -widget_t *catch_key_new(int key, int x, int y, void *event) -{ - widget_catchkey_t *new; - - new = malloc(sizeof(widget_catchkey_t)); - new->key = key; - new->fce_event = event; - new->active = FALSE; - - return widget_new(WIDGET_TYPE_CATCHKEY, x, y, WIDGET_CATCHKEY_WIDTH, - WIDGET_CATCHKEY_HEIGHT, new); -} - -int catch_key_get(widget_t *widget) -{ - widget_catchkey_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CATCHKEY); - - p = (widget_catchkey_t *) widget->private_data; - - return p->key; -} - -void catch_key_set(widget_t *widget, int key) -{ - widget_catchkey_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CATCHKEY); - - p = (widget_catchkey_t *) widget->private_data; - - p->key = key; -} - -void catch_key_draw(widget_t *widget) -{ - widget_catchkey_t *p; - char *name; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CATCHKEY); - - p = (widget_catchkey_t *) widget->private_data; - name = NULL; - - if (p->key != WIDGET_CATCHKEY_NOKEY) { - name = (char *) SDL_GetKeyName(p->key); - } - - if (name == NULL) { - name = "no key"; - } - - if (p->active) { - font_draw(name, widget->x, widget->y, COLOR_RED); - } else { - font_draw(name, widget->x, widget->y, COLOR_WHITE); - } -} - -static int getPressAnyKey() -{ - Uint8 *mapa; - int i; - - mapa = SDL_GetKeyState(NULL); - - for (i = SDLK_FIRST; i <= SDLK_COMPOSE; i++) { - if (i == SDLK_NUMLOCK || /* black key */ - i == SDLK_CAPSLOCK || - i == SDLK_SCROLLOCK) { - continue; - } - - if (mapa[i] == SDL_PRESSED) { - return i; - } - } - - return WIDGET_CATCHKEY_NOKEY; -} - -void catch_key_event(widget_t *widget) -{ - widget_catchkey_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CATCHKEY); - - p = (widget_catchkey_t *) widget->private_data; - - if (mouse_buffer_is_on_area(0, 0, 0, 0, MOUSE_BUF_AREA_NONE|MOUSE_BUF_CLICK)) { - if (mouse_buffer_is_on_area(widget->x, widget->y, - WIDGET_CATCHKEY_WIDTH, - WIDGET_CATCHKEY_HEIGHT, - MOUSE_BUF_CLICK)) { - p->active = TRUE; - } else { - p->active = FALSE; - } - } - - if (p->active == TRUE) { - int key; - - key = getPressAnyKey(); - - if (key != WIDGET_CATCHKEY_NOKEY) { - p->key = key; - p->fce_event(widget); - p->active = FALSE; - } - } -} - -void catch_key_destroy(widget_t *widget) -{ - widget_catchkey_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CATCHKEY); - - p = (widget_catchkey_t *) widget->private_data; - - free(p); - widget_destroy(widget); -} diff --git a/src/widget/widget_catchkey.h b/src/widget/widget_catchkey.h deleted file mode 100644 index d922241..0000000 --- a/src/widget/widget_catchkey.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef WIDGET_CATCHKEY_H -#define WIDGET_CATCHKEY_H - -#include "main.h" -#include "widget.h" - -#define WIDGET_CATCHKEY_NOKEY -1 - -#define WIDGET_CATCHKEY_WIDTH 110 -#define WIDGET_CATCHKEY_HEIGHT 16 - -typedef struct widget_catchkey_struct { - int w, h; - int key; - bool_t active; - void (*fce_event) (void *p); -} widget_catchkey_t; - -extern widget_t *catch_key_new(int key, int x, int y, void *event); -extern int catch_key_get(widget_t *p); -extern void catch_key_set(widget_t *p, int key); -extern void catch_key_draw(widget_t *p); -extern void catch_key_event(widget_t *p); -extern void catch_key_destroy(widget_t *p); - -#endif /* WIDGET_CATCHKEY_H */ diff --git a/src/widget/widget_check.c b/src/widget/widget_check.c deleted file mode 100644 index f39c6ad..0000000 --- a/src/widget/widget_check.c +++ /dev/null @@ -1,114 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "interface.h" -#include "image.h" -#include "mouse_buffer.h" - -#include "widget.h" -#include "widget_check.h" - -widget_t *check_new(int x, int y, bool_t status, void (*fce_event) (void *)) -{ - widget_check_t *new; - - new = malloc(sizeof(widget_check_t)); - new->time = 0; - new->status = status; - new->fce_event = fce_event; - - return widget_new(WIDGET_TYPE_CHECK, x, y, WIDGET_CHECK_WIDTH, WIDGET_CHECK_HEIGHT, new); -} - -void check_draw(widget_t *widget) -{ - widget_check_t *p; - static image_t *g_check = NULL; - int x, y; - int offset; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CHECK); - - p = (widget_check_t *) widget->private_data; - - interface_get_mouse_position(&x, &y); - - if (g_check == NULL) { - g_check = image_add("check.png", IMAGE_ALPHA, "check", IMAGE_GROUP_BASE); - } - - if (p->status == TRUE) { - offset = 0; - } else { - offset = WIDGET_CHECK_WIDTH; - } - - image_draw(g_check, widget->x, widget->y, offset, 0, WIDGET_CHECK_WIDTH, WIDGET_CHECK_HEIGHT); -} - -void check_event(widget_t *widget) -{ - widget_check_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CHECK); - - p = (widget_check_t *) widget->private_data; - - if (p->time > 0) { - p->time--; - return; - } - - if (mouse_buffer_is_on_area(widget->x, widget->y, WIDGET_CHECK_WIDTH, - WIDGET_CHECK_HEIGHT, MOUSE_BUF_CLICK)) { - if (p->status == TRUE) { - p->status = FALSE; - p->time = WIDGET_CHECK_TIME_SWITCH_STATUS; - } else { - p->status = TRUE; - p->time = WIDGET_CHECK_TIME_SWITCH_STATUS; - } - - if (p->fce_event != NULL) { - p->fce_event(widget); - } - } -} - -bool_t check_get_status(widget_t *widget) -{ - widget_check_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CHECK); - - p = (widget_check_t *) widget->private_data; - - return p->status; -} - -void check_set_status(widget_t *widget, bool_t status) -{ - widget_check_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CHECK); - - p = (widget_check_t *) widget->private_data; - p->status = status; -} - -void check_destroy(widget_t *widget) -{ - widget_check_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CHECK); - - p = (widget_check_t *) widget->private_data; - free(p); - widget_destroy(widget); -} diff --git a/src/widget/widget_check.h b/src/widget/widget_check.h deleted file mode 100644 index 3df8c23..0000000 --- a/src/widget/widget_check.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef WIDGET_CHECK_H -#define WIDGET_CHECK_H - -#include "main.h" -#include "widget.h" - -#define WIDGET_CHECK_TIME_SWITCH_STATUS 5 - -#define WIDGET_CHECK_WIDTH 25 -#define WIDGET_CHECK_HEIGHT 25 - -typedef struct widget_check { - bool_t status; - int time; - void (*fce_event) (void *); -} widget_check_t; - -extern widget_t *check_new(int x, int y, bool_t status, void (*fce_event) (void *)); -extern void check_draw(widget_t *widget); -extern void check_event(widget_t *widget); -extern bool_t check_get_status(widget_t *widget); -extern void check_set_status(widget_t *widget, bool_t status); -extern void check_destroy(widget_t *widget); - -#endif /* WIDGET_CHECK_H */ diff --git a/src/widget/widget_choicegroup.c b/src/widget/widget_choicegroup.c deleted file mode 100644 index 2c3338f..0000000 --- a/src/widget/widget_choicegroup.c +++ /dev/null @@ -1,143 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "interface.h" -#include "image.h" -#include "mouse_buffer.h" - -#include "widget.h" -#include "widget_choicegroup.h" - -widget_t *choice_group_new(int x, int y, bool_t status, list_t *list, void (*fce_event) (void *)) -{ - widget_choicegroup_t *new; - widget_t *widget; - - new = malloc(sizeof(widget_choicegroup_t)); - new->time = 0; - new->status = status; - new->fce_event = fce_event; - new->list = list; - - widget = widget_new(WIDGET_TYPE_CHOICE, x, y, WIDGET_CHOICEGROUP_WIDTH, - WIDGET_CHOICEGROUP_HEIGHT, new); - - list_add(new->list, widget); - - return widget; -} - -void choice_group_draw(widget_t *widget) -{ - widget_choicegroup_t *p; - static image_t *g_choicegroup = NULL; - int offset; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CHOICE); - - p = (widget_choicegroup_t *) widget->private_data; - - if (g_choicegroup == NULL) { - g_choicegroup = image_add("choice.png", IMAGE_ALPHA, "choicegroup", IMAGE_GROUP_BASE); - } - - if (p->status == TRUE) { - offset = 0; - } else { - offset = WIDGET_CHOICEGROUP_WIDTH; - } - - image_draw(g_choicegroup, widget->x, widget->y, offset, 0, - WIDGET_CHOICEGROUP_WIDTH, WIDGET_CHOICEGROUP_HEIGHT); -} - -void choice_group_set_active(widget_t *widget) -{ - widget_choicegroup_t *p; - int i; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CHOICE); - - p = (widget_choicegroup_t *) widget->private_data; - - for (i = 0; i < p->list->count; i++) { - widget_t *this; - widget_choicegroup_t *thisChoice; - - this = (widget_t *) p->list->list[i]; - thisChoice = (widget_choicegroup_t *) this->private_data; - - if (widget == this) { - thisChoice->status = TRUE; - thisChoice->time = WIDGET_CHOICEGROUP_TIME_SWITCH_STATUS; - thisChoice->fce_event(p); - } else { - thisChoice->status = FALSE; - } - } -} - -bool_t choice_group_get_status(widget_t *widget) -{ - widget_choicegroup_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CHOICE); - - p = (widget_choicegroup_t *) widget->private_data; - - return p->status; -} - -void choiceGroup_set_status(widget_t *widget, bool_t status) -{ - widget_choicegroup_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CHOICE); - - p = (widget_choicegroup_t *) widget->private_data; - p->status = status; -} - -void choice_group_event(widget_t *widget) -{ - widget_choicegroup_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CHOICE); - - p = (widget_choicegroup_t *) widget->private_data; - - if (p->time > 0) { - p->time--; - return; - } - - if (mouse_buffer_is_on_area(widget->x, widget->y, - WIDGET_CHOICEGROUP_WIDTH, - WIDGET_CHOICEGROUP_HEIGHT, - MOUSE_BUF_CLICK)) { - choice_group_set_active(widget); - } -} - -void choice_group_destroy(widget_t *widget) -{ - widget_choicegroup_t *p; - int my_index; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CHOICE); - - p = (widget_choicegroup_t *) widget->private_data; - my_index = list_search(p->list, widget); - assert(my_index != -1); - list_del(p->list, my_index); - - free(p); - widget_destroy(widget); -} diff --git a/src/widget/widget_choicegroup.h b/src/widget/widget_choicegroup.h deleted file mode 100644 index 9bdadfc..0000000 --- a/src/widget/widget_choicegroup.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef WIDGET_CHOICEGROUP_H -#define WIDGET_CHOICEGROUP_H - -#include "main.h" -#include "list.h" -#include "widget.h" - -#define WIDGET_CHOICEGROUP_TIME_SWITCH_STATUS 5 - -#define WIDGET_CHOICEGROUP_WIDTH 25 -#define WIDGET_CHOICEGROUP_HEIGHT 25 - -typedef struct widget_choicegroup { - bool_t status; - int time; - void (*fce_event) (void *); - list_t *list; -} widget_choicegroup_t; - -extern widget_t *choice_group_new(int x, int y, bool_t status, list_t *list, void (*fce_event) (void *)); - -extern void choice_group_draw(widget_t *p); -extern void choice_group_set_active(widget_t *widget); -extern bool_t choice_group_get_status(widget_t *widget); -extern void choiceGroup_set_status(widget_t *widget, bool_t status); -extern void choice_group_event(widget_t *p); -extern void choice_group_destroy(widget_t *p); - -#endif /* WIDGET_CHOICEGROUP_H */ diff --git a/src/widget/widget_container.c b/src/widget/widget_container.c deleted file mode 100644 index 5de850c..0000000 --- a/src/widget/widget_container.c +++ /dev/null @@ -1,108 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "widget.h" -#include "widget_container.h" - -widget_t *widget_container_new(int x, int y, int w, int h) -{ - widget_container_t *new; - - new = malloc(sizeof(widget_container_t)); - new->listWidget = list_new(); - - return widget_new(WIDGET_TYPE_CONTAINER, x, y, w, h, new); -} - -void widget_container_add(widget_t *widget, widget_t *widget_add) -{ - widget_container_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CONTAINER); - - p = (widget_container_t *) widget->private_data; - list_add(p->listWidget, widget_add); -} - -void widget_set_layout_table(widget_t *widget, int countW, int countH, int w, int h) -{ - widget_container_t *p; - int i, j; - int count; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CONTAINER); - - p = (widget_container_t *) widget->private_data; - - count = 0; - - for (i = 0; i < countH; i++) { - for (j = 0; j < countW; j++) { - widget_t *widget_tmp; - - if (count >= p->listWidget->count) { - break; - } - - widget_tmp = (widget_t *) p->listWidget->list[count]; - - widget_set_location(widget_tmp, widget->x + j * w, widget->y + i * h); - count++; - } - } -} - -void widget_container_draw(widget_t *widget) -{ - widget_container_t *p; - int i; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CONTAINER); - - p = (widget_container_t *) widget->private_data; - - for (i = 0; i < p->listWidget->count; i++) { - widget_t *widget; - - widget = (widget_t *) p->listWidget->list[i]; - - widget_draw(widget); - } -} - -void widget_container_event(widget_t *widget) -{ - widget_container_t *p; - int i; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CONTAINER); - - p = (widget_container_t *) widget->private_data; - - for (i = 0; i < p->listWidget->count; i++) { - widget_t *widget; - - widget = (widget_t *) p->listWidget->list[i]; - - widget_event(widget); - } -} - -void widget_container_destroy(widget_t *widget) -{ - widget_container_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CONTAINER); - - p = (widget_container_t *) widget->private_data; - list_destroy(p->listWidget); - free(p); - - widget_destroy(widget); -} diff --git a/src/widget/widget_container.h b/src/widget/widget_container.h deleted file mode 100644 index 8d9320c..0000000 --- a/src/widget/widget_container.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef WIDGET_CONTAINER_H -#define WIDGET_CONTAINER_H - -#include "list.h" -#include "widget.h" - -typedef struct widget_container { - list_t *listWidget; -} widget_container_t; - -extern widget_t *widget_container_new(int x, int y, int w, int h); -extern void widget_container_add(widget_t *widget, widget_t *widget_add); -extern void widget_set_layout_table(widget_t *widget, int countW, int countH, int w, int h); -extern void widget_container_draw(widget_t *widget); -extern void widget_container_event(widget_t *widget); -extern void widget_container_destroy(widget_t *widget); - -#endif /* WIDGET_CONTAINER_H */ diff --git a/src/widget/widget_image.c b/src/widget/widget_image.c deleted file mode 100644 index 51f935a..0000000 --- a/src/widget/widget_image.c +++ /dev/null @@ -1,51 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include <stdlib.h> -#include "main.h" -#include "image.h" -#include "interface.h" -#include "font.h" - -#include "widget.h" -#include "widget_image.h" - -widget_t *wid_image_new(int x, int y, image_t *image) -{ - widget_image_t *new; - - new = malloc(sizeof(widget_image_t)); - new->image = image; - - return widget_new(WIDGET_TYPE_IMAGE, x, y, image->w, image->h, new); -} - -void wid_image_draw(widget_t *widget) -{ - widget_image_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_IMAGE); - - p = (widget_image_t *) widget->private_data; - image_draw(p->image, widget->x, widget->y, 0, 0, p->image->w, p->image->h); -} - -void wid_image_event(widget_t *widget) -{ - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_IMAGE); -} - -void wid_image_destroy(widget_t *widget) -{ - widget_image_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_IMAGE); - - p = (widget_image_t *) widget->private_data; - - free(p); - widget_destroy(widget); -} diff --git a/src/widget/widget_image.h b/src/widget/widget_image.h deleted file mode 100644 index ad7104d..0000000 --- a/src/widget/widget_image.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef WIDGET_IMAGE_H -#define WIDGET_IMAGE_H - -#include "main.h" -#include "interface.h" -#include "widget.h" - -typedef struct widget_image { - image_t *image; -} widget_image_t; - -extern widget_t *wid_image_new(int x, int y, image_t *image); -extern void wid_image_draw(widget_t *p); -extern void wid_image_event(widget_t *p); -extern void wid_image_destroy(widget_t *p); - -#endif /* WIDGET_IMAGE_H */ diff --git a/src/widget/widget_label.c b/src/widget/widget_label.c deleted file mode 100644 index b696302..0000000 --- a/src/widget/widget_label.c +++ /dev/null @@ -1,66 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "interface.h" -#include "font.h" -#include "widget_label.h" -#include "widget.h" - -widget_t *label_new(char *text, int x, int y, int bind) -{ - widget_label_t *new; - - new = malloc(sizeof(widget_label_t)); - new->text = strdup(text); - new->bind = bind; - font_text_size(text, &(new->w), &(new->h)); - - return widget_new(WIDGET_TYPE_LABEL, x, y, new->w, new->h, new); -} - -void label_draw(widget_t *widget) -{ - widget_label_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_LABEL); - - p = (widget_label_t *) widget->private_data; - - switch (p->bind) { - case WIDGET_LABEL_RIGHT: - font_draw(p->text, widget->x - p->w, widget->y + p->h / 2, COLOR_WHITE); - break; - case WIDGET_LABEL_LEFT: - font_draw(p->text, widget->x, widget->y + widget->h / 2, COLOR_WHITE); - break; - case WIDGET_LABEL_CENTER: - font_draw(p->text, widget->x - p->w / 2, widget->y + p->h / 2, COLOR_WHITE); - break; - default: - fatal("Unknown dimension for label placement"); - break; - } -} - -void label_event(widget_t *widget) -{ - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_LABEL); -} - -void label_destroy(widget_t *widget) -{ - widget_label_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_LABEL); - - p = (widget_label_t *) widget->private_data; - - free(p->text); - free(p); - - widget_destroy(widget); -} diff --git a/src/widget/widget_label.h b/src/widget/widget_label.h deleted file mode 100644 index bd1b531..0000000 --- a/src/widget/widget_label.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef WIDGET_LABEL_H -#define WIDGET_LABEL_H - -#include "main.h" -#include "widget.h" - -#define WIDGET_LABEL_RIGHT 1 -#define WIDGET_LABEL_LEFT 2 -#define WIDGET_LABEL_CENTER 3 - -typedef struct widget_label { - int w, h; - char *text; - int bind; -} widget_label_t; - -extern widget_t *label_new(char *text, int x, int y, int bind); -extern void label_draw(widget_t *widget); -extern void label_event(widget_t *widget); -extern void label_destroy(widget_t *widget); - -#endif /* WIDGET_LABEL_H */ diff --git a/src/widget/widget_select.c b/src/widget/widget_select.c deleted file mode 100644 index 13ce483..0000000 --- a/src/widget/widget_select.c +++ /dev/null @@ -1,168 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "interface.h" -#include "font.h" -#include "mouse_buffer.h" - -#include "widget.h" -#include "widget_select.h" - -widget_t *select_new(int x, int y, void (*fce_event) (void *)) -{ - widget_select_t *new; - - new = malloc(sizeof(widget_select_t)); - new->select = -1; - new->fce_event = fce_event; - new->list = list_new(); - - return widget_new(WIDGET_TYPE_SELECT, x, y, 0, 0, new); -} - -char *select_get_item(widget_t *widget) -{ - widget_select_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_SELECT); - - p = (widget_select_t *) widget->private_data; - - if (p->select == -1) { - return NULL; - } - - return (char *) p->list->list[p->select]; -} - -int select_get_index(widget_t *widget) -{ - widget_select_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_SELECT); - - p = (widget_select_t *) widget->private_data; - - return p->select; -} - -void select_add(widget_t *widget, char *s) -{ - widget_select_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_SELECT); - - p = (widget_select_t *) widget->private_data; - - list_add(p->list, strdup(s)); -} - -void select_remove_all(widget_t *widget) -{ - widget_select_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_SELECT); - - p = (widget_select_t *) widget->private_data; - - while (p->list->count > 0) { - list_del_item(p->list, 0, free); - } -} - -void select_draw(widget_t *widget) -{ - widget_select_t *p; - int x, y, w, h; - int i; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_SELECT); - - interface_get_mouse_position(&x, &y); - p = (widget_select_t *) widget->private_data; - - for (i = 0; i < p->list->count; i++) { - char *line; - - line = (char *) p->list->list[i]; - - font_text_size(line, &w, &h); -/* - if (x > widget->x && y > widget->y + i * 20 && - x < widget->x + w && y < widget->y + i * 20 + h) { - font_draw(line, widget->x, widget->y + i * 20, COLOR_YELLOW); - } else { - if (p->select == i) { - font_draw(line, widget->x, widget->y + i * 20, COLOR_RED); - } else { - font_draw(line, widget->x, widget->y + i * 20, COLOR_WHITE); - } - } -*/ - if (mouse_buffer_is_on_area(widget->x, widget->y + i * 20, - w, h, MOUSE_BUF_MOTION)) { - font_draw(line, widget->x, widget->y + i * 20, COLOR_YELLOW); - } else { - if (p->select == i) { - font_draw(line, widget->x, widget->y + i * 20, COLOR_RED); - } else { - font_draw(line, widget->x, widget->y + i * 20, COLOR_WHITE); - } - } - - } -} - -void select_event(widget_t *widget) -{ - widget_select_t *p; - int x, y, w, h; - int i; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_SELECT); - - p = (widget_select_t *) widget->private_data; - interface_get_mouse_position(&x, &y); - - for (i = 0; i < p->list->count; i++) { - char *line; - - line = (char *) p->list->list[i]; - - font_text_size(line, &w, &h); - - if (mouse_buffer_is_on_area(widget->x, widget->y+i * 20, w, h, MOUSE_BUF_CLICK)) { - p->select = i; - p->fce_event(p); - } -/* - if (x > widget->x && y > widget->y + i * 20 && - x < widget->x + w && y < widget->y + i * 20 + h && - interface_is_mouse_clicket()) { - p->select = i; - p->fce_event(p); - } -*/ - } -} - -void select_destroy(widget_t *widget) -{ - widget_select_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_SELECT); - - p = (widget_select_t *) widget->private_data; - - list_destroy_item(p->list, free); - free(p); - widget_destroy(widget); -} diff --git a/src/widget/widget_select.h b/src/widget/widget_select.h deleted file mode 100644 index 11116a9..0000000 --- a/src/widget/widget_select.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef WIDGET_SELECT_H -#define WIDGET_SELECT_H - -#include "main.h" -#include "list.h" -#include "widget.h" - -typedef struct widget_select { - int w, h; - list_t *list; - int select; - void (*fce_event) (void *); -} widget_select_t; - -extern widget_t *select_new(int x, int y, void (*fce_event) (void *)); -extern char *select_get_item(widget_t *widget); -extern int select_get_index(widget_t *widget); -extern void select_add(widget_t *widget, char *s); -extern void select_remove_all(widget_t *widget); -extern void select_draw(widget_t *widget); -extern void select_event(widget_t *widget); -extern void select_destroy(widget_t *widget); - -#endif /* WIDGET_SELECT_H */ diff --git a/src/widget/widget_statusbar.c b/src/widget/widget_statusbar.c deleted file mode 100644 index c2b48a4..0000000 --- a/src/widget/widget_statusbar.c +++ /dev/null @@ -1,146 +0,0 @@ -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "interface.h" -#include "image.h" -#include "font.h" -#include "widget_statusbar.h" -#include "widget.h" -#include "mouse_buffer.h" - -typedef struct item_struct { - widget_t *widget; - list_t *text; -} item_t; - -static item_t *item_new(widget_t *widget, char *text) -{ - item_t *item; - char *copy; - char *s; - - assert(widget != NULL); - assert(text != NULL); - - item = malloc(sizeof(item_t)); - item->widget = widget; - item->text = list_new(); - - copy = strdup(text); - - s = strtok(copy, "\n"); - - while(s != NULL) { - list_add(item->text, strdup(s)); - s = strtok(NULL, "\n"); - } - - free(copy); - - return item; -} - -static void item_destroy(item_t *item) -{ - assert(item != NULL); - - list_destroy_item(item->text, free); - free(item); -} - -widget_t *statusbar_new(int x, int y) -{ - widget_statusbar_t *new; - - new = malloc(sizeof(widget_statusbar_t)); - new->selectElement = WIDGET_STATUSBAR_NONE_SELECT_ELEMENT; - new->listElement = list_new(); - - return widget_new(WIDGET_TYPE_STATUSBAR, x, y, WIDGET_STATUSBAR_WIDTH, WIDGET_STATUSBAR_HEIGHT, new); -} - -void statusbar_add(widget_t *widget, widget_t *widget_catch, char *text) -{ - widget_statusbar_t *p; - - assert(widget != NULL); - assert(widget_catch != NULL); - assert(text != NULL); - assert(widget->type == WIDGET_TYPE_STATUSBAR); - - p = (widget_statusbar_t *) widget->private_data; - - list_add(p->listElement, item_new(widget_catch, text)); -} - -void statusbar_draw(widget_t *widget) -{ - static image_t *g_image = NULL; - widget_statusbar_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_STATUSBAR); - - p = (widget_statusbar_t *) widget->private_data; - - if (g_image == NULL) { - g_image = image_add("frame.png", IMAGE_ALPHA, "frame", IMAGE_GROUP_BASE); - } - - image_draw(g_image, widget->x, widget->y, 0, 0, g_image->w, g_image->h); - - if (p->selectElement != WIDGET_STATUSBAR_NONE_SELECT_ELEMENT) { - item_t *item; - int i; - - item = (item_t *) p->listElement->list[p->selectElement]; - - for (i = 0 ; i < item->text->count; i++) { - char *s; - - s = (char *) item->text->list[i]; - font_draw(s, widget->x, widget->y + i * (font_get_size() + 5), COLOR_WHITE); - } - } -} - -void statusbar_event(widget_t *widget) -{ - widget_statusbar_t *p; - int i; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_STATUSBAR); - - p = (widget_statusbar_t *) widget->private_data; - - p->selectElement = WIDGET_STATUSBAR_NONE_SELECT_ELEMENT; - - for (i = 0 ; i < p->listElement->count; i++) { - item_t *item; - - item = (item_t *) p->listElement->list[i]; - - if (mouse_buffer_is_on_area(item->widget->x, item->widget->y, - item->widget->w, item->widget->h, - MOUSE_BUF_MOTION)) { - p->selectElement = i; - } - } -} - -void statusbar_destroy(widget_t *widget) -{ - widget_statusbar_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_STATUSBAR); - - p = (widget_statusbar_t *) widget->private_data; - - list_destroy_item(p->listElement, item_destroy); - free(p); - - widget_destroy(widget); -} diff --git a/src/widget/widget_statusbar.h b/src/widget/widget_statusbar.h deleted file mode 100644 index 217c1a5..0000000 --- a/src/widget/widget_statusbar.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef WIDGET_STATUSBAR_H -#define WIDGET_STATUSBAR_H - -#include "main.h" -#include "widget.h" -#include "list.h" - -typedef struct widget_statusbar { - list_t *listElement; - int selectElement; -} widget_statusbar_t; - -#define WIDGET_STATUSBAR_NONE_SELECT_ELEMENT -1 - -#define WIDGET_STATUSBAR_WIDTH 250 -#define WIDGET_STATUSBAR_HEIGHT 65 - -extern widget_t *statusbar_new(int x, int y); -extern void statusbar_add(widget_t *widget, widget_t *widget_catch, char *text); -extern void statusbar_draw(widget_t *widget); -extern void statusbar_event(widget_t *widget); -extern void statusbar_destroy(widget_t *widget); - -#endif /* WIDGET_STATUSBAR_H */ diff --git a/src/widget/widget_textfield.c b/src/widget/widget_textfield.c deleted file mode 100644 index 53d03a3..0000000 --- a/src/widget/widget_textfield.c +++ /dev/null @@ -1,284 +0,0 @@ -#include <stdlib.h> -#include <assert.h> -#include <SDL_keyboard.h> - -#include "main.h" -#include "interface.h" -#include "font.h" -#include "image.h" -#include "mouse_buffer.h" - -#include "widget.h" -#include "widget_textfield.h" - -#include "keyboardBuffer.h" - -widget_t *text_field_new(char *text, int filter, int x, int y) -{ - widget_textfield_t *new; - - new = malloc(sizeof(widget_textfield_t)); - memset(new, 0, sizeof(widget_textfield_t)); - - strcpy(new->text, text); - new->time = 0; - new->timeBlick = 0; - new->atime = 0; - new->active = FALSE; - new->filter = filter; - font_text_size(text, &new->w, &new->h); - - return widget_new(WIDGET_TYPE_TEXTFILED, x, y, WIDGET_TEXTFIELD_WIDTH, WIDGET_TEXTFIELD_HEIGHT, new); -} - -static void drawBackground(widget_t *widget) -{ - static image_t *g_textfield0 = NULL; - static image_t *g_textfield1 = NULL; - widget_textfield_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_TEXTFILED); - - p = (widget_textfield_t *) widget->private_data; - - if (g_textfield0 == NULL) { - g_textfield0 = image_add("textfield0.png", IMAGE_ALPHA, "textfiled0", IMAGE_GROUP_BASE); - } - - if (g_textfield1 == NULL) { - g_textfield1 = image_add("textfield1.png", IMAGE_ALPHA, "textfiled1", IMAGE_GROUP_BASE); - } - - if (p->active) { - image_draw(g_textfield1, widget->x, widget->y, 0, 0, g_textfield1->w, g_textfield1->h); - } else { - image_draw(g_textfield0, widget->x, widget->y, 0, 0, g_textfield0->w, g_textfield0->h); - } -} - -static void drawText(widget_t *widget) -{ - char str[STR_SIZE]; - widget_textfield_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_TEXTFILED); - - p = (widget_textfield_t *) widget->private_data; - - strcpy(str, p->text); - - if (p->timeBlick > WIDGET_TEXTFIELD_TIME_BLICK_CURSOR / 2 && p->active == TRUE) { - strcat(str, "\f"); - } - - p->timeBlick++; - - if (p->timeBlick == WIDGET_TEXTFIELD_TIME_BLICK_CURSOR) { - p->timeBlick = 0; - } - - /* - font_draw(str, p->x+WIDGET_TEXTFIELD_TEXT_OFFSET_X, p->y+p->h/2, COLOR_WHITE); - printf("p->y: %d\nheight: %d\n p->h: %d\n", p->y, WIDGET_TEXTFIELD_HEIGHT, p->h); - */ - - font_draw(str, widget->x + WIDGET_TEXTFIELD_TEXT_OFFSET_X, - widget->y + WIDGET_TEXTFIELD_HEIGHT / 2 - p->h / 2, - COLOR_WHITE); -} - -void text_field_draw(widget_t *widget) -{ - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_TEXTFILED); - - drawBackground(widget); - drawText(widget); -} - -void text_field_set_text(widget_t *widget, char *text) -{ - widget_textfield_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_TEXTFILED); - - p = (widget_textfield_t *) widget->private_data; - - memset(p->text, 0, STR_SIZE); - strcpy(p->text, text); - font_text_size(text, &p->w, &p->h); -} - -char *text_field_get_text(widget_t *widget) -{ - widget_textfield_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_TEXTFILED); - - p = (widget_textfield_t *) widget->private_data; - return p->text; -} - -static void checkText(widget_textfield_t *p, unsigned len) -{ - unsigned int i; - - for (i = 0; i < len; i++) { - char c; - bool_t isDel; - - c = p->text[i]; - isDel = TRUE; - - switch (p->filter) { - case WIDGET_TEXTFIELD_FILTER_ALL: - isDel = FALSE; - break; - - case WIDGET_TEXTFIELD_FILTER_NUM: - if (c >= '0' && c <= '9') { - isDel = FALSE; - } - break; - - case WIDGET_TEXTFIELD_FILTER_ALPHANUM: - if ((c >= '0' && c <= '9') || - (c >= 'a' && c <= 'z') || - (c >= 'A' && c <= 'Z') || - (c == '_' || c == '-')) { - isDel = FALSE; - } - break; - - case WIDGET_TEXTFIELD_FILTER_IP_OR_DOMAIN: - if ((c >= '0' && c <= '9') || - (c == '.' || c == ':' || c == '-') || - (c >= 'a' && c <= 'z') || - (c >= 'A' && c <= 'Z')) { - isDel = FALSE; - } - break; - - default: - fatal("Bad text filter!"); - break; - } - - if (isDel) { - memmove(p->text + i, p->text + i + 1, len - i); - len = strlen(p->text); - i--; - } - } - - font_text_size(p->text, &p->w, &p->h); -} - - -static void readKey(widget_textfield_t *p) -{ - int len; - int i; - - if (p->active == FALSE) { - return; - } - - len = strlen(p->text); - - for (i = 0; keyboard_buffer_is_any_key(); i++) { - SDL_keysym k = keyboard_buffer_pop(); - - char *name = (char *) SDL_GetKeyName(k.sym); - - if (!name) { - continue; - } - - if (len >= STR_SIZE) { - break; - } - - if (k.sym == SDLK_RETURN) { - break; - } - - char c = '\0'; - - switch (strlen(name)) { - case 1: - c = name[0]; - break; - - case 3: - c = name[1]; - break; - } - - if ((k.unicode & 0xFF80) == 0) { - c = k.unicode & 0x7F; - } - - if (k.sym == SDLK_SPACE || k.sym == SDLK_TAB) { - c = ' '; - } else if (k.sym == SDLK_BACKSPACE) { - if (len > 0) { - p->text[len-1] = '\0'; - checkText(p, len); - } - - break; - } - - if (c == '\0' || p->w > WIDGET_TEXTFIELD_WIDTH - 40) { - continue; - } - - p->text[len] = c; - - len++; - checkText(p, len); - } -} - -void text_field_event(widget_t *widget) -{ - widget_textfield_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_TEXTFILED); - - p = (widget_textfield_t *) widget->private_data; - - if (mouse_buffer_is_on_area(0, 0, 0, 0, MOUSE_BUF_AREA_NONE|MOUSE_BUF_CLICK)) { - if (mouse_buffer_is_on_area(widget->x, widget->y, - WIDGET_TEXTFIELD_WIDTH, - WIDGET_TEXTFIELD_HEIGHT, - MOUSE_BUF_MOTION)) { - p->active = TRUE; - interface_enable_keyboard_buffer(); - keyboard_buffer_clear(); - } else { - p->active = FALSE; - } - } - - readKey(p); -} - -void text_field_destroy(widget_t *widget) -{ - widget_textfield_t *p; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_TEXTFILED); - - p = (widget_textfield_t *) widget->private_data; - - free(p); - widget_destroy(widget); -} diff --git a/src/widget/widget_textfield.h b/src/widget/widget_textfield.h deleted file mode 100644 index ef55b5f..0000000 --- a/src/widget/widget_textfield.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef WIDGET_TEXTFIELD_H -#define WIDGET_TEXTFIELD_H - -#include "main.h" -#include "widget.h" - -#define WIDGET_TEXTFIELD_WIDTH 175 -#define WIDGET_TEXTFIELD_HEIGHT 36 - -#define WIDGET_TEXTFIELD_TEXT_OFFSET_X 10 - -#define WIDGET_TEXTFIELD_TIME_MULTIPLE 10 -#define WIDGET_TEXTFIELD_TIME_READ_KEY 2 -#define WIDGET_TEXTFIELD_TIME_BLICK_CURSOR 20 - -#define WIDGET_TEXTFIELD_FILTER_ALL 0 -#define WIDGET_TEXTFIELD_FILTER_NUM 2 -#define WIDGET_TEXTFIELD_FILTER_ALPHANUM 3 -#define WIDGET_TEXTFIELD_FILTER_IP_OR_DOMAIN 4 - -typedef struct widget_textfield { - int w, h; - int canWrite; - int timeBlick; - int time; - int atime; - int filter; - char text[STR_SIZE]; - bool_t active; -} widget_textfield_t; - -extern widget_t *text_field_new(char *text, int filter, int x, int y); -extern void text_field_set_text(widget_t *widget, char *text); -extern char *text_field_get_text(widget_t *widget); -extern void text_field_draw(widget_t *widget); -extern void text_field_event(widget_t *widget); -extern void text_field_destroy(widget_t *widget); - -#endif /* WIDGET_TEXTFIELD_H */ diff --git a/src/window.c b/src/window.c new file mode 100644 index 0000000..fdcd31f --- /dev/null +++ b/src/window.c @@ -0,0 +1,51 @@ +/* + * Tuxánci 2 - A first person shooter + * Copyright (C) 2007-2011 Tuxánci Development Team + * Copyright (C) 2025-2026 Connor Thomson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include <stdbool.h> +#include "ta_sdl.h" +#include "version.h" +#include "logging.h" + +#define TA_DEFAULT_WINDOW_TITLE "Tuxánci " TA_VERSION +#define TA_DEFAULT_WINDOW_WIDTH 1920 +#define TA_DEFAULT_WINDOW_HEIGHT 1080 + +int ta_window_width = TA_DEFAULT_WINDOW_WIDTH; +int ta_window_height = TA_DEFAULT_WINDOW_HEIGHT; +bool ta_window_fullscreen = true; + +SDL_Window *ta_window; + +void ta_window_init(void) { + ta_sdl_init(SDL_INIT_VIDEO); + + ta_window = ta_sdl_create_window(TA_DEFAULT_WINDOW_TITLE, TA_DEFAULT_WINDOW_WIDTH, TA_DEFAULT_WINDOW_HEIGHT); +} + +void ta_window_update(void) { + ta_sdl_get_window_size(ta_window, &ta_window_width, &ta_window_height); + ta_sdl_set_window_fullscreen(ta_window, ta_window_fullscreen); +} + +void ta_window_shutdown(void) { + if (ta_window) { + ta_log("Destroying SDL window"); + SDL_DestroyWindow(ta_window); + } +}
\ No newline at end of file |