diff --git a/.gitattributes b/.gitattributes
index 80046a82c..e1f831381 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -87,3 +87,4 @@ menu.dat !filter !diff !merge text
# Model
#
*.glb filter=lfs diff=lfs merge=lfs -text
+*.stl filter=lfs diff=lfs merge=lfs -text
diff --git a/.gitignore b/.gitignore
index 8f40fc011..170ab7fc5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,6 +16,8 @@ docs/Manual.html
docs/Manual.pdf
docs/.asciidoctor/
.claude/settings.local.json
+**/__pycache__/
+/util/perl/
# Extracted by the binary when it is run from here; never source.
/Singe/
diff --git a/CHANGELOG b/CHANGELOG
index abfb7aae9..25a042d91 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -25,7 +25,10 @@ API Changes
velocities, forces and impulses; triggers; hinge, ball and slider
joints with limits; a raycast; onCollision and onTrigger callbacks.
The world steps at a fixed 60 Hz between animation and rendering and
- pauses with the game. New calls: body*, joint*, physics*, and the
+ pauses with the game. physicsSet2D keeps bodies in a plane for 2D
+ games, which need no GPU (nodes now exist on every machine, so a
+ Raspberry Pi 3 gets 2D physics without 3D). New calls: body*,
+ joint*, physics*, and the
BODY_*, SHAPE_* and JOINT_* constants; see the Physics chapter. Needs
SSE4.1 on x86 (2008 and later); the engine's first C++ (one wrapper
file and the library), statically linked, no runtime to install.
@@ -35,8 +38,8 @@ API Changes
colour, textures from sprites, the disc or a loaded video, metallic and
roughness, up to eight lights each able to cast shadows (cube maps for
point lights), any node as the camera, and glTF 2.0
- models (.glb, self-contained) with node animation and skinning, placed
- any number of times. Everything is a node in one tree. New calls:
+ models (.glb, self-contained) with node animation, skinning and morph
+ targets, placed any number of times. Everything is a node in one tree. New calls:
scene*, node*, mesh*, material*, light*, camera*, model*, animation*,
and the LIGHT_* constants; see the 3D Scenes chapter of the manual.
Needs a GPU with Vulkan, Direct3D 12 or Metal (Raspberry Pi 4 or
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cc8cd8193..d6e3019d9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -624,6 +624,25 @@ foreach(imageLib libjpeg.a libpng16.a)
endif()
endforeach()
+# The scene shaders: src/shaders/scene.hlsl compiled at build time into a header of SPIR-V, DXIL
+# and MSL blobs by SDL_shadercross, which the superbuild builds for the host (cmake/hostTools.cmake)
+# and names in SINGE_SHADERCROSS; configuring this project alone finds one on the PATH.
+if(NOT SINGE_SHADERCROSS)
+ find_program(SINGE_SHADERCROSS shadercross)
+ if(NOT SINGE_SHADERCROSS)
+ message(FATAL_ERROR "SDL_shadercross is needed to compile the scene shaders; build through the superbuild (cmake --preset ...) or set SINGE_SHADERCROSS.")
+ endif()
+endif()
+set(shaderHeader ${CMAKE_BINARY_DIR}/generated/shaders/sceneShaders.h)
+add_custom_command(
+ OUTPUT ${shaderHeader}
+ COMMAND ${CMAKE_COMMAND} -DSHADERCROSS=${SINGE_SHADERCROSS} -DSOURCE=${CMAKE_SOURCE_DIR}/src/shaders/scene.hlsl -DOUTPUT=${shaderHeader} -P ${CMAKE_SOURCE_DIR}/cmake/shaderHeader.cmake
+ DEPENDS ${CMAKE_SOURCE_DIR}/src/shaders/scene.hlsl ${CMAKE_SOURCE_DIR}/cmake/shaderHeader.cmake
+ COMMENT "Compiling the scene shaders"
+)
+target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${shaderHeader})
+target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_BINARY_DIR}/generated)
+
# Jolt Physics comes with the compile definitions it was built with (SIMD level, layer bits) through
# its exported target; the one C++ file in the tree (physicsJolt.cpp) needs them. Its C++ runtime is
# zig's own libc++, linked statically, or the host's libstdc++ under gcc; macOS already lists -lc++.
diff --git a/INSTALL b/INSTALL
index ff1512559..911d8ac5f 100644
--- a/INSTALL
+++ b/INSTALL
@@ -96,6 +96,15 @@ builds the Apple silicon and Intel presets (macos-aarch64, macos-x86_64)
and joins them with llvm-lipo into Singe-v3.00-Macos-universal. Either
architecture alone is ./build-all.sh macos aarch64 or x86_64.
+The 3D scene's shaders are HLSL, compiled when Singe is built. The
+superbuild builds SDL_shadercross and SPIRV-Cross for the host machine
+once (into .builddir/toolchains/host, shared by every preset) and fetches
+Microsoft's prebuilt DirectX Shader Compiler, which SDL_shadercross
+drives, into .builddir/toolchains/dxc. That prebuilt package exists for
+x86_64 Linux hosts; on another host, unpack a DirectX Shader Compiler
+release (lib/libdxcompiler.so, lib/libdxil.so, include/dxc/dxcapi.h) at
+that path yourself, or build it from source there.
+
The Raspberry Pi build (64-bit Raspberry Pi OS, glibc 2.31 or newer)
also uses zig. The platform headers and libraries it links against are
Debian bookworm arm64 packages listed in cmake/zig/piPackages.cmake,
diff --git a/LICENSES b/LICENSES
index be65a137f..0848d0d61 100644
--- a/LICENSES
+++ b/LICENSES
@@ -6,6 +6,7 @@ these tools, Singe would not exist.
arg_parser BSD-2-Clause http://savannah.nongnu.org/projects/arg-parser
binaryheap.lua MIT http://tieske.github.io/binaryheap.lua
cgltf MIT https://github.com/jkuhlmann/cgltf
+DirectXShaderCompiler NCSA https://github.com/microsoft/DirectXShaderCompiler (prebuilt, downloaded at build time; host tool only)
copas MIT https://lunarmodules.github.io/copas
ffmpeg LGPL-2.1 https://ffmpeg.org
freetype FTL https://freetype.org
@@ -27,9 +28,11 @@ openssl Apache-2.0 https://www.openssl.org
opus BSD-3-Clause https://opus-codec.org
opusfile BSD-3-Clause https://opus-codec.org
SDL3 Zlib https://www.libsdl.org
+SDL_shadercross Zlib https://github.com/libsdl-org/SDL_shadercross (host tool only)
SDL3_image Zlib https://www.libsdl.org
SDL3_mixer Zlib https://www.libsdl.org
SDL3_ttf Zlib https://www.libsdl.org
+SPIRV-Cross Apache-2.0 https://github.com/KhronosGroup/SPIRV-Cross (host tool only)
sqlite Public-Domain https://sqlite.org
timerwheel.lua MIT https://tieske.github.io/timerwheel.lua
uthash BSD-1-Clause https://troydhanson.github.io/uthash
diff --git a/assets/Dragon.mtl b/assets/Dragon.mtl
new file mode 100644
index 000000000..0eacd58c4
--- /dev/null
+++ b/assets/Dragon.mtl
@@ -0,0 +1,34 @@
+# Materials for Dragon.obj
+newmtl dark
+Ka 0.060 0.062 0.066
+Kd 0.300 0.310 0.330
+Ks 0.700 0.700 0.700
+Ns 180.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.80
+Pr 0.35
+
+newmtl champagne
+Ka 0.144 0.128 0.108
+Kd 0.720 0.640 0.540
+Ks 0.850 0.800 0.700
+Ns 120.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.80
+Pr 0.40
+
+newmtl glass
+Ka 0.176 0.184 0.180
+Kd 0.880 0.920 0.900
+Ks 0.950 0.950 0.950
+Ns 300.0
+d 0.55
+Ni 1.50
+illum 4
+Pm 0.00
+Pr 0.15
+
diff --git a/assets/Dragon.obj b/assets/Dragon.obj
new file mode 100644
index 000000000..69b7f2f0e
--- /dev/null
+++ b/assets/Dragon.obj
@@ -0,0 +1,1339 @@
+# Singe dragon, extruded from the tiles of Dragon.jpeg by util/dragonObj.py
+# Units: 0.01 per image pixel; 34 tiles; Y up, front faces toward +Z, resting on Y = 0
+mtllib Dragon.mtl
+v -0.85000 7.13840 0.00000
+v 0.02790 6.26060 0.00000
+v 1.40680 6.21220 0.00000
+v -0.85000 7.13840 0.07000
+v 0.02790 6.26060 0.07000
+v 1.40680 6.21220 0.07000
+v -0.72302 7.05386 0.10000
+v 0.04076 6.29017 0.10000
+v 1.24041 6.24806 0.10000
+v -3.34790 6.35520 0.00000
+v -2.33020 5.07750 0.00000
+v -1.17830 4.56320 0.00000
+v -0.64280 5.01890 0.00000
+v -3.34790 6.35520 0.07000
+v -2.33020 5.07750 0.07000
+v -1.17830 4.56320 0.07000
+v -0.64280 5.01890 0.07000
+v -3.24072 6.26880 0.10000
+v -2.31129 5.10191 0.10000
+v -1.18334 4.59830 0.10000
+v -0.69697 5.01220 0.10000
+v 2.17370 5.96880 0.00000
+v 2.50350 6.22000 0.00000
+v 1.87540 6.22000 0.00000
+v 2.17370 5.96880 0.07000
+v 2.50350 6.22000 0.07000
+v 1.87540 6.22000 0.07000
+v 2.17464 6.00723 0.10000
+v 2.41460 6.19000 0.10000
+v 1.95760 6.19000 0.10000
+v 2.04140 5.58350 0.00000
+v 1.48390 5.01340 0.00000
+v 2.49750 5.22880 0.00000
+v 2.04140 5.58350 0.07000
+v 1.48390 5.01340 0.07000
+v 2.49750 5.22880 0.07000
+v 2.04412 5.54338 0.10000
+v 1.57473 5.06337 0.10000
+v 2.42815 5.24473 0.10000
+v 0.67430 5.14050 0.00000
+v 0.35930 4.67380 0.00000
+v 0.68030 3.96970 0.00000
+v 1.92250 2.27100 0.00000
+v 1.94530 3.33230 0.00000
+v 0.67430 5.14050 0.07000
+v 0.35930 4.67380 0.07000
+v 0.68030 3.96970 0.07000
+v 1.92250 2.27100 0.07000
+v 1.94530 3.33230 0.07000
+v 0.67480 5.08762 0.10000
+v 0.39357 4.67095 0.10000
+v 0.70633 3.98493 0.10000
+v 1.89441 2.36024 0.10000
+v 1.91510 3.32310 0.10000
+v -2.22390 0.69780 0.00000
+v -0.97620 1.99300 0.00000
+v -1.55650 3.09790 0.00000
+v -2.22390 0.69780 0.07000
+v -0.97620 1.99300 0.07000
+v -1.55650 3.09790 0.07000
+v -2.16322 0.80403 0.10000
+v -1.01283 1.99822 0.10000
+v -1.54787 3.01695 0.10000
+v 1.95750 1.44360 0.00000
+v 2.45110 0.90300 0.00000
+v 2.90950 2.25450 0.00000
+v 1.95750 1.44360 0.07000
+v 2.45110 0.90300 0.07000
+v 2.90950 2.25450 0.07000
+v 2.00059 1.44090 0.10000
+v 2.43901 0.96074 0.10000
+v 2.84615 2.16113 0.10000
+v -1.51280 0.11360 0.00000
+v -3.48900 1.46210 0.00000
+v -3.16650 0.16090 0.00000
+v -1.51280 0.11360 0.07000
+v -3.48900 1.46210 0.07000
+v -3.16650 0.16090 0.07000
+v -1.61426 0.14651 0.10000
+v -3.44097 1.39300 0.10000
+v -3.14286 0.19024 0.10000
+v 2.89000 0.18030 0.00000
+v 3.53350 0.97590 0.00000
+v 2.45710 0.90570 0.00000
+v 2.89000 0.18030 0.07000
+v 3.53350 0.97590 0.07000
+v 2.45710 0.90570 0.07000
+v 2.89372 0.23261 0.10000
+v 3.46710 0.94151 0.10000
+v 2.50800 0.87896 0.10000
+v 2.97380 0.08820 0.00000
+v 2.55590 0.69000 0.00000
+v 1.89060 0.69000 0.00000
+v 2.97380 0.08820 0.07000
+v 2.55590 0.69000 0.07000
+v 1.89060 0.69000 0.07000
+v 2.87553 0.17711 0.10000
+v 2.54021 0.66000 0.10000
+v 2.00637 0.66000 0.10000
+v 1.40490 6.63320 0.00000
+v 0.15500 7.40240 0.00000
+v 0.63260 6.70180 0.00000
+v 1.40490 6.63320 0.07000
+v 0.15500 7.40240 0.07000
+v 0.63260 6.70180 0.07000
+v 1.28081 6.67434 0.10000
+v 0.25892 7.30322 0.10000
+v 0.64939 6.73043 0.10000
+v 3.32850 5.52760 0.00000
+v 3.52140 5.91340 0.00000
+v 3.21270 6.35630 0.00000
+v 3.17420 5.78000 0.00000
+v 3.32850 5.52760 0.07000
+v 3.52140 5.91340 0.07000
+v 3.21270 6.35630 0.07000
+v 3.17420 5.78000 0.07000
+v 3.32587 5.58942 0.10000
+v 3.48659 5.91087 0.10000
+v 3.23694 6.26906 0.10000
+v 3.20477 5.78751 0.10000
+v 1.81500 6.25020 0.00000
+v 1.36960 6.20970 0.00000
+v 2.24650 5.61750 0.00000
+v 3.18500 5.80730 0.00000
+v 3.18500 6.12660 0.00000
+v 1.81500 6.25020 0.07000
+v 1.36960 6.20970 0.07000
+v 2.24650 5.61750 0.07000
+v 3.18500 5.80730 0.07000
+v 3.18500 6.12660 0.07000
+v 1.81501 6.22008 0.10000
+v 1.45616 6.18745 0.10000
+v 2.25287 5.64940 0.10000
+v 3.15500 5.83184 0.10000
+v 3.15500 6.09918 0.10000
+v 0.07120 4.35890 0.00000
+v 1.30060 6.17980 0.00000
+v 0.18720 5.64620 0.00000
+v 0.07120 4.35890 0.07000
+v 1.30060 6.17980 0.07000
+v 0.18720 5.64620 0.07000
+v 0.11154 4.47226 0.10000
+v 1.21388 6.10497 0.10000
+v 0.21555 5.62652 0.10000
+v 3.29410 5.31780 0.00000
+v 2.04850 5.59590 0.00000
+v 3.02810 4.79770 0.00000
+v 3.29410 5.31780 0.07000
+v 2.04850 5.59590 0.07000
+v 3.02810 4.79770 0.07000
+v 3.24975 5.29696 0.10000
+v 2.16588 5.53895 0.10000
+v 3.01829 4.84439 0.10000
+v 1.77750 3.63490 0.00000
+v 2.36480 2.64170 0.00000
+v 2.78390 3.34390 0.00000
+v 1.47720 4.90530 0.00000
+v 1.77750 3.63490 0.07000
+v 2.36480 2.64170 0.07000
+v 2.78390 3.34390 0.07000
+v 1.47720 4.90530 0.07000
+v 1.80565 3.64624 0.10000
+v 2.36492 2.70044 0.10000
+v 2.74722 3.34098 0.10000
+v 1.53556 4.78882 0.10000
+v 2.74490 3.35780 0.00000
+v 2.33820 2.62830 0.00000
+v 2.68710 2.09930 0.00000
+v 2.92820 2.31500 0.00000
+v 2.74490 3.35780 0.07000
+v 2.33820 2.62830 0.07000
+v 2.68710 2.09930 0.07000
+v 2.92820 2.31500 0.07000
+v 2.72998 3.26942 0.10000
+v 2.37328 2.62961 0.10000
+v 2.69300 2.14484 0.10000
+v 2.89577 2.32624 0.10000
+v 2.68730 2.09100 0.00000
+v 1.97310 3.26600 0.00000
+v 1.99610 1.52660 0.00000
+v 2.68730 2.09100 0.07000
+v 1.97310 3.26600 0.07000
+v 1.99610 1.52660 0.07000
+v 2.64810 2.09773 0.10000
+v 2.00455 3.15650 0.10000
+v 2.02528 1.58915 0.10000
+v -4.23430 2.88360 0.00000
+v -4.35570 1.38990 0.00000
+v -3.79710 2.10640 0.00000
+v -4.23430 2.88360 0.07000
+v -4.35570 1.38990 0.07000
+v -3.79710 2.10640 0.07000
+v -4.21235 2.78338 0.10000
+v -4.31767 1.48747 0.10000
+v -3.83304 2.10910 0.10000
+v 0.92450 0.79230 0.00000
+v 2.56980 0.69430 0.00000
+v 0.94630 2.50300 0.00000
+v 0.92450 0.79230 0.07000
+v 2.56980 0.69430 0.07000
+v 0.94630 2.50300 0.07000
+v 0.95486 0.82054 0.10000
+v 2.49871 0.72859 0.10000
+v 0.97532 2.42576 0.10000
+v -4.34800 1.31620 0.00000
+v -3.27470 0.25420 0.00000
+v -3.71540 2.15230 0.00000
+v -4.34800 1.31620 0.07000
+v -3.27470 0.25420 0.07000
+v -3.71540 2.15230 0.07000
+v -4.30823 1.31905 0.10000
+v -3.32741 0.34855 0.10000
+v -3.73013 2.08311 0.10000
+v 4.35770 0.12090 0.00000
+v 3.58310 0.99230 0.00000
+v 2.95590 0.19410 0.00000
+v 4.35770 0.12090 0.07000
+v 3.58310 0.99230 0.07000
+v 2.95590 0.19410 0.07000
+v 4.28760 0.15460 0.10000
+v 3.58452 0.94555 0.10000
+v 3.01522 0.22104 0.10000
+v 0.23300 0.10780 0.00000
+v -0.49920 0.97510 0.00000
+v -1.55810 0.15280 0.00000
+v 0.23300 0.10780 0.07000
+v -0.49920 0.97510 0.07000
+v -1.55810 0.15280 0.07000
+v 0.16700 0.13947 0.10000
+v -0.50355 0.93374 0.10000
+v -1.47329 0.18068 0.10000
+v 2.37220 6.26650 0.00000
+v 1.92740 6.54950 0.00000
+v 0.75300 6.59700 0.00000
+v 1.45590 6.21950 0.00000
+v 2.37220 6.26650 0.07000
+v 1.92740 6.54950 0.07000
+v 0.75300 6.59700 0.07000
+v 1.45590 6.21950 0.07000
+v 2.27679 6.29165 0.10000
+v 1.91811 6.51985 0.10000
+v 0.88203 6.56176 0.10000
+v 1.46272 6.24989 0.10000
+v 0.73630 5.17900 0.00000
+v 0.92890 4.91420 0.00000
+v 1.44610 5.05430 0.00000
+v 2.01640 5.64610 0.00000
+v 1.35430 6.10610 0.00000
+v 0.73630 5.17900 0.07000
+v 0.92890 4.91420 0.07000
+v 1.44610 5.05430 0.07000
+v 2.01640 5.64610 0.07000
+v 1.35430 6.10610 0.07000
+v 0.77285 5.17975 0.10000
+v 0.94100 4.94856 0.10000
+v 1.43025 5.08109 0.10000
+v 1.97036 5.64156 0.10000
+v 1.36230 6.06401 0.10000
+v -2.23140 3.70200 0.00000
+v -1.27090 4.52060 0.00000
+v -2.62000 5.12710 0.00000
+v -3.55740 5.46270 0.00000
+v -2.23140 3.70200 0.07000
+v -1.27090 4.52060 0.07000
+v -2.62000 5.12710 0.07000
+v -3.55740 5.46270 0.07000
+v -2.22661 3.74550 0.10000
+v -1.32644 4.51268 0.10000
+v -2.63122 5.09925 0.10000
+v -3.47312 5.40066 0.10000
+v 0.96360 4.82790 0.00000
+v 1.60430 3.91270 0.00000
+v 1.34280 4.98480 0.00000
+v 0.96360 4.82790 0.07000
+v 1.60430 3.91270 0.07000
+v 1.34280 4.98480 0.07000
+v 1.00962 4.81447 0.10000
+v 1.53733 4.06068 0.10000
+v 1.32194 4.94370 0.10000
+v 0.43030 3.14100 0.00000
+v -0.62440 4.93070 0.00000
+v -2.17380 3.64850 0.00000
+v -0.17160 3.21050 0.00000
+v 0.43030 3.14100 0.07000
+v -0.62440 4.93070 0.07000
+v -2.17380 3.64850 0.07000
+v -0.17160 3.21050 0.07000
+v 0.37384 3.17772 0.10000
+v -0.63238 4.88515 0.10000
+v -2.10723 3.66465 0.10000
+v -0.16666 3.24013 0.10000
+v -4.12680 2.91050 0.00000
+v -3.71260 2.17180 0.00000
+v -3.11790 2.83140 0.00000
+v -2.91480 3.84710 0.00000
+v -4.12680 2.91050 0.07000
+v -3.71260 2.17180 0.07000
+v -3.11790 2.83140 0.07000
+v -2.91480 3.84710 0.07000
+v -4.08797 2.90259 0.10000
+v -3.70688 2.22294 0.10000
+v -3.14570 2.84537 0.10000
+v -2.95995 3.77429 0.10000
+v 0.81590 3.69070 0.00000
+v 0.54830 3.06250 0.00000
+v 1.87920 1.55060 0.00000
+v 1.91580 2.17190 0.00000
+v 0.81590 3.69070 0.07000
+v 0.54830 3.06250 0.07000
+v 1.87920 1.55060 0.07000
+v 1.91580 2.17190 0.07000
+v 0.82271 3.63014 0.10000
+v 0.58331 3.06813 0.10000
+v 1.85354 1.62515 0.10000
+v 1.88522 2.16298 0.10000
+v -1.53380 3.20620 0.00000
+v -0.98000 2.13170 0.00000
+v 0.37130 3.04000 0.00000
+v -1.53380 3.20620 0.07000
+v -0.98000 2.13170 0.07000
+v 0.37130 3.04000 0.07000
+v -1.48221 3.17159 0.10000
+v -0.96877 2.17540 0.10000
+v 0.28405 3.01750 0.10000
+v -1.64230 3.11290 0.00000
+v -2.54070 2.27140 0.00000
+v -2.84090 1.14310 0.00000
+v -2.25050 0.73440 0.00000
+v -1.64230 3.11290 0.07000
+v -2.54070 2.27140 0.07000
+v -2.84090 1.14310 0.07000
+v -2.25050 0.73440 0.07000
+v -1.69684 3.02071 0.10000
+v -2.51392 2.25538 0.10000
+v -2.80649 1.15576 0.10000
+v -2.26888 0.78361 0.10000
+v 0.83520 2.59470 0.00000
+v 0.51260 2.96690 0.00000
+v 0.05410 2.72420 0.00000
+v -0.90340 2.05080 0.00000
+v 0.81410 0.78140 0.00000
+v 0.83520 2.59470 0.07000
+v 0.51260 2.96690 0.07000
+v 0.05410 2.72420 0.07000
+v -0.90340 2.05080 0.07000
+v 0.81410 0.78140 0.07000
+v 0.80507 2.58366 0.10000
+v 0.50555 2.92923 0.10000
+v 0.06981 2.69857 0.10000
+v -0.85211 2.05020 0.10000
+v 0.78478 0.84037 0.10000
+v -1.54470 0.24930 0.00000
+v -0.58470 1.00780 0.00000
+v -2.16090 0.72330 0.00000
+v -1.54470 0.24930 0.07000
+v -0.58470 1.00780 0.07000
+v -2.16090 0.72330 0.07000
+v -1.54495 0.28734 0.10000
+v -0.69743 0.95697 0.10000
+v -2.08895 0.70580 0.10000
+vt 0.40439 0.95306
+vt 0.50314 0.83586
+vt 0.65825 0.82940
+vt 0.40439 0.95306
+vt 0.50314 0.83586
+vt 0.65825 0.82940
+vt 0.41867 0.94177
+vt 0.50458 0.83981
+vt 0.63953 0.83419
+vt 0.12341 0.84849
+vt 0.23789 0.67790
+vt 0.36746 0.60924
+vt 0.42769 0.67008
+vt 0.12341 0.84849
+vt 0.23789 0.67790
+vt 0.36746 0.60924
+vt 0.42769 0.67008
+vt 0.13546 0.83696
+vt 0.24001 0.68116
+vt 0.36689 0.61393
+vt 0.42160 0.66919
+vt 0.74451 0.79690
+vt 0.78161 0.83044
+vt 0.71096 0.83044
+vt 0.74451 0.79690
+vt 0.78161 0.83044
+vt 0.71096 0.83044
+vt 0.74462 0.80203
+vt 0.77161 0.82644
+vt 0.72020 0.82644
+vt 0.72963 0.74546
+vt 0.66692 0.66935
+vt 0.78093 0.69810
+vt 0.72963 0.74546
+vt 0.66692 0.66935
+vt 0.78093 0.69810
+vt 0.72994 0.74010
+vt 0.67713 0.67602
+vt 0.77313 0.70023
+vt 0.57585 0.68632
+vt 0.54042 0.62401
+vt 0.57652 0.53000
+vt 0.71625 0.30320
+vt 0.71882 0.44490
+vt 0.57585 0.68632
+vt 0.54042 0.62401
+vt 0.57652 0.53000
+vt 0.71625 0.30320
+vt 0.71882 0.44490
+vt 0.57591 0.67925
+vt 0.54427 0.62362
+vt 0.57945 0.53203
+vt 0.71309 0.31512
+vt 0.71542 0.44367
+vt 0.24984 0.09316
+vt 0.39019 0.26609
+vt 0.32492 0.41360
+vt 0.24984 0.09316
+vt 0.39019 0.26609
+vt 0.32492 0.41360
+vt 0.25667 0.10735
+vt 0.38607 0.26679
+vt 0.32589 0.40280
+vt 0.72019 0.19274
+vt 0.77571 0.12056
+vt 0.82728 0.30100
+vt 0.72019 0.19274
+vt 0.77571 0.12056
+vt 0.82728 0.30100
+vt 0.72504 0.19238
+vt 0.77435 0.12827
+vt 0.82015 0.28854
+vt 0.32983 0.01517
+vt 0.10754 0.19521
+vt 0.14381 0.02148
+vt 0.32983 0.01517
+vt 0.10754 0.19521
+vt 0.14381 0.02148
+vt 0.31842 0.01956
+vt 0.11294 0.18598
+vt 0.14647 0.02540
+vt 0.82508 0.02407
+vt 0.89747 0.13029
+vt 0.77639 0.12092
+vt 0.82508 0.02407
+vt 0.89747 0.13029
+vt 0.77639 0.12092
+vt 0.82550 0.03106
+vt 0.89000 0.12570
+vt 0.78211 0.11735
+vt 0.83451 0.01178
+vt 0.78750 0.09212
+vt 0.71267 0.09212
+vt 0.83451 0.01178
+vt 0.78750 0.09212
+vt 0.71267 0.09212
+vt 0.82346 0.02365
+vt 0.78574 0.08812
+vt 0.72569 0.08812
+vt 0.65803 0.88561
+vt 0.51744 0.98830
+vt 0.57116 0.89477
+vt 0.65803 0.88561
+vt 0.51744 0.98830
+vt 0.57116 0.89477
+vt 0.64407 0.89110
+vt 0.52912 0.97506
+vt 0.57305 0.89859
+vt 0.87441 0.73800
+vt 0.89611 0.78951
+vt 0.86138 0.84864
+vt 0.85705 0.77170
+vt 0.87441 0.73800
+vt 0.89611 0.78951
+vt 0.86138 0.84864
+vt 0.85705 0.77170
+vt 0.87411 0.74625
+vt 0.89219 0.78917
+vt 0.86411 0.83699
+vt 0.86049 0.77270
+vt 0.70416 0.83447
+vt 0.65406 0.82907
+vt 0.75270 0.75000
+vt 0.85827 0.77534
+vt 0.85827 0.81797
+vt 0.70416 0.83447
+vt 0.65406 0.82907
+vt 0.75270 0.75000
+vt 0.85827 0.77534
+vt 0.85827 0.81797
+vt 0.70416 0.83045
+vt 0.66380 0.82609
+vt 0.75342 0.75426
+vt 0.85489 0.77862
+vt 0.85489 0.81431
+vt 0.50801 0.58196
+vt 0.64630 0.82507
+vt 0.52106 0.75383
+vt 0.50801 0.58196
+vt 0.64630 0.82507
+vt 0.52106 0.75383
+vt 0.51255 0.59710
+vt 0.63654 0.81508
+vt 0.52425 0.75120
+vt 0.87054 0.70999
+vt 0.73043 0.74712
+vt 0.84062 0.64055
+vt 0.87054 0.70999
+vt 0.73043 0.74712
+vt 0.84062 0.64055
+vt 0.86555 0.70720
+vt 0.74363 0.73951
+vt 0.83951 0.64678
+vt 0.69994 0.48530
+vt 0.76601 0.35270
+vt 0.81315 0.44645
+vt 0.66616 0.65491
+vt 0.69994 0.48530
+vt 0.76601 0.35270
+vt 0.81315 0.44645
+vt 0.66616 0.65491
+vt 0.70311 0.48681
+vt 0.76602 0.36054
+vt 0.80902 0.44606
+vt 0.67273 0.63936
+vt 0.80876 0.44830
+vt 0.76301 0.35091
+vt 0.80226 0.28028
+vt 0.82938 0.30908
+vt 0.80876 0.44830
+vt 0.76301 0.35091
+vt 0.80226 0.28028
+vt 0.82938 0.30908
+vt 0.80708 0.43650
+vt 0.76696 0.35108
+vt 0.80293 0.28636
+vt 0.82573 0.31058
+vt 0.80228 0.27917
+vt 0.72195 0.43605
+vt 0.72453 0.20382
+vt 0.80228 0.27917
+vt 0.72195 0.43605
+vt 0.72453 0.20382
+vt 0.79787 0.28007
+vt 0.72548 0.42143
+vt 0.72782 0.21217
+vt 0.02370 0.38499
+vt 0.01004 0.18557
+vt 0.07288 0.28123
+vt 0.02370 0.38499
+vt 0.01004 0.18557
+vt 0.07288 0.28123
+vt 0.02617 0.37161
+vt 0.01432 0.19859
+vt 0.06884 0.28159
+vt 0.60399 0.10578
+vt 0.78907 0.09270
+vt 0.60645 0.33418
+vt 0.60399 0.10578
+vt 0.78907 0.09270
+vt 0.60645 0.33418
+vt 0.60741 0.10955
+vt 0.78107 0.09727
+vt 0.60971 0.32387
+vt 0.01091 0.17573
+vt 0.13164 0.03394
+vt 0.08207 0.28736
+vt 0.01091 0.17573
+vt 0.13164 0.03394
+vt 0.08207 0.28736
+vt 0.01539 0.17611
+vt 0.12571 0.04654
+vt 0.08041 0.27812
+vt 0.99018 0.01614
+vt 0.90305 0.13248
+vt 0.83250 0.02591
+vt 0.99018 0.01614
+vt 0.90305 0.13248
+vt 0.83250 0.02591
+vt 0.98230 0.02064
+vt 0.90321 0.12624
+vt 0.83917 0.02951
+vt 0.52621 0.01439
+vt 0.44385 0.13019
+vt 0.32474 0.02040
+vt 0.52621 0.01439
+vt 0.44385 0.13019
+vt 0.32474 0.02040
+vt 0.51879 0.01862
+vt 0.44336 0.12467
+vt 0.33428 0.02412
+vt 0.76684 0.83665
+vt 0.71681 0.87443
+vt 0.58470 0.88077
+vt 0.66377 0.83037
+vt 0.76684 0.83665
+vt 0.71681 0.87443
+vt 0.58470 0.88077
+vt 0.66377 0.83037
+vt 0.75611 0.84001
+vt 0.71576 0.87047
+vt 0.59922 0.87607
+vt 0.66454 0.83443
+vt 0.58282 0.69146
+vt 0.60449 0.65610
+vt 0.66267 0.67481
+vt 0.72682 0.75382
+vt 0.65234 0.81523
+vt 0.58282 0.69146
+vt 0.60449 0.65610
+vt 0.66267 0.67481
+vt 0.72682 0.75382
+vt 0.65234 0.81523
+vt 0.58694 0.69156
+vt 0.60585 0.66069
+vt 0.66088 0.67838
+vt 0.72164 0.75321
+vt 0.65324 0.80961
+vt 0.24900 0.49426
+vt 0.35704 0.60355
+vt 0.20529 0.68453
+vt 0.09984 0.72933
+vt 0.24900 0.49426
+vt 0.35704 0.60355
+vt 0.20529 0.68453
+vt 0.09984 0.72933
+vt 0.24954 0.50007
+vt 0.35079 0.60249
+vt 0.20402 0.68081
+vt 0.10932 0.72105
+vt 0.60839 0.64458
+vt 0.68046 0.52239
+vt 0.65105 0.66553
+vt 0.60839 0.64458
+vt 0.68046 0.52239
+vt 0.65105 0.66553
+vt 0.61357 0.64279
+vt 0.67293 0.54215
+vt 0.64870 0.66004
+vt 0.54840 0.41936
+vt 0.42976 0.65830
+vt 0.25548 0.48712
+vt 0.48070 0.42864
+vt 0.54840 0.41936
+vt 0.42976 0.65830
+vt 0.25548 0.48712
+vt 0.48070 0.42864
+vt 0.54205 0.42426
+vt 0.42887 0.65222
+vt 0.26297 0.48927
+vt 0.48125 0.43259
+vt 0.03579 0.38858
+vt 0.08238 0.28996
+vt 0.14928 0.37802
+vt 0.17213 0.51363
+vt 0.03579 0.38858
+vt 0.08238 0.28996
+vt 0.14928 0.37802
+vt 0.17213 0.51363
+vt 0.04016 0.38753
+vt 0.08303 0.29679
+vt 0.14615 0.37989
+vt 0.16705 0.50391
+vt 0.59178 0.49275
+vt 0.56168 0.40888
+vt 0.71138 0.20702
+vt 0.71550 0.28997
+vt 0.59178 0.49275
+vt 0.56168 0.40888
+vt 0.71138 0.20702
+vt 0.71550 0.28997
+vt 0.59254 0.48467
+vt 0.56561 0.40963
+vt 0.70850 0.21698
+vt 0.71206 0.28878
+vt 0.32747 0.42806
+vt 0.38976 0.28461
+vt 0.54177 0.40587
+vt 0.32747 0.42806
+vt 0.38976 0.28461
+vt 0.54177 0.40587
+vt 0.33327 0.42344
+vt 0.39103 0.29044
+vt 0.53195 0.40287
+vt 0.31526 0.41561
+vt 0.21421 0.30326
+vt 0.18044 0.15262
+vt 0.24685 0.09805
+vt 0.31526 0.41561
+vt 0.21421 0.30326
+vt 0.18044 0.15262
+vt 0.24685 0.09805
+vt 0.30913 0.40330
+vt 0.21722 0.30112
+vt 0.18431 0.15431
+vt 0.24478 0.10462
+vt 0.59395 0.34642
+vt 0.55766 0.39611
+vt 0.50609 0.36371
+vt 0.39838 0.27381
+vt 0.59157 0.10433
+vt 0.59395 0.34642
+vt 0.55766 0.39611
+vt 0.50609 0.36371
+vt 0.39838 0.27381
+vt 0.59157 0.10433
+vt 0.59056 0.34495
+vt 0.55687 0.39108
+vt 0.50785 0.36029
+vt 0.40415 0.27372
+vt 0.58828 0.11220
+vt 0.32624 0.03328
+vt 0.43423 0.13455
+vt 0.25693 0.09657
+vt 0.32624 0.03328
+vt 0.43423 0.13455
+vt 0.25693 0.09657
+vt 0.32622 0.03836
+vt 0.42155 0.12777
+vt 0.26502 0.09423
+vn 0.0000 0.0000 1.0000
+vn -0.5000 -0.5000 0.7071
+vn -0.7071 -0.7071 0.0000
+vn -0.0248 -0.7066 0.7071
+vn -0.0351 -0.9994 0.0000
+vn 0.2685 0.6542 0.7071
+vn 0.3797 0.9251 0.0000
+vn 0.0000 0.0000 -1.0000
+vn -0.5531 -0.4405 0.7071
+vn -0.7822 -0.6230 0.0000
+vn -0.2883 -0.6457 0.7071
+vn -0.4077 -0.9131 0.0000
+vn 0.4583 -0.5385 0.7071
+vn 0.6481 -0.7616 0.0000
+vn 0.3132 0.6340 0.7071
+vn 0.4429 0.8966 0.0000
+vn 0.4284 -0.5625 0.7071
+vn 0.6059 -0.7955 0.0000
+vn 0.0000 0.7071 0.7071
+vn 0.0000 1.0000 0.0000
+vn -0.4555 -0.5409 0.7071
+vn -0.6441 -0.7649 0.0000
+vn -0.5056 0.4944 0.7071
+vn -0.7150 0.6992 0.0000
+vn 0.1470 -0.6917 0.7071
+vn 0.2079 -0.9782 0.0000
+vn 0.4341 0.5582 0.7071
+vn 0.6139 0.7894 0.0000
+vn -0.5861 0.3956 0.7071
+vn -0.8289 0.5594 0.0000
+vn -0.6434 -0.2933 0.7071
+vn -0.9099 -0.4148 0.0000
+vn -0.5708 -0.4174 0.7071
+vn -0.8072 -0.5903 0.0000
+vn 0.7070 -0.0152 0.7071
+vn 0.9998 -0.0215 0.0000
+vn 0.5785 0.4066 0.7071
+vn 0.8181 0.5751 0.0000
+vn 0.5092 -0.4906 0.7071
+vn 0.7202 -0.6938 0.0000
+vn 0.6260 0.3288 0.7071
+vn 0.8853 0.4650 0.0000
+vn -0.6812 0.1894 0.7071
+vn -0.9634 0.2679 0.0000
+vn -0.5222 -0.4768 0.7071
+vn -0.7385 -0.6743 0.0000
+vn 0.6696 -0.2271 0.7071
+vn 0.9470 -0.3212 0.0000
+vn -0.4585 0.5383 0.7071
+vn -0.6484 0.7613 0.0000
+vn 0.3985 0.5840 0.7072
+vn 0.5636 0.8260 0.0000
+vn -0.6863 -0.1701 0.7071
+vn -0.9706 -0.2406 0.0000
+vn -0.0202 -0.7068 0.7071
+vn -0.0286 -0.9996 0.0000
+vn 0.5498 -0.4447 0.7071
+vn 0.7775 -0.6289 0.0000
+vn -0.0460 0.7057 0.7071
+vn -0.0651 0.9979 0.0000
+vn -0.6072 -0.3623 0.7071
+vn -0.8587 -0.5125 0.0000
+vn 0.5808 0.4033 0.7071
+vn 0.8214 0.5704 0.0000
+vn -0.3434 -0.6181 0.7071
+vn -0.4857 -0.8741 0.0000
+vn 0.3706 0.6022 0.7071
+vn 0.5241 0.8516 0.0000
+vn -0.5843 -0.3983 0.7071
+vn -0.8263 -0.5633 0.0000
+vn -0.0626 -0.7043 0.7071
+vn -0.0885 -0.9961 0.0000
+vn 0.6324 -0.3162 0.7071
+vn 0.8944 -0.4472 0.0000
+vn 0.5801 0.4043 0.7071
+vn 0.8204 0.5718 0.0000
+vn -0.7055 0.0471 0.7071
+vn -0.9978 0.0667 0.0000
+vn -0.6033 -0.3688 0.7071
+vn -0.8532 -0.5216 0.0000
+vn -0.0640 0.7042 0.7071
+vn -0.0906 0.9959 0.0000
+vn -0.3957 -0.5860 0.7071
+vn -0.5597 -0.8287 0.0000
+vn 0.1402 -0.6931 0.7071
+vn 0.1982 -0.9802 0.0000
+vn 0.7071 0.0000 0.7071
+vn 1.0000 0.0000 0.0000
+vn 0.0635 0.7042 0.7071
+vn 0.0899 0.9960 0.0000
+vn 0.5860 -0.3957 0.7071
+vn 0.8288 -0.5596 0.0000
+vn -0.3056 0.6377 0.7071
+vn -0.4322 0.9018 0.0000
+vn -0.7042 0.0635 0.7071
+vn -0.9960 0.0897 0.0000
+vn 0.1541 0.6901 0.7072
+vn 0.2179 0.9760 0.0000
+vn -0.4467 -0.5482 0.7071
+vn -0.6317 -0.7752 0.0000
+vn 0.6296 -0.3220 0.7070
+vn 0.8903 -0.4553 0.0000
+vn -0.6086 -0.3599 0.7071
+vn -0.8608 -0.5090 0.0000
+vn 0.6072 -0.3624 0.7071
+vn 0.8587 -0.5125 0.0000
+vn 0.5423 0.4538 0.7071
+vn 0.7669 0.6418 0.0000
+vn -0.6881 -0.1627 0.7071
+vn -0.9732 -0.2300 0.0000
+vn -0.6176 0.3443 0.7071
+vn -0.8734 0.4869 0.0000
+vn -0.5903 -0.3893 0.7071
+vn -0.8348 -0.5506 0.0000
+vn 0.4714 -0.5270 0.7071
+vn 0.6668 -0.7453 0.0000
+vn 0.6965 0.1224 0.7070
+vn 0.9849 0.1731 0.0000
+vn 0.6042 0.3673 0.7071
+vn 0.8545 0.5194 0.0000
+vn -0.7070 -0.0093 0.7071
+vn -0.9999 -0.0132 0.0000
+vn 0.4472 -0.5477 0.7071
+vn 0.6325 -0.7746 0.0000
+vn -0.7048 0.0573 0.7071
+vn -0.9967 0.0810 0.0000
+vn 0.5576 -0.4348 0.7071
+vn 0.7886 -0.6148 0.0000
+vn 0.6163 0.3467 0.7071
+vn 0.8716 0.4903 0.0000
+vn -0.0420 -0.7059 0.7071
+vn -0.0595 -0.9982 0.0000
+vn 0.5262 0.4723 0.7071
+vn 0.7442 0.6680 0.0000
+vn -0.7071 0.0090 0.7071
+vn -0.9999 0.0127 0.0000
+vn -0.4974 -0.5027 0.7071
+vn -0.7034 -0.7108 0.0000
+vn 0.6888 0.1599 0.7071
+vn 0.9741 0.2262 0.0000
+vn -0.5639 0.4267 0.7071
+vn -0.7975 0.6034 0.0000
+vn 0.5285 0.4698 0.7071
+vn 0.7474 0.6644 0.0000
+vn -0.5560 0.4369 0.7071
+vn -0.7863 0.6178 0.0000
+vn -0.0369 -0.7062 0.7071
+vn -0.0521 -0.9986 0.0000
+vn 0.5403 0.4561 0.7071
+vn 0.7641 0.6451 0.0000
+vn -0.4337 0.5585 0.7071
+vn -0.6133 0.7898 0.0000
+vn -0.0178 -0.7069 0.7071
+vn -0.0251 -0.9997 0.0000
+vn 0.3796 0.5966 0.7071
+vn 0.5368 0.8437 0.0000
+vn 0.0286 0.7065 0.7071
+vn 0.0404 0.9992 0.0000
+vn -0.3346 -0.6229 0.7071
+vn -0.4731 -0.8810 0.0000
+vn 0.0362 -0.7061 0.7071
+vn 0.0512 -0.9987 0.0000
+vn -0.5719 -0.4159 0.7071
+vn -0.8087 -0.5882 0.0000
+vn 0.1849 -0.6825 0.7071
+vn 0.2615 -0.9652 0.0000
+vn 0.5091 -0.4906 0.7071
+vn 0.7201 -0.6939 0.0000
+vn 0.4035 0.5807 0.7071
+vn 0.5706 0.8212 0.0000
+vn -0.5884 0.3922 0.7071
+vn -0.8321 0.5547 0.0000
+vn 0.4587 -0.5382 0.7071
+vn 0.6486 -0.7611 0.0000
+vn 0.2899 0.6449 0.7071
+vn 0.4100 0.9121 0.0000
+vn 0.2383 0.6657 0.7071
+vn 0.3371 0.9415 0.0000
+vn -0.5649 -0.4254 0.7071
+vn -0.7988 -0.6016 0.0000
+vn -0.5793 -0.4055 0.7071
+vn -0.8192 -0.5735 0.0000
+vn 0.6870 0.1676 0.7071
+vn 0.9715 0.2370 0.0000
+vn -0.2703 0.6533 0.7071
+vn -0.3823 0.9240 0.0000
+vn 0.6092 0.3590 0.7071
+vn 0.8615 0.5077 0.0000
+vn -0.4508 0.5447 0.7071
+vn -0.6375 0.7704 0.0000
+vn -0.1511 -0.6907 0.7071
+vn -0.2137 -0.9769 0.0000
+vn -0.0811 -0.7024 0.7071
+vn -0.1147 -0.9934 0.0000
+vn -0.6168 -0.3458 0.7071
+vn -0.8722 -0.4891 0.0000
+vn 0.5252 -0.4735 0.7071
+vn 0.7427 -0.6696 0.0000
+vn 0.6934 -0.1387 0.7071
+vn 0.9806 -0.1961 0.0000
+vn -0.4323 0.5595 0.7071
+vn -0.6115 0.7913 0.0000
+vn -0.6505 0.2771 0.7071
+vn -0.9200 0.3919 0.0000
+vn -0.5308 -0.4672 0.7071
+vn -0.7506 -0.6607 0.0000
+vn 0.7059 -0.0416 0.7071
+vn 0.9983 -0.0588 0.0000
+vn 0.5727 0.4147 0.7071
+vn 0.8099 0.5865 0.0000
+vn -0.6285 -0.3239 0.7071
+vn -0.8889 -0.4581 0.0000
+vn 0.3945 -0.5868 0.7071
+vn 0.5579 -0.8299 0.0000
+vn 0.0615 0.7045 0.7071
+vn 0.0869 0.9962 0.0000
+vn -0.4834 0.5161 0.7071
+vn -0.6836 0.7298 0.0000
+vn -0.6834 0.1818 0.7071
+vn -0.9664 0.2571 0.0000
+vn -0.4025 -0.5814 0.7071
+vn -0.5692 -0.8222 0.0000
+vn 0.6851 -0.1752 0.7071
+vn 0.9688 -0.2477 0.0000
+vn 0.5343 0.4631 0.7071
+vn 0.7557 0.6550 0.0000
+vn -0.3308 0.6250 0.7071
+vn -0.4678 0.8838 0.0000
+vn -0.4068 0.5784 0.7071
+vn -0.5753 0.8180 0.0000
+vn -0.4203 -0.5687 0.7071
+vn -0.5944 -0.8042 0.0000
+vn 0.7070 -0.0082 0.7071
+vn 0.9999 -0.0116 0.0000
+vn 0.4383 -0.5548 0.7071
+vn 0.6199 -0.7846 0.0000
+vn -0.1256 0.6959 0.7071
+vn -0.1776 0.9841 0.0000
+vn -0.4311 -0.5605 0.7071
+vn -0.6097 -0.7926 0.0000
+o tile01_dark
+usemtl dark
+f 7/7/1 8/8/1 9/9/1
+f 4/4/2 5/5/2 8/8/2 7/7/2
+f 1/1/3 2/2/3 5/5/3 4/4/3
+f 5/5/4 6/6/4 9/9/4 8/8/4
+f 2/2/5 3/3/5 6/6/5 5/5/5
+f 6/6/6 4/4/6 7/7/6 9/9/6
+f 3/3/7 1/1/7 4/4/7 6/6/7
+f 3/3/8 2/2/8 1/1/8
+o tile02_dark
+usemtl dark
+f 18/18/1 19/19/1 20/20/1 21/21/1
+f 14/14/9 15/15/9 19/19/9 18/18/9
+f 10/10/10 11/11/10 15/15/10 14/14/10
+f 15/15/11 16/16/11 20/20/11 19/19/11
+f 11/11/12 12/12/12 16/16/12 15/15/12
+f 16/16/13 17/17/13 21/21/13 20/20/13
+f 12/12/14 13/13/14 17/17/14 16/16/14
+f 17/17/15 14/14/15 18/18/15 21/21/15
+f 13/13/16 10/10/16 14/14/16 17/17/16
+f 13/13/8 12/12/8 11/11/8 10/10/8
+o tile03_dark
+usemtl dark
+f 28/28/1 29/29/1 30/30/1
+f 25/25/17 26/26/17 29/29/17 28/28/17
+f 22/22/18 23/23/18 26/26/18 25/25/18
+f 26/26/19 27/27/19 30/30/19 29/29/19
+f 23/23/20 24/24/20 27/27/20 26/26/20
+f 27/27/21 25/25/21 28/28/21 30/30/21
+f 24/24/22 22/22/22 25/25/22 27/27/22
+f 24/24/8 23/23/8 22/22/8
+o tile04_dark
+usemtl dark
+f 37/37/1 38/38/1 39/39/1
+f 34/34/23 35/35/23 38/38/23 37/37/23
+f 31/31/24 32/32/24 35/35/24 34/34/24
+f 35/35/25 36/36/25 39/39/25 38/38/25
+f 32/32/26 33/33/26 36/36/26 35/35/26
+f 36/36/27 34/34/27 37/37/27 39/39/27
+f 33/33/28 31/31/28 34/34/28 36/36/28
+f 33/33/8 32/32/8 31/31/8
+o tile05_dark
+usemtl dark
+f 50/50/1 51/51/1 52/52/1 53/53/1 54/54/1
+f 45/45/29 46/46/29 51/51/29 50/50/29
+f 40/40/30 41/41/30 46/46/30 45/45/30
+f 46/46/31 47/47/31 52/52/31 51/51/31
+f 41/41/32 42/42/32 47/47/32 46/46/32
+f 47/47/33 48/48/33 53/53/33 52/52/33
+f 42/42/34 43/43/34 48/48/34 47/47/34
+f 48/48/35 49/49/35 54/54/35 53/53/35
+f 43/43/36 44/44/36 49/49/36 48/48/36
+f 49/49/37 45/45/37 50/50/37 54/54/37
+f 44/44/38 40/40/38 45/45/38 49/49/38
+f 44/44/8 43/43/8 42/42/8 41/41/8 40/40/8
+o tile06_dark
+usemtl dark
+f 61/61/1 62/62/1 63/63/1
+f 58/58/39 59/59/39 62/62/39 61/61/39
+f 55/55/40 56/56/40 59/59/40 58/58/40
+f 59/59/41 60/60/41 63/63/41 62/62/41
+f 56/56/42 57/57/42 60/60/42 59/59/42
+f 60/60/43 58/58/43 61/61/43 63/63/43
+f 57/57/44 55/55/44 58/58/44 60/60/44
+f 57/57/8 56/56/8 55/55/8
+o tile07_dark
+usemtl dark
+f 70/70/1 71/71/1 72/72/1
+f 67/67/45 68/68/45 71/71/45 70/70/45
+f 64/64/46 65/65/46 68/68/46 67/67/46
+f 68/68/47 69/69/47 72/72/47 71/71/47
+f 65/65/48 66/66/48 69/69/48 68/68/48
+f 69/69/49 67/67/49 70/70/49 72/72/49
+f 66/66/50 64/64/50 67/67/50 69/69/50
+f 66/66/8 65/65/8 64/64/8
+o tile08_dark
+usemtl dark
+f 79/79/1 80/80/1 81/81/1
+f 76/76/51 77/77/51 80/80/51 79/79/51
+f 73/73/52 74/74/52 77/77/52 76/76/52
+f 77/77/53 78/78/53 81/81/53 80/80/53
+f 74/74/54 75/75/54 78/78/54 77/77/54
+f 78/78/55 76/76/55 79/79/55 81/81/55
+f 75/75/56 73/73/56 76/76/56 78/78/56
+f 75/75/8 74/74/8 73/73/8
+o tile09_dark
+usemtl dark
+f 88/88/1 89/89/1 90/90/1
+f 85/85/57 86/86/57 89/89/57 88/88/57
+f 82/82/58 83/83/58 86/86/58 85/85/58
+f 86/86/59 87/87/59 90/90/59 89/89/59
+f 83/83/60 84/84/60 87/87/60 86/86/60
+f 87/87/61 85/85/61 88/88/61 90/90/61
+f 84/84/62 82/82/62 85/85/62 87/87/62
+f 84/84/8 83/83/8 82/82/8
+o tile10_dark
+usemtl dark
+f 97/97/1 98/98/1 99/99/1
+f 94/94/63 95/95/63 98/98/63 97/97/63
+f 91/91/64 92/92/64 95/95/64 94/94/64
+f 95/95/19 96/96/19 99/99/19 98/98/19
+f 92/92/20 93/93/20 96/96/20 95/95/20
+f 96/96/65 94/94/65 97/97/65 99/99/65
+f 93/93/66 91/91/66 94/94/66 96/96/66
+f 93/93/8 92/92/8 91/91/8
+o tile11_champagne
+usemtl champagne
+f 106/106/1 107/107/1 108/108/1
+f 103/103/67 104/104/67 107/107/67 106/106/67
+f 100/100/68 101/101/68 104/104/68 103/103/68
+f 104/104/69 105/105/69 108/108/69 107/107/69
+f 101/101/70 102/102/70 105/105/70 104/104/70
+f 105/105/71 103/103/71 106/106/71 108/108/71
+f 102/102/72 100/100/72 103/103/72 105/105/72
+f 102/102/8 101/101/8 100/100/8
+o tile12_champagne
+usemtl champagne
+f 117/117/1 118/118/1 119/119/1 120/120/1
+f 113/113/73 114/114/73 118/118/73 117/117/73
+f 109/109/74 110/110/74 114/114/74 113/113/74
+f 114/114/75 115/115/75 119/119/75 118/118/75
+f 110/110/76 111/111/76 115/115/76 114/114/76
+f 115/115/77 116/116/77 120/120/77 119/119/77
+f 111/111/78 112/112/78 116/116/78 115/115/78
+f 116/116/79 113/113/79 117/117/79 120/120/79
+f 112/112/80 109/109/80 113/113/80 116/116/80
+f 112/112/8 111/111/8 110/110/8 109/109/8
+o tile13_champagne
+usemtl champagne
+f 131/131/1 132/132/1 133/133/1 134/134/1 135/135/1
+f 126/126/81 127/127/81 132/132/81 131/131/81
+f 121/121/82 122/122/82 127/127/82 126/126/82
+f 127/127/83 128/128/83 133/133/83 132/132/83
+f 122/122/84 123/123/84 128/128/84 127/127/84
+f 128/128/85 129/129/85 134/134/85 133/133/85
+f 123/123/86 124/124/86 129/129/86 128/128/86
+f 129/129/87 130/130/87 135/135/87 134/134/87
+f 124/124/88 125/125/88 130/130/88 129/129/88
+f 130/130/89 126/126/89 131/131/89 135/135/89
+f 125/125/90 121/121/90 126/126/90 130/130/90
+f 125/125/8 124/124/8 123/123/8 122/122/8 121/121/8
+o tile14_champagne
+usemtl champagne
+f 142/142/1 143/143/1 144/144/1
+f 139/139/91 140/140/91 143/143/91 142/142/91
+f 136/136/92 137/137/92 140/140/92 139/139/92
+f 140/140/93 141/141/93 144/144/93 143/143/93
+f 137/137/94 138/138/94 141/141/94 140/140/94
+f 141/141/95 139/139/95 142/142/95 144/144/95
+f 138/138/96 136/136/96 139/139/96 141/141/96
+f 138/138/8 137/137/8 136/136/8
+o tile15_champagne
+usemtl champagne
+f 151/151/1 152/152/1 153/153/1
+f 148/148/97 149/149/97 152/152/97 151/151/97
+f 145/145/98 146/146/98 149/149/98 148/148/98
+f 149/149/99 150/150/99 153/153/99 152/152/99
+f 146/146/100 147/147/100 150/150/100 149/149/100
+f 150/150/101 148/148/101 151/151/101 153/153/101
+f 147/147/102 145/145/102 148/148/102 150/150/102
+f 147/147/8 146/146/8 145/145/8
+o tile16_champagne
+usemtl champagne
+f 162/162/1 163/163/1 164/164/1 165/165/1
+f 158/158/103 159/159/103 163/163/103 162/162/103
+f 154/154/104 155/155/104 159/159/104 158/158/104
+f 159/159/105 160/160/105 164/164/105 163/163/105
+f 155/155/106 156/156/106 160/160/106 159/159/106
+f 160/160/107 161/161/107 165/165/107 164/164/107
+f 156/156/108 157/157/108 161/161/108 160/160/108
+f 161/161/109 158/158/109 162/162/109 165/165/109
+f 157/157/110 154/154/110 158/158/110 161/161/110
+f 157/157/8 156/156/8 155/155/8 154/154/8
+o tile17_champagne
+usemtl champagne
+f 174/174/1 175/175/1 176/176/1 177/177/1
+f 170/170/111 171/171/111 175/175/111 174/174/111
+f 166/166/112 167/167/112 171/171/112 170/170/112
+f 171/171/113 172/172/113 176/176/113 175/175/113
+f 167/167/114 168/168/114 172/172/114 171/171/114
+f 172/172/115 173/173/115 177/177/115 176/176/115
+f 168/168/116 169/169/116 173/173/116 172/172/116
+f 173/173/117 170/170/117 174/174/117 177/177/117
+f 169/169/118 166/166/118 170/170/118 173/173/118
+f 169/169/8 168/168/8 167/167/8 166/166/8
+o tile18_champagne
+usemtl champagne
+f 184/184/1 185/185/1 186/186/1
+f 181/181/119 182/182/119 185/185/119 184/184/119
+f 178/178/120 179/179/120 182/182/120 181/181/120
+f 182/182/121 183/183/121 186/186/121 185/185/121
+f 179/179/122 180/180/122 183/183/122 182/182/122
+f 183/183/123 181/181/123 184/184/123 186/186/123
+f 180/180/124 178/178/124 181/181/124 183/183/124
+f 180/180/8 179/179/8 178/178/8
+o tile19_champagne
+usemtl champagne
+f 193/193/1 194/194/1 195/195/1
+f 190/190/125 191/191/125 194/194/125 193/193/125
+f 187/187/126 188/188/126 191/191/126 190/190/126
+f 191/191/127 192/192/127 195/195/127 194/194/127
+f 188/188/128 189/189/128 192/192/128 191/191/128
+f 192/192/129 190/190/129 193/193/129 195/195/129
+f 189/189/130 187/187/130 190/190/130 192/192/130
+f 189/189/8 188/188/8 187/187/8
+o tile20_champagne
+usemtl champagne
+f 202/202/1 203/203/1 204/204/1
+f 199/199/131 200/200/131 203/203/131 202/202/131
+f 196/196/132 197/197/132 200/200/132 199/199/132
+f 200/200/133 201/201/133 204/204/133 203/203/133
+f 197/197/134 198/198/134 201/201/134 200/200/134
+f 201/201/135 199/199/135 202/202/135 204/204/135
+f 198/198/136 196/196/136 199/199/136 201/201/136
+f 198/198/8 197/197/8 196/196/8
+o tile21_champagne
+usemtl champagne
+f 211/211/1 212/212/1 213/213/1
+f 208/208/137 209/209/137 212/212/137 211/211/137
+f 205/205/138 206/206/138 209/209/138 208/208/138
+f 209/209/139 210/210/139 213/213/139 212/212/139
+f 206/206/140 207/207/140 210/210/140 209/209/140
+f 210/210/141 208/208/141 211/211/141 213/213/141
+f 207/207/142 205/205/142 208/208/142 210/210/142
+f 207/207/8 206/206/8 205/205/8
+o tile22_champagne
+usemtl champagne
+f 220/220/1 221/221/1 222/222/1
+f 217/217/143 218/218/143 221/221/143 220/220/143
+f 214/214/144 215/215/144 218/218/144 217/217/144
+f 218/218/145 219/219/145 222/222/145 221/221/145
+f 215/215/146 216/216/146 219/219/146 218/218/146
+f 219/219/147 217/217/147 220/220/147 222/222/147
+f 216/216/148 214/214/148 217/217/148 219/219/148
+f 216/216/8 215/215/8 214/214/8
+o tile23_champagne
+usemtl champagne
+f 229/229/1 230/230/1 231/231/1
+f 226/226/149 227/227/149 230/230/149 229/229/149
+f 223/223/150 224/224/150 227/227/150 226/226/150
+f 227/227/151 228/228/151 231/231/151 230/230/151
+f 224/224/152 225/225/152 228/228/152 227/227/152
+f 228/228/153 226/226/153 229/229/153 231/231/153
+f 225/225/154 223/223/154 226/226/154 228/228/154
+f 225/225/8 224/224/8 223/223/8
+o tile24_glass
+usemtl glass
+f 240/240/1 241/241/1 242/242/1 243/243/1
+f 236/236/155 237/237/155 241/241/155 240/240/155
+f 232/232/156 233/233/156 237/237/156 236/236/156
+f 237/237/157 238/238/157 242/242/157 241/241/157
+f 233/233/158 234/234/158 238/238/158 237/237/158
+f 238/238/159 239/239/159 243/243/159 242/242/159
+f 234/234/160 235/235/160 239/239/160 238/238/160
+f 239/239/161 236/236/161 240/240/161 243/243/161
+f 235/235/162 232/232/162 236/236/162 239/239/162
+f 235/235/8 234/234/8 233/233/8 232/232/8
+o tile25_glass
+usemtl glass
+f 254/254/1 255/255/1 256/256/1 257/257/1 258/258/1
+f 249/249/163 250/250/163 255/255/163 254/254/163
+f 244/244/164 245/245/164 250/250/164 249/249/164
+f 250/250/165 251/251/165 256/256/165 255/255/165
+f 245/245/166 246/246/166 251/251/166 250/250/166
+f 251/251/167 252/252/167 257/257/167 256/256/167
+f 246/246/168 247/247/168 252/252/168 251/251/168
+f 252/252/169 253/253/169 258/258/169 257/257/169
+f 247/247/170 248/248/170 253/253/170 252/252/170
+f 253/253/171 249/249/171 254/254/171 258/258/171
+f 248/248/172 244/244/172 249/249/172 253/253/172
+f 248/248/8 247/247/8 246/246/8 245/245/8 244/244/8
+o tile26_glass
+usemtl glass
+f 267/267/1 268/268/1 269/269/1 270/270/1
+f 263/263/173 264/264/173 268/268/173 267/267/173
+f 259/259/174 260/260/174 264/264/174 263/263/174
+f 264/264/175 265/265/175 269/269/175 268/268/175
+f 260/260/176 261/261/176 265/265/176 264/264/176
+f 265/265/177 266/266/177 270/270/177 269/269/177
+f 261/261/178 262/262/178 266/266/178 265/265/178
+f 266/266/179 263/263/179 267/267/179 270/270/179
+f 262/262/180 259/259/180 263/263/180 266/266/180
+f 262/262/8 261/261/8 260/260/8 259/259/8
+o tile27_glass
+usemtl glass
+f 277/277/1 278/278/1 279/279/1
+f 274/274/181 275/275/181 278/278/181 277/277/181
+f 271/271/182 272/272/182 275/275/182 274/274/182
+f 275/275/183 276/276/183 279/279/183 278/278/183
+f 272/272/184 273/273/184 276/276/184 275/275/184
+f 276/276/185 274/274/185 277/277/185 279/279/185
+f 273/273/186 271/271/186 274/274/186 276/276/186
+f 273/273/8 272/272/8 271/271/8
+o tile28_glass
+usemtl glass
+f 288/288/1 289/289/1 290/290/1 291/291/1
+f 284/284/187 285/285/187 289/289/187 288/288/187
+f 280/280/188 281/281/188 285/285/188 284/284/188
+f 285/285/189 286/286/189 290/290/189 289/289/189
+f 281/281/190 282/282/190 286/286/190 285/285/190
+f 286/286/191 287/287/191 291/291/191 290/290/191
+f 282/282/192 283/283/192 287/287/192 286/286/192
+f 287/287/193 284/284/193 288/288/193 291/291/193
+f 283/283/194 280/280/194 284/284/194 287/287/194
+f 283/283/8 282/282/8 281/281/8 280/280/8
+o tile29_glass
+usemtl glass
+f 300/300/1 301/301/1 302/302/1 303/303/1
+f 296/296/195 297/297/195 301/301/195 300/300/195
+f 292/292/196 293/293/196 297/297/196 296/296/196
+f 297/297/197 298/298/197 302/302/197 301/301/197
+f 293/293/198 294/294/198 298/298/198 297/297/198
+f 298/298/199 299/299/199 303/303/199 302/302/199
+f 294/294/200 295/295/200 299/299/200 298/298/200
+f 299/299/201 296/296/201 300/300/201 303/303/201
+f 295/295/202 292/292/202 296/296/202 299/299/202
+f 295/295/8 294/294/8 293/293/8 292/292/8
+o tile30_glass
+usemtl glass
+f 312/312/1 313/313/1 314/314/1 315/315/1
+f 308/308/203 309/309/203 313/313/203 312/312/203
+f 304/304/204 305/305/204 309/309/204 308/308/204
+f 309/309/205 310/310/205 314/314/205 313/313/205
+f 305/305/206 306/306/206 310/310/206 309/309/206
+f 310/310/207 311/311/207 315/315/207 314/314/207
+f 306/306/208 307/307/208 311/311/208 310/310/208
+f 311/311/209 308/308/209 312/312/209 315/315/209
+f 307/307/210 304/304/210 308/308/210 311/311/210
+f 307/307/8 306/306/8 305/305/8 304/304/8
+o tile31_glass
+usemtl glass
+f 322/322/1 323/323/1 324/324/1
+f 319/319/211 320/320/211 323/323/211 322/322/211
+f 316/316/212 317/317/212 320/320/212 319/319/212
+f 320/320/213 321/321/213 324/324/213 323/323/213
+f 317/317/214 318/318/214 321/321/214 320/320/214
+f 321/321/215 319/319/215 322/322/215 324/324/215
+f 318/318/216 316/316/216 319/319/216 321/321/216
+f 318/318/8 317/317/8 316/316/8
+o tile32_glass
+usemtl glass
+f 333/333/1 334/334/1 335/335/1 336/336/1
+f 329/329/217 330/330/217 334/334/217 333/333/217
+f 325/325/218 326/326/218 330/330/218 329/329/218
+f 330/330/219 331/331/219 335/335/219 334/334/219
+f 326/326/220 327/327/220 331/331/220 330/330/220
+f 331/331/221 332/332/221 336/336/221 335/335/221
+f 327/327/222 328/328/222 332/332/222 331/331/222
+f 332/332/223 329/329/223 333/333/223 336/336/223
+f 328/328/224 325/325/224 329/329/224 332/332/224
+f 328/328/8 327/327/8 326/326/8 325/325/8
+o tile33_glass
+usemtl glass
+f 347/347/1 348/348/1 349/349/1 350/350/1 351/351/1
+f 342/342/225 343/343/225 348/348/225 347/347/225
+f 337/337/226 338/338/226 343/343/226 342/342/226
+f 343/343/227 344/344/227 349/349/227 348/348/227
+f 338/338/228 339/339/228 344/344/228 343/343/228
+f 344/344/229 345/345/229 350/350/229 349/349/229
+f 339/339/230 340/340/230 345/345/230 344/344/230
+f 345/345/231 346/346/231 351/351/231 350/350/231
+f 340/340/232 341/341/232 346/346/232 345/345/232
+f 346/346/233 342/342/233 347/347/233 351/351/233
+f 341/341/234 337/337/234 342/342/234 346/346/234
+f 341/341/8 340/340/8 339/339/8 338/338/8 337/337/8
+o tile34_glass
+usemtl glass
+f 358/358/1 359/359/1 360/360/1
+f 355/355/235 356/356/235 359/359/235 358/358/235
+f 352/352/236 353/353/236 356/356/236 355/355/236
+f 356/356/237 357/357/237 360/360/237 359/359/237
+f 353/353/238 354/354/238 357/357/238 356/356/238
+f 357/357/239 355/355/239 358/358/239 360/360/239
+f 354/354/240 352/352/240 355/355/240 357/357/240
+f 354/354/8 353/353/8 352/352/8
diff --git a/assets/Dragon.svg b/assets/Dragon.svg
new file mode 100644
index 000000000..5001d2d76
--- /dev/null
+++ b/assets/Dragon.svg
@@ -0,0 +1,79 @@
+
+
diff --git a/assets/DragonModel.glb b/assets/DragonModel.glb
new file mode 100644
index 000000000..e51ddc35b
--- /dev/null
+++ b/assets/DragonModel.glb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:459dfa78f2dacba3bea8d82352d97b3648847bccf936a9e85732e818a3759971
+size 131440
diff --git a/assets/DragonModel.mtl b/assets/DragonModel.mtl
new file mode 100644
index 000000000..2094ddafa
--- /dev/null
+++ b/assets/DragonModel.mtl
@@ -0,0 +1,34 @@
+# Materials for DragonModel.obj
+newmtl dark
+Ka 0.060 0.062 0.066
+Kd 0.300 0.310 0.330
+Ks 0.700 0.700 0.700
+Ns 180.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.80
+Pr 0.35
+
+newmtl champagne
+Ka 0.144 0.128 0.108
+Kd 0.720 0.640 0.540
+Ks 0.850 0.800 0.700
+Ns 120.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.80
+Pr 0.40
+
+newmtl glass
+Ka 0.176 0.184 0.180
+Kd 0.880 0.920 0.900
+Ks 0.950 0.950 0.950
+Ns 300.0
+d 0.55
+Ni 1.50
+illum 4
+Pm 0.00
+Pr 0.15
+
diff --git a/assets/DragonModel.obj b/assets/DragonModel.obj
new file mode 100644
index 000000000..251da2988
--- /dev/null
+++ b/assets/DragonModel.obj
@@ -0,0 +1,3155 @@
+# Singe dragon, solid model built by util/dragonModel.py from the tiles of Dragon.jpeg
+# Units: 0.01 per image pixel; Y up, faces right (+X), resting on Y = 0, symmetric about Z = 0
+mtllib DragonModel.mtl
+v 0.70500 6.60000 -0.38000
+v 0.74500 6.56000 -0.38000
+v 1.22500 6.31000 -0.38000
+v 1.37500 6.16000 -0.38000
+v 1.95500 5.78000 -0.38000
+v 2.06500 5.67000 -0.38000
+v 1.43500 5.02000 -0.38000
+v 1.47500 4.98000 -0.38000
+v 2.50500 5.19000 -0.38000
+v 3.02500 4.76000 -0.38000
+v 3.06500 4.80000 -0.38000
+v 3.32500 5.32000 -0.38000
+v 3.25500 5.39000 -0.38000
+v 3.20500 5.37000 -0.38000
+v 2.76500 5.47000 -0.38000
+v 2.65500 5.58000 -0.38000
+v 2.76500 5.69000 -0.38000
+v 3.09500 5.76000 -0.38000
+v 3.32500 5.49000 -0.38000
+v 3.36500 5.53000 -0.38000
+v 3.55500 5.92000 -0.38000
+v 3.20500 6.40000 -0.38000
+v 3.16500 6.29000 -0.38000
+v 3.05500 6.18000 -0.38000
+v 2.66500 6.21000 -0.38000
+v 2.41500 6.26000 -0.38000
+v 1.92500 6.59000 -0.38000
+v 0.74500 6.64000 -0.38000
+v 0.61590 6.60000 0.00000
+v 0.70730 6.50860 0.00000
+v 1.18730 6.25860 0.00000
+v 1.33504 6.11086 0.00000
+v 1.91504 5.73086 0.00000
+v 1.97660 5.66931 0.00000
+v 1.34660 5.01931 0.00000
+v 1.45440 4.91150 0.00000
+v 2.48807 5.12225 0.00000
+v 3.02902 4.67493 0.00000
+v 3.11678 4.76268 0.00000
+v 3.40166 5.33244 0.00000
+v 3.27017 5.46392 0.00000
+v 3.19982 5.43578 0.00000
+v 2.79669 5.52740 0.00000
+v 2.74410 5.58000 0.00000
+v 2.79634 5.63225 0.00000
+v 3.07137 5.69059 0.00000
+v 3.32129 5.39720 0.00000
+v 3.41701 5.49292 0.00000
+v 3.62824 5.92649 0.00000
+v 3.18622 6.53269 0.00000
+v 3.11057 6.32466 0.00000
+v 3.03094 6.24504 0.00000
+v 2.67362 6.27252 0.00000
+v 2.43973 6.31930 0.00000
+v 1.94544 6.65219 0.00000
+v 0.72002 6.70412 0.00000
+v 0.70500 6.60000 0.38000
+v 0.74500 6.56000 0.38000
+v 1.22500 6.31000 0.38000
+v 1.37500 6.16000 0.38000
+v 1.95500 5.78000 0.38000
+v 2.06500 5.67000 0.38000
+v 1.43500 5.02000 0.38000
+v 1.47500 4.98000 0.38000
+v 2.50500 5.19000 0.38000
+v 3.02500 4.76000 0.38000
+v 3.06500 4.80000 0.38000
+v 3.32500 5.32000 0.38000
+v 3.25500 5.39000 0.38000
+v 3.20500 5.37000 0.38000
+v 2.76500 5.47000 0.38000
+v 2.65500 5.58000 0.38000
+v 2.76500 5.69000 0.38000
+v 3.09500 5.76000 0.38000
+v 3.32500 5.49000 0.38000
+v 3.36500 5.53000 0.38000
+v 3.55500 5.92000 0.38000
+v 3.20500 6.40000 0.38000
+v 3.16500 6.29000 0.38000
+v 3.05500 6.18000 0.38000
+v 2.66500 6.21000 0.38000
+v 2.41500 6.26000 0.38000
+v 1.92500 6.59000 0.38000
+v 0.74500 6.64000 0.38000
+v 2.37220 6.26650 0.38000
+v 1.92740 6.54950 0.38000
+v 0.75300 6.59700 0.38000
+v 1.45590 6.21950 0.38000
+v 2.37220 6.26650 0.39000
+v 1.92740 6.54950 0.39000
+v 0.75300 6.59700 0.39000
+v 1.45590 6.21950 0.39000
+v 2.28932 6.28834 0.42000
+v 1.91811 6.51985 0.42000
+v 0.83569 6.57442 0.42000
+v 1.46272 6.24989 0.42000
+v 2.28932 6.28834 -0.42000
+v 1.91811 6.51985 -0.42000
+v 0.83569 6.57442 -0.42000
+v 1.46272 6.24989 -0.42000
+v 2.37220 6.26650 -0.39000
+v 1.92740 6.54950 -0.39000
+v 0.75300 6.59700 -0.39000
+v 1.45590 6.21950 -0.39000
+v 2.37220 6.26650 -0.38000
+v 1.92740 6.54950 -0.38000
+v 0.75300 6.59700 -0.38000
+v 1.45590 6.21950 -0.38000
+v 1.81500 6.25020 0.38000
+v 1.36960 6.20970 0.38000
+v 2.24650 5.61750 0.38000
+v 3.18500 5.80730 0.38000
+v 3.18500 6.12660 0.38000
+v 1.81500 6.25020 0.39000
+v 1.36960 6.20970 0.39000
+v 2.24650 5.61750 0.39000
+v 3.18500 5.80730 0.39000
+v 3.18500 6.12660 0.39000
+v 1.81501 6.22008 0.42000
+v 1.45261 6.18836 0.42000
+v 2.25287 5.64940 0.42000
+v 3.15500 5.83184 0.42000
+v 3.15500 6.09918 0.42000
+v 1.81501 6.22008 -0.42000
+v 1.45261 6.18836 -0.42000
+v 2.25287 5.64940 -0.42000
+v 3.15500 5.83184 -0.42000
+v 3.15500 6.09918 -0.42000
+v 1.81500 6.25020 -0.39000
+v 1.36960 6.20970 -0.39000
+v 2.24650 5.61750 -0.39000
+v 3.18500 5.80730 -0.39000
+v 3.18500 6.12660 -0.39000
+v 1.81500 6.25020 -0.38000
+v 1.36960 6.20970 -0.38000
+v 2.24650 5.61750 -0.38000
+v 3.18500 5.80730 -0.38000
+v 3.18500 6.12660 -0.38000
+v 3.32850 5.52760 0.38000
+v 3.52140 5.91340 0.38000
+v 3.21270 6.35630 0.38000
+v 3.17420 5.78000 0.38000
+v 3.32850 5.52760 0.39000
+v 3.52140 5.91340 0.39000
+v 3.21270 6.35630 0.39000
+v 3.17420 5.78000 0.39000
+v 3.32587 5.58942 0.42000
+v 3.48659 5.91087 0.42000
+v 3.23565 6.27371 0.42000
+v 3.20477 5.78751 0.42000
+v 3.32587 5.58942 -0.42000
+v 3.48659 5.91087 -0.42000
+v 3.23565 6.27371 -0.42000
+v 3.20477 5.78751 -0.42000
+v 3.32850 5.52760 -0.39000
+v 3.52140 5.91340 -0.39000
+v 3.21270 6.35630 -0.39000
+v 3.17420 5.78000 -0.39000
+v 3.32850 5.52760 -0.38000
+v 3.52140 5.91340 -0.38000
+v 3.21270 6.35630 -0.38000
+v 3.17420 5.78000 -0.38000
+v 2.17370 5.96880 0.38000
+v 2.50350 6.22000 0.38000
+v 1.87540 6.22000 0.38000
+v 2.17370 5.96880 0.39000
+v 2.50350 6.22000 0.39000
+v 1.87540 6.22000 0.39000
+v 2.17464 6.00723 0.42000
+v 2.42229 6.19259 0.42000
+v 1.95592 6.19061 0.42000
+v 2.17464 6.00723 -0.42000
+v 2.42229 6.19259 -0.42000
+v 1.95592 6.19061 -0.42000
+v 2.17370 5.96880 -0.39000
+v 2.50350 6.22000 -0.39000
+v 1.87540 6.22000 -0.39000
+v 2.17370 5.96880 -0.38000
+v 2.50350 6.22000 -0.38000
+v 1.87540 6.22000 -0.38000
+v 2.04140 5.58350 0.38000
+v 1.48390 5.01340 0.38000
+v 2.49750 5.22880 0.38000
+v 2.04140 5.58350 0.39000
+v 1.48390 5.01340 0.39000
+v 2.49750 5.22880 0.39000
+v 2.04412 5.54338 0.42000
+v 1.55900 5.05472 0.42000
+v 2.42815 5.24473 0.42000
+v 2.04412 5.54338 -0.42000
+v 1.55900 5.05472 -0.42000
+v 2.42815 5.24473 -0.42000
+v 2.04140 5.58350 -0.39000
+v 1.48390 5.01340 -0.39000
+v 2.49750 5.22880 -0.39000
+v 2.04140 5.58350 -0.38000
+v 1.48390 5.01340 -0.38000
+v 2.49750 5.22880 -0.38000
+v 3.29410 5.31780 0.38000
+v 2.04850 5.59590 0.38000
+v 3.02810 4.79770 0.38000
+v 3.29410 5.31780 0.39000
+v 2.04850 5.59590 0.39000
+v 3.02810 4.79770 0.39000
+v 3.24975 5.29696 0.42000
+v 2.12562 5.55849 0.42000
+v 3.01829 4.84439 0.42000
+v 3.24975 5.29696 -0.42000
+v 2.12562 5.55849 -0.42000
+v 3.01829 4.84439 -0.42000
+v 3.29410 5.31780 -0.39000
+v 2.04850 5.59590 -0.39000
+v 3.02810 4.79770 -0.39000
+v 3.29410 5.31780 -0.38000
+v 2.04850 5.59590 -0.38000
+v 3.02810 4.79770 -0.38000
+v 0.14500 5.65000 -0.32000
+v 0.01500 4.36000 -0.32000
+v 0.06500 4.32000 -0.32000
+v 0.29500 4.59000 -0.32000
+v 0.40500 4.48000 -0.32000
+v 0.64500 3.95000 -0.32000
+v 1.91500 2.24000 -0.32000
+v 1.95500 2.28000 -0.32000
+v 1.97500 2.86000 -0.32000
+v 2.08500 2.97000 -0.32000
+v 2.34500 2.63000 -0.32000
+v 2.64500 3.15000 -0.32000
+v 2.81500 3.35000 -0.32000
+v 1.42500 5.00000 -0.32000
+v 2.05500 5.65000 -0.32000
+v 1.42500 6.09000 -0.32000
+v 1.29500 6.22000 -0.32000
+v 0.09427 5.68512 0.00000
+v -0.04167 4.33619 0.00000
+v 0.07215 4.24512 0.00000
+v 0.29818 4.51046 0.00000
+v 0.35986 4.44877 0.00000
+v 0.59820 3.92245 0.00000
+v 1.90895 2.15758 0.00000
+v 2.00823 2.25687 0.00000
+v 2.02823 2.83687 0.00000
+v 2.07957 2.88820 0.00000
+v 2.35130 2.53286 0.00000
+v 2.68932 3.11877 0.00000
+v 2.88574 3.34984 0.00000
+v 1.49774 4.99746 0.00000
+v 2.13791 5.65796 0.00000
+v 1.45982 6.13155 0.00000
+v 1.30576 6.28560 0.00000
+v 0.14500 5.65000 0.32000
+v 0.01500 4.36000 0.32000
+v 0.06500 4.32000 0.32000
+v 0.29500 4.59000 0.32000
+v 0.40500 4.48000 0.32000
+v 0.64500 3.95000 0.32000
+v 1.91500 2.24000 0.32000
+v 1.95500 2.28000 0.32000
+v 1.97500 2.86000 0.32000
+v 2.08500 2.97000 0.32000
+v 2.34500 2.63000 0.32000
+v 2.64500 3.15000 0.32000
+v 2.81500 3.35000 0.32000
+v 1.42500 5.00000 0.32000
+v 2.05500 5.65000 0.32000
+v 1.42500 6.09000 0.32000
+v 1.29500 6.22000 0.32000
+v 0.07120 4.35890 0.32000
+v 1.30060 6.17980 0.32000
+v 0.18720 5.64620 0.32000
+v 0.07120 4.35890 0.33000
+v 1.30060 6.17980 0.33000
+v 0.18720 5.64620 0.33000
+v 0.09994 4.43965 0.36000
+v 1.23571 6.12380 0.36000
+v 0.21555 5.62652 0.36000
+v 0.09994 4.43965 -0.36000
+v 1.23571 6.12380 -0.36000
+v 0.21555 5.62652 -0.36000
+v 0.07120 4.35890 -0.33000
+v 1.30060 6.17980 -0.33000
+v 0.18720 5.64620 -0.33000
+v 0.07120 4.35890 -0.32000
+v 1.30060 6.17980 -0.32000
+v 0.18720 5.64620 -0.32000
+v 0.73630 5.17900 0.32000
+v 0.92890 4.91420 0.32000
+v 1.44610 5.05430 0.32000
+v 2.01640 5.64610 0.32000
+v 1.35430 6.10610 0.32000
+v 0.73630 5.17900 0.33000
+v 0.92890 4.91420 0.33000
+v 1.44610 5.05430 0.33000
+v 2.01640 5.64610 0.33000
+v 1.35430 6.10610 0.33000
+v 0.77285 5.17975 0.36000
+v 0.94100 4.94856 0.36000
+v 1.43025 5.08109 0.36000
+v 1.97036 5.64156 0.36000
+v 1.36230 6.06401 0.36000
+v 0.77285 5.17975 -0.36000
+v 0.94100 4.94856 -0.36000
+v 1.43025 5.08109 -0.36000
+v 1.97036 5.64156 -0.36000
+v 1.36230 6.06401 -0.36000
+v 0.73630 5.17900 -0.33000
+v 0.92890 4.91420 -0.33000
+v 1.44610 5.05430 -0.33000
+v 2.01640 5.64610 -0.33000
+v 1.35430 6.10610 -0.33000
+v 0.73630 5.17900 -0.32000
+v 0.92890 4.91420 -0.32000
+v 1.44610 5.05430 -0.32000
+v 2.01640 5.64610 -0.32000
+v 1.35430 6.10610 -0.32000
+v 0.96360 4.82790 0.32000
+v 1.60430 3.91270 0.32000
+v 1.34280 4.98480 0.32000
+v 0.96360 4.82790 0.33000
+v 1.60430 3.91270 0.33000
+v 1.34280 4.98480 0.33000
+v 1.00962 4.81447 0.36000
+v 1.56896 3.99079 0.36000
+v 1.32194 4.94370 0.36000
+v 1.00962 4.81447 -0.36000
+v 1.56896 3.99079 -0.36000
+v 1.32194 4.94370 -0.36000
+v 0.96360 4.82790 -0.33000
+v 1.60430 3.91270 -0.33000
+v 1.34280 4.98480 -0.33000
+v 0.96360 4.82790 -0.32000
+v 1.60430 3.91270 -0.32000
+v 1.34280 4.98480 -0.32000
+v 0.67430 5.14050 0.32000
+v 0.35930 4.67380 0.32000
+v 0.68030 3.96970 0.32000
+v 1.92250 2.27100 0.32000
+v 1.94530 3.33230 0.32000
+v 0.67430 5.14050 0.33000
+v 0.35930 4.67380 0.33000
+v 0.68030 3.96970 0.33000
+v 1.92250 2.27100 0.33000
+v 1.94530 3.33230 0.33000
+v 0.67480 5.08762 0.36000
+v 0.39357 4.67095 0.36000
+v 0.70633 3.98493 0.36000
+v 1.89676 2.35276 0.36000
+v 1.91510 3.32310 0.36000
+v 0.67480 5.08762 -0.36000
+v 0.39357 4.67095 -0.36000
+v 0.70633 3.98493 -0.36000
+v 1.89676 2.35276 -0.36000
+v 1.91510 3.32310 -0.36000
+v 0.67430 5.14050 -0.33000
+v 0.35930 4.67380 -0.33000
+v 0.68030 3.96970 -0.33000
+v 1.92250 2.27100 -0.33000
+v 1.94530 3.33230 -0.33000
+v 0.67430 5.14050 -0.32000
+v 0.35930 4.67380 -0.32000
+v 0.68030 3.96970 -0.32000
+v 1.92250 2.27100 -0.32000
+v 1.94530 3.33230 -0.32000
+v 1.77750 3.63490 0.32000
+v 2.36480 2.64170 0.32000
+v 2.78390 3.34390 0.32000
+v 1.47720 4.90530 0.32000
+v 1.77750 3.63490 0.33000
+v 2.36480 2.64170 0.33000
+v 2.78390 3.34390 0.33000
+v 1.47720 4.90530 0.33000
+v 1.80565 3.64624 0.36000
+v 2.36492 2.70044 0.36000
+v 2.74722 3.34098 0.36000
+v 1.51560 4.82867 0.36000
+v 1.80565 3.64624 -0.36000
+v 2.36492 2.70044 -0.36000
+v 2.74722 3.34098 -0.36000
+v 1.51560 4.82867 -0.36000
+v 1.77750 3.63490 -0.33000
+v 2.36480 2.64170 -0.33000
+v 2.78390 3.34390 -0.33000
+v 1.47720 4.90530 -0.33000
+v 1.77750 3.63490 -0.32000
+v 2.36480 2.64170 -0.32000
+v 2.78390 3.34390 -0.32000
+v 1.47720 4.90530 -0.32000
+v 0.53500 3.13000 -0.51000
+v 0.42500 3.02000 -0.51000
+v 0.36500 3.08000 -0.51000
+v -1.53500 3.25000 -0.51000
+v -1.57500 3.21000 -0.51000
+v -1.03500 2.15000 -0.51000
+v -0.89500 2.01000 -0.51000
+v 0.80500 0.75000 -0.51000
+v 0.86500 0.81000 -0.51000
+v 0.91500 0.76000 -0.51000
+v 2.56500 0.66000 -0.51000
+v 2.60500 0.70000 -0.51000
+v 2.45500 0.88000 -0.51000
+v 2.96500 2.32000 -0.51000
+v 2.77500 3.36000 -0.51000
+v 2.73500 3.40000 -0.51000
+v 2.68500 3.35000 -0.51000
+v 2.47500 2.95000 -0.51000
+v 2.33500 2.80000 -0.51000
+v 2.22500 2.91000 -0.51000
+v 2.01500 3.26000 -0.51000
+v 1.96500 3.31000 -0.51000
+v 1.92500 3.27000 -0.51000
+v 1.93500 2.51000 -0.51000
+v 1.82500 2.40000 -0.51000
+v 0.81500 3.74000 -0.51000
+v 0.46620 3.17787 0.00000
+v 0.42500 3.13667 0.00000
+v 0.40217 3.15950 0.00000
+v -1.56606 3.33561 0.00000
+v -1.67572 3.22596 0.00000
+v -1.10258 2.10091 0.00000
+v -0.94902 1.94735 0.00000
+v 0.81303 0.64136 0.00000
+v 0.86500 0.69333 0.00000
+v 0.87878 0.67954 0.00000
+v 2.59708 0.57540 0.00000
+v 2.71661 0.69494 0.00000
+v 2.54845 0.89673 0.00000
+v 3.05011 2.31319 0.00000
+v 2.85153 3.40014 0.00000
+v 2.73500 3.51667 0.00000
+v 2.61779 3.39946 0.00000
+v 2.40711 2.99818 0.00000
+v 2.33295 2.91872 0.00000
+v 2.29052 2.96115 0.00000
+v 2.08052 3.31115 0.00000
+v 1.96500 3.42667 0.00000
+v 1.84205 3.30372 0.00000
+v 1.85205 2.54372 0.00000
+v 1.83376 2.52544 0.00000
+v 0.79768 3.90004 0.00000
+v 0.53500 3.13000 0.51000
+v 0.42500 3.02000 0.51000
+v 0.36500 3.08000 0.51000
+v -1.53500 3.25000 0.51000
+v -1.57500 3.21000 0.51000
+v -1.03500 2.15000 0.51000
+v -0.89500 2.01000 0.51000
+v 0.80500 0.75000 0.51000
+v 0.86500 0.81000 0.51000
+v 0.91500 0.76000 0.51000
+v 2.56500 0.66000 0.51000
+v 2.60500 0.70000 0.51000
+v 2.45500 0.88000 0.51000
+v 2.96500 2.32000 0.51000
+v 2.77500 3.36000 0.51000
+v 2.73500 3.40000 0.51000
+v 2.68500 3.35000 0.51000
+v 2.47500 2.95000 0.51000
+v 2.33500 2.80000 0.51000
+v 2.22500 2.91000 0.51000
+v 2.01500 3.26000 0.51000
+v 1.96500 3.31000 0.51000
+v 1.92500 3.27000 0.51000
+v 1.93500 2.51000 0.51000
+v 1.82500 2.40000 0.51000
+v 0.81500 3.74000 0.51000
+v 0.81590 3.69070 0.51000
+v 0.54830 3.06250 0.51000
+v 1.87920 1.55060 0.51000
+v 1.91580 2.17190 0.51000
+v 0.81590 3.69070 0.52000
+v 0.54830 3.06250 0.52000
+v 1.87920 1.55060 0.52000
+v 1.91580 2.17190 0.52000
+v 0.82271 3.63014 0.55000
+v 0.58331 3.06813 0.55000
+v 1.85354 1.62515 0.55000
+v 1.88522 2.16298 0.55000
+v 0.82271 3.63014 -0.55000
+v 0.58331 3.06813 -0.55000
+v 1.85354 1.62515 -0.55000
+v 1.88522 2.16298 -0.55000
+v 0.81590 3.69070 -0.52000
+v 0.54830 3.06250 -0.52000
+v 1.87920 1.55060 -0.52000
+v 1.91580 2.17190 -0.52000
+v 0.81590 3.69070 -0.51000
+v 0.54830 3.06250 -0.51000
+v 1.87920 1.55060 -0.51000
+v 1.91580 2.17190 -0.51000
+v -1.53380 3.20620 0.51000
+v -0.98000 2.13170 0.51000
+v 0.37130 3.04000 0.51000
+v -1.53380 3.20620 0.52000
+v -0.98000 2.13170 0.52000
+v 0.37130 3.04000 0.52000
+v -1.48221 3.17159 0.55000
+v -0.96877 2.17540 0.55000
+v 0.28830 3.01860 0.55000
+v -1.48221 3.17159 -0.55000
+v -0.96877 2.17540 -0.55000
+v 0.28830 3.01860 -0.55000
+v -1.53380 3.20620 -0.52000
+v -0.98000 2.13170 -0.52000
+v 0.37130 3.04000 -0.52000
+v -1.53380 3.20620 -0.51000
+v -0.98000 2.13170 -0.51000
+v 0.37130 3.04000 -0.51000
+v 0.83520 2.59470 0.51000
+v 0.51260 2.96690 0.51000
+v 0.05410 2.72420 0.51000
+v -0.90340 2.05080 0.51000
+v 0.81410 0.78140 0.51000
+v 0.83520 2.59470 0.52000
+v 0.51260 2.96690 0.52000
+v 0.05410 2.72420 0.52000
+v -0.90340 2.05080 0.52000
+v 0.81410 0.78140 0.52000
+v 0.80507 2.58366 0.55000
+v 0.50555 2.92923 0.55000
+v 0.06981 2.69857 0.55000
+v -0.85211 2.05020 0.55000
+v 0.78478 0.84037 0.55000
+v 0.80507 2.58366 -0.55000
+v 0.50555 2.92923 -0.55000
+v 0.06981 2.69857 -0.55000
+v -0.85211 2.05020 -0.55000
+v 0.78478 0.84037 -0.55000
+v 0.83520 2.59470 -0.52000
+v 0.51260 2.96690 -0.52000
+v 0.05410 2.72420 -0.52000
+v -0.90340 2.05080 -0.52000
+v 0.81410 0.78140 -0.52000
+v 0.83520 2.59470 -0.51000
+v 0.51260 2.96690 -0.51000
+v 0.05410 2.72420 -0.51000
+v -0.90340 2.05080 -0.51000
+v 0.81410 0.78140 -0.51000
+v 2.74490 3.35780 0.51000
+v 2.33820 2.62830 0.51000
+v 2.68710 2.09930 0.51000
+v 2.92820 2.31500 0.51000
+v 2.74490 3.35780 0.52000
+v 2.33820 2.62830 0.52000
+v 2.68710 2.09930 0.52000
+v 2.92820 2.31500 0.52000
+v 2.73063 3.27328 0.55000
+v 2.37328 2.62961 0.55000
+v 2.69300 2.14484 0.55000
+v 2.89577 2.32624 0.55000
+v 2.73063 3.27328 -0.55000
+v 2.37328 2.62961 -0.55000
+v 2.69300 2.14484 -0.55000
+v 2.89577 2.32624 -0.55000
+v 2.74490 3.35780 -0.52000
+v 2.33820 2.62830 -0.52000
+v 2.68710 2.09930 -0.52000
+v 2.92820 2.31500 -0.52000
+v 2.74490 3.35780 -0.51000
+v 2.33820 2.62830 -0.51000
+v 2.68710 2.09930 -0.51000
+v 2.92820 2.31500 -0.51000
+v 2.68730 2.09100 0.51000
+v 1.97310 3.26600 0.51000
+v 1.99610 1.52660 0.51000
+v 2.68730 2.09100 0.52000
+v 1.97310 3.26600 0.52000
+v 1.99610 1.52660 0.52000
+v 2.64810 2.09773 0.55000
+v 1.99676 3.18362 0.55000
+v 2.02528 1.58915 0.55000
+v 2.64810 2.09773 -0.55000
+v 1.99676 3.18362 -0.55000
+v 2.02528 1.58915 -0.55000
+v 2.68730 2.09100 -0.52000
+v 1.97310 3.26600 -0.52000
+v 1.99610 1.52660 -0.52000
+v 2.68730 2.09100 -0.51000
+v 1.97310 3.26600 -0.51000
+v 1.99610 1.52660 -0.51000
+v 0.92450 0.79230 0.51000
+v 2.56980 0.69430 0.51000
+v 0.94630 2.50300 0.51000
+v 0.92450 0.79230 0.52000
+v 2.56980 0.69430 0.52000
+v 0.94630 2.50300 0.52000
+v 0.95486 0.82054 0.55000
+v 2.49871 0.72859 0.55000
+v 0.97532 2.42576 0.55000
+v 0.95486 0.82054 -0.55000
+v 2.49871 0.72859 -0.55000
+v 0.97532 2.42576 -0.55000
+v 0.92450 0.79230 -0.52000
+v 2.56980 0.69430 -0.52000
+v 0.94630 2.50300 -0.52000
+v 0.92450 0.79230 -0.51000
+v 2.56980 0.69430 -0.51000
+v 0.94630 2.50300 -0.51000
+v 1.95750 1.44360 0.51000
+v 2.45110 0.90300 0.51000
+v 2.90950 2.25450 0.51000
+v 1.95750 1.44360 0.52000
+v 2.45110 0.90300 0.52000
+v 2.90950 2.25450 0.52000
+v 2.00059 1.44090 0.55000
+v 2.43901 0.96074 0.55000
+v 2.86138 2.18357 0.55000
+v 2.00059 1.44090 -0.55000
+v 2.43901 0.96074 -0.55000
+v 2.86138 2.18357 -0.55000
+v 1.95750 1.44360 -0.52000
+v 2.45110 0.90300 -0.52000
+v 2.90950 2.25450 -0.52000
+v 1.95750 1.44360 -0.51000
+v 2.45110 0.90300 -0.51000
+v 2.90950 2.25450 -0.51000
+v -4.19500 2.90000 -0.22000
+v -4.23500 2.93000 -0.22000
+v -4.27500 2.89000 -0.22000
+v -4.41500 1.39000 -0.22000
+v -4.37500 1.35000 -0.22000
+v -4.39500 1.32000 -0.22000
+v -3.17500 0.13000 -0.22000
+v 0.22500 0.07000 -0.22000
+v 0.26500 0.11000 -0.22000
+v 0.23500 0.15000 -0.22000
+v -0.50500 1.02000 -0.22000
+v -0.53500 1.00000 -0.22000
+v -0.58500 1.05000 -0.22000
+v -2.16500 0.77000 -0.22000
+v -2.26500 0.67000 -0.22000
+v -3.41500 1.45000 -0.22000
+v -3.55500 1.59000 -0.22000
+v -3.68500 2.17000 -0.22000
+v -3.08500 2.84000 -0.22000
+v -2.86500 3.85000 -0.22000
+v -2.91500 3.89000 -0.22000
+v -4.19536 2.94902 0.00000
+v -4.23866 2.98149 0.00000
+v -4.31252 2.90763 0.00000
+v -4.45553 1.37538 0.00000
+v -4.42519 1.34503 0.00000
+v -4.44541 1.31469 0.00000
+v -3.19116 0.09128 0.00000
+v 0.24087 0.03071 0.00000
+v 0.31649 0.10634 0.00000
+v 0.26548 0.17436 0.00000
+v -0.49777 1.07169 0.00000
+v -0.53003 1.05019 0.00000
+v -0.57179 1.09195 0.00000
+v -2.18390 0.80626 0.00000
+v -2.26978 0.72037 0.00000
+v -3.39004 1.48020 0.00000
+v -3.51942 1.60957 0.00000
+v -3.64255 2.15894 0.00000
+v -3.04908 2.82165 0.00000
+v -2.82174 3.86534 0.00000
+v -2.91459 3.93962 0.00000
+v -4.19500 2.90000 0.22000
+v -4.23500 2.93000 0.22000
+v -4.27500 2.89000 0.22000
+v -4.41500 1.39000 0.22000
+v -4.37500 1.35000 0.22000
+v -4.39500 1.32000 0.22000
+v -3.17500 0.13000 0.22000
+v 0.22500 0.07000 0.22000
+v 0.26500 0.11000 0.22000
+v 0.23500 0.15000 0.22000
+v -0.50500 1.02000 0.22000
+v -0.53500 1.00000 0.22000
+v -0.58500 1.05000 0.22000
+v -2.16500 0.77000 0.22000
+v -2.26500 0.67000 0.22000
+v -3.41500 1.45000 0.22000
+v -3.55500 1.59000 0.22000
+v -3.68500 2.17000 0.22000
+v -3.08500 2.84000 0.22000
+v -2.86500 3.85000 0.22000
+v -2.91500 3.89000 0.22000
+v 0.23300 0.10780 0.22000
+v -0.49920 0.97510 0.22000
+v -1.55810 0.15280 0.22000
+v 0.23300 0.10780 0.23000
+v -0.49920 0.97510 0.23000
+v -1.55810 0.15280 0.23000
+v 0.16700 0.13947 0.26000
+v -0.50355 0.93374 0.26000
+v -1.47667 0.17957 0.26000
+v 0.16700 0.13947 -0.26000
+v -0.50355 0.93374 -0.26000
+v -1.47667 0.17957 -0.26000
+v 0.23300 0.10780 -0.23000
+v -0.49920 0.97510 -0.23000
+v -1.55810 0.15280 -0.23000
+v 0.23300 0.10780 -0.22000
+v -0.49920 0.97510 -0.22000
+v -1.55810 0.15280 -0.22000
+v -1.54470 0.24930 0.22000
+v -0.58470 1.00780 0.22000
+v -2.16090 0.72330 0.22000
+v -1.54470 0.24930 0.23000
+v -0.58470 1.00780 0.23000
+v -2.16090 0.72330 0.23000
+v -1.54495 0.28734 0.26000
+v -0.66284 0.97257 0.26000
+v -2.08895 0.70580 0.26000
+v -1.54495 0.28734 -0.26000
+v -0.66284 0.97257 -0.26000
+v -2.08895 0.70580 -0.26000
+v -1.54470 0.24930 -0.23000
+v -0.58470 1.00780 -0.23000
+v -2.16090 0.72330 -0.23000
+v -1.54470 0.24930 -0.22000
+v -0.58470 1.00780 -0.22000
+v -2.16090 0.72330 -0.22000
+v -1.51280 0.11360 0.22000
+v -3.48900 1.46210 0.22000
+v -3.16650 0.16090 0.22000
+v -1.51280 0.11360 0.23000
+v -3.48900 1.46210 0.23000
+v -3.16650 0.16090 0.23000
+v -1.59433 0.14005 0.26000
+v -3.44097 1.39300 0.26000
+v -3.14286 0.19024 0.26000
+v -1.59433 0.14005 -0.26000
+v -3.44097 1.39300 -0.26000
+v -3.14286 0.19024 -0.26000
+v -1.51280 0.11360 -0.23000
+v -3.48900 1.46210 -0.23000
+v -3.16650 0.16090 -0.23000
+v -1.51280 0.11360 -0.22000
+v -3.48900 1.46210 -0.22000
+v -3.16650 0.16090 -0.22000
+v -4.34800 1.31620 0.22000
+v -3.27470 0.25420 0.22000
+v -3.71540 2.15230 0.22000
+v -4.34800 1.31620 0.23000
+v -3.27470 0.25420 0.23000
+v -3.71540 2.15230 0.23000
+v -4.30823 1.31905 0.26000
+v -3.31650 0.32903 0.26000
+v -3.73013 2.08311 0.26000
+v -4.30823 1.31905 -0.26000
+v -3.31650 0.32903 -0.26000
+v -3.73013 2.08311 -0.26000
+v -4.34800 1.31620 -0.23000
+v -3.27470 0.25420 -0.23000
+v -3.71540 2.15230 -0.23000
+v -4.34800 1.31620 -0.22000
+v -3.27470 0.25420 -0.22000
+v -3.71540 2.15230 -0.22000
+v -4.23430 2.88360 0.22000
+v -4.35570 1.38990 0.22000
+v -3.79710 2.10640 0.22000
+v -4.23430 2.88360 0.23000
+v -4.35570 1.38990 0.23000
+v -3.79710 2.10640 0.23000
+v -4.21596 2.79987 0.26000
+v -4.32457 1.46976 0.26000
+v -3.83304 2.10910 0.26000
+v -4.21596 2.79987 -0.26000
+v -4.32457 1.46976 -0.26000
+v -3.83304 2.10910 -0.26000
+v -4.23430 2.88360 -0.23000
+v -4.35570 1.38990 -0.23000
+v -3.79710 2.10640 -0.23000
+v -4.23430 2.88360 -0.22000
+v -4.35570 1.38990 -0.22000
+v -3.79710 2.10640 -0.22000
+v -4.12680 2.91050 0.22000
+v -3.71260 2.17180 0.22000
+v -3.11790 2.83140 0.22000
+v -2.91480 3.84710 0.22000
+v -4.12680 2.91050 0.23000
+v -3.71260 2.17180 0.23000
+v -3.11790 2.83140 0.23000
+v -2.91480 3.84710 0.23000
+v -4.08797 2.90259 0.26000
+v -3.70688 2.22294 0.26000
+v -3.14570 2.84537 0.26000
+v -2.95995 3.77429 0.26000
+v -4.08797 2.90259 -0.26000
+v -3.70688 2.22294 -0.26000
+v -3.14570 2.84537 -0.26000
+v -2.95995 3.77429 -0.26000
+v -4.12680 2.91050 -0.23000
+v -3.71260 2.17180 -0.23000
+v -3.11790 2.83140 -0.23000
+v -2.91480 3.84710 -0.23000
+v -4.12680 2.91050 -0.22000
+v -3.71260 2.17180 -0.22000
+v -3.11790 2.83140 -0.22000
+v -2.91480 3.84710 -0.22000
+v 3.54500 1.01000 -0.51000
+v 2.45500 0.95000 -0.51000
+v 2.41500 0.91000 -0.51000
+v 2.45500 0.84000 -0.51000
+v 2.34500 0.73000 -0.51000
+v 1.88500 0.73000 -0.51000
+v 1.84500 0.69000 -0.51000
+v 2.96500 0.05000 -0.51000
+v 3.07500 0.16000 -0.51000
+v 4.35500 0.09000 -0.51000
+v 4.39500 0.13000 -0.51000
+v 4.35500 0.18000 -0.51000
+v 3.57500 1.04000 -0.51000
+v 3.52797 1.04812 -0.29000
+v 2.43797 0.98812 -0.29000
+v 2.36636 0.91651 -0.29000
+v 2.40636 0.84651 -0.29000
+v 2.32885 0.76900 -0.29000
+v 1.86885 0.76900 -0.29000
+v 1.78132 0.68147 -0.29000
+v 2.97151 0.00136 -0.29000
+v 3.09026 0.12011 -0.29000
+v 4.37026 0.05011 -0.29000
+v 4.44726 0.12711 -0.29000
+v 4.38470 0.20531 -0.29000
+v 3.57638 1.09653 -0.29000
+v 3.54500 1.01000 -0.07000
+v 2.45500 0.95000 -0.07000
+v 2.41500 0.91000 -0.07000
+v 2.45500 0.84000 -0.07000
+v 2.34500 0.73000 -0.07000
+v 1.88500 0.73000 -0.07000
+v 1.84500 0.69000 -0.07000
+v 2.96500 0.05000 -0.07000
+v 3.07500 0.16000 -0.07000
+v 4.35500 0.09000 -0.07000
+v 4.39500 0.13000 -0.07000
+v 4.35500 0.18000 -0.07000
+v 3.57500 1.04000 -0.07000
+v 2.89000 0.18030 -0.07000
+v 3.53350 0.97590 -0.07000
+v 2.45710 0.90570 -0.07000
+v 2.89000 0.18030 -0.06000
+v 3.53350 0.97590 -0.06000
+v 2.45710 0.90570 -0.06000
+v 2.89372 0.23261 -0.03000
+v 3.46710 0.94151 -0.03000
+v 2.50800 0.87896 -0.03000
+v 2.89372 0.23261 -0.55000
+v 3.46710 0.94151 -0.55000
+v 2.50800 0.87896 -0.55000
+v 2.89000 0.18030 -0.52000
+v 3.53350 0.97590 -0.52000
+v 2.45710 0.90570 -0.52000
+v 2.89000 0.18030 -0.51000
+v 3.53350 0.97590 -0.51000
+v 2.45710 0.90570 -0.51000
+v 2.97380 0.08820 -0.07000
+v 2.55590 0.69000 -0.07000
+v 1.89060 0.69000 -0.07000
+v 2.97380 0.08820 -0.06000
+v 2.55590 0.69000 -0.06000
+v 1.89060 0.69000 -0.06000
+v 2.91024 0.14571 -0.03000
+v 2.54021 0.66000 -0.03000
+v 1.97357 0.66850 -0.03000
+v 2.91024 0.14571 -0.55000
+v 2.54021 0.66000 -0.55000
+v 1.97357 0.66850 -0.55000
+v 2.97380 0.08820 -0.52000
+v 2.55590 0.69000 -0.52000
+v 1.89060 0.69000 -0.52000
+v 2.97380 0.08820 -0.51000
+v 2.55590 0.69000 -0.51000
+v 1.89060 0.69000 -0.51000
+v 4.35770 0.12090 -0.07000
+v 3.58310 0.99230 -0.07000
+v 2.95590 0.19410 -0.07000
+v 4.35770 0.12090 -0.06000
+v 3.58310 0.99230 -0.06000
+v 2.95590 0.19410 -0.06000
+v 4.28760 0.15460 -0.03000
+v 3.58452 0.94555 -0.03000
+v 3.01522 0.22104 -0.03000
+v 4.28760 0.15460 -0.55000
+v 3.58452 0.94555 -0.55000
+v 3.01522 0.22104 -0.55000
+v 4.35770 0.12090 -0.52000
+v 3.58310 0.99230 -0.52000
+v 2.95590 0.19410 -0.52000
+v 4.35770 0.12090 -0.51000
+v 3.58310 0.99230 -0.51000
+v 2.95590 0.19410 -0.51000
+v -2.58500 2.28000 -0.45000
+v -2.88500 1.16000 -0.45000
+v -2.23500 0.66000 -0.45000
+v -0.94500 2.00000 -0.45000
+v -1.51500 3.09000 -0.45000
+v -1.64500 3.16000 -0.45000
+v -2.61444 2.29765 -0.27000
+v -2.92257 1.14727 -0.27000
+v -2.23171 0.61584 -0.27000
+v -0.90474 1.99423 -0.27000
+v -1.49045 3.11426 -0.27000
+v -1.65024 3.20030 -0.27000
+v -2.58500 2.28000 -0.09000
+v -2.88500 1.16000 -0.09000
+v -2.23500 0.66000 -0.09000
+v -0.94500 2.00000 -0.09000
+v -1.51500 3.09000 -0.09000
+v -1.64500 3.16000 -0.09000
+v -1.64230 3.11290 -0.09000
+v -2.54070 2.27140 -0.09000
+v -2.84090 1.14310 -0.09000
+v -2.25050 0.73440 -0.09000
+v -1.64230 3.11290 -0.08000
+v -2.54070 2.27140 -0.08000
+v -2.84090 1.14310 -0.08000
+v -2.25050 0.73440 -0.08000
+v -1.68594 3.03913 -0.05000
+v -2.51392 2.25538 -0.05000
+v -2.80649 1.15576 -0.05000
+v -2.26888 0.78361 -0.05000
+v -1.68594 3.03913 -0.49000
+v -2.51392 2.25538 -0.49000
+v -2.80649 1.15576 -0.49000
+v -2.26888 0.78361 -0.49000
+v -1.64230 3.11290 -0.46000
+v -2.54070 2.27140 -0.46000
+v -2.84090 1.14310 -0.46000
+v -2.25050 0.73440 -0.46000
+v -1.64230 3.11290 -0.45000
+v -2.54070 2.27140 -0.45000
+v -2.84090 1.14310 -0.45000
+v -2.25050 0.73440 -0.45000
+v -2.22390 0.69780 -0.09000
+v -0.97620 1.99300 -0.09000
+v -1.55650 3.09790 -0.09000
+v -2.22390 0.69780 -0.08000
+v -0.97620 1.99300 -0.08000
+v -1.55650 3.09790 -0.08000
+v -2.18139 0.77223 -0.05000
+v -1.01283 1.99822 -0.05000
+v -1.54787 3.01695 -0.05000
+v -2.18139 0.77223 -0.49000
+v -1.01283 1.99822 -0.49000
+v -1.54787 3.01695 -0.49000
+v -2.22390 0.69780 -0.46000
+v -0.97620 1.99300 -0.46000
+v -1.55650 3.09790 -0.46000
+v -2.22390 0.69780 -0.45000
+v -0.97620 1.99300 -0.45000
+v -1.55650 3.09790 -0.45000
+v -0.77865 7.09090 -0.31000
+v 0.04076 6.29017 -0.31000
+v 1.32301 6.23026 -0.31000
+v -0.85000 7.13840 -0.28000
+v 0.02790 6.26060 -0.28000
+v 1.40680 6.21220 -0.28000
+v -0.85000 7.13840 -0.24000
+v 0.02790 6.26060 -0.24000
+v 1.40680 6.21220 -0.24000
+v -0.77865 7.09090 -0.21000
+v 0.04076 6.29017 -0.21000
+v 1.32301 6.23026 -0.21000
+v 3.54500 1.01000 0.07000
+v 2.45500 0.95000 0.07000
+v 2.41500 0.91000 0.07000
+v 2.45500 0.84000 0.07000
+v 2.34500 0.73000 0.07000
+v 1.88500 0.73000 0.07000
+v 1.84500 0.69000 0.07000
+v 2.96500 0.05000 0.07000
+v 3.07500 0.16000 0.07000
+v 4.35500 0.09000 0.07000
+v 4.39500 0.13000 0.07000
+v 4.35500 0.18000 0.07000
+v 3.57500 1.04000 0.07000
+v 3.52797 1.04812 0.29000
+v 2.43797 0.98812 0.29000
+v 2.36636 0.91651 0.29000
+v 2.40636 0.84651 0.29000
+v 2.32885 0.76900 0.29000
+v 1.86885 0.76900 0.29000
+v 1.78132 0.68147 0.29000
+v 2.97151 0.00136 0.29000
+v 3.09026 0.12011 0.29000
+v 4.37026 0.05011 0.29000
+v 4.44726 0.12711 0.29000
+v 4.38470 0.20531 0.29000
+v 3.57638 1.09653 0.29000
+v 3.54500 1.01000 0.51000
+v 2.45500 0.95000 0.51000
+v 2.41500 0.91000 0.51000
+v 2.45500 0.84000 0.51000
+v 2.34500 0.73000 0.51000
+v 1.88500 0.73000 0.51000
+v 1.84500 0.69000 0.51000
+v 2.96500 0.05000 0.51000
+v 3.07500 0.16000 0.51000
+v 4.35500 0.09000 0.51000
+v 4.39500 0.13000 0.51000
+v 4.35500 0.18000 0.51000
+v 3.57500 1.04000 0.51000
+v 2.89000 0.18030 0.51000
+v 3.53350 0.97590 0.51000
+v 2.45710 0.90570 0.51000
+v 2.89000 0.18030 0.52000
+v 3.53350 0.97590 0.52000
+v 2.45710 0.90570 0.52000
+v 2.89372 0.23261 0.55000
+v 3.46710 0.94151 0.55000
+v 2.50800 0.87896 0.55000
+v 2.89372 0.23261 0.03000
+v 3.46710 0.94151 0.03000
+v 2.50800 0.87896 0.03000
+v 2.89000 0.18030 0.06000
+v 3.53350 0.97590 0.06000
+v 2.45710 0.90570 0.06000
+v 2.89000 0.18030 0.07000
+v 3.53350 0.97590 0.07000
+v 2.45710 0.90570 0.07000
+v 2.97380 0.08820 0.51000
+v 2.55590 0.69000 0.51000
+v 1.89060 0.69000 0.51000
+v 2.97380 0.08820 0.52000
+v 2.55590 0.69000 0.52000
+v 1.89060 0.69000 0.52000
+v 2.91024 0.14571 0.55000
+v 2.54021 0.66000 0.55000
+v 1.97357 0.66850 0.55000
+v 2.91024 0.14571 0.03000
+v 2.54021 0.66000 0.03000
+v 1.97357 0.66850 0.03000
+v 2.97380 0.08820 0.06000
+v 2.55590 0.69000 0.06000
+v 1.89060 0.69000 0.06000
+v 2.97380 0.08820 0.07000
+v 2.55590 0.69000 0.07000
+v 1.89060 0.69000 0.07000
+v 4.35770 0.12090 0.51000
+v 3.58310 0.99230 0.51000
+v 2.95590 0.19410 0.51000
+v 4.35770 0.12090 0.52000
+v 3.58310 0.99230 0.52000
+v 2.95590 0.19410 0.52000
+v 4.28760 0.15460 0.55000
+v 3.58452 0.94555 0.55000
+v 3.01522 0.22104 0.55000
+v 4.28760 0.15460 0.03000
+v 3.58452 0.94555 0.03000
+v 3.01522 0.22104 0.03000
+v 4.35770 0.12090 0.06000
+v 3.58310 0.99230 0.06000
+v 2.95590 0.19410 0.06000
+v 4.35770 0.12090 0.07000
+v 3.58310 0.99230 0.07000
+v 2.95590 0.19410 0.07000
+v -2.58500 2.28000 0.09000
+v -2.88500 1.16000 0.09000
+v -2.23500 0.66000 0.09000
+v -0.94500 2.00000 0.09000
+v -1.51500 3.09000 0.09000
+v -1.64500 3.16000 0.09000
+v -2.61444 2.29765 0.27000
+v -2.92257 1.14727 0.27000
+v -2.23171 0.61584 0.27000
+v -0.90474 1.99423 0.27000
+v -1.49045 3.11426 0.27000
+v -1.65024 3.20030 0.27000
+v -2.58500 2.28000 0.45000
+v -2.88500 1.16000 0.45000
+v -2.23500 0.66000 0.45000
+v -0.94500 2.00000 0.45000
+v -1.51500 3.09000 0.45000
+v -1.64500 3.16000 0.45000
+v -1.64230 3.11290 0.45000
+v -2.54070 2.27140 0.45000
+v -2.84090 1.14310 0.45000
+v -2.25050 0.73440 0.45000
+v -1.64230 3.11290 0.46000
+v -2.54070 2.27140 0.46000
+v -2.84090 1.14310 0.46000
+v -2.25050 0.73440 0.46000
+v -1.68594 3.03913 0.49000
+v -2.51392 2.25538 0.49000
+v -2.80649 1.15576 0.49000
+v -2.26888 0.78361 0.49000
+v -1.68594 3.03913 0.05000
+v -2.51392 2.25538 0.05000
+v -2.80649 1.15576 0.05000
+v -2.26888 0.78361 0.05000
+v -1.64230 3.11290 0.08000
+v -2.54070 2.27140 0.08000
+v -2.84090 1.14310 0.08000
+v -2.25050 0.73440 0.08000
+v -1.64230 3.11290 0.09000
+v -2.54070 2.27140 0.09000
+v -2.84090 1.14310 0.09000
+v -2.25050 0.73440 0.09000
+v -2.22390 0.69780 0.45000
+v -0.97620 1.99300 0.45000
+v -1.55650 3.09790 0.45000
+v -2.22390 0.69780 0.46000
+v -0.97620 1.99300 0.46000
+v -1.55650 3.09790 0.46000
+v -2.18139 0.77223 0.49000
+v -1.01283 1.99822 0.49000
+v -1.54787 3.01695 0.49000
+v -2.18139 0.77223 0.05000
+v -1.01283 1.99822 0.05000
+v -1.54787 3.01695 0.05000
+v -2.22390 0.69780 0.08000
+v -0.97620 1.99300 0.08000
+v -1.55650 3.09790 0.08000
+v -2.22390 0.69780 0.09000
+v -0.97620 1.99300 0.09000
+v -1.55650 3.09790 0.09000
+v -0.77865 7.09090 0.21000
+v 0.04076 6.29017 0.21000
+v 1.32301 6.23026 0.21000
+v -0.85000 7.13840 0.24000
+v 0.02790 6.26060 0.24000
+v 1.40680 6.21220 0.24000
+v -0.85000 7.13840 0.28000
+v 0.02790 6.26060 0.28000
+v 1.40680 6.21220 0.28000
+v -0.77865 7.09090 0.31000
+v 0.04076 6.29017 0.31000
+v 1.32301 6.23026 0.31000
+v 1.33258 6.65718 -0.04000
+v 0.21012 7.34980 -0.04000
+v 0.64753 6.72725 -0.04000
+v 1.40490 6.63320 -0.01333
+v 0.15500 7.40240 -0.01333
+v 0.63260 6.70180 -0.01333
+v 1.40490 6.63320 0.01333
+v 0.15500 7.40240 0.01333
+v 0.63260 6.70180 0.01333
+v 1.33258 6.65718 0.04000
+v 0.21012 7.34980 0.04000
+v 0.64753 6.72725 0.04000
+v -2.73764 6.31934 -2.06205
+v -1.84418 5.09377 -1.64542
+v -0.81468 4.58660 -1.16536
+v -0.35903 5.01443 -0.95289
+v -2.78641 6.35520 -2.06272
+v -1.86406 5.07750 -1.63262
+v -0.82008 4.56320 -1.14581
+v -0.33476 5.01890 -0.91950
+v -2.79486 6.35520 -2.04460
+v -1.87251 5.07750 -1.61450
+v -0.82854 4.56320 -1.12768
+v -0.34321 5.01890 -0.90137
+v -2.76300 6.31934 -2.00767
+v -1.86954 5.09377 -1.59104
+v -0.84003 4.58660 -1.11098
+v -0.38439 5.01443 -0.89851
+v -1.76317 3.73100 -1.60765
+v -0.92912 4.51532 -1.21872
+v -2.12504 5.10854 -1.77639
+v -2.92612 5.42882 -2.14994
+v -1.77452 3.70200 -1.59087
+v -0.90401 4.52060 -1.18494
+v -2.12671 5.12710 -1.75510
+v -2.97628 5.46270 -2.15126
+v -1.78297 3.70200 -1.57274
+v -0.91246 4.52060 -1.16682
+v -2.13516 5.12710 -1.73697
+v -2.98473 5.46270 -2.13314
+v -1.78852 3.73100 -1.55327
+v -0.95447 4.51532 -1.16434
+v -2.15039 5.10854 -1.72201
+v -2.95148 5.42882 -2.09556
+v 0.61214 3.16548 -0.50002
+v -0.31445 4.90034 -0.93210
+v -1.67364 3.65926 -1.56590
+v 0.10373 3.23025 -0.73710
+v 0.63780 3.14100 -0.46599
+v -0.31808 4.93070 -0.91172
+v -1.72231 3.64850 -1.56653
+v 0.09230 3.21050 -0.72036
+v 0.62935 3.14100 -0.44786
+v -0.32653 4.93070 -0.89360
+v -1.73077 3.64850 -1.54840
+v 0.08384 3.21050 -0.70223
+v 0.58678 3.16548 -0.44564
+v -0.33981 4.90034 -0.87772
+v -1.69900 3.65926 -1.51152
+v 0.07838 3.23025 -0.68272
+v -2.76300 6.31934 2.00767
+v -1.86954 5.09377 1.59104
+v -0.84003 4.58660 1.11098
+v -0.38439 5.01443 0.89851
+v -2.79486 6.35520 2.04460
+v -1.87251 5.07750 1.61450
+v -0.82854 4.56320 1.12768
+v -0.34321 5.01890 0.90137
+v -2.78641 6.35520 2.06272
+v -1.86406 5.07750 1.63262
+v -0.82008 4.56320 1.14581
+v -0.33476 5.01890 0.91950
+v -2.73764 6.31934 2.06205
+v -1.84418 5.09377 1.64542
+v -0.81468 4.58660 1.16536
+v -0.35903 5.01443 0.95289
+v -1.78852 3.73100 1.55327
+v -0.95447 4.51532 1.16434
+v -2.15039 5.10854 1.72201
+v -2.95148 5.42882 2.09556
+v -1.78297 3.70200 1.57274
+v -0.91246 4.52060 1.16682
+v -2.13516 5.12710 1.73697
+v -2.98473 5.46270 2.13314
+v -1.77452 3.70200 1.59087
+v -0.90401 4.52060 1.18494
+v -2.12671 5.12710 1.75510
+v -2.97628 5.46270 2.15126
+v -1.76317 3.73100 1.60765
+v -0.92912 4.51532 1.21872
+v -2.12504 5.10854 1.77639
+v -2.92612 5.42882 2.14994
+v 0.58678 3.16548 0.44564
+v -0.33981 4.90034 0.87772
+v -1.69900 3.65926 1.51152
+v 0.07838 3.23025 0.68272
+v 0.62935 3.14100 0.44786
+v -0.32653 4.93070 0.89360
+v -1.73077 3.64850 1.54840
+v 0.08384 3.21050 0.70223
+v 0.63780 3.14100 0.46599
+v -0.31808 4.93070 0.91172
+v -1.72231 3.64850 1.56653
+v 0.09230 3.21050 0.72036
+v 0.61214 3.16548 0.50002
+v -0.31445 4.90034 0.93210
+v -1.67364 3.65926 1.56590
+v 0.10373 3.23025 0.73710
+vn -0.6976 -0.6976 -0.1636
+vn -0.7084 0.6866 -0.1635
+vn 0.5511 0.8183 -0.1636
+vn -0.6976 0.6976 -0.1636
+vn -0.5406 -0.8252 0.1636
+vn -0.6976 -0.6976 0.1636
+vn -0.7084 0.6866 0.1635
+vn 0.5511 0.8183 0.1636
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 0.0000 1.0000
+vn 0.5368 0.8437 0.0000
+vn 0.0404 0.9992 0.0000
+vn -0.4731 -0.8810 0.0000
+vn 0.0512 -0.9987 0.0000
+vn 0.3907 0.6196 0.6808
+vn 0.0350 0.7746 0.6315
+vn -0.3625 -0.6867 0.6301
+vn 0.0358 -0.7308 0.6816
+vn 0.3907 0.6196 -0.6808
+vn 0.0350 0.7746 -0.6315
+vn -0.3625 -0.6867 -0.6301
+vn 0.0358 -0.7308 -0.6816
+vn -0.4557 -0.8750 -0.1636
+vn 0.1971 -0.9666 -0.1636
+vn -0.4557 -0.8750 0.1636
+vn 0.1971 -0.9666 0.1636
+vn 0.1935 0.9674 0.1636
+vn 0.6059 -0.7955 0.0000
+vn 0.0000 1.0000 0.0000
+vn -0.6441 -0.7649 0.0000
+vn 0.4365 -0.5774 0.6900
+vn -0.0013 0.7262 0.6875
+vn -0.4575 -0.5443 0.7032
+vn 0.4365 -0.5774 -0.6900
+vn -0.0013 0.7262 -0.6875
+vn -0.4575 -0.5443 -0.7032
+vn -0.7150 0.6992 0.0000
+vn 0.2079 -0.9782 0.0000
+vn 0.6139 0.7894 0.0000
+vn -0.5270 0.5189 0.6731
+vn 0.1555 -0.7221 0.6741
+vn 0.4341 0.5582 0.7071
+vn -0.5270 0.5189 -0.6731
+vn 0.1555 -0.7221 -0.6741
+vn 0.4341 0.5582 -0.7071
+vn -0.5406 -0.8252 -0.1636
+vn -0.6287 -0.7603 -0.1636
+vn 0.6976 -0.6976 -0.1636
+vn 0.8824 -0.4412 -0.1636
+vn 0.6976 0.6976 -0.1636
+vn -0.3664 0.9160 -0.1636
+vn 0.2186 0.9620 -0.1635
+vn 0.2047 -0.9651 -0.1635
+vn -0.7510 -0.6397 -0.1636
+vn 0.6976 -0.6976 -0.1635
+vn 0.8869 -0.4321 -0.1636
+vn 0.7971 0.5812 -0.1636
+vn -0.9271 0.3371 -0.1635
+vn 0.0757 0.9836 -0.1636
+vn 0.1935 0.9674 -0.1636
+vn 0.0418 0.9856 -0.1636
+vn -0.6287 -0.7603 0.1636
+vn 0.6976 -0.6976 0.1636
+vn 0.8824 -0.4412 0.1636
+vn 0.6976 0.6976 0.1636
+vn -0.3664 0.9160 0.1636
+vn 0.2186 0.9620 0.1635
+vn 0.2047 -0.9651 0.1635
+vn -0.7510 -0.6397 0.1636
+vn 0.6976 -0.6976 0.1635
+vn 0.8869 -0.4321 0.1636
+vn 0.7971 0.5812 0.1636
+vn -0.9271 0.3371 0.1635
+vn -0.6976 0.6976 0.1636
+vn 0.0757 0.9836 0.1636
+vn 0.0418 0.9856 0.1636
+vn -0.0906 0.9959 0.0000
+vn -0.5597 -0.8287 0.0000
+vn 0.1982 -0.9802 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0899 0.9960 0.0000
+vn -0.0637 0.7123 0.6990
+vn -0.3996 -0.5925 0.6995
+vn 0.1402 -0.6931 0.7071
+vn 0.7071 0.0000 0.7071
+vn 0.0635 0.7042 0.7071
+vn -0.0637 0.7123 -0.6990
+vn -0.3996 -0.5925 -0.6995
+vn 0.1402 -0.6931 -0.7071
+vn 0.7071 0.0000 -0.7071
+vn 0.0635 0.7042 -0.7071
+vn 0.8944 -0.4472 0.0000
+vn 0.8204 0.5718 0.0000
+vn -0.9978 0.0667 0.0000
+vn -0.8532 -0.5216 0.0000
+vn 0.6324 -0.3162 0.7071
+vn 0.5891 0.4091 0.6969
+vn -0.7157 0.0467 0.6969
+vn -0.6033 -0.3688 0.7071
+vn 0.6324 -0.3162 -0.7071
+vn 0.5891 0.4091 -0.6969
+vn -0.7157 0.0467 -0.6969
+vn -0.6033 -0.3688 -0.7071
+vn 0.2179 0.9760 0.0000
+vn -0.6317 -0.7752 0.0000
+vn 0.8903 -0.4553 0.0000
+vn 0.1712 0.7520 0.6365
+vn -0.4846 -0.6000 0.6365
+vn 0.6296 -0.3220 0.7070
+vn 0.1712 0.7520 -0.6365
+vn -0.4846 -0.6000 -0.6365
+vn 0.6296 -0.3220 -0.7070
+vn -0.9811 0.0989 -0.1664
+vn -0.6160 -0.7700 -0.1664
+vn 0.7506 -0.6394 -0.1664
+vn 0.9855 -0.0340 -0.1664
+vn 0.6972 -0.6973 -0.1664
+vn -0.7833 -0.5990 -0.1664
+vn 0.8541 -0.4928 -0.1664
+vn 0.7513 -0.6386 -0.1664
+vn 0.7541 0.6353 -0.1664
+vn -0.4379 0.8835 -0.1664
+vn -0.9811 0.0989 0.1664
+vn -0.6160 -0.7700 0.1664
+vn 0.7506 -0.6394 0.1664
+vn 0.6973 -0.6972 0.1664
+vn 0.9855 -0.0340 0.1664
+vn 0.6972 -0.6973 0.1664
+vn -0.7833 -0.5990 0.1664
+vn 0.8541 -0.4928 0.1664
+vn 0.7513 -0.6386 0.1664
+vn 0.7541 0.6353 0.1664
+vn 0.5646 0.8084 0.1664
+vn 0.6972 0.6973 0.1664
+vn -0.4379 0.8835 0.1664
+vn 0.8288 -0.5596 0.0000
+vn -0.4322 0.9018 0.0000
+vn -0.9960 0.0897 0.0000
+vn 0.6695 -0.4517 0.5897
+vn -0.3281 0.6790 0.6567
+vn -0.7577 0.0709 0.6487
+vn 0.6695 -0.4517 -0.5897
+vn -0.3281 0.6790 -0.6567
+vn -0.7577 0.0709 -0.6487
+vn -0.8608 -0.5090 0.0000
+vn 0.8587 -0.5125 0.0000
+vn 0.7669 0.6418 0.0000
+vn -0.9732 -0.2300 0.0000
+vn -0.6086 -0.3599 0.7071
+vn 0.6072 -0.3624 0.7071
+vn 0.5925 0.4932 0.6369
+vn -0.7504 -0.1806 0.6358
+vn -0.6086 -0.3599 -0.7071
+vn 0.6072 -0.3624 -0.7071
+vn 0.5925 0.4932 -0.6369
+vn -0.7504 -0.1806 -0.6358
+vn -0.6973 -0.6972 -0.1664
+vn -0.8983 -0.4068 -0.1664
+vn 0.6973 -0.6972 -0.1664
+vn 0.7081 -0.6863 -0.1664
+vn -0.6973 -0.6972 0.1664
+vn -0.8983 -0.4068 0.1664
+vn 0.7081 -0.6863 0.1664
+vn -0.8289 0.5594 0.0000
+vn -0.9099 -0.4148 0.0000
+vn -0.8072 -0.5903 0.0000
+vn 0.9998 -0.0215 0.0000
+vn 0.8181 0.5751 0.0000
+vn -0.5861 0.3956 0.7071
+vn -0.6434 -0.2933 0.7071
+vn -0.5834 -0.4260 0.6915
+vn 0.7225 -0.0146 0.6913
+vn 0.5785 0.4066 0.7071
+vn -0.5861 0.3956 -0.7071
+vn -0.6434 -0.2933 -0.7071
+vn -0.5834 -0.4260 -0.6915
+vn 0.7225 -0.0146 -0.6913
+vn 0.5785 0.4066 -0.7071
+vn -0.7916 -0.5879 -0.1664
+vn 0.5646 0.8084 -0.1664
+vn 0.6972 0.6973 -0.1664
+vn -0.7916 -0.5879 0.1664
+vn -0.8087 -0.5882 0.0000
+vn 0.2615 -0.9652 0.0000
+vn 0.7201 -0.6939 0.0000
+vn 0.5706 0.8212 0.0000
+vn -0.8321 0.5547 0.0000
+vn -0.5719 -0.4159 0.7071
+vn 0.1849 -0.6825 0.7071
+vn 0.5091 -0.4906 0.7071
+vn 0.4035 0.5807 0.7071
+vn -0.5884 0.3922 0.7071
+vn -0.5719 -0.4159 -0.7071
+vn 0.1849 -0.6825 -0.7071
+vn 0.5091 -0.4906 -0.7071
+vn 0.4035 0.5807 -0.7071
+vn -0.5884 0.3922 -0.7071
+vn -0.8192 -0.5735 0.0000
+vn 0.9715 0.2370 0.0000
+vn -0.3823 0.9240 0.0000
+vn -0.6557 -0.4525 0.6044
+vn 0.7728 0.1941 0.6042
+vn -0.2703 0.6533 0.7071
+vn -0.6557 -0.4525 -0.6044
+vn 0.7728 0.1941 -0.6042
+vn -0.2703 0.6533 -0.7071
+vn -0.6980 0.6980 -0.1597
+vn 0.6980 0.6980 -0.1597
+vn 0.0880 0.9832 -0.1597
+vn -0.6980 0.6981 -0.1597
+vn -0.5878 -0.7931 -0.1597
+vn 0.6980 -0.6980 -0.1597
+vn -0.8972 0.4118 -0.1597
+vn -0.6980 0.6980 0.1597
+vn 0.6980 0.6980 0.1597
+vn 0.0880 0.9832 0.1597
+vn -0.6980 0.6981 0.1597
+vn -0.5878 -0.7931 0.1597
+vn 0.6980 -0.6980 0.1597
+vn -0.8972 0.4118 0.1597
+vn -0.9200 0.3919 0.0000
+vn -0.7506 -0.6607 0.0000
+vn 0.9983 -0.0588 0.0000
+vn 0.8099 0.5865 0.0000
+vn -0.6505 0.2771 0.7071
+vn -0.5308 -0.4672 0.7071
+vn 0.7059 -0.0416 0.7071
+vn 0.5727 0.4147 0.7071
+vn -0.6505 0.2771 -0.7071
+vn -0.5308 -0.4672 -0.7071
+vn 0.7059 -0.0416 -0.7071
+vn 0.5727 0.4147 -0.7071
+vn -0.8889 -0.4581 0.0000
+vn 0.5579 -0.8299 0.0000
+vn 0.0869 0.9962 0.0000
+vn -0.6285 -0.3239 0.7071
+vn 0.3991 -0.5943 0.6982
+vn 0.0619 0.7132 0.6982
+vn -0.6285 -0.3239 -0.7071
+vn 0.3991 -0.5943 -0.6982
+vn 0.0619 0.7132 -0.6982
+vn 0.7557 0.6550 0.0000
+vn -0.4678 0.8838 0.0000
+vn -0.5753 0.8180 0.0000
+vn -0.5944 -0.8042 0.0000
+vn 0.9999 -0.0116 0.0000
+vn 0.5343 0.4631 0.7071
+vn -0.3308 0.6250 0.7071
+vn -0.4068 0.5784 0.7071
+vn -0.4203 -0.5687 0.7071
+vn 0.7070 -0.0082 0.7071
+vn 0.5343 0.4631 -0.7071
+vn -0.3308 0.6250 -0.7071
+vn -0.4068 0.5784 -0.7071
+vn -0.4203 -0.5687 -0.7071
+vn 0.7070 -0.0082 -0.7071
+vn -0.8796 -0.4481 -0.1597
+vn -0.6980 -0.6980 -0.1597
+vn 0.6981 -0.6980 -0.1597
+vn 0.7584 0.6320 -0.1597
+vn 0.9305 -0.3296 -0.1597
+vn -0.9871 -0.0130 -0.1597
+vn 0.7883 0.5942 -0.1597
+vn -0.8796 -0.4481 0.1597
+vn -0.6980 -0.6980 0.1597
+vn 0.6981 -0.6980 0.1597
+vn 0.7584 0.6320 0.1597
+vn 0.9305 -0.3296 0.1597
+vn -0.9871 -0.0130 0.1597
+vn 0.7883 0.5942 0.1597
+vn -0.7385 -0.6743 0.0000
+vn 0.9470 -0.3212 0.0000
+vn -0.6484 0.7613 0.0000
+vn -0.5222 -0.4768 0.7071
+vn 0.7109 -0.2432 0.6599
+vn -0.4892 0.5708 0.6595
+vn -0.5222 -0.4768 -0.7071
+vn 0.7109 -0.2432 -0.6599
+vn -0.4892 0.5708 -0.6595
+vn -0.6981 -0.6980 -0.1597
+vn -0.0597 -0.9854 -0.1597
+vn 0.9711 0.1774 -0.1597
+vn -0.8740 0.4589 -0.1597
+vn -0.7217 0.6736 -0.1597
+vn 0.8465 0.5079 -0.1597
+vn -0.6981 -0.6980 0.1597
+vn -0.0597 -0.9854 0.1597
+vn 0.9711 0.1774 0.1597
+vn -0.8740 0.4589 0.1597
+vn -0.7217 0.6736 0.1597
+vn 0.8465 0.5079 0.1597
+vn -0.8734 0.4869 0.0000
+vn -0.8348 -0.5506 0.0000
+vn 0.6668 -0.7453 0.0000
+vn 0.9849 0.1731 0.0000
+vn -0.6249 0.3477 0.6990
+vn -0.5903 -0.3893 0.7071
+vn 0.4714 -0.5270 0.7071
+vn 0.7044 0.1234 0.6990
+vn -0.6249 0.3477 -0.6990
+vn -0.5903 -0.3893 -0.7071
+vn 0.4714 -0.5270 -0.7071
+vn 0.7044 0.1234 -0.6990
+vn 0.8545 0.5194 0.0000
+vn -0.9999 -0.0132 0.0000
+vn 0.6325 -0.7746 0.0000
+vn 0.6447 0.3894 0.6579
+vn -0.7523 -0.0116 0.6587
+vn 0.4472 -0.5477 0.7071
+vn 0.6447 0.3894 -0.6579
+vn -0.7523 -0.0116 -0.6587
+vn 0.4472 -0.5477 -0.7071
+vn -0.0595 -0.9982 0.0000
+vn 0.7442 0.6680 0.0000
+vn -0.9999 0.0127 0.0000
+vn -0.0420 -0.7059 0.7071
+vn 0.5262 0.4723 0.7071
+vn -0.7071 0.0090 0.7071
+vn -0.0420 -0.7059 -0.7071
+vn 0.5262 0.4723 -0.7071
+vn -0.7071 0.0090 -0.7071
+vn 0.5908 0.7877 -0.1745
+vn -0.6963 0.6963 -0.1745
+vn -0.9804 0.0915 -0.1745
+vn -0.6963 -0.6962 -0.1746
+vn -0.8193 0.5461 -0.1746
+vn -0.6875 -0.7049 -0.1746
+vn 0.6963 -0.6962 -0.1746
+vn 0.7877 0.5908 -0.1745
+vn 0.7500 0.6380 -0.1745
+vn -0.5461 0.8193 -0.1746
+vn 0.9608 0.2153 -0.1746
+vn 0.5908 0.7877 0.1745
+vn -0.6963 0.6963 0.1745
+vn -0.9804 0.0915 0.1745
+vn -0.6963 -0.6962 0.1746
+vn -0.8193 0.5461 0.1746
+vn -0.6875 -0.7049 0.1746
+vn 0.6963 -0.6962 0.1746
+vn 0.7877 0.5908 0.1745
+vn 0.7500 0.6380 0.1745
+vn -0.5461 0.8193 0.1746
+vn 0.9608 0.2153 0.1746
+vn 0.7641 0.6451 0.0000
+vn -0.6133 0.7898 0.0000
+vn -0.0251 -0.9997 0.0000
+vn 0.5403 0.4561 0.7071
+vn -0.4379 0.5644 0.6998
+vn -0.0177 -0.7140 0.7000
+vn 0.5403 0.4561 -0.7071
+vn -0.4379 0.5644 -0.6998
+vn -0.0177 -0.7140 -0.7000
+vn -0.7034 -0.7108 0.0000
+vn 0.9741 0.2262 0.0000
+vn -0.7975 0.6034 0.0000
+vn -0.5254 -0.5287 0.6667
+vn 0.7252 0.1696 0.6673
+vn -0.5639 0.4267 0.7071
+vn -0.5254 -0.5287 -0.6667
+vn 0.7252 0.1696 -0.6673
+vn -0.5639 0.4267 -0.7071
+vn -0.9967 0.0810 0.0000
+vn 0.7886 -0.6148 0.0000
+vn 0.8716 0.4903 0.0000
+vn -0.7681 0.0626 0.6373
+vn 0.5859 -0.4538 0.6714
+vn 0.6441 0.3599 0.6750
+vn -0.7681 0.0626 -0.6373
+vn 0.5859 -0.4538 -0.6714
+vn 0.6441 0.3599 -0.6750
+vn -0.0174 -0.9845 -0.1746
+vn -0.6963 0.6962 -0.1746
+vn 0.5527 0.8149 -0.1746
+vn 0.6962 0.6963 -0.1746
+vn -0.0174 -0.9845 0.1746
+vn -0.6963 0.6962 0.1746
+vn 0.6962 0.6963 0.1746
+vn 0.5636 0.8260 0.0000
+vn -0.9706 -0.2406 0.0000
+vn -0.0286 -0.9996 0.0000
+vn 0.4178 0.6140 0.6697
+vn -0.6863 -0.1701 0.7071
+vn -0.0226 -0.7429 0.6690
+vn 0.4178 0.6140 -0.6697
+vn -0.6863 -0.1701 -0.7071
+vn -0.0226 -0.7429 -0.6690
+vn 0.6962 0.6962 -0.1746
+vn -0.1718 0.9695 -0.1746
+vn 0.7335 -0.6569 -0.1746
+vn 0.9621 -0.2096 -0.1746
+vn 0.6151 0.7689 -0.1746
+vn -0.6024 0.7789 -0.1745
+vn 0.6962 0.6962 0.1746
+vn -0.1718 0.9695 0.1746
+vn 0.5527 0.8149 0.1746
+vn 0.7335 -0.6569 0.1746
+vn 0.9621 -0.2096 0.1746
+vn 0.6151 0.7689 0.1746
+vn -0.6024 0.7789 0.1745
+vn 0.6199 -0.7846 0.0000
+vn -0.1776 0.9841 0.0000
+vn -0.6097 -0.7926 0.0000
+vn 0.4717 -0.6018 0.6444
+vn -0.1379 0.7510 0.6458
+vn -0.4311 -0.5605 0.7071
+vn 0.4717 -0.6018 -0.6444
+vn -0.1379 0.7510 -0.6458
+vn -0.4311 -0.5605 -0.7071
+vn -0.8722 -0.4891 0.0000
+vn 0.7427 -0.6696 0.0000
+vn 0.9806 -0.1961 0.0000
+vn -0.6115 0.7913 0.0000
+vn -0.6168 -0.3458 0.7071
+vn 0.5252 -0.4735 0.7071
+vn 0.6934 -0.1387 0.7071
+vn -0.4323 0.5595 0.7071
+vn -0.6168 -0.3458 -0.7071
+vn 0.5252 -0.4735 -0.7071
+vn 0.6934 -0.1387 -0.7071
+vn -0.4323 0.5595 -0.7071
+vn -0.0541 0.9832 -0.1745
+vn -0.4885 -0.8549 -0.1746
+vn 0.6963 -0.6963 -0.1745
+vn -0.0541 0.9832 0.1745
+vn -0.4885 -0.8549 0.1746
+vn 0.6963 -0.6963 0.1745
+vn 0.7775 -0.6289 0.0000
+vn -0.0651 0.9979 0.0000
+vn -0.8587 -0.5125 0.0000
+vn 0.5498 -0.4447 0.7071
+vn -0.0460 0.7057 0.7071
+vn -0.6072 -0.3623 0.7071
+vn 0.5498 -0.4447 -0.7071
+vn -0.0460 0.7057 -0.7071
+vn -0.6072 -0.3623 -0.7071
+vn 0.8214 0.5704 0.0000
+vn -0.4857 -0.8741 0.0000
+vn 0.6334 0.4472 0.6316
+vn 0.0053 0.7617 0.6479
+vn -0.4019 -0.7219 0.5633
+vn 0.6334 0.4472 -0.6316
+vn 0.0053 0.7617 -0.6479
+vn -0.4019 -0.7219 -0.5633
+vn -0.8549 -0.4885 -0.1746
+vn 0.0000 0.9846 -0.1746
+vn -0.0538 -0.9832 -0.1745
+vn 0.7689 0.6151 -0.1746
+vn 0.7293 0.6615 -0.1746
+vn -0.8549 -0.4885 0.1746
+vn 0.0000 0.9846 0.1746
+vn -0.0538 -0.9832 0.1745
+vn 0.7689 0.6151 0.1746
+vn 0.7293 0.6615 0.1746
+vn 0.7474 0.6644 0.0000
+vn -0.7863 0.6178 0.0000
+vn -0.0521 -0.9986 0.0000
+vn 0.5285 0.4698 0.7071
+vn -0.5560 0.4369 0.7071
+vn -0.0369 -0.7062 0.7071
+vn 0.5285 0.4698 -0.7071
+vn -0.5560 0.4369 -0.7071
+vn -0.0369 -0.7062 -0.7071
+vn -0.9501 0.2545 -0.1803
+vn -0.5997 -0.7796 -0.1803
+vn -0.6722 0.7181 -0.1803
+vn -0.9501 0.2545 0.1803
+vn 0.8716 0.4558 0.1803
+vn 0.4663 0.8660 0.1803
+vn -0.6722 0.7181 0.1803
+vn -0.6836 0.7298 0.0000
+vn -0.9664 0.2571 0.0000
+vn -0.5692 -0.8222 0.0000
+vn 0.9688 -0.2477 0.0000
+vn -0.5103 0.5420 0.6677
+vn -0.6834 0.1818 0.7071
+vn -0.4025 -0.5814 0.7071
+vn 0.7202 -0.1851 0.6686
+vn -0.5103 0.5420 -0.6677
+vn -0.6834 0.1818 -0.7071
+vn -0.4025 -0.5814 -0.7071
+vn 0.7202 -0.1851 -0.6686
+vn 0.7086 -0.6822 -0.1803
+vn 0.8716 0.4558 -0.1803
+vn 0.4663 0.8660 -0.1803
+vn -0.5997 -0.7796 0.1803
+vn 0.7086 -0.6822 0.1803
+vn 0.7202 -0.6938 0.0000
+vn 0.8853 0.4650 0.0000
+vn -0.9634 0.2679 0.0000
+vn 0.5507 -0.5278 0.6467
+vn 0.6260 0.3288 0.7071
+vn -0.7337 0.2055 0.6477
+vn 0.5507 -0.5278 -0.6467
+vn 0.6260 0.3288 -0.7071
+vn -0.7337 0.2055 -0.6477
+vn -0.5559 -0.5622 -0.6123
+vn -0.0326 -0.8012 -0.5975
+vn 0.3348 0.8166 -0.4701
+vn -0.7071 -0.7071 0.0000
+vn -0.0351 -0.9994 0.0000
+vn 0.3797 0.9251 0.0000
+vn -0.5559 -0.5622 0.6123
+vn -0.0326 -0.8012 0.5975
+vn 0.3348 0.8166 0.4701
+vn 0.4447 0.7216 -0.5306
+vn -0.6452 -0.4462 -0.6202
+vn -0.0732 -0.7696 -0.6344
+vn 0.5241 0.8516 0.0000
+vn -0.8263 -0.5633 0.0000
+vn -0.0885 -0.9961 0.0000
+vn 0.4447 0.7216 0.5306
+vn -0.6452 -0.4462 0.6202
+vn -0.0732 -0.7696 0.6344
+vn 0.4226 -0.0000 -0.9063
+vn -0.4226 -0.0000 0.9063
+vn -0.2847 -0.4860 -0.8263
+vn 0.0375 -0.6458 -0.7626
+vn 0.7142 -0.5385 -0.4471
+vn 0.5787 0.6962 -0.4247
+vn -0.7089 -0.6230 -0.3306
+vn -0.3695 -0.9131 -0.1724
+vn 0.5874 -0.7616 0.2739
+vn 0.4014 0.8966 0.1871
+vn -0.8160 -0.4860 0.3130
+vn -0.5601 -0.6457 0.5190
+vn 0.1164 -0.5385 0.8346
+vn 0.0465 0.6961 0.7164
+vn 0.7145 -0.5382 -0.4470
+vn 0.5616 0.6450 -0.5183
+vn 0.5114 0.6969 -0.5028
+vn -0.2513 -0.4458 -0.8592
+vn 0.5879 -0.7611 0.2741
+vn 0.3716 0.9121 0.1733
+vn 0.3055 0.9415 0.1424
+vn -0.7240 -0.6016 -0.3375
+vn 0.1168 -0.5382 0.8347
+vn -0.0360 0.6450 0.7634
+vn -0.0565 0.6969 0.7149
+vn -0.8197 -0.4457 0.3599
+vn 0.4226 0.0001 -0.9063
+vn -0.4226 -0.0002 0.9063
+vn 0.8510 0.3590 -0.3833
+vn -0.1098 0.5448 -0.8314
+vn 0.1618 -0.6909 -0.7047
+vn 0.2253 -0.7025 -0.6751
+vn 0.7808 0.5077 0.3640
+vn -0.5778 0.7704 -0.2695
+vn -0.1937 -0.9769 -0.0904
+vn -0.1040 -0.9934 -0.0485
+vn 0.2533 0.3590 0.8983
+vn -0.7074 0.5448 0.4503
+vn -0.4358 -0.6907 0.5770
+vn -0.3724 -0.7024 0.6066
+vn -0.4226 -0.0000 -0.9063
+vn 0.4226 -0.0000 0.9063
+vn -0.8160 -0.4860 -0.3130
+vn -0.5601 -0.6457 -0.5190
+vn 0.1164 -0.5385 -0.8346
+vn 0.0465 0.6961 -0.7164
+vn -0.7089 -0.6230 0.3306
+vn -0.3695 -0.9131 0.1724
+vn 0.5874 -0.7616 -0.2739
+vn 0.4014 0.8966 -0.1871
+vn -0.2847 -0.4860 0.8263
+vn 0.0375 -0.6458 0.7626
+vn 0.7142 -0.5385 0.4471
+vn 0.5787 0.6962 0.4247
+vn 0.1168 -0.5382 -0.8347
+vn -0.0360 0.6450 -0.7634
+vn -0.0565 0.6969 -0.7149
+vn -0.8197 -0.4457 -0.3599
+vn 0.5879 -0.7611 -0.2741
+vn 0.3716 0.9121 -0.1733
+vn 0.3055 0.9415 -0.1424
+vn -0.7240 -0.6016 0.3375
+vn 0.7145 -0.5382 0.4470
+vn 0.5616 0.6450 0.5183
+vn 0.5114 0.6969 0.5028
+vn -0.2513 -0.4458 0.8592
+vn -0.4226 -0.0002 -0.9063
+vn 0.4226 0.0001 0.9063
+vn 0.2533 0.3590 -0.8983
+vn -0.7074 0.5448 -0.4503
+vn -0.4358 -0.6907 -0.5770
+vn -0.3724 -0.7024 -0.6066
+vn 0.7808 0.5077 -0.3640
+vn -0.5778 0.7704 0.2695
+vn -0.1937 -0.9769 0.0904
+vn -0.1040 -0.9934 0.0485
+vn 0.8510 0.3590 0.3833
+vn -0.1098 0.5448 0.8314
+vn 0.1618 -0.6909 0.7047
+vn 0.2253 -0.7025 0.6751
+o head
+usemtl glass
+f 1//1 2//1 30//1 29//1
+f 6//2 7//2 35//2 34//2
+f 26//3 27//3 55//3 54//3
+f 28//4 1//4 29//4 56//4
+f 32//5 33//5 61//5 60//5
+f 33//6 34//6 62//6 61//6
+f 34//7 35//7 63//7 62//7
+f 35//6 36//6 64//6 63//6
+f 54//8 55//8 83//8 82//8
+f 1//9 28//9 27//9
+f 83//10 84//10 57//10
+f 1//9 27//9 26//9
+f 82//10 83//10 57//10
+f 1//9 26//9 25//9
+f 81//10 82//10 57//10
+f 3//9 2//9 1//9
+f 57//10 58//10 59//10
+f 85//9 88//9 87//9
+f 95//10 96//10 93//10
+f 87//9 86//9 85//9
+f 93//10 94//10 95//10
+f 85//11 86//11 90//11 89//11
+f 86//12 87//12 91//12 90//12
+f 87//13 88//13 92//13 91//13
+f 88//14 85//14 89//14 92//14
+f 89//15 90//15 94//15 93//15
+f 90//16 91//16 95//16 94//16
+f 91//17 92//17 96//17 95//17
+f 92//18 89//18 93//18 96//18
+f 97//9 100//9 99//9
+f 107//10 108//10 105//10
+f 99//9 98//9 97//9
+f 105//10 106//10 107//10
+f 97//19 98//19 102//19 101//19
+f 98//20 99//20 103//20 102//20
+f 99//21 100//21 104//21 103//21
+f 100//22 97//22 101//22 104//22
+f 101//11 102//11 106//11 105//11
+f 102//12 103//12 107//12 106//12
+f 103//13 104//13 108//13 107//13
+f 104//14 101//14 105//14 108//14
+usemtl dark
+f 2//23 3//23 31//23 30//23
+f 3//1 4//1 32//1 31//1
+f 7//1 8//1 36//1 35//1
+f 8//24 9//24 37//24 36//24
+f 29//6 30//6 58//6 57//6
+f 30//25 31//25 59//25 58//25
+f 36//26 37//26 65//26 64//26
+f 53//27 54//27 82//27 81//27
+f 1//9 25//9 21//9
+f 77//10 81//10 57//10
+f 15//9 9//9 8//9
+f 64//10 65//10 71//10
+f 15//9 8//9 7//9
+f 63//10 64//10 71//10
+f 15//9 7//9 6//9
+f 62//10 63//10 71//10
+f 165//9 164//9 163//9
+f 169//10 170//10 171//10
+f 163//28 164//28 167//28 166//28
+f 164//29 165//29 168//29 167//29
+f 165//30 163//30 166//30 168//30
+f 166//31 167//31 170//31 169//31
+f 167//32 168//32 171//32 170//32
+f 168//33 166//33 169//33 171//33
+f 174//9 173//9 172//9
+f 178//10 179//10 180//10
+f 172//34 173//34 176//34 175//34
+f 173//35 174//35 177//35 176//35
+f 174//36 172//36 175//36 177//36
+f 175//28 176//28 179//28 178//28
+f 176//29 177//29 180//29 179//29
+f 177//30 175//30 178//30 180//30
+f 183//9 182//9 181//9
+f 187//10 188//10 189//10
+f 181//37 182//37 185//37 184//37
+f 182//38 183//38 186//38 185//38
+f 183//39 181//39 184//39 186//39
+f 184//40 185//40 188//40 187//40
+f 185//41 186//41 189//41 188//41
+f 186//42 184//42 187//42 189//42
+f 192//9 191//9 190//9
+f 196//10 197//10 198//10
+f 190//43 191//43 194//43 193//43
+f 191//44 192//44 195//44 194//44
+f 192//45 190//45 193//45 195//45
+f 193//37 194//37 197//37 196//37
+f 194//38 195//38 198//38 197//38
+f 195//39 193//39 196//39 198//39
+usemtl champagne
+f 4//46 5//46 33//46 32//46
+f 5//1 6//1 34//1 33//1
+f 9//47 10//47 38//47 37//47
+f 10//48 11//48 39//48 38//48
+f 11//49 12//49 40//49 39//49
+f 12//50 13//50 41//50 40//50
+f 13//51 14//51 42//51 41//51
+f 14//52 15//52 43//52 42//52
+f 15//50 16//50 44//50 43//50
+f 16//48 17//48 45//48 44//48
+f 17//53 18//53 46//53 45//53
+f 18//54 19//54 47//54 46//54
+f 19//55 20//55 48//55 47//55
+f 20//56 21//56 49//56 48//56
+f 21//57 22//57 50//57 49//57
+f 22//58 23//58 51//58 50//58
+f 23//4 24//4 52//4 51//4
+f 24//59 25//59 53//59 52//59
+f 25//60 26//60 54//60 53//60
+f 27//61 28//61 56//61 55//61
+f 31//6 32//6 60//6 59//6
+f 37//62 38//62 66//62 65//62
+f 38//63 39//63 67//63 66//63
+f 39//64 40//64 68//64 67//64
+f 40//65 41//65 69//65 68//65
+f 41//66 42//66 70//66 69//66
+f 42//67 43//67 71//67 70//67
+f 43//65 44//65 72//65 71//65
+f 44//63 45//63 73//63 72//63
+f 45//68 46//68 74//68 73//68
+f 46//69 47//69 75//69 74//69
+f 47//70 48//70 76//70 75//70
+f 48//71 49//71 77//71 76//71
+f 49//72 50//72 78//72 77//72
+f 50//73 51//73 79//73 78//73
+f 51//74 52//74 80//74 79//74
+f 52//75 53//75 81//75 80//75
+f 55//76 56//76 84//76 83//76
+f 56//74 29//74 57//74 84//74
+f 23//9 22//9 21//9
+f 77//10 78//10 79//10
+f 24//9 23//9 21//9
+f 77//10 79//10 80//10
+f 25//9 24//9 21//9
+f 77//10 80//10 81//10
+f 21//9 20//9 19//9
+f 75//10 76//10 77//10
+f 21//9 19//9 18//9
+f 74//10 75//10 77//10
+f 1//9 21//9 18//9
+f 74//10 77//10 57//10
+f 1//9 18//9 17//9
+f 73//10 74//10 57//10
+f 1//9 17//9 16//9
+f 72//10 73//10 57//10
+f 1//9 16//9 15//9
+f 71//10 72//10 57//10
+f 14//9 13//9 12//9
+f 68//10 69//10 70//10
+f 15//9 14//9 12//9
+f 68//10 70//10 71//10
+f 15//9 12//9 11//9
+f 67//10 68//10 71//10
+f 15//9 11//9 10//9
+f 66//10 67//10 71//10
+f 15//9 10//9 9//9
+f 65//10 66//10 71//10
+f 15//9 6//9 5//9
+f 61//10 62//10 71//10
+f 15//9 5//9 4//9
+f 60//10 61//10 71//10
+f 15//9 4//9 3//9
+f 59//10 60//10 71//10
+f 1//9 15//9 3//9
+f 59//10 71//10 57//10
+f 109//9 113//9 112//9
+f 122//10 123//10 119//10
+f 109//9 112//9 111//9
+f 121//10 122//10 119//10
+f 111//9 110//9 109//9
+f 119//10 120//10 121//10
+f 109//77 110//77 115//77 114//77
+f 110//78 111//78 116//78 115//78
+f 111//79 112//79 117//79 116//79
+f 112//80 113//80 118//80 117//80
+f 113//81 109//81 114//81 118//81
+f 114//82 115//82 120//82 119//82
+f 115//83 116//83 121//83 120//83
+f 116//84 117//84 122//84 121//84
+f 117//85 118//85 123//85 122//85
+f 118//86 114//86 119//86 123//86
+f 124//9 128//9 127//9
+f 137//10 138//10 134//10
+f 124//9 127//9 126//9
+f 136//10 137//10 134//10
+f 126//9 125//9 124//9
+f 134//10 135//10 136//10
+f 124//87 125//87 130//87 129//87
+f 125//88 126//88 131//88 130//88
+f 126//89 127//89 132//89 131//89
+f 127//90 128//90 133//90 132//90
+f 128//91 124//91 129//91 133//91
+f 129//77 130//77 135//77 134//77
+f 130//78 131//78 136//78 135//78
+f 131//79 132//79 137//79 136//79
+f 132//80 133//80 138//80 137//80
+f 133//81 129//81 134//81 138//81
+f 139//9 142//9 141//9
+f 149//10 150//10 147//10
+f 141//9 140//9 139//9
+f 147//10 148//10 149//10
+f 139//92 140//92 144//92 143//92
+f 140//93 141//93 145//93 144//93
+f 141//94 142//94 146//94 145//94
+f 142//95 139//95 143//95 146//95
+f 143//96 144//96 148//96 147//96
+f 144//97 145//97 149//97 148//97
+f 145//98 146//98 150//98 149//98
+f 146//99 143//99 147//99 150//99
+f 151//9 154//9 153//9
+f 161//10 162//10 159//10
+f 153//9 152//9 151//9
+f 159//10 160//10 161//10
+f 151//100 152//100 156//100 155//100
+f 152//101 153//101 157//101 156//101
+f 153//102 154//102 158//102 157//102
+f 154//103 151//103 155//103 158//103
+f 155//92 156//92 160//92 159//92
+f 156//93 157//93 161//93 160//93
+f 157//94 158//94 162//94 161//94
+f 158//95 155//95 159//95 162//95
+f 201//9 200//9 199//9
+f 205//10 206//10 207//10
+f 199//104 200//104 203//104 202//104
+f 200//105 201//105 204//105 203//105
+f 201//106 199//106 202//106 204//106
+f 202//107 203//107 206//107 205//107
+f 203//108 204//108 207//108 206//108
+f 204//109 202//109 205//109 207//109
+f 210//9 209//9 208//9
+f 214//10 215//10 216//10
+f 208//110 209//110 212//110 211//110
+f 209//111 210//111 213//111 212//111
+f 210//112 208//112 211//112 213//112
+f 211//104 212//104 215//104 214//104
+f 212//105 213//105 216//105 215//105
+f 213//106 211//106 214//106 216//106
+o neck
+usemtl champagne
+f 217//113 218//113 235//113 234//113
+f 218//114 219//114 236//114 235//114
+f 219//115 220//115 237//115 236//115
+f 224//116 225//116 242//116 241//116
+f 225//117 226//117 243//117 242//117
+f 226//118 227//118 244//118 243//118
+f 227//119 228//119 245//119 244//119
+f 228//120 229//120 246//120 245//120
+f 229//121 230//121 247//121 246//121
+f 233//122 217//122 234//122 250//122
+f 234//123 235//123 252//123 251//123
+f 235//124 236//124 253//124 252//124
+f 236//125 237//125 254//125 253//125
+f 240//126 241//126 258//126 257//126
+f 241//127 242//127 259//127 258//127
+f 242//128 243//128 260//128 259//128
+f 243//129 244//129 261//129 260//129
+f 244//130 245//130 262//130 261//130
+f 245//131 246//131 263//131 262//131
+f 246//132 247//132 264//132 263//132
+f 248//133 249//133 266//133 265//133
+f 249//134 250//134 267//134 266//134
+f 250//135 234//135 251//135 267//135
+f 217//9 233//9 232//9
+f 266//10 267//10 251//10
+f 217//9 229//9 228//9
+f 262//10 263//10 251//10
+f 217//9 228//9 227//9
+f 261//10 262//10 251//10
+f 217//9 221//9 220//9
+f 254//10 255//10 251//10
+f 217//9 220//9 219//9
+f 253//10 254//10 251//10
+f 219//9 218//9 217//9
+f 251//10 252//10 253//10
+f 270//9 269//9 268//9
+f 274//10 275//10 276//10
+f 268//136 269//136 272//136 271//136
+f 269//137 270//137 273//137 272//137
+f 270//138 268//138 271//138 273//138
+f 271//139 272//139 275//139 274//139
+f 272//140 273//140 276//140 275//140
+f 273//141 271//141 274//141 276//141
+f 279//9 278//9 277//9
+f 283//10 284//10 285//10
+f 277//142 278//142 281//142 280//142
+f 278//143 279//143 282//143 281//143
+f 279//144 277//144 280//144 282//144
+f 280//136 281//136 284//136 283//136
+f 281//137 282//137 285//137 284//137
+f 282//138 280//138 283//138 285//138
+f 364//9 367//9 366//9
+f 374//10 375//10 372//10
+f 366//9 365//9 364//9
+f 372//10 373//10 374//10
+f 364//145 365//145 369//145 368//145
+f 365//146 366//146 370//146 369//146
+f 366//147 367//147 371//147 370//147
+f 367//148 364//148 368//148 371//148
+f 368//149 369//149 373//149 372//149
+f 369//150 370//150 374//150 373//150
+f 370//151 371//151 375//151 374//151
+f 371//152 368//152 372//152 375//152
+f 376//9 379//9 378//9
+f 386//10 387//10 384//10
+f 378//9 377//9 376//9
+f 384//10 385//10 386//10
+f 376//153 377//153 381//153 380//153
+f 377//154 378//154 382//154 381//154
+f 378//155 379//155 383//155 382//155
+f 379//156 376//156 380//156 383//156
+f 380//145 381//145 385//145 384//145
+f 381//146 382//146 386//146 385//146
+f 382//147 383//147 387//147 386//147
+f 383//148 380//148 384//148 387//148
+usemtl dark
+f 220//157 221//157 238//157 237//157
+f 221//158 222//158 239//158 238//158
+f 223//159 224//159 241//159 240//159
+f 230//160 231//160 248//160 247//160
+f 237//161 238//161 255//161 254//161
+f 238//162 239//162 256//162 255//162
+f 247//163 248//163 265//163 264//163
+f 217//9 227//9 226//9
+f 260//10 261//10 251//10
+f 217//9 226//9 225//9
+f 259//10 260//10 251//10
+f 217//9 225//9 224//9
+f 258//10 259//10 251//10
+f 217//9 224//9 223//9
+f 257//10 258//10 251//10
+f 217//9 223//9 222//9
+f 256//10 257//10 251//10
+f 217//9 222//9 221//9
+f 255//10 256//10 251//10
+f 334//9 338//9 337//9
+f 347//10 348//10 344//10
+f 334//9 337//9 336//9
+f 346//10 347//10 344//10
+f 336//9 335//9 334//9
+f 344//10 345//10 346//10
+f 334//164 335//164 340//164 339//164
+f 335//165 336//165 341//165 340//165
+f 336//166 337//166 342//166 341//166
+f 337//167 338//167 343//167 342//167
+f 338//168 334//168 339//168 343//168
+f 339//169 340//169 345//169 344//169
+f 340//170 341//170 346//170 345//170
+f 341//171 342//171 347//171 346//171
+f 342//172 343//172 348//172 347//172
+f 343//173 339//173 344//173 348//173
+f 349//9 353//9 352//9
+f 362//10 363//10 359//10
+f 349//9 352//9 351//9
+f 361//10 362//10 359//10
+f 351//9 350//9 349//9
+f 359//10 360//10 361//10
+f 349//174 350//174 355//174 354//174
+f 350//175 351//175 356//175 355//175
+f 351//176 352//176 357//176 356//176
+f 352//177 353//177 358//177 357//177
+f 353//178 349//178 354//178 358//178
+f 354//164 355//164 360//164 359//164
+f 355//165 356//165 361//165 360//165
+f 356//166 357//166 362//166 361//166
+f 357//167 358//167 363//167 362//167
+f 358//168 354//168 359//168 363//168
+usemtl glass
+f 222//179 223//179 240//179 239//179
+f 231//180 232//180 249//180 248//180
+f 232//181 233//181 250//181 249//181
+f 239//182 240//182 257//182 256//182
+f 217//9 232//9 231//9
+f 265//10 266//10 251//10
+f 217//9 231//9 230//9
+f 264//10 265//10 251//10
+f 217//9 230//9 229//9
+f 263//10 264//10 251//10
+f 286//9 290//9 289//9
+f 299//10 300//10 296//10
+f 286//9 289//9 288//9
+f 298//10 299//10 296//10
+f 288//9 287//9 286//9
+f 296//10 297//10 298//10
+f 286//183 287//183 292//183 291//183
+f 287//184 288//184 293//184 292//184
+f 288//185 289//185 294//185 293//185
+f 289//186 290//186 295//186 294//186
+f 290//187 286//187 291//187 295//187
+f 291//188 292//188 297//188 296//188
+f 292//189 293//189 298//189 297//189
+f 293//190 294//190 299//190 298//190
+f 294//191 295//191 300//191 299//191
+f 295//192 291//192 296//192 300//192
+f 301//9 305//9 304//9
+f 314//10 315//10 311//10
+f 301//9 304//9 303//9
+f 313//10 314//10 311//10
+f 303//9 302//9 301//9
+f 311//10 312//10 313//10
+f 301//193 302//193 307//193 306//193
+f 302//194 303//194 308//194 307//194
+f 303//195 304//195 309//195 308//195
+f 304//196 305//196 310//196 309//196
+f 305//197 301//197 306//197 310//197
+f 306//183 307//183 312//183 311//183
+f 307//184 308//184 313//184 312//184
+f 308//185 309//185 314//185 313//185
+f 309//186 310//186 315//186 314//186
+f 310//187 306//187 311//187 315//187
+f 318//9 317//9 316//9
+f 322//10 323//10 324//10
+f 316//198 317//198 320//198 319//198
+f 317//199 318//199 321//199 320//199
+f 318//200 316//200 319//200 321//200
+f 319//201 320//201 323//201 322//201
+f 320//202 321//202 324//202 323//202
+f 321//203 319//203 322//203 324//203
+f 327//9 326//9 325//9
+f 331//10 332//10 333//10
+f 325//204 326//204 329//204 328//204
+f 326//205 327//205 330//205 329//205
+f 327//206 325//206 328//206 330//206
+f 328//198 329//198 332//198 331//198
+f 329//199 330//199 333//199 332//199
+f 330//200 328//200 331//200 333//200
+o body
+usemtl glass
+f 388//207 389//207 415//207 414//207
+f 389//208 390//208 416//208 415//208
+f 390//209 391//209 417//209 416//209
+f 391//210 392//210 418//210 417//210
+f 394//211 395//211 421//211 420//211
+f 395//212 396//212 422//212 421//212
+f 413//213 388//213 414//213 439//213
+f 414//214 415//214 441//214 440//214
+f 415//215 416//215 442//215 441//215
+f 416//216 417//216 443//216 442//216
+f 417//217 418//217 444//217 443//217
+f 420//218 421//218 447//218 446//218
+f 421//219 422//219 448//219 447//219
+f 439//220 414//220 440//220 465//220
+f 388//9 413//9 412//9
+f 464//10 465//10 440//10
+f 388//9 412//9 400//9
+f 452//10 464//10 440//10
+f 388//9 400//9 399//9
+f 451//10 452//10 440//10
+f 388//9 397//9 396//9
+f 448//10 449//10 440//10
+f 388//9 396//9 395//9
+f 447//10 448//10 440//10
+f 395//9 394//9 393//9
+f 445//10 446//10 447//10
+f 395//9 393//9 392//9
+f 444//10 445//10 447//10
+f 395//9 392//9 391//9
+f 443//10 444//10 447//10
+f 395//9 391//9 390//9
+f 442//10 443//10 447//10
+f 395//9 390//9 389//9
+f 441//10 442//10 447//10
+f 395//9 389//9 388//9
+f 440//10 441//10 447//10
+f 466//9 469//9 468//9
+f 476//10 477//10 474//10
+f 468//9 467//9 466//9
+f 474//10 475//10 476//10
+f 466//221 467//221 471//221 470//221
+f 467//222 468//222 472//222 471//222
+f 468//223 469//223 473//223 472//223
+f 469//224 466//224 470//224 473//224
+f 470//225 471//225 475//225 474//225
+f 471//226 472//226 476//226 475//226
+f 472//227 473//227 477//227 476//227
+f 473//228 470//228 474//228 477//228
+f 478//9 481//9 480//9
+f 488//10 489//10 486//10
+f 480//9 479//9 478//9
+f 486//10 487//10 488//10
+f 478//229 479//229 483//229 482//229
+f 479//230 480//230 484//230 483//230
+f 480//231 481//231 485//231 484//231
+f 481//232 478//232 482//232 485//232
+f 482//221 483//221 487//221 486//221
+f 483//222 484//222 488//222 487//222
+f 484//223 485//223 489//223 488//223
+f 485//224 482//224 486//224 489//224
+f 492//9 491//9 490//9
+f 496//10 497//10 498//10
+f 490//233 491//233 494//233 493//233
+f 491//234 492//234 495//234 494//234
+f 492//235 490//235 493//235 495//235
+f 493//236 494//236 497//236 496//236
+f 494//237 495//237 498//237 497//237
+f 495//238 493//238 496//238 498//238
+f 501//9 500//9 499//9
+f 505//10 506//10 507//10
+f 499//239 500//239 503//239 502//239
+f 500//240 501//240 504//240 503//240
+f 501//241 499//241 502//241 504//241
+f 502//233 503//233 506//233 505//233
+f 503//234 504//234 507//234 506//234
+f 504//235 502//235 505//235 507//235
+f 508//9 512//9 511//9
+f 521//10 522//10 518//10
+f 508//9 511//9 510//9
+f 520//10 521//10 518//10
+f 510//9 509//9 508//9
+f 518//10 519//10 520//10
+f 508//242 509//242 514//242 513//242
+f 509//243 510//243 515//243 514//243
+f 510//244 511//244 516//244 515//244
+f 511//245 512//245 517//245 516//245
+f 512//246 508//246 513//246 517//246
+f 513//247 514//247 519//247 518//247
+f 514//248 515//248 520//248 519//248
+f 515//249 516//249 521//249 520//249
+f 516//250 517//250 522//250 521//250
+f 517//251 513//251 518//251 522//251
+f 523//9 527//9 526//9
+f 536//10 537//10 533//10
+f 523//9 526//9 525//9
+f 535//10 536//10 533//10
+f 525//9 524//9 523//9
+f 533//10 534//10 535//10
+f 523//252 524//252 529//252 528//252
+f 524//253 525//253 530//253 529//253
+f 525//254 526//254 531//254 530//254
+f 526//255 527//255 532//255 531//255
+f 527//256 523//256 528//256 532//256
+f 528//242 529//242 534//242 533//242
+f 529//243 530//243 535//243 534//243
+f 530//244 531//244 536//244 535//244
+f 531//245 532//245 537//245 536//245
+f 532//246 528//246 533//246 537//246
+usemtl dark
+f 392//257 393//257 419//257 418//257
+f 393//258 394//258 420//258 419//258
+f 398//259 399//259 425//259 424//259
+f 399//260 400//260 426//260 425//260
+f 400//261 401//261 427//261 426//261
+f 409//207 410//207 436//207 435//207
+f 410//262 411//262 437//262 436//262
+f 411//210 412//210 438//210 437//210
+f 412//263 413//263 439//263 438//263
+f 418//264 419//264 445//264 444//264
+f 419//265 420//265 446//265 445//265
+f 424//266 425//266 451//266 450//266
+f 425//267 426//267 452//267 451//267
+f 426//268 427//268 453//268 452//268
+f 435//214 436//214 462//214 461//214
+f 436//269 437//269 463//269 462//269
+f 437//217 438//217 464//217 463//217
+f 438//270 439//270 465//270 464//270
+f 411//9 410//9 409//9
+f 461//10 462//10 463//10
+f 600//9 599//9 598//9
+f 604//10 605//10 606//10
+f 598//271 599//271 602//271 601//271
+f 599//272 600//272 603//272 602//272
+f 600//273 598//273 601//273 603//273
+f 601//274 602//274 605//274 604//274
+f 602//275 603//275 606//275 605//275
+f 603//276 601//276 604//276 606//276
+f 609//9 608//9 607//9
+f 613//10 614//10 615//10
+f 607//277 608//277 611//277 610//277
+f 608//278 609//278 612//278 611//278
+f 609//279 607//279 610//279 612//279
+f 610//271 611//271 614//271 613//271
+f 611//272 612//272 615//272 614//272
+f 612//273 610//273 613//273 615//273
+usemtl champagne
+f 396//280 397//280 423//280 422//280
+f 397//281 398//281 424//281 423//281
+f 401//282 402//282 428//282 427//282
+f 402//208 403//208 429//208 428//208
+f 403//207 404//207 430//207 429//207
+f 404//283 405//283 431//283 430//283
+f 405//284 406//284 432//284 431//284
+f 406//208 407//208 433//208 432//208
+f 407//285 408//285 434//285 433//285
+f 408//208 409//208 435//208 434//208
+f 422//286 423//286 449//286 448//286
+f 423//287 424//287 450//287 449//287
+f 427//288 428//288 454//288 453//288
+f 428//215 429//215 455//215 454//215
+f 429//214 430//214 456//214 455//214
+f 430//289 431//289 457//289 456//289
+f 431//290 432//290 458//290 457//290
+f 432//215 433//215 459//215 458//215
+f 433//291 434//291 460//291 459//291
+f 434//215 435//215 461//215 460//215
+f 411//9 409//9 408//9
+f 460//10 461//10 463//10
+f 411//9 408//9 407//9
+f 459//10 460//10 463//10
+f 411//9 407//9 406//9
+f 458//10 459//10 463//10
+f 412//9 411//9 406//9
+f 458//10 463//10 464//10
+f 405//9 404//9 403//9
+f 455//10 456//10 457//10
+f 405//9 403//9 402//9
+f 454//10 455//10 457//10
+f 405//9 402//9 401//9
+f 453//10 454//10 457//10
+f 406//9 405//9 401//9
+f 453//10 457//10 458//10
+f 412//9 406//9 401//9
+f 453//10 458//10 464//10
+f 412//9 401//9 400//9
+f 452//10 453//10 464//10
+f 388//9 399//9 398//9
+f 450//10 451//10 440//10
+f 388//9 398//9 397//9
+f 449//10 450//10 440//10
+f 538//9 541//9 540//9
+f 548//10 549//10 546//10
+f 540//9 539//9 538//9
+f 546//10 547//10 548//10
+f 538//292 539//292 543//292 542//292
+f 539//293 540//293 544//293 543//293
+f 540//294 541//294 545//294 544//294
+f 541//295 538//295 542//295 545//295
+f 542//296 543//296 547//296 546//296
+f 543//297 544//297 548//297 547//297
+f 544//298 545//298 549//298 548//298
+f 545//299 542//299 546//299 549//299
+f 550//9 553//9 552//9
+f 560//10 561//10 558//10
+f 552//9 551//9 550//9
+f 558//10 559//10 560//10
+f 550//300 551//300 555//300 554//300
+f 551//301 552//301 556//301 555//301
+f 552//302 553//302 557//302 556//302
+f 553//303 550//303 554//303 557//303
+f 554//292 555//292 559//292 558//292
+f 555//293 556//293 560//293 559//293
+f 556//294 557//294 561//294 560//294
+f 557//295 554//295 558//295 561//295
+f 564//9 563//9 562//9
+f 568//10 569//10 570//10
+f 562//304 563//304 566//304 565//304
+f 563//305 564//305 567//305 566//305
+f 564//306 562//306 565//306 567//306
+f 565//307 566//307 569//307 568//307
+f 566//308 567//308 570//308 569//308
+f 567//309 565//309 568//309 570//309
+f 573//9 572//9 571//9
+f 577//10 578//10 579//10
+f 571//310 572//310 575//310 574//310
+f 572//311 573//311 576//311 575//311
+f 573//312 571//312 574//312 576//312
+f 574//304 575//304 578//304 577//304
+f 575//305 576//305 579//305 578//305
+f 576//306 574//306 577//306 579//306
+f 582//9 581//9 580//9
+f 586//10 587//10 588//10
+f 580//313 581//313 584//313 583//313
+f 581//314 582//314 585//314 584//314
+f 582//315 580//315 583//315 585//315
+f 583//316 584//316 587//316 586//316
+f 584//317 585//317 588//317 587//317
+f 585//318 583//318 586//318 588//318
+f 591//9 590//9 589//9
+f 595//10 596//10 597//10
+f 589//319 590//319 593//319 592//319
+f 590//320 591//320 594//320 593//320
+f 591//321 589//321 592//321 594//321
+f 592//313 593//313 596//313 595//313
+f 593//314 594//314 597//314 596//314
+f 594//315 592//315 595//315 597//315
+o tail
+usemtl champagne
+f 616//322 617//322 638//322 637//322
+f 617//323 618//323 639//323 638//323
+f 618//324 619//324 640//324 639//324
+f 619//325 620//325 641//325 640//325
+f 620//326 621//326 642//326 641//326
+f 621//327 622//327 643//327 642//327
+f 623//328 624//328 645//328 644//328
+f 624//329 625//329 646//329 645//329
+f 625//330 626//330 647//330 646//330
+f 626//331 627//331 648//331 647//331
+f 632//332 633//332 654//332 653//332
+f 637//333 638//333 659//333 658//333
+f 638//334 639//334 660//334 659//334
+f 639//335 640//335 661//335 660//335
+f 640//336 641//336 662//336 661//336
+f 641//337 642//337 663//337 662//337
+f 642//338 643//338 664//338 663//338
+f 644//339 645//339 666//339 665//339
+f 645//340 646//340 667//340 666//340
+f 646//341 647//341 668//341 667//341
+f 647//342 648//342 669//342 668//342
+f 653//343 654//343 675//343 674//343
+f 616//9 633//9 632//9
+f 674//10 675//10 658//10
+f 627//9 626//9 625//9
+f 667//10 668//10 669//10
+f 630//9 627//9 625//9
+f 667//10 669//10 672//10
+f 630//9 625//9 624//9
+f 666//10 667//10 672//10
+f 630//9 624//9 623//9
+f 665//10 666//10 672//10
+f 616//9 632//9 622//9
+f 664//10 674//10 658//10
+f 622//9 621//9 620//9
+f 662//10 663//10 664//10
+f 616//9 622//9 620//9
+f 662//10 664//10 658//10
+f 616//9 620//9 619//9
+f 661//10 662//10 658//10
+f 616//9 619//9 618//9
+f 660//10 661//10 658//10
+f 618//9 617//9 616//9
+f 658//10 659//10 660//10
+f 681//9 680//9 679//9
+f 685//10 686//10 687//10
+f 679//344 680//344 683//344 682//344
+f 680//345 681//345 684//345 683//345
+f 681//346 679//346 682//346 684//346
+f 682//347 683//347 686//347 685//347
+f 683//348 684//348 687//348 686//348
+f 684//349 682//349 685//349 687//349
+f 690//9 689//9 688//9
+f 694//10 695//10 696//10
+f 688//350 689//350 692//350 691//350
+f 689//351 690//351 693//351 692//351
+f 690//352 688//352 691//352 693//352
+f 691//344 692//344 695//344 694//344
+f 692//345 693//345 696//345 695//345
+f 693//346 691//346 694//346 696//346
+f 735//9 734//9 733//9
+f 739//10 740//10 741//10
+f 733//353 734//353 737//353 736//353
+f 734//354 735//354 738//354 737//354
+f 735//355 733//355 736//355 738//355
+f 736//356 737//356 740//356 739//356
+f 737//357 738//357 741//357 740//357
+f 738//358 736//358 739//358 741//358
+f 744//9 743//9 742//9
+f 748//10 749//10 750//10
+f 742//359 743//359 746//359 745//359
+f 743//360 744//360 747//360 746//360
+f 744//361 742//361 745//361 747//361
+f 745//353 746//353 749//353 748//353
+f 746//354 747//354 750//354 749//354
+f 747//355 745//355 748//355 750//355
+f 753//9 752//9 751//9
+f 757//10 758//10 759//10
+f 751//362 752//362 755//362 754//362
+f 752//363 753//363 756//363 755//363
+f 753//364 751//364 754//364 756//364
+f 754//365 755//365 758//365 757//365
+f 755//366 756//366 759//366 758//366
+f 756//367 754//367 757//367 759//367
+f 762//9 761//9 760//9
+f 766//10 767//10 768//10
+f 760//368 761//368 764//368 763//368
+f 761//369 762//369 765//369 764//369
+f 762//370 760//370 763//370 765//370
+f 763//362 764//362 767//362 766//362
+f 764//363 765//363 768//363 767//363
+f 765//364 763//364 766//364 768//364
+usemtl dark
+f 622//371 623//371 644//371 643//371
+f 629//372 630//372 651//372 650//372
+f 630//373 631//373 652//373 651//373
+f 631//374 632//374 653//374 652//374
+f 643//375 644//375 665//375 664//375
+f 650//376 651//376 672//376 671//376
+f 652//377 653//377 674//377 673//377
+f 630//9 623//9 622//9
+f 664//10 665//10 672//10
+f 631//9 630//9 622//9
+f 664//10 672//10 673//10
+f 632//9 631//9 622//9
+f 664//10 673//10 674//10
+f 717//9 716//9 715//9
+f 721//10 722//10 723//10
+f 715//378 716//378 719//378 718//378
+f 716//379 717//379 720//379 719//379
+f 717//380 715//380 718//380 720//380
+f 718//381 719//381 722//381 721//381
+f 719//382 720//382 723//382 722//382
+f 720//383 718//383 721//383 723//383
+f 726//9 725//9 724//9
+f 730//10 731//10 732//10
+f 724//384 725//384 728//384 727//384
+f 725//385 726//385 729//385 728//385
+f 726//386 724//386 727//386 729//386
+f 727//378 728//378 731//378 730//378
+f 728//379 729//379 732//379 731//379
+f 729//380 727//380 730//380 732//380
+usemtl glass
+f 627//387 628//387 649//387 648//387
+f 628//388 629//388 650//388 649//388
+f 633//389 634//389 655//389 654//389
+f 634//390 635//390 656//390 655//390
+f 635//391 636//391 657//391 656//391
+f 636//392 616//392 637//392 657//392
+f 648//393 649//393 670//393 669//393
+f 649//394 650//394 671//394 670//394
+f 651//395 652//395 673//395 672//395
+f 654//396 655//396 676//396 675//396
+f 655//397 656//397 677//397 676//397
+f 656//398 657//398 678//398 677//398
+f 657//399 637//399 658//399 678//399
+f 616//9 636//9 635//9
+f 677//10 678//10 658//10
+f 616//9 635//9 634//9
+f 676//10 677//10 658//10
+f 616//9 634//9 633//9
+f 675//10 676//10 658//10
+f 630//9 629//9 628//9
+f 670//10 671//10 672//10
+f 630//9 628//9 627//9
+f 669//10 670//10 672//10
+f 699//9 698//9 697//9
+f 703//10 704//10 705//10
+f 697//400 698//400 701//400 700//400
+f 698//401 699//401 702//401 701//401
+f 699//402 697//402 700//402 702//402
+f 700//403 701//403 704//403 703//403
+f 701//404 702//404 705//404 704//404
+f 702//405 700//405 703//405 705//405
+f 708//9 707//9 706//9
+f 712//10 713//10 714//10
+f 706//406 707//406 710//406 709//406
+f 707//407 708//407 711//407 710//407
+f 708//408 706//408 709//408 711//408
+f 709//400 710//400 713//400 712//400
+f 710//401 711//401 714//401 713//401
+f 711//402 709//402 712//402 714//402
+f 769//9 772//9 771//9
+f 779//10 780//10 777//10
+f 771//9 770//9 769//9
+f 777//10 778//10 779//10
+f 769//409 770//409 774//409 773//409
+f 770//410 771//410 775//410 774//410
+f 771//411 772//411 776//411 775//411
+f 772//412 769//412 773//412 776//412
+f 773//413 774//413 778//413 777//413
+f 774//414 775//414 779//414 778//414
+f 775//415 776//415 780//415 779//415
+f 776//416 773//416 777//416 780//416
+f 781//9 784//9 783//9
+f 791//10 792//10 789//10
+f 783//9 782//9 781//9
+f 789//10 790//10 791//10
+f 781//417 782//417 786//417 785//417
+f 782//418 783//418 787//418 786//418
+f 783//419 784//419 788//419 787//419
+f 784//420 781//420 785//420 788//420
+f 785//409 786//409 790//409 789//409
+f 786//410 787//410 791//410 790//410
+f 787//411 788//411 792//411 791//411
+f 788//412 785//412 789//412 792//412
+o hindLegL
+usemtl dark
+f 793//421 794//421 807//421 806//421
+f 794//323 795//323 808//323 807//323
+f 798//323 799//323 812//323 811//323
+f 799//422 800//422 813//422 812//422
+f 800//423 801//423 814//423 813//423
+f 806//424 807//424 820//424 819//424
+f 807//334 808//334 821//334 820//334
+f 812//425 813//425 826//425 825//425
+f 813//426 814//426 827//426 826//426
+f 800//9 799//9 798//9
+f 824//10 825//10 826//10
+f 800//9 798//9 797//9
+f 823//10 824//10 826//10
+f 793//9 800//9 797//9
+f 823//10 826//10 819//10
+f 793//9 797//9 796//9
+f 822//10 823//10 819//10
+f 793//9 796//9 795//9
+f 821//10 822//10 819//10
+f 795//9 794//9 793//9
+f 819//10 820//10 821//10
+f 834//9 833//9 832//9
+f 838//10 839//10 840//10
+f 832//427 833//427 836//427 835//427
+f 833//428 834//428 837//428 836//428
+f 834//429 832//429 835//429 837//429
+f 835//430 836//430 839//430 838//430
+f 836//431 837//431 840//431 839//431
+f 837//432 835//432 838//432 840//432
+f 843//9 842//9 841//9
+f 847//10 848//10 849//10
+f 841//433 842//433 845//433 844//433
+f 842//434 843//434 846//434 845//434
+f 843//435 841//435 844//435 846//435
+f 844//427 845//427 848//427 847//427
+f 845//428 846//428 849//428 848//428
+f 846//429 844//429 847//429 849//429
+f 852//9 851//9 850//9
+f 856//10 857//10 858//10
+f 850//436 851//436 854//436 853//436
+f 851//29 852//29 855//29 854//29
+f 852//437 850//437 853//437 855//437
+f 853//438 854//438 857//438 856//438
+f 854//439 855//439 858//439 857//439
+f 855//440 853//440 856//440 858//440
+f 861//9 860//9 859//9
+f 865//10 866//10 867//10
+f 859//441 860//441 863//441 862//441
+f 860//442 861//442 864//442 863//442
+f 861//443 859//443 862//443 864//443
+f 862//436 863//436 866//436 865//436
+f 863//29 864//29 867//29 866//29
+f 864//437 862//437 865//437 867//437
+usemtl champagne
+f 795//444 796//444 809//444 808//444
+f 796//323 797//323 810//323 809//323
+f 797//445 798//445 811//445 810//445
+f 801//446 802//446 815//446 814//446
+f 802//423 803//423 816//423 815//423
+f 803//447 804//447 817//447 816//447
+f 804//448 805//448 818//448 817//448
+f 805//323 793//323 806//323 818//323
+f 808//449 809//449 822//449 821//449
+f 809//334 810//334 823//334 822//334
+f 810//450 811//450 824//450 823//450
+f 811//334 812//334 825//334 824//334
+f 814//451 815//451 828//451 827//451
+f 815//426 816//426 829//426 828//426
+f 816//452 817//452 830//452 829//452
+f 817//453 818//453 831//453 830//453
+f 818//334 806//334 819//334 831//334
+f 793//9 805//9 804//9
+f 830//10 831//10 819//10
+f 793//9 804//9 803//9
+f 829//10 830//10 819//10
+f 793//9 803//9 802//9
+f 828//10 829//10 819//10
+f 793//9 802//9 801//9
+f 827//10 828//10 819//10
+f 793//9 801//9 800//9
+f 826//10 827//10 819//10
+f 870//9 869//9 868//9
+f 874//10 875//10 876//10
+f 868//454 869//454 872//454 871//454
+f 869//455 870//455 873//455 872//455
+f 870//456 868//456 871//456 873//456
+f 871//457 872//457 875//457 874//457
+f 872//458 873//458 876//458 875//458
+f 873//459 871//459 874//459 876//459
+f 879//9 878//9 877//9
+f 883//10 884//10 885//10
+f 877//460 878//460 881//460 880//460
+f 878//461 879//461 882//461 881//461
+f 879//462 877//462 880//462 882//462
+f 880//454 881//454 884//454 883//454
+f 881//455 882//455 885//455 884//455
+f 882//456 880//456 883//456 885//456
+o foreLegL
+usemtl glass
+f 886//463 887//463 893//463 892//463
+f 887//464 888//464 894//464 893//464
+f 891//465 886//465 892//465 897//465
+f 892//466 893//466 899//466 898//466
+f 895//467 896//467 902//467 901//467
+f 896//468 897//468 903//468 902//468
+f 897//469 892//469 898//469 903//469
+f 886//9 891//9 890//9
+f 902//10 903//10 898//10
+f 888//9 887//9 886//9
+f 898//10 899//10 900//10
+f 904//9 907//9 906//9
+f 914//10 915//10 912//10
+f 906//9 905//9 904//9
+f 912//10 913//10 914//10
+f 904//470 905//470 909//470 908//470
+f 905//471 906//471 910//471 909//471
+f 906//472 907//472 911//472 910//472
+f 907//473 904//473 908//473 911//473
+f 908//474 909//474 913//474 912//474
+f 909//475 910//475 914//475 913//475
+f 910//476 911//476 915//476 914//476
+f 911//477 908//477 912//477 915//477
+f 916//9 919//9 918//9
+f 926//10 927//10 924//10
+f 918//9 917//9 916//9
+f 924//10 925//10 926//10
+f 916//478 917//478 921//478 920//478
+f 917//479 918//479 922//479 921//479
+f 918//480 919//480 923//480 922//480
+f 919//481 916//481 920//481 923//481
+f 920//470 921//470 925//470 924//470
+f 921//471 922//471 926//471 925//471
+f 922//472 923//472 927//472 926//472
+f 923//473 920//473 924//473 927//473
+usemtl dark
+f 888//482 889//482 895//482 894//482
+f 889//483 890//483 896//483 895//483
+f 890//484 891//484 897//484 896//484
+f 893//485 894//485 900//485 899//485
+f 894//486 895//486 901//486 900//486
+f 886//9 890//9 889//9
+f 901//10 902//10 898//10
+f 886//9 889//9 888//9
+f 900//10 901//10 898//10
+f 930//9 929//9 928//9
+f 934//10 935//10 936//10
+f 928//487 929//487 932//487 931//487
+f 929//488 930//488 933//488 932//488
+f 930//489 928//489 931//489 933//489
+f 931//490 932//490 935//490 934//490
+f 932//491 933//491 936//491 935//491
+f 933//492 931//492 934//492 936//492
+f 939//9 938//9 937//9
+f 943//10 944//10 945//10
+f 937//493 938//493 941//493 940//493
+f 938//494 939//494 942//494 941//494
+f 939//495 937//495 940//495 942//495
+f 940//487 941//487 944//487 943//487
+f 941//488 942//488 945//488 944//488
+f 942//489 940//489 943//489 945//489
+o hornL
+usemtl dark
+f 948//9 947//9 946//9
+f 955//10 956//10 957//10
+f 946//496 947//496 950//496 949//496
+f 947//497 948//497 951//497 950//497
+f 948//498 946//498 949//498 951//498
+f 949//499 950//499 953//499 952//499
+f 950//500 951//500 954//500 953//500
+f 951//501 949//501 952//501 954//501
+f 952//502 953//502 956//502 955//502
+f 953//503 954//503 957//503 956//503
+f 954//504 952//504 955//504 957//504
+o hindLegR
+usemtl dark
+f 958//421 959//421 972//421 971//421
+f 959//323 960//323 973//323 972//323
+f 963//323 964//323 977//323 976//323
+f 964//422 965//422 978//422 977//422
+f 965//423 966//423 979//423 978//423
+f 971//424 972//424 985//424 984//424
+f 972//334 973//334 986//334 985//334
+f 977//425 978//425 991//425 990//425
+f 978//426 979//426 992//426 991//426
+f 965//9 964//9 963//9
+f 989//10 990//10 991//10
+f 965//9 963//9 962//9
+f 988//10 989//10 991//10
+f 958//9 965//9 962//9
+f 988//10 991//10 984//10
+f 958//9 962//9 961//9
+f 987//10 988//10 984//10
+f 958//9 961//9 960//9
+f 986//10 987//10 984//10
+f 960//9 959//9 958//9
+f 984//10 985//10 986//10
+f 999//9 998//9 997//9
+f 1003//10 1004//10 1005//10
+f 997//427 998//427 1001//427 1000//427
+f 998//428 999//428 1002//428 1001//428
+f 999//429 997//429 1000//429 1002//429
+f 1000//430 1001//430 1004//430 1003//430
+f 1001//431 1002//431 1005//431 1004//431
+f 1002//432 1000//432 1003//432 1005//432
+f 1008//9 1007//9 1006//9
+f 1012//10 1013//10 1014//10
+f 1006//433 1007//433 1010//433 1009//433
+f 1007//434 1008//434 1011//434 1010//434
+f 1008//435 1006//435 1009//435 1011//435
+f 1009//427 1010//427 1013//427 1012//427
+f 1010//428 1011//428 1014//428 1013//428
+f 1011//429 1009//429 1012//429 1014//429
+f 1017//9 1016//9 1015//9
+f 1021//10 1022//10 1023//10
+f 1015//436 1016//436 1019//436 1018//436
+f 1016//29 1017//29 1020//29 1019//29
+f 1017//437 1015//437 1018//437 1020//437
+f 1018//438 1019//438 1022//438 1021//438
+f 1019//439 1020//439 1023//439 1022//439
+f 1020//440 1018//440 1021//440 1023//440
+f 1026//9 1025//9 1024//9
+f 1030//10 1031//10 1032//10
+f 1024//441 1025//441 1028//441 1027//441
+f 1025//442 1026//442 1029//442 1028//442
+f 1026//443 1024//443 1027//443 1029//443
+f 1027//436 1028//436 1031//436 1030//436
+f 1028//29 1029//29 1032//29 1031//29
+f 1029//437 1027//437 1030//437 1032//437
+usemtl champagne
+f 960//444 961//444 974//444 973//444
+f 961//323 962//323 975//323 974//323
+f 962//445 963//445 976//445 975//445
+f 966//446 967//446 980//446 979//446
+f 967//423 968//423 981//423 980//423
+f 968//447 969//447 982//447 981//447
+f 969//448 970//448 983//448 982//448
+f 970//323 958//323 971//323 983//323
+f 973//449 974//449 987//449 986//449
+f 974//334 975//334 988//334 987//334
+f 975//450 976//450 989//450 988//450
+f 976//334 977//334 990//334 989//334
+f 979//451 980//451 993//451 992//451
+f 980//426 981//426 994//426 993//426
+f 981//452 982//452 995//452 994//452
+f 982//453 983//453 996//453 995//453
+f 983//334 971//334 984//334 996//334
+f 958//9 970//9 969//9
+f 995//10 996//10 984//10
+f 958//9 969//9 968//9
+f 994//10 995//10 984//10
+f 958//9 968//9 967//9
+f 993//10 994//10 984//10
+f 958//9 967//9 966//9
+f 992//10 993//10 984//10
+f 958//9 966//9 965//9
+f 991//10 992//10 984//10
+f 1035//9 1034//9 1033//9
+f 1039//10 1040//10 1041//10
+f 1033//454 1034//454 1037//454 1036//454
+f 1034//455 1035//455 1038//455 1037//455
+f 1035//456 1033//456 1036//456 1038//456
+f 1036//457 1037//457 1040//457 1039//457
+f 1037//458 1038//458 1041//458 1040//458
+f 1038//459 1036//459 1039//459 1041//459
+f 1044//9 1043//9 1042//9
+f 1048//10 1049//10 1050//10
+f 1042//460 1043//460 1046//460 1045//460
+f 1043//461 1044//461 1047//461 1046//461
+f 1044//462 1042//462 1045//462 1047//462
+f 1045//454 1046//454 1049//454 1048//454
+f 1046//455 1047//455 1050//455 1049//455
+f 1047//456 1045//456 1048//456 1050//456
+o foreLegR
+usemtl glass
+f 1051//463 1052//463 1058//463 1057//463
+f 1052//464 1053//464 1059//464 1058//464
+f 1056//465 1051//465 1057//465 1062//465
+f 1057//466 1058//466 1064//466 1063//466
+f 1060//467 1061//467 1067//467 1066//467
+f 1061//468 1062//468 1068//468 1067//468
+f 1062//469 1057//469 1063//469 1068//469
+f 1051//9 1056//9 1055//9
+f 1067//10 1068//10 1063//10
+f 1053//9 1052//9 1051//9
+f 1063//10 1064//10 1065//10
+f 1069//9 1072//9 1071//9
+f 1079//10 1080//10 1077//10
+f 1071//9 1070//9 1069//9
+f 1077//10 1078//10 1079//10
+f 1069//470 1070//470 1074//470 1073//470
+f 1070//471 1071//471 1075//471 1074//471
+f 1071//472 1072//472 1076//472 1075//472
+f 1072//473 1069//473 1073//473 1076//473
+f 1073//474 1074//474 1078//474 1077//474
+f 1074//475 1075//475 1079//475 1078//475
+f 1075//476 1076//476 1080//476 1079//476
+f 1076//477 1073//477 1077//477 1080//477
+f 1081//9 1084//9 1083//9
+f 1091//10 1092//10 1089//10
+f 1083//9 1082//9 1081//9
+f 1089//10 1090//10 1091//10
+f 1081//478 1082//478 1086//478 1085//478
+f 1082//479 1083//479 1087//479 1086//479
+f 1083//480 1084//480 1088//480 1087//480
+f 1084//481 1081//481 1085//481 1088//481
+f 1085//470 1086//470 1090//470 1089//470
+f 1086//471 1087//471 1091//471 1090//471
+f 1087//472 1088//472 1092//472 1091//472
+f 1088//473 1085//473 1089//473 1092//473
+usemtl dark
+f 1053//482 1054//482 1060//482 1059//482
+f 1054//483 1055//483 1061//483 1060//483
+f 1055//484 1056//484 1062//484 1061//484
+f 1058//485 1059//485 1065//485 1064//485
+f 1059//486 1060//486 1066//486 1065//486
+f 1051//9 1055//9 1054//9
+f 1066//10 1067//10 1063//10
+f 1051//9 1054//9 1053//9
+f 1065//10 1066//10 1063//10
+f 1095//9 1094//9 1093//9
+f 1099//10 1100//10 1101//10
+f 1093//487 1094//487 1097//487 1096//487
+f 1094//488 1095//488 1098//488 1097//488
+f 1095//489 1093//489 1096//489 1098//489
+f 1096//490 1097//490 1100//490 1099//490
+f 1097//491 1098//491 1101//491 1100//491
+f 1098//492 1096//492 1099//492 1101//492
+f 1104//9 1103//9 1102//9
+f 1108//10 1109//10 1110//10
+f 1102//493 1103//493 1106//493 1105//493
+f 1103//494 1104//494 1107//494 1106//494
+f 1104//495 1102//495 1105//495 1107//495
+f 1105//487 1106//487 1109//487 1108//487
+f 1106//488 1107//488 1110//488 1109//488
+f 1107//489 1105//489 1108//489 1110//489
+o hornR
+usemtl dark
+f 1113//9 1112//9 1111//9
+f 1120//10 1121//10 1122//10
+f 1111//496 1112//496 1115//496 1114//496
+f 1112//497 1113//497 1116//497 1115//497
+f 1113//498 1111//498 1114//498 1116//498
+f 1114//499 1115//499 1118//499 1117//499
+f 1115//500 1116//500 1119//500 1118//500
+f 1116//501 1114//501 1117//501 1119//501
+f 1117//502 1118//502 1121//502 1120//502
+f 1118//503 1119//503 1122//503 1121//503
+f 1119//504 1117//504 1120//504 1122//504
+o crest
+usemtl champagne
+f 1125//9 1124//9 1123//9
+f 1132//10 1133//10 1134//10
+f 1123//505 1124//505 1127//505 1126//505
+f 1124//506 1125//506 1128//506 1127//506
+f 1125//507 1123//507 1126//507 1128//507
+f 1126//508 1127//508 1130//508 1129//508
+f 1127//509 1128//509 1131//509 1130//509
+f 1128//510 1126//510 1129//510 1131//510
+f 1129//511 1130//511 1133//511 1132//511
+f 1130//512 1131//512 1134//512 1133//512
+f 1131//513 1129//513 1132//513 1134//513
+o wingL
+usemtl dark
+f 1135//514 1138//514 1137//514
+f 1149//515 1150//515 1147//515
+f 1137//514 1136//514 1135//514
+f 1147//515 1148//515 1149//515
+f 1135//516 1136//516 1140//516 1139//516
+f 1136//517 1137//517 1141//517 1140//517
+f 1137//518 1138//518 1142//518 1141//518
+f 1138//519 1135//519 1139//519 1142//519
+f 1139//520 1140//520 1144//520 1143//520
+f 1140//521 1141//521 1145//521 1144//521
+f 1141//522 1142//522 1146//522 1145//522
+f 1142//523 1139//523 1143//523 1146//523
+f 1143//524 1144//524 1148//524 1147//524
+f 1144//525 1145//525 1149//525 1148//525
+f 1145//526 1146//526 1150//526 1149//526
+f 1146//527 1143//527 1147//527 1150//527
+usemtl glass
+f 1151//514 1154//514 1153//514
+f 1165//515 1166//515 1163//515
+f 1153//514 1152//514 1151//514
+f 1163//515 1164//515 1165//515
+f 1151//528 1152//528 1156//528 1155//528
+f 1152//529 1153//529 1157//529 1156//529
+f 1153//530 1154//530 1158//530 1157//530
+f 1154//531 1151//531 1155//531 1158//531
+f 1155//532 1156//532 1160//532 1159//532
+f 1156//533 1157//533 1161//533 1160//533
+f 1157//534 1158//534 1162//534 1161//534
+f 1158//535 1155//535 1159//535 1162//535
+f 1159//536 1160//536 1164//536 1163//536
+f 1160//537 1161//537 1165//537 1164//537
+f 1161//538 1162//538 1166//538 1165//538
+f 1162//539 1159//539 1163//539 1166//539
+f 1167//540 1170//540 1169//540
+f 1181//541 1182//541 1179//541
+f 1169//514 1168//514 1167//514
+f 1179//515 1180//515 1181//515
+f 1167//542 1168//542 1172//542 1171//542
+f 1168//543 1169//543 1173//543 1172//543
+f 1169//544 1170//544 1174//544 1173//544
+f 1170//545 1167//545 1171//545 1174//545
+f 1171//546 1172//546 1176//546 1175//546
+f 1172//547 1173//547 1177//547 1176//547
+f 1173//548 1174//548 1178//548 1177//548
+f 1174//549 1171//549 1175//549 1178//549
+f 1175//550 1176//550 1180//550 1179//550
+f 1176//551 1177//551 1181//551 1180//551
+f 1177//552 1178//552 1182//552 1181//552
+f 1178//553 1175//553 1179//553 1182//553
+o wingR
+usemtl dark
+f 1183//554 1186//554 1185//554
+f 1197//555 1198//555 1195//555
+f 1185//554 1184//554 1183//554
+f 1195//555 1196//555 1197//555
+f 1183//556 1184//556 1188//556 1187//556
+f 1184//557 1185//557 1189//557 1188//557
+f 1185//558 1186//558 1190//558 1189//558
+f 1186//559 1183//559 1187//559 1190//559
+f 1187//560 1188//560 1192//560 1191//560
+f 1188//561 1189//561 1193//561 1192//561
+f 1189//562 1190//562 1194//562 1193//562
+f 1190//563 1187//563 1191//563 1194//563
+f 1191//564 1192//564 1196//564 1195//564
+f 1192//565 1193//565 1197//565 1196//565
+f 1193//566 1194//566 1198//566 1197//566
+f 1194//567 1191//567 1195//567 1198//567
+usemtl glass
+f 1199//554 1202//554 1201//554
+f 1213//555 1214//555 1211//555
+f 1201//554 1200//554 1199//554
+f 1211//555 1212//555 1213//555
+f 1199//568 1200//568 1204//568 1203//568
+f 1200//569 1201//569 1205//569 1204//569
+f 1201//570 1202//570 1206//570 1205//570
+f 1202//571 1199//571 1203//571 1206//571
+f 1203//572 1204//572 1208//572 1207//572
+f 1204//573 1205//573 1209//573 1208//573
+f 1205//574 1206//574 1210//574 1209//574
+f 1206//575 1203//575 1207//575 1210//575
+f 1207//576 1208//576 1212//576 1211//576
+f 1208//577 1209//577 1213//577 1212//577
+f 1209//578 1210//578 1214//578 1213//578
+f 1210//579 1207//579 1211//579 1214//579
+f 1215//580 1218//580 1217//580
+f 1229//581 1230//581 1227//581
+f 1217//554 1216//554 1215//554
+f 1227//555 1228//555 1229//555
+f 1215//582 1216//582 1220//582 1219//582
+f 1216//583 1217//583 1221//583 1220//583
+f 1217//584 1218//584 1222//584 1221//584
+f 1218//585 1215//585 1219//585 1222//585
+f 1219//586 1220//586 1224//586 1223//586
+f 1220//587 1221//587 1225//587 1224//587
+f 1221//588 1222//588 1226//588 1225//588
+f 1222//589 1219//589 1223//589 1226//589
+f 1223//590 1224//590 1228//590 1227//590
+f 1224//591 1225//591 1229//591 1228//591
+f 1225//592 1226//592 1230//592 1229//592
+f 1226//593 1223//593 1227//593 1230//593
diff --git a/assets/DragonPrint-champagne.stl b/assets/DragonPrint-champagne.stl
new file mode 100644
index 000000000..8c184cf78
--- /dev/null
+++ b/assets/DragonPrint-champagne.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1dfa207d0b0017278aa636ea8c62b9a4a7413911008222ceea1eeaad7223e86c
+size 109684
diff --git a/assets/DragonPrint-dark.stl b/assets/DragonPrint-dark.stl
new file mode 100644
index 000000000..f3bb136af
--- /dev/null
+++ b/assets/DragonPrint-dark.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7f76c828e0319cdcfe42465fc3e552193bdfe0394ff69885cebe1f8e6748b41b
+size 86484
diff --git a/assets/DragonPrint-frame.stl b/assets/DragonPrint-frame.stl
new file mode 100644
index 000000000..8ab76379e
--- /dev/null
+++ b/assets/DragonPrint-frame.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6759aed3174256756394f33d9871eeb514e7b910cd874cbc8b2b942dc2b4e66e
+size 49384
diff --git a/assets/DragonPrint-glass.stl b/assets/DragonPrint-glass.stl
new file mode 100644
index 000000000..8855a3ede
--- /dev/null
+++ b/assets/DragonPrint-glass.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:72850a2650c4b758c9aa96c65002f20af6f06c156e409ba3f1217842d219dcbb
+size 94084
diff --git a/assets/DragonPrint.mtl b/assets/DragonPrint.mtl
new file mode 100644
index 000000000..4c90ffb80
--- /dev/null
+++ b/assets/DragonPrint.mtl
@@ -0,0 +1,45 @@
+# Materials for DragonPrint.obj
+newmtl dark
+Ka 0.060 0.062 0.066
+Kd 0.300 0.310 0.330
+Ks 0.700 0.700 0.700
+Ns 180.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.80
+Pr 0.35
+
+newmtl champagne
+Ka 0.144 0.128 0.108
+Kd 0.720 0.640 0.540
+Ks 0.850 0.800 0.700
+Ns 120.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.80
+Pr 0.40
+
+newmtl glass
+Ka 0.176 0.184 0.180
+Kd 0.880 0.920 0.900
+Ks 0.950 0.950 0.950
+Ns 300.0
+d 0.55
+Ni 1.50
+illum 4
+Pm 0.00
+Pr 0.15
+
+newmtl frame
+Ka 0.024 0.022 0.020
+Kd 0.120 0.110 0.100
+Ks 0.300 0.300 0.300
+Ns 40.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.00
+Pr 0.70
+
diff --git a/assets/DragonPrint.obj b/assets/DragonPrint.obj
new file mode 100644
index 000000000..bf4ef0062
--- /dev/null
+++ b/assets/DragonPrint.obj
@@ -0,0 +1,9538 @@
+# Singe dragon, printable solid model built by util/dragonModel.py from the tiles of Dragon.jpeg
+# Units: 0.01 per image pixel; Y up, faces right (+X), resting on Y = 0, symmetric about Z = 0
+mtllib DragonPrint.mtl
+v 0.70500 6.60000 -0.38000
+v 0.74500 6.56000 -0.38000
+v 1.22500 6.31000 -0.38000
+v 1.37500 6.16000 -0.38000
+v 1.95500 5.78000 -0.38000
+v 2.06500 5.67000 -0.38000
+v 1.43500 5.02000 -0.38000
+v 1.47500 4.98000 -0.38000
+v 2.50500 5.19000 -0.38000
+v 3.02500 4.76000 -0.38000
+v 3.06500 4.80000 -0.38000
+v 3.32500 5.32000 -0.38000
+v 3.25500 5.39000 -0.38000
+v 3.20500 5.37000 -0.38000
+v 2.76500 5.47000 -0.38000
+v 2.65500 5.58000 -0.38000
+v 2.76500 5.69000 -0.38000
+v 3.09500 5.76000 -0.38000
+v 3.32500 5.49000 -0.38000
+v 3.36500 5.53000 -0.38000
+v 3.55500 5.92000 -0.38000
+v 3.20500 6.40000 -0.38000
+v 3.16500 6.29000 -0.38000
+v 3.05500 6.18000 -0.38000
+v 2.66500 6.21000 -0.38000
+v 2.41500 6.26000 -0.38000
+v 1.92500 6.59000 -0.38000
+v 0.74500 6.64000 -0.38000
+v 0.61590 6.60000 0.00000
+v 0.70730 6.50860 0.00000
+v 1.18730 6.25860 0.00000
+v 1.33504 6.11086 0.00000
+v 1.91504 5.73086 0.00000
+v 1.97660 5.66931 0.00000
+v 1.34660 5.01931 0.00000
+v 1.45440 4.91150 0.00000
+v 2.48807 5.12225 0.00000
+v 3.02902 4.67493 0.00000
+v 3.11678 4.76268 0.00000
+v 3.40166 5.33244 0.00000
+v 3.27017 5.46392 0.00000
+v 3.19982 5.43578 0.00000
+v 2.79669 5.52740 0.00000
+v 2.74410 5.58000 0.00000
+v 2.79634 5.63225 0.00000
+v 3.07137 5.69059 0.00000
+v 3.32129 5.39720 0.00000
+v 3.41701 5.49292 0.00000
+v 3.62824 5.92649 0.00000
+v 3.18622 6.53269 0.00000
+v 3.11057 6.32466 0.00000
+v 3.03094 6.24504 0.00000
+v 2.67362 6.27252 0.00000
+v 2.43973 6.31930 0.00000
+v 1.94544 6.65219 0.00000
+v 0.72002 6.70412 0.00000
+v 0.70500 6.60000 0.38000
+v 0.74500 6.56000 0.38000
+v 1.22500 6.31000 0.38000
+v 1.37500 6.16000 0.38000
+v 1.95500 5.78000 0.38000
+v 2.06500 5.67000 0.38000
+v 1.43500 5.02000 0.38000
+v 1.47500 4.98000 0.38000
+v 2.50500 5.19000 0.38000
+v 3.02500 4.76000 0.38000
+v 3.06500 4.80000 0.38000
+v 3.32500 5.32000 0.38000
+v 3.25500 5.39000 0.38000
+v 3.20500 5.37000 0.38000
+v 2.76500 5.47000 0.38000
+v 2.65500 5.58000 0.38000
+v 2.76500 5.69000 0.38000
+v 3.09500 5.76000 0.38000
+v 3.32500 5.49000 0.38000
+v 3.36500 5.53000 0.38000
+v 3.55500 5.92000 0.38000
+v 3.20500 6.40000 0.38000
+v 3.16500 6.29000 0.38000
+v 3.05500 6.18000 0.38000
+v 2.66500 6.21000 0.38000
+v 2.41500 6.26000 0.38000
+v 1.92500 6.59000 0.38000
+v 0.74500 6.64000 0.38000
+v 0.71349 6.60000 0.38000
+v 0.74859 6.56490 0.38000
+v 1.22859 6.31490 0.38000
+v 1.30717 6.23632 0.38000
+v 1.38547 6.24611 0.38000
+v 1.45560 6.22607 0.38000
+v 1.82484 6.25601 0.38000
+v 2.18493 6.24600 0.38000
+v 2.38239 6.25588 0.38000
+v 2.39593 6.26941 0.38000
+v 2.27157 6.36507 0.38000
+v 1.92316 6.58407 0.38000
+v 0.74738 6.63389 0.38000
+v 0.71349 6.60000 0.41250
+v 0.74859 6.56490 0.41250
+v 1.22859 6.31490 0.41250
+v 1.30717 6.23632 0.41250
+v 1.38547 6.24611 0.41250
+v 1.45560 6.22607 0.41250
+v 1.82484 6.25601 0.41250
+v 2.18493 6.24600 0.41250
+v 2.38239 6.25588 0.41250
+v 2.39593 6.26941 0.41250
+v 2.27157 6.36507 0.41250
+v 1.92316 6.58407 0.41250
+v 0.74738 6.63389 0.41250
+v 0.72409 6.60000 0.42000
+v 0.75308 6.57101 0.42000
+v 1.23308 6.32101 0.42000
+v 1.30988 6.24421 0.42000
+v 1.38606 6.25374 0.42000
+v 1.45635 6.23365 0.42000
+v 1.82464 6.26352 0.42000
+v 2.18485 6.25351 0.42000
+v 2.37913 6.26322 0.42000
+v 2.38458 6.26867 0.42000
+v 2.26728 6.35891 0.42000
+v 1.92085 6.57666 0.42000
+v 0.75035 6.62626 0.42000
+v 0.72409 6.60000 -0.42000
+v 0.75308 6.57101 -0.42000
+v 1.23308 6.32101 -0.42000
+v 1.30988 6.24421 -0.42000
+v 1.38606 6.25374 -0.42000
+v 1.45635 6.23365 -0.42000
+v 1.82464 6.26352 -0.42000
+v 2.18485 6.25351 -0.42000
+v 2.37913 6.26322 -0.42000
+v 2.38458 6.26867 -0.42000
+v 2.26728 6.35891 -0.42000
+v 1.92085 6.57666 -0.42000
+v 0.75035 6.62626 -0.42000
+v 0.71349 6.60000 -0.41250
+v 0.74859 6.56490 -0.41250
+v 1.22859 6.31490 -0.41250
+v 1.30717 6.23632 -0.41250
+v 1.38547 6.24611 -0.41250
+v 1.45560 6.22607 -0.41250
+v 1.82484 6.25601 -0.41250
+v 2.18493 6.24600 -0.41250
+v 2.38239 6.25588 -0.41250
+v 2.39593 6.26941 -0.41250
+v 2.27157 6.36507 -0.41250
+v 1.92316 6.58407 -0.41250
+v 0.74738 6.63389 -0.41250
+v 0.71349 6.60000 -0.38000
+v 0.74859 6.56490 -0.38000
+v 1.22859 6.31490 -0.38000
+v 1.30717 6.23632 -0.38000
+v 1.38547 6.24611 -0.38000
+v 1.45560 6.22607 -0.38000
+v 1.82484 6.25601 -0.38000
+v 2.18493 6.24600 -0.38000
+v 2.38239 6.25588 -0.38000
+v 2.39593 6.26941 -0.38000
+v 2.27157 6.36507 -0.38000
+v 1.92316 6.58407 -0.38000
+v 0.74738 6.63389 -0.38000
+v 1.45440 6.20393 0.38000
+v 1.38458 6.22388 0.38000
+v 1.32773 6.21576 0.38000
+v 1.37881 6.16468 0.38000
+v 1.95881 5.78468 0.38000
+v 2.07844 5.66504 0.38000
+v 2.23626 5.59600 0.38000
+v 2.66251 5.59600 0.38000
+v 2.76202 5.69550 0.38000
+v 3.09694 5.76655 0.38000
+v 3.11423 5.74925 0.38000
+v 3.16191 5.81600 0.38000
+v 3.17900 5.81600 0.38000
+v 3.17900 6.12772 0.38000
+v 3.10430 6.21176 0.38000
+v 3.05710 6.17400 0.38000
+v 2.98465 6.17400 0.38000
+v 2.55582 6.22386 0.38000
+v 2.45588 6.18389 0.38000
+v 2.24054 6.20440 0.38000
+v 2.23068 6.23400 0.38000
+v 1.82524 6.23400 0.38000
+v 1.45440 6.20393 0.40500
+v 1.38458 6.22388 0.40500
+v 1.32773 6.21576 0.40500
+v 1.37881 6.16468 0.40500
+v 1.95881 5.78468 0.40500
+v 2.07844 5.66504 0.40500
+v 2.23626 5.59600 0.40500
+v 2.66251 5.59600 0.40500
+v 2.76202 5.69550 0.40500
+v 3.09694 5.76655 0.40500
+v 3.11423 5.74925 0.40500
+v 3.16191 5.81600 0.40500
+v 3.17900 5.81600 0.40500
+v 3.17900 6.12772 0.40500
+v 3.10430 6.21176 0.40500
+v 3.05710 6.17400 0.40500
+v 2.98465 6.17400 0.40500
+v 2.55582 6.22386 0.40500
+v 2.45588 6.18389 0.40500
+v 2.24054 6.20440 0.40500
+v 2.23068 6.23400 0.40500
+v 1.82524 6.23400 0.40500
+v 1.45290 6.18876 0.42000
+v 1.38354 6.20858 0.42000
+v 1.35955 6.20515 0.42000
+v 1.38832 6.17638 0.42000
+v 1.96832 5.79638 0.42000
+v 2.08705 5.67765 0.42000
+v 2.23939 5.61100 0.42000
+v 2.65630 5.61100 0.42000
+v 2.75455 5.70925 0.42000
+v 3.10179 5.78291 0.42000
+v 3.11232 5.77238 0.42000
+v 3.15419 5.83100 0.42000
+v 3.16400 5.83100 0.42000
+v 3.16400 6.12202 0.42000
+v 3.10255 6.19115 0.42000
+v 3.06237 6.15900 0.42000
+v 2.98378 6.15900 0.42000
+v 2.55786 6.20853 0.42000
+v 2.45807 6.16861 0.42000
+v 2.22940 6.19039 0.42000
+v 2.21986 6.21900 0.42000
+v 1.82585 6.21900 0.42000
+v 1.45290 6.18876 -0.42000
+v 1.38354 6.20858 -0.42000
+v 1.35955 6.20515 -0.42000
+v 1.38832 6.17638 -0.42000
+v 1.96832 5.79638 -0.42000
+v 2.08705 5.67765 -0.42000
+v 2.23939 5.61100 -0.42000
+v 2.65630 5.61100 -0.42000
+v 2.75455 5.70925 -0.42000
+v 3.10179 5.78291 -0.42000
+v 3.11232 5.77238 -0.42000
+v 3.15419 5.83100 -0.42000
+v 3.16400 5.83100 -0.42000
+v 3.16400 6.12202 -0.42000
+v 3.10255 6.19115 -0.42000
+v 3.06237 6.15900 -0.42000
+v 2.98378 6.15900 -0.42000
+v 2.55786 6.20853 -0.42000
+v 2.45807 6.16861 -0.42000
+v 2.22940 6.19039 -0.42000
+v 2.21986 6.21900 -0.42000
+v 1.82585 6.21900 -0.42000
+v 1.45440 6.20393 -0.40500
+v 1.38458 6.22388 -0.40500
+v 1.32773 6.21576 -0.40500
+v 1.37881 6.16468 -0.40500
+v 1.95881 5.78468 -0.40500
+v 2.07844 5.66504 -0.40500
+v 2.23626 5.59600 -0.40500
+v 2.66251 5.59600 -0.40500
+v 2.76202 5.69550 -0.40500
+v 3.09694 5.76655 -0.40500
+v 3.11423 5.74925 -0.40500
+v 3.16191 5.81600 -0.40500
+v 3.17900 5.81600 -0.40500
+v 3.17900 6.12772 -0.40500
+v 3.10430 6.21176 -0.40500
+v 3.05710 6.17400 -0.40500
+v 2.98465 6.17400 -0.40500
+v 2.55582 6.22386 -0.40500
+v 2.45588 6.18389 -0.40500
+v 2.24054 6.20440 -0.40500
+v 2.23068 6.23400 -0.40500
+v 1.82524 6.23400 -0.40500
+v 1.45440 6.20393 -0.38000
+v 1.38458 6.22388 -0.38000
+v 1.32773 6.21576 -0.38000
+v 1.37881 6.16468 -0.38000
+v 1.95881 5.78468 -0.38000
+v 2.07844 5.66504 -0.38000
+v 2.23626 5.59600 -0.38000
+v 2.66251 5.59600 -0.38000
+v 2.76202 5.69550 -0.38000
+v 3.09694 5.76655 -0.38000
+v 3.11423 5.74925 -0.38000
+v 3.16191 5.81600 -0.38000
+v 3.17900 5.81600 -0.38000
+v 3.17900 6.12772 -0.38000
+v 3.10430 6.21176 -0.38000
+v 3.05710 6.17400 -0.38000
+v 2.98465 6.17400 -0.38000
+v 2.55582 6.22386 -0.38000
+v 2.45588 6.18389 -0.38000
+v 2.24054 6.20440 -0.38000
+v 2.23068 6.23400 -0.38000
+v 1.82524 6.23400 -0.38000
+v 3.17100 6.35751 0.38000
+v 3.17100 6.28751 0.38000
+v 3.11327 6.22978 0.38000
+v 3.20100 6.13230 0.38000
+v 3.20100 5.80660 0.38000
+v 3.14982 5.77589 0.38000
+v 3.13204 5.73145 0.38000
+v 3.22984 5.63365 0.38000
+v 3.27984 5.54365 0.38000
+v 3.32500 5.49849 0.38000
+v 3.36005 5.53353 0.38000
+v 3.54807 5.91947 0.38000
+v 3.28027 6.30629 0.38000
+v 3.20474 6.39126 0.38000
+v 3.17100 6.35751 0.39000
+v 3.17100 6.28751 0.39000
+v 3.11327 6.22978 0.39000
+v 3.20100 6.13230 0.39000
+v 3.20100 5.80660 0.39000
+v 3.14982 5.77589 0.39000
+v 3.13204 5.73145 0.39000
+v 3.22984 5.63365 0.39000
+v 3.27984 5.54365 0.39000
+v 3.32500 5.49849 0.39000
+v 3.36005 5.53353 0.39000
+v 3.54807 5.91947 0.39000
+v 3.28027 6.30629 0.39000
+v 3.20474 6.39126 0.39000
+v 3.20100 6.34509 0.42000
+v 3.20100 6.27509 0.42000
+v 3.15461 6.22870 0.42000
+v 3.23100 6.14381 0.42000
+v 3.23100 5.78962 0.42000
+v 3.17392 5.75537 0.42000
+v 3.16724 5.73867 0.42000
+v 3.25402 5.65189 0.42000
+v 3.30402 5.56189 0.42000
+v 3.32500 5.54091 0.42000
+v 3.33528 5.55119 0.42000
+v 3.51341 5.91683 0.42000
+v 3.25664 6.28771 0.42000
+v 3.20346 6.34755 0.42000
+v 3.20100 6.34509 -0.42000
+v 3.20100 6.27509 -0.42000
+v 3.15461 6.22870 -0.42000
+v 3.23100 6.14381 -0.42000
+v 3.23100 5.78962 -0.42000
+v 3.17392 5.75537 -0.42000
+v 3.16724 5.73867 -0.42000
+v 3.25402 5.65189 -0.42000
+v 3.30402 5.56189 -0.42000
+v 3.32500 5.54091 -0.42000
+v 3.33528 5.55119 -0.42000
+v 3.51341 5.91683 -0.42000
+v 3.25664 6.28771 -0.42000
+v 3.20346 6.34755 -0.42000
+v 3.17100 6.35751 -0.39000
+v 3.17100 6.28751 -0.39000
+v 3.11327 6.22978 -0.39000
+v 3.20100 6.13230 -0.39000
+v 3.20100 5.80660 -0.39000
+v 3.14982 5.77589 -0.39000
+v 3.13204 5.73145 -0.39000
+v 3.22984 5.63365 -0.39000
+v 3.27984 5.54365 -0.39000
+v 3.32500 5.49849 -0.39000
+v 3.36005 5.53353 -0.39000
+v 3.54807 5.91947 -0.39000
+v 3.28027 6.30629 -0.39000
+v 3.20474 6.39126 -0.39000
+v 3.17100 6.35751 -0.38000
+v 3.17100 6.28751 -0.38000
+v 3.11327 6.22978 -0.38000
+v 3.20100 6.13230 -0.38000
+v 3.20100 5.80660 -0.38000
+v 3.14982 5.77589 -0.38000
+v 3.13204 5.73145 -0.38000
+v 3.22984 5.63365 -0.38000
+v 3.27984 5.54365 -0.38000
+v 3.32500 5.49849 -0.38000
+v 3.36005 5.53353 -0.38000
+v 3.54807 5.91947 -0.38000
+v 3.28027 6.30629 -0.38000
+v 3.20474 6.39126 -0.38000
+v 2.38749 6.23400 0.38000
+v 2.25100 6.23400 0.38000
+v 2.25100 6.22546 0.38000
+v 2.45469 6.20606 0.38000
+v 2.50204 6.21553 0.38000
+v 2.51651 6.23000 0.38000
+v 2.49251 6.25400 0.38000
+v 2.40749 6.25400 0.38000
+v 2.38749 6.23400 0.41625
+v 2.25100 6.23400 0.41625
+v 2.25100 6.22546 0.41625
+v 2.45469 6.20606 0.41625
+v 2.50204 6.21553 0.41625
+v 2.51651 6.23000 0.41625
+v 2.49251 6.25400 0.41625
+v 2.40749 6.25400 0.41625
+v 2.38904 6.23025 0.42000
+v 2.25475 6.23025 0.42000
+v 2.25475 6.22887 0.42000
+v 2.45450 6.20984 0.42000
+v 2.50019 6.21898 0.42000
+v 2.51121 6.23000 0.42000
+v 2.49096 6.25025 0.42000
+v 2.40904 6.25025 0.42000
+v 2.38904 6.23025 -0.42000
+v 2.25475 6.23025 -0.42000
+v 2.25475 6.22887 -0.42000
+v 2.45450 6.20984 -0.42000
+v 2.50019 6.21898 -0.42000
+v 2.51121 6.23000 -0.42000
+v 2.49096 6.25025 -0.42000
+v 2.40904 6.25025 -0.42000
+v 2.38749 6.23400 -0.41625
+v 2.25100 6.23400 -0.41625
+v 2.25100 6.22546 -0.41625
+v 2.45469 6.20606 -0.41625
+v 2.50204 6.21553 -0.41625
+v 2.51651 6.23000 -0.41625
+v 2.49251 6.25400 -0.41625
+v 2.40749 6.25400 -0.41625
+v 2.38749 6.23400 -0.38000
+v 2.25100 6.23400 -0.38000
+v 2.25100 6.22546 -0.38000
+v 2.45469 6.20606 -0.38000
+v 2.50204 6.21553 -0.38000
+v 2.51651 6.23000 -0.38000
+v 2.49251 6.25400 -0.38000
+v 2.40749 6.25400 -0.38000
+v 1.44345 5.02004 0.38000
+v 1.47695 4.98653 0.38000
+v 2.47900 5.19488 0.38000
+v 2.47900 5.22751 0.38000
+v 2.45100 5.25552 0.38000
+v 2.01549 5.60194 0.38000
+v 1.44345 5.02004 0.40500
+v 1.47695 4.98653 0.40500
+v 2.47900 5.19488 0.40500
+v 2.47900 5.22751 0.40500
+v 2.45100 5.25552 0.40500
+v 2.01549 5.60194 0.40500
+v 1.46457 5.02013 0.42000
+v 1.48183 5.00287 0.42000
+v 2.46400 5.20708 0.42000
+v 2.46400 5.22130 0.42000
+v 2.44099 5.24431 0.42000
+v 2.01672 5.58180 0.42000
+v 1.46457 5.02013 -0.42000
+v 1.48183 5.00287 -0.42000
+v 2.46400 5.20708 -0.42000
+v 2.46400 5.22130 -0.42000
+v 2.44099 5.24431 -0.42000
+v 2.01672 5.58180 -0.42000
+v 1.44345 5.02004 -0.40500
+v 1.47695 4.98653 -0.40500
+v 2.47900 5.19488 -0.40500
+v 2.47900 5.22751 -0.40500
+v 2.45100 5.25552 -0.40500
+v 2.01549 5.60194 -0.40500
+v 1.44345 5.02004 -0.38000
+v 1.47695 4.98653 -0.38000
+v 2.47900 5.19488 -0.38000
+v 2.47900 5.22751 -0.38000
+v 2.45100 5.25552 -0.38000
+v 2.01549 5.60194 -0.38000
+v 2.03394 5.62046 0.38000
+v 2.45903 5.27446 0.38000
+v 2.50100 5.23249 0.38000
+v 2.50100 5.19286 0.38000
+v 3.02458 4.76807 0.38000
+v 3.06007 4.80355 0.38000
+v 3.31770 5.31882 0.38000
+v 3.25355 5.38296 0.38000
+v 3.20549 5.36373 0.38000
+v 2.76198 5.46453 0.38000
+v 2.65251 5.57400 0.38000
+v 2.23366 5.57400 0.38000
+v 2.06626 5.65278 0.38000
+v 2.03394 5.62046 0.40500
+v 2.45903 5.27446 0.40500
+v 2.50100 5.23249 0.40500
+v 2.50100 5.19286 0.40500
+v 3.02458 4.76807 0.40500
+v 3.06007 4.80355 0.40500
+v 3.31770 5.31882 0.40500
+v 3.25355 5.38296 0.40500
+v 3.20549 5.36373 0.40500
+v 2.76198 5.46453 0.40500
+v 2.65251 5.57400 0.40500
+v 2.23366 5.57400 0.40500
+v 2.06626 5.65278 0.40500
+v 2.05630 5.62160 0.42000
+v 2.46909 5.28561 0.42000
+v 2.51600 5.23870 0.42000
+v 2.51600 5.20000 0.42000
+v 3.02353 4.78823 0.42000
+v 3.04774 4.81244 0.42000
+v 3.29945 5.31585 0.42000
+v 3.24994 5.36536 0.42000
+v 3.20673 5.34807 0.42000
+v 2.75444 5.45087 0.42000
+v 2.64630 5.55900 0.42000
+v 2.23031 5.55900 0.42000
+v 2.06941 5.63471 0.42000
+v 2.05630 5.62160 -0.42000
+v 2.46909 5.28561 -0.42000
+v 2.51600 5.23870 -0.42000
+v 2.51600 5.20000 -0.42000
+v 3.02353 4.78823 -0.42000
+v 3.04774 4.81244 -0.42000
+v 3.29945 5.31585 -0.42000
+v 3.24994 5.36536 -0.42000
+v 3.20673 5.34807 -0.42000
+v 2.75444 5.45087 -0.42000
+v 2.64630 5.55900 -0.42000
+v 2.23031 5.55900 -0.42000
+v 2.06941 5.63471 -0.42000
+v 2.03394 5.62046 -0.40500
+v 2.45903 5.27446 -0.40500
+v 2.50100 5.23249 -0.40500
+v 2.50100 5.19286 -0.40500
+v 3.02458 4.76807 -0.40500
+v 3.06007 4.80355 -0.40500
+v 3.31770 5.31882 -0.40500
+v 3.25355 5.38296 -0.40500
+v 3.20549 5.36373 -0.40500
+v 2.76198 5.46453 -0.40500
+v 2.65251 5.57400 -0.40500
+v 2.23366 5.57400 -0.40500
+v 2.06626 5.65278 -0.40500
+v 2.03394 5.62046 -0.38000
+v 2.45903 5.27446 -0.38000
+v 2.50100 5.23249 -0.38000
+v 2.50100 5.19286 -0.38000
+v 3.02458 4.76807 -0.38000
+v 3.06007 4.80355 -0.38000
+v 3.31770 5.31882 -0.38000
+v 3.25355 5.38296 -0.38000
+v 3.20549 5.36373 -0.38000
+v 2.76198 5.46453 -0.38000
+v 2.65251 5.57400 -0.38000
+v 2.23366 5.57400 -0.38000
+v 2.06626 5.65278 -0.38000
+v 0.14500 5.65000 -0.32000
+v 0.01500 4.36000 -0.32000
+v 0.06500 4.32000 -0.32000
+v 0.29500 4.59000 -0.32000
+v 0.40500 4.48000 -0.32000
+v 0.64500 3.95000 -0.32000
+v 1.91500 2.24000 -0.32000
+v 1.95500 2.28000 -0.32000
+v 1.97500 2.86000 -0.32000
+v 2.08500 2.97000 -0.32000
+v 2.34500 2.63000 -0.32000
+v 2.64500 3.15000 -0.32000
+v 2.81500 3.35000 -0.32000
+v 1.42500 5.00000 -0.32000
+v 2.05500 5.65000 -0.32000
+v 1.42500 6.09000 -0.32000
+v 1.29500 6.22000 -0.32000
+v 0.09427 5.68512 0.00000
+v -0.04167 4.33619 0.00000
+v 0.07215 4.24512 0.00000
+v 0.29818 4.51046 0.00000
+v 0.35986 4.44877 0.00000
+v 0.59820 3.92245 0.00000
+v 1.90895 2.15758 0.00000
+v 2.00823 2.25687 0.00000
+v 2.02823 2.83687 0.00000
+v 2.07957 2.88820 0.00000
+v 2.35130 2.53286 0.00000
+v 2.68932 3.11877 0.00000
+v 2.88574 3.34984 0.00000
+v 1.49774 4.99746 0.00000
+v 2.13791 5.65796 0.00000
+v 1.45982 6.13155 0.00000
+v 1.30576 6.28560 0.00000
+v 0.14500 5.65000 0.32000
+v 0.01500 4.36000 0.32000
+v 0.06500 4.32000 0.32000
+v 0.29500 4.59000 0.32000
+v 0.40500 4.48000 0.32000
+v 0.64500 3.95000 0.32000
+v 1.91500 2.24000 0.32000
+v 1.95500 2.28000 0.32000
+v 1.97500 2.86000 0.32000
+v 2.08500 2.97000 0.32000
+v 2.34500 2.63000 0.32000
+v 2.64500 3.15000 0.32000
+v 2.81500 3.35000 0.32000
+v 1.42500 5.00000 0.32000
+v 2.05500 5.65000 0.32000
+v 1.42500 6.09000 0.32000
+v 1.29500 6.22000 0.32000
+v 0.28763 5.73461 0.32000
+v 0.18855 5.68507 0.32000
+v 0.15078 5.64730 0.32000
+v 0.04091 4.41877 0.32000
+v 0.02186 4.36162 0.32000
+v 0.05537 4.32812 0.32000
+v 0.11038 4.37396 0.32000
+v 0.17024 4.47372 0.32000
+v 0.29500 4.59849 0.32000
+v 0.30100 4.59249 0.32000
+v 0.31929 4.70226 0.32000
+v 0.62047 5.15402 0.32000
+v 0.69054 5.21408 0.32000
+v 0.74005 5.28339 0.32000
+v 1.29032 6.12380 0.32000
+v 1.33651 6.17000 0.32000
+v 1.29375 6.21276 0.32000
+v 0.28763 5.73461 0.35250
+v 0.18855 5.68507 0.35250
+v 0.15078 5.64730 0.35250
+v 0.04091 4.41877 0.35250
+v 0.02186 4.36162 0.35250
+v 0.05537 4.32812 0.35250
+v 0.11038 4.37396 0.35250
+v 0.17024 4.47372 0.35250
+v 0.29500 4.59849 0.35250
+v 0.30100 4.59249 0.35250
+v 0.31929 4.70226 0.35250
+v 0.62047 5.15402 0.35250
+v 0.69054 5.21408 0.35250
+v 0.74005 5.28339 0.35250
+v 1.29032 6.12380 0.35250
+v 1.33651 6.17000 0.35250
+v 1.29375 6.21276 0.35250
+v 0.29092 5.72786 0.36000
+v 0.19300 5.67890 0.36000
+v 0.15801 5.64392 0.36000
+v 0.04831 4.41723 0.36000
+v 0.03045 4.36365 0.36000
+v 0.05583 4.33826 0.36000
+v 0.10460 4.37891 0.36000
+v 0.16428 4.47837 0.36000
+v 0.29500 4.60909 0.36000
+v 0.29600 4.60810 0.36000
+v 0.31216 4.70508 0.36000
+v 0.61480 5.15904 0.36000
+v 0.68497 5.21918 0.36000
+v 0.73386 5.28762 0.36000
+v 1.28447 6.12856 0.36000
+v 1.32591 6.17000 0.36000
+v 1.29219 6.20372 0.36000
+v 0.29092 5.72786 -0.36000
+v 0.19300 5.67890 -0.36000
+v 0.15801 5.64392 -0.36000
+v 0.04831 4.41723 -0.36000
+v 0.03045 4.36365 -0.36000
+v 0.05583 4.33826 -0.36000
+v 0.10460 4.37891 -0.36000
+v 0.16428 4.47837 -0.36000
+v 0.29500 4.60909 -0.36000
+v 0.29600 4.60810 -0.36000
+v 0.31216 4.70508 -0.36000
+v 0.61480 5.15904 -0.36000
+v 0.68497 5.21918 -0.36000
+v 0.73386 5.28762 -0.36000
+v 1.28447 6.12856 -0.36000
+v 1.32591 6.17000 -0.36000
+v 1.29219 6.20372 -0.36000
+v 0.28763 5.73461 -0.35250
+v 0.18855 5.68507 -0.35250
+v 0.15078 5.64730 -0.35250
+v 0.04091 4.41877 -0.35250
+v 0.02186 4.36162 -0.35250
+v 0.05537 4.32812 -0.35250
+v 0.11038 4.37396 -0.35250
+v 0.17024 4.47372 -0.35250
+v 0.29500 4.59849 -0.35250
+v 0.30100 4.59249 -0.35250
+v 0.31929 4.70226 -0.35250
+v 0.62047 5.15402 -0.35250
+v 0.69054 5.21408 -0.35250
+v 0.74005 5.28339 -0.35250
+v 1.29032 6.12380 -0.35250
+v 1.33651 6.17000 -0.35250
+v 1.29375 6.21276 -0.35250
+v 0.28763 5.73461 -0.32000
+v 0.18855 5.68507 -0.32000
+v 0.15078 5.64730 -0.32000
+v 0.04091 4.41877 -0.32000
+v 0.02186 4.36162 -0.32000
+v 0.05537 4.32812 -0.32000
+v 0.11038 4.37396 -0.32000
+v 0.17024 4.47372 -0.32000
+v 0.29500 4.59849 -0.32000
+v 0.30100 4.59249 -0.32000
+v 0.31929 4.70226 -0.32000
+v 0.62047 5.15402 -0.32000
+v 0.69054 5.21408 -0.32000
+v 0.74005 5.28339 -0.32000
+v 1.29032 6.12380 -0.32000
+v 1.33651 6.17000 -0.32000
+v 1.29375 6.21276 -0.32000
+v 1.30967 6.11618 0.32000
+v 0.70162 5.19912 0.32000
+v 0.72037 5.14287 0.32000
+v 0.92707 4.87712 0.32000
+v 1.31396 5.01600 0.32000
+v 1.36623 5.01600 0.32000
+v 1.42253 4.99176 0.32000
+v 1.41773 5.00112 0.32000
+v 2.04658 5.64993 0.32000
+v 2.00118 5.69534 0.32000
+v 1.52149 6.01513 0.32000
+v 1.34550 6.15201 0.32000
+v 1.30967 6.11618 0.35625
+v 0.70162 5.19912 0.35625
+v 0.72037 5.14287 0.35625
+v 0.92707 4.87712 0.35625
+v 1.31396 5.01600 0.35625
+v 1.36623 5.01600 0.35625
+v 1.42253 4.99176 0.35625
+v 1.41773 5.00112 0.35625
+v 2.04658 5.64993 0.35625
+v 2.00118 5.69534 0.35625
+v 1.52149 6.01513 0.35625
+v 1.34550 6.15201 0.35625
+v 1.31259 6.11380 0.36000
+v 0.70575 5.19857 0.36000
+v 0.72372 5.14467 0.36000
+v 0.92836 4.88156 0.36000
+v 1.31330 5.01975 0.36000
+v 1.36700 5.01975 0.36000
+v 1.41470 4.99908 0.36000
+v 1.41317 5.00180 0.36000
+v 2.04132 5.64989 0.36000
+v 1.99879 5.69242 0.36000
+v 1.51930 6.01209 0.36000
+v 1.34581 6.14702 0.36000
+v 1.31259 6.11380 -0.36000
+v 0.70575 5.19857 -0.36000
+v 0.72372 5.14467 -0.36000
+v 0.92836 4.88156 -0.36000
+v 1.31330 5.01975 -0.36000
+v 1.36700 5.01975 -0.36000
+v 1.41470 4.99908 -0.36000
+v 1.41317 5.00180 -0.36000
+v 2.04132 5.64989 -0.36000
+v 1.99879 5.69242 -0.36000
+v 1.51930 6.01209 -0.36000
+v 1.34581 6.14702 -0.36000
+v 1.30967 6.11618 -0.35625
+v 0.70162 5.19912 -0.35625
+v 0.72037 5.14287 -0.35625
+v 0.92707 4.87712 -0.35625
+v 1.31396 5.01600 -0.35625
+v 1.36623 5.01600 -0.35625
+v 1.42253 4.99176 -0.35625
+v 1.41773 5.00112 -0.35625
+v 2.04658 5.64993 -0.35625
+v 2.00118 5.69534 -0.35625
+v 1.52149 6.01513 -0.35625
+v 1.34550 6.15201 -0.35625
+v 1.30967 6.11618 -0.32000
+v 0.70162 5.19912 -0.32000
+v 0.72037 5.14287 -0.32000
+v 0.92707 4.87712 -0.32000
+v 1.31396 5.01600 -0.32000
+v 1.36623 5.01600 -0.32000
+v 1.42253 4.99176 -0.32000
+v 1.41773 5.00112 -0.32000
+v 2.04658 5.64993 -0.32000
+v 2.00118 5.69534 -0.32000
+v 1.52149 6.01513 -0.32000
+v 1.34550 6.15201 -0.32000
+v 0.95766 4.87456 0.32000
+v 0.93100 4.85679 0.32000
+v 0.93100 4.84188 0.32000
+v 1.56943 3.92414 0.32000
+v 1.61710 3.88600 0.32000
+v 1.64032 3.88600 0.32000
+v 1.64881 3.91999 0.32000
+v 1.40900 4.86925 0.32000
+v 1.40900 4.96660 0.32000
+v 1.36334 4.99400 0.32000
+v 1.31597 4.99400 0.32000
+v 0.95766 4.87456 0.34500
+v 0.93100 4.85679 0.34500
+v 0.93100 4.84188 0.34500
+v 1.56943 3.92414 0.34500
+v 1.61710 3.88600 0.34500
+v 1.64032 3.88600 0.34500
+v 1.64881 3.91999 0.34500
+v 1.40900 4.86925 0.34500
+v 1.40900 4.96660 0.34500
+v 1.36334 4.99400 0.34500
+v 1.31597 4.99400 0.34500
+v 0.96431 4.86097 0.36000
+v 0.94600 4.84876 0.36000
+v 0.94600 4.84659 0.36000
+v 1.58050 3.93449 0.36000
+v 1.62237 3.90100 0.36000
+v 1.62860 3.90100 0.36000
+v 1.63335 3.91997 0.36000
+v 1.39400 4.86739 0.36000
+v 1.39400 4.95811 0.36000
+v 1.35918 4.97900 0.36000
+v 1.31841 4.97900 0.36000
+v 0.96431 4.86097 -0.36000
+v 0.94600 4.84876 -0.36000
+v 0.94600 4.84659 -0.36000
+v 1.58050 3.93449 -0.36000
+v 1.62237 3.90100 -0.36000
+v 1.62860 3.90100 -0.36000
+v 1.63335 3.91997 -0.36000
+v 1.39400 4.86739 -0.36000
+v 1.39400 4.95811 -0.36000
+v 1.35918 4.97900 -0.36000
+v 1.31841 4.97900 -0.36000
+v 0.95766 4.87456 -0.34500
+v 0.93100 4.85679 -0.34500
+v 0.93100 4.84188 -0.34500
+v 1.56943 3.92414 -0.34500
+v 1.61710 3.88600 -0.34500
+v 1.64032 3.88600 -0.34500
+v 1.64881 3.91999 -0.34500
+v 1.40900 4.86925 -0.34500
+v 1.40900 4.96660 -0.34500
+v 1.36334 4.99400 -0.34500
+v 1.31597 4.99400 -0.34500
+v 0.95766 4.87456 -0.32000
+v 0.93100 4.85679 -0.32000
+v 0.93100 4.84188 -0.32000
+v 1.56943 3.92414 -0.32000
+v 1.61710 3.88600 -0.32000
+v 1.64032 3.88600 -0.32000
+v 1.64881 3.91999 -0.32000
+v 1.40900 4.86925 -0.32000
+v 1.40900 4.96660 -0.32000
+v 1.36334 4.99400 -0.32000
+v 1.31597 4.99400 -0.32000
+v 0.63948 5.14590 0.32000
+v 0.34073 4.69778 0.32000
+v 0.32139 4.57209 0.32000
+v 0.41002 4.48347 0.32000
+v 0.65021 3.95305 0.32000
+v 1.77974 2.41368 0.32000
+v 1.91543 2.24892 0.32000
+v 1.94905 2.28253 0.32000
+v 1.95901 2.81065 0.32000
+v 1.96947 2.86296 0.32000
+v 2.03841 2.93189 0.32000
+v 1.94939 3.31763 0.32000
+v 1.74969 3.62716 0.32000
+v 1.65045 3.85542 0.32000
+v 1.58135 3.88504 0.32000
+v 1.52026 3.95631 0.32000
+v 0.92951 4.79738 0.32000
+v 0.90955 4.86723 0.32000
+v 0.69974 5.13699 0.32000
+v 0.68243 5.18026 0.32000
+v 0.63948 5.14590 0.33000
+v 0.34073 4.69778 0.33000
+v 0.32139 4.57209 0.33000
+v 0.41002 4.48347 0.33000
+v 0.65021 3.95305 0.33000
+v 1.77974 2.41368 0.33000
+v 1.91543 2.24892 0.33000
+v 1.94905 2.28253 0.33000
+v 1.95901 2.81065 0.33000
+v 1.96947 2.86296 0.33000
+v 2.03841 2.93189 0.33000
+v 1.94939 3.31763 0.33000
+v 1.74969 3.62716 0.33000
+v 1.65045 3.85542 0.33000
+v 1.58135 3.88504 0.33000
+v 1.52026 3.95631 0.33000
+v 0.92951 4.79738 0.33000
+v 0.90955 4.86723 0.33000
+v 0.69974 5.13699 0.33000
+v 0.68243 5.18026 0.33000
+v 0.66185 5.12538 0.36000
+v 0.36937 4.68666 0.36000
+v 0.35336 4.58256 0.36000
+v 0.43509 4.50082 0.36000
+v 0.67625 3.96827 0.36000
+v 1.80343 2.43211 0.36000
+v 1.91758 2.29349 0.36000
+v 1.91928 2.29519 0.36000
+v 1.92907 2.81390 0.36000
+v 1.94184 2.87775 0.36000
+v 2.00544 2.94135 0.36000
+v 1.92134 3.30577 0.36000
+v 1.72316 3.61295 0.36000
+v 1.62768 3.83254 0.36000
+v 1.56312 3.86021 0.36000
+v 1.49654 3.93789 0.36000
+v 0.90205 4.78427 0.36000
+v 0.88230 4.85340 0.36000
+v 0.67346 5.12191 0.36000
+v 0.66960 5.13157 0.36000
+v 0.66185 5.12538 -0.36000
+v 0.36937 4.68666 -0.36000
+v 0.35336 4.58256 -0.36000
+v 0.43509 4.50082 -0.36000
+v 0.67625 3.96827 -0.36000
+v 1.80343 2.43211 -0.36000
+v 1.91758 2.29349 -0.36000
+v 1.91928 2.29519 -0.36000
+v 1.92907 2.81390 -0.36000
+v 1.94184 2.87775 -0.36000
+v 2.00544 2.94135 -0.36000
+v 1.92134 3.30577 -0.36000
+v 1.72316 3.61295 -0.36000
+v 1.62768 3.83254 -0.36000
+v 1.56312 3.86021 -0.36000
+v 1.49654 3.93789 -0.36000
+v 0.90205 4.78427 -0.36000
+v 0.88230 4.85340 -0.36000
+v 0.67346 5.12191 -0.36000
+v 0.66960 5.13157 -0.36000
+v 0.63948 5.14590 -0.33000
+v 0.34073 4.69778 -0.33000
+v 0.32139 4.57209 -0.33000
+v 0.41002 4.48347 -0.33000
+v 0.65021 3.95305 -0.33000
+v 1.77974 2.41368 -0.33000
+v 1.91543 2.24892 -0.33000
+v 1.94905 2.28253 -0.33000
+v 1.95901 2.81065 -0.33000
+v 1.96947 2.86296 -0.33000
+v 2.03841 2.93189 -0.33000
+v 1.94939 3.31763 -0.33000
+v 1.74969 3.62716 -0.33000
+v 1.65045 3.85542 -0.33000
+v 1.58135 3.88504 -0.33000
+v 1.52026 3.95631 -0.33000
+v 0.92951 4.79738 -0.33000
+v 0.90955 4.86723 -0.33000
+v 0.69974 5.13699 -0.33000
+v 0.68243 5.18026 -0.33000
+v 0.63948 5.14590 -0.32000
+v 0.34073 4.69778 -0.32000
+v 0.32139 4.57209 -0.32000
+v 0.41002 4.48347 -0.32000
+v 0.65021 3.95305 -0.32000
+v 1.77974 2.41368 -0.32000
+v 1.91543 2.24892 -0.32000
+v 1.94905 2.28253 -0.32000
+v 1.95901 2.81065 -0.32000
+v 1.96947 2.86296 -0.32000
+v 2.03841 2.93189 -0.32000
+v 1.94939 3.31763 -0.32000
+v 1.74969 3.62716 -0.32000
+v 1.65045 3.85542 -0.32000
+v 1.58135 3.88504 -0.32000
+v 1.52026 3.95631 -0.32000
+v 0.92951 4.79738 -0.32000
+v 0.90955 4.86723 -0.32000
+v 0.69974 5.13699 -0.32000
+v 0.68243 5.18026 -0.32000
+v 1.43100 4.96629 0.32000
+v 1.43100 4.87075 0.32000
+v 1.67115 3.92015 0.32000
+v 1.66127 3.87073 0.32000
+v 1.77028 3.63289 0.32000
+v 1.97060 3.32239 0.32000
+v 2.05836 2.95185 0.32000
+v 2.08500 2.97849 0.32000
+v 2.19987 2.86361 0.32000
+v 2.27997 2.71343 0.32000
+v 2.34529 2.63878 0.32000
+v 2.39012 2.68361 0.32000
+v 2.64008 3.15352 0.32000
+v 2.79002 3.31347 0.32000
+v 2.80788 3.34918 0.32000
+v 1.53056 4.88595 0.32000
+v 1.44382 4.97270 0.32000
+v 1.43100 4.96629 0.35250
+v 1.43100 4.87075 0.35250
+v 1.67115 3.92015 0.35250
+v 1.66127 3.87073 0.35250
+v 1.77028 3.63289 0.35250
+v 1.97060 3.32239 0.35250
+v 2.05836 2.95185 0.35250
+v 2.08500 2.97849 0.35250
+v 2.19987 2.86361 0.35250
+v 2.27997 2.71343 0.35250
+v 2.34529 2.63878 0.35250
+v 2.39012 2.68361 0.35250
+v 2.64008 3.15352 0.35250
+v 2.79002 3.31347 0.35250
+v 2.80788 3.34918 0.35250
+v 1.53056 4.88595 0.35250
+v 1.44382 4.97270 0.35250
+v 1.43850 4.96166 0.36000
+v 1.43850 4.87168 0.36000
+v 1.67884 3.92035 0.36000
+v 1.66910 3.87165 0.36000
+v 1.77687 3.63651 0.36000
+v 1.97760 3.32537 0.36000
+v 2.06256 2.96665 0.36000
+v 2.08500 2.98909 0.36000
+v 2.20597 2.86813 0.36000
+v 2.28618 2.71772 0.36000
+v 2.34566 2.64975 0.36000
+v 2.38403 2.68812 0.36000
+v 2.63392 3.15792 0.36000
+v 2.78381 3.31780 0.36000
+v 2.79898 3.34815 0.36000
+v 1.52501 4.88089 0.36000
+v 1.44233 4.96357 0.36000
+v 1.43850 4.96166 -0.36000
+v 1.43850 4.87168 -0.36000
+v 1.67884 3.92035 -0.36000
+v 1.66910 3.87165 -0.36000
+v 1.77687 3.63651 -0.36000
+v 1.97760 3.32537 -0.36000
+v 2.06256 2.96665 -0.36000
+v 2.08500 2.98909 -0.36000
+v 2.20597 2.86813 -0.36000
+v 2.28618 2.71772 -0.36000
+v 2.34566 2.64975 -0.36000
+v 2.38403 2.68812 -0.36000
+v 2.63392 3.15792 -0.36000
+v 2.78381 3.31780 -0.36000
+v 2.79898 3.34815 -0.36000
+v 1.52501 4.88089 -0.36000
+v 1.44233 4.96357 -0.36000
+v 1.43100 4.96629 -0.35250
+v 1.43100 4.87075 -0.35250
+v 1.67115 3.92015 -0.35250
+v 1.66127 3.87073 -0.35250
+v 1.77028 3.63289 -0.35250
+v 1.97060 3.32239 -0.35250
+v 2.05836 2.95185 -0.35250
+v 2.08500 2.97849 -0.35250
+v 2.19987 2.86361 -0.35250
+v 2.27997 2.71343 -0.35250
+v 2.34529 2.63878 -0.35250
+v 2.39012 2.68361 -0.35250
+v 2.64008 3.15352 -0.35250
+v 2.79002 3.31347 -0.35250
+v 2.80788 3.34918 -0.35250
+v 1.53056 4.88595 -0.35250
+v 1.44382 4.97270 -0.35250
+v 1.43100 4.96629 -0.32000
+v 1.43100 4.87075 -0.32000
+v 1.67115 3.92015 -0.32000
+v 1.66127 3.87073 -0.32000
+v 1.77028 3.63289 -0.32000
+v 1.97060 3.32239 -0.32000
+v 2.05836 2.95185 -0.32000
+v 2.08500 2.97849 -0.32000
+v 2.19987 2.86361 -0.32000
+v 2.27997 2.71343 -0.32000
+v 2.34529 2.63878 -0.32000
+v 2.39012 2.68361 -0.32000
+v 2.64008 3.15352 -0.32000
+v 2.79002 3.31347 -0.32000
+v 2.80788 3.34918 -0.32000
+v 1.53056 4.88595 -0.32000
+v 1.44382 4.97270 -0.32000
+v 0.53500 3.13000 -0.51000
+v 0.42500 3.02000 -0.51000
+v 0.36500 3.08000 -0.51000
+v -1.53500 3.25000 -0.51000
+v -1.57500 3.21000 -0.51000
+v -1.03500 2.15000 -0.51000
+v -0.89500 2.01000 -0.51000
+v 0.80500 0.75000 -0.51000
+v 0.86500 0.81000 -0.51000
+v 0.91500 0.76000 -0.51000
+v 2.56500 0.66000 -0.51000
+v 2.60500 0.70000 -0.51000
+v 2.45500 0.88000 -0.51000
+v 2.96500 2.32000 -0.51000
+v 2.77500 3.36000 -0.51000
+v 2.73500 3.40000 -0.51000
+v 2.68500 3.35000 -0.51000
+v 2.47500 2.95000 -0.51000
+v 2.33500 2.80000 -0.51000
+v 2.22500 2.91000 -0.51000
+v 2.01500 3.26000 -0.51000
+v 1.96500 3.31000 -0.51000
+v 1.92500 3.27000 -0.51000
+v 1.93500 2.51000 -0.51000
+v 1.82500 2.40000 -0.51000
+v 0.81500 3.74000 -0.51000
+v 0.46620 3.17787 0.00000
+v 0.42500 3.13667 0.00000
+v 0.40217 3.15950 0.00000
+v -1.56606 3.33561 0.00000
+v -1.67572 3.22596 0.00000
+v -1.10258 2.10091 0.00000
+v -0.94902 1.94735 0.00000
+v 0.81303 0.64136 0.00000
+v 0.86500 0.69333 0.00000
+v 0.87878 0.67954 0.00000
+v 2.59708 0.57540 0.00000
+v 2.71661 0.69494 0.00000
+v 2.54845 0.89673 0.00000
+v 3.05011 2.31319 0.00000
+v 2.85153 3.40014 0.00000
+v 2.73500 3.51667 0.00000
+v 2.61779 3.39946 0.00000
+v 2.40711 2.99818 0.00000
+v 2.33295 2.91872 0.00000
+v 2.29052 2.96115 0.00000
+v 2.08052 3.31115 0.00000
+v 1.96500 3.42667 0.00000
+v 1.84205 3.30372 0.00000
+v 1.85205 2.54372 0.00000
+v 1.83376 2.52544 0.00000
+v 0.79768 3.90004 0.00000
+v 0.53500 3.13000 0.51000
+v 0.42500 3.02000 0.51000
+v 0.36500 3.08000 0.51000
+v -1.53500 3.25000 0.51000
+v -1.57500 3.21000 0.51000
+v -1.03500 2.15000 0.51000
+v -0.89500 2.01000 0.51000
+v 0.80500 0.75000 0.51000
+v 0.86500 0.81000 0.51000
+v 0.91500 0.76000 0.51000
+v 2.56500 0.66000 0.51000
+v 2.60500 0.70000 0.51000
+v 2.45500 0.88000 0.51000
+v 2.96500 2.32000 0.51000
+v 2.77500 3.36000 0.51000
+v 2.73500 3.40000 0.51000
+v 2.68500 3.35000 0.51000
+v 2.47500 2.95000 0.51000
+v 2.33500 2.80000 0.51000
+v 2.22500 2.91000 0.51000
+v 2.01500 3.26000 0.51000
+v 1.96500 3.31000 0.51000
+v 1.92500 3.27000 0.51000
+v 1.93500 2.51000 0.51000
+v 1.82500 2.40000 0.51000
+v 0.81500 3.74000 0.51000
+v 0.75030 3.63710 0.51000
+v 0.54017 3.12680 0.51000
+v 0.47509 3.05242 0.51000
+v 0.51837 3.03511 0.51000
+v 0.59938 2.95411 0.51000
+v 0.89031 2.62305 0.51000
+v 0.90932 2.56600 0.51000
+v 0.94749 2.56600 0.51000
+v 1.02938 2.48410 0.51000
+v 1.81923 1.58428 0.51000
+v 1.88722 1.52600 0.51000
+v 1.91941 1.52600 0.51000
+v 1.93900 1.80021 0.51000
+v 1.93900 2.19903 0.51000
+v 1.86238 2.42889 0.51000
+v 1.82500 2.39151 0.51000
+v 1.70041 2.51611 0.51000
+v 0.92026 3.60631 0.51000
+v 0.81545 3.73018 0.51000
+v 0.75030 3.63710 0.53500
+v 0.54017 3.12680 0.53500
+v 0.47509 3.05242 0.53500
+v 0.51837 3.03511 0.53500
+v 0.59938 2.95411 0.53500
+v 0.89031 2.62305 0.53500
+v 0.90932 2.56600 0.53500
+v 0.94749 2.56600 0.53500
+v 1.02938 2.48410 0.53500
+v 1.81923 1.58428 0.53500
+v 1.88722 1.52600 0.53500
+v 1.91941 1.52600 0.53500
+v 1.93900 1.80021 0.53500
+v 1.93900 2.19903 0.53500
+v 1.86238 2.42889 0.53500
+v 1.82500 2.39151 0.53500
+v 1.70041 2.51611 0.53500
+v 0.92026 3.60631 0.53500
+v 0.81545 3.73018 0.53500
+v 0.76353 3.62986 0.55000
+v 0.55309 3.11879 0.55000
+v 0.50033 3.05849 0.55000
+v 0.52680 3.04790 0.55000
+v 0.61033 2.96437 0.55000
+v 0.90358 2.63067 0.55000
+v 0.92014 2.58100 0.55000
+v 0.95370 2.58100 0.55000
+v 1.04033 2.49437 0.55000
+v 1.82980 1.59497 0.55000
+v 1.89277 1.54100 0.55000
+v 1.90545 1.54100 0.55000
+v 1.92400 1.80075 0.55000
+v 1.92400 2.19659 0.55000
+v 1.85582 2.40112 0.55000
+v 1.82500 2.37030 0.55000
+v 1.68893 2.50637 0.55000
+v 0.90842 3.59709 0.55000
+v 0.81657 3.70563 0.55000
+v 0.76353 3.62986 -0.55000
+v 0.55309 3.11879 -0.55000
+v 0.50033 3.05849 -0.55000
+v 0.52680 3.04790 -0.55000
+v 0.61033 2.96437 -0.55000
+v 0.90358 2.63067 -0.55000
+v 0.92014 2.58100 -0.55000
+v 0.95370 2.58100 -0.55000
+v 1.04033 2.49437 -0.55000
+v 1.82980 1.59497 -0.55000
+v 1.89277 1.54100 -0.55000
+v 1.90545 1.54100 -0.55000
+v 1.92400 1.80075 -0.55000
+v 1.92400 2.19659 -0.55000
+v 1.85582 2.40112 -0.55000
+v 1.82500 2.37030 -0.55000
+v 1.68893 2.50637 -0.55000
+v 0.90842 3.59709 -0.55000
+v 0.81657 3.70563 -0.55000
+v 0.75030 3.63710 -0.53500
+v 0.54017 3.12680 -0.53500
+v 0.47509 3.05242 -0.53500
+v 0.51837 3.03511 -0.53500
+v 0.59938 2.95411 -0.53500
+v 0.89031 2.62305 -0.53500
+v 0.90932 2.56600 -0.53500
+v 0.94749 2.56600 -0.53500
+v 1.02938 2.48410 -0.53500
+v 1.81923 1.58428 -0.53500
+v 1.88722 1.52600 -0.53500
+v 1.91941 1.52600 -0.53500
+v 1.93900 1.80021 -0.53500
+v 1.93900 2.19903 -0.53500
+v 1.86238 2.42889 -0.53500
+v 1.82500 2.39151 -0.53500
+v 1.70041 2.51611 -0.53500
+v 0.92026 3.60631 -0.53500
+v 0.81545 3.73018 -0.53500
+v 0.75030 3.63710 -0.51000
+v 0.54017 3.12680 -0.51000
+v 0.47509 3.05242 -0.51000
+v 0.51837 3.03511 -0.51000
+v 0.59938 2.95411 -0.51000
+v 0.89031 2.62305 -0.51000
+v 0.90932 2.56600 -0.51000
+v 0.94749 2.56600 -0.51000
+v 1.02938 2.48410 -0.51000
+v 1.81923 1.58428 -0.51000
+v 1.88722 1.52600 -0.51000
+v 1.91941 1.52600 -0.51000
+v 1.93900 1.80021 -0.51000
+v 1.93900 2.19903 -0.51000
+v 1.86238 2.42889 -0.51000
+v 1.82500 2.39151 -0.51000
+v 1.70041 2.51611 -0.51000
+v 0.92026 3.60631 -0.51000
+v 0.81545 3.73018 -0.51000
+v -1.56768 3.20884 0.51000
+v -1.03009 2.15357 0.51000
+v -0.96500 2.08849 0.51000
+v -0.91885 2.13463 0.51000
+v -0.05822 2.72507 0.51000
+v 0.35163 2.96498 0.51000
+v 0.43050 3.02086 0.51000
+v 0.42382 3.01270 0.51000
+v 0.36230 3.07422 0.51000
+v -1.53274 3.24377 0.51000
+v -1.56768 3.20884 0.52000
+v -1.03009 2.15357 0.52000
+v -0.96500 2.08849 0.52000
+v -0.91885 2.13463 0.52000
+v -0.05822 2.72507 0.52000
+v 0.35163 2.96498 0.52000
+v 0.43050 3.02086 0.52000
+v 0.42382 3.01270 0.52000
+v 0.36230 3.07422 0.52000
+v -1.53274 3.24377 0.52000
+v -1.53105 3.20304 0.55000
+v -1.00551 2.17142 0.55000
+v -0.96500 2.13091 0.55000
+v -0.93811 2.15781 0.55000
+v -0.07430 2.75042 0.55000
+v 0.33535 2.99021 0.55000
+v 0.49318 3.07932 0.55000
+v 0.42603 2.96805 0.55000
+v 0.34878 3.04531 0.55000
+v -1.52144 3.21264 0.55000
+v -1.53105 3.20304 -0.55000
+v -1.00551 2.17142 -0.55000
+v -0.96500 2.13091 -0.55000
+v -0.93811 2.15781 -0.55000
+v -0.07430 2.75042 -0.55000
+v 0.33535 2.99021 -0.55000
+v 0.49318 3.07932 -0.55000
+v 0.42603 2.96805 -0.55000
+v 0.34878 3.04531 -0.55000
+v -1.52144 3.21264 -0.55000
+v -1.56768 3.20884 -0.52000
+v -1.03009 2.15357 -0.52000
+v -0.96500 2.08849 -0.52000
+v -0.91885 2.13463 -0.52000
+v -0.05822 2.72507 -0.52000
+v 0.35163 2.96498 -0.52000
+v 0.43050 3.02086 -0.52000
+v 0.42382 3.01270 -0.52000
+v 0.36230 3.07422 -0.52000
+v -1.53274 3.24377 -0.52000
+v -1.56768 3.20884 -0.51000
+v -1.03009 2.15357 -0.51000
+v -0.96500 2.08849 -0.51000
+v -0.91885 2.13463 -0.51000
+v -0.05822 2.72507 -0.51000
+v 0.35163 2.96498 -0.51000
+v 0.43050 3.02086 -0.51000
+v 0.42382 3.01270 -0.51000
+v 0.36230 3.07422 -0.51000
+v -1.53274 3.24377 -0.51000
+v 0.41898 2.98537 0.51000
+v 0.03820 2.76492 0.51000
+v -0.91087 2.11555 0.51000
+v -0.94664 2.07084 0.51000
+v -0.77129 1.92472 0.51000
+v 0.80441 0.75790 0.51000
+v 0.84903 0.80252 0.51000
+v 0.86900 2.25022 0.51000
+v 0.88888 2.57827 0.51000
+v 0.82028 2.67627 0.51000
+v 0.58063 2.94588 0.51000
+v 0.51176 3.01476 0.51000
+v 0.45707 3.03298 0.51000
+v 0.41898 2.98537 0.52000
+v 0.03820 2.76492 0.52000
+v -0.91087 2.11555 0.52000
+v -0.94664 2.07084 0.52000
+v -0.77129 1.92472 0.52000
+v 0.80441 0.75790 0.52000
+v 0.84903 0.80252 0.52000
+v 0.86900 2.25022 0.52000
+v 0.88888 2.57827 0.52000
+v 0.82028 2.67627 0.52000
+v 0.58063 2.94588 0.52000
+v 0.51176 3.01476 0.52000
+v 0.45707 3.03298 0.52000
+v 0.43889 2.96223 0.55000
+v 0.05421 2.73952 0.55000
+v -0.89024 2.09332 0.55000
+v -0.90484 2.07507 0.55000
+v -0.75275 1.94832 0.55000
+v 0.80149 0.79740 0.55000
+v 0.81921 0.81512 0.55000
+v 0.83902 2.25134 0.55000
+v 0.85831 2.56964 0.55000
+v 0.79671 2.65764 0.55000
+v 0.55880 2.92529 0.55000
+v 0.49555 2.98853 0.55000
+v 0.46743 2.99791 0.55000
+v 0.43889 2.96223 -0.55000
+v 0.05421 2.73952 -0.55000
+v -0.89024 2.09332 -0.55000
+v -0.90484 2.07507 -0.55000
+v -0.75275 1.94832 -0.55000
+v 0.80149 0.79740 -0.55000
+v 0.81921 0.81512 -0.55000
+v 0.83902 2.25134 -0.55000
+v 0.85831 2.56964 -0.55000
+v 0.79671 2.65764 -0.55000
+v 0.55880 2.92529 -0.55000
+v 0.49555 2.98853 -0.55000
+v 0.46743 2.99791 -0.55000
+v 0.41898 2.98537 -0.52000
+v 0.03820 2.76492 -0.52000
+v -0.91087 2.11555 -0.52000
+v -0.94664 2.07084 -0.52000
+v -0.77129 1.92472 -0.52000
+v 0.80441 0.75790 -0.52000
+v 0.84903 0.80252 -0.52000
+v 0.86900 2.25022 -0.52000
+v 0.88888 2.57827 -0.52000
+v 0.82028 2.67627 -0.52000
+v 0.58063 2.94588 -0.52000
+v 0.51176 3.01476 -0.52000
+v 0.45707 3.03298 -0.52000
+v 0.41898 2.98537 -0.51000
+v 0.03820 2.76492 -0.51000
+v -0.91087 2.11555 -0.51000
+v -0.94664 2.07084 -0.51000
+v -0.77129 1.92472 -0.51000
+v 0.80441 0.75790 -0.51000
+v 0.84903 0.80252 -0.51000
+v 0.86900 2.25022 -0.51000
+v 0.88888 2.57827 -0.51000
+v 0.82028 2.67627 -0.51000
+v 0.58063 2.94588 -0.51000
+v 0.51176 3.01476 -0.51000
+v 0.45707 3.03298 -0.51000
+v 2.68989 3.34640 0.51000
+v 2.47994 2.94650 0.51000
+v 2.35100 2.80764 0.51000
+v 2.35100 2.67170 0.51000
+v 2.69637 2.10924 0.51000
+v 2.87133 2.26476 0.51000
+v 2.95840 2.32281 0.51000
+v 2.77933 3.32761 0.51000
+v 2.73423 3.39075 0.51000
+v 2.68989 3.34640 0.52000
+v 2.47994 2.94650 0.52000
+v 2.35100 2.80764 0.52000
+v 2.35100 2.67170 0.52000
+v 2.69637 2.10924 0.52000
+v 2.87133 2.26476 0.52000
+v 2.95840 2.32281 0.52000
+v 2.77933 3.32761 0.52000
+v 2.73423 3.39075 0.52000
+v 2.71433 3.32842 0.55000
+v 2.50464 2.92902 0.55000
+v 2.38100 2.79586 0.55000
+v 2.38100 2.68017 0.55000
+v 2.70320 2.15545 0.55000
+v 2.85295 2.28857 0.55000
+v 2.92542 2.33688 0.55000
+v 2.75098 3.31569 0.55000
+v 2.73041 3.34449 0.55000
+v 2.71433 3.32842 -0.55000
+v 2.50464 2.92902 -0.55000
+v 2.38100 2.79586 -0.55000
+v 2.38100 2.68017 -0.55000
+v 2.70320 2.15545 -0.55000
+v 2.85295 2.28857 -0.55000
+v 2.92542 2.33688 -0.55000
+v 2.75098 3.31569 -0.55000
+v 2.73041 3.34449 -0.55000
+v 2.68989 3.34640 -0.52000
+v 2.47994 2.94650 -0.52000
+v 2.35100 2.80764 -0.52000
+v 2.35100 2.67170 -0.52000
+v 2.69637 2.10924 -0.52000
+v 2.87133 2.26476 -0.52000
+v 2.95840 2.32281 -0.52000
+v 2.77933 3.32761 -0.52000
+v 2.73423 3.39075 -0.52000
+v 2.68989 3.34640 -0.51000
+v 2.47994 2.94650 -0.51000
+v 2.35100 2.80764 -0.51000
+v 2.35100 2.67170 -0.51000
+v 2.69637 2.10924 -0.51000
+v 2.87133 2.26476 -0.51000
+v 2.95840 2.32281 -0.51000
+v 2.77933 3.32761 -0.51000
+v 2.73423 3.39075 -0.51000
+v 1.93103 3.26755 0.51000
+v 1.94103 2.50755 0.51000
+v 1.88100 2.44751 0.51000
+v 1.88100 2.42106 0.51000
+v 1.96100 2.20106 0.51000
+v 1.96100 1.79979 0.51000
+v 1.94137 1.52502 0.51000
+v 1.99323 1.51638 0.51000
+v 2.67720 2.10123 0.51000
+v 2.32900 2.66830 0.51000
+v 2.32900 2.79751 0.51000
+v 2.22024 2.90628 0.51000
+v 2.01024 3.25628 0.51000
+v 1.96500 3.30151 0.51000
+v 1.93103 3.26755 0.52000
+v 1.94103 2.50755 0.52000
+v 1.88100 2.44751 0.52000
+v 1.88100 2.42106 0.52000
+v 1.96100 2.20106 0.52000
+v 1.96100 1.79979 0.52000
+v 1.94137 1.52502 0.52000
+v 1.99323 1.51638 0.52000
+v 2.67720 2.10123 0.52000
+v 2.32900 2.66830 0.52000
+v 2.32900 2.79751 0.52000
+v 2.22024 2.90628 0.52000
+v 2.01024 3.25628 0.52000
+v 1.96500 3.30151 0.52000
+v 1.96120 3.25529 0.55000
+v 1.97120 2.49529 0.55000
+v 1.91100 2.43509 0.55000
+v 1.91100 2.42634 0.55000
+v 1.99100 2.20634 0.55000
+v 1.99100 1.79872 0.55000
+v 1.97324 1.55012 0.55000
+v 1.98436 1.54827 0.55000
+v 2.63823 2.10737 0.55000
+v 2.29900 2.65983 0.55000
+v 2.29900 2.78509 0.55000
+v 2.19641 2.88768 0.55000
+v 1.98641 3.23768 0.55000
+v 1.96500 3.25909 0.55000
+v 1.96120 3.25529 -0.55000
+v 1.97120 2.49529 -0.55000
+v 1.91100 2.43509 -0.55000
+v 1.91100 2.42634 -0.55000
+v 1.99100 2.20634 -0.55000
+v 1.99100 1.79872 -0.55000
+v 1.97324 1.55012 -0.55000
+v 1.98436 1.54827 -0.55000
+v 2.63823 2.10737 -0.55000
+v 2.29900 2.65983 -0.55000
+v 2.29900 2.78509 -0.55000
+v 2.19641 2.88768 -0.55000
+v 1.98641 3.23768 -0.55000
+v 1.96500 3.25909 -0.55000
+v 1.93103 3.26755 -0.52000
+v 1.94103 2.50755 -0.52000
+v 1.88100 2.44751 -0.52000
+v 1.88100 2.42106 -0.52000
+v 1.96100 2.20106 -0.52000
+v 1.96100 1.79979 -0.52000
+v 1.94137 1.52502 -0.52000
+v 1.99323 1.51638 -0.52000
+v 2.67720 2.10123 -0.52000
+v 2.32900 2.66830 -0.52000
+v 2.32900 2.79751 -0.52000
+v 2.22024 2.90628 -0.52000
+v 2.01024 3.25628 -0.52000
+v 1.96500 3.30151 -0.52000
+v 1.93103 3.26755 -0.51000
+v 1.94103 2.50755 -0.51000
+v 1.88100 2.44751 -0.51000
+v 1.88100 2.42106 -0.51000
+v 1.96100 2.20106 -0.51000
+v 1.96100 1.79979 -0.51000
+v 1.94137 1.52502 -0.51000
+v 1.99323 1.51638 -0.51000
+v 2.67720 2.10123 -0.51000
+v 2.32900 2.66830 -0.51000
+v 2.32900 2.79751 -0.51000
+v 2.22024 2.90628 -0.51000
+v 2.01024 3.25628 -0.51000
+v 1.96500 3.30151 -0.51000
+v 0.89100 2.24976 0.51000
+v 0.87103 0.81245 0.51000
+v 0.91763 0.76585 0.51000
+v 2.56267 0.66615 0.51000
+v 2.59670 0.70018 0.51000
+v 1.94026 1.41629 0.51000
+v 1.91900 1.44818 0.51000
+v 1.91900 1.50400 0.51000
+v 1.88275 1.50400 0.51000
+v 1.80075 1.57574 0.51000
+v 1.01062 2.47590 0.51000
+v 0.94251 2.54400 0.51000
+v 0.91061 2.54400 0.51000
+v 0.89100 2.24976 0.53500
+v 0.87103 0.81245 0.53500
+v 0.91763 0.76585 0.53500
+v 2.56267 0.66615 0.53500
+v 2.59670 0.70018 0.53500
+v 1.94026 1.41629 0.53500
+v 1.91900 1.44818 0.53500
+v 1.91900 1.50400 0.53500
+v 1.88275 1.50400 0.53500
+v 1.80075 1.57574 0.53500
+v 1.01062 2.47590 0.53500
+v 0.94251 2.54400 0.53500
+v 0.91061 2.54400 0.53500
+v 0.90599 2.24916 0.55000
+v 0.88612 0.81858 0.55000
+v 0.92422 0.78048 0.55000
+v 2.55683 0.68153 0.55000
+v 2.57593 0.70063 0.55000
+v 1.92843 1.40700 0.55000
+v 1.90400 1.44364 0.55000
+v 1.90400 1.48900 0.55000
+v 1.87711 1.48900 0.55000
+v 1.79013 1.56511 0.55000
+v 0.99967 2.46563 0.55000
+v 0.93630 2.52900 0.55000
+v 0.92465 2.52900 0.55000
+v 0.90599 2.24916 -0.55000
+v 0.88612 0.81858 -0.55000
+v 0.92422 0.78048 -0.55000
+v 2.55683 0.68153 -0.55000
+v 2.57593 0.70063 -0.55000
+v 1.92843 1.40700 -0.55000
+v 1.90400 1.44364 -0.55000
+v 1.90400 1.48900 -0.55000
+v 1.87711 1.48900 -0.55000
+v 1.79013 1.56511 -0.55000
+v 0.99967 2.46563 -0.55000
+v 0.93630 2.52900 -0.55000
+v 0.92465 2.52900 -0.55000
+v 0.89100 2.24976 -0.53500
+v 0.87103 0.81245 -0.53500
+v 0.91763 0.76585 -0.53500
+v 2.56267 0.66615 -0.53500
+v 2.59670 0.70018 -0.53500
+v 1.94026 1.41629 -0.53500
+v 1.91900 1.44818 -0.53500
+v 1.91900 1.50400 -0.53500
+v 1.88275 1.50400 -0.53500
+v 1.80075 1.57574 -0.53500
+v 1.01062 2.47590 -0.53500
+v 0.94251 2.54400 -0.53500
+v 0.91061 2.54400 -0.53500
+v 0.89100 2.24976 -0.51000
+v 0.87103 0.81245 -0.51000
+v 0.91763 0.76585 -0.51000
+v 2.56267 0.66615 -0.51000
+v 2.59670 0.70018 -0.51000
+v 1.94026 1.41629 -0.51000
+v 1.91900 1.44818 -0.51000
+v 1.91900 1.50400 -0.51000
+v 1.88275 1.50400 -0.51000
+v 1.80075 1.57574 -0.51000
+v 1.01062 2.47590 -0.51000
+v 0.94251 2.54400 -0.51000
+v 0.91061 2.54400 -0.51000
+v 1.99676 1.49362 0.51000
+v 1.94100 1.50292 0.51000
+v 1.94100 1.45182 0.51000
+v 1.95975 1.42368 0.51000
+v 2.38921 0.94430 0.51000
+v 2.45419 0.88859 0.51000
+v 2.48965 0.93291 0.51000
+v 2.84932 2.01193 0.51000
+v 2.92978 2.24327 0.51000
+v 2.94487 2.25836 0.51000
+v 2.91586 2.27286 0.51000
+v 1.99676 1.49362 0.53500
+v 1.94100 1.50292 0.53500
+v 1.94100 1.45182 0.53500
+v 1.95975 1.42368 0.53500
+v 2.38921 0.94430 0.53500
+v 2.45419 0.88859 0.53500
+v 2.48965 0.93291 0.53500
+v 2.84932 2.01193 0.53500
+v 2.92978 2.24327 0.53500
+v 2.94487 2.25836 0.53500
+v 2.91586 2.27286 0.53500
+v 2.00115 1.47768 0.55000
+v 1.95600 1.48521 0.55000
+v 1.95600 1.45636 0.55000
+v 1.97164 1.43290 0.55000
+v 2.39972 0.95504 0.55000
+v 2.45217 0.91008 0.55000
+v 2.47626 0.94019 0.55000
+v 2.83512 2.01677 0.55000
+v 2.91675 2.25145 0.55000
+v 2.91955 2.25425 0.55000
+v 2.91801 2.25502 0.55000
+v 2.00115 1.47768 -0.55000
+v 1.95600 1.48521 -0.55000
+v 1.95600 1.45636 -0.55000
+v 1.97164 1.43290 -0.55000
+v 2.39972 0.95504 -0.55000
+v 2.45217 0.91008 -0.55000
+v 2.47626 0.94019 -0.55000
+v 2.83512 2.01677 -0.55000
+v 2.91675 2.25145 -0.55000
+v 2.91955 2.25425 -0.55000
+v 2.91801 2.25502 -0.55000
+v 1.99676 1.49362 -0.53500
+v 1.94100 1.50292 -0.53500
+v 1.94100 1.45182 -0.53500
+v 1.95975 1.42368 -0.53500
+v 2.38921 0.94430 -0.53500
+v 2.45419 0.88859 -0.53500
+v 2.48965 0.93291 -0.53500
+v 2.84932 2.01193 -0.53500
+v 2.92978 2.24327 -0.53500
+v 2.94487 2.25836 -0.53500
+v 2.91586 2.27286 -0.53500
+v 1.99676 1.49362 -0.51000
+v 1.94100 1.50292 -0.51000
+v 1.94100 1.45182 -0.51000
+v 1.95975 1.42368 -0.51000
+v 2.38921 0.94430 -0.51000
+v 2.45419 0.88859 -0.51000
+v 2.48965 0.93291 -0.51000
+v 2.84932 2.01193 -0.51000
+v 2.92978 2.24327 -0.51000
+v 2.94487 2.25836 -0.51000
+v 2.91586 2.27286 -0.51000
+v -4.19500 2.90000 -0.22000
+v -4.23500 2.93000 -0.22000
+v -4.27500 2.89000 -0.22000
+v -4.41500 1.39000 -0.22000
+v -4.37500 1.35000 -0.22000
+v -4.39500 1.32000 -0.22000
+v -3.17500 0.13000 -0.22000
+v 0.22500 0.07000 -0.22000
+v 0.26500 0.11000 -0.22000
+v 0.23500 0.15000 -0.22000
+v -0.50500 1.02000 -0.22000
+v -0.53500 1.00000 -0.22000
+v -0.58500 1.05000 -0.22000
+v -2.16500 0.77000 -0.22000
+v -2.26500 0.67000 -0.22000
+v -3.41500 1.45000 -0.22000
+v -3.55500 1.59000 -0.22000
+v -3.68500 2.17000 -0.22000
+v -3.08500 2.84000 -0.22000
+v -2.86500 3.85000 -0.22000
+v -2.91500 3.89000 -0.22000
+v -4.19536 2.94902 0.00000
+v -4.23866 2.98149 0.00000
+v -4.31252 2.90763 0.00000
+v -4.45553 1.37538 0.00000
+v -4.42519 1.34503 0.00000
+v -4.44541 1.31469 0.00000
+v -3.19116 0.09128 0.00000
+v 0.24087 0.03071 0.00000
+v 0.31649 0.10634 0.00000
+v 0.26548 0.17436 0.00000
+v -0.49777 1.07169 0.00000
+v -0.53003 1.05019 0.00000
+v -0.57179 1.09195 0.00000
+v -2.18390 0.80626 0.00000
+v -2.26978 0.72037 0.00000
+v -3.39004 1.48020 0.00000
+v -3.51942 1.60957 0.00000
+v -3.64255 2.15894 0.00000
+v -3.04908 2.82165 0.00000
+v -2.82174 3.86534 0.00000
+v -2.91459 3.93962 0.00000
+v -4.19500 2.90000 0.22000
+v -4.23500 2.93000 0.22000
+v -4.27500 2.89000 0.22000
+v -4.41500 1.39000 0.22000
+v -4.37500 1.35000 0.22000
+v -4.39500 1.32000 0.22000
+v -3.17500 0.13000 0.22000
+v 0.22500 0.07000 0.22000
+v 0.26500 0.11000 0.22000
+v 0.23500 0.15000 0.22000
+v -0.50500 1.02000 0.22000
+v -0.53500 1.00000 0.22000
+v -0.58500 1.05000 0.22000
+v -2.16500 0.77000 0.22000
+v -2.26500 0.67000 0.22000
+v -3.41500 1.45000 0.22000
+v -3.55500 1.59000 0.22000
+v -3.68500 2.17000 0.22000
+v -3.08500 2.84000 0.22000
+v -2.86500 3.85000 0.22000
+v -2.91500 3.89000 0.22000
+v -1.43138 0.28521 0.22000
+v -1.54305 0.20400 0.22000
+v -1.55900 0.20400 0.22000
+v -1.55900 0.16492 0.22000
+v -1.51249 0.15562 0.22000
+v -1.47292 0.12594 0.22000
+v 0.22259 0.07607 0.22000
+v 0.25708 0.11056 0.22000
+v 0.23031 0.14625 0.22000
+v -0.50583 1.01172 0.22000
+v -1.43138 0.28521 0.24500
+v -1.54305 0.20400 0.24500
+v -1.55900 0.20400 0.24500
+v -1.55900 0.16492 0.24500
+v -1.51249 0.15562 0.24500
+v -1.47292 0.12594 0.24500
+v 0.22259 0.07607 0.24500
+v 0.25708 0.11056 0.24500
+v 0.23031 0.14625 0.24500
+v -0.50583 1.01172 0.24500
+v -1.42234 0.27324 0.26000
+v -1.53817 0.18900 0.26000
+v -1.54400 0.18900 0.26000
+v -1.54400 0.17722 0.26000
+v -1.50621 0.16966 0.26000
+v -1.46773 0.14080 0.26000
+v 0.21656 0.09126 0.26000
+v 0.23727 0.11197 0.26000
+v 0.21859 0.13688 0.26000
+v -0.50792 0.99101 0.26000
+v -1.42234 0.27324 -0.26000
+v -1.53817 0.18900 -0.26000
+v -1.54400 0.18900 -0.26000
+v -1.54400 0.17722 -0.26000
+v -1.50621 0.16966 -0.26000
+v -1.46773 0.14080 -0.26000
+v 0.21656 0.09126 -0.26000
+v 0.23727 0.11197 -0.26000
+v 0.21859 0.13688 -0.26000
+v -0.50792 0.99101 -0.26000
+v -1.43138 0.28521 -0.24500
+v -1.54305 0.20400 -0.24500
+v -1.55900 0.20400 -0.24500
+v -1.55900 0.16492 -0.24500
+v -1.51249 0.15562 -0.24500
+v -1.47292 0.12594 -0.24500
+v 0.22259 0.07607 -0.24500
+v 0.25708 0.11056 -0.24500
+v 0.23031 0.14625 -0.24500
+v -0.50583 1.01172 -0.24500
+v -1.43138 0.28521 -0.22000
+v -1.54305 0.20400 -0.22000
+v -1.55900 0.20400 -0.22000
+v -1.55900 0.16492 -0.22000
+v -1.51249 0.15562 -0.22000
+v -1.47292 0.12594 -0.22000
+v 0.22259 0.07607 -0.22000
+v 0.25708 0.11056 -0.22000
+v 0.23031 0.14625 -0.22000
+v -0.50583 1.01172 -0.22000
+v -2.16184 0.76447 0.22000
+v -2.21629 0.70094 0.22000
+v -1.69147 0.30485 0.22000
+v -1.59259 0.23564 0.22000
+v -1.54652 0.22642 0.22000
+v -0.59898 0.96451 0.22000
+v -0.55349 1.01000 0.22000
+v -0.58703 1.04355 0.22000
+v -2.16184 0.76447 0.23000
+v -2.21629 0.70094 0.23000
+v -1.69147 0.30485 0.23000
+v -1.59259 0.23564 0.23000
+v -1.54652 0.22642 0.23000
+v -0.59898 0.96451 0.23000
+v -0.55349 1.01000 0.23000
+v -0.58703 1.04355 0.23000
+v -2.14604 0.73680 0.26000
+v -2.17274 0.70566 0.26000
+v -1.67383 0.32912 0.26000
+v -1.58054 0.26382 0.26000
+v -1.55411 0.25854 0.26000
+v -0.61888 0.98703 0.26000
+v -0.59591 1.01000 0.26000
+v -0.59719 1.01128 0.26000
+v -2.14604 0.73680 -0.26000
+v -2.17274 0.70566 -0.26000
+v -1.67383 0.32912 -0.26000
+v -1.58054 0.26382 -0.26000
+v -1.55411 0.25854 -0.26000
+v -0.61888 0.98703 -0.26000
+v -0.59591 1.01000 -0.26000
+v -0.59719 1.01128 -0.26000
+v -2.16184 0.76447 -0.23000
+v -2.21629 0.70094 -0.23000
+v -1.69147 0.30485 -0.23000
+v -1.59259 0.23564 -0.23000
+v -1.54652 0.22642 -0.23000
+v -0.59898 0.96451 -0.23000
+v -0.55349 1.01000 -0.23000
+v -0.58703 1.04355 -0.23000
+v -2.16184 0.76447 -0.22000
+v -2.21629 0.70094 -0.22000
+v -1.69147 0.30485 -0.22000
+v -1.59259 0.23564 -0.22000
+v -1.54652 0.22642 -0.22000
+v -0.59898 0.96451 -0.22000
+v -0.55349 1.01000 -0.22000
+v -0.58703 1.04355 -0.22000
+v -3.51881 1.45001 0.22000
+v -3.21875 0.25977 0.22000
+v -3.23814 0.20162 0.22000
+v -3.17244 0.13593 0.22000
+v -1.51741 0.08608 0.22000
+v -1.49230 0.11118 0.22000
+v -1.49931 0.12521 0.22000
+v -1.58035 0.15560 0.22000
+v -1.59051 0.21656 0.22000
+v -2.10868 0.58526 0.22000
+v -2.23466 0.69185 0.22000
+v -2.26382 0.66270 0.22000
+v -2.28804 0.67481 0.22000
+v -3.41870 1.44526 0.22000
+v -3.50158 1.51893 0.22000
+v -3.51881 1.45001 0.25250
+v -3.21875 0.25977 0.25250
+v -3.23814 0.20162 0.25250
+v -3.17244 0.13593 0.25250
+v -1.51741 0.08608 0.25250
+v -1.49230 0.11118 0.25250
+v -1.49931 0.12521 0.25250
+v -1.58035 0.15560 0.25250
+v -1.59051 0.21656 0.25250
+v -2.10868 0.58526 0.25250
+v -2.23466 0.69185 0.25250
+v -2.26382 0.66270 0.25250
+v -2.28804 0.67481 0.25250
+v -3.41870 1.44526 0.25250
+v -3.50158 1.51893 0.25250
+v -3.51108 1.45001 0.26000
+v -3.21095 0.25947 0.26000
+v -3.22955 0.20365 0.26000
+v -3.16924 0.14333 0.26000
+v -1.52042 0.09367 0.26000
+v -1.50143 0.11267 0.26000
+v -1.50470 0.11922 0.26000
+v -1.58704 0.15010 0.26000
+v -1.59739 0.21225 0.26000
+v -2.11329 0.57933 0.26000
+v -2.23424 0.68167 0.26000
+v -2.26233 0.65357 0.26000
+v -2.29185 0.66833 0.26000
+v -3.42332 1.43933 0.26000
+v -3.49731 1.50510 0.26000
+v -3.51108 1.45001 -0.26000
+v -3.21095 0.25947 -0.26000
+v -3.22955 0.20365 -0.26000
+v -3.16924 0.14333 -0.26000
+v -1.52042 0.09367 -0.26000
+v -1.50143 0.11267 -0.26000
+v -1.50470 0.11922 -0.26000
+v -1.58704 0.15010 -0.26000
+v -1.59739 0.21225 -0.26000
+v -2.11329 0.57933 -0.26000
+v -2.23424 0.68167 -0.26000
+v -2.26233 0.65357 -0.26000
+v -2.29185 0.66833 -0.26000
+v -3.42332 1.43933 -0.26000
+v -3.49731 1.50510 -0.26000
+v -3.51881 1.45001 -0.25250
+v -3.21875 0.25977 -0.25250
+v -3.23814 0.20162 -0.25250
+v -3.17244 0.13593 -0.25250
+v -1.51741 0.08608 -0.25250
+v -1.49230 0.11118 -0.25250
+v -1.49931 0.12521 -0.25250
+v -1.58035 0.15560 -0.25250
+v -1.59051 0.21656 -0.25250
+v -2.10868 0.58526 -0.25250
+v -2.23466 0.69185 -0.25250
+v -2.26382 0.66270 -0.25250
+v -2.28804 0.67481 -0.25250
+v -3.41870 1.44526 -0.25250
+v -3.50158 1.51893 -0.25250
+v -3.51881 1.45001 -0.22000
+v -3.21875 0.25977 -0.22000
+v -3.23814 0.20162 -0.22000
+v -3.17244 0.13593 -0.22000
+v -1.51741 0.08608 -0.22000
+v -1.49230 0.11118 -0.22000
+v -1.49931 0.12521 -0.22000
+v -1.58035 0.15560 -0.22000
+v -1.59051 0.21656 -0.22000
+v -2.10868 0.58526 -0.22000
+v -2.23466 0.69185 -0.22000
+v -2.26382 0.66270 -0.22000
+v -2.28804 0.67481 -0.22000
+v -3.41870 1.44526 -0.22000
+v -3.50158 1.51893 -0.22000
+v -3.77922 2.09785 0.22000
+v -3.80012 2.06651 0.22000
+v -4.32048 1.38604 0.22000
+v -4.38649 1.32003 0.22000
+v -3.55081 0.49429 0.22000
+v -3.27181 0.22526 0.22000
+v -3.24955 0.21784 0.22000
+v -3.24115 0.25985 0.22000
+v -3.54111 1.44968 0.22000
+v -3.53066 1.52283 0.22000
+v -3.51349 1.54000 0.22000
+v -3.56048 1.58699 0.22000
+v -3.68040 2.12664 0.22000
+v -3.72761 2.16440 0.22000
+v -3.76985 2.17285 0.22000
+v -3.77922 2.09785 0.24500
+v -3.80012 2.06651 0.24500
+v -4.32048 1.38604 0.24500
+v -4.38649 1.32003 0.24500
+v -3.55081 0.49429 0.24500
+v -3.27181 0.22526 0.24500
+v -3.24955 0.21784 0.24500
+v -3.24115 0.25985 0.24500
+v -3.54111 1.44968 0.24500
+v -3.53066 1.52283 0.24500
+v -3.51349 1.54000 0.24500
+v -3.56048 1.58699 0.24500
+v -3.68040 2.12664 0.24500
+v -3.72761 2.16440 0.24500
+v -3.76985 2.17285 0.24500
+v -3.76478 2.09248 0.26000
+v -3.78790 2.05778 0.26000
+v -4.30917 1.37614 0.26000
+v -4.36521 1.32009 0.26000
+v -3.54033 0.50503 0.26000
+v -3.26385 0.23842 0.26000
+v -3.26093 0.23744 0.26000
+v -3.25652 0.25947 0.26000
+v -3.55637 1.44888 0.26000
+v -3.54480 1.52990 0.26000
+v -3.53470 1.54000 0.26000
+v -3.57417 1.57947 0.26000
+v -3.69390 2.11822 0.26000
+v -3.73413 2.15041 0.26000
+v -3.75696 2.15498 0.26000
+v -3.76478 2.09248 -0.26000
+v -3.78790 2.05778 -0.26000
+v -4.30917 1.37614 -0.26000
+v -4.36521 1.32009 -0.26000
+v -3.54033 0.50503 -0.26000
+v -3.26385 0.23842 -0.26000
+v -3.26093 0.23744 -0.26000
+v -3.25652 0.25947 -0.26000
+v -3.55637 1.44888 -0.26000
+v -3.54480 1.52990 -0.26000
+v -3.53470 1.54000 -0.26000
+v -3.57417 1.57947 -0.26000
+v -3.69390 2.11822 -0.26000
+v -3.73413 2.15041 -0.26000
+v -3.75696 2.15498 -0.26000
+v -3.77922 2.09785 -0.24500
+v -3.80012 2.06651 -0.24500
+v -4.32048 1.38604 -0.24500
+v -4.38649 1.32003 -0.24500
+v -3.55081 0.49429 -0.24500
+v -3.27181 0.22526 -0.24500
+v -3.24955 0.21784 -0.24500
+v -3.24115 0.25985 -0.24500
+v -3.54111 1.44968 -0.24500
+v -3.53066 1.52283 -0.24500
+v -3.51349 1.54000 -0.24500
+v -3.56048 1.58699 -0.24500
+v -3.68040 2.12664 -0.24500
+v -3.72761 2.16440 -0.24500
+v -3.76985 2.17285 -0.24500
+v -3.77922 2.09785 -0.22000
+v -3.80012 2.06651 -0.22000
+v -4.32048 1.38604 -0.22000
+v -4.38649 1.32003 -0.22000
+v -3.55081 0.49429 -0.22000
+v -3.27181 0.22526 -0.22000
+v -3.24955 0.21784 -0.22000
+v -3.24115 0.25985 -0.22000
+v -3.54111 1.44968 -0.22000
+v -3.53066 1.52283 -0.22000
+v -3.51349 1.54000 -0.22000
+v -3.56048 1.58699 -0.22000
+v -3.68040 2.12664 -0.22000
+v -3.72761 2.16440 -0.22000
+v -3.76985 2.17285 -0.22000
+v -4.26940 2.88712 0.22000
+v -4.27904 2.82927 0.22000
+v -4.38908 1.44880 0.22000
+v -4.40814 1.39162 0.22000
+v -4.38251 1.36600 0.22000
+v -4.36749 1.36600 0.22000
+v -4.33952 1.39396 0.22000
+v -3.82022 2.07305 0.22000
+v -3.79118 2.14082 0.22000
+v -3.80077 2.20797 0.22000
+v -3.99024 2.52707 0.22000
+v -4.18757 2.90201 0.22000
+v -4.20618 2.89270 0.22000
+v -4.23500 2.92151 0.22000
+v -4.26940 2.88712 0.24500
+v -4.27904 2.82927 0.24500
+v -4.38908 1.44880 0.24500
+v -4.40814 1.39162 0.24500
+v -4.38251 1.36600 0.24500
+v -4.36749 1.36600 0.24500
+v -4.33952 1.39396 0.24500
+v -3.82022 2.07305 0.24500
+v -3.79118 2.14082 0.24500
+v -3.80077 2.20797 0.24500
+v -3.99024 2.52707 0.24500
+v -4.18757 2.90201 0.24500
+v -4.20618 2.89270 0.24500
+v -4.23500 2.92151 0.24500
+v -4.25539 2.87991 0.26000
+v -4.26414 2.82743 0.26000
+v -4.37427 1.44578 0.26000
+v -4.39097 1.39567 0.26000
+v -4.37630 1.38100 0.26000
+v -4.37370 1.38100 0.26000
+v -4.35083 1.40386 0.26000
+v -3.83327 2.08068 0.26000
+v -3.80662 2.14286 0.26000
+v -3.81520 2.20288 0.26000
+v -4.00333 2.51974 0.26000
+v -4.19400 2.88202 0.26000
+v -4.20915 2.87445 0.26000
+v -4.23500 2.90030 0.26000
+v -4.25539 2.87991 -0.26000
+v -4.26414 2.82743 -0.26000
+v -4.37427 1.44578 -0.26000
+v -4.39097 1.39567 -0.26000
+v -4.37630 1.38100 -0.26000
+v -4.37370 1.38100 -0.26000
+v -4.35083 1.40386 -0.26000
+v -3.83327 2.08068 -0.26000
+v -3.80662 2.14286 -0.26000
+v -3.81520 2.20288 -0.26000
+v -4.00333 2.51974 -0.26000
+v -4.19400 2.88202 -0.26000
+v -4.20915 2.87445 -0.26000
+v -4.23500 2.90030 -0.26000
+v -4.26940 2.88712 -0.24500
+v -4.27904 2.82927 -0.24500
+v -4.38908 1.44880 -0.24500
+v -4.40814 1.39162 -0.24500
+v -4.38251 1.36600 -0.24500
+v -4.36749 1.36600 -0.24500
+v -4.33952 1.39396 -0.24500
+v -3.82022 2.07305 -0.24500
+v -3.79118 2.14082 -0.24500
+v -3.80077 2.20797 -0.24500
+v -3.99024 2.52707 -0.24500
+v -4.18757 2.90201 -0.24500
+v -4.20618 2.89270 -0.24500
+v -4.23500 2.92151 -0.24500
+v -4.26940 2.88712 -0.22000
+v -4.27904 2.82927 -0.22000
+v -4.38908 1.44880 -0.22000
+v -4.40814 1.39162 -0.22000
+v -4.38251 1.36600 -0.22000
+v -4.36749 1.36600 -0.22000
+v -4.33952 1.39396 -0.22000
+v -3.82022 2.07305 -0.22000
+v -3.79118 2.14082 -0.22000
+v -3.80077 2.20797 -0.22000
+v -3.99024 2.52707 -0.22000
+v -4.18757 2.90201 -0.22000
+v -4.20618 2.89270 -0.22000
+v -4.23500 2.92151 -0.22000
+v -4.16738 2.91829 0.22000
+v -3.96975 2.53292 0.22000
+v -3.76113 2.18522 0.22000
+v -3.68708 2.16671 0.22000
+v -3.09056 2.84277 0.22000
+v -2.89064 3.82235 0.22000
+v -2.87304 3.84875 0.22000
+v -2.91507 3.88237 0.22000
+v -4.16738 2.91829 0.23000
+v -3.96975 2.53292 0.23000
+v -3.76113 2.18522 0.23000
+v -3.68708 2.16671 0.23000
+v -3.09056 2.84277 0.23000
+v -2.89064 3.82235 0.23000
+v -2.87304 3.84875 0.23000
+v -2.91507 3.88237 0.23000
+v -4.12929 2.90976 0.26000
+v -3.94351 2.54749 0.26000
+v -3.74180 2.21131 0.26000
+v -3.69751 2.20024 0.26000
+v -3.11835 2.85661 0.26000
+v -2.91886 3.83410 0.26000
+v -2.91326 3.84251 0.26000
+v -2.91543 3.84424 0.26000
+v -4.12929 2.90976 -0.26000
+v -3.94351 2.54749 -0.26000
+v -3.74180 2.21131 -0.26000
+v -3.69751 2.20024 -0.26000
+v -3.11835 2.85661 -0.26000
+v -2.91886 3.83410 -0.26000
+v -2.91326 3.84251 -0.26000
+v -2.91543 3.84424 -0.26000
+v -4.16738 2.91829 -0.23000
+v -3.96975 2.53292 -0.23000
+v -3.76113 2.18522 -0.23000
+v -3.68708 2.16671 -0.23000
+v -3.09056 2.84277 -0.23000
+v -2.89064 3.82235 -0.23000
+v -2.87304 3.84875 -0.23000
+v -2.91507 3.88237 -0.23000
+v -4.16738 2.91829 -0.22000
+v -3.96975 2.53292 -0.22000
+v -3.76113 2.18522 -0.22000
+v -3.68708 2.16671 -0.22000
+v -3.09056 2.84277 -0.22000
+v -2.89064 3.82235 -0.22000
+v -2.87304 3.84875 -0.22000
+v -2.91507 3.88237 -0.22000
+v 3.54500 1.01000 -0.51000
+v 2.45500 0.95000 -0.51000
+v 2.41500 0.91000 -0.51000
+v 2.45500 0.84000 -0.51000
+v 2.34500 0.73000 -0.51000
+v 1.88500 0.73000 -0.51000
+v 1.84500 0.69000 -0.51000
+v 2.96500 0.05000 -0.51000
+v 3.07500 0.16000 -0.51000
+v 4.35500 0.09000 -0.51000
+v 4.39500 0.13000 -0.51000
+v 4.35500 0.18000 -0.51000
+v 3.57500 1.04000 -0.51000
+v 3.52797 1.04812 -0.29000
+v 2.43797 0.98812 -0.29000
+v 2.36636 0.91651 -0.29000
+v 2.40636 0.84651 -0.29000
+v 2.32885 0.76900 -0.29000
+v 1.86885 0.76900 -0.29000
+v 1.78132 0.68147 -0.29000
+v 2.97151 0.00136 -0.29000
+v 3.09026 0.12011 -0.29000
+v 4.37026 0.05011 -0.29000
+v 4.44726 0.12711 -0.29000
+v 4.38470 0.20531 -0.29000
+v 3.57638 1.09653 -0.29000
+v 3.54500 1.01000 -0.07000
+v 2.45500 0.95000 -0.07000
+v 2.41500 0.91000 -0.07000
+v 2.45500 0.84000 -0.07000
+v 2.34500 0.73000 -0.07000
+v 1.88500 0.73000 -0.07000
+v 1.84500 0.69000 -0.07000
+v 2.96500 0.05000 -0.07000
+v 3.07500 0.16000 -0.07000
+v 4.35500 0.09000 -0.07000
+v 4.39500 0.13000 -0.07000
+v 4.35500 0.18000 -0.07000
+v 3.57500 1.04000 -0.07000
+v 2.45765 0.94416 -0.07000
+v 2.42248 0.90900 -0.07000
+v 2.46223 0.83944 -0.07000
+v 2.42432 0.79205 -0.07000
+v 2.51834 0.74504 -0.07000
+v 2.58957 0.68399 -0.07000
+v 2.89827 0.20600 -0.07000
+v 2.92210 0.20600 -0.07000
+v 3.52857 0.97155 -0.07000
+v 3.52015 1.01367 -0.07000
+v 2.45765 0.94416 -0.04500
+v 2.42248 0.90900 -0.04500
+v 2.46223 0.83944 -0.04500
+v 2.42432 0.79205 -0.04500
+v 2.51834 0.74504 -0.04500
+v 2.58957 0.68399 -0.04500
+v 2.89827 0.20600 -0.04500
+v 2.92210 0.20600 -0.04500
+v 3.52857 0.97155 -0.04500
+v 3.52015 1.01367 -0.04500
+v 2.46426 0.92956 -0.03000
+v 2.44119 0.90649 -0.03000
+v 2.48031 0.83803 -0.03000
+v 2.44763 0.79717 -0.03000
+v 2.52670 0.75763 -0.03000
+v 2.60098 0.69396 -0.03000
+v 2.90644 0.22100 -0.03000
+v 2.91485 0.22100 -0.03000
+v 3.51250 0.97542 -0.03000
+v 3.50802 0.99784 -0.03000
+v 2.46426 0.92956 -0.55000
+v 2.44119 0.90649 -0.55000
+v 2.48031 0.83803 -0.55000
+v 2.44763 0.79717 -0.55000
+v 2.52670 0.75763 -0.55000
+v 2.60098 0.69396 -0.55000
+v 2.90644 0.22100 -0.55000
+v 2.91485 0.22100 -0.55000
+v 3.51250 0.97542 -0.55000
+v 3.50802 0.99784 -0.55000
+v 2.45765 0.94416 -0.53500
+v 2.42248 0.90900 -0.53500
+v 2.46223 0.83944 -0.53500
+v 2.42432 0.79205 -0.53500
+v 2.51834 0.74504 -0.53500
+v 2.58957 0.68399 -0.53500
+v 2.89827 0.20600 -0.53500
+v 2.92210 0.20600 -0.53500
+v 3.52857 0.97155 -0.53500
+v 3.52015 1.01367 -0.53500
+v 2.45765 0.94416 -0.51000
+v 2.42248 0.90900 -0.51000
+v 2.46223 0.83944 -0.51000
+v 2.42432 0.79205 -0.51000
+v 2.51834 0.74504 -0.51000
+v 2.58957 0.68399 -0.51000
+v 2.89827 0.20600 -0.51000
+v 2.92210 0.20600 -0.51000
+v 3.52857 0.97155 -0.51000
+v 3.52015 1.01367 -0.51000
+v 2.34749 0.72400 -0.07000
+v 1.88749 0.72400 -0.07000
+v 1.85405 0.69056 -0.07000
+v 1.93831 0.62502 -0.07000
+v 2.96395 0.05744 -0.07000
+v 3.02503 0.11852 -0.07000
+v 2.88080 0.19544 -0.07000
+v 2.57066 0.67566 -0.07000
+v 2.40581 0.78233 -0.07000
+v 2.34749 0.72400 -0.06000
+v 1.88749 0.72400 -0.06000
+v 1.85405 0.69056 -0.06000
+v 1.93831 0.62502 -0.06000
+v 2.96395 0.05744 -0.06000
+v 3.02503 0.11852 -0.06000
+v 2.88080 0.19544 -0.06000
+v 2.57066 0.67566 -0.06000
+v 2.40581 0.78233 -0.06000
+v 2.35991 0.69400 -0.03000
+v 1.89991 0.69400 -0.03000
+v 1.89929 0.69338 -0.03000
+v 1.95489 0.65014 -0.03000
+v 2.95871 0.09462 -0.03000
+v 2.97519 0.11110 -0.03000
+v 2.85982 0.17263 -0.03000
+v 2.54895 0.65398 -0.03000
+v 2.40988 0.74397 -0.03000
+v 2.35991 0.69400 -0.55000
+v 1.89991 0.69400 -0.55000
+v 1.89929 0.69338 -0.55000
+v 1.95489 0.65014 -0.55000
+v 2.95871 0.09462 -0.55000
+v 2.97519 0.11110 -0.55000
+v 2.85982 0.17263 -0.55000
+v 2.54895 0.65398 -0.55000
+v 2.40988 0.74397 -0.55000
+v 2.34749 0.72400 -0.52000
+v 1.88749 0.72400 -0.52000
+v 1.85405 0.69056 -0.52000
+v 1.93831 0.62502 -0.52000
+v 2.96395 0.05744 -0.52000
+v 3.02503 0.11852 -0.52000
+v 2.88080 0.19544 -0.52000
+v 2.57066 0.67566 -0.52000
+v 2.40581 0.78233 -0.52000
+v 2.34749 0.72400 -0.51000
+v 1.88749 0.72400 -0.51000
+v 1.85405 0.69056 -0.51000
+v 1.93831 0.62502 -0.51000
+v 2.96395 0.05744 -0.51000
+v 3.02503 0.11852 -0.51000
+v 2.88080 0.19544 -0.51000
+v 2.57066 0.67566 -0.51000
+v 2.40581 0.78233 -0.51000
+v 3.55100 1.00751 -0.07000
+v 3.55100 0.96800 -0.07000
+v 3.51974 0.92632 -0.07000
+v 2.94100 0.20788 -0.07000
+v 2.94100 0.19321 -0.07000
+v 3.02682 0.13600 -0.07000
+v 3.04251 0.13600 -0.07000
+v 3.07251 0.16600 -0.07000
+v 3.14517 0.16600 -0.07000
+v 4.35266 0.09615 -0.07000
+v 4.38696 0.13045 -0.07000
+v 4.35043 0.17611 -0.07000
+v 3.57479 1.03130 -0.07000
+v 3.55100 1.00751 -0.04500
+v 3.55100 0.96800 -0.04500
+v 3.51974 0.92632 -0.04500
+v 2.94100 0.20788 -0.04500
+v 2.94100 0.19321 -0.04500
+v 3.02682 0.13600 -0.04500
+v 3.04251 0.13600 -0.04500
+v 3.07251 0.16600 -0.04500
+v 3.14517 0.16600 -0.04500
+v 4.35266 0.09615 -0.04500
+v 4.38696 0.13045 -0.04500
+v 4.35043 0.17611 -0.04500
+v 3.57479 1.03130 -0.04500
+v 3.56600 1.00130 -0.03000
+v 3.56600 0.96300 -0.03000
+v 3.53158 0.91711 -0.03000
+v 2.95600 0.20259 -0.03000
+v 2.95600 0.20124 -0.03000
+v 3.03136 0.15100 -0.03000
+v 3.03630 0.15100 -0.03000
+v 3.06630 0.18100 -0.03000
+v 3.14561 0.18100 -0.03000
+v 4.34681 0.11151 -0.03000
+v 4.36686 0.13156 -0.03000
+v 4.33901 0.16637 -0.03000
+v 3.57426 1.00956 -0.03000
+v 3.56600 1.00130 -0.55000
+v 3.56600 0.96300 -0.55000
+v 3.53158 0.91711 -0.55000
+v 2.95600 0.20259 -0.55000
+v 2.95600 0.20124 -0.55000
+v 3.03136 0.15100 -0.55000
+v 3.03630 0.15100 -0.55000
+v 3.06630 0.18100 -0.55000
+v 3.14561 0.18100 -0.55000
+v 4.34681 0.11151 -0.55000
+v 4.36686 0.13156 -0.55000
+v 4.33901 0.16637 -0.55000
+v 3.57426 1.00956 -0.55000
+v 3.55100 1.00751 -0.53500
+v 3.55100 0.96800 -0.53500
+v 3.51974 0.92632 -0.53500
+v 2.94100 0.20788 -0.53500
+v 2.94100 0.19321 -0.53500
+v 3.02682 0.13600 -0.53500
+v 3.04251 0.13600 -0.53500
+v 3.07251 0.16600 -0.53500
+v 3.14517 0.16600 -0.53500
+v 4.35266 0.09615 -0.53500
+v 4.38696 0.13045 -0.53500
+v 4.35043 0.17611 -0.53500
+v 3.57479 1.03130 -0.53500
+v 3.55100 1.00751 -0.51000
+v 3.55100 0.96800 -0.51000
+v 3.51974 0.92632 -0.51000
+v 2.94100 0.20788 -0.51000
+v 2.94100 0.19321 -0.51000
+v 3.02682 0.13600 -0.51000
+v 3.04251 0.13600 -0.51000
+v 3.07251 0.16600 -0.51000
+v 3.14517 0.16600 -0.51000
+v 4.35266 0.09615 -0.51000
+v 4.38696 0.13045 -0.51000
+v 4.35043 0.17611 -0.51000
+v 3.57479 1.03130 -0.51000
+v -2.58500 2.28000 -0.45000
+v -2.88500 1.16000 -0.45000
+v -2.23500 0.66000 -0.45000
+v -0.94500 2.00000 -0.45000
+v -1.51500 3.09000 -0.45000
+v -1.64500 3.16000 -0.45000
+v -2.61444 2.29765 -0.27000
+v -2.92257 1.14727 -0.27000
+v -2.23171 0.61584 -0.27000
+v -0.90474 1.99423 -0.27000
+v -1.49045 3.11426 -0.27000
+v -1.65024 3.20030 -0.27000
+v -2.58500 2.28000 -0.09000
+v -2.88500 1.16000 -0.09000
+v -2.23500 0.66000 -0.09000
+v -0.94500 2.00000 -0.09000
+v -1.51500 3.09000 -0.09000
+v -1.64500 3.16000 -0.09000
+v -2.57965 2.27679 -0.09000
+v -2.84918 1.27854 -0.09000
+v -2.87841 1.15189 -0.09000
+v -2.83117 1.10465 -0.09000
+v -2.40139 0.81480 -0.09000
+v -2.28350 0.71656 -0.09000
+v -2.24965 0.72502 -0.09000
+v -2.21077 0.84167 -0.09000
+v -2.05081 1.49151 -0.09000
+v -1.63083 3.03144 -0.09000
+v -1.61157 3.11809 -0.09000
+v -1.64514 3.15165 -0.09000
+v -2.57965 2.27679 -0.08000
+v -2.84918 1.27854 -0.08000
+v -2.87841 1.15189 -0.08000
+v -2.83117 1.10465 -0.08000
+v -2.40139 0.81480 -0.08000
+v -2.28350 0.71656 -0.08000
+v -2.24965 0.72502 -0.08000
+v -2.21077 0.84167 -0.08000
+v -2.05081 1.49151 -0.08000
+v -1.63083 3.03144 -0.08000
+v -1.61157 3.11809 -0.08000
+v -1.64514 3.15165 -0.08000
+v -2.55292 2.26072 -0.05000
+v -2.82007 1.27126 -0.05000
+v -2.84544 1.16135 -0.05000
+v -2.81200 1.12791 -0.05000
+v -2.38336 0.83883 -0.05000
+v -2.27600 0.74936 -0.05000
+v -2.27290 0.75013 -0.05000
+v -2.23961 0.85001 -0.05000
+v -2.07985 1.49904 -0.05000
+v -1.65996 3.03865 -0.05000
+v -1.64443 3.10852 -0.05000
+v -1.64583 3.10991 -0.05000
+v -2.55292 2.26072 -0.49000
+v -2.82007 1.27126 -0.49000
+v -2.84544 1.16135 -0.49000
+v -2.81200 1.12791 -0.49000
+v -2.38336 0.83883 -0.49000
+v -2.27600 0.74936 -0.49000
+v -2.27290 0.75013 -0.49000
+v -2.23961 0.85001 -0.49000
+v -2.07985 1.49904 -0.49000
+v -1.65996 3.03865 -0.49000
+v -1.64443 3.10852 -0.49000
+v -1.64583 3.10991 -0.49000
+v -2.57965 2.27679 -0.46000
+v -2.84918 1.27854 -0.46000
+v -2.87841 1.15189 -0.46000
+v -2.83117 1.10465 -0.46000
+v -2.40139 0.81480 -0.46000
+v -2.28350 0.71656 -0.46000
+v -2.24965 0.72502 -0.46000
+v -2.21077 0.84167 -0.46000
+v -2.05081 1.49151 -0.46000
+v -1.63083 3.03144 -0.46000
+v -1.61157 3.11809 -0.46000
+v -1.64514 3.15165 -0.46000
+v -2.57965 2.27679 -0.45000
+v -2.84918 1.27854 -0.45000
+v -2.87841 1.15189 -0.45000
+v -2.83117 1.10465 -0.45000
+v -2.40139 0.81480 -0.45000
+v -2.28350 0.71656 -0.45000
+v -2.24965 0.72502 -0.45000
+v -2.21077 0.84167 -0.45000
+v -2.05081 1.49151 -0.45000
+v -1.63083 3.03144 -0.45000
+v -1.61157 3.11809 -0.45000
+v -1.64514 3.15165 -0.45000
+v -1.59961 3.09691 -0.09000
+v -2.20929 0.76812 -0.09000
+v -2.23028 0.71565 -0.09000
+v -2.26487 0.69836 -0.09000
+v -2.23486 0.66834 -0.09000
+v -2.08923 0.80426 -0.09000
+v -0.95231 2.00102 -0.09000
+v -1.51989 3.08641 -0.09000
+v -1.56500 3.13151 -0.09000
+v -1.59961 3.09691 -0.06500
+v -2.20929 0.76812 -0.06500
+v -2.23028 0.71565 -0.06500
+v -2.26487 0.69836 -0.06500
+v -2.23486 0.66834 -0.06500
+v -2.08923 0.80426 -0.06500
+v -0.95231 2.00102 -0.06500
+v -1.51989 3.08641 -0.06500
+v -1.56500 3.13151 -0.06500
+v -1.58613 3.08918 -0.05000
+v -2.19502 0.76342 -0.05000
+v -2.21847 0.70479 -0.05000
+v -2.23955 0.69425 -0.05000
+v -2.23450 0.68920 -0.05000
+v -2.09979 0.81492 -0.05000
+v -0.97057 2.00358 -0.05000
+v -1.53212 3.07742 -0.05000
+v -1.56500 3.11030 -0.05000
+v -1.58613 3.08918 -0.49000
+v -2.19502 0.76342 -0.49000
+v -2.21847 0.70479 -0.49000
+v -2.23955 0.69425 -0.49000
+v -2.23450 0.68920 -0.49000
+v -2.09979 0.81492 -0.49000
+v -0.97057 2.00358 -0.49000
+v -1.53212 3.07742 -0.49000
+v -1.56500 3.11030 -0.49000
+v -1.59961 3.09691 -0.47500
+v -2.20929 0.76812 -0.47500
+v -2.23028 0.71565 -0.47500
+v -2.26487 0.69836 -0.47500
+v -2.23486 0.66834 -0.47500
+v -2.08923 0.80426 -0.47500
+v -0.95231 2.00102 -0.47500
+v -1.51989 3.08641 -0.47500
+v -1.56500 3.13151 -0.47500
+v -1.59961 3.09691 -0.45000
+v -2.20929 0.76812 -0.45000
+v -2.23028 0.71565 -0.45000
+v -2.26487 0.69836 -0.45000
+v -2.23486 0.66834 -0.45000
+v -2.08923 0.80426 -0.45000
+v -0.95231 2.00102 -0.45000
+v -1.51989 3.08641 -0.45000
+v -1.56500 3.13151 -0.45000
+v -0.89500 7.14000 -0.29000
+v 0.02500 6.23000 -0.29000
+v 1.39500 6.18000 -0.29000
+v 1.44500 6.22000 -0.29000
+v -0.85500 7.18000 -0.29000
+v -0.90989 7.13996 -0.26000
+v 0.02053 6.21966 -0.26000
+v 1.39851 6.16936 -0.26000
+v 1.46539 6.22287 -0.26000
+v -0.85745 7.19240 -0.26000
+v -0.89500 7.14000 -0.23000
+v 0.02500 6.23000 -0.23000
+v 1.39500 6.18000 -0.23000
+v 1.44500 6.22000 -0.23000
+v -0.85500 7.18000 -0.23000
+v -0.88649 7.14002 -0.23000
+v 0.02756 6.23591 -0.23000
+v 1.39299 6.18608 -0.23000
+v 1.43551 6.22009 -0.23000
+v 1.38188 6.26479 -0.23000
+v -0.85357 7.17294 -0.23000
+v -0.88649 7.14002 -0.20500
+v 0.02756 6.23591 -0.20500
+v 1.39299 6.18608 -0.20500
+v 1.43551 6.22009 -0.20500
+v 1.38188 6.26479 -0.20500
+v -0.85357 7.17294 -0.20500
+v -0.86522 7.14008 -0.19000
+v 0.03395 6.25069 -0.19000
+v 1.38797 6.20127 -0.19000
+v 1.41180 6.22033 -0.19000
+v 1.37407 6.25177 -0.19000
+v -0.85000 7.15530 -0.19000
+v -0.86522 7.14008 -0.33000
+v 0.03395 6.25069 -0.33000
+v 1.38797 6.20127 -0.33000
+v 1.41180 6.22033 -0.33000
+v 1.37407 6.25177 -0.33000
+v -0.85000 7.15530 -0.33000
+v -0.88649 7.14002 -0.31500
+v 0.02756 6.23591 -0.31500
+v 1.39299 6.18608 -0.31500
+v 1.43551 6.22009 -0.31500
+v 1.38188 6.26479 -0.31500
+v -0.85357 7.17294 -0.31500
+v -0.88649 7.14002 -0.29000
+v 0.02756 6.23591 -0.29000
+v 1.39299 6.18608 -0.29000
+v 1.43551 6.22009 -0.29000
+v 1.38188 6.26479 -0.29000
+v -0.85357 7.17294 -0.29000
+v 3.54500 1.01000 0.07000
+v 2.45500 0.95000 0.07000
+v 2.41500 0.91000 0.07000
+v 2.45500 0.84000 0.07000
+v 2.34500 0.73000 0.07000
+v 1.88500 0.73000 0.07000
+v 1.84500 0.69000 0.07000
+v 2.96500 0.05000 0.07000
+v 3.07500 0.16000 0.07000
+v 4.35500 0.09000 0.07000
+v 4.39500 0.13000 0.07000
+v 4.35500 0.18000 0.07000
+v 3.57500 1.04000 0.07000
+v 3.52797 1.04812 0.29000
+v 2.43797 0.98812 0.29000
+v 2.36636 0.91651 0.29000
+v 2.40636 0.84651 0.29000
+v 2.32885 0.76900 0.29000
+v 1.86885 0.76900 0.29000
+v 1.78132 0.68147 0.29000
+v 2.97151 0.00136 0.29000
+v 3.09026 0.12011 0.29000
+v 4.37026 0.05011 0.29000
+v 4.44726 0.12711 0.29000
+v 4.38470 0.20531 0.29000
+v 3.57638 1.09653 0.29000
+v 3.54500 1.01000 0.51000
+v 2.45500 0.95000 0.51000
+v 2.41500 0.91000 0.51000
+v 2.45500 0.84000 0.51000
+v 2.34500 0.73000 0.51000
+v 1.88500 0.73000 0.51000
+v 1.84500 0.69000 0.51000
+v 2.96500 0.05000 0.51000
+v 3.07500 0.16000 0.51000
+v 4.35500 0.09000 0.51000
+v 4.39500 0.13000 0.51000
+v 4.35500 0.18000 0.51000
+v 3.57500 1.04000 0.51000
+v 2.45765 0.94416 0.51000
+v 2.42248 0.90900 0.51000
+v 2.46223 0.83944 0.51000
+v 2.42432 0.79205 0.51000
+v 2.51834 0.74504 0.51000
+v 2.58957 0.68399 0.51000
+v 2.89827 0.20600 0.51000
+v 2.92210 0.20600 0.51000
+v 3.52857 0.97155 0.51000
+v 3.52015 1.01367 0.51000
+v 2.45765 0.94416 0.53500
+v 2.42248 0.90900 0.53500
+v 2.46223 0.83944 0.53500
+v 2.42432 0.79205 0.53500
+v 2.51834 0.74504 0.53500
+v 2.58957 0.68399 0.53500
+v 2.89827 0.20600 0.53500
+v 2.92210 0.20600 0.53500
+v 3.52857 0.97155 0.53500
+v 3.52015 1.01367 0.53500
+v 2.46426 0.92956 0.55000
+v 2.44119 0.90649 0.55000
+v 2.48031 0.83803 0.55000
+v 2.44763 0.79717 0.55000
+v 2.52670 0.75763 0.55000
+v 2.60098 0.69396 0.55000
+v 2.90644 0.22100 0.55000
+v 2.91485 0.22100 0.55000
+v 3.51250 0.97542 0.55000
+v 3.50802 0.99784 0.55000
+v 2.46426 0.92956 0.03000
+v 2.44119 0.90649 0.03000
+v 2.48031 0.83803 0.03000
+v 2.44763 0.79717 0.03000
+v 2.52670 0.75763 0.03000
+v 2.60098 0.69396 0.03000
+v 2.90644 0.22100 0.03000
+v 2.91485 0.22100 0.03000
+v 3.51250 0.97542 0.03000
+v 3.50802 0.99784 0.03000
+v 2.45765 0.94416 0.04500
+v 2.42248 0.90900 0.04500
+v 2.46223 0.83944 0.04500
+v 2.42432 0.79205 0.04500
+v 2.51834 0.74504 0.04500
+v 2.58957 0.68399 0.04500
+v 2.89827 0.20600 0.04500
+v 2.92210 0.20600 0.04500
+v 3.52857 0.97155 0.04500
+v 3.52015 1.01367 0.04500
+v 2.45765 0.94416 0.07000
+v 2.42248 0.90900 0.07000
+v 2.46223 0.83944 0.07000
+v 2.42432 0.79205 0.07000
+v 2.51834 0.74504 0.07000
+v 2.58957 0.68399 0.07000
+v 2.89827 0.20600 0.07000
+v 2.92210 0.20600 0.07000
+v 3.52857 0.97155 0.07000
+v 3.52015 1.01367 0.07000
+v 2.34749 0.72400 0.51000
+v 1.88749 0.72400 0.51000
+v 1.85405 0.69056 0.51000
+v 1.93831 0.62502 0.51000
+v 2.96395 0.05744 0.51000
+v 3.02503 0.11852 0.51000
+v 2.88080 0.19544 0.51000
+v 2.57066 0.67566 0.51000
+v 2.40581 0.78233 0.51000
+v 2.34749 0.72400 0.52000
+v 1.88749 0.72400 0.52000
+v 1.85405 0.69056 0.52000
+v 1.93831 0.62502 0.52000
+v 2.96395 0.05744 0.52000
+v 3.02503 0.11852 0.52000
+v 2.88080 0.19544 0.52000
+v 2.57066 0.67566 0.52000
+v 2.40581 0.78233 0.52000
+v 2.35991 0.69400 0.55000
+v 1.89991 0.69400 0.55000
+v 1.89929 0.69338 0.55000
+v 1.95489 0.65014 0.55000
+v 2.95871 0.09462 0.55000
+v 2.97519 0.11110 0.55000
+v 2.85982 0.17263 0.55000
+v 2.54895 0.65398 0.55000
+v 2.40988 0.74397 0.55000
+v 2.35991 0.69400 0.03000
+v 1.89991 0.69400 0.03000
+v 1.89929 0.69338 0.03000
+v 1.95489 0.65014 0.03000
+v 2.95871 0.09462 0.03000
+v 2.97519 0.11110 0.03000
+v 2.85982 0.17263 0.03000
+v 2.54895 0.65398 0.03000
+v 2.40988 0.74397 0.03000
+v 2.34749 0.72400 0.06000
+v 1.88749 0.72400 0.06000
+v 1.85405 0.69056 0.06000
+v 1.93831 0.62502 0.06000
+v 2.96395 0.05744 0.06000
+v 3.02503 0.11852 0.06000
+v 2.88080 0.19544 0.06000
+v 2.57066 0.67566 0.06000
+v 2.40581 0.78233 0.06000
+v 2.34749 0.72400 0.07000
+v 1.88749 0.72400 0.07000
+v 1.85405 0.69056 0.07000
+v 1.93831 0.62502 0.07000
+v 2.96395 0.05744 0.07000
+v 3.02503 0.11852 0.07000
+v 2.88080 0.19544 0.07000
+v 2.57066 0.67566 0.07000
+v 2.40581 0.78233 0.07000
+v 3.55100 1.00751 0.51000
+v 3.55100 0.96800 0.51000
+v 3.51974 0.92632 0.51000
+v 2.94100 0.20788 0.51000
+v 2.94100 0.19321 0.51000
+v 3.02682 0.13600 0.51000
+v 3.04251 0.13600 0.51000
+v 3.07251 0.16600 0.51000
+v 3.14517 0.16600 0.51000
+v 4.35266 0.09615 0.51000
+v 4.38696 0.13045 0.51000
+v 4.35043 0.17611 0.51000
+v 3.57479 1.03130 0.51000
+v 3.55100 1.00751 0.53500
+v 3.55100 0.96800 0.53500
+v 3.51974 0.92632 0.53500
+v 2.94100 0.20788 0.53500
+v 2.94100 0.19321 0.53500
+v 3.02682 0.13600 0.53500
+v 3.04251 0.13600 0.53500
+v 3.07251 0.16600 0.53500
+v 3.14517 0.16600 0.53500
+v 4.35266 0.09615 0.53500
+v 4.38696 0.13045 0.53500
+v 4.35043 0.17611 0.53500
+v 3.57479 1.03130 0.53500
+v 3.56600 1.00130 0.55000
+v 3.56600 0.96300 0.55000
+v 3.53158 0.91711 0.55000
+v 2.95600 0.20259 0.55000
+v 2.95600 0.20124 0.55000
+v 3.03136 0.15100 0.55000
+v 3.03630 0.15100 0.55000
+v 3.06630 0.18100 0.55000
+v 3.14561 0.18100 0.55000
+v 4.34681 0.11151 0.55000
+v 4.36686 0.13156 0.55000
+v 4.33901 0.16637 0.55000
+v 3.57426 1.00956 0.55000
+v 3.56600 1.00130 0.03000
+v 3.56600 0.96300 0.03000
+v 3.53158 0.91711 0.03000
+v 2.95600 0.20259 0.03000
+v 2.95600 0.20124 0.03000
+v 3.03136 0.15100 0.03000
+v 3.03630 0.15100 0.03000
+v 3.06630 0.18100 0.03000
+v 3.14561 0.18100 0.03000
+v 4.34681 0.11151 0.03000
+v 4.36686 0.13156 0.03000
+v 4.33901 0.16637 0.03000
+v 3.57426 1.00956 0.03000
+v 3.55100 1.00751 0.04500
+v 3.55100 0.96800 0.04500
+v 3.51974 0.92632 0.04500
+v 2.94100 0.20788 0.04500
+v 2.94100 0.19321 0.04500
+v 3.02682 0.13600 0.04500
+v 3.04251 0.13600 0.04500
+v 3.07251 0.16600 0.04500
+v 3.14517 0.16600 0.04500
+v 4.35266 0.09615 0.04500
+v 4.38696 0.13045 0.04500
+v 4.35043 0.17611 0.04500
+v 3.57479 1.03130 0.04500
+v 3.55100 1.00751 0.07000
+v 3.55100 0.96800 0.07000
+v 3.51974 0.92632 0.07000
+v 2.94100 0.20788 0.07000
+v 2.94100 0.19321 0.07000
+v 3.02682 0.13600 0.07000
+v 3.04251 0.13600 0.07000
+v 3.07251 0.16600 0.07000
+v 3.14517 0.16600 0.07000
+v 4.35266 0.09615 0.07000
+v 4.38696 0.13045 0.07000
+v 4.35043 0.17611 0.07000
+v 3.57479 1.03130 0.07000
+v -2.58500 2.28000 0.09000
+v -2.88500 1.16000 0.09000
+v -2.23500 0.66000 0.09000
+v -0.94500 2.00000 0.09000
+v -1.51500 3.09000 0.09000
+v -1.64500 3.16000 0.09000
+v -2.61444 2.29765 0.27000
+v -2.92257 1.14727 0.27000
+v -2.23171 0.61584 0.27000
+v -0.90474 1.99423 0.27000
+v -1.49045 3.11426 0.27000
+v -1.65024 3.20030 0.27000
+v -2.58500 2.28000 0.45000
+v -2.88500 1.16000 0.45000
+v -2.23500 0.66000 0.45000
+v -0.94500 2.00000 0.45000
+v -1.51500 3.09000 0.45000
+v -1.64500 3.16000 0.45000
+v -2.57965 2.27679 0.45000
+v -2.84918 1.27854 0.45000
+v -2.87841 1.15189 0.45000
+v -2.83117 1.10465 0.45000
+v -2.40139 0.81480 0.45000
+v -2.28350 0.71656 0.45000
+v -2.24965 0.72502 0.45000
+v -2.21077 0.84167 0.45000
+v -2.05081 1.49151 0.45000
+v -1.63083 3.03144 0.45000
+v -1.61157 3.11809 0.45000
+v -1.64514 3.15165 0.45000
+v -2.57965 2.27679 0.46000
+v -2.84918 1.27854 0.46000
+v -2.87841 1.15189 0.46000
+v -2.83117 1.10465 0.46000
+v -2.40139 0.81480 0.46000
+v -2.28350 0.71656 0.46000
+v -2.24965 0.72502 0.46000
+v -2.21077 0.84167 0.46000
+v -2.05081 1.49151 0.46000
+v -1.63083 3.03144 0.46000
+v -1.61157 3.11809 0.46000
+v -1.64514 3.15165 0.46000
+v -2.55292 2.26072 0.49000
+v -2.82007 1.27126 0.49000
+v -2.84544 1.16135 0.49000
+v -2.81200 1.12791 0.49000
+v -2.38336 0.83883 0.49000
+v -2.27600 0.74936 0.49000
+v -2.27290 0.75013 0.49000
+v -2.23961 0.85001 0.49000
+v -2.07985 1.49904 0.49000
+v -1.65996 3.03865 0.49000
+v -1.64443 3.10852 0.49000
+v -1.64583 3.10991 0.49000
+v -2.55292 2.26072 0.05000
+v -2.82007 1.27126 0.05000
+v -2.84544 1.16135 0.05000
+v -2.81200 1.12791 0.05000
+v -2.38336 0.83883 0.05000
+v -2.27600 0.74936 0.05000
+v -2.27290 0.75013 0.05000
+v -2.23961 0.85001 0.05000
+v -2.07985 1.49904 0.05000
+v -1.65996 3.03865 0.05000
+v -1.64443 3.10852 0.05000
+v -1.64583 3.10991 0.05000
+v -2.57965 2.27679 0.08000
+v -2.84918 1.27854 0.08000
+v -2.87841 1.15189 0.08000
+v -2.83117 1.10465 0.08000
+v -2.40139 0.81480 0.08000
+v -2.28350 0.71656 0.08000
+v -2.24965 0.72502 0.08000
+v -2.21077 0.84167 0.08000
+v -2.05081 1.49151 0.08000
+v -1.63083 3.03144 0.08000
+v -1.61157 3.11809 0.08000
+v -1.64514 3.15165 0.08000
+v -2.57965 2.27679 0.09000
+v -2.84918 1.27854 0.09000
+v -2.87841 1.15189 0.09000
+v -2.83117 1.10465 0.09000
+v -2.40139 0.81480 0.09000
+v -2.28350 0.71656 0.09000
+v -2.24965 0.72502 0.09000
+v -2.21077 0.84167 0.09000
+v -2.05081 1.49151 0.09000
+v -1.63083 3.03144 0.09000
+v -1.61157 3.11809 0.09000
+v -1.64514 3.15165 0.09000
+v -1.59961 3.09691 0.45000
+v -2.20929 0.76812 0.45000
+v -2.23028 0.71565 0.45000
+v -2.26487 0.69836 0.45000
+v -2.23486 0.66834 0.45000
+v -2.08923 0.80426 0.45000
+v -0.95231 2.00102 0.45000
+v -1.51989 3.08641 0.45000
+v -1.56500 3.13151 0.45000
+v -1.59961 3.09691 0.47500
+v -2.20929 0.76812 0.47500
+v -2.23028 0.71565 0.47500
+v -2.26487 0.69836 0.47500
+v -2.23486 0.66834 0.47500
+v -2.08923 0.80426 0.47500
+v -0.95231 2.00102 0.47500
+v -1.51989 3.08641 0.47500
+v -1.56500 3.13151 0.47500
+v -1.58613 3.08918 0.49000
+v -2.19502 0.76342 0.49000
+v -2.21847 0.70479 0.49000
+v -2.23955 0.69425 0.49000
+v -2.23450 0.68920 0.49000
+v -2.09979 0.81492 0.49000
+v -0.97057 2.00358 0.49000
+v -1.53212 3.07742 0.49000
+v -1.56500 3.11030 0.49000
+v -1.58613 3.08918 0.05000
+v -2.19502 0.76342 0.05000
+v -2.21847 0.70479 0.05000
+v -2.23955 0.69425 0.05000
+v -2.23450 0.68920 0.05000
+v -2.09979 0.81492 0.05000
+v -0.97057 2.00358 0.05000
+v -1.53212 3.07742 0.05000
+v -1.56500 3.11030 0.05000
+v -1.59961 3.09691 0.06500
+v -2.20929 0.76812 0.06500
+v -2.23028 0.71565 0.06500
+v -2.26487 0.69836 0.06500
+v -2.23486 0.66834 0.06500
+v -2.08923 0.80426 0.06500
+v -0.95231 2.00102 0.06500
+v -1.51989 3.08641 0.06500
+v -1.56500 3.13151 0.06500
+v -1.59961 3.09691 0.09000
+v -2.20929 0.76812 0.09000
+v -2.23028 0.71565 0.09000
+v -2.26487 0.69836 0.09000
+v -2.23486 0.66834 0.09000
+v -2.08923 0.80426 0.09000
+v -0.95231 2.00102 0.09000
+v -1.51989 3.08641 0.09000
+v -1.56500 3.13151 0.09000
+v -0.89500 7.14000 0.23000
+v 0.02500 6.23000 0.23000
+v 1.39500 6.18000 0.23000
+v 1.44500 6.22000 0.23000
+v -0.85500 7.18000 0.23000
+v -0.90989 7.13996 0.26000
+v 0.02053 6.21966 0.26000
+v 1.39851 6.16936 0.26000
+v 1.46539 6.22287 0.26000
+v -0.85745 7.19240 0.26000
+v -0.89500 7.14000 0.29000
+v 0.02500 6.23000 0.29000
+v 1.39500 6.18000 0.29000
+v 1.44500 6.22000 0.29000
+v -0.85500 7.18000 0.29000
+v -0.88649 7.14002 0.29000
+v 0.02756 6.23591 0.29000
+v 1.39299 6.18608 0.29000
+v 1.43551 6.22009 0.29000
+v 1.38188 6.26479 0.29000
+v -0.85357 7.17294 0.29000
+v -0.88649 7.14002 0.31500
+v 0.02756 6.23591 0.31500
+v 1.39299 6.18608 0.31500
+v 1.43551 6.22009 0.31500
+v 1.38188 6.26479 0.31500
+v -0.85357 7.17294 0.31500
+v -0.86522 7.14008 0.33000
+v 0.03395 6.25069 0.33000
+v 1.38797 6.20127 0.33000
+v 1.41180 6.22033 0.33000
+v 1.37407 6.25177 0.33000
+v -0.85000 7.15530 0.33000
+v -0.86522 7.14008 0.19000
+v 0.03395 6.25069 0.19000
+v 1.38797 6.20127 0.19000
+v 1.41180 6.22033 0.19000
+v 1.37407 6.25177 0.19000
+v -0.85000 7.15530 0.19000
+v -0.88649 7.14002 0.20500
+v 0.02756 6.23591 0.20500
+v 1.39299 6.18608 0.20500
+v 1.43551 6.22009 0.20500
+v 1.38188 6.26479 0.20500
+v -0.85357 7.17294 0.20500
+v -0.88649 7.14002 0.23000
+v 0.02756 6.23591 0.23000
+v 1.39299 6.18608 0.23000
+v 1.43551 6.22009 0.23000
+v 1.38188 6.26479 0.23000
+v -0.85357 7.17294 0.23000
+v 0.12500 7.39000 -0.03000
+v 0.62500 6.67000 -0.03000
+v 1.38500 6.60000 -0.03000
+v 1.43500 6.64000 -0.03000
+v 0.15500 7.45000 -0.03000
+v 0.11282 7.38913 0.00000
+v 0.61917 6.65999 0.00000
+v 1.38825 6.58916 0.00000
+v 1.45306 6.64100 0.00000
+v 0.15080 7.46508 0.00000
+v 0.12500 7.39000 0.03000
+v 0.62500 6.67000 0.03000
+v 1.38500 6.60000 0.03000
+v 1.43500 6.64000 0.03000
+v 0.15500 7.45000 0.03000
+v 0.12230 7.40882 0.03000
+v 0.13019 7.39303 0.03000
+v 0.57966 6.72383 0.03000
+v 0.62771 6.67578 0.03000
+v 1.38314 6.60620 0.03000
+v 1.42540 6.64000 0.03000
+v 1.33153 6.71509 0.03000
+v 0.15588 7.44240 0.03000
+v 0.12230 7.40882 0.05500
+v 0.13019 7.39303 0.05500
+v 0.57966 6.72383 0.05500
+v 0.62771 6.67578 0.05500
+v 1.38314 6.60620 0.05500
+v 1.42540 6.64000 0.05500
+v 1.33153 6.71509 0.05500
+v 0.15588 7.44240 0.05500
+v 0.14055 7.40585 0.07000
+v 0.14318 7.40059 0.07000
+v 0.59129 6.73340 0.07000
+v 0.63448 6.69022 0.07000
+v 1.37849 6.62169 0.07000
+v 1.40138 6.64000 0.07000
+v 1.32287 6.70281 0.07000
+v 0.15809 7.42339 0.07000
+v 0.14055 7.40585 -0.07000
+v 0.14318 7.40059 -0.07000
+v 0.59129 6.73340 -0.07000
+v 0.63448 6.69022 -0.07000
+v 1.37849 6.62169 -0.07000
+v 1.40138 6.64000 -0.07000
+v 1.32287 6.70281 -0.07000
+v 0.15809 7.42339 -0.07000
+v 0.12230 7.40882 -0.05500
+v 0.13019 7.39303 -0.05500
+v 0.57966 6.72383 -0.05500
+v 0.62771 6.67578 -0.05500
+v 1.38314 6.60620 -0.05500
+v 1.42540 6.64000 -0.05500
+v 1.33153 6.71509 -0.05500
+v 0.15588 7.44240 -0.05500
+v 0.12230 7.40882 -0.03000
+v 0.13019 7.39303 -0.03000
+v 0.57966 6.72383 -0.03000
+v 0.62771 6.67578 -0.03000
+v 1.38314 6.60620 -0.03000
+v 1.42540 6.64000 -0.03000
+v 1.33153 6.71509 -0.03000
+v 0.15588 7.44240 -0.03000
+v -2.82064 6.36000 -2.10075
+v -2.80252 6.33000 -2.09230
+v -2.04122 5.28000 -1.73730
+v -2.14091 5.17000 -1.78379
+v -2.96565 5.51000 -2.16837
+v -3.01097 5.47000 -2.18950
+v -1.71495 3.61000 -1.58516
+v 0.09767 3.18000 -0.73992
+v 0.64145 3.11000 -0.48635
+v 0.67770 3.15000 -0.46945
+v -0.31923 4.99000 -0.93433
+v -0.29204 5.02000 -0.92165
+v -0.32830 5.06000 -0.93855
+v -2.78439 6.40000 -2.08385
+v -2.84557 6.36134 -2.07928
+v -2.82288 6.32380 -2.06870
+v -2.06665 5.28078 -1.71606
+v -2.15599 5.18220 -1.75772
+v -2.98006 5.52192 -2.14199
+v -3.03688 5.47177 -2.16849
+v -1.73304 3.60054 -1.56050
+v 0.08343 3.16963 -0.71346
+v 0.63225 3.09898 -0.45754
+v 0.67700 3.14836 -0.43668
+v -0.31994 4.98836 -0.90156
+v -0.29127 5.02000 -0.88818
+v -0.33535 5.06865 -0.90874
+v -2.79897 6.41275 -2.05755
+v -2.84600 6.36000 -2.04638
+v -2.82787 6.33000 -2.03792
+v -2.06658 5.28000 -1.68292
+v -2.16627 5.17000 -1.72941
+v -2.99101 5.51000 -2.11399
+v -3.03633 5.47000 -2.13513
+v -1.74031 3.61000 -1.53078
+v 0.07231 3.18000 -0.68555
+v 0.61610 3.11000 -0.43197
+v 0.65235 3.15000 -0.41507
+v -0.34459 4.99000 -0.87995
+v -0.31740 5.02000 -0.86727
+v -0.35365 5.06000 -0.88418
+v -2.80975 6.40000 -2.02947
+v -2.83900 6.35924 -2.04311
+v -2.82348 6.33354 -2.03587
+v -2.05929 5.27955 -1.67953
+v -2.10370 5.23055 -1.70024
+v -1.90063 5.05519 -1.60554
+v -0.96738 4.60531 -1.17036
+v -0.86867 4.53600 -1.12433
+v -0.84471 4.53600 -1.11316
+v -0.79194 4.57481 -1.08855
+v -0.35756 4.97422 -0.88600
+v -0.32469 5.01955 -0.87067
+v -0.35687 5.05506 -0.88567
+v -2.80866 6.39271 -2.02896
+v -2.84323 6.35924 -2.03405
+v -2.82771 6.33354 -2.02681
+v -2.06352 5.27955 -1.67046
+v -2.10793 5.23055 -1.69117
+v -1.90486 5.05519 -1.59648
+v -0.97161 4.60531 -1.16130
+v -0.87289 4.53600 -1.11527
+v -0.84893 4.53600 -1.10409
+v -0.79617 4.57481 -1.07949
+v -0.36178 4.97422 -0.87693
+v -0.32891 5.01955 -0.86161
+v -0.36109 5.05506 -0.87661
+v -2.81289 6.39271 -2.01990
+v -2.82092 6.35541 -1.99055
+v -2.81842 6.35127 -1.98938
+v -2.03976 5.27733 -1.62628
+v -2.07967 5.23329 -1.64489
+v -1.90349 5.08116 -1.56274
+v -0.97147 4.63187 -1.12813
+v -0.87765 4.56600 -1.08439
+v -0.86984 4.56600 -1.08074
+v -0.82514 4.59889 -1.05990
+v -0.39398 4.99533 -0.85884
+v -0.37803 5.01733 -0.85141
+v -0.38983 5.03036 -0.85691
+v -2.82013 6.35628 -1.99018
+v -2.76175 6.35541 -2.11743
+v -2.75925 6.35127 -2.11626
+v -1.98059 5.27733 -1.75317
+v -2.02050 5.23329 -1.77178
+v -1.84433 5.08116 -1.68963
+v -0.91230 4.63187 -1.25501
+v -0.81849 4.56600 -1.21127
+v -0.81068 4.56600 -1.20763
+v -0.76597 4.59889 -1.18678
+v -0.33481 4.99533 -0.98573
+v -0.31886 5.01733 -0.97829
+v -0.33067 5.03036 -0.98379
+v -2.76097 6.35628 -2.11706
+v -2.80942 6.35924 -2.10655
+v -2.79390 6.33354 -2.09932
+v -2.02971 5.27955 -1.74297
+v -2.07412 5.23055 -1.76368
+v -1.87105 5.05519 -1.66898
+v -0.93780 4.60531 -1.23380
+v -0.83908 4.53600 -1.18777
+v -0.81512 4.53600 -1.17660
+v -0.76236 4.57481 -1.15199
+v -0.32797 4.97422 -0.94944
+v -0.29511 5.01955 -0.93411
+v -0.32728 5.05506 -0.94912
+v -2.77908 6.39271 -2.09241
+v -2.81365 6.35924 -2.09749
+v -2.79812 6.33354 -2.09025
+v -2.03393 5.27955 -1.73390
+v -2.07835 5.23055 -1.75462
+v -1.87527 5.05519 -1.65992
+v -0.94202 4.60531 -1.22474
+v -0.84331 4.53600 -1.17871
+v -0.81935 4.53600 -1.16754
+v -0.76658 4.57481 -1.14293
+v -0.33220 4.97422 -0.94037
+v -0.29933 5.01955 -0.92505
+v -0.33151 5.05506 -0.94005
+v -2.78330 6.39271 -2.08334
+v -3.02933 5.46924 -2.13186
+v -3.01376 5.44347 -2.12460
+v -1.84495 3.73395 -1.57958
+v -1.78532 3.66816 -1.55177
+v -0.88608 4.51152 -1.13245
+v -0.90149 4.54553 -1.13964
+v -0.97225 4.58456 -1.17263
+v -1.90625 5.03481 -1.60816
+v -2.11178 5.21229 -1.70401
+v -2.16520 5.16317 -1.72892
+v -2.99869 5.50304 -2.11758
+v -3.03355 5.46924 -2.12280
+v -3.01799 5.44347 -2.11554
+v -1.84918 3.73395 -1.57051
+v -1.78955 3.66816 -1.54271
+v -0.89031 4.51152 -1.12339
+v -0.90572 4.54553 -1.13057
+v -0.97648 4.58456 -1.16357
+v -1.91048 5.03481 -1.59910
+v -2.11601 5.21229 -1.69494
+v -2.16943 5.16317 -1.71985
+v -3.00292 5.50304 -2.10851
+v -3.01125 5.46541 -2.07930
+v -3.00848 5.46084 -2.07801
+v -1.84129 3.75368 -1.53374
+v -1.80073 3.70893 -1.51482
+v -0.93684 4.51915 -1.11199
+v -0.93866 4.52317 -1.11283
+v -1.00068 4.55738 -1.14176
+v -1.93720 5.00884 -1.57846
+v -2.12815 5.17373 -1.66750
+v -2.17678 5.12901 -1.69018
+v -3.00868 5.46824 -2.07810
+v -2.95208 5.46541 -2.20618
+v -2.94932 5.46084 -2.20489
+v -1.78212 3.75368 -1.66062
+v -1.74156 3.70893 -1.64171
+v -0.87767 4.51915 -1.23887
+v -0.87950 4.52317 -1.23972
+v -0.94152 4.55738 -1.26864
+v -1.87803 5.00884 -1.70534
+v -2.06899 5.17373 -1.79439
+v -2.11762 5.12901 -1.81706
+v -2.94952 5.46824 -2.20498
+v -2.99974 5.46924 -2.19530
+v -2.98418 5.44347 -2.18805
+v -1.81537 3.73395 -1.64302
+v -1.75574 3.66816 -1.61521
+v -0.85650 4.51152 -1.19589
+v -0.87191 4.54553 -1.20308
+v -0.94267 4.58456 -1.23607
+v -1.87667 5.03481 -1.67160
+v -2.08220 5.21229 -1.76745
+v -2.13562 5.16317 -1.79236
+v -2.96911 5.50304 -2.18102
+v -3.00397 5.46924 -2.18624
+v -2.98841 5.44347 -2.17898
+v -1.81959 3.73395 -1.63396
+v -1.75996 3.66816 -1.60615
+v -0.86073 4.51152 -1.18683
+v -0.87613 4.54553 -1.19402
+v -0.94689 4.58456 -1.22701
+v -1.88089 5.03481 -1.66254
+v -2.08643 5.21229 -1.75838
+v -2.13985 5.16317 -1.78329
+v -2.97333 5.50304 -2.17195
+v -0.78542 4.55519 -1.08551
+v -0.84141 4.51400 -1.11162
+v -0.86800 4.51400 -1.12402
+v -0.97534 4.39556 -1.17407
+v -1.72738 3.70574 -1.52476
+v -1.76920 3.65037 -1.54426
+v -1.73759 3.61549 -1.52952
+v 0.02790 3.19592 -0.70625
+v 0.61413 3.11631 -0.43289
+v 0.64573 3.15118 -0.41815
+v 0.62944 3.18714 -0.42575
+v -0.26752 4.87659 -0.84401
+v -0.33630 4.97145 -0.87608
+v -0.78964 4.55519 -1.07645
+v -0.84564 4.51400 -1.10256
+v -0.87222 4.51400 -1.11495
+v -0.97956 4.39556 -1.16501
+v -1.73161 3.70574 -1.51569
+v -1.77343 3.65037 -1.53519
+v -1.74182 3.61549 -1.52045
+v 0.02368 3.19592 -0.69719
+v 0.60990 3.11631 -0.42383
+v 0.64150 3.15118 -0.40909
+v 0.62521 3.18714 -0.41669
+v -0.27174 4.87659 -0.83495
+v -0.34052 4.97145 -0.86702
+v -0.78598 4.53115 -1.04164
+v -0.85009 4.48400 -1.07153
+v -0.87364 4.48400 -1.08251
+v -0.97390 4.37337 -1.12927
+v -1.72499 3.68442 -1.47951
+v -1.74932 3.65221 -1.49085
+v -1.74094 3.64296 -1.48694
+v 0.01553 3.22553 -0.66789
+v 0.58738 3.14788 -0.40123
+v 0.59574 3.15711 -0.39733
+v 0.58862 3.17283 -0.40065
+v -0.30688 4.85955 -0.81823
+v -0.35703 4.92872 -0.84162
+v -0.72682 4.53115 -1.16852
+v -0.79092 4.48400 -1.19841
+v -0.81447 4.48400 -1.20940
+v -0.91473 4.37337 -1.25615
+v -1.66583 3.68442 -1.60639
+v -1.69016 3.65221 -1.61773
+v -1.68177 3.64296 -1.61383
+v 0.07470 3.22553 -0.79477
+v 0.64654 3.14788 -0.52811
+v 0.65491 3.15711 -0.52421
+v 0.64778 3.17283 -0.52754
+v -0.24772 4.85955 -0.94511
+v -0.29787 4.92872 -0.96850
+v -0.75583 4.55519 -1.14895
+v -0.81183 4.51400 -1.17506
+v -0.83841 4.51400 -1.18746
+v -0.94575 4.39556 -1.23751
+v -1.69780 3.70574 -1.58820
+v -1.73962 3.65037 -1.60770
+v -1.70801 3.61549 -1.59296
+v 0.05748 3.19592 -0.76969
+v 0.64371 3.11631 -0.49633
+v 0.67531 3.15118 -0.48160
+v 0.65902 3.18714 -0.48919
+v -0.23793 4.87659 -0.90745
+v -0.30671 4.97145 -0.93952
+v -0.76006 4.55519 -1.13989
+v -0.81606 4.51400 -1.16600
+v -0.84264 4.51400 -1.17840
+v -0.94998 4.39556 -1.22845
+v -1.70203 3.70574 -1.57913
+v -1.74384 3.65037 -1.59863
+v -1.71224 3.61549 -1.58390
+v 0.05326 3.19592 -0.76063
+v 0.63948 3.11631 -0.48727
+v 0.67109 3.15118 -0.47253
+v 0.65480 3.18714 -0.48013
+v -0.24216 4.87659 -0.89839
+v -0.31094 4.97145 -0.93046
+v -2.84600 6.36000 2.04638
+v -2.82787 6.33000 2.03792
+v -2.06658 5.28000 1.68292
+v -2.16627 5.17000 1.72941
+v -2.99101 5.51000 2.11399
+v -3.03633 5.47000 2.13513
+v -1.74031 3.61000 1.53078
+v 0.07231 3.18000 0.68555
+v 0.61610 3.11000 0.43197
+v 0.65235 3.15000 0.41507
+v -0.34459 4.99000 0.87995
+v -0.31740 5.02000 0.86727
+v -0.35365 5.06000 0.88418
+v -2.80975 6.40000 2.02947
+v -2.84557 6.36134 2.07928
+v -2.82288 6.32380 2.06870
+v -2.06665 5.28078 1.71606
+v -2.15599 5.18220 1.75772
+v -2.98006 5.52192 2.14199
+v -3.03688 5.47177 2.16849
+v -1.73304 3.60054 1.56050
+v 0.08343 3.16963 0.71346
+v 0.63225 3.09898 0.45754
+v 0.67700 3.14836 0.43668
+v -0.31994 4.98836 0.90156
+v -0.29127 5.02000 0.88818
+v -0.33535 5.06865 0.90874
+v -2.79897 6.41275 2.05755
+v -2.82064 6.36000 2.10075
+v -2.80252 6.33000 2.09230
+v -2.04122 5.28000 1.73730
+v -2.14091 5.17000 1.78379
+v -2.96565 5.51000 2.16837
+v -3.01097 5.47000 2.18950
+v -1.71495 3.61000 1.58516
+v 0.09767 3.18000 0.73992
+v 0.64145 3.11000 0.48635
+v 0.67770 3.15000 0.46945
+v -0.31923 4.99000 0.93433
+v -0.29204 5.02000 0.92165
+v -0.32830 5.06000 0.93855
+v -2.78439 6.40000 2.08385
+v -2.81365 6.35924 2.09749
+v -2.79812 6.33354 2.09025
+v -2.03393 5.27955 1.73390
+v -2.07835 5.23055 1.75462
+v -1.87527 5.05519 1.65992
+v -0.94202 4.60531 1.22474
+v -0.84331 4.53600 1.17871
+v -0.81935 4.53600 1.16754
+v -0.76658 4.57481 1.14293
+v -0.33220 4.97422 0.94037
+v -0.29933 5.01955 0.92505
+v -0.33151 5.05506 0.94005
+v -2.78330 6.39271 2.08334
+v -2.80942 6.35924 2.10655
+v -2.79390 6.33354 2.09932
+v -2.02971 5.27955 1.74297
+v -2.07412 5.23055 1.76368
+v -1.87105 5.05519 1.66898
+v -0.93780 4.60531 1.23380
+v -0.83908 4.53600 1.18777
+v -0.81512 4.53600 1.17660
+v -0.76236 4.57481 1.15199
+v -0.32797 4.97422 0.94944
+v -0.29511 5.01955 0.93411
+v -0.32728 5.05506 0.94912
+v -2.77908 6.39271 2.09241
+v -2.76175 6.35541 2.11743
+v -2.75925 6.35127 2.11626
+v -1.98059 5.27733 1.75317
+v -2.02050 5.23329 1.77178
+v -1.84433 5.08116 1.68963
+v -0.91230 4.63187 1.25501
+v -0.81849 4.56600 1.21127
+v -0.81068 4.56600 1.20763
+v -0.76597 4.59889 1.18678
+v -0.33481 4.99533 0.98573
+v -0.31886 5.01733 0.97829
+v -0.33067 5.03036 0.98379
+v -2.76097 6.35628 2.11706
+v -2.82092 6.35541 1.99055
+v -2.81842 6.35127 1.98938
+v -2.03976 5.27733 1.62628
+v -2.07967 5.23329 1.64489
+v -1.90349 5.08116 1.56274
+v -0.97147 4.63187 1.12813
+v -0.87765 4.56600 1.08439
+v -0.86984 4.56600 1.08074
+v -0.82514 4.59889 1.05990
+v -0.39398 4.99533 0.85884
+v -0.37803 5.01733 0.85141
+v -0.38983 5.03036 0.85691
+v -2.82013 6.35628 1.99018
+v -2.84323 6.35924 2.03405
+v -2.82771 6.33354 2.02681
+v -2.06352 5.27955 1.67046
+v -2.10793 5.23055 1.69117
+v -1.90486 5.05519 1.59648
+v -0.97161 4.60531 1.16130
+v -0.87289 4.53600 1.11527
+v -0.84893 4.53600 1.10409
+v -0.79617 4.57481 1.07949
+v -0.36178 4.97422 0.87693
+v -0.32891 5.01955 0.86161
+v -0.36109 5.05506 0.87661
+v -2.81289 6.39271 2.01990
+v -2.83900 6.35924 2.04311
+v -2.82348 6.33354 2.03587
+v -2.05929 5.27955 1.67953
+v -2.10370 5.23055 1.70024
+v -1.90063 5.05519 1.60554
+v -0.96738 4.60531 1.17036
+v -0.86867 4.53600 1.12433
+v -0.84471 4.53600 1.11316
+v -0.79194 4.57481 1.08855
+v -0.35756 4.97422 0.88600
+v -0.32469 5.01955 0.87067
+v -0.35687 5.05506 0.88567
+v -2.80866 6.39271 2.02896
+v -3.00397 5.46924 2.18624
+v -2.98841 5.44347 2.17898
+v -1.81959 3.73395 1.63396
+v -1.75996 3.66816 1.60615
+v -0.86073 4.51152 1.18683
+v -0.87613 4.54553 1.19402
+v -0.94689 4.58456 1.22701
+v -1.88089 5.03481 1.66254
+v -2.08643 5.21229 1.75838
+v -2.13985 5.16317 1.78329
+v -2.97333 5.50304 2.17195
+v -2.99974 5.46924 2.19530
+v -2.98418 5.44347 2.18805
+v -1.81537 3.73395 1.64302
+v -1.75574 3.66816 1.61521
+v -0.85650 4.51152 1.19589
+v -0.87191 4.54553 1.20308
+v -0.94267 4.58456 1.23607
+v -1.87667 5.03481 1.67160
+v -2.08220 5.21229 1.76745
+v -2.13562 5.16317 1.79236
+v -2.96911 5.50304 2.18102
+v -2.95208 5.46541 2.20618
+v -2.94932 5.46084 2.20489
+v -1.78212 3.75368 1.66062
+v -1.74156 3.70893 1.64171
+v -0.87767 4.51915 1.23887
+v -0.87950 4.52317 1.23972
+v -0.94152 4.55738 1.26864
+v -1.87803 5.00884 1.70534
+v -2.06899 5.17373 1.79439
+v -2.11762 5.12901 1.81706
+v -2.94952 5.46824 2.20498
+v -3.01125 5.46541 2.07930
+v -3.00848 5.46084 2.07801
+v -1.84129 3.75368 1.53374
+v -1.80073 3.70893 1.51482
+v -0.93684 4.51915 1.11199
+v -0.93866 4.52317 1.11283
+v -1.00068 4.55738 1.14176
+v -1.93720 5.00884 1.57846
+v -2.12815 5.17373 1.66750
+v -2.17678 5.12901 1.69018
+v -3.00868 5.46824 2.07810
+v -3.03355 5.46924 2.12280
+v -3.01799 5.44347 2.11554
+v -1.84918 3.73395 1.57051
+v -1.78955 3.66816 1.54271
+v -0.89031 4.51152 1.12339
+v -0.90572 4.54553 1.13057
+v -0.97648 4.58456 1.16357
+v -1.91048 5.03481 1.59910
+v -2.11601 5.21229 1.69494
+v -2.16943 5.16317 1.71985
+v -3.00292 5.50304 2.10851
+v -3.02933 5.46924 2.13186
+v -3.01376 5.44347 2.12460
+v -1.84495 3.73395 1.57958
+v -1.78532 3.66816 1.55177
+v -0.88608 4.51152 1.13245
+v -0.90149 4.54553 1.13964
+v -0.97225 4.58456 1.17263
+v -1.90625 5.03481 1.60816
+v -2.11178 5.21229 1.70401
+v -2.16520 5.16317 1.72892
+v -2.99869 5.50304 2.11758
+v -0.76006 4.55519 1.13989
+v -0.81606 4.51400 1.16600
+v -0.84264 4.51400 1.17840
+v -0.94998 4.39556 1.22845
+v -1.70203 3.70574 1.57913
+v -1.74384 3.65037 1.59863
+v -1.71224 3.61549 1.58390
+v 0.05326 3.19592 0.76063
+v 0.63948 3.11631 0.48727
+v 0.67109 3.15118 0.47253
+v 0.65480 3.18714 0.48013
+v -0.24216 4.87659 0.89839
+v -0.31094 4.97145 0.93046
+v -0.75583 4.55519 1.14895
+v -0.81183 4.51400 1.17506
+v -0.83841 4.51400 1.18746
+v -0.94575 4.39556 1.23751
+v -1.69780 3.70574 1.58820
+v -1.73962 3.65037 1.60770
+v -1.70801 3.61549 1.59296
+v 0.05748 3.19592 0.76969
+v 0.64371 3.11631 0.49633
+v 0.67531 3.15118 0.48160
+v 0.65902 3.18714 0.48919
+v -0.23793 4.87659 0.90745
+v -0.30671 4.97145 0.93952
+v -0.72682 4.53115 1.16852
+v -0.79092 4.48400 1.19841
+v -0.81447 4.48400 1.20940
+v -0.91473 4.37337 1.25615
+v -1.66583 3.68442 1.60639
+v -1.69016 3.65221 1.61773
+v -1.68177 3.64296 1.61383
+v 0.07470 3.22553 0.79477
+v 0.64654 3.14788 0.52811
+v 0.65491 3.15711 0.52421
+v 0.64778 3.17283 0.52754
+v -0.24772 4.85955 0.94511
+v -0.29787 4.92872 0.96850
+v -0.78598 4.53115 1.04164
+v -0.85009 4.48400 1.07153
+v -0.87364 4.48400 1.08251
+v -0.97390 4.37337 1.12927
+v -1.72499 3.68442 1.47951
+v -1.74932 3.65221 1.49085
+v -1.74094 3.64296 1.48694
+v 0.01553 3.22553 0.66789
+v 0.58738 3.14788 0.40123
+v 0.59574 3.15711 0.39733
+v 0.58862 3.17283 0.40065
+v -0.30688 4.85955 0.81823
+v -0.35703 4.92872 0.84162
+v -0.78964 4.55519 1.07645
+v -0.84564 4.51400 1.10256
+v -0.87222 4.51400 1.11495
+v -0.97956 4.39556 1.16501
+v -1.73161 3.70574 1.51569
+v -1.77343 3.65037 1.53519
+v -1.74182 3.61549 1.52045
+v 0.02368 3.19592 0.69719
+v 0.60990 3.11631 0.42383
+v 0.64150 3.15118 0.40909
+v 0.62521 3.18714 0.41669
+v -0.27174 4.87659 0.83495
+v -0.34052 4.97145 0.86702
+v -0.78542 4.55519 1.08551
+v -0.84141 4.51400 1.11162
+v -0.86800 4.51400 1.12402
+v -0.97534 4.39556 1.17407
+v -1.72738 3.70574 1.52476
+v -1.76920 3.65037 1.54426
+v -1.73759 3.61549 1.52952
+v 0.02790 3.19592 0.70625
+v 0.61413 3.11631 0.43289
+v 0.64573 3.15118 0.41815
+v 0.62944 3.18714 0.42575
+v -0.26752 4.87659 0.84401
+v -0.33630 4.97145 0.87608
+vn -0.6976 -0.6976 -0.1636
+vn -0.4557 -0.8750 -0.1636
+vn -0.5406 -0.8252 -0.1636
+vn -0.7084 0.6866 -0.1635
+vn 0.1971 -0.9666 -0.1636
+vn -0.6287 -0.7603 -0.1636
+vn 0.6976 -0.6976 -0.1636
+vn 0.8824 -0.4412 -0.1636
+vn 0.6976 0.6976 -0.1636
+vn -0.3664 0.9160 -0.1636
+vn 0.2186 0.9620 -0.1635
+vn 0.2047 -0.9651 -0.1635
+vn -0.7510 -0.6397 -0.1636
+vn 0.6976 -0.6976 -0.1635
+vn 0.8869 -0.4321 -0.1636
+vn 0.7971 0.5812 -0.1636
+vn -0.9271 0.3371 -0.1635
+vn -0.6976 0.6976 -0.1636
+vn 0.0757 0.9836 -0.1636
+vn 0.1935 0.9674 -0.1636
+vn 0.5511 0.8183 -0.1636
+vn 0.0418 0.9856 -0.1636
+vn -0.6976 -0.6976 0.1636
+vn -0.4557 -0.8750 0.1636
+vn -0.5406 -0.8252 0.1636
+vn -0.7084 0.6866 0.1635
+vn 0.1971 -0.9666 0.1636
+vn -0.6287 -0.7603 0.1636
+vn 0.6976 -0.6976 0.1636
+vn 0.8824 -0.4412 0.1636
+vn 0.6976 0.6976 0.1636
+vn -0.3664 0.9160 0.1636
+vn 0.2186 0.9620 0.1635
+vn 0.2047 -0.9651 0.1635
+vn -0.7510 -0.6397 0.1636
+vn 0.6976 -0.6976 0.1635
+vn 0.8869 -0.4321 0.1636
+vn 0.7971 0.5812 0.1636
+vn -0.9271 0.3371 0.1635
+vn -0.6976 0.6976 0.1636
+vn 0.0757 0.9836 0.1636
+vn 0.1935 0.9674 0.1636
+vn 0.5511 0.8183 0.1636
+vn 0.0418 0.9856 0.1636
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 0.0000 1.0000
+vn -0.7071 -0.7071 0.0000
+vn -0.4619 -0.8869 0.0000
+vn 0.1241 -0.9923 0.0000
+vn -0.2748 -0.9615 0.0000
+vn 0.0808 -0.9967 0.0000
+vn -0.0278 -0.9996 0.0000
+vn 0.0500 -0.9988 0.0000
+vn 0.7068 -0.7074 0.0000
+vn 0.6097 0.7926 0.0000
+vn 0.5322 0.8466 0.0000
+vn 0.0423 0.9991 0.0000
+vn -0.7071 0.7071 0.0000
+vn -0.5002 -0.5002 0.7069
+vn -0.3268 -0.6274 0.7068
+vn 0.0878 -0.7019 0.7069
+vn -0.1943 -0.6801 0.7069
+vn 0.0572 -0.7049 0.7070
+vn -0.0196 -0.7067 0.7073
+vn 0.0353 -0.7063 0.7071
+vn 0.4999 -0.5002 0.7070
+vn 0.4311 0.5604 0.7072
+vn 0.3763 0.5986 0.7071
+vn 0.0299 0.7065 0.7071
+vn -0.5002 0.5002 0.7069
+vn -0.5002 -0.5002 -0.7069
+vn -0.3268 -0.6274 -0.7068
+vn 0.0878 -0.7019 -0.7069
+vn -0.1943 -0.6801 -0.7069
+vn 0.0572 -0.7049 -0.7070
+vn -0.0196 -0.7067 -0.7073
+vn 0.0353 -0.7063 -0.7071
+vn 0.4999 -0.5002 -0.7070
+vn 0.4311 0.5604 -0.7072
+vn 0.3763 0.5986 -0.7071
+vn 0.0299 0.7065 -0.7071
+vn -0.5002 0.5002 -0.7069
+vn 0.2747 0.9615 0.0000
+vn -0.1414 0.9900 0.0000
+vn -0.5480 -0.8365 0.0000
+vn -0.4008 -0.9162 0.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.7071 -0.7071 0.0000
+vn 0.2075 -0.9782 0.0000
+vn -0.7073 -0.7069 0.0000
+vn 0.8137 -0.5812 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.7474 0.6644 0.0000
+vn -0.6247 0.7809 0.0000
+vn 0.0000 1.0000 0.0000
+vn 0.1155 0.9933 0.0000
+vn -0.3713 0.9285 0.0000
+vn 0.0948 0.9955 0.0000
+vn 0.9487 0.3160 0.0000
+vn -0.0808 0.9967 0.0000
+vn 0.1943 0.6799 0.7071
+vn -0.1000 0.7000 0.7071
+vn -0.5000 -0.5000 0.7071
+vn -0.3875 -0.5915 0.7071
+vn -0.2834 -0.6478 0.7071
+vn 0.0000 -0.7071 0.7071
+vn 0.5000 -0.5000 0.7071
+vn 0.1467 -0.6917 0.7071
+vn -0.5001 -0.4999 0.7071
+vn 0.5754 -0.4110 0.7071
+vn 0.7071 0.0000 0.7071
+vn 0.5285 0.4698 0.7071
+vn -0.4417 0.5521 0.7072
+vn 0.0000 0.7071 0.7071
+vn 0.0817 0.7025 0.7070
+vn -0.2626 0.6566 0.7070
+vn 0.0670 0.7038 0.7072
+vn 0.6708 0.2236 0.7072
+vn -0.0571 0.7048 0.7071
+vn 0.1943 0.6799 -0.7071
+vn -0.1000 0.7000 -0.7071
+vn -0.5000 -0.5000 -0.7071
+vn -0.3875 -0.5915 -0.7071
+vn -0.2834 -0.6478 -0.7071
+vn 0.0000 -0.7071 -0.7071
+vn 0.5000 -0.5000 -0.7071
+vn 0.1467 -0.6917 -0.7071
+vn -0.5001 -0.4999 -0.7071
+vn 0.5754 -0.4110 -0.7071
+vn 0.7071 0.0000 -0.7071
+vn 0.5285 0.4698 -0.7071
+vn -0.4417 0.5521 -0.7072
+vn 0.0000 0.7071 -0.7071
+vn 0.0817 0.7025 -0.7070
+vn -0.2626 0.6566 -0.7070
+vn 0.0670 0.7038 -0.7072
+vn 0.6708 0.2236 -0.7072
+vn -0.0571 0.7048 -0.7071
+vn -1.0000 0.0000 0.0000
+vn -0.7433 -0.6690 0.0000
+vn -0.5145 0.8575 0.0000
+vn -0.9284 0.3715 0.0000
+vn -0.8742 -0.4856 0.0000
+vn 0.7070 -0.7072 0.0000
+vn 0.8990 -0.4380 0.0000
+vn 0.8222 0.5692 0.0000
+vn -0.7072 0.7070 0.0000
+vn -0.7071 0.0000 0.7071
+vn -0.5000 0.5000 0.7071
+vn -0.5256 -0.4730 0.7071
+vn -0.3638 0.6064 0.7071
+vn -0.6565 0.2627 0.7071
+vn -0.6182 -0.3434 0.7071
+vn 0.4999 -0.5001 0.7071
+vn 0.6357 -0.3097 0.7071
+vn 0.5814 0.4025 0.7071
+vn -0.5001 0.5000 0.7071
+vn -0.7071 0.0000 -0.7071
+vn -0.5000 0.5000 -0.7071
+vn -0.5256 -0.4730 -0.7071
+vn -0.3638 0.6064 -0.7071
+vn -0.6565 0.2627 -0.7071
+vn -0.6182 -0.3434 -0.7071
+vn 0.4999 -0.5001 -0.7071
+vn 0.6357 -0.3097 -0.7071
+vn 0.5814 0.4025 -0.7071
+vn -0.5001 0.5000 -0.7071
+vn -0.6313 -0.7756 0.0000
+vn -0.6300 -0.7766 0.0000
+vn 0.8944 -0.4472 0.0000
+vn 0.7071 0.7072 0.0000
+vn -0.3715 0.9284 0.0000
+vn 0.2216 0.9751 0.0000
+vn 0.7071 0.7071 0.0000
+vn 0.4258 0.9048 0.0000
+vn -0.4464 -0.5484 0.7071
+vn -0.4456 -0.5492 0.7070
+vn 0.4999 -0.5000 0.7071
+vn 0.6325 -0.3162 0.7071
+vn 0.5000 0.5000 0.7071
+vn -0.2627 0.6565 0.7071
+vn 0.1568 0.6897 0.7070
+vn 0.5001 0.5001 0.7070
+vn 0.3010 0.6397 0.7072
+vn -0.4999 0.4999 0.7072
+vn -0.4464 -0.5484 -0.7071
+vn -0.4456 -0.5492 -0.7070
+vn 0.4999 -0.5000 -0.7071
+vn 0.6325 -0.3162 -0.7071
+vn 0.5000 0.5000 -0.7071
+vn -0.2627 0.6565 -0.7071
+vn 0.1568 0.6897 -0.7070
+vn 0.5001 0.5001 -0.7070
+vn 0.3010 0.6397 -0.7072
+vn -0.4999 0.4999 -0.7072
+vn -0.0948 -0.9955 0.0000
+vn 0.1961 -0.9806 0.0000
+vn -0.0671 -0.7041 0.7069
+vn 0.1388 -0.6938 0.7066
+vn 0.5002 -0.5002 0.7069
+vn 0.5002 0.5002 0.7069
+vn -0.0671 -0.7041 -0.7069
+vn 0.1388 -0.6938 -0.7066
+vn 0.5002 -0.5002 -0.7069
+vn 0.5002 0.5002 -0.7069
+vn -0.7072 -0.7070 0.0000
+vn 0.2036 -0.9791 0.0000
+vn 0.7072 0.7070 0.0000
+vn 0.6225 0.7826 0.0000
+vn -0.7131 0.7010 0.0000
+vn -0.5000 -0.4999 0.7071
+vn 0.1439 -0.6923 0.7071
+vn 0.5000 0.4999 0.7071
+vn 0.4402 0.5534 0.7071
+vn -0.5043 0.4958 0.7070
+vn -0.5000 -0.4999 -0.7071
+vn 0.1439 -0.6923 -0.7071
+vn 0.5000 0.4999 -0.7071
+vn 0.4402 0.5534 -0.7071
+vn -0.5043 0.4958 -0.7070
+vn -0.9811 0.0989 -0.1664
+vn -0.6160 -0.7700 -0.1664
+vn 0.7506 -0.6394 -0.1664
+vn -0.6973 -0.6972 -0.1664
+vn -0.8983 -0.4068 -0.1664
+vn -0.7916 -0.5879 -0.1664
+vn 0.6973 -0.6972 -0.1664
+vn 0.9855 -0.0340 -0.1664
+vn 0.6972 -0.6973 -0.1664
+vn -0.7833 -0.5990 -0.1664
+vn 0.8541 -0.4928 -0.1664
+vn 0.7513 -0.6386 -0.1664
+vn 0.7541 0.6353 -0.1664
+vn 0.7081 -0.6863 -0.1664
+vn 0.5646 0.8084 -0.1664
+vn 0.6972 0.6973 -0.1664
+vn -0.4379 0.8835 -0.1664
+vn -0.9811 0.0989 0.1664
+vn -0.6160 -0.7700 0.1664
+vn 0.7506 -0.6394 0.1664
+vn -0.6973 -0.6972 0.1664
+vn -0.8983 -0.4068 0.1664
+vn -0.7916 -0.5879 0.1664
+vn 0.6973 -0.6972 0.1664
+vn 0.9855 -0.0340 0.1664
+vn 0.6972 -0.6973 0.1664
+vn -0.7833 -0.5990 0.1664
+vn 0.8541 -0.4928 0.1664
+vn 0.7513 -0.6386 0.1664
+vn 0.7541 0.6353 0.1664
+vn 0.7081 -0.6863 0.1664
+vn 0.5646 0.8084 0.1664
+vn 0.6972 0.6973 0.1664
+vn -0.4379 0.8835 0.1664
+vn -0.4472 0.8944 0.0000
+vn -0.9960 0.0891 0.0000
+vn -0.9487 0.3162 0.0000
+vn -0.7070 -0.7072 0.0000
+vn 0.6402 -0.7682 0.0000
+vn 0.8575 -0.5145 0.0000
+vn 0.9864 -0.1644 0.0000
+vn 0.8320 -0.5547 0.0000
+vn 0.6508 -0.7593 0.0000
+vn 0.8137 -0.5813 0.0000
+vn 0.8366 -0.5478 0.0000
+vn 0.7072 -0.7070 0.0000
+vn -0.4292 0.9032 0.0000
+vn -0.3160 0.6321 0.7075
+vn -0.4998 0.4998 0.7074
+vn -0.7041 0.0630 0.7073
+vn -0.6705 0.2235 0.7074
+vn -0.4999 -0.4999 0.7072
+vn 0.4527 -0.5432 0.7071
+vn 0.6062 -0.3637 0.7073
+vn -0.4994 -0.5001 0.7074
+vn 0.6976 -0.1162 0.7070
+vn 0.5884 -0.3922 0.7071
+vn 0.4602 -0.5369 0.7071
+vn 0.5755 -0.4111 0.7069
+vn 0.5916 -0.3874 0.7070
+vn 0.5001 -0.5000 0.7071
+vn -0.3035 0.6386 0.7072
+vn -0.3160 0.6321 -0.7075
+vn -0.4998 0.4998 -0.7074
+vn -0.7041 0.0630 -0.7073
+vn -0.6705 0.2235 -0.7074
+vn -0.4999 -0.4999 -0.7072
+vn 0.4527 -0.5432 -0.7071
+vn 0.6062 -0.3637 -0.7073
+vn -0.4994 -0.5001 -0.7074
+vn 0.6976 -0.1162 -0.7070
+vn 0.5884 -0.3922 -0.7071
+vn 0.4602 -0.5369 -0.7071
+vn 0.5755 -0.4111 -0.7069
+vn 0.5916 -0.3874 -0.7070
+vn 0.5001 -0.5000 -0.7071
+vn -0.3035 0.6386 -0.7072
+vn -0.9695 -0.2449 0.0000
+vn -0.9806 0.1960 0.0000
+vn -0.9091 -0.4167 0.0000
+vn -0.8403 -0.5421 0.0000
+vn -0.9731 -0.2305 0.0000
+vn -0.8823 -0.4706 0.0000
+vn -0.7526 -0.6585 0.0000
+vn 0.8829 -0.4696 0.0000
+vn 0.7296 -0.6839 0.0000
+vn 0.8944 -0.4473 0.0000
+vn 0.7690 0.6392 0.0000
+vn -0.6855 -0.1732 0.7072
+vn -0.6934 0.1387 0.7071
+vn -0.6428 -0.2946 0.7071
+vn -0.5942 -0.3834 0.7071
+vn -0.6882 -0.1630 0.7070
+vn -0.6238 -0.3327 0.7073
+vn -0.5321 -0.4656 0.7071
+vn 0.6243 -0.3321 0.7071
+vn 0.5160 -0.4837 0.7070
+vn 0.6327 -0.3163 0.7069
+vn 0.5437 0.4519 0.7072
+vn 0.4998 0.4998 0.7074
+vn -0.3161 0.6326 0.7070
+vn -0.6855 -0.1732 -0.7072
+vn -0.6934 0.1387 -0.7071
+vn -0.6428 -0.2946 -0.7071
+vn -0.5942 -0.3834 -0.7071
+vn -0.6882 -0.1630 -0.7070
+vn -0.6238 -0.3327 -0.7073
+vn -0.5321 -0.4656 -0.7071
+vn 0.6243 -0.3321 -0.7071
+vn 0.5160 -0.4837 -0.7070
+vn 0.6327 -0.3163 -0.7069
+vn 0.5437 0.4519 -0.7072
+vn 0.4998 0.4998 -0.7074
+vn -0.3161 0.6326 -0.7070
+vn -0.8334 0.5526 0.0000
+vn -0.9487 -0.3162 0.0000
+vn -0.7893 -0.6140 0.0000
+vn 0.3379 -0.9412 0.0000
+vn -0.3955 -0.9185 0.0000
+vn 0.8898 0.4563 0.0000
+vn 0.7181 -0.6960 0.0000
+vn 0.5547 0.8321 0.0000
+vn 0.6139 0.7894 0.0000
+vn -0.5895 0.3909 0.7069
+vn -0.6712 -0.2238 0.7067
+vn -0.5584 -0.4343 0.7068
+vn 0.2390 -0.6657 0.7069
+vn -0.2829 -0.6551 0.7006
+vn 0.6364 0.3335 0.6956
+vn 0.5079 -0.4922 0.7070
+vn 0.4999 0.4999 0.7072
+vn 0.3922 0.5884 0.7071
+vn 0.4343 0.5584 0.7068
+vn -0.5895 0.3909 -0.7069
+vn -0.6712 -0.2238 -0.7067
+vn -0.5584 -0.4343 -0.7068
+vn 0.2390 -0.6657 -0.7069
+vn -0.2829 -0.6551 -0.7006
+vn 0.6364 0.3335 -0.6956
+vn 0.5079 -0.4922 -0.7070
+vn 0.4999 0.4999 -0.7072
+vn 0.3922 0.5884 -0.7071
+vn 0.4343 0.5584 -0.7068
+vn -0.5546 0.8321 0.0000
+vn -0.8209 -0.5711 0.0000
+vn -0.6247 -0.7808 0.0000
+vn 0.9702 -0.2423 0.0000
+vn 0.9695 0.2449 0.0000
+vn 0.5146 0.8575 0.0000
+vn -0.3162 0.9487 0.0000
+vn -0.3922 0.5884 0.7071
+vn -0.5805 -0.4038 0.7071
+vn -0.4417 -0.5521 0.7071
+vn 0.6860 -0.1715 0.7071
+vn 0.6857 0.1732 0.7070
+vn 0.3638 0.6063 0.7071
+vn -0.2236 0.6708 0.7071
+vn -0.3922 0.5884 -0.7071
+vn -0.5805 -0.4038 -0.7071
+vn -0.4417 -0.5521 -0.7071
+vn 0.6860 -0.1715 -0.7071
+vn 0.6857 0.1732 -0.7070
+vn 0.3638 0.6063 -0.7071
+vn -0.2236 0.6708 -0.7071
+vn -0.8320 0.5547 0.0000
+vn -0.9884 0.1521 0.0000
+vn -0.9110 -0.4125 0.0000
+vn -0.8062 -0.5916 0.0000
+vn -0.7719 -0.6357 0.0000
+vn 0.9998 -0.0189 0.0000
+vn 0.9806 -0.1961 0.0000
+vn 0.7071 -0.7072 0.0000
+vn 0.9744 0.2249 0.0000
+vn 0.8403 0.5421 0.0000
+vn 0.9171 0.3987 0.0000
+vn 0.3940 0.9191 0.0000
+vn 0.7592 0.6508 0.0000
+vn 0.8183 0.5748 0.0000
+vn 0.9615 0.2748 0.0000
+vn 0.7894 0.6139 0.0000
+vn 0.9285 0.3714 0.0000
+vn -0.5884 0.3923 0.7071
+vn -0.6989 0.1075 0.7071
+vn -0.6442 -0.2917 0.7071
+vn -0.5701 -0.4183 0.7071
+vn -0.5459 -0.4495 0.7071
+vn 0.7070 -0.0133 0.7071
+vn 0.6934 -0.1387 0.7070
+vn 0.6890 0.1590 0.7071
+vn 0.5942 0.3834 0.7071
+vn 0.6485 0.2819 0.7071
+vn 0.2786 0.6499 0.7071
+vn 0.5369 0.4602 0.7071
+vn 0.5786 0.4064 0.7071
+vn 0.6799 0.1943 0.7071
+vn 0.5581 0.4341 0.7071
+vn 0.6566 0.2626 0.7071
+vn -0.4416 0.5522 0.7072
+vn -0.5884 0.3923 -0.7071
+vn -0.6989 0.1075 -0.7071
+vn -0.6442 -0.2917 -0.7071
+vn -0.5701 -0.4183 -0.7071
+vn -0.5459 -0.4495 -0.7071
+vn 0.7070 -0.0133 -0.7071
+vn 0.6934 -0.1387 -0.7070
+vn 0.6890 0.1590 -0.7071
+vn 0.5942 0.3834 -0.7071
+vn 0.6485 0.2819 -0.7071
+vn 0.2786 0.6499 -0.7071
+vn 0.5369 0.4602 -0.7071
+vn 0.5786 0.4064 -0.7071
+vn 0.6799 0.1943 -0.7071
+vn 0.5581 0.4341 -0.7071
+vn 0.6566 0.2626 -0.7071
+vn -0.4416 0.5522 -0.7072
+vn -0.6980 0.6980 -0.1597
+vn 0.6980 0.6980 -0.1597
+vn 0.0880 0.9832 -0.1597
+vn -0.6980 0.6981 -0.1597
+vn -0.8796 -0.4481 -0.1597
+vn -0.6980 -0.6980 -0.1597
+vn -0.5878 -0.7931 -0.1597
+vn 0.6980 -0.6980 -0.1597
+vn -0.6981 -0.6980 -0.1597
+vn -0.0597 -0.9854 -0.1597
+vn 0.6981 -0.6980 -0.1597
+vn 0.7584 0.6320 -0.1597
+vn 0.9305 -0.3296 -0.1597
+vn 0.9711 0.1774 -0.1597
+vn -0.8740 0.4589 -0.1597
+vn -0.7217 0.6736 -0.1597
+vn 0.8465 0.5079 -0.1597
+vn -0.9871 -0.0130 -0.1597
+vn 0.7883 0.5942 -0.1597
+vn -0.8972 0.4118 -0.1597
+vn -0.6980 0.6980 0.1597
+vn 0.6980 0.6980 0.1597
+vn 0.0880 0.9832 0.1597
+vn -0.6980 0.6981 0.1597
+vn -0.8796 -0.4481 0.1597
+vn -0.6980 -0.6980 0.1597
+vn -0.5878 -0.7931 0.1597
+vn 0.6980 -0.6980 0.1597
+vn -0.6981 -0.6980 0.1597
+vn -0.0597 -0.9854 0.1597
+vn 0.6981 -0.6980 0.1597
+vn 0.7584 0.6320 0.1597
+vn 0.9305 -0.3296 0.1597
+vn 0.9711 0.1774 0.1597
+vn -0.8740 0.4589 0.1597
+vn -0.7217 0.6736 0.1597
+vn 0.8465 0.5079 0.1597
+vn -0.9871 -0.0130 0.1597
+vn 0.7883 0.5942 0.1597
+vn -0.8972 0.4118 0.1597
+vn -0.9247 0.3808 0.0000
+vn -0.7526 0.6585 0.0000
+vn -0.3714 -0.9285 0.0000
+vn -0.7071 -0.7072 0.0000
+vn -0.7512 -0.6601 0.0000
+vn -0.9487 -0.3161 0.0000
+vn -0.7515 -0.6597 0.0000
+vn -0.6508 -0.7592 0.0000
+vn 0.9975 -0.0713 0.0000
+vn 0.9487 0.3162 0.0000
+vn 0.8132 0.5819 0.0000
+vn 0.7634 0.6459 0.0000
+vn -0.8193 0.5734 0.0000
+vn -0.6540 0.2693 0.7070
+vn -0.5322 0.4657 0.7071
+vn -0.2625 -0.6564 0.7073
+vn -0.5312 -0.4668 0.7071
+vn -0.6708 -0.2236 0.7072
+vn -0.5314 -0.4665 0.7071
+vn -0.4602 -0.5369 0.7071
+vn 0.7054 -0.0504 0.7070
+vn 0.6707 0.2236 0.7072
+vn 0.5751 0.4115 0.7071
+vn 0.5398 0.4568 0.7071
+vn -0.5794 0.4056 0.7069
+vn -0.6540 0.2693 -0.7070
+vn -0.5322 0.4657 -0.7071
+vn -0.2625 -0.6564 -0.7073
+vn -0.5312 -0.4668 -0.7071
+vn -0.6708 -0.2236 -0.7072
+vn -0.5314 -0.4665 -0.7071
+vn -0.4602 -0.5369 -0.7071
+vn 0.7054 -0.0504 -0.7070
+vn 0.6707 0.2236 -0.7072
+vn 0.5751 0.4115 -0.7071
+vn 0.5398 0.4568 -0.7071
+vn -0.5794 0.4056 -0.7069
+vn -0.8910 -0.4539 0.0000
+vn 0.5657 -0.8246 0.0000
+vn 0.5052 -0.8630 0.0000
+vn 0.5781 -0.8160 0.0000
+vn -0.7738 0.6334 0.0000
+vn 0.0891 0.9960 0.0000
+vn -0.7070 0.7072 0.0000
+vn -0.6300 -0.3209 0.7072
+vn 0.4000 -0.5830 0.7072
+vn 0.3572 -0.6103 0.7071
+vn 0.4108 -0.6706 0.6177
+vn -0.6646 0.4108 0.6242
+vn 0.5000 0.4999 0.7072
+vn 0.0630 0.7043 0.7071
+vn -0.4999 0.5001 0.7071
+vn -0.6300 -0.3209 -0.7072
+vn 0.4000 -0.5830 -0.7072
+vn 0.3572 -0.6103 -0.7071
+vn 0.4108 -0.6706 -0.6177
+vn -0.6646 0.4108 -0.6242
+vn 0.5000 0.4999 -0.7072
+vn 0.0630 0.7043 -0.7071
+vn -0.4999 0.5001 -0.7071
+vn -0.5010 0.8654 0.0000
+vn -0.5647 0.8253 0.0000
+vn -0.7809 0.6247 0.0000
+vn -0.6402 -0.7682 0.0000
+vn -0.5951 -0.8036 0.0000
+vn 0.9999 -0.0138 0.0000
+vn 0.9982 -0.0605 0.0000
+vn 0.8192 0.5735 0.0000
+vn 0.7072 0.7071 0.0000
+vn 0.3161 0.9487 0.0000
+vn -0.3543 0.6119 0.7071
+vn -0.3993 0.5836 0.7071
+vn -0.5522 0.4418 0.7071
+vn -0.4526 -0.5432 0.7072
+vn -0.4208 -0.5682 0.7071
+vn 0.7071 -0.0098 0.7070
+vn 0.7059 -0.0428 0.7070
+vn 0.5794 0.4055 0.7070
+vn 0.5285 0.4698 0.7070
+vn 0.2236 0.6708 0.7071
+vn -0.5522 0.4417 0.7071
+vn -0.3543 0.6119 -0.7071
+vn -0.3993 0.5836 -0.7071
+vn -0.5522 0.4418 -0.7071
+vn -0.4526 -0.5432 -0.7072
+vn -0.4208 -0.5682 -0.7071
+vn 0.7071 -0.0098 -0.7070
+vn 0.7059 -0.0428 -0.7070
+vn 0.5794 0.4055 -0.7070
+vn 0.5285 0.4698 -0.7070
+vn 0.2236 0.6708 -0.7071
+vn -0.5522 0.4417 -0.7071
+vn -0.8854 0.4648 0.0000
+vn -0.7328 0.6804 0.0000
+vn -0.8522 -0.5233 0.0000
+vn 0.6644 -0.7474 0.0000
+vn 0.5547 -0.8320 0.0000
+vn 0.9845 0.1755 0.0000
+vn 0.8137 0.5812 0.0000
+vn -0.6261 0.3287 0.7071
+vn -0.5182 0.4812 0.7071
+vn -0.6026 -0.3700 0.7071
+vn 0.4698 -0.5285 0.7071
+vn 0.3922 -0.5883 0.7072
+vn 0.6961 0.1241 0.7071
+vn 0.5754 0.4110 0.7071
+vn -0.6261 0.3287 -0.7071
+vn -0.5182 0.4812 -0.7071
+vn -0.6026 -0.3700 -0.7071
+vn 0.4698 -0.5285 -0.7071
+vn 0.3922 -0.5883 -0.7072
+vn 0.6961 0.1241 -0.7071
+vn 0.5754 0.4110 -0.7071
+vn -0.9999 -0.0132 0.0000
+vn -0.9398 -0.3417 0.0000
+vn -0.9975 0.0713 0.0000
+vn -0.1643 -0.9864 0.0000
+vn 0.6499 -0.7600 0.0000
+vn 0.8522 0.5233 0.0000
+vn 0.8575 0.5145 0.0000
+vn 0.7070 0.7072 0.0000
+vn -0.7070 -0.0093 0.7072
+vn -0.6646 -0.2417 0.7071
+vn -0.7053 0.0504 0.7071
+vn -0.1162 -0.6975 0.7071
+vn 0.4596 -0.5374 0.7071
+vn 0.6026 0.3700 0.7071
+vn 0.6063 0.3638 0.7072
+vn -0.7070 -0.0093 -0.7072
+vn -0.6646 -0.2417 -0.7071
+vn -0.7053 0.0504 -0.7071
+vn -0.1162 -0.6975 -0.7071
+vn 0.4596 -0.5374 -0.7071
+vn 0.6026 0.3700 -0.7071
+vn 0.6063 0.3638 -0.7072
+vn -0.9999 0.0139 0.0000
+vn -0.0605 -0.9982 0.0000
+vn 0.7372 0.6757 0.0000
+vn 0.8321 0.5547 0.0000
+vn 0.6585 0.7526 0.0000
+vn 0.7515 0.6597 0.0000
+vn -0.9978 0.0665 0.0000
+vn -0.7070 0.0098 0.7071
+vn -0.0428 -0.7058 0.7071
+vn 0.4999 -0.4999 0.7072
+vn 0.5212 0.4778 0.7072
+vn 0.5884 0.3923 0.7071
+vn 0.4657 0.5322 0.7071
+vn 0.5314 0.4665 0.7071
+vn -0.7055 0.0470 0.7071
+vn -0.7070 0.0098 -0.7071
+vn -0.0428 -0.7058 -0.7071
+vn 0.4999 -0.4999 -0.7072
+vn 0.5212 0.4778 -0.7072
+vn 0.5884 0.3923 -0.7071
+vn 0.4657 0.5322 -0.7071
+vn 0.5314 0.4665 -0.7071
+vn -0.7055 0.0470 -0.7071
+vn 0.1645 0.9864 0.0000
+vn -0.8322 -0.5545 0.0000
+vn -0.7448 -0.6673 0.0000
+vn -0.6509 -0.7592 0.0000
+vn 0.7808 -0.6247 0.0000
+vn 0.9487 -0.3162 0.0000
+vn 0.9445 -0.3285 0.0000
+vn 0.4471 0.8945 0.0000
+vn -0.6467 0.7628 0.0000
+vn 0.1163 0.6975 0.7071
+vn -0.5883 -0.3921 0.7072
+vn -0.5267 -0.4718 0.7071
+vn -0.4603 -0.5369 0.7070
+vn 0.5521 -0.4417 0.7072
+vn 0.6707 -0.2236 0.7072
+vn 0.6679 -0.2323 0.7071
+vn 0.3162 0.6326 0.7070
+vn -0.4573 0.5394 0.7071
+vn 0.1163 0.6975 -0.7071
+vn -0.5883 -0.3921 -0.7072
+vn -0.5267 -0.4718 -0.7071
+vn -0.4603 -0.5369 -0.7070
+vn 0.5521 -0.4417 -0.7072
+vn 0.6707 -0.2236 -0.7072
+vn 0.6679 -0.2323 -0.7071
+vn 0.3162 0.6326 -0.7070
+vn -0.4573 0.5394 -0.7071
+vn 0.5908 0.7877 -0.1745
+vn -0.6963 0.6963 -0.1745
+vn -0.9804 0.0915 -0.1745
+vn -0.6963 -0.6962 -0.1746
+vn -0.8193 0.5461 -0.1746
+vn -0.6875 -0.7049 -0.1746
+vn -0.0174 -0.9845 -0.1746
+vn 0.6963 -0.6962 -0.1746
+vn 0.7877 0.5908 -0.1745
+vn 0.7500 0.6380 -0.1745
+vn -0.5461 0.8193 -0.1746
+vn 0.6962 0.6962 -0.1746
+vn -0.1718 0.9695 -0.1746
+vn -0.6963 0.6962 -0.1746
+vn 0.5527 0.8149 -0.1746
+vn 0.6962 0.6963 -0.1746
+vn 0.9608 0.2153 -0.1746
+vn 0.7335 -0.6569 -0.1746
+vn 0.9621 -0.2096 -0.1746
+vn 0.6151 0.7689 -0.1746
+vn -0.6024 0.7789 -0.1745
+vn 0.5908 0.7877 0.1745
+vn -0.6963 0.6963 0.1745
+vn -0.9804 0.0915 0.1745
+vn -0.6963 -0.6962 0.1746
+vn -0.8193 0.5461 0.1746
+vn -0.6875 -0.7049 0.1746
+vn -0.0174 -0.9845 0.1746
+vn 0.6963 -0.6962 0.1746
+vn 0.7877 0.5908 0.1745
+vn 0.7500 0.6380 0.1745
+vn -0.5461 0.8193 0.1746
+vn 0.6962 0.6962 0.1746
+vn -0.1718 0.9695 0.1746
+vn -0.6963 0.6962 0.1746
+vn 0.5527 0.8149 0.1746
+vn 0.6962 0.6963 0.1746
+vn 0.9608 0.2153 0.1746
+vn 0.7335 -0.6569 0.1746
+vn 0.9621 -0.2096 0.1746
+vn 0.6151 0.7689 0.1746
+vn -0.6024 0.7789 0.1745
+vn -0.5882 0.8088 0.0000
+vn -0.1961 -0.9806 0.0000
+vn -0.6000 -0.8000 0.0000
+vn -0.0294 -0.9996 0.0000
+vn 0.8000 0.6000 0.0000
+vn 0.7617 0.6479 0.0000
+vn -0.6174 0.7866 0.0000
+vn -0.4159 0.5719 0.7071
+vn -0.1387 -0.6934 0.7071
+vn -0.4243 -0.5657 0.7071
+vn -0.0208 -0.7067 0.7073
+vn 0.5657 0.4243 0.7071
+vn 0.5385 0.4581 0.7072
+vn -0.4366 0.5562 0.7071
+vn -0.4159 0.5719 -0.7071
+vn -0.1387 -0.6934 -0.7071
+vn -0.4243 -0.5657 -0.7071
+vn -0.0208 -0.7067 -0.7073
+vn 0.5657 0.4243 -0.7071
+vn 0.5385 0.4581 -0.7072
+vn -0.4366 0.5562 -0.7071
+vn -0.8320 0.5548 0.0000
+vn -0.7944 0.6075 0.0000
+vn -0.7029 -0.7113 0.0000
+vn -0.6941 -0.7199 0.0000
+vn -0.3162 -0.9487 0.0000
+vn 0.9697 0.2445 0.0000
+vn 0.9899 -0.1414 0.0000
+vn 0.9762 0.2169 0.0000
+vn 0.6246 0.7809 0.0000
+vn 0.1962 0.9806 0.0000
+vn -0.9923 0.1240 0.0000
+vn -0.5883 0.3922 0.7072
+vn -0.5616 0.4295 0.7072
+vn -0.4970 -0.5029 0.7072
+vn -0.4908 -0.5090 0.7072
+vn -0.2238 -0.6708 0.7070
+vn 0.6934 -0.1387 0.7071
+vn 0.6858 0.1729 0.7070
+vn 0.7001 -0.1000 0.7070
+vn 0.6903 0.1534 0.7071
+vn 0.4417 0.5521 0.7072
+vn 0.1388 0.6935 0.7070
+vn -0.7016 0.0877 0.7071
+vn -0.5883 0.3922 -0.7072
+vn -0.5616 0.4295 -0.7072
+vn -0.4970 -0.5029 -0.7072
+vn -0.4908 -0.5090 -0.7072
+vn -0.2238 -0.6708 -0.7070
+vn 0.6934 -0.1387 -0.7071
+vn 0.6858 0.1729 -0.7070
+vn 0.7001 -0.1000 -0.7070
+vn 0.6903 0.1534 -0.7071
+vn 0.4417 0.5521 -0.7072
+vn 0.1388 0.6935 -0.7070
+vn -0.7016 0.0877 -0.7071
+vn -0.9864 0.1644 0.0000
+vn -0.9968 0.0795 0.0000
+vn 0.7944 -0.6074 0.0000
+vn 0.9192 -0.3939 0.0000
+vn 0.9900 0.1414 0.0000
+vn 0.8598 0.5105 0.0000
+vn 0.8849 0.4657 0.0000
+vn -0.4474 0.8943 0.0000
+vn -0.6974 0.1162 0.7072
+vn -0.7048 0.0562 0.7071
+vn -0.6707 0.2235 0.7073
+vn -0.4999 -0.5000 0.7071
+vn 0.5617 -0.4295 0.7071
+vn 0.6500 -0.2786 0.7071
+vn 0.7000 0.1000 0.7071
+vn 0.6080 0.3610 0.7072
+vn 0.6258 0.3293 0.7071
+vn -0.3162 0.6325 0.7071
+vn 0.4999 0.5000 0.7072
+vn -0.4999 0.5000 0.7071
+vn -0.6974 0.1162 -0.7072
+vn -0.7048 0.0562 -0.7071
+vn -0.6707 0.2235 -0.7073
+vn -0.4999 -0.5000 -0.7071
+vn 0.5617 -0.4295 -0.7071
+vn 0.6500 -0.2786 -0.7071
+vn 0.7000 0.1000 -0.7071
+vn 0.6080 0.3610 -0.7072
+vn 0.6258 0.3293 -0.7071
+vn -0.3162 0.6325 -0.7071
+vn 0.4999 0.5000 -0.7072
+vn -0.4999 0.5000 -0.7071
+vn -0.7593 0.6508 0.0000
+vn -0.6024 -0.7982 0.0000
+vn -0.5734 -0.8193 0.0000
+vn -0.1962 -0.9806 0.0000
+vn 0.6145 -0.7889 0.0000
+vn -0.1745 0.9847 0.0000
+vn -0.5369 0.4602 0.7071
+vn -0.4260 -0.5644 0.7071
+vn -0.4055 -0.5793 0.7071
+vn 0.4345 -0.5578 0.7071
+vn 0.5001 0.4999 0.7071
+vn -0.1234 0.6962 0.7071
+vn -0.5369 0.4602 -0.7071
+vn -0.4260 -0.5644 -0.7071
+vn -0.4055 -0.5793 -0.7071
+vn 0.4345 -0.5578 -0.7071
+vn 0.5001 0.4999 -0.7071
+vn -0.1234 0.6962 -0.7071
+vn -0.8898 -0.4563 0.0000
+vn -0.8575 -0.5145 0.0000
+vn -0.2425 -0.9702 0.0000
+vn 0.7498 -0.6616 0.0000
+vn 0.9798 -0.2000 0.0000
+vn 0.8321 -0.5547 0.0000
+vn -0.6100 0.7924 0.0000
+vn -0.6292 -0.3227 0.7071
+vn -0.6064 -0.3638 0.7071
+vn -0.1715 -0.6860 0.7071
+vn 0.5302 -0.4678 0.7071
+vn 0.6928 -0.1414 0.7071
+vn 0.5884 -0.3921 0.7071
+vn 0.4417 0.5522 0.7071
+vn -0.4314 0.5604 0.7070
+vn -0.6292 -0.3227 -0.7071
+vn -0.6064 -0.3638 -0.7071
+vn -0.1715 -0.6860 -0.7071
+vn 0.5302 -0.4678 -0.7071
+vn 0.6928 -0.1414 -0.7071
+vn 0.5884 -0.3921 -0.7071
+vn 0.4417 0.5522 -0.7071
+vn -0.4314 0.5604 -0.7070
+vn -0.9697 -0.2445 0.0000
+vn -0.9487 0.3163 0.0000
+vn -0.0301 -0.9995 0.0000
+vn 0.8946 0.4470 0.0000
+vn 0.3511 0.9363 0.0000
+vn 0.9864 0.1644 0.0000
+vn 0.5798 0.8148 0.0000
+vn 0.6459 0.7634 0.0000
+vn 0.4472 0.8944 0.0000
+vn 0.5631 0.8264 0.0000
+vn 0.6644 0.7474 0.0000
+vn -0.9701 0.2425 0.0000
+vn -0.6860 -0.1729 0.7068
+vn -0.6708 0.2236 0.7072
+vn -0.0213 -0.7070 0.7068
+vn 0.6326 0.3160 0.7071
+vn 0.2483 0.6621 0.7071
+vn 0.6975 0.1162 0.7071
+vn 0.4099 0.5761 0.7072
+vn 0.4567 0.5397 0.7072
+vn 0.3162 0.6325 0.7071
+vn 0.3981 0.5843 0.7072
+vn 0.4698 0.5285 0.7071
+vn -0.6861 0.1715 0.7070
+vn -0.6860 -0.1729 -0.7068
+vn -0.6708 0.2236 -0.7072
+vn -0.0213 -0.7070 -0.7068
+vn 0.6326 0.3160 -0.7071
+vn 0.2483 0.6621 -0.7071
+vn 0.6975 0.1162 -0.7071
+vn 0.4099 0.5761 -0.7072
+vn 0.4567 0.5397 -0.7072
+vn 0.3162 0.6325 -0.7071
+vn 0.3981 0.5843 -0.7072
+vn 0.4698 0.5285 -0.7071
+vn -0.6861 0.1715 -0.7070
+vn -0.0541 0.9832 -0.1745
+vn -0.8549 -0.4885 -0.1746
+vn 0.0000 0.9846 -0.1746
+vn -0.4885 -0.8549 -0.1746
+vn 0.6963 -0.6963 -0.1745
+vn -0.0538 -0.9832 -0.1745
+vn 0.7689 0.6151 -0.1746
+vn 0.7293 0.6615 -0.1746
+vn -0.0541 0.9832 0.1745
+vn -0.8549 -0.4885 0.1746
+vn 0.0000 0.9846 0.1746
+vn -0.4885 -0.8549 0.1746
+vn 0.6963 -0.6963 0.1745
+vn -0.0538 -0.9832 0.1745
+vn 0.7689 0.6151 0.1746
+vn 0.7293 0.6615 0.1746
+vn -0.8682 -0.4962 0.0000
+vn -0.4472 -0.8944 0.0000
+vn -0.6508 -0.7593 0.0000
+vn -0.8400 -0.5425 0.0000
+vn 0.7838 -0.6210 0.0000
+vn 0.9806 0.1960 0.0000
+vn -0.0653 0.9979 0.0000
+vn -0.6140 -0.3508 0.7071
+vn -0.5521 0.4417 0.7072
+vn -0.3162 -0.6324 0.7072
+vn -0.4602 -0.5369 0.7070
+vn -0.5940 -0.3837 0.7070
+vn 0.5543 -0.4391 0.7071
+vn 0.6934 0.1386 0.7071
+vn -0.0462 0.7055 0.7072
+vn -0.6140 -0.3508 -0.7071
+vn -0.5521 0.4417 -0.7072
+vn -0.3162 -0.6324 -0.7072
+vn -0.4602 -0.5369 -0.7070
+vn -0.5940 -0.3837 -0.7070
+vn 0.5543 -0.4391 -0.7071
+vn 0.6934 0.1386 -0.7071
+vn -0.0462 0.7055 -0.7072
+vn -0.6140 -0.7893 0.0000
+vn -0.4842 -0.8750 0.0000
+vn 0.4706 0.8824 0.0000
+vn 0.8400 0.5425 0.0000
+vn 0.5433 0.8396 0.0000
+vn -0.4341 -0.5581 0.7072
+vn -0.3424 -0.6187 0.7071
+vn 0.3327 0.6239 0.7071
+vn 0.5940 0.3836 0.7071
+vn 0.3842 0.5937 0.7071
+vn -0.4341 -0.5581 -0.7072
+vn -0.3424 -0.6187 -0.7071
+vn 0.3327 0.6239 -0.7071
+vn 0.5940 0.3836 -0.7071
+vn 0.3842 0.5937 -0.7071
+vn -0.8000 0.6000 0.0000
+vn -0.7788 0.6273 0.0000
+vn -0.5547 -0.8321 0.0000
+vn -0.0578 -0.9983 0.0000
+vn 0.7809 0.6247 0.0000
+vn 0.7407 0.6718 0.0000
+vn -0.5657 0.4243 0.7071
+vn -0.5507 0.4436 0.7071
+vn -0.3922 -0.5883 0.7071
+vn -0.0408 -0.7060 0.7071
+vn 0.5521 0.4417 0.7072
+vn 0.5238 0.4750 0.7071
+vn -0.5657 0.4243 -0.7071
+vn -0.5507 0.4436 -0.7071
+vn -0.3922 -0.5883 -0.7071
+vn -0.0408 -0.7060 -0.7071
+vn 0.5521 0.4417 -0.7072
+vn 0.5238 0.4750 -0.7071
+vn -0.9501 0.2545 -0.1803
+vn -0.5997 -0.7796 -0.1803
+vn 0.7086 -0.6822 -0.1803
+vn 0.8716 0.4558 -0.1803
+vn 0.4663 0.8660 -0.1803
+vn -0.6722 0.7181 -0.1803
+vn -0.9501 0.2545 0.1803
+vn -0.5997 -0.7796 0.1803
+vn 0.7086 -0.6822 0.1803
+vn 0.8716 0.4558 0.1803
+vn 0.4663 0.8660 0.1803
+vn -0.6722 0.7181 0.1803
+vn -0.9654 0.2607 0.0000
+vn -0.9744 0.2249 0.0000
+vn -0.5591 -0.8291 0.0000
+vn 0.2425 -0.9702 0.0000
+vn 0.9710 -0.2390 0.0000
+vn 0.9648 -0.2631 0.0000
+vn 0.9762 -0.2170 0.0000
+vn -0.6834 0.7300 0.0000
+vn -0.6827 0.1843 0.7071
+vn -0.6890 0.1590 0.7071
+vn -0.3953 -0.5862 0.7071
+vn -0.4527 -0.5432 0.7071
+vn 0.1714 -0.6860 0.7071
+vn 0.6709 -0.2236 0.7071
+vn 0.6866 -0.1690 0.7071
+vn 0.6822 -0.1861 0.7071
+vn 0.6903 -0.1534 0.7071
+vn 0.4998 0.5001 0.7072
+vn -0.4833 0.5162 0.7071
+vn -0.6827 0.1843 -0.7071
+vn -0.6890 0.1590 -0.7071
+vn -0.3953 -0.5862 -0.7071
+vn -0.4527 -0.5432 -0.7071
+vn 0.1714 -0.6860 -0.7071
+vn 0.6709 -0.2236 -0.7071
+vn 0.6866 -0.1690 -0.7071
+vn 0.6822 -0.1861 -0.7071
+vn 0.6903 -0.1534 -0.7071
+vn 0.4998 0.5001 -0.7072
+vn -0.4833 0.5162 -0.7071
+vn -0.9674 0.2533 0.0000
+vn -0.9285 0.3714 0.0000
+vn -0.4471 0.8945 0.0000
+vn 0.6823 -0.7311 0.0000
+vn 0.7250 -0.6887 0.0000
+vn 0.8862 0.4634 0.0000
+vn -0.6841 0.1791 0.7070
+vn -0.6566 0.2626 0.7070
+vn -0.3162 0.6326 0.7070
+vn 0.4824 -0.5169 0.7071
+vn 0.5127 -0.4870 0.7071
+vn 0.6266 0.3277 0.7071
+vn 0.4999 0.5000 0.7071
+vn -0.6841 0.1791 -0.7070
+vn -0.6566 0.2626 -0.7070
+vn -0.3162 0.6326 -0.7070
+vn 0.4824 -0.5169 -0.7071
+vn 0.5127 -0.4870 -0.7071
+vn 0.6266 0.3277 -0.7071
+vn 0.4999 0.5000 -0.7071
+vn -0.6638 -0.6711 -0.3303
+vn -0.0344 -0.9432 -0.3304
+vn 0.5897 -0.7370 -0.3303
+vn 0.3636 0.8710 -0.3304
+vn -0.6674 0.6674 -0.3304
+vn -0.6638 -0.6711 0.3303
+vn -0.0344 -0.9432 0.3304
+vn 0.5897 -0.7370 0.3303
+vn 0.3636 0.8710 0.3304
+vn -0.6674 0.6674 0.3304
+vn -0.7032 -0.7110 0.0000
+vn -0.0365 -0.9993 0.0000
+vn 0.6246 -0.7809 0.0000
+vn 0.6403 0.7682 0.0000
+vn 0.3764 0.9265 0.0000
+vn -0.4972 -0.5027 0.7071
+vn -0.0258 -0.7066 0.7071
+vn 0.4417 -0.5522 0.7070
+vn 0.4527 0.5432 0.7071
+vn 0.2661 0.6551 0.7071
+vn -0.4972 -0.5027 -0.7071
+vn -0.0258 -0.7066 -0.7071
+vn 0.4417 -0.5522 -0.7070
+vn 0.4527 0.5432 -0.7071
+vn 0.2661 0.6551 -0.7071
+vn -0.7753 -0.5384 -0.3303
+vn -0.0866 -0.9399 -0.3303
+vn 0.5896 -0.7371 -0.3303
+vn 0.5047 0.7976 -0.3303
+vn -0.8442 0.4221 -0.3304
+vn -0.7753 -0.5384 0.3303
+vn -0.0866 -0.9399 0.3303
+vn 0.5896 -0.7371 0.3303
+vn 0.5047 0.7976 0.3303
+vn -0.8442 0.4221 0.3304
+vn -0.8945 -0.4470 0.0000
+vn -0.8301 -0.5576 0.0000
+vn -0.0917 -0.9958 0.0000
+vn 0.6247 0.7809 0.0000
+vn 0.5261 0.8504 0.0000
+vn -0.6326 -0.3161 0.7071
+vn -0.5871 -0.3943 0.7070
+vn -0.5001 -0.5001 0.7070
+vn -0.0649 -0.7041 0.7071
+vn 0.4416 -0.5522 0.7072
+vn 0.3720 0.6013 0.7071
+vn -0.6326 -0.3161 -0.7071
+vn -0.5871 -0.3943 -0.7070
+vn -0.5001 -0.5001 -0.7070
+vn -0.0649 -0.7041 -0.7071
+vn 0.4416 -0.5522 -0.7072
+vn 0.3720 0.6013 -0.7071
+vn -0.5721 -0.5236 -0.6313
+vn -0.5284 -0.5896 -0.6109
+vn -0.4653 0.6674 -0.5815
+vn 0.4390 0.8842 -0.1598
+vn -0.3946 0.7370 -0.5487
+vn -0.5385 -0.5753 -0.6157
+vn -0.0401 -0.9227 -0.3833
+vn 0.0405 -0.9375 -0.3456
+vn 0.7445 -0.6673 -0.0175
+vn 0.8738 0.4843 0.0430
+vn 0.7445 -0.6674 -0.0172
+vn 0.7445 0.6674 -0.0173
+vn 0.5188 0.8460 -0.1227
+vn -0.4652 0.6674 -0.5816
+vn -0.8513 -0.5237 -0.0325
+vn -0.8076 -0.5896 -0.0122
+vn -0.7445 0.6674 0.0173
+vn 0.1598 0.8842 0.4390
+vn -0.6740 0.7371 0.0502
+vn -0.8178 -0.5753 -0.0170
+vn -0.3194 -0.9228 0.2156
+vn -0.2388 -0.9375 0.2532
+vn 0.4653 -0.6674 0.5815
+vn 0.5947 0.4843 0.6416
+vn 0.4653 -0.6675 0.5814
+vn 0.4652 0.6674 0.5815
+vn 0.2395 0.8461 0.4763
+vn -0.7445 0.6674 0.0174
+vn 0.4226 -0.0001 -0.9063
+vn -0.4227 -0.0001 0.9063
+vn 0.4228 0.0004 -0.9062
+vn -0.4225 0.0003 0.9064
+vn 0.4226 0.0000 -0.9063
+vn -0.4226 -0.0000 0.9063
+vn 0.4225 -0.0001 -0.9064
+vn -0.4214 0.0010 0.9069
+vn -0.4231 -0.0011 0.9061
+vn 0.4227 0.0003 -0.9063
+vn -0.4228 -0.0003 0.9062
+vn -0.4225 0.0002 0.9064
+vn -0.4226 0.0001 0.9063
+vn 0.4225 -0.0001 -0.9063
+vn -0.4234 -0.0010 0.9059
+vn -0.4223 0.0004 0.9064
+vn -0.4226 -0.0001 0.9063
+vn 0.4219 -0.0006 -0.9067
+vn -0.4163 0.0055 0.9092
+vn -0.7540 -0.5545 -0.3520
+vn -0.7076 -0.6247 -0.3302
+vn -0.6408 0.7071 -0.2989
+vn -0.5585 -0.7875 -0.2606
+vn -0.3628 -0.9164 -0.1694
+vn -0.4866 -0.8437 -0.2269
+vn 0.5027 -0.8321 0.2343
+vn 0.5803 -0.7682 0.2704
+vn 0.7079 -0.6247 0.3295
+vn 0.6410 0.7070 0.2986
+vn 0.4017 0.8964 0.1873
+vn -0.6406 0.7072 -0.2991
+vn -0.8322 -0.3920 0.3923
+vn -0.7992 -0.4417 0.4076
+vn -0.7520 0.5000 0.4296
+vn -0.6938 -0.5568 0.4567
+vn -0.5554 -0.6480 0.5212
+vn -0.6429 -0.5966 0.4804
+vn -0.2991 -0.7071 0.6407
+vn 0.0567 -0.5883 0.8067
+vn 0.1114 -0.5432 0.8322
+vn 0.2016 -0.4416 0.8743
+vn 0.1544 0.4999 0.8522
+vn -0.0148 0.6339 0.7733
+vn -0.7519 0.5000 0.4297
+vn 0.4246 0.0044 -0.9054
+vn 0.4231 0.0010 -0.9061
+vn -0.4227 -0.0003 0.9063
+vn 0.4227 0.0001 -0.9063
+vn 0.4224 -0.0002 -0.9064
+vn -0.4225 0.0001 0.9063
+vn 0.4225 -0.0002 -0.9064
+vn 0.4163 -0.0056 -0.9092
+vn -0.4231 -0.0004 0.9061
+vn -0.2344 -0.3920 -0.8896
+vn -0.2015 -0.4417 -0.8743
+vn -0.1543 0.5000 -0.8522
+vn -0.0962 -0.5569 -0.8250
+vn 0.0422 -0.6480 -0.7605
+vn -0.0452 -0.5966 -0.8013
+vn 0.2988 -0.7071 -0.6409
+vn 0.6544 -0.5883 -0.4751
+vn 0.7091 -0.5432 -0.4496
+vn 0.7993 -0.4416 -0.4075
+vn 0.7521 0.4999 -0.4295
+vn 0.5829 0.6338 -0.5085
+vn -0.1543 0.4999 -0.8522
+vn -0.7542 -0.5546 -0.3515
+vn -0.7080 -0.6247 -0.3294
+vn -0.6409 0.7072 -0.2987
+vn -0.5586 -0.7875 -0.2605
+vn -0.3629 -0.9164 -0.1690
+vn 0.5027 -0.8321 0.2344
+vn 0.7078 -0.6247 0.3299
+vn 0.6410 0.7070 0.2987
+vn 0.4018 0.8964 0.1872
+vn -0.6408 0.7072 -0.2987
+vn -0.4227 -0.0004 0.9063
+vn 0.4225 -0.0003 -0.9064
+vn 0.4228 0.0006 -0.9062
+vn -0.4221 0.0014 0.9066
+vn -0.4235 -0.0025 0.9059
+vn 0.4228 0.0002 -0.9062
+vn -0.4261 -0.0029 0.9047
+vn -0.7542 -0.5546 -0.3517
+vn -0.7234 -0.6022 -0.3376
+vn -0.6408 -0.7071 -0.2990
+vn 0.5868 -0.7619 0.2740
+vn 0.8105 0.4472 0.3782
+vn 0.4052 0.8945 0.1891
+vn 0.3628 0.9164 0.1694
+vn 0.5585 0.7875 0.2606
+vn -0.5802 0.7682 -0.2706
+vn 0.3142 0.9380 0.1465
+vn -0.6409 0.7071 -0.2987
+vn -0.8321 -0.3922 0.3922
+vn -0.8104 -0.4258 0.4024
+vn -0.7520 -0.5000 0.4296
+vn 0.1162 -0.5388 0.8344
+vn 0.2745 0.3159 0.9082
+vn -0.0123 0.6325 0.7745
+vn -0.0423 0.6479 0.7605
+vn 0.0961 0.5568 0.8250
+vn -0.7091 0.5431 0.4496
+vn -0.0767 0.6632 0.7445
+vn -0.7520 0.4999 0.4296
+vn 0.4231 0.0015 -0.9061
+vn 0.4227 0.0002 -0.9063
+vn -0.4227 -0.0002 0.9063
+vn 0.4226 0.0001 -0.9063
+vn -0.4228 -0.0006 0.9062
+vn 0.4230 0.0010 -0.9061
+vn -0.4228 -0.0002 0.9062
+vn 0.4165 -0.0051 -0.9091
+vn -0.4210 0.0013 0.9070
+vn -0.2345 -0.3920 -0.8896
+vn -0.2127 -0.4258 -0.8794
+vn -0.1544 -0.5001 -0.8521
+vn 0.7139 -0.5389 -0.4472
+vn 0.8720 0.3163 -0.3735
+vn 0.5854 0.6325 -0.5072
+vn 0.5554 0.6480 -0.5212
+vn 0.6938 0.5568 -0.4567
+vn -0.1114 0.5431 -0.8322
+vn 0.5210 0.6632 -0.5374
+vn -0.7542 -0.5544 -0.3519
+vn -0.7236 -0.6022 -0.3372
+vn -0.6410 -0.7071 -0.2985
+vn 0.5870 -0.7619 0.2737
+vn 0.8107 0.4471 0.3780
+vn 0.4053 0.8945 0.1888
+vn 0.3629 0.9164 0.1690
+vn 0.5586 0.7875 0.2604
+vn 0.3142 0.9380 0.1464
+vn -0.4227 0.0001 0.9063
+vn 0.4227 -0.0001 -0.9063
+vn -0.4230 0.0005 0.9061
+vn 0.4225 0.0002 -0.9064
+vn 0.4228 -0.0003 -0.9062
+vn -0.4221 -0.0007 0.9065
+vn -0.5027 0.8320 -0.2344
+vn -0.6411 0.7071 -0.2984
+vn -0.5794 0.7690 -0.2701
+vn -0.6962 0.6402 -0.3247
+vn -0.6409 -0.7071 -0.2989
+vn -0.1908 -0.9776 -0.0889
+vn -0.1107 -0.9925 -0.0516
+vn 0.6407 -0.7071 0.2991
+vn 0.8105 0.4471 0.3784
+vn 0.7820 0.5055 0.3647
+vn 0.7078 0.6247 0.3297
+vn -0.5830 0.7657 -0.2716
+vn -0.6543 0.5884 0.4751
+vn -0.2988 0.7071 0.6409
+vn -0.7520 0.5000 0.4295
+vn -0.7085 0.5437 0.4499
+vn -0.7911 0.4526 0.4114
+vn -0.7520 -0.4999 0.4296
+vn -0.4338 -0.6912 0.5780
+vn -0.3771 -0.7018 0.6044
+vn 0.1543 -0.5000 0.8522
+vn 0.2744 0.3162 0.9081
+vn 0.2542 0.3574 0.8987
+vn 0.2017 0.4418 0.8742
+vn -0.7110 0.5414 0.4487
+vn 0.4222 -0.0005 -0.9065
+vn 0.4221 0.0007 -0.9065
+vn 0.4230 -0.0005 -0.9061
+vn -0.4225 -0.0002 0.9064
+vn 0.4229 -0.0004 -0.9062
+vn 0.4229 -0.0003 -0.9062
+vn -0.4228 0.0002 0.9062
+vn 0.4224 0.0003 -0.9064
+vn -0.4223 -0.0004 0.9065
+vn -0.0566 0.5883 -0.8066
+vn 0.2990 0.7071 -0.6408
+vn -0.1544 0.5000 -0.8521
+vn -0.1108 0.5437 -0.8319
+vn -0.1934 0.4526 -0.8705
+vn -0.1543 -0.4999 -0.8522
+vn 0.1639 -0.6913 -0.7037
+vn 0.2206 -0.7018 -0.6774
+vn 0.7519 -0.5000 -0.4296
+vn 0.8518 0.3574 -0.3831
+vn 0.7992 0.4417 -0.4076
+vn -0.1134 0.5415 -0.8330
+vn -0.5026 0.8321 -0.2347
+vn -0.6407 0.7071 -0.2991
+vn -0.5793 0.7690 -0.2703
+vn -0.6964 0.6402 -0.3244
+vn -0.6410 -0.7070 -0.2988
+vn -0.1908 -0.9776 -0.0890
+vn 0.6409 -0.7071 0.2987
+vn 0.8109 0.4471 0.3775
+vn 0.7075 0.6247 0.3303
+vn -0.5828 0.7657 -0.2721
+vn -0.8513 -0.5237 0.0325
+vn -0.8076 -0.5896 0.0122
+vn -0.7445 0.6674 -0.0173
+vn 0.1598 0.8842 -0.4390
+vn -0.6740 0.7371 -0.0502
+vn -0.8178 -0.5753 0.0170
+vn -0.3194 -0.9228 -0.2156
+vn -0.2388 -0.9375 -0.2532
+vn 0.4653 -0.6674 -0.5815
+vn 0.5947 0.4843 -0.6416
+vn 0.4653 -0.6675 -0.5814
+vn 0.4652 0.6674 -0.5815
+vn 0.2395 0.8461 -0.4763
+vn -0.7445 0.6674 -0.0174
+vn -0.5721 -0.5236 0.6313
+vn -0.5284 -0.5896 0.6109
+vn -0.4653 0.6674 0.5815
+vn 0.4390 0.8842 0.1598
+vn -0.3946 0.7370 0.5487
+vn -0.5385 -0.5753 0.6157
+vn -0.0401 -0.9227 0.3833
+vn 0.0405 -0.9375 0.3456
+vn 0.7445 -0.6673 0.0175
+vn 0.8738 0.4843 -0.0430
+vn 0.7445 -0.6674 0.0172
+vn 0.7445 0.6674 0.0173
+vn 0.5188 0.8460 0.1227
+vn -0.4652 0.6674 0.5816
+vn -0.4227 -0.0001 -0.9063
+vn 0.4226 -0.0001 0.9063
+vn -0.4225 0.0003 -0.9064
+vn 0.4228 0.0004 0.9062
+vn -0.4226 -0.0000 -0.9063
+vn 0.4226 0.0000 0.9063
+vn -0.4214 0.0010 -0.9069
+vn 0.4225 -0.0001 0.9064
+vn 0.4246 0.0044 0.9054
+vn -0.4227 -0.0003 -0.9063
+vn 0.4231 0.0010 0.9061
+vn -0.4226 0.0001 -0.9063
+vn 0.4227 0.0001 0.9063
+vn -0.4225 0.0001 -0.9063
+vn 0.4224 -0.0002 0.9064
+vn 0.4225 -0.0002 0.9064
+vn -0.4231 -0.0004 -0.9061
+vn 0.4163 -0.0056 0.9092
+vn -0.7542 -0.5546 0.3515
+vn -0.7080 -0.6247 0.3294
+vn -0.6409 0.7072 0.2987
+vn -0.5586 -0.7875 0.2605
+vn -0.3629 -0.9164 0.1690
+vn -0.4866 -0.8437 0.2269
+vn 0.5027 -0.8321 -0.2344
+vn 0.5803 -0.7682 -0.2704
+vn 0.7078 -0.6247 -0.3299
+vn 0.6410 0.7070 -0.2987
+vn 0.4018 0.8964 -0.1872
+vn -0.6408 0.7072 0.2987
+vn -0.2344 -0.3920 0.8896
+vn -0.2015 -0.4417 0.8743
+vn -0.1543 0.5000 0.8522
+vn -0.0962 -0.5569 0.8250
+vn 0.0422 -0.6480 0.7605
+vn -0.0452 -0.5966 0.8013
+vn 0.2988 -0.7071 0.6409
+vn 0.6544 -0.5883 0.4751
+vn 0.7091 -0.5432 0.4496
+vn 0.7993 -0.4416 0.4075
+vn 0.7521 0.4999 0.4295
+vn 0.5829 0.6338 0.5085
+vn -0.1543 0.4999 0.8522
+vn -0.4231 -0.0011 -0.9061
+vn -0.4228 -0.0003 -0.9062
+vn 0.4227 0.0003 0.9063
+vn -0.4225 0.0002 -0.9064
+vn -0.4234 -0.0010 -0.9059
+vn 0.4225 -0.0001 0.9063
+vn -0.4223 0.0004 -0.9064
+vn -0.4226 -0.0001 -0.9063
+vn -0.4163 0.0055 -0.9092
+vn 0.4219 -0.0006 0.9067
+vn -0.8322 -0.3920 -0.3923
+vn -0.7992 -0.4417 -0.4076
+vn -0.7520 0.5000 -0.4296
+vn -0.6938 -0.5568 -0.4567
+vn -0.5554 -0.6480 -0.5212
+vn -0.6429 -0.5966 -0.4804
+vn -0.2991 -0.7071 -0.6407
+vn 0.0567 -0.5883 -0.8067
+vn 0.1114 -0.5432 -0.8322
+vn 0.2016 -0.4416 -0.8743
+vn 0.1544 0.4999 -0.8522
+vn -0.0148 0.6339 -0.7733
+vn -0.7519 0.5000 -0.4297
+vn -0.7540 -0.5545 0.3520
+vn -0.7076 -0.6247 0.3302
+vn -0.6408 0.7071 0.2989
+vn -0.5585 -0.7875 0.2606
+vn -0.3628 -0.9164 0.1694
+vn 0.5027 -0.8321 -0.2343
+vn 0.7079 -0.6247 -0.3295
+vn 0.6410 0.7070 -0.2986
+vn 0.4017 0.8964 -0.1873
+vn -0.6406 0.7072 0.2991
+vn 0.4231 0.0015 0.9061
+vn -0.4227 -0.0002 -0.9063
+vn 0.4227 0.0002 0.9063
+vn 0.4226 0.0001 0.9063
+vn -0.4228 -0.0006 -0.9062
+vn 0.4230 0.0010 0.9061
+vn -0.4228 -0.0002 -0.9062
+vn -0.4210 0.0013 -0.9070
+vn 0.4165 -0.0051 0.9091
+vn -0.7542 -0.5544 0.3519
+vn -0.7236 -0.6022 0.3372
+vn -0.6410 -0.7071 0.2985
+vn 0.5870 -0.7619 -0.2737
+vn 0.8107 0.4471 -0.3780
+vn 0.4053 0.8945 -0.1888
+vn 0.3629 0.9164 -0.1690
+vn 0.5586 0.7875 -0.2604
+vn -0.5802 0.7682 0.2706
+vn 0.3142 0.9380 -0.1464
+vn -0.6409 0.7071 0.2987
+vn -0.2345 -0.3920 0.8896
+vn -0.2127 -0.4258 0.8794
+vn -0.1544 -0.5001 0.8521
+vn 0.7139 -0.5389 0.4472
+vn 0.8720 0.3163 0.3735
+vn 0.5854 0.6325 0.5072
+vn 0.5554 0.6480 0.5212
+vn 0.6938 0.5568 0.4567
+vn -0.1114 0.5431 0.8322
+vn 0.5210 0.6632 0.5374
+vn -0.4227 -0.0004 -0.9063
+vn 0.4225 -0.0003 0.9064
+vn -0.4221 0.0014 -0.9066
+vn 0.4228 0.0006 0.9062
+vn -0.4235 -0.0025 -0.9059
+vn 0.4228 0.0002 0.9062
+vn -0.4261 -0.0029 -0.9047
+vn -0.8321 -0.3922 -0.3922
+vn -0.8104 -0.4258 -0.4024
+vn -0.7520 -0.5000 -0.4296
+vn 0.1162 -0.5388 -0.8344
+vn 0.2745 0.3159 -0.9082
+vn -0.0123 0.6325 -0.7745
+vn -0.0423 0.6479 -0.7605
+vn 0.0961 0.5568 -0.8250
+vn -0.7091 0.5431 -0.4496
+vn -0.0767 0.6632 -0.7445
+vn -0.7520 0.4999 -0.4296
+vn -0.7542 -0.5546 0.3517
+vn -0.7234 -0.6022 0.3376
+vn -0.6408 -0.7071 0.2990
+vn 0.5868 -0.7619 -0.2740
+vn 0.8105 0.4472 -0.3782
+vn 0.4052 0.8945 -0.1891
+vn 0.3628 0.9164 -0.1694
+vn 0.5585 0.7875 -0.2606
+vn 0.3142 0.9380 -0.1465
+vn 0.4222 -0.0005 0.9065
+vn 0.4221 0.0007 0.9065
+vn -0.4225 -0.0002 -0.9064
+vn 0.4230 -0.0005 0.9061
+vn 0.4229 -0.0004 0.9062
+vn -0.4228 0.0002 -0.9062
+vn 0.4229 -0.0003 0.9062
+vn -0.4223 -0.0004 -0.9065
+vn 0.4224 0.0003 0.9064
+vn -0.5026 0.8321 0.2347
+vn -0.6407 0.7071 0.2991
+vn -0.5793 0.7690 0.2703
+vn -0.6964 0.6402 0.3244
+vn -0.6410 -0.7070 0.2988
+vn -0.1908 -0.9776 0.0890
+vn -0.1107 -0.9925 0.0516
+vn 0.6409 -0.7071 -0.2987
+vn 0.8109 0.4471 -0.3775
+vn 0.7820 0.5055 -0.3647
+vn 0.7075 0.6247 -0.3303
+vn -0.5828 0.7657 0.2721
+vn -0.0566 0.5883 0.8066
+vn 0.2990 0.7071 0.6408
+vn -0.1544 0.5000 0.8521
+vn -0.1108 0.5437 0.8319
+vn -0.1934 0.4526 0.8705
+vn -0.1543 -0.4999 0.8522
+vn 0.1639 -0.6913 0.7037
+vn 0.2206 -0.7018 0.6774
+vn 0.7519 -0.5000 0.4296
+vn 0.8518 0.3574 0.3831
+vn 0.7992 0.4417 0.4076
+vn -0.1134 0.5415 0.8330
+vn -0.4227 0.0001 -0.9063
+vn -0.4230 0.0005 -0.9061
+vn 0.4227 -0.0001 0.9063
+vn 0.4225 0.0002 0.9064
+vn -0.4221 -0.0007 -0.9065
+vn 0.4228 -0.0003 0.9062
+vn -0.6543 0.5884 -0.4751
+vn -0.2988 0.7071 -0.6409
+vn -0.7520 0.5000 -0.4295
+vn -0.7085 0.5437 -0.4499
+vn -0.7911 0.4526 -0.4114
+vn -0.7520 -0.4999 -0.4296
+vn -0.4338 -0.6912 -0.5780
+vn -0.3771 -0.7018 -0.6044
+vn 0.1543 -0.5000 -0.8522
+vn 0.2744 0.3162 -0.9081
+vn 0.2542 0.3574 -0.8987
+vn 0.2017 0.4418 -0.8742
+vn -0.7110 0.5414 -0.4487
+vn -0.5027 0.8320 0.2344
+vn -0.6411 0.7071 0.2984
+vn -0.5794 0.7690 0.2701
+vn -0.6962 0.6402 0.3247
+vn -0.6409 -0.7071 0.2989
+vn -0.1908 -0.9776 0.0889
+vn 0.6407 -0.7071 -0.2991
+vn 0.8105 0.4471 -0.3784
+vn 0.7078 0.6247 -0.3297
+vn -0.5830 0.7657 0.2716
+o head
+usemtl frame
+f 1//1 2//1 30//1 29//1
+f 2//2 3//2 31//2 30//2
+f 3//1 4//1 32//1 31//1
+f 4//3 5//3 33//3 32//3
+f 5//1 6//1 34//1 33//1
+f 6//4 7//4 35//4 34//4
+f 7//1 8//1 36//1 35//1
+f 8//5 9//5 37//5 36//5
+f 9//6 10//6 38//6 37//6
+f 10//7 11//7 39//7 38//7
+f 11//8 12//8 40//8 39//8
+f 12//9 13//9 41//9 40//9
+f 13//10 14//10 42//10 41//10
+f 14//11 15//11 43//11 42//11
+f 15//9 16//9 44//9 43//9
+f 16//7 17//7 45//7 44//7
+f 17//12 18//12 46//12 45//12
+f 18//13 19//13 47//13 46//13
+f 19//14 20//14 48//14 47//14
+f 20//15 21//15 49//15 48//15
+f 21//16 22//16 50//16 49//16
+f 22//17 23//17 51//17 50//17
+f 23//18 24//18 52//18 51//18
+f 24//19 25//19 53//19 52//19
+f 25//20 26//20 54//20 53//20
+f 26//21 27//21 55//21 54//21
+f 27//22 28//22 56//22 55//22
+f 28//18 1//18 29//18 56//18
+f 29//23 30//23 58//23 57//23
+f 30//24 31//24 59//24 58//24
+f 31//23 32//23 60//23 59//23
+f 32//25 33//25 61//25 60//25
+f 33//23 34//23 62//23 61//23
+f 34//26 35//26 63//26 62//26
+f 35//23 36//23 64//23 63//23
+f 36//27 37//27 65//27 64//27
+f 37//28 38//28 66//28 65//28
+f 38//29 39//29 67//29 66//29
+f 39//30 40//30 68//30 67//30
+f 40//31 41//31 69//31 68//31
+f 41//32 42//32 70//32 69//32
+f 42//33 43//33 71//33 70//33
+f 43//31 44//31 72//31 71//31
+f 44//29 45//29 73//29 72//29
+f 45//34 46//34 74//34 73//34
+f 46//35 47//35 75//35 74//35
+f 47//36 48//36 76//36 75//36
+f 48//37 49//37 77//37 76//37
+f 49//38 50//38 78//38 77//38
+f 50//39 51//39 79//39 78//39
+f 51//40 52//40 80//40 79//40
+f 52//41 53//41 81//41 80//41
+f 53//42 54//42 82//42 81//42
+f 54//43 55//43 83//43 82//43
+f 55//44 56//44 84//44 83//44
+f 56//40 29//40 57//40 84//40
+f 1//45 28//45 27//45
+f 83//46 84//46 57//46
+f 1//45 27//45 26//45
+f 82//46 83//46 57//46
+f 1//45 26//45 25//45
+f 81//46 82//46 57//46
+f 23//45 22//45 21//45
+f 77//46 78//46 79//46
+f 24//45 23//45 21//45
+f 77//46 79//46 80//46
+f 25//45 24//45 21//45
+f 77//46 80//46 81//46
+f 1//45 25//45 21//45
+f 77//46 81//46 57//46
+f 21//45 20//45 19//45
+f 75//46 76//46 77//46
+f 21//45 19//45 18//45
+f 74//46 75//46 77//46
+f 1//45 21//45 18//45
+f 74//46 77//46 57//46
+f 1//45 18//45 17//45
+f 73//46 74//46 57//46
+f 1//45 17//45 16//45
+f 72//46 73//46 57//46
+f 1//45 16//45 15//45
+f 71//46 72//46 57//46
+f 14//45 13//45 12//45
+f 68//46 69//46 70//46
+f 15//45 14//45 12//45
+f 68//46 70//46 71//46
+f 15//45 12//45 11//45
+f 67//46 68//46 71//46
+f 15//45 11//45 10//45
+f 66//46 67//46 71//46
+f 15//45 10//45 9//45
+f 65//46 66//46 71//46
+f 15//45 9//45 8//45
+f 64//46 65//46 71//46
+f 15//45 8//45 7//45
+f 63//46 64//46 71//46
+f 15//45 7//45 6//45
+f 62//46 63//46 71//46
+f 15//45 6//45 5//45
+f 61//46 62//46 71//46
+f 15//45 5//45 4//45
+f 60//46 61//46 71//46
+f 15//45 4//45 3//45
+f 59//46 60//46 71//46
+f 1//45 15//45 3//45
+f 59//46 71//46 57//46
+f 3//45 2//45 1//45
+f 57//46 58//46 59//46
+usemtl glass
+f 85//45 97//45 96//45
+f 122//46 123//46 111//46
+f 85//45 96//45 95//45
+f 121//46 122//46 111//46
+f 85//45 95//45 94//45
+f 120//46 121//46 111//46
+f 85//45 94//45 93//45
+f 119//46 120//46 111//46
+f 85//45 93//45 92//45
+f 118//46 119//46 111//46
+f 85//45 92//45 91//45
+f 117//46 118//46 111//46
+f 85//45 91//45 90//45
+f 116//46 117//46 111//46
+f 85//45 90//45 89//45
+f 115//46 116//46 111//46
+f 89//45 88//45 87//45
+f 113//46 114//46 115//46
+f 85//45 89//45 87//45
+f 113//46 115//46 111//46
+f 87//45 86//45 85//45
+f 111//46 112//46 113//46
+f 85//47 86//47 99//47 98//47
+f 86//48 87//48 100//48 99//48
+f 87//47 88//47 101//47 100//47
+f 88//49 89//49 102//49 101//49
+f 89//50 90//50 103//50 102//50
+f 90//51 91//51 104//51 103//51
+f 91//52 92//52 105//52 104//52
+f 92//53 93//53 106//53 105//53
+f 93//54 94//54 107//54 106//54
+f 94//55 95//55 108//55 107//55
+f 95//56 96//56 109//56 108//56
+f 96//57 97//57 110//57 109//57
+f 97//58 85//58 98//58 110//58
+f 98//59 99//59 112//59 111//59
+f 99//60 100//60 113//60 112//60
+f 100//59 101//59 114//59 113//59
+f 101//61 102//61 115//61 114//61
+f 102//62 103//62 116//62 115//62
+f 103//63 104//63 117//63 116//63
+f 104//64 105//64 118//64 117//64
+f 105//65 106//65 119//65 118//65
+f 106//66 107//66 120//66 119//66
+f 107//67 108//67 121//67 120//67
+f 108//68 109//68 122//68 121//68
+f 109//69 110//69 123//69 122//69
+f 110//70 98//70 111//70 123//70
+f 124//45 136//45 135//45
+f 161//46 162//46 150//46
+f 124//45 135//45 134//45
+f 160//46 161//46 150//46
+f 124//45 134//45 133//45
+f 159//46 160//46 150//46
+f 124//45 133//45 132//45
+f 158//46 159//46 150//46
+f 124//45 132//45 131//45
+f 157//46 158//46 150//46
+f 124//45 131//45 130//45
+f 156//46 157//46 150//46
+f 124//45 130//45 129//45
+f 155//46 156//46 150//46
+f 124//45 129//45 128//45
+f 154//46 155//46 150//46
+f 128//45 127//45 126//45
+f 152//46 153//46 154//46
+f 124//45 128//45 126//45
+f 152//46 154//46 150//46
+f 126//45 125//45 124//45
+f 150//46 151//46 152//46
+f 124//71 125//71 138//71 137//71
+f 125//72 126//72 139//72 138//72
+f 126//71 127//71 140//71 139//71
+f 127//73 128//73 141//73 140//73
+f 128//74 129//74 142//74 141//74
+f 129//75 130//75 143//75 142//75
+f 130//76 131//76 144//76 143//76
+f 131//77 132//77 145//77 144//77
+f 132//78 133//78 146//78 145//78
+f 133//79 134//79 147//79 146//79
+f 134//80 135//80 148//80 147//80
+f 135//81 136//81 149//81 148//81
+f 136//82 124//82 137//82 149//82
+f 137//47 138//47 151//47 150//47
+f 138//48 139//48 152//48 151//48
+f 139//47 140//47 153//47 152//47
+f 140//49 141//49 154//49 153//49
+f 141//50 142//50 155//50 154//50
+f 142//51 143//51 156//51 155//51
+f 143//52 144//52 157//52 156//52
+f 144//53 145//53 158//53 157//53
+f 145//54 146//54 159//54 158//54
+f 146//55 147//55 160//55 159//55
+f 147//56 148//56 161//56 160//56
+f 148//57 149//57 162//57 161//57
+f 149//58 137//58 150//58 162//58
+usemtl champagne
+f 163//45 184//45 183//45
+f 227//46 228//46 207//46
+f 163//45 183//45 182//45
+f 226//46 227//46 207//46
+f 163//45 182//45 181//45
+f 225//46 226//46 207//46
+f 181//45 180//45 179//45
+f 223//46 224//46 225//46
+f 178//45 177//45 176//45
+f 220//46 221//46 222//46
+f 179//45 178//45 176//45
+f 220//46 222//46 223//46
+f 181//45 179//45 176//45
+f 220//46 223//46 225//46
+f 163//45 181//45 176//45
+f 220//46 225//46 207//46
+f 163//45 176//45 175//45
+f 219//46 220//46 207//46
+f 163//45 175//45 174//45
+f 218//46 219//46 207//46
+f 174//45 173//45 172//45
+f 216//46 217//46 218//46
+f 163//45 174//45 172//45
+f 216//46 218//46 207//46
+f 163//45 172//45 171//45
+f 215//46 216//46 207//46
+f 163//45 171//45 170//45
+f 214//46 215//46 207//46
+f 163//45 170//45 169//45
+f 213//46 214//46 207//46
+f 169//45 168//45 167//45
+f 211//46 212//46 213//46
+f 163//45 169//45 167//45
+f 211//46 213//46 207//46
+f 163//45 167//45 166//45
+f 210//46 211//46 207//46
+f 163//45 166//45 165//45
+f 209//46 210//46 207//46
+f 165//45 164//45 163//45
+f 207//46 208//46 209//46
+f 163//83 164//83 186//83 185//83
+f 164//84 165//84 187//84 186//84
+f 165//47 166//47 188//47 187//47
+f 166//85 167//85 189//85 188//85
+f 167//47 168//47 190//47 189//47
+f 168//86 169//86 191//86 190//86
+f 169//87 170//87 192//87 191//87
+f 170//88 171//88 193//88 192//88
+f 171//89 172//89 194//89 193//89
+f 172//90 173//90 195//90 194//90
+f 173//91 174//91 196//91 195//91
+f 174//87 175//87 197//87 196//87
+f 175//92 176//92 198//92 197//92
+f 176//93 177//93 199//93 198//93
+f 177//94 178//94 200//94 199//94
+f 178//95 179//95 201//95 200//95
+f 179//96 180//96 202//96 201//96
+f 180//97 181//97 203//97 202//97
+f 181//98 182//98 204//98 203//98
+f 182//99 183//99 205//99 204//99
+f 183//95 184//95 206//95 205//95
+f 184//100 163//100 185//100 206//100
+f 185//101 186//101 208//101 207//101
+f 186//102 187//102 209//102 208//102
+f 187//103 188//103 210//103 209//103
+f 188//104 189//104 211//104 210//104
+f 189//103 190//103 212//103 211//103
+f 190//105 191//105 213//105 212//105
+f 191//106 192//106 214//106 213//106
+f 192//107 193//107 215//107 214//107
+f 193//108 194//108 216//108 215//108
+f 194//109 195//109 217//109 216//109
+f 195//110 196//110 218//110 217//110
+f 196//106 197//106 219//106 218//106
+f 197//111 198//111 220//111 219//111
+f 198//112 199//112 221//112 220//112
+f 199//113 200//113 222//113 221//113
+f 200//114 201//114 223//114 222//114
+f 201//115 202//115 224//115 223//115
+f 202//116 203//116 225//116 224//116
+f 203//117 204//117 226//117 225//117
+f 204//118 205//118 227//118 226//118
+f 205//114 206//114 228//114 227//114
+f 206//119 185//119 207//119 228//119
+f 229//45 250//45 249//45
+f 293//46 294//46 273//46
+f 229//45 249//45 248//45
+f 292//46 293//46 273//46
+f 229//45 248//45 247//45
+f 291//46 292//46 273//46
+f 247//45 246//45 245//45
+f 289//46 290//46 291//46
+f 244//45 243//45 242//45
+f 286//46 287//46 288//46
+f 245//45 244//45 242//45
+f 286//46 288//46 289//46
+f 247//45 245//45 242//45
+f 286//46 289//46 291//46
+f 229//45 247//45 242//45
+f 286//46 291//46 273//46
+f 229//45 242//45 241//45
+f 285//46 286//46 273//46
+f 229//45 241//45 240//45
+f 284//46 285//46 273//46
+f 240//45 239//45 238//45
+f 282//46 283//46 284//46
+f 229//45 240//45 238//45
+f 282//46 284//46 273//46
+f 229//45 238//45 237//45
+f 281//46 282//46 273//46
+f 229//45 237//45 236//45
+f 280//46 281//46 273//46
+f 229//45 236//45 235//45
+f 279//46 280//46 273//46
+f 235//45 234//45 233//45
+f 277//46 278//46 279//46
+f 229//45 235//45 233//45
+f 277//46 279//46 273//46
+f 229//45 233//45 232//45
+f 276//46 277//46 273//46
+f 229//45 232//45 231//45
+f 275//46 276//46 273//46
+f 231//45 230//45 229//45
+f 273//46 274//46 275//46
+f 229//120 230//120 252//120 251//120
+f 230//121 231//121 253//121 252//121
+f 231//122 232//122 254//122 253//122
+f 232//123 233//123 255//123 254//123
+f 233//122 234//122 256//122 255//122
+f 234//124 235//124 257//124 256//124
+f 235//125 236//125 258//125 257//125
+f 236//126 237//126 259//126 258//126
+f 237//127 238//127 260//127 259//127
+f 238//128 239//128 261//128 260//128
+f 239//129 240//129 262//129 261//129
+f 240//125 241//125 263//125 262//125
+f 241//130 242//130 264//130 263//130
+f 242//131 243//131 265//131 264//131
+f 243//132 244//132 266//132 265//132
+f 244//133 245//133 267//133 266//133
+f 245//134 246//134 268//134 267//134
+f 246//135 247//135 269//135 268//135
+f 247//136 248//136 270//136 269//136
+f 248//137 249//137 271//137 270//137
+f 249//133 250//133 272//133 271//133
+f 250//138 229//138 251//138 272//138
+f 251//83 252//83 274//83 273//83
+f 252//84 253//84 275//84 274//84
+f 253//47 254//47 276//47 275//47
+f 254//85 255//85 277//85 276//85
+f 255//47 256//47 278//47 277//47
+f 256//86 257//86 279//86 278//86
+f 257//87 258//87 280//87 279//87
+f 258//88 259//88 281//88 280//88
+f 259//89 260//89 282//89 281//89
+f 260//90 261//90 283//90 282//90
+f 261//91 262//91 284//91 283//91
+f 262//87 263//87 285//87 284//87
+f 263//92 264//92 286//92 285//92
+f 264//93 265//93 287//93 286//93
+f 265//94 266//94 288//94 287//94
+f 266//95 267//95 289//95 288//95
+f 267//96 268//96 290//96 289//96
+f 268//97 269//97 291//97 290//97
+f 269//98 270//98 292//98 291//98
+f 270//99 271//99 293//99 292//99
+f 271//95 272//95 294//95 293//95
+f 272//100 251//100 273//100 294//100
+f 295//45 308//45 307//45
+f 335//46 336//46 323//46
+f 295//45 307//45 306//45
+f 334//46 335//46 323//46
+f 295//45 306//45 305//45
+f 333//46 334//46 323//46
+f 295//45 305//45 304//45
+f 332//46 333//46 323//46
+f 295//45 304//45 303//45
+f 331//46 332//46 323//46
+f 302//45 301//45 300//45
+f 328//46 329//46 330//46
+f 302//45 300//45 299//45
+f 327//46 328//46 330//46
+f 303//45 302//45 299//45
+f 327//46 330//46 331//46
+f 303//45 299//45 298//45
+f 326//46 327//46 331//46
+f 295//45 303//45 298//45
+f 326//45 331//45 323//45
+f 298//45 297//45 296//45
+f 324//46 325//46 326//46
+f 298//45 296//45 295//45
+f 323//46 324//46 326//46
+f 295//139 296//139 310//139 309//139
+f 296//58 297//58 311//58 310//58
+f 297//140 298//140 312//140 311//140
+f 298//139 299//139 313//139 312//139
+f 299//141 300//141 314//141 313//141
+f 300//142 301//142 315//142 314//142
+f 301//47 302//47 316//47 315//47
+f 302//143 303//143 317//143 316//143
+f 303//47 304//47 318//47 317//47
+f 304//144 305//144 319//144 318//144
+f 305//145 306//145 320//145 319//145
+f 306//146 307//146 321//146 320//146
+f 307//93 308//93 322//93 321//93
+f 308//147 295//147 309//147 322//147
+f 309//148 310//148 324//148 323//148
+f 310//149 311//149 325//149 324//149
+f 311//150 312//150 326//150 325//150
+f 312//148 313//148 327//148 326//148
+f 313//151 314//151 328//151 327//151
+f 314//152 315//152 329//152 328//152
+f 315//103 316//103 330//103 329//103
+f 316//153 317//153 331//153 330//153
+f 317//103 318//103 332//103 331//103
+f 318//154 319//154 333//154 332//154
+f 319//155 320//155 334//155 333//155
+f 320//156 321//156 335//156 334//156
+f 321//112 322//112 336//112 335//112
+f 322//157 309//157 323//157 336//157
+f 337//45 350//45 349//45
+f 377//46 378//46 365//46
+f 337//45 349//45 348//45
+f 376//46 377//46 365//46
+f 337//45 348//45 347//45
+f 375//46 376//46 365//46
+f 337//45 347//45 346//45
+f 374//46 375//46 365//46
+f 337//45 346//45 345//45
+f 373//46 374//46 365//46
+f 344//45 343//45 342//45
+f 370//46 371//46 372//46
+f 344//45 342//45 341//45
+f 369//46 370//46 372//46
+f 345//45 344//45 341//45
+f 369//46 372//46 373//46
+f 345//45 341//45 340//45
+f 368//46 369//46 373//46
+f 337//46 345//46 340//46
+f 368//46 373//46 365//46
+f 340//45 339//45 338//45
+f 366//46 367//46 368//46
+f 340//45 338//45 337//45
+f 365//46 366//46 368//46
+f 337//158 338//158 352//158 351//158
+f 338//159 339//159 353//159 352//159
+f 339//160 340//160 354//160 353//160
+f 340//158 341//158 355//158 354//158
+f 341//161 342//161 356//161 355//161
+f 342//162 343//162 357//162 356//162
+f 343//122 344//122 358//122 357//122
+f 344//163 345//163 359//163 358//163
+f 345//122 346//122 360//122 359//122
+f 346//164 347//164 361//164 360//164
+f 347//165 348//165 362//165 361//165
+f 348//166 349//166 363//166 362//166
+f 349//131 350//131 364//131 363//131
+f 350//167 337//167 351//167 364//167
+f 351//139 352//139 366//139 365//139
+f 352//58 353//58 367//58 366//58
+f 353//140 354//140 368//140 367//140
+f 354//139 355//139 369//139 368//139
+f 355//141 356//141 370//141 369//141
+f 356//142 357//142 371//142 370//142
+f 357//47 358//47 372//47 371//47
+f 358//143 359//143 373//143 372//143
+f 359//47 360//47 374//47 373//47
+f 360//144 361//144 375//144 374//144
+f 361//145 362//145 376//145 375//145
+f 362//146 363//146 377//146 376//146
+f 363//93 364//93 378//93 377//93
+f 364//147 351//147 365//147 378//147
+f 463//45 475//45 474//45
+f 500//46 501//46 489//46
+f 474//45 473//45 472//45
+f 498//46 499//46 500//46
+f 474//45 472//45 471//45
+f 497//46 498//46 500//46
+f 471//45 470//45 469//45
+f 495//46 496//46 497//46
+f 474//45 471//45 469//45
+f 495//46 497//46 500//46
+f 463//45 474//45 469//45
+f 495//45 500//45 489//45
+f 463//45 469//45 468//45
+f 494//46 495//46 489//46
+f 468//45 467//45 466//45
+f 492//46 493//46 494//46
+f 468//45 466//45 465//45
+f 491//46 492//46 494//46
+f 468//45 465//45 464//45
+f 490//46 491//46 494//46
+f 468//45 464//45 463//45
+f 489//45 490//45 494//45
+f 463//168 464//168 477//168 476//168
+f 464//47 465//47 478//47 477//47
+f 465//139 466//139 479//139 478//139
+f 466//169 467//169 480//169 479//169
+f 467//144 468//144 481//144 480//144
+f 468//170 469//170 482//170 481//170
+f 469//171 470//171 483//171 482//171
+f 470//172 471//172 484//172 483//172
+f 471//173 472//173 485//173 484//173
+f 472//174 473//174 486//174 485//174
+f 473//95 474//95 487//95 486//95
+f 474//175 475//175 488//175 487//175
+f 475//58 463//58 476//58 488//58
+f 476//176 477//176 490//176 489//176
+f 477//103 478//103 491//103 490//103
+f 478//148 479//148 492//148 491//148
+f 479//177 480//177 493//177 492//177
+f 480//178 481//178 494//178 493//178
+f 481//179 482//179 495//179 494//179
+f 482//180 483//180 496//180 495//180
+f 483//181 484//181 497//181 496//181
+f 484//182 485//182 498//182 497//182
+f 485//183 486//183 499//183 498//183
+f 486//114 487//114 500//114 499//114
+f 487//184 488//184 501//184 500//184
+f 488//185 476//185 489//185 501//185
+f 502//45 514//45 513//45
+f 539//46 540//46 528//46
+f 513//45 512//45 511//45
+f 537//46 538//46 539//46
+f 513//45 511//45 510//45
+f 536//46 537//46 539//46
+f 510//45 509//45 508//45
+f 534//46 535//46 536//46
+f 513//45 510//45 508//45
+f 534//46 536//46 539//46
+f 502//46 513//46 508//46
+f 534//46 539//46 528//46
+f 502//45 508//45 507//45
+f 533//46 534//46 528//46
+f 507//45 506//45 505//45
+f 531//46 532//46 533//46
+f 507//45 505//45 504//45
+f 530//46 531//46 533//46
+f 507//45 504//45 503//45
+f 529//46 530//46 533//46
+f 507//46 503//46 502//46
+f 528//46 529//46 533//46
+f 502//186 503//186 516//186 515//186
+f 503//122 504//122 517//122 516//122
+f 504//158 505//158 518//158 517//158
+f 505//187 506//187 519//187 518//187
+f 506//188 507//188 520//188 519//188
+f 507//189 508//189 521//189 520//189
+f 508//190 509//190 522//190 521//190
+f 509//191 510//191 523//191 522//191
+f 510//192 511//192 524//192 523//192
+f 511//193 512//193 525//193 524//193
+f 512//133 513//133 526//133 525//133
+f 513//194 514//194 527//194 526//194
+f 514//195 502//195 515//195 527//195
+f 515//168 516//168 529//168 528//168
+f 516//47 517//47 530//47 529//47
+f 517//139 518//139 531//139 530//139
+f 518//169 519//169 532//169 531//169
+f 519//144 520//144 533//144 532//144
+f 520//170 521//170 534//170 533//170
+f 521//171 522//171 535//171 534//171
+f 522//172 523//172 536//172 535//172
+f 523//173 524//173 537//173 536//173
+f 524//174 525//174 538//174 537//174
+f 525//95 526//95 539//95 538//95
+f 526//175 527//175 540//175 539//175
+f 527//58 515//58 528//58 540//58
+usemtl dark
+f 379//45 386//45 385//45
+f 401//46 402//46 395//46
+f 379//45 385//45 384//45
+f 400//46 401//46 395//46
+f 379//45 384//45 383//45
+f 399//46 400//46 395//46
+f 379//45 383//45 382//45
+f 398//46 399//46 395//46
+f 379//45 382//45 381//45
+f 397//46 398//46 395//46
+f 381//45 380//45 379//45
+f 395//46 396//46 397//46
+f 379//95 380//95 388//95 387//95
+f 380//139 381//139 389//139 388//139
+f 381//196 382//196 390//196 389//196
+f 382//197 383//197 391//197 390//197
+f 383//88 384//88 392//88 391//88
+f 384//174 385//174 393//174 392//174
+f 385//95 386//95 394//95 393//95
+f 386//58 379//58 387//58 394//58
+f 387//114 388//114 396//114 395//114
+f 388//148 389//148 397//148 396//148
+f 389//198 390//198 398//198 397//198
+f 390//199 391//199 399//199 398//199
+f 391//200 392//200 400//200 399//200
+f 392//201 393//201 401//201 400//201
+f 393//114 394//114 402//114 401//114
+f 394//70 387//70 395//70 402//70
+f 403//45 410//45 409//45
+f 425//46 426//46 419//46
+f 403//45 409//45 408//45
+f 424//46 425//46 419//46
+f 403//45 408//45 407//45
+f 423//46 424//46 419//46
+f 403//45 407//45 406//45
+f 422//46 423//46 419//46
+f 403//45 406//45 405//45
+f 421//46 422//46 419//46
+f 405//45 404//45 403//45
+f 419//46 420//46 421//46
+f 403//133 404//133 412//133 411//133
+f 404//158 405//158 413//158 412//158
+f 405//202 406//202 414//202 413//202
+f 406//203 407//203 415//203 414//203
+f 407//204 408//204 416//204 415//204
+f 408//205 409//205 417//205 416//205
+f 409//133 410//133 418//133 417//133
+f 410//82 403//82 411//82 418//82
+f 411//95 412//95 420//95 419//95
+f 412//139 413//139 421//139 420//139
+f 413//196 414//196 422//196 421//196
+f 414//197 415//197 423//197 422//197
+f 415//88 416//88 424//88 423//88
+f 416//174 417//174 425//174 424//174
+f 417//95 418//95 426//95 425//95
+f 418//58 411//58 419//58 426//58
+f 427//45 432//45 431//45
+f 443//46 444//46 439//46
+f 427//45 431//45 430//45
+f 442//46 443//46 439//46
+f 427//45 430//45 429//45
+f 441//46 442//46 439//46
+f 429//45 428//45 427//45
+f 439//46 440//46 441//46
+f 427//206 428//206 434//206 433//206
+f 428//207 429//207 435//207 434//207
+f 429//92 430//92 436//92 435//92
+f 430//208 431//208 437//208 436//208
+f 431//209 432//209 438//209 437//209
+f 432//210 427//210 433//210 438//210
+f 433//211 434//211 440//211 439//211
+f 434//212 435//212 441//212 440//212
+f 435//111 436//111 442//111 441//111
+f 436//213 437//213 443//213 442//213
+f 437//214 438//214 444//214 443//214
+f 438//215 433//215 439//215 444//215
+f 445//45 450//45 449//45
+f 461//46 462//46 457//46
+f 445//45 449//45 448//45
+f 460//46 461//46 457//46
+f 445//45 448//45 447//45
+f 459//46 460//46 457//46
+f 447//45 446//45 445//45
+f 457//46 458//46 459//46
+f 445//216 446//216 452//216 451//216
+f 446//217 447//217 453//217 452//217
+f 447//130 448//130 454//130 453//130
+f 448//218 449//218 455//218 454//218
+f 449//219 450//219 456//219 455//219
+f 450//220 445//220 451//220 456//220
+f 451//206 452//206 458//206 457//206
+f 452//207 453//207 459//207 458//207
+f 453//92 454//92 460//92 459//92
+f 454//208 455//208 461//208 460//208
+f 455//209 456//209 462//209 461//209
+f 456//210 451//210 457//210 462//210
+o neck
+usemtl frame
+f 541//221 542//221 559//221 558//221
+f 542//222 543//222 560//222 559//222
+f 543//223 544//223 561//223 560//223
+f 544//224 545//224 562//224 561//224
+f 545//225 546//225 563//225 562//225
+f 546//226 547//226 564//226 563//226
+f 547//227 548//227 565//227 564//227
+f 548//228 549//228 566//228 565//228
+f 549//229 550//229 567//229 566//229
+f 550//230 551//230 568//230 567//230
+f 551//231 552//231 569//231 568//231
+f 552//232 553//232 570//232 569//232
+f 553//233 554//233 571//233 570//233
+f 554//234 555//234 572//234 571//234
+f 555//235 556//235 573//235 572//235
+f 556//236 557//236 574//236 573//236
+f 557//237 541//237 558//237 574//237
+f 558//238 559//238 576//238 575//238
+f 559//239 560//239 577//239 576//239
+f 560//240 561//240 578//240 577//240
+f 561//241 562//241 579//241 578//241
+f 562//242 563//242 580//242 579//242
+f 563//243 564//243 581//243 580//243
+f 564//244 565//244 582//244 581//244
+f 565//245 566//245 583//245 582//245
+f 566//246 567//246 584//246 583//246
+f 567//247 568//247 585//247 584//247
+f 568//248 569//248 586//248 585//248
+f 569//249 570//249 587//249 586//249
+f 570//250 571//250 588//250 587//250
+f 571//251 572//251 589//251 588//251
+f 572//252 573//252 590//252 589//252
+f 573//253 574//253 591//253 590//253
+f 574//254 558//254 575//254 591//254
+f 541//45 557//45 556//45
+f 590//46 591//46 575//46
+f 541//45 556//45 555//45
+f 589//46 590//46 575//46
+f 541//45 555//45 554//45
+f 588//46 589//46 575//46
+f 541//45 554//45 553//45
+f 587//46 588//46 575//46
+f 541//45 553//45 552//45
+f 586//46 587//46 575//46
+f 541//45 552//45 551//45
+f 585//46 586//46 575//46
+f 541//45 551//45 550//45
+f 584//46 585//46 575//46
+f 541//45 550//45 549//45
+f 583//46 584//46 575//46
+f 541//45 549//45 548//45
+f 582//46 583//46 575//46
+f 541//45 548//45 547//45
+f 581//46 582//46 575//46
+f 541//45 547//45 546//45
+f 580//46 581//46 575//46
+f 541//45 546//45 545//45
+f 579//46 580//46 575//46
+f 541//45 545//45 544//45
+f 578//46 579//46 575//46
+f 541//45 544//45 543//45
+f 577//46 578//46 575//46
+f 543//45 542//45 541//45
+f 575//46 576//46 577//46
+usemtl champagne
+f 592//45 608//45 607//45
+f 641//46 642//46 626//46
+f 592//45 607//45 606//45
+f 640//46 641//46 626//46
+f 592//45 606//45 605//45
+f 639//46 640//46 626//46
+f 592//45 605//45 604//45
+f 638//46 639//46 626//46
+f 592//45 604//45 603//45
+f 637//46 638//46 626//46
+f 592//45 603//45 602//45
+f 636//46 637//46 626//46
+f 592//45 602//45 601//45
+f 635//46 636//46 626//46
+f 592//45 601//45 600//45
+f 634//46 635//46 626//46
+f 592//45 600//45 599//45
+f 633//46 634//46 626//46
+f 592//45 599//45 598//45
+f 632//46 633//46 626//46
+f 592//45 598//45 597//45
+f 631//46 632//46 626//46
+f 597//45 596//45 595//45
+f 629//46 630//46 631//46
+f 592//45 597//45 595//45
+f 629//46 631//46 626//46
+f 592//45 595//45 594//45
+f 628//46 629//46 626//46
+f 594//45 593//45 592//45
+f 626//46 627//46 628//46
+f 592//255 593//255 610//255 609//255
+f 593//58 594//58 611//58 610//58
+f 594//256 595//256 612//256 611//256
+f 595//257 596//257 613//257 612//257
+f 596//258 597//258 614//258 613//258
+f 597//259 598//259 615//259 614//259
+f 598//260 599//260 616//260 615//260
+f 599//88 600//88 617//88 616//88
+f 600//47 601//47 618//47 617//47
+f 601//261 602//261 619//261 618//261
+f 602//262 603//262 620//262 619//262
+f 603//263 604//263 621//263 620//263
+f 604//264 605//264 622//264 621//264
+f 605//265 606//265 623//265 622//265
+f 606//266 607//266 624//266 623//266
+f 607//174 608//174 625//174 624//174
+f 608//267 592//267 609//267 625//267
+f 609//268 610//268 627//268 626//268
+f 610//269 611//269 628//269 627//269
+f 611//270 612//270 629//270 628//270
+f 612//271 613//271 630//271 629//271
+f 613//272 614//272 631//272 630//272
+f 614//273 615//273 632//273 631//273
+f 615//274 616//274 633//274 632//274
+f 616//107 617//107 634//107 633//107
+f 617//275 618//275 635//275 634//275
+f 618//276 619//276 636//276 635//276
+f 619//277 620//277 637//277 636//277
+f 620//278 621//278 638//278 637//278
+f 621//279 622//279 639//279 638//279
+f 622//280 623//280 640//280 639//280
+f 623//281 624//281 641//281 640//281
+f 624//201 625//201 642//201 641//201
+f 625//282 609//282 626//282 642//282
+f 643//45 659//45 658//45
+f 692//46 693//46 677//46
+f 643//45 658//45 657//45
+f 691//46 692//46 677//46
+f 643//45 657//45 656//45
+f 690//46 691//46 677//46
+f 643//45 656//45 655//45
+f 689//46 690//46 677//46
+f 643//45 655//45 654//45
+f 688//46 689//46 677//46
+f 643//45 654//45 653//45
+f 687//46 688//46 677//46
+f 643//45 653//45 652//45
+f 686//46 687//46 677//46
+f 643//45 652//45 651//45
+f 685//46 686//46 677//46
+f 643//45 651//45 650//45
+f 684//46 685//46 677//46
+f 643//45 650//45 649//45
+f 683//46 684//46 677//46
+f 643//45 649//45 648//45
+f 682//46 683//46 677//46
+f 648//45 647//45 646//45
+f 680//46 681//46 682//46
+f 643//45 648//45 646//45
+f 680//46 682//46 677//46
+f 643//45 646//45 645//45
+f 679//46 680//46 677//46
+f 645//45 644//45 643//45
+f 677//46 678//46 679//46
+f 643//283 644//283 661//283 660//283
+f 644//284 645//284 662//284 661//284
+f 645//285 646//285 663//285 662//285
+f 646//286 647//286 664//286 663//286
+f 647//287 648//287 665//287 664//287
+f 648//288 649//288 666//288 665//288
+f 649//289 650//289 667//289 666//289
+f 650//126 651//126 668//126 667//126
+f 651//290 652//290 669//290 668//290
+f 652//291 653//291 670//291 669//291
+f 653//292 654//292 671//292 670//292
+f 654//293 655//293 672//293 671//293
+f 655//294 656//294 673//294 672//294
+f 656//295 657//295 674//295 673//295
+f 657//296 658//296 675//296 674//296
+f 658//205 659//205 676//205 675//205
+f 659//297 643//297 660//297 676//297
+f 660//255 661//255 678//255 677//255
+f 661//58 662//58 679//58 678//58
+f 662//256 663//256 680//256 679//256
+f 663//257 664//257 681//257 680//257
+f 664//258 665//258 682//258 681//258
+f 665//259 666//259 683//259 682//259
+f 666//260 667//260 684//260 683//260
+f 667//88 668//88 685//88 684//88
+f 668//47 669//47 686//47 685//47
+f 669//261 670//261 687//261 686//261
+f 670//262 671//262 688//262 687//262
+f 671//263 672//263 689//263 688//263
+f 672//264 673//264 690//264 689//264
+f 673//265 674//265 691//265 690//265
+f 674//266 675//266 692//266 691//266
+f 675//174 676//174 693//174 692//174
+f 676//267 660//267 677//267 693//267
+f 952//45 968//45 967//45
+f 1001//46 1002//46 986//46
+f 952//45 967//45 966//45
+f 1000//46 1001//46 986//46
+f 952//45 966//45 965//45
+f 999//46 1000//46 986//46
+f 952//45 965//45 964//45
+f 998//46 999//46 986//46
+f 952//45 964//45 963//45
+f 997//46 998//46 986//46
+f 952//45 963//45 962//45
+f 996//46 997//46 986//46
+f 952//45 962//45 961//45
+f 995//46 996//46 986//46
+f 952//45 961//45 960//45
+f 994//46 995//46 986//46
+f 952//45 960//45 959//45
+f 993//46 994//46 986//46
+f 959//45 958//45 957//45
+f 991//46 992//46 993//46
+f 952//45 959//45 957//45
+f 991//45 993//45 986//45
+f 952//45 957//45 956//45
+f 990//46 991//46 986//46
+f 956//45 955//45 954//45
+f 988//46 989//46 990//46
+f 952//45 956//45 954//45
+f 988//46 990//46 986//46
+f 954//45 953//45 952//45
+f 986//46 987//46 988//46
+f 952//139 953//139 970//139 969//139
+f 953//298 954//298 971//298 970//298
+f 954//299 955//299 972//299 971//299
+f 955//300 956//300 973//300 972//300
+f 956//301 957//301 974//301 973//301
+f 957//302 958//302 975//302 974//302
+f 958//88 959//88 976//88 975//88
+f 959//47 960//47 977//47 976//47
+f 960//303 961//303 978//303 977//303
+f 961//304 962//304 979//304 978//304
+f 962//88 963//88 980//88 979//88
+f 963//305 964//305 981//305 980//305
+f 964//306 965//306 982//306 981//306
+f 965//307 966//307 983//307 982//307
+f 966//308 967//308 984//308 983//308
+f 967//174 968//174 985//174 984//174
+f 968//255 952//255 969//255 985//255
+f 969//148 970//148 987//148 986//148
+f 970//309 971//309 988//309 987//309
+f 971//310 972//310 989//310 988//310
+f 972//311 973//311 990//311 989//311
+f 973//312 974//312 991//312 990//312
+f 974//313 975//313 992//313 991//313
+f 975//200 976//200 993//200 992//200
+f 976//272 977//272 994//272 993//272
+f 977//314 978//314 995//314 994//314
+f 978//315 979//315 996//315 995//315
+f 979//200 980//200 997//200 996//200
+f 980//316 981//316 998//316 997//316
+f 981//317 982//317 999//317 998//317
+f 982//318 983//318 1000//318 999//318
+f 983//319 984//319 1001//319 1000//319
+f 984//320 985//320 1002//320 1001//320
+f 985//321 969//321 986//321 1002//321
+f 1003//45 1019//45 1018//45
+f 1052//46 1053//46 1037//46
+f 1003//45 1018//45 1017//45
+f 1051//46 1052//46 1037//46
+f 1003//45 1017//45 1016//45
+f 1050//46 1051//46 1037//46
+f 1003//45 1016//45 1015//45
+f 1049//46 1050//46 1037//46
+f 1003//45 1015//45 1014//45
+f 1048//46 1049//46 1037//46
+f 1003//45 1014//45 1013//45
+f 1047//46 1048//46 1037//46
+f 1003//45 1013//45 1012//45
+f 1046//46 1047//46 1037//46
+f 1003//45 1012//45 1011//45
+f 1045//46 1046//46 1037//46
+f 1003//45 1011//45 1010//45
+f 1044//46 1045//46 1037//46
+f 1010//45 1009//45 1008//45
+f 1042//46 1043//46 1044//46
+f 1003//46 1010//46 1008//46
+f 1042//46 1044//46 1037//46
+f 1003//45 1008//45 1007//45
+f 1041//46 1042//46 1037//46
+f 1007//45 1006//45 1005//45
+f 1039//46 1040//46 1041//46
+f 1003//45 1007//45 1005//45
+f 1039//46 1041//46 1037//46
+f 1005//45 1004//45 1003//45
+f 1037//46 1038//46 1039//46
+f 1003//158 1004//158 1021//158 1020//158
+f 1004//322 1005//322 1022//322 1021//322
+f 1005//323 1006//323 1023//323 1022//323
+f 1006//324 1007//324 1024//324 1023//324
+f 1007//325 1008//325 1025//325 1024//325
+f 1008//326 1009//326 1026//326 1025//326
+f 1009//204 1010//204 1027//204 1026//204
+f 1010//287 1011//287 1028//287 1027//287
+f 1011//327 1012//327 1029//327 1028//327
+f 1012//328 1013//328 1030//328 1029//328
+f 1013//204 1014//204 1031//204 1030//204
+f 1014//329 1015//329 1032//329 1031//329
+f 1015//330 1016//330 1033//330 1032//330
+f 1016//331 1017//331 1034//331 1033//331
+f 1017//332 1018//332 1035//332 1034//332
+f 1018//333 1019//333 1036//333 1035//333
+f 1019//334 1003//334 1020//334 1036//334
+f 1020//139 1021//139 1038//139 1037//139
+f 1021//298 1022//298 1039//298 1038//298
+f 1022//299 1023//299 1040//299 1039//299
+f 1023//300 1024//300 1041//300 1040//300
+f 1024//301 1025//301 1042//301 1041//301
+f 1025//302 1026//302 1043//302 1042//302
+f 1026//88 1027//88 1044//88 1043//88
+f 1027//47 1028//47 1045//47 1044//47
+f 1028//303 1029//303 1046//303 1045//303
+f 1029//304 1030//304 1047//304 1046//304
+f 1030//88 1031//88 1048//88 1047//88
+f 1031//305 1032//305 1049//305 1048//305
+f 1032//306 1033//306 1050//306 1049//306
+f 1033//307 1034//307 1051//307 1050//307
+f 1034//308 1035//308 1052//308 1051//308
+f 1035//174 1036//174 1053//174 1052//174
+f 1036//255 1020//255 1037//255 1053//255
+usemtl glass
+f 694//45 705//45 704//45
+f 728//46 729//46 718//46
+f 694//45 704//45 703//45
+f 727//46 728//46 718//46
+f 694//45 703//45 702//45
+f 726//46 727//46 718//46
+f 694//45 702//45 701//45
+f 725//46 726//46 718//46
+f 701//45 700//45 699//45
+f 723//46 724//46 725//46
+f 694//45 701//45 699//45
+f 723//46 725//46 718//46
+f 694//45 699//45 698//45
+f 722//46 723//46 718//46
+f 694//45 698//45 697//45
+f 721//46 722//46 718//46
+f 694//45 697//45 696//45
+f 720//46 721//46 718//46
+f 696//45 695//45 694//45
+f 718//46 719//46 720//46
+f 694//335 695//335 707//335 706//335
+f 695//336 696//336 708//336 707//336
+f 696//337 697//337 709//337 708//337
+f 697//338 698//338 710//338 709//338
+f 698//87 699//87 711//87 710//87
+f 699//339 700//339 712//339 711//339
+f 700//340 701//340 713//340 712//340
+f 701//341 702//341 714//341 713//341
+f 702//208 703//208 715//208 714//208
+f 703//342 704//342 716//342 715//342
+f 704//343 705//343 717//343 716//343
+f 705//58 694//58 706//58 717//58
+f 706//344 707//344 719//344 718//344
+f 707//345 708//345 720//345 719//345
+f 708//346 709//346 721//346 720//346
+f 709//347 710//347 722//347 721//347
+f 710//106 711//106 723//106 722//106
+f 711//348 712//348 724//348 723//348
+f 712//349 713//349 725//349 724//349
+f 713//350 714//350 726//350 725//350
+f 714//351 715//351 727//351 726//351
+f 715//352 716//352 728//352 727//352
+f 716//353 717//353 729//353 728//353
+f 717//70 706//70 718//70 729//70
+f 730//45 741//45 740//45
+f 764//46 765//46 754//46
+f 730//45 740//45 739//45
+f 763//46 764//46 754//46
+f 730//45 739//45 738//45
+f 762//46 763//46 754//46
+f 730//45 738//45 737//45
+f 761//46 762//46 754//46
+f 737//45 736//45 735//45
+f 759//46 760//46 761//46
+f 730//45 737//45 735//45
+f 759//46 761//46 754//46
+f 730//45 735//45 734//45
+f 758//46 759//46 754//46
+f 730//45 734//45 733//45
+f 757//46 758//46 754//46
+f 730//45 733//45 732//45
+f 756//46 757//46 754//46
+f 732//45 731//45 730//45
+f 754//46 755//46 756//46
+f 730//354 731//354 743//354 742//354
+f 731//355 732//355 744//355 743//355
+f 732//356 733//356 745//356 744//356
+f 733//357 734//357 746//357 745//357
+f 734//125 735//125 747//125 746//125
+f 735//358 736//358 748//358 747//358
+f 736//359 737//359 749//359 748//359
+f 737//360 738//360 750//360 749//360
+f 738//361 739//361 751//361 750//361
+f 739//362 740//362 752//362 751//362
+f 740//363 741//363 753//363 752//363
+f 741//82 730//82 742//82 753//82
+f 742//335 743//335 755//335 754//335
+f 743//336 744//336 756//336 755//336
+f 744//337 745//337 757//337 756//337
+f 745//338 746//338 758//338 757//338
+f 746//87 747//87 759//87 758//87
+f 747//339 748//339 760//339 759//339
+f 748//340 749//340 761//340 760//340
+f 749//341 750//341 762//341 761//341
+f 750//208 751//208 763//208 762//208
+f 751//342 752//342 764//342 763//342
+f 752//343 753//343 765//343 764//343
+f 753//58 742//58 754//58 765//58
+f 766//45 776//45 775//45
+f 797//46 798//46 788//46
+f 766//45 775//45 774//45
+f 796//46 797//46 788//46
+f 766//45 774//45 773//45
+f 795//46 796//46 788//46
+f 766//45 773//45 772//45
+f 794//46 795//46 788//46
+f 766//45 772//45 771//45
+f 793//46 794//46 788//46
+f 766//45 771//45 770//45
+f 792//46 793//46 788//46
+f 766//45 770//45 769//45
+f 791//46 792//46 788//46
+f 766//45 769//45 768//45
+f 790//46 791//46 788//46
+f 768//45 767//45 766//45
+f 788//46 789//46 790//46
+f 766//364 767//364 778//364 777//364
+f 767//139 768//139 779//139 778//139
+f 768//365 769//365 780//365 779//365
+f 769//366 770//366 781//366 780//366
+f 770//87 771//87 782//87 781//87
+f 771//367 772//367 783//367 782//367
+f 772//368 773//368 784//368 783//368
+f 773//92 774//92 785//92 784//92
+f 774//369 775//369 786//369 785//369
+f 775//95 776//95 787//95 786//95
+f 776//370 766//370 777//370 787//370
+f 777//371 778//371 789//371 788//371
+f 778//148 779//148 790//148 789//148
+f 779//372 780//372 791//372 790//372
+f 780//373 781//373 792//373 791//373
+f 781//106 782//106 793//106 792//106
+f 782//374 783//374 794//374 793//374
+f 783//375 784//375 795//375 794//375
+f 784//111 785//111 796//111 795//111
+f 785//376 786//376 797//376 796//376
+f 786//114 787//114 798//114 797//114
+f 787//377 777//377 788//377 798//377
+f 799//45 809//45 808//45
+f 830//46 831//46 821//46
+f 799//45 808//45 807//45
+f 829//46 830//46 821//46
+f 799//45 807//45 806//45
+f 828//46 829//46 821//46
+f 799//45 806//45 805//45
+f 827//46 828//46 821//46
+f 799//45 805//45 804//45
+f 826//46 827//46 821//46
+f 799//45 804//45 803//45
+f 825//46 826//46 821//46
+f 799//45 803//45 802//45
+f 824//46 825//46 821//46
+f 799//45 802//45 801//45
+f 823//46 824//46 821//46
+f 801//45 800//45 799//45
+f 821//46 822//46 823//46
+f 799//378 800//378 811//378 810//378
+f 800//158 801//158 812//158 811//158
+f 801//379 802//379 813//379 812//379
+f 802//380 803//380 814//380 813//380
+f 803//125 804//125 815//125 814//125
+f 804//381 805//381 816//381 815//381
+f 805//382 806//382 817//382 816//382
+f 806//130 807//130 818//130 817//130
+f 807//383 808//383 819//383 818//383
+f 808//133 809//133 820//133 819//133
+f 809//384 799//384 810//384 820//384
+f 810//364 811//364 822//364 821//364
+f 811//139 812//139 823//139 822//139
+f 812//365 813//365 824//365 823//365
+f 813//366 814//366 825//366 824//366
+f 814//87 815//87 826//87 825//87
+f 815//367 816//367 827//367 826//367
+f 816//368 817//368 828//368 827//368
+f 817//92 818//92 829//92 828//92
+f 818//369 819//369 830//369 829//369
+f 819//95 820//95 831//95 830//95
+f 820//370 810//370 821//370 831//370
+usemtl dark
+f 832//45 851//45 850//45
+f 890//46 891//46 872//46
+f 832//45 850//45 849//45
+f 889//46 890//46 872//46
+f 832//45 849//45 848//45
+f 888//46 889//46 872//46
+f 832//45 848//45 847//45
+f 887//46 888//46 872//46
+f 846//45 845//45 844//45
+f 884//46 885//46 886//46
+f 847//45 846//45 844//45
+f 884//46 886//46 887//46
+f 832//45 847//45 844//45
+f 884//46 887//46 872//46
+f 832//45 844//45 843//45
+f 883//46 884//46 872//46
+f 832//45 843//45 842//45
+f 882//46 883//46 872//46
+f 832//45 842//45 841//45
+f 881//46 882//46 872//46
+f 832//45 841//45 840//45
+f 880//46 881//46 872//46
+f 832//45 840//45 839//45
+f 879//46 880//46 872//46
+f 832//45 839//45 838//45
+f 878//46 879//46 872//46
+f 832//45 838//45 837//45
+f 877//46 878//46 872//46
+f 832//45 837//45 836//45
+f 876//46 877//46 872//46
+f 832//45 836//45 835//45
+f 875//46 876//46 872//46
+f 832//45 835//45 834//45
+f 874//46 875//46 872//46
+f 834//45 833//45 832//45
+f 872//46 873//46 874//46
+f 832//385 833//385 853//385 852//385
+f 833//386 834//386 854//386 853//386
+f 834//47 835//47 855//47 854//47
+f 835//387 836//387 856//387 855//387
+f 836//388 837//388 857//388 856//388
+f 837//389 838//389 858//389 857//389
+f 838//144 839//144 859//144 858//144
+f 839//390 840//390 860//390 859//390
+f 840//391 841//391 861//391 860//391
+f 841//392 842//392 862//392 861//392
+f 842//393 843//393 863//393 862//393
+f 843//394 844//394 864//394 863//394
+f 844//395 845//395 865//395 864//395
+f 845//396 846//396 866//396 865//396
+f 846//397 847//397 867//397 866//397
+f 847//398 848//398 868//398 867//398
+f 848//399 849//399 869//399 868//399
+f 849//400 850//400 870//400 869//400
+f 850//401 851//401 871//401 870//401
+f 851//94 832//94 852//94 871//94
+f 852//402 853//402 873//402 872//402
+f 853//403 854//403 874//403 873//403
+f 854//103 855//103 875//103 874//103
+f 855//404 856//404 876//404 875//404
+f 856//405 857//405 877//405 876//405
+f 857//406 858//406 878//406 877//406
+f 858//154 859//154 879//154 878//154
+f 859//407 860//407 880//407 879//407
+f 860//408 861//408 881//408 880//408
+f 861//107 862//107 882//107 881//107
+f 862//409 863//409 883//409 882//409
+f 863//410 864//410 884//410 883//410
+f 864//411 865//411 885//411 884//411
+f 865//412 866//412 886//412 885//412
+f 866//413 867//413 887//413 886//413
+f 867//414 868//414 888//414 887//414
+f 868//415 869//415 889//415 888//415
+f 869//416 870//416 890//416 889//416
+f 870//417 871//417 891//417 890//417
+f 871//418 852//418 872//418 891//418
+f 892//45 911//45 910//45
+f 950//46 951//46 932//46
+f 892//45 910//45 909//45
+f 949//46 950//46 932//46
+f 892//45 909//45 908//45
+f 948//46 949//46 932//46
+f 892//45 908//45 907//45
+f 947//46 948//46 932//46
+f 906//45 905//45 904//45
+f 944//46 945//46 946//46
+f 907//45 906//45 904//45
+f 944//46 946//46 947//46
+f 892//45 907//45 904//45
+f 944//46 947//46 932//46
+f 892//45 904//45 903//45
+f 943//46 944//46 932//46
+f 892//45 903//45 902//45
+f 942//46 943//46 932//46
+f 892//45 902//45 901//45
+f 941//46 942//46 932//46
+f 892//45 901//45 900//45
+f 940//46 941//46 932//46
+f 892//45 900//45 899//45
+f 939//46 940//46 932//46
+f 892//45 899//45 898//45
+f 938//46 939//46 932//46
+f 892//45 898//45 897//45
+f 937//46 938//46 932//46
+f 892//45 897//45 896//45
+f 936//46 937//46 932//46
+f 892//45 896//45 895//45
+f 935//46 936//46 932//46
+f 892//45 895//45 894//45
+f 934//46 935//46 932//46
+f 894//45 893//45 892//45
+f 932//46 933//46 934//46
+f 892//419 893//419 913//419 912//419
+f 893//420 894//420 914//420 913//420
+f 894//122 895//122 915//122 914//122
+f 895//421 896//421 916//421 915//421
+f 896//422 897//422 917//422 916//422
+f 897//423 898//423 918//423 917//423
+f 898//164 899//164 919//164 918//164
+f 899//424 900//424 920//424 919//424
+f 900//425 901//425 921//425 920//425
+f 901//126 902//126 922//126 921//126
+f 902//426 903//426 923//426 922//426
+f 903//427 904//427 924//427 923//427
+f 904//428 905//428 925//428 924//428
+f 905//429 906//429 926//429 925//429
+f 906//430 907//430 927//430 926//430
+f 907//431 908//431 928//431 927//431
+f 908//432 909//432 929//432 928//432
+f 909//433 910//433 930//433 929//433
+f 910//434 911//434 931//434 930//434
+f 911//435 892//435 912//435 931//435
+f 912//385 913//385 933//385 932//385
+f 913//386 914//386 934//386 933//386
+f 914//47 915//47 935//47 934//47
+f 915//387 916//387 936//387 935//387
+f 916//388 917//388 937//388 936//388
+f 917//389 918//389 938//389 937//389
+f 918//144 919//144 939//144 938//144
+f 919//390 920//390 940//390 939//390
+f 920//391 921//391 941//391 940//391
+f 921//392 922//392 942//392 941//392
+f 922//393 923//393 943//393 942//393
+f 923//394 924//394 944//394 943//394
+f 924//395 925//395 945//395 944//395
+f 925//396 926//396 946//396 945//396
+f 926//397 927//397 947//397 946//397
+f 927//398 928//398 948//398 947//398
+f 928//399 929//399 949//399 948//399
+f 929//400 930//400 950//400 949//400
+f 930//401 931//401 951//401 950//401
+f 931//94 912//94 932//94 951//94
+o body
+usemtl frame
+f 1054//436 1055//436 1081//436 1080//436
+f 1055//437 1056//437 1082//437 1081//437
+f 1056//438 1057//438 1083//438 1082//438
+f 1057//439 1058//439 1084//439 1083//439
+f 1058//440 1059//440 1085//440 1084//440
+f 1059//441 1060//441 1086//441 1085//441
+f 1060//442 1061//442 1087//442 1086//442
+f 1061//443 1062//443 1088//443 1087//443
+f 1062//444 1063//444 1089//444 1088//444
+f 1063//445 1064//445 1090//445 1089//445
+f 1064//446 1065//446 1091//446 1090//446
+f 1065//447 1066//447 1092//447 1091//447
+f 1066//448 1067//448 1093//448 1092//448
+f 1067//449 1068//449 1094//449 1093//449
+f 1068//437 1069//437 1095//437 1094//437
+f 1069//436 1070//436 1096//436 1095//436
+f 1070//450 1071//450 1097//450 1096//450
+f 1071//451 1072//451 1098//451 1097//451
+f 1072//437 1073//437 1099//437 1098//437
+f 1073//452 1074//452 1100//452 1099//452
+f 1074//437 1075//437 1101//437 1100//437
+f 1075//436 1076//436 1102//436 1101//436
+f 1076//453 1077//453 1103//453 1102//453
+f 1077//439 1078//439 1104//439 1103//439
+f 1078//454 1079//454 1105//454 1104//454
+f 1079//455 1054//455 1080//455 1105//455
+f 1080//456 1081//456 1107//456 1106//456
+f 1081//457 1082//457 1108//457 1107//457
+f 1082//458 1083//458 1109//458 1108//458
+f 1083//459 1084//459 1110//459 1109//459
+f 1084//460 1085//460 1111//460 1110//460
+f 1085//461 1086//461 1112//461 1111//461
+f 1086//462 1087//462 1113//462 1112//462
+f 1087//463 1088//463 1114//463 1113//463
+f 1088//464 1089//464 1115//464 1114//464
+f 1089//465 1090//465 1116//465 1115//465
+f 1090//466 1091//466 1117//466 1116//466
+f 1091//467 1092//467 1118//467 1117//467
+f 1092//468 1093//468 1119//468 1118//468
+f 1093//469 1094//469 1120//469 1119//469
+f 1094//457 1095//457 1121//457 1120//457
+f 1095//456 1096//456 1122//456 1121//456
+f 1096//470 1097//470 1123//470 1122//470
+f 1097//471 1098//471 1124//471 1123//471
+f 1098//457 1099//457 1125//457 1124//457
+f 1099//472 1100//472 1126//472 1125//472
+f 1100//457 1101//457 1127//457 1126//457
+f 1101//456 1102//456 1128//456 1127//456
+f 1102//473 1103//473 1129//473 1128//473
+f 1103//459 1104//459 1130//459 1129//459
+f 1104//474 1105//474 1131//474 1130//474
+f 1105//475 1080//475 1106//475 1131//475
+f 1054//45 1079//45 1078//45
+f 1130//46 1131//46 1106//46
+f 1077//45 1076//45 1075//45
+f 1127//46 1128//46 1129//46
+f 1077//45 1075//45 1074//45
+f 1126//46 1127//46 1129//46
+f 1077//45 1074//45 1073//45
+f 1125//46 1126//46 1129//46
+f 1077//45 1073//45 1072//45
+f 1124//46 1125//46 1129//46
+f 1078//45 1077//45 1072//45
+f 1124//46 1129//46 1130//46
+f 1071//45 1070//45 1069//45
+f 1121//46 1122//46 1123//46
+f 1071//45 1069//45 1068//45
+f 1120//46 1121//46 1123//46
+f 1071//45 1068//45 1067//45
+f 1119//46 1120//46 1123//46
+f 1072//45 1071//45 1067//45
+f 1119//46 1123//46 1124//46
+f 1078//45 1072//45 1067//45
+f 1119//46 1124//46 1130//46
+f 1078//45 1067//45 1066//45
+f 1118//46 1119//46 1130//46
+f 1054//45 1078//45 1066//45
+f 1118//46 1130//46 1106//46
+f 1054//45 1066//45 1065//45
+f 1117//46 1118//46 1106//46
+f 1054//45 1065//45 1064//45
+f 1116//46 1117//46 1106//46
+f 1054//45 1064//45 1063//45
+f 1115//46 1116//46 1106//46
+f 1054//45 1063//45 1062//45
+f 1114//46 1115//46 1106//46
+f 1054//45 1062//45 1061//45
+f 1113//46 1114//46 1106//46
+f 1061//45 1060//45 1059//45
+f 1111//46 1112//46 1113//46
+f 1061//45 1059//45 1058//45
+f 1110//46 1111//46 1113//46
+f 1061//45 1058//45 1057//45
+f 1109//46 1110//46 1113//46
+f 1061//45 1057//45 1056//45
+f 1108//46 1109//46 1113//46
+f 1061//45 1056//45 1055//45
+f 1107//46 1108//46 1113//46
+f 1061//45 1055//45 1054//45
+f 1106//46 1107//46 1113//46
+usemtl glass
+f 1132//45 1150//45 1149//45
+f 1187//46 1188//46 1170//46
+f 1132//45 1149//45 1148//45
+f 1186//46 1187//46 1170//46
+f 1147//45 1146//45 1145//45
+f 1183//46 1184//46 1185//46
+f 1148//45 1147//45 1145//45
+f 1183//46 1185//46 1186//46
+f 1132//45 1148//45 1145//45
+f 1183//46 1186//46 1170//46
+f 1132//45 1145//45 1144//45
+f 1182//46 1183//46 1170//46
+f 1132//45 1144//45 1143//45
+f 1181//46 1182//46 1170//46
+f 1132//45 1143//45 1142//45
+f 1180//46 1181//46 1170//46
+f 1132//45 1142//45 1141//45
+f 1179//46 1180//46 1170//46
+f 1132//45 1141//45 1140//45
+f 1178//46 1179//46 1170//46
+f 1132//45 1140//45 1139//45
+f 1177//46 1178//46 1170//46
+f 1132//45 1139//45 1138//45
+f 1176//46 1177//46 1170//46
+f 1132//45 1138//45 1137//45
+f 1175//46 1176//46 1170//46
+f 1132//45 1137//45 1136//45
+f 1174//46 1175//46 1170//46
+f 1132//45 1136//45 1135//45
+f 1173//46 1174//46 1170//46
+f 1135//45 1134//45 1133//45
+f 1171//46 1172//46 1173//46
+f 1135//45 1133//45 1132//45
+f 1170//46 1171//46 1173//46
+f 1132//476 1133//476 1152//476 1151//476
+f 1133//477 1134//477 1153//477 1152//477
+f 1134//478 1135//478 1154//478 1153//478
+f 1135//479 1136//479 1155//479 1154//479
+f 1136//480 1137//480 1156//480 1155//480
+f 1137//481 1138//481 1157//481 1156//481
+f 1138//87 1139//87 1158//87 1157//87
+f 1139//47 1140//47 1159//47 1158//47
+f 1140//482 1141//482 1160//482 1159//482
+f 1141//483 1142//483 1161//483 1160//483
+f 1142//87 1143//87 1162//87 1161//87
+f 1143//484 1144//484 1163//484 1162//484
+f 1144//92 1145//92 1164//92 1163//92
+f 1145//485 1146//485 1165//485 1164//485
+f 1146//58 1147//58 1166//58 1165//58
+f 1147//174 1148//174 1167//174 1166//174
+f 1148//486 1149//486 1168//486 1167//486
+f 1149//487 1150//487 1169//487 1168//487
+f 1150//488 1132//488 1151//488 1169//488
+f 1151//489 1152//489 1171//489 1170//489
+f 1152//490 1153//490 1172//490 1171//490
+f 1153//491 1154//491 1173//491 1172//491
+f 1154//103 1155//103 1174//103 1173//103
+f 1155//492 1156//492 1175//492 1174//492
+f 1156//493 1157//493 1176//493 1175//493
+f 1157//106 1158//106 1177//106 1176//106
+f 1158//103 1159//103 1178//103 1177//103
+f 1159//494 1160//494 1179//494 1178//494
+f 1160//495 1161//495 1180//495 1179//495
+f 1161//106 1162//106 1181//106 1180//106
+f 1162//496 1163//496 1182//496 1181//496
+f 1163//111 1164//111 1183//111 1182//111
+f 1164//497 1165//497 1184//497 1183//497
+f 1165//149 1166//149 1185//149 1184//149
+f 1166//180 1167//180 1186//180 1185//180
+f 1167//498 1168//498 1187//498 1186//498
+f 1168//499 1169//499 1188//499 1187//499
+f 1169//500 1151//500 1170//500 1188//500
+f 1189//45 1207//45 1206//45
+f 1244//46 1245//46 1227//46
+f 1189//45 1206//45 1205//45
+f 1243//46 1244//46 1227//46
+f 1204//45 1203//45 1202//45
+f 1240//46 1241//46 1242//46
+f 1205//45 1204//45 1202//45
+f 1240//46 1242//46 1243//46
+f 1189//45 1205//45 1202//45
+f 1240//46 1243//46 1227//46
+f 1189//45 1202//45 1201//45
+f 1239//46 1240//46 1227//46
+f 1189//45 1201//45 1200//45
+f 1238//46 1239//46 1227//46
+f 1189//45 1200//45 1199//45
+f 1237//46 1238//46 1227//46
+f 1189//45 1199//45 1198//45
+f 1236//46 1237//46 1227//46
+f 1189//45 1198//45 1197//45
+f 1235//46 1236//46 1227//46
+f 1189//45 1197//45 1196//45
+f 1234//46 1235//46 1227//46
+f 1189//45 1196//45 1195//45
+f 1233//46 1234//46 1227//46
+f 1189//45 1195//45 1194//45
+f 1232//46 1233//46 1227//46
+f 1189//45 1194//45 1193//45
+f 1231//46 1232//46 1227//46
+f 1189//45 1193//45 1192//45
+f 1230//46 1231//46 1227//46
+f 1192//45 1191//45 1190//45
+f 1228//46 1229//46 1230//46
+f 1192//45 1190//45 1189//45
+f 1227//46 1228//46 1230//46
+f 1189//501 1190//501 1209//501 1208//501
+f 1190//502 1191//502 1210//502 1209//502
+f 1191//503 1192//503 1211//503 1210//503
+f 1192//122 1193//122 1212//122 1211//122
+f 1193//504 1194//504 1213//504 1212//504
+f 1194//505 1195//505 1214//505 1213//505
+f 1195//125 1196//125 1215//125 1214//125
+f 1196//122 1197//122 1216//122 1215//122
+f 1197//506 1198//506 1217//506 1216//506
+f 1198//507 1199//507 1218//507 1217//507
+f 1199//125 1200//125 1219//125 1218//125
+f 1200//508 1201//508 1220//508 1219//508
+f 1201//130 1202//130 1221//130 1220//130
+f 1202//509 1203//509 1222//509 1221//509
+f 1203//159 1204//159 1223//159 1222//159
+f 1204//190 1205//190 1224//190 1223//190
+f 1205//510 1206//510 1225//510 1224//510
+f 1206//511 1207//511 1226//511 1225//511
+f 1207//512 1189//512 1208//512 1226//512
+f 1208//476 1209//476 1228//476 1227//476
+f 1209//477 1210//477 1229//477 1228//477
+f 1210//478 1211//478 1230//478 1229//478
+f 1211//479 1212//479 1231//479 1230//479
+f 1212//480 1213//480 1232//480 1231//480
+f 1213//481 1214//481 1233//481 1232//481
+f 1214//87 1215//87 1234//87 1233//87
+f 1215//47 1216//47 1235//47 1234//47
+f 1216//482 1217//482 1236//482 1235//482
+f 1217//483 1218//483 1237//483 1236//483
+f 1218//87 1219//87 1238//87 1237//87
+f 1219//484 1220//484 1239//484 1238//484
+f 1220//92 1221//92 1240//92 1239//92
+f 1221//485 1222//485 1241//485 1240//485
+f 1222//58 1223//58 1242//58 1241//58
+f 1223//174 1224//174 1243//174 1242//174
+f 1224//486 1225//486 1244//486 1243//486
+f 1225//487 1226//487 1245//487 1244//487
+f 1226//488 1208//488 1227//488 1245//488
+f 1246//45 1255//45 1254//45
+f 1274//46 1275//46 1266//46
+f 1246//45 1254//45 1253//45
+f 1273//46 1274//46 1266//46
+f 1252//45 1251//45 1250//45
+f 1270//45 1271//45 1272//45
+f 1249//45 1248//45 1247//45
+f 1267//46 1268//46 1269//46
+f 1250//45 1249//45 1247//45
+f 1267//46 1269//46 1270//46
+f 1252//45 1250//45 1247//45
+f 1267//45 1270//45 1272//45
+f 1252//45 1247//45 1246//45
+f 1266//46 1267//46 1272//46
+f 1253//46 1252//46 1246//46
+f 1266//45 1272//45 1273//45
+f 1246//513 1247//513 1257//513 1256//513
+f 1247//479 1248//479 1258//479 1257//479
+f 1248//144 1249//144 1259//144 1258//144
+f 1249//514 1250//514 1260//514 1259//514
+f 1250//515 1251//515 1261//515 1260//515
+f 1251//516 1252//516 1262//516 1261//516
+f 1252//517 1253//517 1263//517 1262//517
+f 1253//174 1254//174 1264//174 1263//174
+f 1254//518 1255//518 1265//518 1264//518
+f 1255//519 1246//519 1256//519 1265//519
+f 1256//520 1257//520 1267//520 1266//520
+f 1257//103 1258//103 1268//103 1267//103
+f 1258//107 1259//107 1269//107 1268//107
+f 1259//521 1260//521 1270//521 1269//521
+f 1260//522 1261//522 1271//522 1270//522
+f 1261//523 1262//523 1272//523 1271//523
+f 1262//524 1263//524 1273//524 1272//524
+f 1263//525 1264//525 1274//525 1273//525
+f 1264//526 1265//526 1275//526 1274//526
+f 1265//527 1256//527 1266//527 1275//527
+f 1276//45 1285//45 1284//45
+f 1304//46 1305//46 1296//46
+f 1276//45 1284//45 1283//45
+f 1303//46 1304//46 1296//46
+f 1282//46 1281//46 1280//46
+f 1300//46 1301//46 1302//46
+f 1279//45 1278//45 1277//45
+f 1297//46 1298//46 1299//46
+f 1280//45 1279//45 1277//45
+f 1297//46 1299//46 1300//46
+f 1282//46 1280//46 1277//46
+f 1297//46 1300//46 1302//46
+f 1282//45 1277//45 1276//45
+f 1296//46 1297//46 1302//46
+f 1283//46 1282//46 1276//46
+f 1296//45 1302//45 1303//45
+f 1276//528 1277//528 1287//528 1286//528
+f 1277//122 1278//122 1288//122 1287//122
+f 1278//126 1279//126 1289//126 1288//126
+f 1279//529 1280//529 1290//529 1289//529
+f 1280//530 1281//530 1291//530 1290//530
+f 1281//531 1282//531 1292//531 1291//531
+f 1282//532 1283//532 1293//532 1292//532
+f 1283//533 1284//533 1294//533 1293//533
+f 1284//534 1285//534 1295//534 1294//534
+f 1285//535 1276//535 1286//535 1295//535
+f 1286//513 1287//513 1297//513 1296//513
+f 1287//479 1288//479 1298//479 1297//479
+f 1288//144 1289//144 1299//144 1298//144
+f 1289//514 1290//514 1300//514 1299//514
+f 1290//515 1291//515 1301//515 1300//515
+f 1291//516 1292//516 1302//516 1301//516
+f 1292//517 1293//517 1303//517 1302//517
+f 1293//174 1294//174 1304//174 1303//174
+f 1294//518 1295//518 1305//518 1304//518
+f 1295//519 1286//519 1296//519 1305//519
+f 1306//45 1318//45 1317//45
+f 1343//46 1344//46 1332//46
+f 1306//45 1317//45 1316//45
+f 1342//46 1343//46 1332//46
+f 1306//45 1316//45 1315//45
+f 1341//46 1342//46 1332//46
+f 1306//45 1315//45 1314//45
+f 1340//46 1341//46 1332//46
+f 1306//45 1314//45 1313//45
+f 1339//46 1340//46 1332//46
+f 1306//45 1313//45 1312//45
+f 1338//46 1339//46 1332//46
+f 1306//45 1312//45 1311//45
+f 1337//46 1338//46 1332//46
+f 1306//45 1311//45 1310//45
+f 1336//46 1337//46 1332//46
+f 1306//45 1310//45 1309//45
+f 1335//46 1336//46 1332//46
+f 1306//45 1309//45 1308//45
+f 1334//46 1335//46 1332//46
+f 1308//45 1307//45 1306//45
+f 1332//46 1333//46 1334//46
+f 1306//536 1307//536 1320//536 1319//536
+f 1307//537 1308//537 1321//537 1320//537
+f 1308//538 1309//538 1322//538 1321//538
+f 1309//539 1310//539 1323//539 1322//539
+f 1310//540 1311//540 1324//540 1323//540
+f 1311//88 1312//88 1325//88 1324//88
+f 1312//541 1313//541 1326//541 1325//541
+f 1313//542 1314//542 1327//542 1326//542
+f 1314//543 1315//543 1328//543 1327//543
+f 1315//93 1316//93 1329//93 1328//93
+f 1316//544 1317//544 1330//544 1329//544
+f 1317//545 1318//545 1331//545 1330//545
+f 1318//538 1306//538 1319//538 1331//538
+f 1319//546 1320//546 1333//546 1332//546
+f 1320//547 1321//547 1334//547 1333//547
+f 1321//548 1322//548 1335//548 1334//548
+f 1322//549 1323//549 1336//549 1335//549
+f 1323//550 1324//550 1337//550 1336//550
+f 1324//107 1325//107 1338//107 1337//107
+f 1325//551 1326//551 1339//551 1338//551
+f 1326//552 1327//552 1340//552 1339//552
+f 1327//553 1328//553 1341//553 1340//553
+f 1328//554 1329//554 1342//554 1341//554
+f 1329//180 1330//180 1343//180 1342//180
+f 1330//555 1331//555 1344//555 1343//555
+f 1331//556 1319//556 1332//556 1344//556
+f 1345//45 1357//45 1356//45
+f 1382//46 1383//46 1371//46
+f 1345//45 1356//45 1355//45
+f 1381//46 1382//46 1371//46
+f 1345//45 1355//45 1354//45
+f 1380//46 1381//46 1371//46
+f 1345//45 1354//45 1353//45
+f 1379//46 1380//46 1371//46
+f 1345//45 1353//45 1352//45
+f 1378//46 1379//46 1371//46
+f 1345//45 1352//45 1351//45
+f 1377//46 1378//46 1371//46
+f 1345//45 1351//45 1350//45
+f 1376//46 1377//46 1371//46
+f 1345//45 1350//45 1349//45
+f 1375//46 1376//46 1371//46
+f 1345//45 1349//45 1348//45
+f 1374//46 1375//46 1371//46
+f 1345//45 1348//45 1347//45
+f 1373//46 1374//46 1371//46
+f 1347//45 1346//45 1345//45
+f 1371//46 1372//46 1373//46
+f 1345//557 1346//557 1359//557 1358//557
+f 1346//558 1347//558 1360//558 1359//558
+f 1347//559 1348//559 1361//559 1360//559
+f 1348//560 1349//560 1362//560 1361//560
+f 1349//561 1350//561 1363//561 1362//561
+f 1350//126 1351//126 1364//126 1363//126
+f 1351//562 1352//562 1365//562 1364//562
+f 1352//563 1353//563 1366//563 1365//563
+f 1353//564 1354//564 1367//564 1366//564
+f 1354//565 1355//565 1368//565 1367//565
+f 1355//190 1356//190 1369//190 1368//190
+f 1356//566 1357//566 1370//566 1369//566
+f 1357//567 1345//567 1358//567 1370//567
+f 1358//536 1359//536 1372//536 1371//536
+f 1359//537 1360//537 1373//537 1372//537
+f 1360//538 1361//538 1374//538 1373//538
+f 1361//539 1362//539 1375//539 1374//539
+f 1362//540 1363//540 1376//540 1375//540
+f 1363//88 1364//88 1377//88 1376//88
+f 1364//541 1365//541 1378//541 1377//541
+f 1365//542 1366//542 1379//542 1378//542
+f 1366//543 1367//543 1380//543 1379//543
+f 1367//93 1368//93 1381//93 1380//93
+f 1368//544 1369//544 1382//544 1381//544
+f 1369//545 1370//545 1383//545 1382//545
+f 1370//538 1358//538 1371//538 1383//538
+usemtl champagne
+f 1384//45 1392//45 1391//45
+f 1409//46 1410//46 1402//46
+f 1384//45 1391//45 1390//45
+f 1408//46 1409//46 1402//46
+f 1384//45 1390//45 1389//45
+f 1407//46 1408//46 1402//46
+f 1384//45 1389//45 1388//45
+f 1406//46 1407//46 1402//46
+f 1384//45 1388//45 1387//45
+f 1405//46 1406//46 1402//46
+f 1387//45 1386//45 1385//45
+f 1403//46 1404//46 1405//46
+f 1387//45 1385//45 1384//45
+f 1402//46 1403//46 1405//46
+f 1384//568 1385//568 1394//568 1393//568
+f 1385//569 1386//569 1395//569 1394//569
+f 1386//139 1387//139 1396//139 1395//139
+f 1387//570 1388//570 1397//570 1396//570
+f 1388//571 1389//571 1398//571 1397//571
+f 1389//572 1390//572 1399//572 1398//572
+f 1390//573 1391//573 1400//573 1399//573
+f 1391//574 1392//574 1401//574 1400//574
+f 1392//147 1384//147 1393//147 1401//147
+f 1393//575 1394//575 1403//575 1402//575
+f 1394//576 1395//576 1404//576 1403//576
+f 1395//148 1396//148 1405//148 1404//148
+f 1396//577 1397//577 1406//577 1405//577
+f 1397//578 1398//578 1407//578 1406//578
+f 1398//579 1399//579 1408//579 1407//579
+f 1399//580 1400//580 1409//580 1408//580
+f 1400//581 1401//581 1410//581 1409//581
+f 1401//149 1393//149 1402//149 1410//149
+f 1411//45 1419//45 1418//45
+f 1436//46 1437//46 1429//46
+f 1411//45 1418//45 1417//45
+f 1435//46 1436//46 1429//46
+f 1411//45 1417//45 1416//45
+f 1434//46 1435//46 1429//46
+f 1411//45 1416//45 1415//45
+f 1433//46 1434//46 1429//46
+f 1411//45 1415//45 1414//45
+f 1432//46 1433//46 1429//46
+f 1414//45 1413//45 1412//45
+f 1430//46 1431//46 1432//46
+f 1414//45 1412//45 1411//45
+f 1429//46 1430//46 1432//46
+f 1411//582 1412//582 1421//582 1420//582
+f 1412//583 1413//583 1422//583 1421//583
+f 1413//158 1414//158 1423//158 1422//158
+f 1414//584 1415//584 1424//584 1423//584
+f 1415//585 1416//585 1425//585 1424//585
+f 1416//586 1417//586 1426//586 1425//586
+f 1417//587 1418//587 1427//587 1426//587
+f 1418//588 1419//588 1428//588 1427//588
+f 1419//159 1411//159 1420//159 1428//159
+f 1420//568 1421//568 1430//568 1429//568
+f 1421//569 1422//569 1431//569 1430//569
+f 1422//139 1423//139 1432//139 1431//139
+f 1423//570 1424//570 1433//570 1432//570
+f 1424//571 1425//571 1434//571 1433//571
+f 1425//572 1426//572 1435//572 1434//572
+f 1426//573 1427//573 1436//573 1435//573
+f 1427//574 1428//574 1437//574 1436//574
+f 1428//147 1420//147 1429//147 1437//147
+f 1438//45 1451//45 1450//45
+f 1478//46 1479//46 1466//46
+f 1438//45 1450//45 1449//45
+f 1477//46 1478//46 1466//46
+f 1449//45 1448//45 1447//45
+f 1475//46 1476//46 1477//46
+f 1438//45 1449//45 1447//45
+f 1475//46 1477//46 1466//46
+f 1438//45 1447//45 1446//45
+f 1474//45 1475//45 1466//45
+f 1438//45 1446//45 1445//45
+f 1473//46 1474//46 1466//46
+f 1445//45 1444//45 1443//45
+f 1471//46 1472//46 1473//46
+f 1445//45 1443//45 1442//45
+f 1470//45 1471//45 1473//45
+f 1438//45 1445//45 1442//45
+f 1470//45 1473//45 1466//45
+f 1442//45 1441//45 1440//45
+f 1468//46 1469//46 1470//46
+f 1442//45 1440//45 1439//45
+f 1467//46 1468//46 1470//46
+f 1442//45 1439//45 1438//45
+f 1466//46 1467//46 1470//46
+f 1438//589 1439//589 1453//589 1452//589
+f 1439//147 1440//147 1454//147 1453//147
+f 1440//139 1441//139 1455//139 1454//139
+f 1441//590 1442//590 1456//590 1455//590
+f 1442//139 1443//139 1457//139 1456//139
+f 1443//591 1444//591 1458//591 1457//591
+f 1444//592 1445//592 1459//592 1458//592
+f 1445//593 1446//593 1460//593 1459//593
+f 1446//594 1447//594 1461//594 1460//594
+f 1447//92 1448//92 1462//92 1461//92
+f 1448//174 1449//174 1463//174 1462//174
+f 1449//595 1450//595 1464//595 1463//595
+f 1450//596 1451//596 1465//596 1464//596
+f 1451//519 1438//519 1452//519 1465//519
+f 1452//597 1453//597 1467//597 1466//597
+f 1453//149 1454//149 1468//149 1467//149
+f 1454//148 1455//148 1469//148 1468//148
+f 1455//598 1456//598 1470//598 1469//598
+f 1456//148 1457//148 1471//148 1470//148
+f 1457//599 1458//599 1472//599 1471//599
+f 1458//600 1459//600 1473//600 1472//600
+f 1459//601 1460//601 1474//601 1473//601
+f 1460//602 1461//602 1475//602 1474//602
+f 1461//111 1462//111 1476//111 1475//111
+f 1462//180 1463//180 1477//180 1476//180
+f 1463//603 1464//603 1478//603 1477//603
+f 1464//180 1465//180 1479//180 1478//180
+f 1465//527 1452//527 1466//527 1479//527
+f 1480//45 1493//45 1492//45
+f 1520//46 1521//46 1508//46
+f 1480//45 1492//45 1491//45
+f 1519//46 1520//46 1508//46
+f 1491//45 1490//45 1489//45
+f 1517//46 1518//46 1519//46
+f 1480//45 1491//45 1489//45
+f 1517//46 1519//46 1508//46
+f 1480//46 1489//46 1488//46
+f 1516//46 1517//46 1508//46
+f 1480//45 1488//45 1487//45
+f 1515//46 1516//46 1508//46
+f 1487//45 1486//45 1485//45
+f 1513//46 1514//46 1515//46
+f 1487//46 1485//46 1484//46
+f 1512//46 1513//46 1515//46
+f 1480//46 1487//46 1484//46
+f 1512//46 1515//46 1508//46
+f 1484//45 1483//45 1482//45
+f 1510//46 1511//46 1512//46
+f 1484//45 1482//45 1481//45
+f 1509//46 1510//46 1512//46
+f 1484//45 1481//45 1480//45
+f 1508//46 1509//46 1512//46
+f 1480//604 1481//604 1495//604 1494//604
+f 1481//159 1482//159 1496//159 1495//159
+f 1482//158 1483//158 1497//158 1496//158
+f 1483//605 1484//605 1498//605 1497//605
+f 1484//158 1485//158 1499//158 1498//158
+f 1485//606 1486//606 1500//606 1499//606
+f 1486//607 1487//607 1501//607 1500//607
+f 1487//608 1488//608 1502//608 1501//608
+f 1488//609 1489//609 1503//609 1502//609
+f 1489//130 1490//130 1504//130 1503//130
+f 1490//190 1491//190 1505//190 1504//190
+f 1491//610 1492//610 1506//610 1505//610
+f 1492//190 1493//190 1507//190 1506//190
+f 1493//535 1480//535 1494//535 1507//535
+f 1494//589 1495//589 1509//589 1508//589
+f 1495//147 1496//147 1510//147 1509//147
+f 1496//139 1497//139 1511//139 1510//139
+f 1497//590 1498//590 1512//590 1511//590
+f 1498//139 1499//139 1513//139 1512//139
+f 1499//591 1500//591 1514//591 1513//591
+f 1500//592 1501//592 1515//592 1514//592
+f 1501//593 1502//593 1516//593 1515//593
+f 1502//594 1503//594 1517//594 1516//594
+f 1503//92 1504//92 1518//92 1517//92
+f 1504//174 1505//174 1519//174 1518//174
+f 1505//595 1506//595 1520//595 1519//595
+f 1506//596 1507//596 1521//596 1520//596
+f 1507//519 1494//519 1508//519 1521//519
+f 1522//45 1534//45 1533//45
+f 1559//46 1560//46 1548//46
+f 1522//45 1533//45 1532//45
+f 1558//46 1559//46 1548//46
+f 1522//45 1532//45 1531//45
+f 1557//46 1558//46 1548//46
+f 1522//45 1531//45 1530//45
+f 1556//46 1557//46 1548//46
+f 1530//45 1529//45 1528//45
+f 1554//46 1555//46 1556//46
+f 1522//45 1530//45 1528//45
+f 1554//46 1556//46 1548//46
+f 1522//45 1528//45 1527//45
+f 1553//46 1554//46 1548//46
+f 1522//45 1527//45 1526//45
+f 1552//46 1553//46 1548//46
+f 1522//45 1526//45 1525//45
+f 1551//46 1552//46 1548//46
+f 1522//45 1525//45 1524//45
+f 1550//46 1551//46 1548//46
+f 1524//45 1523//45 1522//45
+f 1548//46 1549//46 1550//46
+f 1522//611 1523//611 1536//611 1535//611
+f 1523//47 1524//47 1537//47 1536//47
+f 1524//612 1525//612 1538//612 1537//612
+f 1525//88 1526//88 1539//88 1538//88
+f 1526//613 1527//613 1540//613 1539//613
+f 1527//614 1528//614 1541//614 1540//614
+f 1528//92 1529//92 1542//92 1541//92
+f 1529//95 1530//95 1543//95 1542//95
+f 1530//615 1531//615 1544//615 1543//615
+f 1531//616 1532//616 1545//616 1544//616
+f 1532//171 1533//171 1546//171 1545//171
+f 1533//95 1534//95 1547//95 1546//95
+f 1534//617 1522//617 1535//617 1547//617
+f 1535//618 1536//618 1549//618 1548//618
+f 1536//272 1537//272 1550//272 1549//272
+f 1537//619 1538//619 1551//619 1550//619
+f 1538//620 1539//620 1552//620 1551//620
+f 1539//621 1540//621 1553//621 1552//621
+f 1540//622 1541//622 1554//622 1553//622
+f 1541//111 1542//111 1555//111 1554//111
+f 1542//114 1543//114 1556//114 1555//114
+f 1543//623 1544//623 1557//623 1556//623
+f 1544//624 1545//624 1558//624 1557//624
+f 1545//180 1546//180 1559//180 1558//180
+f 1546//114 1547//114 1560//114 1559//114
+f 1547//625 1535//625 1548//625 1560//625
+f 1561//45 1573//45 1572//45
+f 1598//46 1599//46 1587//46
+f 1561//45 1572//45 1571//45
+f 1597//46 1598//46 1587//46
+f 1561//45 1571//45 1570//45
+f 1596//46 1597//46 1587//46
+f 1561//45 1570//45 1569//45
+f 1595//46 1596//46 1587//46
+f 1569//45 1568//45 1567//45
+f 1593//46 1594//46 1595//46
+f 1561//45 1569//45 1567//45
+f 1593//46 1595//46 1587//46
+f 1561//45 1567//45 1566//45
+f 1592//46 1593//46 1587//46
+f 1561//45 1566//45 1565//45
+f 1591//46 1592//46 1587//46
+f 1561//45 1565//45 1564//45
+f 1590//46 1591//46 1587//46
+f 1561//45 1564//45 1563//45
+f 1589//46 1590//46 1587//46
+f 1563//45 1562//45 1561//45
+f 1587//46 1588//46 1589//46
+f 1561//626 1562//626 1575//626 1574//626
+f 1562//287 1563//287 1576//287 1575//287
+f 1563//627 1564//627 1577//627 1576//627
+f 1564//628 1565//628 1578//628 1577//628
+f 1565//629 1566//629 1579//629 1578//629
+f 1566//630 1567//630 1580//630 1579//630
+f 1567//130 1568//130 1581//130 1580//130
+f 1568//133 1569//133 1582//133 1581//133
+f 1569//631 1570//631 1583//631 1582//631
+f 1570//632 1571//632 1584//632 1583//632
+f 1571//190 1572//190 1585//190 1584//190
+f 1572//133 1573//133 1586//133 1585//133
+f 1573//633 1561//633 1574//633 1586//633
+f 1574//611 1575//611 1588//611 1587//611
+f 1575//47 1576//47 1589//47 1588//47
+f 1576//612 1577//612 1590//612 1589//612
+f 1577//88 1578//88 1591//88 1590//88
+f 1578//613 1579//613 1592//613 1591//613
+f 1579//614 1580//614 1593//614 1592//614
+f 1580//92 1581//92 1594//92 1593//92
+f 1581//95 1582//95 1595//95 1594//95
+f 1582//615 1583//615 1596//615 1595//615
+f 1583//616 1584//616 1597//616 1596//616
+f 1584//171 1585//171 1598//171 1597//171
+f 1585//95 1586//95 1599//95 1598//95
+f 1586//617 1574//617 1587//617 1599//617
+usemtl dark
+f 1600//45 1610//45 1609//45
+f 1631//46 1632//46 1622//46
+f 1600//45 1609//45 1608//45
+f 1630//46 1631//46 1622//46
+f 1600//45 1608//45 1607//45
+f 1629//46 1630//46 1622//46
+f 1600//45 1607//45 1606//45
+f 1628//46 1629//46 1622//46
+f 1600//45 1606//45 1605//45
+f 1627//46 1628//46 1622//46
+f 1600//45 1605//45 1604//45
+f 1626//46 1627//46 1622//46
+f 1600//45 1604//45 1603//45
+f 1625//46 1626//46 1622//46
+f 1600//45 1603//45 1602//45
+f 1624//46 1625//46 1622//46
+f 1602//45 1601//45 1600//45
+f 1622//46 1623//46 1624//46
+f 1600//634 1601//634 1612//634 1611//634
+f 1601//139 1602//139 1613//139 1612//139
+f 1602//635 1603//635 1614//635 1613//635
+f 1603//636 1604//636 1615//636 1614//636
+f 1604//637 1605//637 1616//637 1615//637
+f 1605//638 1606//638 1617//638 1616//638
+f 1606//639 1607//639 1618//639 1617//639
+f 1607//640 1608//640 1619//640 1618//640
+f 1608//88 1609//88 1620//88 1619//88
+f 1609//641 1610//641 1621//641 1620//641
+f 1610//642 1600//642 1611//642 1621//642
+f 1611//643 1612//643 1623//643 1622//643
+f 1612//148 1613//148 1624//148 1623//148
+f 1613//644 1614//644 1625//644 1624//644
+f 1614//645 1615//645 1626//645 1625//645
+f 1615//646 1616//646 1627//646 1626//646
+f 1616//647 1617//647 1628//647 1627//647
+f 1617//648 1618//648 1629//648 1628//648
+f 1618//649 1619//649 1630//649 1629//649
+f 1619//107 1620//107 1631//107 1630//107
+f 1620//650 1621//650 1632//650 1631//650
+f 1621//651 1611//651 1622//651 1632//651
+f 1633//45 1643//45 1642//45
+f 1664//46 1665//46 1655//46
+f 1633//45 1642//45 1641//45
+f 1663//46 1664//46 1655//46
+f 1633//45 1641//45 1640//45
+f 1662//46 1663//46 1655//46
+f 1633//45 1640//45 1639//45
+f 1661//46 1662//46 1655//46
+f 1633//45 1639//45 1638//45
+f 1660//46 1661//46 1655//46
+f 1633//45 1638//45 1637//45
+f 1659//46 1660//46 1655//46
+f 1633//45 1637//45 1636//45
+f 1658//46 1659//46 1655//46
+f 1633//45 1636//45 1635//45
+f 1657//46 1658//46 1655//46
+f 1635//45 1634//45 1633//45
+f 1655//46 1656//46 1657//46
+f 1633//652 1634//652 1645//652 1644//652
+f 1634//158 1635//158 1646//158 1645//158
+f 1635//653 1636//653 1647//653 1646//653
+f 1636//654 1637//654 1648//654 1647//654
+f 1637//655 1638//655 1649//655 1648//655
+f 1638//656 1639//656 1650//656 1649//656
+f 1639//657 1640//657 1651//657 1650//657
+f 1640//658 1641//658 1652//658 1651//658
+f 1641//126 1642//126 1653//126 1652//126
+f 1642//659 1643//659 1654//659 1653//659
+f 1643//660 1633//660 1644//660 1654//660
+f 1644//634 1645//634 1656//634 1655//634
+f 1645//139 1646//139 1657//139 1656//139
+f 1646//635 1647//635 1658//635 1657//635
+f 1647//636 1648//636 1659//636 1658//636
+f 1648//637 1649//637 1660//637 1659//637
+f 1649//638 1650//638 1661//638 1660//638
+f 1650//639 1651//639 1662//639 1661//639
+f 1651//640 1652//640 1663//640 1662//640
+f 1652//88 1653//88 1664//88 1663//88
+f 1653//641 1654//641 1665//641 1664//641
+f 1654//642 1644//642 1655//642 1665//642
+o tail
+usemtl frame
+f 1666//661 1667//661 1688//661 1687//661
+f 1667//662 1668//662 1689//662 1688//662
+f 1668//663 1669//663 1690//663 1689//663
+f 1669//664 1670//664 1691//664 1690//664
+f 1670//665 1671//665 1692//665 1691//665
+f 1671//666 1672//666 1693//666 1692//666
+f 1672//667 1673//667 1694//667 1693//667
+f 1673//668 1674//668 1695//668 1694//668
+f 1674//669 1675//669 1696//669 1695//669
+f 1675//670 1676//670 1697//670 1696//670
+f 1676//671 1677//671 1698//671 1697//671
+f 1677//672 1678//672 1699//672 1698//672
+f 1678//673 1679//673 1700//673 1699//673
+f 1679//674 1680//674 1701//674 1700//674
+f 1680//675 1681//675 1702//675 1701//675
+f 1681//676 1682//676 1703//676 1702//676
+f 1682//677 1683//677 1704//677 1703//677
+f 1683//678 1684//678 1705//678 1704//678
+f 1684//679 1685//679 1706//679 1705//679
+f 1685//680 1686//680 1707//680 1706//680
+f 1686//681 1666//681 1687//681 1707//681
+f 1687//682 1688//682 1709//682 1708//682
+f 1688//683 1689//683 1710//683 1709//683
+f 1689//684 1690//684 1711//684 1710//684
+f 1690//685 1691//685 1712//685 1711//685
+f 1691//686 1692//686 1713//686 1712//686
+f 1692//687 1693//687 1714//687 1713//687
+f 1693//688 1694//688 1715//688 1714//688
+f 1694//689 1695//689 1716//689 1715//689
+f 1695//690 1696//690 1717//690 1716//690
+f 1696//691 1697//691 1718//691 1717//691
+f 1697//692 1698//692 1719//692 1718//692
+f 1698//693 1699//693 1720//693 1719//693
+f 1699//694 1700//694 1721//694 1720//694
+f 1700//695 1701//695 1722//695 1721//695
+f 1701//696 1702//696 1723//696 1722//696
+f 1702//697 1703//697 1724//697 1723//697
+f 1703//698 1704//698 1725//698 1724//698
+f 1704//699 1705//699 1726//699 1725//699
+f 1705//700 1706//700 1727//700 1726//700
+f 1706//701 1707//701 1728//701 1727//701
+f 1707//702 1687//702 1708//702 1728//702
+f 1666//45 1686//45 1685//45
+f 1727//46 1728//46 1708//46
+f 1666//45 1685//45 1684//45
+f 1726//46 1727//46 1708//46
+f 1666//45 1684//45 1683//45
+f 1725//46 1726//46 1708//46
+f 1666//45 1683//45 1682//45
+f 1724//46 1725//46 1708//46
+f 1680//45 1679//45 1678//45
+f 1720//46 1721//46 1722//46
+f 1680//45 1678//45 1677//45
+f 1719//46 1720//46 1722//46
+f 1677//45 1676//45 1675//45
+f 1717//46 1718//46 1719//46
+f 1680//45 1677//45 1675//45
+f 1717//46 1719//46 1722//46
+f 1680//45 1675//45 1674//45
+f 1716//46 1717//46 1722//46
+f 1680//45 1674//45 1673//45
+f 1715//46 1716//46 1722//46
+f 1680//45 1673//45 1672//45
+f 1714//46 1715//46 1722//46
+f 1681//45 1680//45 1672//45
+f 1714//46 1722//46 1723//46
+f 1682//45 1681//45 1672//45
+f 1714//46 1723//46 1724//46
+f 1666//45 1682//45 1672//45
+f 1714//46 1724//46 1708//46
+f 1672//45 1671//45 1670//45
+f 1712//46 1713//46 1714//46
+f 1666//45 1672//45 1670//45
+f 1712//46 1714//46 1708//46
+f 1666//45 1670//45 1669//45
+f 1711//46 1712//46 1708//46
+f 1666//45 1669//45 1668//45
+f 1710//46 1711//46 1708//46
+f 1668//45 1667//45 1666//45
+f 1708//46 1709//46 1710//46
+usemtl champagne
+f 1729//45 1738//45 1737//45
+f 1757//46 1758//46 1749//46
+f 1729//45 1737//45 1736//45
+f 1756//46 1757//46 1749//46
+f 1729//45 1736//45 1735//45
+f 1755//46 1756//46 1749//46
+f 1729//45 1735//45 1734//45
+f 1754//46 1755//46 1749//46
+f 1729//45 1734//45 1733//45
+f 1753//46 1754//46 1749//46
+f 1729//45 1733//45 1732//45
+f 1752//46 1753//46 1749//46
+f 1732//45 1731//45 1730//45
+f 1750//46 1751//46 1752//46
+f 1732//45 1730//45 1729//45
+f 1749//46 1750//46 1752//46
+f 1729//703 1730//703 1740//703 1739//703
+f 1730//95 1731//95 1741//95 1740//95
+f 1731//139 1732//139 1742//139 1741//139
+f 1732//704 1733//704 1743//704 1742//704
+f 1733//705 1734//705 1744//705 1743//705
+f 1734//706 1735//706 1745//706 1744//706
+f 1735//88 1736//88 1746//88 1745//88
+f 1736//707 1737//707 1747//707 1746//707
+f 1737//708 1738//708 1748//708 1747//708
+f 1738//709 1729//709 1739//709 1748//709
+f 1739//710 1740//710 1750//710 1749//710
+f 1740//114 1741//114 1751//114 1750//114
+f 1741//148 1742//148 1752//148 1751//148
+f 1742//711 1743//711 1753//711 1752//711
+f 1743//712 1744//712 1754//712 1753//712
+f 1744//713 1745//713 1755//713 1754//713
+f 1745//620 1746//620 1756//620 1755//620
+f 1746//714 1747//714 1757//714 1756//714
+f 1747//715 1748//715 1758//715 1757//715
+f 1748//716 1739//716 1749//716 1758//716
+f 1759//45 1768//45 1767//45
+f 1787//46 1788//46 1779//46
+f 1759//45 1767//45 1766//45
+f 1786//46 1787//46 1779//46
+f 1759//45 1766//45 1765//45
+f 1785//46 1786//46 1779//46
+f 1759//45 1765//45 1764//45
+f 1784//46 1785//46 1779//46
+f 1759//45 1764//45 1763//45
+f 1783//46 1784//46 1779//46
+f 1759//45 1763//45 1762//45
+f 1782//46 1783//46 1779//46
+f 1762//45 1761//45 1760//45
+f 1780//46 1781//46 1782//46
+f 1762//45 1760//45 1759//45
+f 1779//46 1780//46 1782//46
+f 1759//717 1760//717 1770//717 1769//717
+f 1760//133 1761//133 1771//133 1770//133
+f 1761//158 1762//158 1772//158 1771//158
+f 1762//718 1763//718 1773//718 1772//718
+f 1763//719 1764//719 1774//719 1773//719
+f 1764//720 1765//720 1775//720 1774//720
+f 1765//628 1766//628 1776//628 1775//628
+f 1766//721 1767//721 1777//721 1776//721
+f 1767//722 1768//722 1778//722 1777//722
+f 1768//723 1759//723 1769//723 1778//723
+f 1769//703 1770//703 1780//703 1779//703
+f 1770//95 1771//95 1781//95 1780//95
+f 1771//139 1772//139 1782//139 1781//139
+f 1772//704 1773//704 1783//704 1782//704
+f 1773//705 1774//705 1784//705 1783//705
+f 1774//706 1775//706 1785//706 1784//706
+f 1775//88 1776//88 1786//88 1785//88
+f 1776//707 1777//707 1787//707 1786//707
+f 1777//708 1778//708 1788//708 1787//708
+f 1778//709 1769//709 1779//709 1788//709
+f 1927//45 1941//45 1940//45
+f 1970//46 1971//46 1957//46
+f 1927//45 1940//45 1939//45
+f 1969//46 1970//46 1957//46
+f 1927//45 1939//45 1938//45
+f 1968//46 1969//46 1957//46
+f 1938//45 1937//45 1936//45
+f 1966//46 1967//46 1968//46
+f 1938//45 1936//45 1935//45
+f 1965//46 1966//46 1968//46
+f 1927//45 1938//45 1935//45
+f 1965//46 1968//46 1957//46
+f 1927//45 1935//45 1934//45
+f 1964//46 1965//46 1957//46
+f 1927//45 1934//45 1933//45
+f 1963//46 1964//46 1957//46
+f 1927//45 1933//45 1932//45
+f 1962//46 1963//46 1957//46
+f 1927//45 1932//45 1931//45
+f 1961//46 1962//46 1957//46
+f 1931//45 1930//45 1929//45
+f 1959//46 1960//46 1961//46
+f 1931//45 1929//45 1928//45
+f 1958//46 1959//46 1961//46
+f 1931//45 1928//45 1927//45
+f 1957//46 1958//46 1961//46
+f 1927//724 1928//724 1943//724 1942//724
+f 1928//725 1929//725 1944//725 1943//725
+f 1929//58 1930//58 1945//58 1944//58
+f 1930//726 1931//726 1946//726 1945//726
+f 1931//727 1932//727 1947//727 1946//727
+f 1932//728 1933//728 1948//728 1947//728
+f 1933//391 1934//391 1949//391 1948//391
+f 1934//729 1935//729 1950//729 1949//729
+f 1935//730 1936//730 1951//730 1950//730
+f 1936//88 1937//88 1952//88 1951//88
+f 1937//174 1938//174 1953//174 1952//174
+f 1938//731 1939//731 1954//731 1953//731
+f 1939//732 1940//732 1955//732 1954//732
+f 1940//733 1941//733 1956//733 1955//733
+f 1941//734 1927//734 1942//734 1956//734
+f 1942//735 1943//735 1958//735 1957//735
+f 1943//736 1944//736 1959//736 1958//736
+f 1944//149 1945//149 1960//149 1959//149
+f 1945//737 1946//737 1961//737 1960//737
+f 1946//738 1947//738 1962//738 1961//738
+f 1947//739 1948//739 1963//739 1962//739
+f 1948//740 1949//740 1964//740 1963//740
+f 1949//741 1950//741 1965//741 1964//741
+f 1950//742 1951//742 1966//742 1965//742
+f 1951//107 1952//107 1967//107 1966//107
+f 1952//180 1953//180 1968//180 1967//180
+f 1953//743 1954//743 1969//743 1968//743
+f 1954//744 1955//744 1970//744 1969//744
+f 1955//745 1956//745 1971//745 1970//745
+f 1956//746 1942//746 1957//746 1971//746
+f 1972//45 1986//45 1985//45
+f 2015//46 2016//46 2002//46
+f 1972//45 1985//45 1984//45
+f 2014//46 2015//46 2002//46
+f 1972//45 1984//45 1983//45
+f 2013//46 2014//46 2002//46
+f 1983//45 1982//45 1981//45
+f 2011//46 2012//46 2013//46
+f 1983//45 1981//45 1980//45
+f 2010//46 2011//46 2013//46
+f 1972//45 1983//45 1980//45
+f 2010//46 2013//46 2002//46
+f 1972//45 1980//45 1979//45
+f 2009//46 2010//46 2002//46
+f 1972//45 1979//45 1978//45
+f 2008//46 2009//46 2002//46
+f 1972//45 1978//45 1977//45
+f 2007//46 2008//46 2002//46
+f 1972//45 1977//45 1976//45
+f 2006//46 2007//46 2002//46
+f 1976//45 1975//45 1974//45
+f 2004//46 2005//46 2006//46
+f 1976//45 1974//45 1973//45
+f 2003//46 2004//46 2006//46
+f 1976//45 1973//45 1972//45
+f 2002//46 2003//46 2006//46
+f 1972//747 1973//747 1988//747 1987//747
+f 1973//748 1974//748 1989//748 1988//748
+f 1974//159 1975//159 1990//159 1989//159
+f 1975//749 1976//749 1991//749 1990//749
+f 1976//750 1977//750 1992//750 1991//750
+f 1977//751 1978//751 1993//751 1992//751
+f 1978//752 1979//752 1994//752 1993//752
+f 1979//753 1980//753 1995//753 1994//753
+f 1980//754 1981//754 1996//754 1995//754
+f 1981//126 1982//126 1997//126 1996//126
+f 1982//190 1983//190 1998//190 1997//190
+f 1983//755 1984//755 1999//755 1998//755
+f 1984//756 1985//756 2000//756 1999//756
+f 1985//757 1986//757 2001//757 2000//757
+f 1986//758 1972//758 1987//758 2001//758
+f 1987//724 1988//724 2003//724 2002//724
+f 1988//725 1989//725 2004//725 2003//725
+f 1989//58 1990//58 2005//58 2004//58
+f 1990//726 1991//726 2006//726 2005//726
+f 1991//727 1992//727 2007//727 2006//727
+f 1992//728 1993//728 2008//728 2007//728
+f 1993//391 1994//391 2009//391 2008//391
+f 1994//729 1995//729 2010//729 2009//729
+f 1995//730 1996//730 2011//730 2010//730
+f 1996//88 1997//88 2012//88 2011//88
+f 1997//174 1998//174 2013//174 2012//174
+f 1998//731 1999//731 2014//731 2013//731
+f 1999//732 2000//732 2015//732 2014//732
+f 2000//733 2001//733 2016//733 2015//733
+f 2001//734 1987//734 2002//734 2016//734
+f 2017//45 2030//45 2029//45
+f 2057//46 2058//46 2045//46
+f 2029//45 2028//45 2027//45
+f 2055//46 2056//46 2057//46
+f 2017//45 2029//45 2027//45
+f 2055//46 2057//46 2045//46
+f 2017//45 2027//45 2026//45
+f 2054//46 2055//46 2045//46
+f 2017//45 2026//45 2025//45
+f 2053//46 2054//46 2045//46
+f 2017//45 2025//45 2024//45
+f 2052//46 2053//46 2045//46
+f 2017//45 2024//45 2023//45
+f 2051//46 2052//46 2045//46
+f 2017//45 2023//45 2022//45
+f 2050//46 2051//46 2045//46
+f 2017//45 2022//45 2021//45
+f 2049//46 2050//46 2045//46
+f 2021//45 2020//45 2019//45
+f 2047//46 2048//46 2049//46
+f 2017//45 2021//45 2019//45
+f 2047//46 2049//46 2045//46
+f 2019//45 2018//45 2017//45
+f 2045//46 2046//46 2047//46
+f 2017//759 2018//759 2032//759 2031//759
+f 2018//760 2019//760 2033//760 2032//760
+f 2019//257 2020//257 2034//257 2033//257
+f 2020//258 2021//258 2035//258 2034//258
+f 2021//87 2022//87 2036//87 2035//87
+f 2022//144 2023//144 2037//144 2036//144
+f 2023//761 2024//761 2038//761 2037//761
+f 2024//762 2025//762 2039//762 2038//762
+f 2025//763 2026//763 2040//763 2039//763
+f 2026//764 2027//764 2041//764 2040//764
+f 2027//765 2028//765 2042//765 2041//765
+f 2028//766 2029//766 2043//766 2042//766
+f 2029//596 2030//596 2044//596 2043//596
+f 2030//519 2017//519 2031//519 2044//519
+f 2031//767 2032//767 2046//767 2045//767
+f 2032//768 2033//768 2047//768 2046//768
+f 2033//769 2034//769 2048//769 2047//769
+f 2034//770 2035//770 2049//770 2048//770
+f 2035//106 2036//106 2050//106 2049//106
+f 2036//154 2037//154 2051//154 2050//154
+f 2037//771 2038//771 2052//771 2051//771
+f 2038//772 2039//772 2053//772 2052//772
+f 2039//773 2040//773 2054//773 2053//773
+f 2040//774 2041//774 2055//774 2054//774
+f 2041//775 2042//775 2056//775 2055//775
+f 2042//776 2043//776 2057//776 2056//776
+f 2043//777 2044//777 2058//777 2057//777
+f 2044//778 2031//778 2045//778 2058//778
+f 2059//45 2072//45 2071//45
+f 2099//46 2100//46 2087//46
+f 2071//45 2070//45 2069//45
+f 2097//46 2098//46 2099//46
+f 2059//45 2071//45 2069//45
+f 2097//46 2099//46 2087//46
+f 2059//45 2069//45 2068//45
+f 2096//46 2097//46 2087//46
+f 2059//45 2068//45 2067//45
+f 2095//46 2096//46 2087//46
+f 2059//45 2067//45 2066//45
+f 2094//46 2095//46 2087//46
+f 2059//45 2066//45 2065//45
+f 2093//46 2094//46 2087//46
+f 2059//45 2065//45 2064//45
+f 2092//46 2093//46 2087//46
+f 2059//45 2064//45 2063//45
+f 2091//46 2092//46 2087//46
+f 2063//45 2062//45 2061//45
+f 2089//46 2090//46 2091//46
+f 2059//45 2063//45 2061//45
+f 2089//46 2091//46 2087//46
+f 2061//45 2060//45 2059//45
+f 2087//46 2088//46 2089//46
+f 2059//779 2060//779 2074//779 2073//779
+f 2060//780 2061//780 2075//780 2074//780
+f 2061//781 2062//781 2076//781 2075//781
+f 2062//782 2063//782 2077//782 2076//782
+f 2063//125 2064//125 2078//125 2077//125
+f 2064//164 2065//164 2079//164 2078//164
+f 2065//783 2066//783 2080//783 2079//783
+f 2066//784 2067//784 2081//784 2080//784
+f 2067//785 2068//785 2082//785 2081//785
+f 2068//786 2069//786 2083//786 2082//786
+f 2069//787 2070//787 2084//787 2083//787
+f 2070//788 2071//788 2085//788 2084//788
+f 2071//789 2072//789 2086//789 2085//789
+f 2072//790 2059//790 2073//790 2086//790
+f 2073//759 2074//759 2088//759 2087//759
+f 2074//760 2075//760 2089//760 2088//760
+f 2075//257 2076//257 2090//257 2089//257
+f 2076//258 2077//258 2091//258 2090//258
+f 2077//87 2078//87 2092//87 2091//87
+f 2078//144 2079//144 2093//144 2092//144
+f 2079//761 2080//761 2094//761 2093//761
+f 2080//762 2081//762 2095//762 2094//762
+f 2081//763 2082//763 2096//763 2095//763
+f 2082//764 2083//764 2097//764 2096//764
+f 2083//765 2084//765 2098//765 2097//765
+f 2084//766 2085//766 2099//766 2098//766
+f 2085//596 2086//596 2100//596 2099//596
+f 2086//519 2073//519 2087//519 2100//519
+usemtl glass
+f 1789//45 1796//45 1795//45
+f 1811//46 1812//46 1805//46
+f 1789//45 1795//45 1794//45
+f 1810//46 1811//46 1805//46
+f 1789//45 1794//45 1793//45
+f 1809//46 1810//46 1805//46
+f 1789//45 1793//45 1792//45
+f 1808//46 1809//46 1805//46
+f 1789//45 1792//45 1791//45
+f 1807//46 1808//46 1805//46
+f 1791//45 1790//45 1789//45
+f 1805//46 1806//46 1807//46
+f 1789//791 1790//791 1798//791 1797//791
+f 1790//792 1791//792 1799//792 1798//792
+f 1791//793 1792//793 1800//793 1799//793
+f 1792//794 1793//794 1801//794 1800//794
+f 1793//795 1794//795 1802//795 1801//795
+f 1794//88 1795//88 1803//88 1802//88
+f 1795//208 1796//208 1804//208 1803//208
+f 1796//796 1789//796 1797//796 1804//796
+f 1797//797 1798//797 1806//797 1805//797
+f 1798//798 1799//798 1807//798 1806//798
+f 1799//799 1800//799 1808//799 1807//799
+f 1800//711 1801//711 1809//711 1808//711
+f 1801//800 1802//800 1810//800 1809//800
+f 1802//107 1803//107 1811//107 1810//107
+f 1803//801 1804//801 1812//801 1811//801
+f 1804//802 1797//802 1805//802 1812//802
+f 1813//45 1820//45 1819//45
+f 1835//46 1836//46 1829//46
+f 1813//45 1819//45 1818//45
+f 1834//46 1835//46 1829//46
+f 1813//45 1818//45 1817//45
+f 1833//46 1834//46 1829//46
+f 1813//45 1817//45 1816//45
+f 1832//46 1833//46 1829//46
+f 1813//45 1816//45 1815//45
+f 1831//46 1832//46 1829//46
+f 1815//45 1814//45 1813//45
+f 1829//46 1830//46 1831//46
+f 1813//803 1814//803 1822//803 1821//803
+f 1814//804 1815//804 1823//804 1822//804
+f 1815//805 1816//805 1824//805 1823//805
+f 1816//718 1817//718 1825//718 1824//718
+f 1817//806 1818//806 1826//806 1825//806
+f 1818//126 1819//126 1827//126 1826//126
+f 1819//807 1820//807 1828//807 1827//807
+f 1820//808 1813//808 1821//808 1828//808
+f 1821//791 1822//791 1830//791 1829//791
+f 1822//792 1823//792 1831//792 1830//792
+f 1823//793 1824//793 1832//793 1831//793
+f 1824//794 1825//794 1833//794 1832//794
+f 1825//795 1826//795 1834//795 1833//795
+f 1826//88 1827//88 1835//88 1834//88
+f 1827//208 1828//208 1836//208 1835//208
+f 1828//796 1821//796 1829//796 1836//796
+f 2101//45 2108//45 2107//45
+f 2123//46 2124//46 2117//46
+f 2101//45 2107//45 2106//45
+f 2122//46 2123//46 2117//46
+f 2101//45 2106//45 2105//45
+f 2121//46 2122//46 2117//46
+f 2101//45 2105//45 2104//45
+f 2120//46 2121//46 2117//46
+f 2101//45 2104//45 2103//45
+f 2119//46 2120//46 2117//46
+f 2103//45 2102//45 2101//45
+f 2117//46 2118//46 2119//46
+f 2101//809 2102//809 2110//809 2109//809
+f 2102//810 2103//810 2111//810 2110//810
+f 2103//811 2104//811 2112//811 2111//811
+f 2104//812 2105//812 2113//812 2112//812
+f 2105//813 2106//813 2114//813 2113//813
+f 2106//814 2107//814 2115//814 2114//814
+f 2107//732 2108//732 2116//732 2115//732
+f 2108//815 2101//815 2109//815 2116//815
+f 2109//816 2110//816 2118//816 2117//816
+f 2110//817 2111//817 2119//817 2118//817
+f 2111//818 2112//818 2120//818 2119//818
+f 2112//819 2113//819 2121//819 2120//819
+f 2113//820 2114//820 2122//820 2121//820
+f 2114//821 2115//821 2123//821 2122//821
+f 2115//822 2116//822 2124//822 2123//822
+f 2116//823 2109//823 2117//823 2124//823
+f 2125//45 2132//45 2131//45
+f 2147//46 2148//46 2141//46
+f 2125//45 2131//45 2130//45
+f 2146//46 2147//46 2141//46
+f 2125//45 2130//45 2129//45
+f 2145//46 2146//46 2141//46
+f 2125//45 2129//45 2128//45
+f 2144//46 2145//46 2141//46
+f 2125//45 2128//45 2127//45
+f 2143//46 2144//46 2141//46
+f 2127//45 2126//45 2125//45
+f 2141//46 2142//46 2143//46
+f 2125//824 2126//824 2134//824 2133//824
+f 2126//825 2127//825 2135//825 2134//825
+f 2127//826 2128//826 2136//826 2135//826
+f 2128//827 2129//827 2137//827 2136//827
+f 2129//828 2130//828 2138//828 2137//828
+f 2130//829 2131//829 2139//829 2138//829
+f 2131//830 2132//830 2140//830 2139//830
+f 2132//831 2125//831 2133//831 2140//831
+f 2133//809 2134//809 2142//809 2141//809
+f 2134//810 2135//810 2143//810 2142//810
+f 2135//811 2136//811 2144//811 2143//811
+f 2136//812 2137//812 2145//812 2144//812
+f 2137//813 2138//813 2146//813 2145//813
+f 2138//814 2139//814 2147//814 2146//814
+f 2139//732 2140//732 2148//732 2147//732
+f 2140//815 2133//815 2141//815 2148//815
+usemtl dark
+f 1837//45 1851//45 1850//45
+f 1880//46 1881//46 1867//46
+f 1837//45 1850//45 1849//45
+f 1879//46 1880//46 1867//46
+f 1848//45 1847//45 1846//45
+f 1876//46 1877//46 1878//46
+f 1848//45 1846//45 1845//45
+f 1875//46 1876//46 1878//46
+f 1849//45 1848//45 1845//45
+f 1875//46 1878//46 1879//46
+f 1837//45 1849//45 1845//45
+f 1875//46 1879//46 1867//46
+f 1837//45 1845//45 1844//45
+f 1874//46 1875//46 1867//46
+f 1844//45 1843//45 1842//45
+f 1872//46 1873//46 1874//46
+f 1844//45 1842//45 1841//45
+f 1871//46 1872//46 1874//46
+f 1837//45 1844//45 1841//45
+f 1871//46 1874//46 1867//46
+f 1837//45 1841//45 1840//45
+f 1870//46 1871//46 1867//46
+f 1840//45 1839//45 1838//45
+f 1868//46 1869//46 1870//46
+f 1840//45 1838//45 1837//45
+f 1867//46 1868//46 1870//46
+f 1837//832 1838//832 1853//832 1852//832
+f 1838//833 1839//833 1854//833 1853//833
+f 1839//479 1840//479 1855//479 1854//479
+f 1840//834 1841//834 1856//834 1855//834
+f 1841//144 1842//144 1857//144 1856//144
+f 1842//835 1843//835 1858//835 1857//835
+f 1843//836 1844//836 1859//836 1858//836
+f 1844//837 1845//837 1860//837 1859//837
+f 1845//838 1846//838 1861//838 1860//838
+f 1846//839 1847//839 1862//839 1861//839
+f 1847//519 1848//519 1863//519 1862//519
+f 1848//840 1849//840 1864//840 1863//840
+f 1849//841 1850//841 1865//841 1864//841
+f 1850//842 1851//842 1866//842 1865//842
+f 1851//843 1837//843 1852//843 1866//843
+f 1852//844 1853//844 1868//844 1867//844
+f 1853//845 1854//845 1869//845 1868//845
+f 1854//272 1855//272 1870//272 1869//272
+f 1855//846 1856//846 1871//846 1870//846
+f 1856//620 1857//620 1872//620 1871//620
+f 1857//847 1858//847 1873//847 1872//847
+f 1858//848 1859//848 1874//848 1873//848
+f 1859//849 1860//849 1875//849 1874//849
+f 1860//850 1861//850 1876//850 1875//850
+f 1861//851 1862//851 1877//851 1876//851
+f 1862//185 1863//185 1878//185 1877//185
+f 1863//852 1864//852 1879//852 1878//852
+f 1864//853 1865//853 1880//853 1879//853
+f 1865//854 1866//854 1881//854 1880//854
+f 1866//855 1852//855 1867//855 1881//855
+f 1882//45 1896//45 1895//45
+f 1925//46 1926//46 1912//46
+f 1882//45 1895//45 1894//45
+f 1924//46 1925//46 1912//46
+f 1893//45 1892//45 1891//45
+f 1921//46 1922//46 1923//46
+f 1893//45 1891//45 1890//45
+f 1920//46 1921//46 1923//46
+f 1894//45 1893//45 1890//45
+f 1920//46 1923//46 1924//46
+f 1882//45 1894//45 1890//45
+f 1920//46 1924//46 1912//46
+f 1882//45 1890//45 1889//45
+f 1919//46 1920//46 1912//46
+f 1889//45 1888//45 1887//45
+f 1917//46 1918//46 1919//46
+f 1889//45 1887//45 1886//45
+f 1916//46 1917//46 1919//46
+f 1882//45 1889//45 1886//45
+f 1916//46 1919//46 1912//46
+f 1882//45 1886//45 1885//45
+f 1915//46 1916//46 1912//46
+f 1885//45 1884//45 1883//45
+f 1913//46 1914//46 1915//46
+f 1885//45 1883//45 1882//45
+f 1912//46 1913//46 1915//46
+f 1882//856 1883//856 1898//856 1897//856
+f 1883//857 1884//857 1899//857 1898//857
+f 1884//287 1885//287 1900//287 1899//287
+f 1885//858 1886//858 1901//858 1900//858
+f 1886//628 1887//628 1902//628 1901//628
+f 1887//859 1888//859 1903//859 1902//859
+f 1888//860 1889//860 1904//860 1903//860
+f 1889//861 1890//861 1905//861 1904//861
+f 1890//862 1891//862 1906//862 1905//862
+f 1891//863 1892//863 1907//863 1906//863
+f 1892//195 1893//195 1908//195 1907//195
+f 1893//864 1894//864 1909//864 1908//864
+f 1894//865 1895//865 1910//865 1909//865
+f 1895//866 1896//866 1911//866 1910//866
+f 1896//867 1882//867 1897//867 1911//867
+f 1897//832 1898//832 1913//832 1912//832
+f 1898//833 1899//833 1914//833 1913//833
+f 1899//479 1900//479 1915//479 1914//479
+f 1900//834 1901//834 1916//834 1915//834
+f 1901//144 1902//144 1917//144 1916//144
+f 1902//835 1903//835 1918//835 1917//835
+f 1903//836 1904//836 1919//836 1918//836
+f 1904//837 1905//837 1920//837 1919//837
+f 1905//838 1906//838 1921//838 1920//838
+f 1906//839 1907//839 1922//839 1921//839
+f 1907//519 1908//519 1923//519 1922//519
+f 1908//840 1909//840 1924//840 1923//840
+f 1909//841 1910//841 1925//841 1924//841
+f 1910//842 1911//842 1926//842 1925//842
+f 1911//843 1897//843 1912//843 1926//843
+o hindLegL
+usemtl frame
+f 2149//868 2150//868 2163//868 2162//868
+f 2150//662 2151//662 2164//662 2163//662
+f 2151//869 2152//869 2165//869 2164//869
+f 2152//662 2153//662 2166//662 2165//662
+f 2153//870 2154//870 2167//870 2166//870
+f 2154//662 2155//662 2168//662 2167//662
+f 2155//871 2156//871 2169//871 2168//871
+f 2156//872 2157//872 2170//872 2169//872
+f 2157//873 2158//873 2171//873 2170//873
+f 2158//872 2159//872 2172//872 2171//872
+f 2159//874 2160//874 2173//874 2172//874
+f 2160//875 2161//875 2174//875 2173//875
+f 2161//662 2149//662 2162//662 2174//662
+f 2162//876 2163//876 2176//876 2175//876
+f 2163//683 2164//683 2177//683 2176//683
+f 2164//877 2165//877 2178//877 2177//877
+f 2165//683 2166//683 2179//683 2178//683
+f 2166//878 2167//878 2180//878 2179//878
+f 2167//683 2168//683 2181//683 2180//683
+f 2168//879 2169//879 2182//879 2181//879
+f 2169//880 2170//880 2183//880 2182//880
+f 2170//881 2171//881 2184//881 2183//881
+f 2171//880 2172//880 2185//880 2184//880
+f 2172//882 2173//882 2186//882 2185//882
+f 2173//883 2174//883 2187//883 2186//883
+f 2174//683 2162//683 2175//683 2187//683
+f 2149//45 2161//45 2160//45
+f 2186//46 2187//46 2175//46
+f 2149//45 2160//45 2159//45
+f 2185//46 2186//46 2175//46
+f 2149//45 2159//45 2158//45
+f 2184//46 2185//46 2175//46
+f 2149//45 2158//45 2157//45
+f 2183//46 2184//46 2175//46
+f 2149//45 2157//45 2156//45
+f 2182//46 2183//46 2175//46
+f 2156//45 2155//45 2154//45
+f 2180//46 2181//46 2182//46
+f 2156//45 2154//45 2153//45
+f 2179//46 2180//46 2182//46
+f 2149//45 2156//45 2153//45
+f 2179//46 2182//46 2175//46
+f 2149//45 2153//45 2152//45
+f 2178//46 2179//46 2175//46
+f 2149//45 2152//45 2151//45
+f 2177//46 2178//46 2175//46
+f 2151//45 2150//45 2149//45
+f 2175//46 2176//46 2177//46
+usemtl dark
+f 2188//45 2197//45 2196//45
+f 2216//46 2217//46 2208//46
+f 2188//45 2196//45 2195//45
+f 2215//46 2216//46 2208//46
+f 2188//45 2195//45 2194//45
+f 2214//46 2215//46 2208//46
+f 2188//45 2194//45 2193//45
+f 2213//46 2214//46 2208//46
+f 2188//45 2193//45 2192//45
+f 2212//46 2213//46 2208//46
+f 2192//45 2191//45 2190//45
+f 2210//46 2211//46 2212//46
+f 2188//45 2192//45 2190//45
+f 2210//46 2212//46 2208//46
+f 2190//45 2189//45 2188//45
+f 2208//46 2209//46 2210//46
+f 2188//519 2189//519 2199//519 2198//519
+f 2189//884 2190//884 2200//884 2199//884
+f 2190//538 2191//538 2201//538 2200//538
+f 2191//885 2192//885 2202//885 2201//885
+f 2192//886 2193//886 2203//886 2202//886
+f 2193//887 2194//887 2204//887 2203//887
+f 2194//87 2195//87 2205//87 2204//87
+f 2195//888 2196//888 2206//888 2205//888
+f 2196//889 2197//889 2207//889 2206//889
+f 2197//890 2188//890 2198//890 2207//890
+f 2198//778 2199//778 2209//778 2208//778
+f 2199//891 2200//891 2210//891 2209//891
+f 2200//892 2201//892 2211//892 2210//892
+f 2201//893 2202//893 2212//893 2211//893
+f 2202//894 2203//894 2213//894 2212//894
+f 2203//895 2204//895 2214//895 2213//895
+f 2204//106 2205//106 2215//106 2214//106
+f 2205//896 2206//896 2216//896 2215//896
+f 2206//897 2207//897 2217//897 2216//897
+f 2207//898 2198//898 2208//898 2217//898
+f 2218//45 2227//45 2226//45
+f 2246//46 2247//46 2238//46
+f 2218//45 2226//45 2225//45
+f 2245//46 2246//46 2238//46
+f 2218//45 2225//45 2224//45
+f 2244//46 2245//46 2238//46
+f 2218//45 2224//45 2223//45
+f 2243//46 2244//46 2238//46
+f 2218//45 2223//45 2222//45
+f 2242//46 2243//46 2238//46
+f 2222//45 2221//45 2220//45
+f 2240//46 2241//46 2242//46
+f 2218//45 2222//45 2220//45
+f 2240//46 2242//46 2238//46
+f 2220//45 2219//45 2218//45
+f 2238//46 2239//46 2240//46
+f 2218//790 2219//790 2229//790 2228//790
+f 2219//899 2220//899 2230//899 2229//899
+f 2220//900 2221//900 2231//900 2230//900
+f 2221//901 2222//901 2232//901 2231//901
+f 2222//902 2223//902 2233//902 2232//902
+f 2223//903 2224//903 2234//903 2233//903
+f 2224//125 2225//125 2235//125 2234//125
+f 2225//904 2226//904 2236//904 2235//904
+f 2226//905 2227//905 2237//905 2236//905
+f 2227//906 2218//906 2228//906 2237//906
+f 2228//519 2229//519 2239//519 2238//519
+f 2229//884 2230//884 2240//884 2239//884
+f 2230//538 2231//538 2241//538 2240//538
+f 2231//885 2232//885 2242//885 2241//885
+f 2232//886 2233//886 2243//886 2242//886
+f 2233//887 2234//887 2244//887 2243//887
+f 2234//87 2235//87 2245//87 2244//87
+f 2235//888 2236//888 2246//888 2245//888
+f 2236//889 2237//889 2247//889 2246//889
+f 2237//890 2228//890 2238//890 2247//890
+f 2248//45 2256//45 2255//45
+f 2273//46 2274//46 2266//46
+f 2248//45 2255//45 2254//45
+f 2272//46 2273//46 2266//46
+f 2254//45 2253//45 2252//45
+f 2270//46 2271//46 2272//46
+f 2248//45 2254//45 2252//45
+f 2270//45 2272//45 2266//45
+f 2248//45 2252//45 2251//45
+f 2269//46 2270//46 2266//46
+f 2248//45 2251//45 2250//45
+f 2268//46 2269//46 2266//46
+f 2250//45 2249//45 2248//45
+f 2266//46 2267//46 2268//46
+f 2248//95 2249//95 2258//95 2257//95
+f 2249//58 2250//58 2259//58 2258//58
+f 2250//907 2251//907 2260//907 2259//907
+f 2251//908 2252//908 2261//908 2260//908
+f 2252//88 2253//88 2262//88 2261//88
+f 2253//909 2254//909 2263//909 2262//909
+f 2254//910 2255//910 2264//910 2263//910
+f 2255//911 2256//911 2265//911 2264//911
+f 2256//147 2248//147 2257//147 2265//147
+f 2257//114 2258//114 2267//114 2266//114
+f 2258//149 2259//149 2268//149 2267//149
+f 2259//912 2260//912 2269//912 2268//912
+f 2260//913 2261//913 2270//913 2269//913
+f 2261//107 2262//107 2271//107 2270//107
+f 2262//914 2263//914 2272//914 2271//914
+f 2263//915 2264//915 2273//915 2272//915
+f 2264//916 2265//916 2274//916 2273//916
+f 2265//149 2257//149 2266//149 2274//149
+f 2275//45 2283//45 2282//45
+f 2300//46 2301//46 2293//46
+f 2275//45 2282//45 2281//45
+f 2299//46 2300//46 2293//46
+f 2281//45 2280//45 2279//45
+f 2297//46 2298//46 2299//46
+f 2275//46 2281//46 2279//46
+f 2297//46 2299//46 2293//46
+f 2275//45 2279//45 2278//45
+f 2296//46 2297//46 2293//46
+f 2275//45 2278//45 2277//45
+f 2295//46 2296//46 2293//46
+f 2277//45 2276//45 2275//45
+f 2293//46 2294//46 2295//46
+f 2275//133 2276//133 2285//133 2284//133
+f 2276//159 2277//159 2286//159 2285//159
+f 2277//917 2278//917 2287//917 2286//917
+f 2278//918 2279//918 2288//918 2287//918
+f 2279//126 2280//126 2289//126 2288//126
+f 2280//919 2281//919 2290//919 2289//919
+f 2281//920 2282//920 2291//920 2290//920
+f 2282//921 2283//921 2292//921 2291//921
+f 2283//159 2275//159 2284//159 2292//159
+f 2284//95 2285//95 2294//95 2293//95
+f 2285//58 2286//58 2295//58 2294//58
+f 2286//907 2287//907 2296//907 2295//907
+f 2287//908 2288//908 2297//908 2296//908
+f 2288//88 2289//88 2298//88 2297//88
+f 2289//909 2290//909 2299//909 2298//909
+f 2290//910 2291//910 2300//910 2299//910
+f 2291//911 2292//911 2301//911 2300//911
+f 2292//147 2284//147 2293//147 2301//147
+usemtl champagne
+f 2302//45 2314//45 2313//45
+f 2339//46 2340//46 2328//46
+f 2302//45 2313//45 2312//45
+f 2338//46 2339//46 2328//46
+f 2302//45 2312//45 2311//45
+f 2337//46 2338//46 2328//46
+f 2309//45 2308//45 2307//45
+f 2333//46 2334//46 2335//46
+f 2309//45 2307//45 2306//45
+f 2332//46 2333//46 2335//46
+f 2310//45 2309//45 2306//45
+f 2332//46 2335//46 2336//46
+f 2311//45 2310//45 2306//45
+f 2332//46 2336//46 2337//46
+f 2311//45 2306//45 2305//45
+f 2331//46 2332//46 2337//46
+f 2311//45 2305//45 2304//45
+f 2330//46 2331//46 2337//46
+f 2311//45 2304//45 2303//45
+f 2329//46 2330//46 2337//46
+f 2311//45 2303//45 2302//45
+f 2328//46 2329//46 2337//46
+f 2302//139 2303//139 2316//139 2315//139
+f 2303//922 2304//922 2317//922 2316//922
+f 2304//923 2305//923 2318//923 2317//923
+f 2305//139 2306//139 2319//139 2318//139
+f 2306//924 2307//924 2320//924 2319//924
+f 2307//87 2308//87 2321//87 2320//87
+f 2308//88 2309//88 2322//88 2321//88
+f 2309//87 2310//87 2323//87 2322//87
+f 2310//925 2311//925 2324//925 2323//925
+f 2311//88 2312//88 2325//88 2324//88
+f 2312//926 2313//926 2326//926 2325//926
+f 2313//927 2314//927 2327//927 2326//927
+f 2314//58 2302//58 2315//58 2327//58
+f 2315//148 2316//148 2329//148 2328//148
+f 2316//928 2317//928 2330//928 2329//928
+f 2317//929 2318//929 2331//929 2330//929
+f 2318//148 2319//148 2332//148 2331//148
+f 2319//930 2320//930 2333//930 2332//930
+f 2320//106 2321//106 2334//106 2333//106
+f 2321//107 2322//107 2335//107 2334//107
+f 2322//106 2323//106 2336//106 2335//106
+f 2323//931 2324//931 2337//931 2336//931
+f 2324//107 2325//107 2338//107 2337//107
+f 2325//932 2326//932 2339//932 2338//932
+f 2326//933 2327//933 2340//933 2339//933
+f 2327//149 2315//149 2328//149 2340//149
+f 2341//45 2353//45 2352//45
+f 2378//46 2379//46 2367//46
+f 2341//45 2352//45 2351//45
+f 2377//46 2378//46 2367//46
+f 2341//45 2351//45 2350//45
+f 2376//46 2377//46 2367//46
+f 2348//45 2347//45 2346//45
+f 2372//46 2373//46 2374//46
+f 2348//45 2346//45 2345//45
+f 2371//46 2372//46 2374//46
+f 2349//45 2348//45 2345//45
+f 2371//46 2374//46 2375//46
+f 2350//45 2349//45 2345//45
+f 2371//46 2375//46 2376//46
+f 2350//45 2345//45 2344//45
+f 2370//46 2371//46 2376//46
+f 2350//45 2344//45 2343//45
+f 2369//46 2370//46 2376//46
+f 2350//45 2343//45 2342//45
+f 2368//46 2369//46 2376//46
+f 2350//45 2342//45 2341//45
+f 2367//46 2368//46 2376//46
+f 2341//158 2342//158 2355//158 2354//158
+f 2342//934 2343//934 2356//934 2355//934
+f 2343//935 2344//935 2357//935 2356//935
+f 2344//158 2345//158 2358//158 2357//158
+f 2345//936 2346//936 2359//936 2358//936
+f 2346//125 2347//125 2360//125 2359//125
+f 2347//126 2348//126 2361//126 2360//126
+f 2348//125 2349//125 2362//125 2361//125
+f 2349//937 2350//937 2363//937 2362//937
+f 2350//126 2351//126 2364//126 2363//126
+f 2351//938 2352//938 2365//938 2364//938
+f 2352//939 2353//939 2366//939 2365//939
+f 2353//159 2341//159 2354//159 2366//159
+f 2354//139 2355//139 2368//139 2367//139
+f 2355//922 2356//922 2369//922 2368//922
+f 2356//923 2357//923 2370//923 2369//923
+f 2357//139 2358//139 2371//139 2370//139
+f 2358//924 2359//924 2372//924 2371//924
+f 2359//87 2360//87 2373//87 2372//87
+f 2360//88 2361//88 2374//88 2373//88
+f 2361//87 2362//87 2375//87 2374//87
+f 2362//925 2363//925 2376//925 2375//925
+f 2363//88 2364//88 2377//88 2376//88
+f 2364//926 2365//926 2378//926 2377//926
+f 2365//927 2366//927 2379//927 2378//927
+f 2366//58 2354//58 2367//58 2379//58
+o foreLegL
+usemtl frame
+f 2380//940 2381//940 2387//940 2386//940
+f 2381//941 2382//941 2388//941 2387//941
+f 2382//942 2383//942 2389//942 2388//942
+f 2383//943 2384//943 2390//943 2389//943
+f 2384//944 2385//944 2391//944 2390//944
+f 2385//945 2380//945 2386//945 2391//945
+f 2386//946 2387//946 2393//946 2392//946
+f 2387//947 2388//947 2394//947 2393//947
+f 2388//948 2389//948 2395//948 2394//948
+f 2389//949 2390//949 2396//949 2395//949
+f 2390//950 2391//950 2397//950 2396//950
+f 2391//951 2386//951 2392//951 2397//951
+f 2380//45 2385//45 2384//45
+f 2396//46 2397//46 2392//46
+f 2380//45 2384//45 2383//45
+f 2395//46 2396//46 2392//46
+f 2380//45 2383//45 2382//45
+f 2394//46 2395//46 2392//46
+f 2382//45 2381//45 2380//45
+f 2392//46 2393//46 2394//46
+usemtl glass
+f 2398//45 2409//45 2408//45
+f 2432//46 2433//46 2422//46
+f 2398//45 2408//45 2407//45
+f 2431//46 2432//46 2422//46
+f 2398//45 2407//45 2406//45
+f 2430//46 2431//46 2422//46
+f 2398//45 2406//45 2405//45
+f 2429//46 2430//46 2422//46
+f 2398//45 2405//45 2404//45
+f 2428//46 2429//46 2422//46
+f 2398//45 2404//45 2403//45
+f 2427//46 2428//46 2422//46
+f 2398//45 2403//45 2402//45
+f 2426//46 2427//46 2422//46
+f 2398//45 2402//45 2401//45
+f 2425//46 2426//46 2422//46
+f 2398//45 2401//45 2400//45
+f 2424//46 2425//46 2422//46
+f 2400//45 2399//45 2398//45
+f 2422//46 2423//46 2424//46
+f 2398//952 2399//952 2411//952 2410//952
+f 2399//953 2400//953 2412//953 2411//953
+f 2400//47 2401//47 2413//47 2412//47
+f 2401//954 2402//954 2414//954 2413//954
+f 2402//539 2403//539 2415//539 2414//539
+f 2403//955 2404//955 2416//955 2415//955
+f 2404//639 2405//639 2417//639 2416//639
+f 2405//956 2406//956 2418//956 2417//956
+f 2406//957 2407//957 2419//957 2418//957
+f 2407//958 2408//958 2420//958 2419//958
+f 2408//596 2409//596 2421//596 2420//596
+f 2409//959 2398//959 2410//959 2421//959
+f 2410//960 2411//960 2423//960 2422//960
+f 2411//961 2412//961 2424//961 2423//961
+f 2412//103 2413//103 2425//103 2424//103
+f 2413//962 2414//962 2426//962 2425//962
+f 2414//963 2415//963 2427//963 2426//963
+f 2415//964 2416//964 2428//964 2427//964
+f 2416//965 2417//965 2429//965 2428//965
+f 2417//966 2418//966 2430//966 2429//966
+f 2418//967 2419//967 2431//967 2430//967
+f 2419//968 2420//968 2432//968 2431//968
+f 2420//969 2421//969 2433//969 2432//969
+f 2421//970 2410//970 2422//970 2433//970
+f 2434//45 2445//45 2444//45
+f 2468//46 2469//46 2458//46
+f 2434//45 2444//45 2443//45
+f 2467//46 2468//46 2458//46
+f 2434//45 2443//45 2442//45
+f 2466//46 2467//46 2458//46
+f 2434//45 2442//45 2441//45
+f 2465//46 2466//46 2458//46
+f 2434//45 2441//45 2440//45
+f 2464//46 2465//46 2458//46
+f 2434//45 2440//45 2439//45
+f 2463//46 2464//46 2458//46
+f 2434//45 2439//45 2438//45
+f 2462//46 2463//46 2458//46
+f 2434//45 2438//45 2437//45
+f 2461//46 2462//46 2458//46
+f 2434//45 2437//45 2436//45
+f 2460//46 2461//46 2458//46
+f 2436//45 2435//45 2434//45
+f 2458//46 2459//46 2460//46
+f 2434//971 2435//971 2447//971 2446//971
+f 2435//972 2436//972 2448//972 2447//972
+f 2436//122 2437//122 2449//122 2448//122
+f 2437//973 2438//973 2450//973 2449//973
+f 2438//974 2439//974 2451//974 2450//974
+f 2439//975 2440//975 2452//975 2451//975
+f 2440//976 2441//976 2453//976 2452//976
+f 2441//977 2442//977 2454//977 2453//977
+f 2442//978 2443//978 2455//978 2454//978
+f 2443//979 2444//979 2456//979 2455//979
+f 2444//980 2445//980 2457//980 2456//980
+f 2445//981 2434//981 2446//981 2457//981
+f 2446//952 2447//952 2459//952 2458//952
+f 2447//953 2448//953 2460//953 2459//953
+f 2448//47 2449//47 2461//47 2460//47
+f 2449//954 2450//954 2462//954 2461//954
+f 2450//539 2451//539 2463//539 2462//539
+f 2451//955 2452//955 2464//955 2463//955
+f 2452//639 2453//639 2465//639 2464//639
+f 2453//956 2454//956 2466//956 2465//956
+f 2454//957 2455//957 2467//957 2466//957
+f 2455//958 2456//958 2468//958 2467//958
+f 2456//596 2457//596 2469//596 2468//596
+f 2457//959 2446//959 2458//959 2469//959
+usemtl dark
+f 2470//45 2478//45 2477//45
+f 2495//46 2496//46 2488//46
+f 2470//45 2477//45 2476//45
+f 2494//46 2495//46 2488//46
+f 2470//45 2476//45 2475//45
+f 2493//46 2494//46 2488//46
+f 2470//45 2475//45 2474//45
+f 2492//46 2493//46 2488//46
+f 2474//45 2473//45 2472//45
+f 2490//46 2491//46 2492//46
+f 2474//45 2472//45 2471//45
+f 2489//45 2490//45 2492//45
+f 2474//45 2471//45 2470//45
+f 2488//45 2489//45 2492//45
+f 2470//982 2471//982 2480//982 2479//982
+f 2471//983 2472//983 2481//983 2480//983
+f 2472//984 2473//984 2482//984 2481//984
+f 2473//206 2474//206 2483//206 2482//206
+f 2474//985 2475//985 2484//985 2483//985
+f 2475//986 2476//986 2485//986 2484//986
+f 2476//987 2477//987 2486//987 2485//987
+f 2477//596 2478//596 2487//596 2486//596
+f 2478//519 2470//519 2479//519 2487//519
+f 2479//988 2480//988 2489//988 2488//988
+f 2480//989 2481//989 2490//989 2489//989
+f 2481//990 2482//990 2491//990 2490//990
+f 2482//211 2483//211 2492//211 2491//211
+f 2483//991 2484//991 2493//991 2492//991
+f 2484//992 2485//992 2494//992 2493//992
+f 2485//993 2486//993 2495//993 2494//993
+f 2486//994 2487//994 2496//994 2495//994
+f 2487//527 2479//527 2488//527 2496//527
+f 2497//45 2505//45 2504//45
+f 2522//46 2523//46 2515//46
+f 2497//45 2504//45 2503//45
+f 2521//46 2522//46 2515//46
+f 2497//45 2503//45 2502//45
+f 2520//46 2521//46 2515//46
+f 2497//45 2502//45 2501//45
+f 2519//46 2520//46 2515//46
+f 2501//45 2500//45 2499//45
+f 2517//46 2518//46 2519//46
+f 2501//46 2499//46 2498//46
+f 2516//46 2517//46 2519//46
+f 2501//46 2498//46 2497//46
+f 2515//46 2516//46 2519//46
+f 2497//995 2498//995 2507//995 2506//995
+f 2498//996 2499//996 2508//996 2507//996
+f 2499//997 2500//997 2509//997 2508//997
+f 2500//216 2501//216 2510//216 2509//216
+f 2501//998 2502//998 2511//998 2510//998
+f 2502//999 2503//999 2512//999 2511//999
+f 2503//1000 2504//1000 2513//1000 2512//1000
+f 2504//1001 2505//1001 2514//1001 2513//1001
+f 2505//535 2497//535 2506//535 2514//535
+f 2506//982 2507//982 2516//982 2515//982
+f 2507//983 2508//983 2517//983 2516//983
+f 2508//984 2509//984 2518//984 2517//984
+f 2509//206 2510//206 2519//206 2518//206
+f 2510//985 2511//985 2520//985 2519//985
+f 2511//986 2512//986 2521//986 2520//986
+f 2512//987 2513//987 2522//987 2521//987
+f 2513//596 2514//596 2523//596 2522//596
+f 2514//519 2506//519 2515//519 2523//519
+o hornL
+usemtl frame
+f 2524//1002 2525//1002 2530//1002 2529//1002
+f 2525//1003 2526//1003 2531//1003 2530//1003
+f 2526//1004 2527//1004 2532//1004 2531//1004
+f 2527//1005 2528//1005 2533//1005 2532//1005
+f 2528//1006 2524//1006 2529//1006 2533//1006
+f 2529//1007 2530//1007 2535//1007 2534//1007
+f 2530//1008 2531//1008 2536//1008 2535//1008
+f 2531//1009 2532//1009 2537//1009 2536//1009
+f 2532//1010 2533//1010 2538//1010 2537//1010
+f 2533//1011 2529//1011 2534//1011 2538//1011
+f 2524//45 2528//45 2527//45
+f 2537//46 2538//46 2534//46
+f 2524//45 2527//45 2526//45
+f 2536//46 2537//46 2534//46
+f 2526//45 2525//45 2524//45
+f 2534//46 2535//46 2536//46
+usemtl dark
+f 2539//45 2544//45 2543//45
+f 2555//46 2556//46 2551//46
+f 2539//45 2543//45 2542//45
+f 2554//46 2555//46 2551//46
+f 2539//45 2542//45 2541//45
+f 2553//46 2554//46 2551//46
+f 2541//45 2540//45 2539//45
+f 2551//46 2552//46 2553//46
+f 2539//1012 2540//1012 2546//1012 2545//1012
+f 2540//1013 2541//1013 2547//1013 2546//1013
+f 2541//1014 2542//1014 2548//1014 2547//1014
+f 2542//1015 2543//1015 2549//1015 2548//1015
+f 2543//1016 2544//1016 2550//1016 2549//1016
+f 2544//58 2539//58 2545//58 2550//58
+f 2545//1017 2546//1017 2552//1017 2551//1017
+f 2546//1018 2547//1018 2553//1018 2552//1018
+f 2547//1019 2548//1019 2554//1019 2553//1019
+f 2548//1020 2549//1020 2555//1020 2554//1020
+f 2549//1021 2550//1021 2556//1021 2555//1021
+f 2550//149 2545//149 2551//149 2556//149
+f 2557//45 2562//45 2561//45
+f 2573//46 2574//46 2569//46
+f 2557//45 2561//45 2560//45
+f 2572//46 2573//46 2569//46
+f 2557//45 2560//45 2559//45
+f 2571//46 2572//46 2569//46
+f 2559//45 2558//45 2557//45
+f 2569//46 2570//46 2571//46
+f 2557//1022 2558//1022 2564//1022 2563//1022
+f 2558//1023 2559//1023 2565//1023 2564//1023
+f 2559//1024 2560//1024 2566//1024 2565//1024
+f 2560//1025 2561//1025 2567//1025 2566//1025
+f 2561//1026 2562//1026 2568//1026 2567//1026
+f 2562//159 2557//159 2563//159 2568//159
+f 2563//1012 2564//1012 2570//1012 2569//1012
+f 2564//1013 2565//1013 2571//1013 2570//1013
+f 2565//1014 2566//1014 2572//1014 2571//1014
+f 2566//1015 2567//1015 2573//1015 2572//1015
+f 2567//1016 2568//1016 2574//1016 2573//1016
+f 2568//58 2563//58 2569//58 2574//58
+o hindLegR
+usemtl frame
+f 2575//868 2576//868 2589//868 2588//868
+f 2576//662 2577//662 2590//662 2589//662
+f 2577//869 2578//869 2591//869 2590//869
+f 2578//662 2579//662 2592//662 2591//662
+f 2579//870 2580//870 2593//870 2592//870
+f 2580//662 2581//662 2594//662 2593//662
+f 2581//871 2582//871 2595//871 2594//871
+f 2582//872 2583//872 2596//872 2595//872
+f 2583//873 2584//873 2597//873 2596//873
+f 2584//872 2585//872 2598//872 2597//872
+f 2585//874 2586//874 2599//874 2598//874
+f 2586//875 2587//875 2600//875 2599//875
+f 2587//662 2575//662 2588//662 2600//662
+f 2588//876 2589//876 2602//876 2601//876
+f 2589//683 2590//683 2603//683 2602//683
+f 2590//877 2591//877 2604//877 2603//877
+f 2591//683 2592//683 2605//683 2604//683
+f 2592//878 2593//878 2606//878 2605//878
+f 2593//683 2594//683 2607//683 2606//683
+f 2594//879 2595//879 2608//879 2607//879
+f 2595//880 2596//880 2609//880 2608//880
+f 2596//881 2597//881 2610//881 2609//881
+f 2597//880 2598//880 2611//880 2610//880
+f 2598//882 2599//882 2612//882 2611//882
+f 2599//883 2600//883 2613//883 2612//883
+f 2600//683 2588//683 2601//683 2613//683
+f 2575//45 2587//45 2586//45
+f 2612//46 2613//46 2601//46
+f 2575//45 2586//45 2585//45
+f 2611//46 2612//46 2601//46
+f 2575//45 2585//45 2584//45
+f 2610//46 2611//46 2601//46
+f 2575//45 2584//45 2583//45
+f 2609//46 2610//46 2601//46
+f 2575//45 2583//45 2582//45
+f 2608//46 2609//46 2601//46
+f 2582//45 2581//45 2580//45
+f 2606//46 2607//46 2608//46
+f 2582//45 2580//45 2579//45
+f 2605//46 2606//46 2608//46
+f 2575//45 2582//45 2579//45
+f 2605//46 2608//46 2601//46
+f 2575//45 2579//45 2578//45
+f 2604//46 2605//46 2601//46
+f 2575//45 2578//45 2577//45
+f 2603//46 2604//46 2601//46
+f 2577//45 2576//45 2575//45
+f 2601//46 2602//46 2603//46
+usemtl dark
+f 2614//45 2623//45 2622//45
+f 2642//46 2643//46 2634//46
+f 2614//45 2622//45 2621//45
+f 2641//46 2642//46 2634//46
+f 2614//45 2621//45 2620//45
+f 2640//46 2641//46 2634//46
+f 2614//45 2620//45 2619//45
+f 2639//46 2640//46 2634//46
+f 2614//45 2619//45 2618//45
+f 2638//46 2639//46 2634//46
+f 2618//45 2617//45 2616//45
+f 2636//46 2637//46 2638//46
+f 2614//45 2618//45 2616//45
+f 2636//46 2638//46 2634//46
+f 2616//45 2615//45 2614//45
+f 2634//46 2635//46 2636//46
+f 2614//519 2615//519 2625//519 2624//519
+f 2615//884 2616//884 2626//884 2625//884
+f 2616//538 2617//538 2627//538 2626//538
+f 2617//885 2618//885 2628//885 2627//885
+f 2618//886 2619//886 2629//886 2628//886
+f 2619//887 2620//887 2630//887 2629//887
+f 2620//87 2621//87 2631//87 2630//87
+f 2621//888 2622//888 2632//888 2631//888
+f 2622//889 2623//889 2633//889 2632//889
+f 2623//890 2614//890 2624//890 2633//890
+f 2624//778 2625//778 2635//778 2634//778
+f 2625//891 2626//891 2636//891 2635//891
+f 2626//892 2627//892 2637//892 2636//892
+f 2627//893 2628//893 2638//893 2637//893
+f 2628//894 2629//894 2639//894 2638//894
+f 2629//895 2630//895 2640//895 2639//895
+f 2630//106 2631//106 2641//106 2640//106
+f 2631//896 2632//896 2642//896 2641//896
+f 2632//897 2633//897 2643//897 2642//897
+f 2633//898 2624//898 2634//898 2643//898
+f 2644//45 2653//45 2652//45
+f 2672//46 2673//46 2664//46
+f 2644//45 2652//45 2651//45
+f 2671//46 2672//46 2664//46
+f 2644//45 2651//45 2650//45
+f 2670//46 2671//46 2664//46
+f 2644//45 2650//45 2649//45
+f 2669//46 2670//46 2664//46
+f 2644//45 2649//45 2648//45
+f 2668//46 2669//46 2664//46
+f 2648//45 2647//45 2646//45
+f 2666//46 2667//46 2668//46
+f 2644//45 2648//45 2646//45
+f 2666//46 2668//46 2664//46
+f 2646//45 2645//45 2644//45
+f 2664//46 2665//46 2666//46
+f 2644//790 2645//790 2655//790 2654//790
+f 2645//899 2646//899 2656//899 2655//899
+f 2646//900 2647//900 2657//900 2656//900
+f 2647//901 2648//901 2658//901 2657//901
+f 2648//902 2649//902 2659//902 2658//902
+f 2649//903 2650//903 2660//903 2659//903
+f 2650//125 2651//125 2661//125 2660//125
+f 2651//904 2652//904 2662//904 2661//904
+f 2652//905 2653//905 2663//905 2662//905
+f 2653//906 2644//906 2654//906 2663//906
+f 2654//519 2655//519 2665//519 2664//519
+f 2655//884 2656//884 2666//884 2665//884
+f 2656//538 2657//538 2667//538 2666//538
+f 2657//885 2658//885 2668//885 2667//885
+f 2658//886 2659//886 2669//886 2668//886
+f 2659//887 2660//887 2670//887 2669//887
+f 2660//87 2661//87 2671//87 2670//87
+f 2661//888 2662//888 2672//888 2671//888
+f 2662//889 2663//889 2673//889 2672//889
+f 2663//890 2654//890 2664//890 2673//890
+f 2674//45 2682//45 2681//45
+f 2699//46 2700//46 2692//46
+f 2674//45 2681//45 2680//45
+f 2698//46 2699//46 2692//46
+f 2680//45 2679//45 2678//45
+f 2696//46 2697//46 2698//46
+f 2674//45 2680//45 2678//45
+f 2696//45 2698//45 2692//45
+f 2674//45 2678//45 2677//45
+f 2695//46 2696//46 2692//46
+f 2674//45 2677//45 2676//45
+f 2694//46 2695//46 2692//46
+f 2676//45 2675//45 2674//45
+f 2692//46 2693//46 2694//46
+f 2674//95 2675//95 2684//95 2683//95
+f 2675//58 2676//58 2685//58 2684//58
+f 2676//907 2677//907 2686//907 2685//907
+f 2677//908 2678//908 2687//908 2686//908
+f 2678//88 2679//88 2688//88 2687//88
+f 2679//909 2680//909 2689//909 2688//909
+f 2680//910 2681//910 2690//910 2689//910
+f 2681//911 2682//911 2691//911 2690//911
+f 2682//147 2674//147 2683//147 2691//147
+f 2683//114 2684//114 2693//114 2692//114
+f 2684//149 2685//149 2694//149 2693//149
+f 2685//912 2686//912 2695//912 2694//912
+f 2686//913 2687//913 2696//913 2695//913
+f 2687//107 2688//107 2697//107 2696//107
+f 2688//914 2689//914 2698//914 2697//914
+f 2689//915 2690//915 2699//915 2698//915
+f 2690//916 2691//916 2700//916 2699//916
+f 2691//149 2683//149 2692//149 2700//149
+f 2701//45 2709//45 2708//45
+f 2726//46 2727//46 2719//46
+f 2701//45 2708//45 2707//45
+f 2725//46 2726//46 2719//46
+f 2707//45 2706//45 2705//45
+f 2723//46 2724//46 2725//46
+f 2701//46 2707//46 2705//46
+f 2723//46 2725//46 2719//46
+f 2701//45 2705//45 2704//45
+f 2722//46 2723//46 2719//46
+f 2701//45 2704//45 2703//45
+f 2721//46 2722//46 2719//46
+f 2703//45 2702//45 2701//45
+f 2719//46 2720//46 2721//46
+f 2701//133 2702//133 2711//133 2710//133
+f 2702//159 2703//159 2712//159 2711//159
+f 2703//917 2704//917 2713//917 2712//917
+f 2704//918 2705//918 2714//918 2713//918
+f 2705//126 2706//126 2715//126 2714//126
+f 2706//919 2707//919 2716//919 2715//919
+f 2707//920 2708//920 2717//920 2716//920
+f 2708//921 2709//921 2718//921 2717//921
+f 2709//159 2701//159 2710//159 2718//159
+f 2710//95 2711//95 2720//95 2719//95
+f 2711//58 2712//58 2721//58 2720//58
+f 2712//907 2713//907 2722//907 2721//907
+f 2713//908 2714//908 2723//908 2722//908
+f 2714//88 2715//88 2724//88 2723//88
+f 2715//909 2716//909 2725//909 2724//909
+f 2716//910 2717//910 2726//910 2725//910
+f 2717//911 2718//911 2727//911 2726//911
+f 2718//147 2710//147 2719//147 2727//147
+usemtl champagne
+f 2728//45 2740//45 2739//45
+f 2765//46 2766//46 2754//46
+f 2728//45 2739//45 2738//45
+f 2764//46 2765//46 2754//46
+f 2728//45 2738//45 2737//45
+f 2763//46 2764//46 2754//46
+f 2735//45 2734//45 2733//45
+f 2759//46 2760//46 2761//46
+f 2735//45 2733//45 2732//45
+f 2758//46 2759//46 2761//46
+f 2736//45 2735//45 2732//45
+f 2758//46 2761//46 2762//46
+f 2737//45 2736//45 2732//45
+f 2758//46 2762//46 2763//46
+f 2737//45 2732//45 2731//45
+f 2757//46 2758//46 2763//46
+f 2737//45 2731//45 2730//45
+f 2756//46 2757//46 2763//46
+f 2737//45 2730//45 2729//45
+f 2755//46 2756//46 2763//46
+f 2737//45 2729//45 2728//45
+f 2754//46 2755//46 2763//46
+f 2728//139 2729//139 2742//139 2741//139
+f 2729//922 2730//922 2743//922 2742//922
+f 2730//923 2731//923 2744//923 2743//923
+f 2731//139 2732//139 2745//139 2744//139
+f 2732//924 2733//924 2746//924 2745//924
+f 2733//87 2734//87 2747//87 2746//87
+f 2734//88 2735//88 2748//88 2747//88
+f 2735//87 2736//87 2749//87 2748//87
+f 2736//925 2737//925 2750//925 2749//925
+f 2737//88 2738//88 2751//88 2750//88
+f 2738//926 2739//926 2752//926 2751//926
+f 2739//927 2740//927 2753//927 2752//927
+f 2740//58 2728//58 2741//58 2753//58
+f 2741//148 2742//148 2755//148 2754//148
+f 2742//928 2743//928 2756//928 2755//928
+f 2743//929 2744//929 2757//929 2756//929
+f 2744//148 2745//148 2758//148 2757//148
+f 2745//930 2746//930 2759//930 2758//930
+f 2746//106 2747//106 2760//106 2759//106
+f 2747//107 2748//107 2761//107 2760//107
+f 2748//106 2749//106 2762//106 2761//106
+f 2749//931 2750//931 2763//931 2762//931
+f 2750//107 2751//107 2764//107 2763//107
+f 2751//932 2752//932 2765//932 2764//932
+f 2752//933 2753//933 2766//933 2765//933
+f 2753//149 2741//149 2754//149 2766//149
+f 2767//45 2779//45 2778//45
+f 2804//46 2805//46 2793//46
+f 2767//45 2778//45 2777//45
+f 2803//46 2804//46 2793//46
+f 2767//45 2777//45 2776//45
+f 2802//46 2803//46 2793//46
+f 2774//45 2773//45 2772//45
+f 2798//46 2799//46 2800//46
+f 2774//45 2772//45 2771//45
+f 2797//46 2798//46 2800//46
+f 2775//45 2774//45 2771//45
+f 2797//46 2800//46 2801//46
+f 2776//45 2775//45 2771//45
+f 2797//46 2801//46 2802//46
+f 2776//45 2771//45 2770//45
+f 2796//46 2797//46 2802//46
+f 2776//45 2770//45 2769//45
+f 2795//46 2796//46 2802//46
+f 2776//45 2769//45 2768//45
+f 2794//46 2795//46 2802//46
+f 2776//45 2768//45 2767//45
+f 2793//46 2794//46 2802//46
+f 2767//158 2768//158 2781//158 2780//158
+f 2768//934 2769//934 2782//934 2781//934
+f 2769//935 2770//935 2783//935 2782//935
+f 2770//158 2771//158 2784//158 2783//158
+f 2771//936 2772//936 2785//936 2784//936
+f 2772//125 2773//125 2786//125 2785//125
+f 2773//126 2774//126 2787//126 2786//126
+f 2774//125 2775//125 2788//125 2787//125
+f 2775//937 2776//937 2789//937 2788//937
+f 2776//126 2777//126 2790//126 2789//126
+f 2777//938 2778//938 2791//938 2790//938
+f 2778//939 2779//939 2792//939 2791//939
+f 2779//159 2767//159 2780//159 2792//159
+f 2780//139 2781//139 2794//139 2793//139
+f 2781//922 2782//922 2795//922 2794//922
+f 2782//923 2783//923 2796//923 2795//923
+f 2783//139 2784//139 2797//139 2796//139
+f 2784//924 2785//924 2798//924 2797//924
+f 2785//87 2786//87 2799//87 2798//87
+f 2786//88 2787//88 2800//88 2799//88
+f 2787//87 2788//87 2801//87 2800//87
+f 2788//925 2789//925 2802//925 2801//925
+f 2789//88 2790//88 2803//88 2802//88
+f 2790//926 2791//926 2804//926 2803//926
+f 2791//927 2792//927 2805//927 2804//927
+f 2792//58 2780//58 2793//58 2805//58
+o foreLegR
+usemtl frame
+f 2806//940 2807//940 2813//940 2812//940
+f 2807//941 2808//941 2814//941 2813//941
+f 2808//942 2809//942 2815//942 2814//942
+f 2809//943 2810//943 2816//943 2815//943
+f 2810//944 2811//944 2817//944 2816//944
+f 2811//945 2806//945 2812//945 2817//945
+f 2812//946 2813//946 2819//946 2818//946
+f 2813//947 2814//947 2820//947 2819//947
+f 2814//948 2815//948 2821//948 2820//948
+f 2815//949 2816//949 2822//949 2821//949
+f 2816//950 2817//950 2823//950 2822//950
+f 2817//951 2812//951 2818//951 2823//951
+f 2806//45 2811//45 2810//45
+f 2822//46 2823//46 2818//46
+f 2806//45 2810//45 2809//45
+f 2821//46 2822//46 2818//46
+f 2806//45 2809//45 2808//45
+f 2820//46 2821//46 2818//46
+f 2808//45 2807//45 2806//45
+f 2818//46 2819//46 2820//46
+usemtl glass
+f 2824//45 2835//45 2834//45
+f 2858//46 2859//46 2848//46
+f 2824//45 2834//45 2833//45
+f 2857//46 2858//46 2848//46
+f 2824//45 2833//45 2832//45
+f 2856//46 2857//46 2848//46
+f 2824//45 2832//45 2831//45
+f 2855//46 2856//46 2848//46
+f 2824//45 2831//45 2830//45
+f 2854//46 2855//46 2848//46
+f 2824//45 2830//45 2829//45
+f 2853//46 2854//46 2848//46
+f 2824//45 2829//45 2828//45
+f 2852//46 2853//46 2848//46
+f 2824//45 2828//45 2827//45
+f 2851//46 2852//46 2848//46
+f 2824//45 2827//45 2826//45
+f 2850//46 2851//46 2848//46
+f 2826//45 2825//45 2824//45
+f 2848//46 2849//46 2850//46
+f 2824//952 2825//952 2837//952 2836//952
+f 2825//953 2826//953 2838//953 2837//953
+f 2826//47 2827//47 2839//47 2838//47
+f 2827//954 2828//954 2840//954 2839//954
+f 2828//539 2829//539 2841//539 2840//539
+f 2829//955 2830//955 2842//955 2841//955
+f 2830//639 2831//639 2843//639 2842//639
+f 2831//956 2832//956 2844//956 2843//956
+f 2832//957 2833//957 2845//957 2844//957
+f 2833//958 2834//958 2846//958 2845//958
+f 2834//596 2835//596 2847//596 2846//596
+f 2835//959 2824//959 2836//959 2847//959
+f 2836//960 2837//960 2849//960 2848//960
+f 2837//961 2838//961 2850//961 2849//961
+f 2838//103 2839//103 2851//103 2850//103
+f 2839//962 2840//962 2852//962 2851//962
+f 2840//963 2841//963 2853//963 2852//963
+f 2841//964 2842//964 2854//964 2853//964
+f 2842//965 2843//965 2855//965 2854//965
+f 2843//966 2844//966 2856//966 2855//966
+f 2844//967 2845//967 2857//967 2856//967
+f 2845//968 2846//968 2858//968 2857//968
+f 2846//969 2847//969 2859//969 2858//969
+f 2847//970 2836//970 2848//970 2859//970
+f 2860//45 2871//45 2870//45
+f 2894//46 2895//46 2884//46
+f 2860//45 2870//45 2869//45
+f 2893//46 2894//46 2884//46
+f 2860//45 2869//45 2868//45
+f 2892//46 2893//46 2884//46
+f 2860//45 2868//45 2867//45
+f 2891//46 2892//46 2884//46
+f 2860//45 2867//45 2866//45
+f 2890//46 2891//46 2884//46
+f 2860//45 2866//45 2865//45
+f 2889//46 2890//46 2884//46
+f 2860//45 2865//45 2864//45
+f 2888//46 2889//46 2884//46
+f 2860//45 2864//45 2863//45
+f 2887//46 2888//46 2884//46
+f 2860//45 2863//45 2862//45
+f 2886//46 2887//46 2884//46
+f 2862//45 2861//45 2860//45
+f 2884//46 2885//46 2886//46
+f 2860//971 2861//971 2873//971 2872//971
+f 2861//972 2862//972 2874//972 2873//972
+f 2862//122 2863//122 2875//122 2874//122
+f 2863//973 2864//973 2876//973 2875//973
+f 2864//974 2865//974 2877//974 2876//974
+f 2865//975 2866//975 2878//975 2877//975
+f 2866//976 2867//976 2879//976 2878//976
+f 2867//977 2868//977 2880//977 2879//977
+f 2868//978 2869//978 2881//978 2880//978
+f 2869//979 2870//979 2882//979 2881//979
+f 2870//980 2871//980 2883//980 2882//980
+f 2871//981 2860//981 2872//981 2883//981
+f 2872//952 2873//952 2885//952 2884//952
+f 2873//953 2874//953 2886//953 2885//953
+f 2874//47 2875//47 2887//47 2886//47
+f 2875//954 2876//954 2888//954 2887//954
+f 2876//539 2877//539 2889//539 2888//539
+f 2877//955 2878//955 2890//955 2889//955
+f 2878//639 2879//639 2891//639 2890//639
+f 2879//956 2880//956 2892//956 2891//956
+f 2880//957 2881//957 2893//957 2892//957
+f 2881//958 2882//958 2894//958 2893//958
+f 2882//596 2883//596 2895//596 2894//596
+f 2883//959 2872//959 2884//959 2895//959
+usemtl dark
+f 2896//45 2904//45 2903//45
+f 2921//46 2922//46 2914//46
+f 2896//45 2903//45 2902//45
+f 2920//46 2921//46 2914//46
+f 2896//45 2902//45 2901//45
+f 2919//46 2920//46 2914//46
+f 2896//45 2901//45 2900//45
+f 2918//46 2919//46 2914//46
+f 2900//45 2899//45 2898//45
+f 2916//46 2917//46 2918//46
+f 2900//45 2898//45 2897//45
+f 2915//45 2916//45 2918//45
+f 2900//45 2897//45 2896//45
+f 2914//45 2915//45 2918//45
+f 2896//982 2897//982 2906//982 2905//982
+f 2897//983 2898//983 2907//983 2906//983
+f 2898//984 2899//984 2908//984 2907//984
+f 2899//206 2900//206 2909//206 2908//206
+f 2900//985 2901//985 2910//985 2909//985
+f 2901//986 2902//986 2911//986 2910//986
+f 2902//987 2903//987 2912//987 2911//987
+f 2903//596 2904//596 2913//596 2912//596
+f 2904//519 2896//519 2905//519 2913//519
+f 2905//988 2906//988 2915//988 2914//988
+f 2906//989 2907//989 2916//989 2915//989
+f 2907//990 2908//990 2917//990 2916//990
+f 2908//211 2909//211 2918//211 2917//211
+f 2909//991 2910//991 2919//991 2918//991
+f 2910//992 2911//992 2920//992 2919//992
+f 2911//993 2912//993 2921//993 2920//993
+f 2912//994 2913//994 2922//994 2921//994
+f 2913//527 2905//527 2914//527 2922//527
+f 2923//45 2931//45 2930//45
+f 2948//46 2949//46 2941//46
+f 2923//45 2930//45 2929//45
+f 2947//46 2948//46 2941//46
+f 2923//45 2929//45 2928//45
+f 2946//46 2947//46 2941//46
+f 2923//45 2928//45 2927//45
+f 2945//46 2946//46 2941//46
+f 2927//45 2926//45 2925//45
+f 2943//46 2944//46 2945//46
+f 2927//46 2925//46 2924//46
+f 2942//46 2943//46 2945//46
+f 2927//46 2924//46 2923//46
+f 2941//46 2942//46 2945//46
+f 2923//995 2924//995 2933//995 2932//995
+f 2924//996 2925//996 2934//996 2933//996
+f 2925//997 2926//997 2935//997 2934//997
+f 2926//216 2927//216 2936//216 2935//216
+f 2927//998 2928//998 2937//998 2936//998
+f 2928//999 2929//999 2938//999 2937//999
+f 2929//1000 2930//1000 2939//1000 2938//1000
+f 2930//1001 2931//1001 2940//1001 2939//1001
+f 2931//535 2923//535 2932//535 2940//535
+f 2932//982 2933//982 2942//982 2941//982
+f 2933//983 2934//983 2943//983 2942//983
+f 2934//984 2935//984 2944//984 2943//984
+f 2935//206 2936//206 2945//206 2944//206
+f 2936//985 2937//985 2946//985 2945//985
+f 2937//986 2938//986 2947//986 2946//986
+f 2938//987 2939//987 2948//987 2947//987
+f 2939//596 2940//596 2949//596 2948//596
+f 2940//519 2932//519 2941//519 2949//519
+o hornR
+usemtl frame
+f 2950//1002 2951//1002 2956//1002 2955//1002
+f 2951//1003 2952//1003 2957//1003 2956//1003
+f 2952//1004 2953//1004 2958//1004 2957//1004
+f 2953//1005 2954//1005 2959//1005 2958//1005
+f 2954//1006 2950//1006 2955//1006 2959//1006
+f 2955//1007 2956//1007 2961//1007 2960//1007
+f 2956//1008 2957//1008 2962//1008 2961//1008
+f 2957//1009 2958//1009 2963//1009 2962//1009
+f 2958//1010 2959//1010 2964//1010 2963//1010
+f 2959//1011 2955//1011 2960//1011 2964//1011
+f 2950//45 2954//45 2953//45
+f 2963//46 2964//46 2960//46
+f 2950//45 2953//45 2952//45
+f 2962//46 2963//46 2960//46
+f 2952//45 2951//45 2950//45
+f 2960//46 2961//46 2962//46
+usemtl dark
+f 2965//45 2970//45 2969//45
+f 2981//46 2982//46 2977//46
+f 2965//45 2969//45 2968//45
+f 2980//46 2981//46 2977//46
+f 2965//45 2968//45 2967//45
+f 2979//46 2980//46 2977//46
+f 2967//45 2966//45 2965//45
+f 2977//46 2978//46 2979//46
+f 2965//1012 2966//1012 2972//1012 2971//1012
+f 2966//1013 2967//1013 2973//1013 2972//1013
+f 2967//1014 2968//1014 2974//1014 2973//1014
+f 2968//1015 2969//1015 2975//1015 2974//1015
+f 2969//1016 2970//1016 2976//1016 2975//1016
+f 2970//58 2965//58 2971//58 2976//58
+f 2971//1017 2972//1017 2978//1017 2977//1017
+f 2972//1018 2973//1018 2979//1018 2978//1018
+f 2973//1019 2974//1019 2980//1019 2979//1019
+f 2974//1020 2975//1020 2981//1020 2980//1020
+f 2975//1021 2976//1021 2982//1021 2981//1021
+f 2976//149 2971//149 2977//149 2982//149
+f 2983//45 2988//45 2987//45
+f 2999//46 3000//46 2995//46
+f 2983//45 2987//45 2986//45
+f 2998//46 2999//46 2995//46
+f 2983//45 2986//45 2985//45
+f 2997//46 2998//46 2995//46
+f 2985//45 2984//45 2983//45
+f 2995//46 2996//46 2997//46
+f 2983//1022 2984//1022 2990//1022 2989//1022
+f 2984//1023 2985//1023 2991//1023 2990//1023
+f 2985//1024 2986//1024 2992//1024 2991//1024
+f 2986//1025 2987//1025 2993//1025 2992//1025
+f 2987//1026 2988//1026 2994//1026 2993//1026
+f 2988//159 2983//159 2989//159 2994//159
+f 2989//1012 2990//1012 2996//1012 2995//1012
+f 2990//1013 2991//1013 2997//1013 2996//1013
+f 2991//1014 2992//1014 2998//1014 2997//1014
+f 2992//1015 2993//1015 2999//1015 2998//1015
+f 2993//1016 2994//1016 3000//1016 2999//1016
+f 2994//58 2989//58 2995//58 3000//58
+o crest
+usemtl frame
+f 3001//1027 3002//1027 3007//1027 3006//1027
+f 3002//1028 3003//1028 3008//1028 3007//1028
+f 3003//1029 3004//1029 3009//1029 3008//1029
+f 3004//1030 3005//1030 3010//1030 3009//1030
+f 3005//1031 3001//1031 3006//1031 3010//1031
+f 3006//1032 3007//1032 3012//1032 3011//1032
+f 3007//1033 3008//1033 3013//1033 3012//1033
+f 3008//1034 3009//1034 3014//1034 3013//1034
+f 3009//1035 3010//1035 3015//1035 3014//1035
+f 3010//1036 3006//1036 3011//1036 3015//1036
+f 3001//45 3005//45 3004//45
+f 3014//46 3015//46 3011//46
+f 3001//45 3004//45 3003//45
+f 3013//46 3014//46 3011//46
+f 3003//45 3002//45 3001//45
+f 3011//46 3012//46 3013//46
+usemtl champagne
+f 3016//45 3023//45 3022//45
+f 3038//46 3039//46 3032//46
+f 3016//45 3022//45 3021//45
+f 3037//46 3038//46 3032//46
+f 3016//45 3021//45 3020//45
+f 3036//46 3037//46 3032//46
+f 3016//45 3020//45 3019//45
+f 3035//46 3036//46 3032//46
+f 3016//45 3019//45 3018//45
+f 3034//46 3035//46 3032//46
+f 3018//45 3017//45 3016//45
+f 3032//46 3033//46 3034//46
+f 3016//1037 3017//1037 3025//1037 3024//1037
+f 3017//1038 3018//1038 3026//1038 3025//1038
+f 3018//47 3019//47 3027//47 3026//47
+f 3019//1039 3020//1039 3028//1039 3027//1039
+f 3020//1014 3021//1014 3029//1014 3028//1014
+f 3021//1040 3022//1040 3030//1040 3029//1040
+f 3022//1041 3023//1041 3031//1041 3030//1041
+f 3023//58 3016//58 3024//58 3031//58
+f 3024//1042 3025//1042 3033//1042 3032//1042
+f 3025//1043 3026//1043 3034//1043 3033//1043
+f 3026//1044 3027//1044 3035//1044 3034//1044
+f 3027//1045 3028//1045 3036//1045 3035//1045
+f 3028//1046 3029//1046 3037//1046 3036//1046
+f 3029//744 3030//744 3038//744 3037//744
+f 3030//1047 3031//1047 3039//1047 3038//1047
+f 3031//185 3024//185 3032//185 3039//185
+f 3040//45 3047//45 3046//45
+f 3062//46 3063//46 3056//46
+f 3040//45 3046//45 3045//45
+f 3061//46 3062//46 3056//46
+f 3040//45 3045//45 3044//45
+f 3060//46 3061//46 3056//46
+f 3040//45 3044//45 3043//45
+f 3059//46 3060//46 3056//46
+f 3040//45 3043//45 3042//45
+f 3058//46 3059//46 3056//46
+f 3042//45 3041//45 3040//45
+f 3056//46 3057//46 3058//46
+f 3040//1048 3041//1048 3049//1048 3048//1048
+f 3041//1049 3042//1049 3050//1049 3049//1049
+f 3042//1050 3043//1050 3051//1050 3050//1050
+f 3043//1051 3044//1051 3052//1051 3051//1051
+f 3044//1052 3045//1052 3053//1052 3052//1052
+f 3045//756 3046//756 3054//756 3053//756
+f 3046//1053 3047//1053 3055//1053 3054//1053
+f 3047//195 3040//195 3048//195 3055//195
+f 3048//1037 3049//1037 3057//1037 3056//1037
+f 3049//1038 3050//1038 3058//1038 3057//1038
+f 3050//47 3051//47 3059//47 3058//47
+f 3051//1039 3052//1039 3060//1039 3059//1039
+f 3052//1014 3053//1014 3061//1014 3060//1014
+f 3053//1040 3054//1040 3062//1040 3061//1040
+f 3054//1041 3055//1041 3063//1041 3062//1041
+f 3055//58 3048//58 3056//58 3063//58
+o wingL
+usemtl frame
+f 3064//1054 3065//1054 3079//1054 3078//1054
+f 3065//1055 3066//1055 3080//1055 3079//1055
+f 3066//1056 3067//1056 3081//1056 3080//1056
+f 3067//1057 3068//1057 3082//1057 3081//1057
+f 3068//1058 3069//1058 3083//1058 3082//1058
+f 3069//1059 3070//1059 3084//1059 3083//1059
+f 3070//1060 3071//1060 3085//1060 3084//1060
+f 3071//1061 3072//1061 3086//1061 3085//1061
+f 3072//1062 3073//1062 3087//1062 3086//1062
+f 3073//1063 3074//1063 3088//1063 3087//1063
+f 3074//1064 3075//1064 3089//1064 3088//1064
+f 3075//1065 3076//1065 3090//1065 3089//1065
+f 3076//1066 3077//1066 3091//1066 3090//1066
+f 3077//1067 3064//1067 3078//1067 3091//1067
+f 3078//1068 3079//1068 3093//1068 3092//1068
+f 3079//1069 3080//1069 3094//1069 3093//1069
+f 3080//1070 3081//1070 3095//1070 3094//1070
+f 3081//1071 3082//1071 3096//1071 3095//1071
+f 3082//1072 3083//1072 3097//1072 3096//1072
+f 3083//1073 3084//1073 3098//1073 3097//1073
+f 3084//1074 3085//1074 3099//1074 3098//1074
+f 3085//1075 3086//1075 3100//1075 3099//1075
+f 3086//1076 3087//1076 3101//1076 3100//1076
+f 3087//1077 3088//1077 3102//1077 3101//1077
+f 3088//1078 3089//1078 3103//1078 3102//1078
+f 3089//1079 3090//1079 3104//1079 3103//1079
+f 3090//1080 3091//1080 3105//1080 3104//1080
+f 3091//1081 3078//1081 3092//1081 3105//1081
+f 3064//1082 3077//1082 3076//1082
+f 3104//1083 3105//1083 3092//1083
+f 3064//1084 3076//1084 3075//1084
+f 3103//1085 3104//1085 3092//1085
+f 3064//1086 3075//1086 3074//1086
+f 3102//1087 3103//1087 3092//1087
+f 3064//1086 3074//1086 3073//1086
+f 3101//1087 3102//1087 3092//1087
+f 3064//1086 3073//1086 3072//1086
+f 3100//1087 3101//1087 3092//1087
+f 3064//1086 3072//1086 3071//1086
+f 3099//1087 3100//1087 3092//1087
+f 3071//1086 3070//1086 3069//1086
+f 3097//1087 3098//1087 3099//1087
+f 3071//1086 3069//1086 3068//1086
+f 3096//1083 3097//1083 3099//1083
+f 3071//1086 3068//1086 3067//1086
+f 3095//1087 3096//1087 3099//1087
+f 3071//1086 3067//1086 3066//1086
+f 3094//1087 3095//1087 3099//1087
+f 3064//1086 3071//1086 3066//1086
+f 3094//1087 3099//1087 3092//1087
+f 3066//1088 3065//1088 3064//1088
+f 3092//1089 3093//1089 3094//1089
+usemtl dark
+f 3106//1086 3118//1086 3117//1086
+f 3143//1090 3144//1090 3132//1090
+f 3106//1091 3117//1091 3116//1091
+f 3142//1092 3143//1092 3132//1092
+f 3106//1086 3116//1086 3115//1086
+f 3141//1093 3142//1093 3132//1093
+f 3106//1086 3115//1086 3114//1086
+f 3140//1087 3141//1087 3132//1087
+f 3106//1086 3114//1086 3113//1086
+f 3139//1094 3140//1094 3132//1094
+f 3106//1095 3113//1095 3112//1095
+f 3138//1096 3139//1096 3132//1096
+f 3106//1086 3112//1086 3111//1086
+f 3137//1097 3138//1097 3132//1097
+f 3111//1082 3110//1082 3109//1082
+f 3135//1098 3136//1098 3137//1098
+f 3111//1086 3109//1086 3108//1086
+f 3134//1087 3135//1087 3137//1087
+f 3106//1086 3111//1086 3108//1086
+f 3134//1087 3137//1087 3132//1087
+f 3108//1099 3107//1099 3106//1099
+f 3132//1100 3133//1100 3134//1100
+f 3106//1101 3107//1101 3120//1101 3119//1101
+f 3107//1102 3108//1102 3121//1102 3120//1102
+f 3108//1103 3109//1103 3122//1103 3121//1103
+f 3109//1104 3110//1104 3123//1104 3122//1104
+f 3110//1105 3111//1105 3124//1105 3123//1105
+f 3111//1106 3112//1106 3125//1106 3124//1106
+f 3112//87 3113//87 3126//87 3125//87
+f 3113//1107 3114//1107 3127//1107 3126//1107
+f 3114//1108 3115//1108 3128//1108 3127//1108
+f 3115//1109 3116//1109 3129//1109 3128//1109
+f 3116//1110 3117//1110 3130//1110 3129//1110
+f 3117//1111 3118//1111 3131//1111 3130//1111
+f 3118//1112 3106//1112 3119//1112 3131//1112
+f 3119//1113 3120//1113 3133//1113 3132//1113
+f 3120//1114 3121//1114 3134//1114 3133//1114
+f 3121//1115 3122//1115 3135//1115 3134//1115
+f 3122//1116 3123//1116 3136//1116 3135//1116
+f 3123//1117 3124//1117 3137//1117 3136//1117
+f 3124//1118 3125//1118 3138//1118 3137//1118
+f 3125//1119 3126//1119 3139//1119 3138//1119
+f 3126//1120 3127//1120 3140//1120 3139//1120
+f 3127//1121 3128//1121 3141//1121 3140//1121
+f 3128//1122 3129//1122 3142//1122 3141//1122
+f 3129//1123 3130//1123 3143//1123 3142//1123
+f 3130//1124 3131//1124 3144//1124 3143//1124
+f 3131//1125 3119//1125 3132//1125 3144//1125
+f 3145//1126 3157//1126 3156//1126
+f 3182//1087 3183//1087 3171//1087
+f 3145//1127 3156//1127 3155//1127
+f 3181//1128 3182//1128 3171//1128
+f 3145//1129 3155//1129 3154//1129
+f 3180//1094 3181//1094 3171//1094
+f 3145//1086 3154//1086 3153//1086
+f 3179//1087 3180//1087 3171//1087
+f 3145//1086 3153//1086 3152//1086
+f 3178//1087 3179//1087 3171//1087
+f 3145//1130 3152//1130 3151//1130
+f 3177//1131 3178//1131 3171//1131
+f 3145//1132 3151//1132 3150//1132
+f 3176//1087 3177//1087 3171//1087
+f 3150//1086 3149//1086 3148//1086
+f 3174//1087 3175//1087 3176//1087
+f 3150//1086 3148//1086 3147//1086
+f 3173//1083 3174//1083 3176//1083
+f 3145//1086 3150//1086 3147//1086
+f 3173//1087 3176//1087 3171//1087
+f 3147//1133 3146//1133 3145//1133
+f 3171//1134 3172//1134 3173//1134
+f 3145//1135 3146//1135 3159//1135 3158//1135
+f 3146//1136 3147//1136 3160//1136 3159//1136
+f 3147//1137 3148//1137 3161//1137 3160//1137
+f 3148//1138 3149//1138 3162//1138 3161//1138
+f 3149//1139 3150//1139 3163//1139 3162//1139
+f 3150//1140 3151//1140 3164//1140 3163//1140
+f 3151//1141 3152//1141 3165//1141 3164//1141
+f 3152//1142 3153//1142 3166//1142 3165//1142
+f 3153//1143 3154//1143 3167//1143 3166//1143
+f 3154//1144 3155//1144 3168//1144 3167//1144
+f 3155//1145 3156//1145 3169//1145 3168//1145
+f 3156//1146 3157//1146 3170//1146 3169//1146
+f 3157//1147 3145//1147 3158//1147 3170//1147
+f 3158//1148 3159//1148 3172//1148 3171//1148
+f 3159//1149 3160//1149 3173//1149 3172//1149
+f 3160//1150 3161//1150 3174//1150 3173//1150
+f 3161//1151 3162//1151 3175//1151 3174//1151
+f 3162//1152 3163//1152 3176//1152 3175//1152
+f 3163//1106 3164//1106 3177//1106 3176//1106
+f 3164//87 3165//87 3178//87 3177//87
+f 3165//1153 3166//1153 3179//1153 3178//1153
+f 3166//1108 3167//1108 3180//1108 3179//1108
+f 3167//1154 3168//1154 3181//1154 3180//1154
+f 3168//1155 3169//1155 3182//1155 3181//1155
+f 3169//1156 3170//1156 3183//1156 3182//1156
+f 3170//1157 3158//1157 3171//1157 3183//1157
+usemtl glass
+f 3184//1082 3194//1082 3193//1082
+f 3215//1158 3216//1158 3206//1158
+f 3193//1086 3192//1086 3191//1086
+f 3213//1087 3214//1087 3215//1087
+f 3184//1159 3193//1159 3191//1159
+f 3213//1094 3215//1094 3206//1094
+f 3184//1086 3191//1086 3190//1086
+f 3212//1083 3213//1083 3206//1083
+f 3184//1160 3190//1160 3189//1160
+f 3211//1161 3212//1161 3206//1161
+f 3184//1082 3189//1082 3188//1082
+f 3210//1162 3211//1162 3206//1162
+f 3184//1086 3188//1086 3187//1086
+f 3209//1087 3210//1087 3206//1087
+f 3184//1163 3187//1163 3186//1163
+f 3208//1134 3209//1134 3206//1134
+f 3186//1129 3185//1129 3184//1129
+f 3206//1164 3207//1164 3208//1164
+f 3184//1165 3185//1165 3196//1165 3195//1165
+f 3185//1166 3186//1166 3197//1166 3196//1166
+f 3186//1167 3187//1167 3198//1167 3197//1167
+f 3187//1168 3188//1168 3199//1168 3198//1168
+f 3188//1169 3189//1169 3200//1169 3199//1169
+f 3189//1170 3190//1170 3201//1170 3200//1170
+f 3190//1171 3191//1171 3202//1171 3201//1171
+f 3191//1172 3192//1172 3203//1172 3202//1172
+f 3192//1173 3193//1173 3204//1173 3203//1173
+f 3193//1174 3194//1174 3205//1174 3204//1174
+f 3194//1175 3184//1175 3195//1175 3205//1175
+f 3195//1176 3196//1176 3207//1176 3206//1176
+f 3196//1177 3197//1177 3208//1177 3207//1177
+f 3197//1178 3198//1178 3209//1178 3208//1178
+f 3198//1179 3199//1179 3210//1179 3209//1179
+f 3199//1180 3200//1180 3211//1180 3210//1180
+f 3200//1181 3201//1181 3212//1181 3211//1181
+f 3201//1182 3202//1182 3213//1182 3212//1182
+f 3202//1183 3203//1183 3214//1183 3213//1183
+f 3203//1184 3204//1184 3215//1184 3214//1184
+f 3204//1185 3205//1185 3216//1185 3215//1185
+f 3205//1186 3195//1186 3206//1186 3216//1186
+f 3217//1187 3227//1187 3226//1187
+f 3248//1087 3249//1087 3239//1087
+f 3226//1082 3225//1082 3224//1082
+f 3246//1087 3247//1087 3248//1087
+f 3217//1188 3226//1188 3224//1188
+f 3246//1189 3248//1189 3239//1189
+f 3217//1190 3224//1190 3223//1190
+f 3245//1087 3246//1087 3239//1087
+f 3217//1190 3223//1190 3222//1190
+f 3244//1191 3245//1191 3239//1191
+f 3217//1192 3222//1192 3221//1192
+f 3243//1085 3244//1085 3239//1085
+f 3217//1086 3221//1086 3220//1086
+f 3242//1087 3243//1087 3239//1087
+f 3217//1130 3220//1130 3219//1130
+f 3241//1193 3242//1193 3239//1193
+f 3219//1194 3218//1194 3217//1194
+f 3239//1195 3240//1195 3241//1195
+f 3217//1196 3218//1196 3229//1196 3228//1196
+f 3218//1197 3219//1197 3230//1197 3229//1197
+f 3219//1198 3220//1198 3231//1198 3230//1198
+f 3220//1199 3221//1199 3232//1199 3231//1199
+f 3221//1200 3222//1200 3233//1200 3232//1200
+f 3222//1201 3223//1201 3234//1201 3233//1201
+f 3223//1202 3224//1202 3235//1202 3234//1202
+f 3224//1203 3225//1203 3236//1203 3235//1203
+f 3225//1204 3226//1204 3237//1204 3236//1204
+f 3226//1205 3227//1205 3238//1205 3237//1205
+f 3227//1137 3217//1137 3228//1137 3238//1137
+f 3228//1206 3229//1206 3240//1206 3239//1206
+f 3229//1207 3230//1207 3241//1207 3240//1207
+f 3230//1208 3231//1208 3242//1208 3241//1208
+f 3231//1209 3232//1209 3243//1209 3242//1209
+f 3232//1210 3233//1210 3244//1210 3243//1210
+f 3233//1211 3234//1211 3245//1211 3244//1211
+f 3234//1212 3235//1212 3246//1212 3245//1212
+f 3235//1213 3236//1213 3247//1213 3246//1213
+f 3236//1173 3237//1173 3248//1173 3247//1173
+f 3237//1214 3238//1214 3249//1214 3248//1214
+f 3238//1175 3228//1175 3239//1175 3249//1175
+f 3250//1086 3262//1086 3261//1086
+f 3287//1087 3288//1087 3276//1087
+f 3250//1086 3261//1086 3260//1086
+f 3286//1087 3287//1087 3276//1087
+f 3250//1132 3260//1132 3259//1132
+f 3285//1087 3286//1087 3276//1087
+f 3250//1129 3259//1129 3258//1129
+f 3284//1083 3285//1083 3276//1083
+f 3250//1086 3258//1086 3257//1086
+f 3283//1087 3284//1087 3276//1087
+f 3250//1086 3257//1086 3256//1086
+f 3282//1087 3283//1087 3276//1087
+f 3250//1086 3256//1086 3255//1086
+f 3281//1215 3282//1215 3276//1215
+f 3250//1216 3255//1216 3254//1216
+f 3280//1217 3281//1217 3276//1217
+f 3250//1218 3254//1218 3253//1218
+f 3279//1215 3280//1215 3276//1215
+f 3253//1082 3252//1082 3251//1082
+f 3277//1098 3278//1098 3279//1098
+f 3253//1219 3251//1219 3250//1219
+f 3276//1220 3277//1220 3279//1220
+f 3250//1221 3251//1221 3264//1221 3263//1221
+f 3251//95 3252//95 3265//95 3264//95
+f 3252//1222 3253//1222 3266//1222 3265//1222
+f 3253//1223 3254//1223 3267//1223 3266//1223
+f 3254//1224 3255//1224 3268//1224 3267//1224
+f 3255//1225 3256//1225 3269//1225 3268//1225
+f 3256//1226 3257//1226 3270//1226 3269//1226
+f 3257//1227 3258//1227 3271//1227 3270//1227
+f 3258//1228 3259//1228 3272//1228 3271//1228
+f 3259//1229 3260//1229 3273//1229 3272//1229
+f 3260//1230 3261//1230 3274//1230 3273//1230
+f 3261//1231 3262//1231 3275//1231 3274//1231
+f 3262//1232 3250//1232 3263//1232 3275//1232
+f 3263//1233 3264//1233 3277//1233 3276//1233
+f 3264//1234 3265//1234 3278//1234 3277//1234
+f 3265//1235 3266//1235 3279//1235 3278//1235
+f 3266//1236 3267//1236 3280//1236 3279//1236
+f 3267//1237 3268//1237 3281//1237 3280//1237
+f 3268//1238 3269//1238 3282//1238 3281//1238
+f 3269//1239 3270//1239 3283//1239 3282//1239
+f 3270//1240 3271//1240 3284//1240 3283//1240
+f 3271//1241 3272//1241 3285//1241 3284//1241
+f 3272//1242 3273//1242 3286//1242 3285//1242
+f 3273//1243 3274//1243 3287//1243 3286//1243
+f 3274//1244 3275//1244 3288//1244 3287//1244
+f 3275//1245 3263//1245 3276//1245 3288//1245
+f 3289//1086 3301//1086 3300//1086
+f 3326//1087 3327//1087 3315//1087
+f 3289//1086 3300//1086 3299//1086
+f 3325//1087 3326//1087 3315//1087
+f 3289//1246 3299//1246 3298//1246
+f 3324//1093 3325//1093 3315//1093
+f 3289//1132 3298//1132 3297//1132
+f 3323//1087 3324//1087 3315//1087
+f 3289//1086 3297//1086 3296//1086
+f 3322//1087 3323//1087 3315//1087
+f 3289//1086 3296//1086 3295//1086
+f 3321//1087 3322//1087 3315//1087
+f 3289//1247 3295//1247 3294//1247
+f 3320//1098 3321//1098 3315//1098
+f 3289//1248 3294//1248 3293//1248
+f 3319//1249 3320//1249 3315//1249
+f 3289//1250 3293//1250 3292//1250
+f 3318//1087 3319//1087 3315//1087
+f 3292//1251 3291//1251 3290//1251
+f 3316//1252 3317//1252 3318//1252
+f 3292//1253 3290//1253 3289//1253
+f 3315//1254 3316//1254 3318//1254
+f 3289//1255 3290//1255 3303//1255 3302//1255
+f 3290//1256 3291//1256 3304//1256 3303//1256
+f 3291//1257 3292//1257 3305//1257 3304//1257
+f 3292//1258 3293//1258 3306//1258 3305//1258
+f 3293//1259 3294//1259 3307//1259 3306//1259
+f 3294//1260 3295//1260 3308//1260 3307//1260
+f 3295//1261 3296//1261 3309//1261 3308//1261
+f 3296//1262 3297//1262 3310//1262 3309//1262
+f 3297//1263 3298//1263 3311//1263 3310//1263
+f 3298//1200 3299//1200 3312//1200 3311//1200
+f 3299//1264 3300//1264 3313//1264 3312//1264
+f 3300//1265 3301//1265 3314//1265 3313//1265
+f 3301//1266 3289//1266 3302//1266 3314//1266
+f 3302//1267 3303//1267 3316//1267 3315//1267
+f 3303//95 3304//95 3317//95 3316//95
+f 3304//1268 3305//1268 3318//1268 3317//1268
+f 3305//1269 3306//1269 3319//1269 3318//1269
+f 3306//1270 3307//1270 3320//1270 3319//1270
+f 3307//1271 3308//1271 3321//1271 3320//1271
+f 3308//1272 3309//1272 3322//1272 3321//1272
+f 3309//1227 3310//1227 3323//1227 3322//1227
+f 3310//1273 3311//1273 3324//1273 3323//1273
+f 3311//1274 3312//1274 3325//1274 3324//1274
+f 3312//1230 3313//1230 3326//1230 3325//1230
+f 3313//1275 3314//1275 3327//1275 3326//1275
+f 3314//1276 3302//1276 3315//1276 3327//1276
+o wingR
+usemtl frame
+f 3328//1277 3329//1277 3343//1277 3342//1277
+f 3329//1278 3330//1278 3344//1278 3343//1278
+f 3330//1279 3331//1279 3345//1279 3344//1279
+f 3331//1280 3332//1280 3346//1280 3345//1280
+f 3332//1281 3333//1281 3347//1281 3346//1281
+f 3333//1282 3334//1282 3348//1282 3347//1282
+f 3334//1283 3335//1283 3349//1283 3348//1283
+f 3335//1284 3336//1284 3350//1284 3349//1284
+f 3336//1285 3337//1285 3351//1285 3350//1285
+f 3337//1286 3338//1286 3352//1286 3351//1286
+f 3338//1287 3339//1287 3353//1287 3352//1287
+f 3339//1288 3340//1288 3354//1288 3353//1288
+f 3340//1289 3341//1289 3355//1289 3354//1289
+f 3341//1290 3328//1290 3342//1290 3355//1290
+f 3342//1291 3343//1291 3357//1291 3356//1291
+f 3343//1292 3344//1292 3358//1292 3357//1292
+f 3344//1293 3345//1293 3359//1293 3358//1293
+f 3345//1294 3346//1294 3360//1294 3359//1294
+f 3346//1295 3347//1295 3361//1295 3360//1295
+f 3347//1296 3348//1296 3362//1296 3361//1296
+f 3348//1297 3349//1297 3363//1297 3362//1297
+f 3349//1298 3350//1298 3364//1298 3363//1298
+f 3350//1299 3351//1299 3365//1299 3364//1299
+f 3351//1300 3352//1300 3366//1300 3365//1300
+f 3352//1301 3353//1301 3367//1301 3366//1301
+f 3353//1302 3354//1302 3368//1302 3367//1302
+f 3354//1303 3355//1303 3369//1303 3368//1303
+f 3355//1304 3342//1304 3356//1304 3369//1304
+f 3328//1305 3341//1305 3340//1305
+f 3368//1306 3369//1306 3356//1306
+f 3328//1307 3340//1307 3339//1307
+f 3367//1308 3368//1308 3356//1308
+f 3328//1309 3339//1309 3338//1309
+f 3366//1310 3367//1310 3356//1310
+f 3328//1309 3338//1309 3337//1309
+f 3365//1310 3366//1310 3356//1310
+f 3328//1309 3337//1309 3336//1309
+f 3364//1310 3365//1310 3356//1310
+f 3328//1309 3336//1309 3335//1309
+f 3363//1310 3364//1310 3356//1310
+f 3335//1309 3334//1309 3333//1309
+f 3361//1310 3362//1310 3363//1310
+f 3335//1305 3333//1305 3332//1305
+f 3360//1310 3361//1310 3363//1310
+f 3335//1309 3332//1309 3331//1309
+f 3359//1310 3360//1310 3363//1310
+f 3335//1309 3331//1309 3330//1309
+f 3358//1310 3359//1310 3363//1310
+f 3328//1309 3335//1309 3330//1309
+f 3358//1310 3363//1310 3356//1310
+f 3330//1311 3329//1311 3328//1311
+f 3356//1312 3357//1312 3358//1312
+usemtl dark
+f 3370//1309 3382//1309 3381//1309
+f 3407//1313 3408//1313 3396//1313
+f 3370//1314 3381//1314 3380//1314
+f 3406//1315 3407//1315 3396//1315
+f 3370//1316 3380//1316 3379//1316
+f 3405//1317 3406//1317 3396//1317
+f 3370//1309 3379//1309 3378//1309
+f 3404//1310 3405//1310 3396//1310
+f 3370//1309 3378//1309 3377//1309
+f 3403//1310 3404//1310 3396//1310
+f 3370//1318 3377//1318 3376//1318
+f 3402//1319 3403//1319 3396//1319
+f 3370//1309 3376//1309 3375//1309
+f 3401//1320 3402//1320 3396//1320
+f 3375//1309 3374//1309 3373//1309
+f 3399//1310 3400//1310 3401//1310
+f 3375//1305 3373//1305 3372//1305
+f 3398//1310 3399//1310 3401//1310
+f 3370//1309 3375//1309 3372//1309
+f 3398//1310 3401//1310 3396//1310
+f 3372//1321 3371//1321 3370//1321
+f 3396//1322 3397//1322 3398//1322
+f 3370//1323 3371//1323 3384//1323 3383//1323
+f 3371//1324 3372//1324 3385//1324 3384//1324
+f 3372//1325 3373//1325 3386//1325 3385//1325
+f 3373//1326 3374//1326 3387//1326 3386//1326
+f 3374//1327 3375//1327 3388//1327 3387//1327
+f 3375//1328 3376//1328 3389//1328 3388//1328
+f 3376//87 3377//87 3390//87 3389//87
+f 3377//1329 3378//1329 3391//1329 3390//1329
+f 3378//1330 3379//1330 3392//1330 3391//1330
+f 3379//1331 3380//1331 3393//1331 3392//1331
+f 3380//1332 3381//1332 3394//1332 3393//1332
+f 3381//1333 3382//1333 3395//1333 3394//1333
+f 3382//1334 3370//1334 3383//1334 3395//1334
+f 3383//1335 3384//1335 3397//1335 3396//1335
+f 3384//1336 3385//1336 3398//1336 3397//1336
+f 3385//1337 3386//1337 3399//1337 3398//1337
+f 3386//1338 3387//1338 3400//1338 3399//1338
+f 3387//1339 3388//1339 3401//1339 3400//1339
+f 3388//1340 3389//1340 3402//1340 3401//1340
+f 3389//1341 3390//1341 3403//1341 3402//1341
+f 3390//1342 3391//1342 3404//1342 3403//1342
+f 3391//1343 3392//1343 3405//1343 3404//1343
+f 3392//1344 3393//1344 3406//1344 3405//1344
+f 3393//1345 3394//1345 3407//1345 3406//1345
+f 3394//1346 3395//1346 3408//1346 3407//1346
+f 3395//1347 3383//1347 3396//1347 3408//1347
+f 3409//1348 3421//1348 3420//1348
+f 3446//1310 3447//1310 3435//1310
+f 3409//1349 3420//1349 3419//1349
+f 3445//1350 3446//1350 3435//1350
+f 3409//1351 3419//1351 3418//1351
+f 3444//1310 3445//1310 3435//1310
+f 3409//1309 3418//1309 3417//1309
+f 3443//1310 3444//1310 3435//1310
+f 3409//1316 3417//1316 3416//1316
+f 3442//1310 3443//1310 3435//1310
+f 3409//1352 3416//1352 3415//1352
+f 3441//1353 3442//1353 3435//1353
+f 3409//1354 3415//1354 3414//1354
+f 3440//1310 3441//1310 3435//1310
+f 3414//1355 3413//1355 3412//1355
+f 3438//1306 3439//1306 3440//1306
+f 3414//1309 3412//1309 3411//1309
+f 3437//1310 3438//1310 3440//1310
+f 3409//1309 3414//1309 3411//1309
+f 3437//1310 3440//1310 3435//1310
+f 3411//1356 3410//1356 3409//1356
+f 3435//1357 3436//1357 3437//1357
+f 3409//1358 3410//1358 3423//1358 3422//1358
+f 3410//1359 3411//1359 3424//1359 3423//1359
+f 3411//1360 3412//1360 3425//1360 3424//1360
+f 3412//1361 3413//1361 3426//1361 3425//1361
+f 3413//1362 3414//1362 3427//1362 3426//1362
+f 3414//1363 3415//1363 3428//1363 3427//1363
+f 3415//1364 3416//1364 3429//1364 3428//1364
+f 3416//1365 3417//1365 3430//1365 3429//1365
+f 3417//1366 3418//1366 3431//1366 3430//1366
+f 3418//1367 3419//1367 3432//1367 3431//1367
+f 3419//1368 3420//1368 3433//1368 3432//1368
+f 3420//1369 3421//1369 3434//1369 3433//1369
+f 3421//1370 3409//1370 3422//1370 3434//1370
+f 3422//1371 3423//1371 3436//1371 3435//1371
+f 3423//1372 3424//1372 3437//1372 3436//1372
+f 3424//1373 3425//1373 3438//1373 3437//1373
+f 3425//1374 3426//1374 3439//1374 3438//1374
+f 3426//1375 3427//1375 3440//1375 3439//1375
+f 3427//1328 3428//1328 3441//1328 3440//1328
+f 3428//87 3429//87 3442//87 3441//87
+f 3429//1376 3430//1376 3443//1376 3442//1376
+f 3430//1330 3431//1330 3444//1330 3443//1330
+f 3431//1377 3432//1377 3445//1377 3444//1377
+f 3432//1378 3433//1378 3446//1378 3445//1378
+f 3433//1379 3434//1379 3447//1379 3446//1379
+f 3434//1380 3422//1380 3435//1380 3447//1380
+usemtl glass
+f 3448//1309 3458//1309 3457//1309
+f 3479//1381 3480//1381 3470//1381
+f 3457//1309 3456//1309 3455//1309
+f 3477//1306 3478//1306 3479//1306
+f 3448//1382 3457//1382 3455//1382
+f 3477//1383 3479//1383 3470//1383
+f 3448//1309 3455//1309 3454//1309
+f 3476//1384 3477//1384 3470//1384
+f 3448//1385 3454//1385 3453//1385
+f 3475//1384 3476//1384 3470//1384
+f 3448//1307 3453//1307 3452//1307
+f 3474//1386 3475//1386 3470//1386
+f 3448//1309 3452//1309 3451//1309
+f 3473//1310 3474//1310 3470//1310
+f 3448//1387 3451//1387 3450//1387
+f 3472//1319 3473//1319 3470//1319
+f 3450//1388 3449//1388 3448//1388
+f 3470//1389 3471//1389 3472//1389
+f 3448//1390 3449//1390 3460//1390 3459//1390
+f 3449//1391 3450//1391 3461//1391 3460//1391
+f 3450//1392 3451//1392 3462//1392 3461//1392
+f 3451//1393 3452//1393 3463//1393 3462//1393
+f 3452//1394 3453//1394 3464//1394 3463//1394
+f 3453//1395 3454//1395 3465//1395 3464//1395
+f 3454//1396 3455//1396 3466//1396 3465//1396
+f 3455//1397 3456//1397 3467//1397 3466//1397
+f 3456//1398 3457//1398 3468//1398 3467//1398
+f 3457//1399 3458//1399 3469//1399 3468//1399
+f 3458//1400 3448//1400 3459//1400 3469//1400
+f 3459//1401 3460//1401 3471//1401 3470//1401
+f 3460//1402 3461//1402 3472//1402 3471//1402
+f 3461//1403 3462//1403 3473//1403 3472//1403
+f 3462//1404 3463//1404 3474//1404 3473//1404
+f 3463//1405 3464//1405 3475//1405 3474//1405
+f 3464//1406 3465//1406 3476//1406 3475//1406
+f 3465//1407 3466//1407 3477//1407 3476//1407
+f 3466//1408 3467//1408 3478//1408 3477//1408
+f 3467//1409 3468//1409 3479//1409 3478//1409
+f 3468//1410 3469//1410 3480//1410 3479//1410
+f 3469//1337 3459//1337 3470//1337 3480//1337
+f 3481//1411 3491//1411 3490//1411
+f 3512//1306 3513//1306 3503//1306
+f 3490//1309 3489//1309 3488//1309
+f 3510//1310 3511//1310 3512//1310
+f 3481//1316 3490//1316 3488//1316
+f 3510//1412 3512//1412 3503//1412
+f 3481//1305 3488//1305 3487//1305
+f 3509//1310 3510//1310 3503//1310
+f 3481//1413 3487//1413 3486//1413
+f 3508//1414 3509//1414 3503//1414
+f 3481//1415 3486//1415 3485//1415
+f 3507//1306 3508//1306 3503//1306
+f 3481//1309 3485//1309 3484//1309
+f 3506//1310 3507//1310 3503//1310
+f 3481//1321 3484//1321 3483//1321
+f 3505//1416 3506//1416 3503//1416
+f 3483//1417 3482//1417 3481//1417
+f 3503//1317 3504//1317 3505//1317
+f 3481//1418 3482//1418 3493//1418 3492//1418
+f 3482//1419 3483//1419 3494//1419 3493//1419
+f 3483//1420 3484//1420 3495//1420 3494//1420
+f 3484//1421 3485//1421 3496//1421 3495//1421
+f 3485//1422 3486//1422 3497//1422 3496//1422
+f 3486//1423 3487//1423 3498//1423 3497//1423
+f 3487//1424 3488//1424 3499//1424 3498//1424
+f 3488//1425 3489//1425 3500//1425 3499//1425
+f 3489//1426 3490//1426 3501//1426 3500//1426
+f 3490//1427 3491//1427 3502//1427 3501//1427
+f 3491//1428 3481//1428 3492//1428 3502//1428
+f 3492//1429 3493//1429 3504//1429 3503//1429
+f 3493//1430 3494//1430 3505//1430 3504//1430
+f 3494//1431 3495//1431 3506//1431 3505//1431
+f 3495//1432 3496//1432 3507//1432 3506//1432
+f 3496//1433 3497//1433 3508//1433 3507//1433
+f 3497//1434 3498//1434 3509//1434 3508//1434
+f 3498//1435 3499//1435 3510//1435 3509//1435
+f 3499//1436 3500//1436 3511//1436 3510//1436
+f 3500//1398 3501//1398 3512//1398 3511//1398
+f 3501//1437 3502//1437 3513//1437 3512//1437
+f 3502//1400 3492//1400 3503//1400 3513//1400
+f 3514//1309 3526//1309 3525//1309
+f 3551//1310 3552//1310 3540//1310
+f 3514//1309 3525//1309 3524//1309
+f 3550//1310 3551//1310 3540//1310
+f 3514//1351 3524//1351 3523//1351
+f 3549//1438 3550//1438 3540//1438
+f 3514//1309 3523//1309 3522//1309
+f 3548//1320 3549//1320 3540//1320
+f 3514//1309 3522//1309 3521//1309
+f 3547//1310 3548//1310 3540//1310
+f 3514//1309 3521//1309 3520//1309
+f 3546//1310 3547//1310 3540//1310
+f 3514//1355 3520//1355 3519//1355
+f 3545//1439 3546//1439 3540//1439
+f 3514//1440 3519//1440 3518//1440
+f 3544//1441 3545//1441 3540//1441
+f 3514//1309 3518//1309 3517//1309
+f 3543//1442 3544//1442 3540//1442
+f 3517//1443 3516//1443 3515//1443
+f 3541//1444 3542//1444 3543//1444
+f 3517//1445 3515//1445 3514//1445
+f 3540//1446 3541//1446 3543//1446
+f 3514//1447 3515//1447 3528//1447 3527//1447
+f 3515//95 3516//95 3529//95 3528//95
+f 3516//1448 3517//1448 3530//1448 3529//1448
+f 3517//1449 3518//1449 3531//1449 3530//1449
+f 3518//1450 3519//1450 3532//1450 3531//1450
+f 3519//1451 3520//1451 3533//1451 3532//1451
+f 3520//1452 3521//1452 3534//1452 3533//1452
+f 3521//1453 3522//1453 3535//1453 3534//1453
+f 3522//1454 3523//1454 3536//1454 3535//1454
+f 3523//1455 3524//1455 3537//1455 3536//1455
+f 3524//1456 3525//1456 3538//1456 3537//1456
+f 3525//1457 3526//1457 3539//1457 3538//1457
+f 3526//1458 3514//1458 3527//1458 3539//1458
+f 3527//1459 3528//1459 3541//1459 3540//1459
+f 3528//1460 3529//1460 3542//1460 3541//1460
+f 3529//1461 3530//1461 3543//1461 3542//1461
+f 3530//1462 3531//1462 3544//1462 3543//1462
+f 3531//1463 3532//1463 3545//1463 3544//1463
+f 3532//1464 3533//1464 3546//1464 3545//1464
+f 3533//1465 3534//1465 3547//1465 3546//1465
+f 3534//1466 3535//1466 3548//1466 3547//1466
+f 3535//1467 3536//1467 3549//1467 3548//1467
+f 3536//1405 3537//1405 3550//1405 3549//1405
+f 3537//1468 3538//1468 3551//1468 3550//1468
+f 3538//1469 3539//1469 3552//1469 3551//1469
+f 3539//1470 3527//1470 3540//1470 3552//1470
+f 3553//1309 3565//1309 3564//1309
+f 3590//1310 3591//1310 3579//1310
+f 3553//1309 3564//1309 3563//1309
+f 3589//1310 3590//1310 3579//1310
+f 3553//1309 3563//1309 3562//1309
+f 3588//1320 3589//1320 3579//1320
+f 3553//1305 3562//1305 3561//1305
+f 3587//1317 3588//1317 3579//1317
+f 3553//1309 3561//1309 3560//1309
+f 3586//1310 3587//1310 3579//1310
+f 3553//1309 3560//1309 3559//1309
+f 3585//1310 3586//1310 3579//1310
+f 3553//1471 3559//1471 3558//1471
+f 3584//1310 3585//1310 3579//1310
+f 3553//1472 3558//1472 3557//1472
+f 3583//1473 3584//1473 3579//1473
+f 3553//1471 3557//1471 3556//1471
+f 3582//1474 3583//1474 3579//1474
+f 3556//1355 3555//1355 3554//1355
+f 3580//1306 3581//1306 3582//1306
+f 3556//1475 3554//1475 3553//1475
+f 3579//1476 3580//1476 3582//1476
+f 3553//1477 3554//1477 3567//1477 3566//1477
+f 3554//1478 3555//1478 3568//1478 3567//1478
+f 3555//1479 3556//1479 3569//1479 3568//1479
+f 3556//1480 3557//1480 3570//1480 3569//1480
+f 3557//1481 3558//1481 3571//1481 3570//1481
+f 3558//1482 3559//1482 3572//1482 3571//1482
+f 3559//1483 3560//1483 3573//1483 3572//1483
+f 3560//1484 3561//1484 3574//1484 3573//1484
+f 3561//1485 3562//1485 3575//1485 3574//1485
+f 3562//1486 3563//1486 3576//1486 3575//1486
+f 3563//1487 3564//1487 3577//1487 3576//1487
+f 3564//1488 3565//1488 3578//1488 3577//1488
+f 3565//1489 3553//1489 3566//1489 3578//1489
+f 3566//1490 3567//1490 3580//1490 3579//1490
+f 3567//95 3568//95 3581//95 3580//95
+f 3568//1491 3569//1491 3582//1491 3581//1491
+f 3569//1492 3570//1492 3583//1492 3582//1492
+f 3570//1493 3571//1493 3584//1493 3583//1493
+f 3571//1494 3572//1494 3585//1494 3584//1494
+f 3572//1495 3573//1495 3586//1495 3585//1495
+f 3573//1453 3574//1453 3587//1453 3586//1453
+f 3574//1496 3575//1496 3588//1496 3587//1496
+f 3575//1497 3576//1497 3589//1497 3588//1497
+f 3576//1456 3577//1456 3590//1456 3589//1456
+f 3577//1498 3578//1498 3591//1498 3590//1498
+f 3578//1499 3566//1499 3579//1499 3591//1499
diff --git a/assets/DragonRelief.glb b/assets/DragonRelief.glb
new file mode 100644
index 000000000..c472d3eda
--- /dev/null
+++ b/assets/DragonRelief.glb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4605df2316cb9ef156274aa08b25fc965a705e45fc3385b457249ba6333490c0
+size 69820
diff --git a/assets/Plaque-champagne.stl b/assets/Plaque-champagne.stl
new file mode 100644
index 000000000..4a685d088
--- /dev/null
+++ b/assets/Plaque-champagne.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:12df65596e863c20e961404f3d496931526b87ac18cd8217061c49b2e7397baf
+size 51184
diff --git a/assets/Plaque-dark.stl b/assets/Plaque-dark.stl
new file mode 100644
index 000000000..c31af71af
--- /dev/null
+++ b/assets/Plaque-dark.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cc9dfd4ee3722a2acd67e9886f26412235005fc6dddaf1edd9d2e4617cd26995
+size 72784
diff --git a/assets/Plaque-frame.stl b/assets/Plaque-frame.stl
new file mode 100644
index 000000000..d7adfc684
--- /dev/null
+++ b/assets/Plaque-frame.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:12c7cdad97ed954350660f3626e9bccb1b8f6a6b529d5e46866817b66c26e983
+size 53284
diff --git a/assets/Plaque-glass.stl b/assets/Plaque-glass.stl
new file mode 100644
index 000000000..dc5837a8f
--- /dev/null
+++ b/assets/Plaque-glass.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:33c3c05ceb34ffb9f5322f7202af6e37d4d2503297def34989213a416d3f8bd8
+size 36884
diff --git a/assets/Plaque-plate.stl b/assets/Plaque-plate.stl
new file mode 100644
index 000000000..72b5bd80a
--- /dev/null
+++ b/assets/Plaque-plate.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2107f68d8ae6aab1b98cf25ba4a7335153ecf75c5271f87b54eb155de598f2ac
+size 33884
diff --git a/assets/Plaque.mtl b/assets/Plaque.mtl
new file mode 100644
index 000000000..e6ecc7a8e
--- /dev/null
+++ b/assets/Plaque.mtl
@@ -0,0 +1,56 @@
+# Materials for Plaque.obj
+newmtl dark
+Ka 0.060 0.062 0.066
+Kd 0.300 0.310 0.330
+Ks 0.700 0.700 0.700
+Ns 180.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.80
+Pr 0.35
+
+newmtl champagne
+Ka 0.144 0.128 0.108
+Kd 0.720 0.640 0.540
+Ks 0.850 0.800 0.700
+Ns 120.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.80
+Pr 0.40
+
+newmtl glass
+Ka 0.176 0.184 0.180
+Kd 0.880 0.920 0.900
+Ks 0.950 0.950 0.950
+Ns 300.0
+d 0.55
+Ni 1.50
+illum 4
+Pm 0.00
+Pr 0.15
+
+newmtl frame
+Ka 0.024 0.022 0.020
+Kd 0.120 0.110 0.100
+Ks 0.300 0.300 0.300
+Ns 40.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.00
+Pr 0.70
+
+newmtl plate
+Ka 0.110 0.106 0.100
+Kd 0.550 0.530 0.500
+Ks 0.200 0.200 0.200
+Ns 30.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.00
+Pr 0.80
+
diff --git a/assets/Plaque.obj b/assets/Plaque.obj
new file mode 100644
index 000000000..b4fa11ad4
--- /dev/null
+++ b/assets/Plaque.obj
@@ -0,0 +1,7040 @@
+# Singe plaque: the logotype and the dragon in relief on one plate, built by util/plaqueModel.py
+# Units: 0.01 per image pixel; plate in the XY plane resting on Y = 0, Z up (print orientation), centred on X = 0
+mtllib Plaque.mtl
+v -0.01000 12.50000 -0.16000
+v 0.16000 12.24000 -0.16000
+v -0.03000 12.05000 -0.16000
+v -0.85000 12.39000 -0.16000
+v -1.02000 12.23000 -0.16000
+v 0.02000 11.20000 -0.16000
+v 0.10000 11.20000 -0.16000
+v 0.29000 11.01000 -0.16000
+v 0.02000 10.74000 -0.16000
+v -0.05000 9.96000 -0.16000
+v -0.24000 9.77000 -0.16000
+v -0.43000 9.96000 -0.16000
+v -0.52000 10.08000 -0.16000
+v -0.49000 10.11000 -0.16000
+v -0.65000 10.27000 -0.16000
+v -3.36000 11.61000 -0.16000
+v -3.52000 11.45000 -0.16000
+v -2.96000 10.75000 -0.16000
+v -3.15000 10.56000 -0.16000
+v -3.57000 10.72000 -0.16000
+v -3.73000 10.56000 -0.16000
+v -2.76000 9.27000 -0.16000
+v -3.03000 9.01000 -0.16000
+v -4.20000 8.11000 -0.16000
+v -4.24000 8.14000 -0.16000
+v -4.40000 7.98000 -0.16000
+v -4.54000 6.48000 -0.16000
+v -4.50000 6.44000 -0.16000
+v -4.52000 6.41000 -0.16000
+v -3.21000 5.11000 -0.16000
+v -3.40000 4.92000 -0.16000
+v -3.87000 4.65000 -0.16000
+v -4.58000 4.14000 -0.16000
+v -5.21000 3.57000 -0.16000
+v -5.57000 3.15000 -0.16000
+v -5.57000 3.10000 -0.16000
+v -5.42000 2.95000 -0.16000
+v -4.51000 2.36000 -0.16000
+v -4.31000 2.16000 -0.16000
+v -4.53000 1.94000 -0.16000
+v -5.90000 1.05000 -0.16000
+v -6.06000 0.89000 -0.16000
+v -5.83000 0.06000 -0.16000
+v -5.67000 -0.11000 -0.16000
+v -5.54000 -0.04000 -0.16000
+v -4.64000 0.71000 -0.16000
+v -3.46000 1.61000 -0.16000
+v -3.22000 1.83000 -0.16000
+v -3.03000 1.64000 -0.16000
+v -3.24000 0.70000 -0.16000
+v -3.24000 0.65000 -0.16000
+v -3.10000 0.51000 -0.16000
+v -2.43000 0.77000 -0.16000
+v -2.27000 0.91000 -0.16000
+v -2.08000 0.72000 -0.16000
+v -2.11000 0.56000 -0.16000
+v -1.98000 0.43000 -0.16000
+v -1.32000 0.67000 -0.16000
+v -1.18000 0.83000 -0.16000
+v -0.96000 1.83000 -0.16000
+v -0.76000 2.02000 -0.16000
+v -0.57000 1.83000 -0.16000
+v -0.19000 0.88000 -0.16000
+v -0.04000 0.73000 -0.16000
+v 0.34000 0.90000 -0.16000
+v 0.47000 1.03000 -0.16000
+v 0.55000 1.36000 -0.16000
+v 0.74000 1.55000 -0.16000
+v 1.23000 1.01000 -0.16000
+v 1.40000 0.91000 -0.16000
+v 1.63000 0.87000 -0.16000
+v 1.82000 0.68000 -0.16000
+v 1.65000 0.10000 -0.16000
+v 1.65000 0.05000 -0.16000
+v 1.79000 -0.09000 -0.16000
+v 2.41000 0.15000 -0.16000
+v 2.53000 0.27000 -0.16000
+v 2.60000 0.51000 -0.16000
+v 2.79000 0.70000 -0.16000
+v 2.99000 0.54000 -0.16000
+v 4.48000 1.00000 -0.16000
+v 5.31000 1.22000 -0.16000
+v 5.51000 1.43000 -0.16000
+v 5.72000 2.01000 -0.16000
+v 5.72000 2.06000 -0.16000
+v 5.59000 2.19000 -0.16000
+v 4.29000 1.86000 -0.16000
+v 4.08000 2.05000 -0.16000
+v 4.11000 2.16000 -0.16000
+v 4.30000 2.35000 -0.16000
+v 5.01000 2.54000 -0.16000
+v 5.18000 2.70000 -0.16000
+v 5.37000 3.23000 -0.16000
+v 5.22000 3.37000 -0.16000
+v 4.66000 3.24000 -0.16000
+v 4.47000 3.43000 -0.16000
+v 4.66000 3.62000 -0.16000
+v 5.69000 3.90000 -0.16000
+v 5.83000 4.04000 -0.16000
+v 6.06000 4.61000 -0.16000
+v 6.06000 4.66000 -0.16000
+v 5.92000 4.80000 -0.16000
+v 5.01000 4.60000 -0.16000
+v 4.10000 4.35000 -0.16000
+v 3.67000 4.21000 -0.16000
+v 3.53000 4.07000 -0.16000
+v 3.17000 4.43000 -0.16000
+v 2.98000 4.55000 -0.16000
+v 2.77000 4.60000 -0.16000
+v 2.48000 4.58000 -0.16000
+v 2.26000 4.51000 -0.16000
+v 1.96000 4.34000 -0.16000
+v 1.48000 3.89000 -0.16000
+v 1.29000 4.08000 -0.16000
+v 1.49000 4.71000 -0.16000
+v 1.49000 4.76000 -0.16000
+v 1.33000 4.89000 -0.16000
+v 0.62000 4.64000 -0.16000
+v 0.46000 4.49000 -0.16000
+v 0.19000 3.39000 -0.16000
+v -0.01000 3.19000 -0.16000
+v -0.20000 3.38000 -0.16000
+v -0.49000 4.16000 -0.16000
+v -0.64000 4.32000 -0.16000
+v -1.22000 4.07000 -0.16000
+v -1.41000 4.26000 -0.16000
+v -1.22000 4.89000 -0.16000
+v -1.03000 5.08000 -0.16000
+v 0.22000 5.04000 -0.16000
+v 0.38000 5.20000 -0.16000
+v -0.51000 6.23000 -0.16000
+v -0.54000 6.21000 -0.16000
+v -0.59000 6.26000 -0.16000
+v -1.39000 6.11000 -0.16000
+v -1.58000 6.30000 -0.16000
+v -0.92000 6.99000 -0.16000
+v 0.80000 5.72000 -0.16000
+v 0.86000 5.78000 -0.16000
+v 0.91000 5.73000 -0.16000
+v 1.82000 5.68000 -0.16000
+v 1.93000 5.59000 -0.16000
+v 2.96000 5.02000 -0.16000
+v 3.07000 5.13000 -0.16000
+v 4.35000 5.06000 -0.16000
+v 4.51000 5.22000 -0.16000
+v 3.57000 6.25000 -0.16000
+v 3.54000 6.22000 -0.16000
+v 2.92000 6.19000 -0.16000
+v 2.73000 6.38000 -0.16000
+v 3.08000 7.41000 -0.16000
+v 2.90000 8.37000 -0.16000
+v 2.93000 8.44000 -0.16000
+v 1.75000 9.85000 -0.16000
+v 1.94000 10.05000 -0.16000
+v 2.50000 10.16000 -0.16000
+v 3.02000 9.73000 -0.16000
+v 3.18000 9.89000 -0.16000
+v 3.44000 10.41000 -0.16000
+v 3.36000 10.50000 -0.16000
+v 3.48000 10.62000 -0.16000
+v 3.67000 11.00000 -0.16000
+v 3.66000 11.03000 -0.16000
+v 3.37000 11.44000 -0.16000
+v 3.20000 11.61000 -0.16000
+v 2.98000 11.39000 -0.16000
+v 2.41000 11.47000 -0.16000
+v 1.92000 11.80000 -0.16000
+v 1.47000 11.81000 -0.16000
+v 1.33000 11.93000 -0.16000
+v 0.15000 12.66000 -0.16000
+v -0.01000 12.50000 0.00000
+v 0.16000 12.24000 0.00000
+v -0.03000 12.05000 0.00000
+v -0.85000 12.39000 0.00000
+v -1.02000 12.23000 0.00000
+v 0.02000 11.20000 0.00000
+v 0.10000 11.20000 0.00000
+v 0.29000 11.01000 0.00000
+v 0.02000 10.74000 0.00000
+v -0.05000 9.96000 0.00000
+v -0.24000 9.77000 0.00000
+v -0.43000 9.96000 0.00000
+v -0.52000 10.08000 0.00000
+v -0.49000 10.11000 0.00000
+v -0.65000 10.27000 0.00000
+v -3.36000 11.61000 0.00000
+v -3.52000 11.45000 0.00000
+v -2.96000 10.75000 0.00000
+v -3.15000 10.56000 0.00000
+v -3.57000 10.72000 0.00000
+v -3.73000 10.56000 0.00000
+v -2.76000 9.27000 0.00000
+v -3.03000 9.01000 0.00000
+v -4.20000 8.11000 0.00000
+v -4.24000 8.14000 0.00000
+v -4.40000 7.98000 0.00000
+v -4.54000 6.48000 0.00000
+v -4.50000 6.44000 0.00000
+v -4.52000 6.41000 0.00000
+v -3.21000 5.11000 0.00000
+v -3.40000 4.92000 0.00000
+v -3.87000 4.65000 0.00000
+v -4.58000 4.14000 0.00000
+v -5.21000 3.57000 0.00000
+v -5.57000 3.15000 0.00000
+v -5.57000 3.10000 0.00000
+v -5.42000 2.95000 0.00000
+v -4.51000 2.36000 0.00000
+v -4.31000 2.16000 0.00000
+v -4.53000 1.94000 0.00000
+v -5.90000 1.05000 0.00000
+v -6.06000 0.89000 0.00000
+v -5.83000 0.06000 0.00000
+v -5.67000 -0.11000 0.00000
+v -5.54000 -0.04000 0.00000
+v -4.64000 0.71000 0.00000
+v -3.46000 1.61000 0.00000
+v -3.22000 1.83000 0.00000
+v -3.03000 1.64000 0.00000
+v -3.24000 0.70000 0.00000
+v -3.24000 0.65000 0.00000
+v -3.10000 0.51000 0.00000
+v -2.43000 0.77000 0.00000
+v -2.27000 0.91000 0.00000
+v -2.08000 0.72000 0.00000
+v -2.11000 0.56000 0.00000
+v -1.98000 0.43000 0.00000
+v -1.32000 0.67000 0.00000
+v -1.18000 0.83000 0.00000
+v -0.96000 1.83000 0.00000
+v -0.76000 2.02000 0.00000
+v -0.57000 1.83000 0.00000
+v -0.19000 0.88000 0.00000
+v -0.04000 0.73000 0.00000
+v 0.34000 0.90000 0.00000
+v 0.47000 1.03000 0.00000
+v 0.55000 1.36000 0.00000
+v 0.74000 1.55000 0.00000
+v 1.23000 1.01000 0.00000
+v 1.40000 0.91000 0.00000
+v 1.63000 0.87000 0.00000
+v 1.82000 0.68000 0.00000
+v 1.65000 0.10000 0.00000
+v 1.65000 0.05000 0.00000
+v 1.79000 -0.09000 0.00000
+v 2.41000 0.15000 0.00000
+v 2.53000 0.27000 0.00000
+v 2.60000 0.51000 0.00000
+v 2.79000 0.70000 0.00000
+v 2.99000 0.54000 0.00000
+v 4.48000 1.00000 0.00000
+v 5.31000 1.22000 0.00000
+v 5.51000 1.43000 0.00000
+v 5.72000 2.01000 0.00000
+v 5.72000 2.06000 0.00000
+v 5.59000 2.19000 0.00000
+v 4.29000 1.86000 0.00000
+v 4.08000 2.05000 0.00000
+v 4.11000 2.16000 0.00000
+v 4.30000 2.35000 0.00000
+v 5.01000 2.54000 0.00000
+v 5.18000 2.70000 0.00000
+v 5.37000 3.23000 0.00000
+v 5.22000 3.37000 0.00000
+v 4.66000 3.24000 0.00000
+v 4.47000 3.43000 0.00000
+v 4.66000 3.62000 0.00000
+v 5.69000 3.90000 0.00000
+v 5.83000 4.04000 0.00000
+v 6.06000 4.61000 0.00000
+v 6.06000 4.66000 0.00000
+v 5.92000 4.80000 0.00000
+v 5.01000 4.60000 0.00000
+v 4.10000 4.35000 0.00000
+v 3.67000 4.21000 0.00000
+v 3.53000 4.07000 0.00000
+v 3.17000 4.43000 0.00000
+v 2.98000 4.55000 0.00000
+v 2.77000 4.60000 0.00000
+v 2.48000 4.58000 0.00000
+v 2.26000 4.51000 0.00000
+v 1.96000 4.34000 0.00000
+v 1.48000 3.89000 0.00000
+v 1.29000 4.08000 0.00000
+v 1.49000 4.71000 0.00000
+v 1.49000 4.76000 0.00000
+v 1.33000 4.89000 0.00000
+v 0.62000 4.64000 0.00000
+v 0.46000 4.49000 0.00000
+v 0.19000 3.39000 0.00000
+v -0.01000 3.19000 0.00000
+v -0.20000 3.38000 0.00000
+v -0.49000 4.16000 0.00000
+v -0.64000 4.32000 0.00000
+v -1.22000 4.07000 0.00000
+v -1.41000 4.26000 0.00000
+v -1.22000 4.89000 0.00000
+v -1.03000 5.08000 0.00000
+v 0.22000 5.04000 0.00000
+v 0.38000 5.20000 0.00000
+v -0.51000 6.23000 0.00000
+v -0.54000 6.21000 0.00000
+v -0.59000 6.26000 0.00000
+v -1.39000 6.11000 0.00000
+v -1.58000 6.30000 0.00000
+v -0.92000 6.99000 0.00000
+v 0.80000 5.72000 0.00000
+v 0.86000 5.78000 0.00000
+v 0.91000 5.73000 0.00000
+v 1.82000 5.68000 0.00000
+v 1.93000 5.59000 0.00000
+v 2.96000 5.02000 0.00000
+v 3.07000 5.13000 0.00000
+v 4.35000 5.06000 0.00000
+v 4.51000 5.22000 0.00000
+v 3.57000 6.25000 0.00000
+v 3.54000 6.22000 0.00000
+v 2.92000 6.19000 0.00000
+v 2.73000 6.38000 0.00000
+v 3.08000 7.41000 0.00000
+v 2.90000 8.37000 0.00000
+v 2.93000 8.44000 0.00000
+v 1.75000 9.85000 0.00000
+v 1.94000 10.05000 0.00000
+v 2.50000 10.16000 0.00000
+v 3.02000 9.73000 0.00000
+v 3.18000 9.89000 0.00000
+v 3.44000 10.41000 0.00000
+v 3.36000 10.50000 0.00000
+v 3.48000 10.62000 0.00000
+v 3.67000 11.00000 0.00000
+v 3.66000 11.03000 0.00000
+v 3.37000 11.44000 0.00000
+v 3.20000 11.61000 0.00000
+v 2.98000 11.39000 0.00000
+v 2.41000 11.47000 0.00000
+v 1.92000 11.80000 0.00000
+v 1.47000 11.81000 0.00000
+v 1.33000 11.93000 0.00000
+v 0.15000 12.66000 0.00000
+v -3.62750 4.67000 0.00000
+v -4.25750 4.25500 0.00000
+v -4.97250 3.67000 0.00000
+v -5.24250 3.40000 0.00000
+v -5.44250 3.15500 0.00000
+v -5.45250 3.10000 0.00000
+v -5.39250 3.04500 0.00000
+v -4.35250 2.37000 0.00000
+v -4.07250 2.15000 0.00000
+v -4.65250 1.73000 0.00000
+v -5.93250 0.89000 0.00000
+v -5.94250 0.83000 0.00000
+v -5.74250 0.16000 0.00000
+v -5.67250 0.00500 0.00000
+v -5.61250 0.02000 0.00000
+v -4.73750 0.74500 0.00000
+v -3.46250 1.72500 0.00000
+v -3.19250 1.97000 0.00000
+v -2.96750 2.23000 0.00000
+v -2.97250 2.27500 0.00000
+v -3.04250 2.34500 0.00000
+v -3.26750 2.52000 0.00000
+v -4.33750 3.17500 0.00000
+v -4.10250 3.38500 0.00000
+v -3.67750 3.67000 0.00000
+v -2.68750 4.19000 0.00000
+v -2.88750 4.86500 0.00000
+v -2.93250 4.97500 0.00000
+v -2.97250 4.99000 0.00000
+v -3.62750 4.67000 0.24000
+v -4.25750 4.25500 0.24000
+v -4.97250 3.67000 0.24000
+v -5.24250 3.40000 0.24000
+v -5.44250 3.15500 0.24000
+v -5.45250 3.10000 0.24000
+v -5.39250 3.04500 0.24000
+v -4.35250 2.37000 0.24000
+v -4.07250 2.15000 0.24000
+v -4.65250 1.73000 0.24000
+v -5.93250 0.89000 0.24000
+v -5.94250 0.83000 0.24000
+v -5.74250 0.16000 0.24000
+v -5.67250 0.00500 0.24000
+v -5.61250 0.02000 0.24000
+v -4.73750 0.74500 0.24000
+v -3.46250 1.72500 0.24000
+v -3.19250 1.97000 0.24000
+v -2.96750 2.23000 0.24000
+v -2.97250 2.27500 0.24000
+v -3.04250 2.34500 0.24000
+v -3.26750 2.52000 0.24000
+v -4.33750 3.17500 0.24000
+v -4.10250 3.38500 0.24000
+v -3.67750 3.67000 0.24000
+v -2.68750 4.19000 0.24000
+v -2.88750 4.86500 0.24000
+v -2.93250 4.97500 0.24000
+v -2.97250 4.99000 0.24000
+v -3.62750 4.67000 0.24000
+v -4.25750 4.25500 0.24000
+v -4.97250 3.67000 0.24000
+v -5.24250 3.40000 0.24000
+v -5.44250 3.15500 0.24000
+v -5.45250 3.10000 0.24000
+v -5.39250 3.04500 0.24000
+v -4.35250 2.37000 0.24000
+v -4.07250 2.15000 0.24000
+v -4.65250 1.73000 0.24000
+v -5.93250 0.89000 0.24000
+v -5.94250 0.83000 0.24000
+v -5.74250 0.16000 0.24000
+v -5.67250 0.00500 0.24000
+v -5.61250 0.02000 0.24000
+v -4.73750 0.74500 0.24000
+v -3.46250 1.72500 0.24000
+v -3.19250 1.97000 0.24000
+v -2.96750 2.23000 0.24000
+v -2.97250 2.27500 0.24000
+v -3.04250 2.34500 0.24000
+v -3.26750 2.52000 0.24000
+v -4.33750 3.17500 0.24000
+v -4.10250 3.38500 0.24000
+v -3.67750 3.67000 0.24000
+v -2.68750 4.19000 0.24000
+v -2.88750 4.86500 0.24000
+v -2.93250 4.97500 0.24000
+v -2.97250 4.99000 0.24000
+v -3.62750 4.67000 0.25000
+v -4.25750 4.25500 0.25000
+v -4.97250 3.67000 0.25000
+v -5.24250 3.40000 0.25000
+v -5.44250 3.15500 0.25000
+v -5.45250 3.10000 0.25000
+v -5.39250 3.04500 0.25000
+v -4.35250 2.37000 0.25000
+v -4.07250 2.15000 0.25000
+v -4.65250 1.73000 0.25000
+v -5.93250 0.89000 0.25000
+v -5.94250 0.83000 0.25000
+v -5.74250 0.16000 0.25000
+v -5.67250 0.00500 0.25000
+v -5.61250 0.02000 0.25000
+v -4.73750 0.74500 0.25000
+v -3.46250 1.72500 0.25000
+v -3.19250 1.97000 0.25000
+v -2.96750 2.23000 0.25000
+v -2.97250 2.27500 0.25000
+v -3.04250 2.34500 0.25000
+v -3.26750 2.52000 0.25000
+v -4.33750 3.17500 0.25000
+v -4.10250 3.38500 0.25000
+v -3.67750 3.67000 0.25000
+v -2.68750 4.19000 0.25000
+v -2.88750 4.86500 0.25000
+v -2.93250 4.97500 0.25000
+v -2.97250 4.99000 0.25000
+v -3.60267 4.62648 0.30000
+v -4.22784 4.21467 0.30000
+v -4.93891 3.63288 0.30000
+v -5.20536 3.36643 0.30000
+v -5.39561 3.13337 0.30000
+v -5.39837 3.11821 0.30000
+v -5.36178 3.08467 0.30000
+v -4.32338 2.41071 0.30000
+v -3.98950 2.14837 0.30000
+v -4.62411 1.68883 0.30000
+v -5.88678 0.86020 0.30000
+v -5.89128 0.83320 0.30000
+v -5.69555 0.17752 0.30000
+v -5.64412 0.06363 0.30000
+v -5.63565 0.06575 0.30000
+v -4.76870 0.78409 0.30000
+v -3.49459 1.76340 0.30000
+v -3.22833 2.00500 0.30000
+v -3.01961 2.24620 0.30000
+v -3.02026 2.25205 0.30000
+v -3.07565 2.30744 0.30000
+v -3.29599 2.47882 0.30000
+v -4.42097 3.16747 0.30000
+v -4.13323 3.42459 0.30000
+v -3.70312 3.71302 0.30000
+v -2.74711 4.21517 0.30000
+v -2.93473 4.84839 0.30000
+v -2.97051 4.93585 0.30000
+v -2.96990 4.93562 0.30000
+v -2.44250 3.48500 0.00000
+v -2.50250 3.43500 0.00000
+v -3.09250 0.83000 0.00000
+v -3.12250 0.67000 0.00000
+v -3.10250 0.62500 0.00000
+v -2.53750 0.84000 0.00000
+v -2.37750 0.92500 0.00000
+v -2.04750 2.34000 0.00000
+v -1.69750 3.70000 0.00000
+v -1.70250 3.74500 0.00000
+v -1.73250 3.75000 0.00000
+v -2.44250 3.48500 0.24000
+v -2.50250 3.43500 0.24000
+v -3.09250 0.83000 0.24000
+v -3.12250 0.67000 0.24000
+v -3.10250 0.62500 0.24000
+v -2.53750 0.84000 0.24000
+v -2.37750 0.92500 0.24000
+v -2.04750 2.34000 0.24000
+v -1.69750 3.70000 0.24000
+v -1.70250 3.74500 0.24000
+v -1.73250 3.75000 0.24000
+v -2.44250 3.48500 0.24000
+v -2.50250 3.43500 0.24000
+v -3.09250 0.83000 0.24000
+v -3.12250 0.67000 0.24000
+v -3.10250 0.62500 0.24000
+v -2.53750 0.84000 0.24000
+v -2.37750 0.92500 0.24000
+v -2.04750 2.34000 0.24000
+v -1.69750 3.70000 0.24000
+v -1.70250 3.74500 0.24000
+v -1.73250 3.75000 0.24000
+v -2.44250 3.48500 0.25000
+v -2.50250 3.43500 0.25000
+v -3.09250 0.83000 0.25000
+v -3.12250 0.67000 0.25000
+v -3.10250 0.62500 0.25000
+v -2.53750 0.84000 0.25000
+v -2.37750 0.92500 0.25000
+v -2.04750 2.34000 0.25000
+v -1.69750 3.70000 0.25000
+v -1.70250 3.74500 0.25000
+v -1.73250 3.75000 0.25000
+v -2.41704 3.44114 0.30000
+v -2.45748 3.40743 0.30000
+v -3.04353 0.81987 0.30000
+v -3.07049 0.67608 0.30000
+v -3.07604 0.68857 0.30000
+v -2.55820 0.88562 0.30000
+v -2.42103 0.95849 0.30000
+v -2.09606 2.35191 0.30000
+v -1.74821 3.70359 0.30000
+v -1.74802 3.70190 0.30000
+v -1.72754 3.69848 0.30000
+v -2.26750 4.54500 0.00000
+v -2.29250 4.51500 0.00000
+v -2.45750 3.81500 0.00000
+v -2.41750 3.80000 0.00000
+v -2.31750 3.83500 0.00000
+v -1.58250 4.13500 0.00000
+v -1.33750 4.83500 0.00000
+v -1.33750 4.87500 0.00000
+v -1.36750 4.88500 0.00000
+v -2.26750 4.54500 0.24000
+v -2.29250 4.51500 0.24000
+v -2.45750 3.81500 0.24000
+v -2.41750 3.80000 0.24000
+v -2.31750 3.83500 0.24000
+v -1.58250 4.13500 0.24000
+v -1.33750 4.83500 0.24000
+v -1.33750 4.87500 0.24000
+v -1.36750 4.88500 0.24000
+v -2.26750 4.54500 0.24000
+v -2.29250 4.51500 0.24000
+v -2.45750 3.81500 0.24000
+v -2.41750 3.80000 0.24000
+v -2.31750 3.83500 0.24000
+v -1.58250 4.13500 0.24000
+v -1.33750 4.83500 0.24000
+v -1.33750 4.87500 0.24000
+v -1.36750 4.88500 0.24000
+v -2.26750 4.54500 0.25000
+v -2.29250 4.51500 0.25000
+v -2.45750 3.81500 0.25000
+v -2.41750 3.80000 0.25000
+v -2.31750 3.83500 0.25000
+v -1.58250 4.13500 0.25000
+v -1.33750 4.83500 0.25000
+v -1.33750 4.87500 0.25000
+v -1.36750 4.88500 0.25000
+v -2.23752 4.50288 0.30000
+v -2.24654 4.49205 0.30000
+v -2.39874 3.84636 0.30000
+v -2.41691 3.85318 0.30000
+v -2.33522 3.88177 0.30000
+v -1.62225 4.17278 0.30000
+v -1.38750 4.84350 0.30000
+v -1.38750 4.83896 0.30000
+v -1.36645 4.83195 0.30000
+v 0.58250 4.48000 0.00000
+v 0.07250 2.38500 0.00000
+v -0.62750 4.18000 0.00000
+v -0.69250 4.18500 0.00000
+v -1.21750 3.94500 0.00000
+v -1.78250 1.53500 0.00000
+v -1.98250 0.64000 0.00000
+v -1.98250 0.54500 0.00000
+v -1.92750 0.54500 0.00000
+v -1.31250 0.79500 0.00000
+v -0.84250 2.77000 0.00000
+v -0.05250 0.85000 0.00000
+v -0.00750 0.84000 0.00000
+v 0.35250 1.03000 0.00000
+v 0.89750 3.14500 0.00000
+v 1.36750 4.70000 0.00000
+v 1.37250 4.75000 0.00000
+v 1.33750 4.76500 0.00000
+v 0.58250 4.48000 0.24000
+v 0.07250 2.38500 0.24000
+v -0.62750 4.18000 0.24000
+v -0.69250 4.18500 0.24000
+v -1.21750 3.94500 0.24000
+v -1.78250 1.53500 0.24000
+v -1.98250 0.64000 0.24000
+v -1.98250 0.54500 0.24000
+v -1.92750 0.54500 0.24000
+v -1.31250 0.79500 0.24000
+v -0.84250 2.77000 0.24000
+v -0.05250 0.85000 0.24000
+v -0.00750 0.84000 0.24000
+v 0.35250 1.03000 0.24000
+v 0.89750 3.14500 0.24000
+v 1.36750 4.70000 0.24000
+v 1.37250 4.75000 0.24000
+v 1.33750 4.76500 0.24000
+v 0.58250 4.48000 0.24000
+v 0.07250 2.38500 0.24000
+v -0.62750 4.18000 0.24000
+v -0.69250 4.18500 0.24000
+v -1.21750 3.94500 0.24000
+v -1.78250 1.53500 0.24000
+v -1.98250 0.64000 0.24000
+v -1.98250 0.54500 0.24000
+v -1.92750 0.54500 0.24000
+v -1.31250 0.79500 0.24000
+v -0.84250 2.77000 0.24000
+v -0.05250 0.85000 0.24000
+v -0.00750 0.84000 0.24000
+v 0.35250 1.03000 0.24000
+v 0.89750 3.14500 0.24000
+v 1.36750 4.70000 0.24000
+v 1.37250 4.75000 0.24000
+v 1.33750 4.76500 0.24000
+v 0.58250 4.48000 0.25000
+v 0.07250 2.38500 0.25000
+v -0.62750 4.18000 0.25000
+v -0.69250 4.18500 0.25000
+v -1.21750 3.94500 0.25000
+v -1.78250 1.53500 0.25000
+v -1.98250 0.64000 0.25000
+v -1.98250 0.54500 0.25000
+v -1.92750 0.54500 0.25000
+v -1.31250 0.79500 0.25000
+v -0.84250 2.77000 0.25000
+v -0.05250 0.85000 0.25000
+v -0.00750 0.84000 0.25000
+v 0.35250 1.03000 0.25000
+v 0.89750 3.14500 0.25000
+v 1.36750 4.70000 0.25000
+v 1.37250 4.75000 0.25000
+v 1.33750 4.76500 0.25000
+v 0.62484 4.44254 0.30000
+v 0.08200 2.24246 0.30000
+v -0.66267 4.13256 0.30000
+v -0.68346 4.13416 0.30000
+v -1.17442 3.90972 0.30000
+v -1.73376 1.52384 0.30000
+v -1.93250 0.63448 0.30000
+v -1.93250 0.59500 0.30000
+v -1.93727 0.59500 0.30000
+v -1.35518 0.83162 0.30000
+v -0.85368 2.91242 0.30000
+v -0.01619 0.89315 0.30000
+v -0.01459 0.89280 0.30000
+v 0.30960 1.06390 0.30000
+v 0.84934 3.15848 0.30000
+v 1.31823 4.70981 0.30000
+v 1.31910 4.71849 0.30000
+v 1.33632 4.71111 0.30000
+v 2.31250 4.40000 0.00000
+v 2.06750 4.28000 0.00000
+v 1.84750 4.12000 0.00000
+v 1.59250 3.86000 0.00000
+v 1.35750 3.53500 0.00000
+v 1.16750 3.18000 0.00000
+v 1.01750 2.78000 0.00000
+v 0.93750 2.45500 0.00000
+v 0.89750 2.04500 0.00000
+v 0.91750 1.74500 0.00000
+v 0.99750 1.46000 0.00000
+v 1.13750 1.22000 0.00000
+v 1.33750 1.05500 0.00000
+v 1.55250 0.98500 0.00000
+v 1.78250 1.00000 0.00000
+v 2.06750 1.10000 0.00000
+v 1.76750 0.08000 0.00000
+v 1.78750 0.02500 0.00000
+v 2.40750 0.26500 0.00000
+v 3.31250 3.06000 0.00000
+v 3.27250 3.09000 0.00000
+v 3.02750 3.04500 0.00000
+v 2.05250 2.79500 0.00000
+v 1.87250 2.27500 0.00000
+v 1.93250 2.25000 0.00000
+v 2.46250 2.38000 0.00000
+v 2.47750 2.35500 0.00000
+v 2.37750 2.10000 0.00000
+v 2.15750 1.84500 0.00000
+v 1.99750 1.73500 0.00000
+v 1.87250 1.68500 0.00000
+v 1.69250 1.69000 0.00000
+v 1.58750 1.77500 0.00000
+v 1.55250 1.83500 0.00000
+v 1.50750 2.12500 0.00000
+v 1.57250 2.52000 0.00000
+v 1.70250 2.87500 0.00000
+v 1.94750 3.28500 0.00000
+v 2.20750 3.55500 0.00000
+v 2.33250 3.64000 0.00000
+v 2.47750 3.70000 0.00000
+v 2.57250 3.71000 0.00000
+v 2.66750 3.68000 0.00000
+v 2.74750 3.61000 0.00000
+v 2.82250 3.49000 0.00000
+v 2.85750 3.49000 0.00000
+v 3.31750 4.06000 0.00000
+v 3.31250 4.10500 0.00000
+v 3.23750 4.22000 0.00000
+v 3.06750 4.37500 0.00000
+v 2.87250 4.45500 0.00000
+v 2.60750 4.47000 0.00000
+v 2.31250 4.40000 0.24000
+v 2.06750 4.28000 0.24000
+v 1.84750 4.12000 0.24000
+v 1.59250 3.86000 0.24000
+v 1.35750 3.53500 0.24000
+v 1.16750 3.18000 0.24000
+v 1.01750 2.78000 0.24000
+v 0.93750 2.45500 0.24000
+v 0.89750 2.04500 0.24000
+v 0.91750 1.74500 0.24000
+v 0.99750 1.46000 0.24000
+v 1.13750 1.22000 0.24000
+v 1.33750 1.05500 0.24000
+v 1.55250 0.98500 0.24000
+v 1.78250 1.00000 0.24000
+v 2.06750 1.10000 0.24000
+v 1.76750 0.08000 0.24000
+v 1.78750 0.02500 0.24000
+v 2.40750 0.26500 0.24000
+v 3.31250 3.06000 0.24000
+v 3.27250 3.09000 0.24000
+v 3.02750 3.04500 0.24000
+v 2.05250 2.79500 0.24000
+v 1.87250 2.27500 0.24000
+v 1.93250 2.25000 0.24000
+v 2.46250 2.38000 0.24000
+v 2.47750 2.35500 0.24000
+v 2.37750 2.10000 0.24000
+v 2.15750 1.84500 0.24000
+v 1.99750 1.73500 0.24000
+v 1.87250 1.68500 0.24000
+v 1.69250 1.69000 0.24000
+v 1.58750 1.77500 0.24000
+v 1.55250 1.83500 0.24000
+v 1.50750 2.12500 0.24000
+v 1.57250 2.52000 0.24000
+v 1.70250 2.87500 0.24000
+v 1.94750 3.28500 0.24000
+v 2.20750 3.55500 0.24000
+v 2.33250 3.64000 0.24000
+v 2.47750 3.70000 0.24000
+v 2.57250 3.71000 0.24000
+v 2.66750 3.68000 0.24000
+v 2.74750 3.61000 0.24000
+v 2.82250 3.49000 0.24000
+v 2.85750 3.49000 0.24000
+v 3.31750 4.06000 0.24000
+v 3.31250 4.10500 0.24000
+v 3.23750 4.22000 0.24000
+v 3.06750 4.37500 0.24000
+v 2.87250 4.45500 0.24000
+v 2.60750 4.47000 0.24000
+v 2.31250 4.40000 0.24000
+v 2.06750 4.28000 0.24000
+v 1.84750 4.12000 0.24000
+v 1.59250 3.86000 0.24000
+v 1.35750 3.53500 0.24000
+v 1.16750 3.18000 0.24000
+v 1.01750 2.78000 0.24000
+v 0.93750 2.45500 0.24000
+v 0.89750 2.04500 0.24000
+v 0.91750 1.74500 0.24000
+v 0.99750 1.46000 0.24000
+v 1.13750 1.22000 0.24000
+v 1.33750 1.05500 0.24000
+v 1.55250 0.98500 0.24000
+v 1.78250 1.00000 0.24000
+v 2.06750 1.10000 0.24000
+v 1.76750 0.08000 0.24000
+v 1.78750 0.02500 0.24000
+v 2.40750 0.26500 0.24000
+v 3.31250 3.06000 0.24000
+v 3.27250 3.09000 0.24000
+v 3.02750 3.04500 0.24000
+v 2.05250 2.79500 0.24000
+v 1.87250 2.27500 0.24000
+v 1.93250 2.25000 0.24000
+v 2.46250 2.38000 0.24000
+v 2.47750 2.35500 0.24000
+v 2.37750 2.10000 0.24000
+v 2.15750 1.84500 0.24000
+v 1.99750 1.73500 0.24000
+v 1.87250 1.68500 0.24000
+v 1.69250 1.69000 0.24000
+v 1.58750 1.77500 0.24000
+v 1.55250 1.83500 0.24000
+v 1.50750 2.12500 0.24000
+v 1.57250 2.52000 0.24000
+v 1.70250 2.87500 0.24000
+v 1.94750 3.28500 0.24000
+v 2.20750 3.55500 0.24000
+v 2.33250 3.64000 0.24000
+v 2.47750 3.70000 0.24000
+v 2.57250 3.71000 0.24000
+v 2.66750 3.68000 0.24000
+v 2.74750 3.61000 0.24000
+v 2.82250 3.49000 0.24000
+v 2.85750 3.49000 0.24000
+v 3.31750 4.06000 0.24000
+v 3.31250 4.10500 0.24000
+v 3.23750 4.22000 0.24000
+v 3.06750 4.37500 0.24000
+v 2.87250 4.45500 0.24000
+v 2.60750 4.47000 0.24000
+v 2.31250 4.40000 0.25000
+v 2.06750 4.28000 0.25000
+v 1.84750 4.12000 0.25000
+v 1.59250 3.86000 0.25000
+v 1.35750 3.53500 0.25000
+v 1.16750 3.18000 0.25000
+v 1.01750 2.78000 0.25000
+v 0.93750 2.45500 0.25000
+v 0.89750 2.04500 0.25000
+v 0.91750 1.74500 0.25000
+v 0.99750 1.46000 0.25000
+v 1.13750 1.22000 0.25000
+v 1.33750 1.05500 0.25000
+v 1.55250 0.98500 0.25000
+v 1.78250 1.00000 0.25000
+v 2.06750 1.10000 0.25000
+v 1.76750 0.08000 0.25000
+v 1.78750 0.02500 0.25000
+v 2.40750 0.26500 0.25000
+v 3.31250 3.06000 0.25000
+v 3.27250 3.09000 0.25000
+v 3.02750 3.04500 0.25000
+v 2.05250 2.79500 0.25000
+v 1.87250 2.27500 0.25000
+v 1.93250 2.25000 0.25000
+v 2.46250 2.38000 0.25000
+v 2.47750 2.35500 0.25000
+v 2.37750 2.10000 0.25000
+v 2.15750 1.84500 0.25000
+v 1.99750 1.73500 0.25000
+v 1.87250 1.68500 0.25000
+v 1.69250 1.69000 0.25000
+v 1.58750 1.77500 0.25000
+v 1.55250 1.83500 0.25000
+v 1.50750 2.12500 0.25000
+v 1.57250 2.52000 0.25000
+v 1.70250 2.87500 0.25000
+v 1.94750 3.28500 0.25000
+v 2.20750 3.55500 0.25000
+v 2.33250 3.64000 0.25000
+v 2.47750 3.70000 0.25000
+v 2.57250 3.71000 0.25000
+v 2.66750 3.68000 0.25000
+v 2.74750 3.61000 0.25000
+v 2.82250 3.49000 0.25000
+v 2.85750 3.49000 0.25000
+v 3.31750 4.06000 0.25000
+v 3.31250 4.10500 0.25000
+v 3.23750 4.22000 0.25000
+v 3.06750 4.37500 0.25000
+v 2.87250 4.45500 0.25000
+v 2.60750 4.47000 0.25000
+v 2.32948 4.35264 0.30000
+v 2.09340 4.23701 0.30000
+v 1.88028 4.08201 0.30000
+v 1.63082 3.82767 0.30000
+v 1.39999 3.50843 0.30000
+v 1.21315 3.15933 0.30000
+v 1.06535 2.76520 0.30000
+v 0.98691 2.44655 0.30000
+v 0.94766 2.04423 0.30000
+v 0.96704 1.75351 0.30000
+v 1.04391 1.47967 0.30000
+v 1.17620 1.25289 0.30000
+v 1.36200 1.09961 0.30000
+v 1.55884 1.03552 0.30000
+v 1.77241 1.04945 0.30000
+v 2.14299 1.17948 0.30000
+v 1.82010 0.08165 0.30000
+v 1.81705 0.09005 0.30000
+v 2.36726 0.30304 0.30000
+v 3.25393 3.04143 0.30000
+v 3.26001 3.03687 0.30000
+v 3.03824 2.99614 0.30000
+v 2.09096 2.75324 0.30000
+v 1.93513 2.30307 0.30000
+v 1.93656 2.30248 0.30000
+v 2.48640 2.43735 0.30000
+v 2.53303 2.35964 0.30000
+v 2.42093 2.07380 0.30000
+v 2.19114 1.80745 0.30000
+v 2.02124 1.69064 0.30000
+v 1.88146 1.63473 0.30000
+v 1.67419 1.64049 0.30000
+v 1.54892 1.74190 0.30000
+v 1.50454 1.81798 0.30000
+v 1.45687 2.12523 0.30000
+v 1.52393 2.53277 0.30000
+v 1.65717 2.89661 0.30000
+v 1.90751 3.31556 0.30000
+v 2.17509 3.59342 0.30000
+v 2.30863 3.68424 0.30000
+v 2.46507 3.74897 0.30000
+v 2.57762 3.76082 0.30000
+v 2.69254 3.72453 0.30000
+v 2.78598 3.64276 0.30000
+v 2.85021 3.54000 0.30000
+v 2.83360 3.54000 0.30000
+v 3.26550 4.07519 0.30000
+v 3.26412 4.08765 0.30000
+v 3.19910 4.18735 0.30000
+v 3.04034 4.33210 0.30000
+v 2.86129 4.40555 0.30000
+v 2.61195 4.41967 0.30000
+v 4.40750 4.31000 0.00000
+v 3.64750 4.06000 0.00000
+v 3.45750 3.43500 0.00000
+v 3.50250 3.41500 0.00000
+v 3.67750 3.47000 0.00000
+v 3.69250 3.45000 0.00000
+v 3.05750 1.16000 0.00000
+v 2.94250 0.68500 0.00000
+v 2.95750 0.65500 0.00000
+v 5.25750 1.32000 0.00000
+v 5.36250 1.37500 0.00000
+v 5.60250 2.02000 0.00000
+v 5.58250 2.06500 0.00000
+v 4.71750 1.85500 0.00000
+v 3.87750 1.61500 0.00000
+v 3.85250 1.64500 0.00000
+v 4.06250 2.39000 0.00000
+v 5.03250 2.66500 0.00000
+v 5.25250 3.18500 0.00000
+v 5.23750 3.23500 0.00000
+v 5.18750 3.23500 0.00000
+v 4.23750 3.01000 0.00000
+v 4.42250 3.65000 0.00000
+v 5.69750 4.02000 0.00000
+v 5.94250 4.61500 0.00000
+v 5.91750 4.67500 0.00000
+v 5.88250 4.67500 0.00000
+v 4.40750 4.31000 0.24000
+v 3.64750 4.06000 0.24000
+v 3.45750 3.43500 0.24000
+v 3.50250 3.41500 0.24000
+v 3.67750 3.47000 0.24000
+v 3.69250 3.45000 0.24000
+v 3.05750 1.16000 0.24000
+v 2.94250 0.68500 0.24000
+v 2.95750 0.65500 0.24000
+v 5.25750 1.32000 0.24000
+v 5.36250 1.37500 0.24000
+v 5.60250 2.02000 0.24000
+v 5.58250 2.06500 0.24000
+v 4.71750 1.85500 0.24000
+v 3.87750 1.61500 0.24000
+v 3.85250 1.64500 0.24000
+v 4.06250 2.39000 0.24000
+v 5.03250 2.66500 0.24000
+v 5.25250 3.18500 0.24000
+v 5.23750 3.23500 0.24000
+v 5.18750 3.23500 0.24000
+v 4.23750 3.01000 0.24000
+v 4.42250 3.65000 0.24000
+v 5.69750 4.02000 0.24000
+v 5.94250 4.61500 0.24000
+v 5.91750 4.67500 0.24000
+v 5.88250 4.67500 0.24000
+v 4.40750 4.31000 0.24000
+v 3.64750 4.06000 0.24000
+v 3.45750 3.43500 0.24000
+v 3.50250 3.41500 0.24000
+v 3.67750 3.47000 0.24000
+v 3.69250 3.45000 0.24000
+v 3.05750 1.16000 0.24000
+v 2.94250 0.68500 0.24000
+v 2.95750 0.65500 0.24000
+v 5.25750 1.32000 0.24000
+v 5.36250 1.37500 0.24000
+v 5.60250 2.02000 0.24000
+v 5.58250 2.06500 0.24000
+v 4.71750 1.85500 0.24000
+v 3.87750 1.61500 0.24000
+v 3.85250 1.64500 0.24000
+v 4.06250 2.39000 0.24000
+v 5.03250 2.66500 0.24000
+v 5.25250 3.18500 0.24000
+v 5.23750 3.23500 0.24000
+v 5.18750 3.23500 0.24000
+v 4.23750 3.01000 0.24000
+v 4.42250 3.65000 0.24000
+v 5.69750 4.02000 0.24000
+v 5.94250 4.61500 0.24000
+v 5.91750 4.67500 0.24000
+v 5.88250 4.67500 0.24000
+v 4.40750 4.31000 0.25000
+v 3.64750 4.06000 0.25000
+v 3.45750 3.43500 0.25000
+v 3.50250 3.41500 0.25000
+v 3.67750 3.47000 0.25000
+v 3.69250 3.45000 0.25000
+v 3.05750 1.16000 0.25000
+v 2.94250 0.68500 0.25000
+v 2.95750 0.65500 0.25000
+v 5.25750 1.32000 0.25000
+v 5.36250 1.37500 0.25000
+v 5.60250 2.02000 0.25000
+v 5.58250 2.06500 0.25000
+v 4.71750 1.85500 0.25000
+v 3.87750 1.61500 0.25000
+v 3.85250 1.64500 0.25000
+v 4.06250 2.39000 0.25000
+v 5.03250 2.66500 0.25000
+v 5.25250 3.18500 0.25000
+v 5.23750 3.23500 0.25000
+v 5.18750 3.23500 0.25000
+v 4.23750 3.01000 0.25000
+v 4.42250 3.65000 0.25000
+v 5.69750 4.02000 0.25000
+v 5.94250 4.61500 0.25000
+v 5.91750 4.67500 0.25000
+v 5.88250 4.67500 0.25000
+v 4.42134 4.26192 0.30000
+v 3.68779 4.02062 0.30000
+v 3.51819 3.46274 0.30000
+v 3.50554 3.46837 0.30000
+v 3.69627 3.52831 0.30000
+v 3.74725 3.46033 0.30000
+v 3.10590 1.14743 0.30000
+v 2.99540 0.69101 0.30000
+v 2.98360 0.71460 0.30000
+v 5.23877 1.36663 0.30000
+v 5.32232 1.41040 0.30000
+v 5.54853 2.01833 0.30000
+v 5.55375 2.00657 0.30000
+v 4.73027 1.80665 0.30000
+v 3.85993 1.55798 0.30000
+v 3.79723 1.63322 0.30000
+v 4.02196 2.43048 0.30000
+v 4.99579 2.70656 0.30000
+v 5.19943 3.18789 0.30000
+v 5.20030 3.18500 0.30000
+v 5.19334 3.18500 0.30000
+v 4.16568 2.94161 0.30000
+v 4.38211 3.69034 0.30000
+v 5.66044 4.06131 0.30000
+v 5.88838 4.61489 0.30000
+v 5.88417 4.62500 0.30000
+v 5.88859 4.62500 0.30000
+v 0.70500 11.69000 0.00000
+v 0.74500 11.65000 0.00000
+v 1.22500 11.40000 0.00000
+v 1.37500 11.25000 0.00000
+v 1.95500 10.87000 0.00000
+v 2.06500 10.76000 0.00000
+v 1.43500 10.11000 0.00000
+v 1.47500 10.07000 0.00000
+v 2.50500 10.28000 0.00000
+v 3.02500 9.85000 0.00000
+v 3.06500 9.89000 0.00000
+v 3.32500 10.41000 0.00000
+v 3.25500 10.48000 0.00000
+v 3.20500 10.46000 0.00000
+v 2.76500 10.56000 0.00000
+v 2.65500 10.67000 0.00000
+v 2.76500 10.78000 0.00000
+v 3.09500 10.85000 0.00000
+v 3.32500 10.58000 0.00000
+v 3.36500 10.62000 0.00000
+v 3.55500 11.01000 0.00000
+v 3.20500 11.49000 0.00000
+v 3.16500 11.38000 0.00000
+v 3.05500 11.27000 0.00000
+v 2.66500 11.30000 0.00000
+v 2.41500 11.35000 0.00000
+v 1.92500 11.68000 0.00000
+v 0.74500 11.73000 0.00000
+v 0.70500 11.69000 0.38000
+v 0.74500 11.65000 0.38000
+v 1.22500 11.40000 0.38000
+v 1.37500 11.25000 0.38000
+v 1.95500 10.87000 0.38000
+v 2.06500 10.76000 0.38000
+v 1.43500 10.11000 0.38000
+v 1.47500 10.07000 0.38000
+v 2.50500 10.28000 0.38000
+v 3.02500 9.85000 0.38000
+v 3.06500 9.89000 0.38000
+v 3.32500 10.41000 0.38000
+v 3.25500 10.48000 0.38000
+v 3.20500 10.46000 0.38000
+v 2.76500 10.56000 0.38000
+v 2.65500 10.67000 0.38000
+v 2.76500 10.78000 0.38000
+v 3.09500 10.85000 0.38000
+v 3.32500 10.58000 0.38000
+v 3.36500 10.62000 0.38000
+v 3.55500 11.01000 0.38000
+v 3.20500 11.49000 0.38000
+v 3.16500 11.38000 0.38000
+v 3.05500 11.27000 0.38000
+v 2.66500 11.30000 0.38000
+v 2.41500 11.35000 0.38000
+v 1.92500 11.68000 0.38000
+v 0.74500 11.73000 0.38000
+v 0.71349 11.69000 0.38000
+v 0.74859 11.65490 0.38000
+v 1.22859 11.40490 0.38000
+v 1.30717 11.32632 0.38000
+v 1.38547 11.33611 0.38000
+v 1.45560 11.31607 0.38000
+v 1.82484 11.34601 0.38000
+v 2.18493 11.33600 0.38000
+v 2.38239 11.34588 0.38000
+v 2.39593 11.35941 0.38000
+v 2.27157 11.45507 0.38000
+v 1.92316 11.67407 0.38000
+v 0.74738 11.72389 0.38000
+v 0.71349 11.69000 0.41250
+v 0.74859 11.65490 0.41250
+v 1.22859 11.40490 0.41250
+v 1.30717 11.32632 0.41250
+v 1.38547 11.33611 0.41250
+v 1.45560 11.31607 0.41250
+v 1.82484 11.34601 0.41250
+v 2.18493 11.33600 0.41250
+v 2.38239 11.34588 0.41250
+v 2.39593 11.35941 0.41250
+v 2.27157 11.45507 0.41250
+v 1.92316 11.67407 0.41250
+v 0.74738 11.72389 0.41250
+v 0.72409 11.69000 0.42000
+v 0.75308 11.66101 0.42000
+v 1.23308 11.41101 0.42000
+v 1.30988 11.33421 0.42000
+v 1.38606 11.34374 0.42000
+v 1.45635 11.32365 0.42000
+v 1.82464 11.35352 0.42000
+v 2.18485 11.34351 0.42000
+v 2.37913 11.35322 0.42000
+v 2.38458 11.35867 0.42000
+v 2.26728 11.44891 0.42000
+v 1.92085 11.66666 0.42000
+v 0.75035 11.71626 0.42000
+v 1.45440 11.29393 0.38000
+v 1.38458 11.31388 0.38000
+v 1.32773 11.30576 0.38000
+v 1.37881 11.25468 0.38000
+v 1.95881 10.87468 0.38000
+v 2.07844 10.75504 0.38000
+v 2.23626 10.68600 0.38000
+v 2.66251 10.68600 0.38000
+v 2.76202 10.78550 0.38000
+v 3.09694 10.85655 0.38000
+v 3.11423 10.83925 0.38000
+v 3.16191 10.90600 0.38000
+v 3.17900 10.90600 0.38000
+v 3.17900 11.21772 0.38000
+v 3.10430 11.30176 0.38000
+v 3.05710 11.26400 0.38000
+v 2.98465 11.26400 0.38000
+v 2.55582 11.31386 0.38000
+v 2.45588 11.27389 0.38000
+v 2.24054 11.29440 0.38000
+v 2.23068 11.32400 0.38000
+v 1.82524 11.32400 0.38000
+v 1.45440 11.29393 0.40500
+v 1.38458 11.31388 0.40500
+v 1.32773 11.30576 0.40500
+v 1.37881 11.25468 0.40500
+v 1.95881 10.87468 0.40500
+v 2.07844 10.75504 0.40500
+v 2.23626 10.68600 0.40500
+v 2.66251 10.68600 0.40500
+v 2.76202 10.78550 0.40500
+v 3.09694 10.85655 0.40500
+v 3.11423 10.83925 0.40500
+v 3.16191 10.90600 0.40500
+v 3.17900 10.90600 0.40500
+v 3.17900 11.21772 0.40500
+v 3.10430 11.30176 0.40500
+v 3.05710 11.26400 0.40500
+v 2.98465 11.26400 0.40500
+v 2.55582 11.31386 0.40500
+v 2.45588 11.27389 0.40500
+v 2.24054 11.29440 0.40500
+v 2.23068 11.32400 0.40500
+v 1.82524 11.32400 0.40500
+v 1.45290 11.27876 0.42000
+v 1.38354 11.29858 0.42000
+v 1.35955 11.29515 0.42000
+v 1.38832 11.26638 0.42000
+v 1.96832 10.88638 0.42000
+v 2.08705 10.76765 0.42000
+v 2.23939 10.70100 0.42000
+v 2.65630 10.70100 0.42000
+v 2.75455 10.79925 0.42000
+v 3.10179 10.87291 0.42000
+v 3.11232 10.86238 0.42000
+v 3.15419 10.92100 0.42000
+v 3.16400 10.92100 0.42000
+v 3.16400 11.21202 0.42000
+v 3.10255 11.28115 0.42000
+v 3.06237 11.24900 0.42000
+v 2.98378 11.24900 0.42000
+v 2.55786 11.29853 0.42000
+v 2.45807 11.25861 0.42000
+v 2.22940 11.28039 0.42000
+v 2.21986 11.30900 0.42000
+v 1.82585 11.30900 0.42000
+v 3.17100 11.44751 0.38000
+v 3.17100 11.37751 0.38000
+v 3.11327 11.31978 0.38000
+v 3.20100 11.22230 0.38000
+v 3.20100 10.89660 0.38000
+v 3.14982 10.86589 0.38000
+v 3.13204 10.82145 0.38000
+v 3.22984 10.72365 0.38000
+v 3.27984 10.63365 0.38000
+v 3.32500 10.58849 0.38000
+v 3.36005 10.62353 0.38000
+v 3.54807 11.00947 0.38000
+v 3.28027 11.39629 0.38000
+v 3.20474 11.48126 0.38000
+v 3.17100 11.44751 0.39000
+v 3.17100 11.37751 0.39000
+v 3.11327 11.31978 0.39000
+v 3.20100 11.22230 0.39000
+v 3.20100 10.89660 0.39000
+v 3.14982 10.86589 0.39000
+v 3.13204 10.82145 0.39000
+v 3.22984 10.72365 0.39000
+v 3.27984 10.63365 0.39000
+v 3.32500 10.58849 0.39000
+v 3.36005 10.62353 0.39000
+v 3.54807 11.00947 0.39000
+v 3.28027 11.39629 0.39000
+v 3.20474 11.48126 0.39000
+v 3.20100 11.43509 0.42000
+v 3.20100 11.36509 0.42000
+v 3.15461 11.31870 0.42000
+v 3.23100 11.23381 0.42000
+v 3.23100 10.87962 0.42000
+v 3.17392 10.84537 0.42000
+v 3.16724 10.82867 0.42000
+v 3.25402 10.74189 0.42000
+v 3.30402 10.65189 0.42000
+v 3.32500 10.63091 0.42000
+v 3.33528 10.64119 0.42000
+v 3.51341 11.00683 0.42000
+v 3.25664 11.37771 0.42000
+v 3.20346 11.43755 0.42000
+v 2.38749 11.32400 0.38000
+v 2.25100 11.32400 0.38000
+v 2.25100 11.31546 0.38000
+v 2.45469 11.29606 0.38000
+v 2.50204 11.30553 0.38000
+v 2.51651 11.32000 0.38000
+v 2.49251 11.34400 0.38000
+v 2.40749 11.34400 0.38000
+v 2.38749 11.32400 0.41625
+v 2.25100 11.32400 0.41625
+v 2.25100 11.31546 0.41625
+v 2.45469 11.29606 0.41625
+v 2.50204 11.30553 0.41625
+v 2.51651 11.32000 0.41625
+v 2.49251 11.34400 0.41625
+v 2.40749 11.34400 0.41625
+v 2.38904 11.32025 0.42000
+v 2.25475 11.32025 0.42000
+v 2.25475 11.31887 0.42000
+v 2.45450 11.29984 0.42000
+v 2.50019 11.30898 0.42000
+v 2.51121 11.32000 0.42000
+v 2.49096 11.34025 0.42000
+v 2.40904 11.34025 0.42000
+v 1.44345 10.11004 0.38000
+v 1.47695 10.07653 0.38000
+v 2.47900 10.28488 0.38000
+v 2.47900 10.31751 0.38000
+v 2.45100 10.34552 0.38000
+v 2.01549 10.69194 0.38000
+v 1.44345 10.11004 0.40500
+v 1.47695 10.07653 0.40500
+v 2.47900 10.28488 0.40500
+v 2.47900 10.31751 0.40500
+v 2.45100 10.34552 0.40500
+v 2.01549 10.69194 0.40500
+v 1.46457 10.11013 0.42000
+v 1.48183 10.09287 0.42000
+v 2.46400 10.29708 0.42000
+v 2.46400 10.31130 0.42000
+v 2.44099 10.33431 0.42000
+v 2.01672 10.67180 0.42000
+v 2.03394 10.71046 0.38000
+v 2.45903 10.36446 0.38000
+v 2.50100 10.32249 0.38000
+v 2.50100 10.28286 0.38000
+v 3.02458 9.85807 0.38000
+v 3.06007 9.89355 0.38000
+v 3.31770 10.40882 0.38000
+v 3.25355 10.47296 0.38000
+v 3.20549 10.45373 0.38000
+v 2.76198 10.55453 0.38000
+v 2.65251 10.66400 0.38000
+v 2.23366 10.66400 0.38000
+v 2.06626 10.74278 0.38000
+v 2.03394 10.71046 0.40500
+v 2.45903 10.36446 0.40500
+v 2.50100 10.32249 0.40500
+v 2.50100 10.28286 0.40500
+v 3.02458 9.85807 0.40500
+v 3.06007 9.89355 0.40500
+v 3.31770 10.40882 0.40500
+v 3.25355 10.47296 0.40500
+v 3.20549 10.45373 0.40500
+v 2.76198 10.55453 0.40500
+v 2.65251 10.66400 0.40500
+v 2.23366 10.66400 0.40500
+v 2.06626 10.74278 0.40500
+v 2.05630 10.71160 0.42000
+v 2.46909 10.37561 0.42000
+v 2.51600 10.32870 0.42000
+v 2.51600 10.29000 0.42000
+v 3.02353 9.87823 0.42000
+v 3.04774 9.90244 0.42000
+v 3.29945 10.40585 0.42000
+v 3.24994 10.45536 0.42000
+v 3.20673 10.43807 0.42000
+v 2.75444 10.54087 0.42000
+v 2.64630 10.64900 0.42000
+v 2.23031 10.64900 0.42000
+v 2.06941 10.72471 0.42000
+v 0.14500 10.74000 0.00000
+v 0.01500 9.45000 0.00000
+v 0.06500 9.41000 0.00000
+v 0.29500 9.68000 0.00000
+v 0.40500 9.57000 0.00000
+v 0.64500 9.04000 0.00000
+v 1.91500 7.33000 0.00000
+v 1.95500 7.37000 0.00000
+v 1.97500 7.95000 0.00000
+v 2.08500 8.06000 0.00000
+v 2.34500 7.72000 0.00000
+v 2.64500 8.24000 0.00000
+v 2.81500 8.44000 0.00000
+v 1.42500 10.09000 0.00000
+v 2.05500 10.74000 0.00000
+v 1.42500 11.18000 0.00000
+v 1.29500 11.31000 0.00000
+v 0.14500 10.74000 0.32000
+v 0.01500 9.45000 0.32000
+v 0.06500 9.41000 0.32000
+v 0.29500 9.68000 0.32000
+v 0.40500 9.57000 0.32000
+v 0.64500 9.04000 0.32000
+v 1.91500 7.33000 0.32000
+v 1.95500 7.37000 0.32000
+v 1.97500 7.95000 0.32000
+v 2.08500 8.06000 0.32000
+v 2.34500 7.72000 0.32000
+v 2.64500 8.24000 0.32000
+v 2.81500 8.44000 0.32000
+v 1.42500 10.09000 0.32000
+v 2.05500 10.74000 0.32000
+v 1.42500 11.18000 0.32000
+v 1.29500 11.31000 0.32000
+v 0.28763 10.82461 0.32000
+v 0.18855 10.77507 0.32000
+v 0.15078 10.73730 0.32000
+v 0.04091 9.50877 0.32000
+v 0.02186 9.45162 0.32000
+v 0.05537 9.41812 0.32000
+v 0.11038 9.46396 0.32000
+v 0.17024 9.56372 0.32000
+v 0.29500 9.68849 0.32000
+v 0.30100 9.68249 0.32000
+v 0.31929 9.79226 0.32000
+v 0.62047 10.24402 0.32000
+v 0.69054 10.30408 0.32000
+v 0.74005 10.37339 0.32000
+v 1.29032 11.21380 0.32000
+v 1.33651 11.26000 0.32000
+v 1.29375 11.30276 0.32000
+v 0.28763 10.82461 0.35250
+v 0.18855 10.77507 0.35250
+v 0.15078 10.73730 0.35250
+v 0.04091 9.50877 0.35250
+v 0.02186 9.45162 0.35250
+v 0.05537 9.41812 0.35250
+v 0.11038 9.46396 0.35250
+v 0.17024 9.56372 0.35250
+v 0.29500 9.68849 0.35250
+v 0.30100 9.68249 0.35250
+v 0.31929 9.79226 0.35250
+v 0.62047 10.24402 0.35250
+v 0.69054 10.30408 0.35250
+v 0.74005 10.37339 0.35250
+v 1.29032 11.21380 0.35250
+v 1.33651 11.26000 0.35250
+v 1.29375 11.30276 0.35250
+v 0.29092 10.81786 0.36000
+v 0.19300 10.76890 0.36000
+v 0.15801 10.73392 0.36000
+v 0.04831 9.50723 0.36000
+v 0.03045 9.45365 0.36000
+v 0.05583 9.42826 0.36000
+v 0.10460 9.46891 0.36000
+v 0.16428 9.56837 0.36000
+v 0.29500 9.69909 0.36000
+v 0.29600 9.69810 0.36000
+v 0.31216 9.79508 0.36000
+v 0.61480 10.24904 0.36000
+v 0.68497 10.30918 0.36000
+v 0.73386 10.37762 0.36000
+v 1.28447 11.21856 0.36000
+v 1.32591 11.26000 0.36000
+v 1.29219 11.29372 0.36000
+v 1.30967 11.20618 0.32000
+v 0.70162 10.28912 0.32000
+v 0.72037 10.23287 0.32000
+v 0.92707 9.96712 0.32000
+v 1.31396 10.10600 0.32000
+v 1.36623 10.10600 0.32000
+v 1.42253 10.08176 0.32000
+v 1.41773 10.09112 0.32000
+v 2.04658 10.73993 0.32000
+v 2.00118 10.78534 0.32000
+v 1.52149 11.10513 0.32000
+v 1.34550 11.24201 0.32000
+v 1.30967 11.20618 0.35625
+v 0.70162 10.28912 0.35625
+v 0.72037 10.23287 0.35625
+v 0.92707 9.96712 0.35625
+v 1.31396 10.10600 0.35625
+v 1.36623 10.10600 0.35625
+v 1.42253 10.08176 0.35625
+v 1.41773 10.09112 0.35625
+v 2.04658 10.73993 0.35625
+v 2.00118 10.78534 0.35625
+v 1.52149 11.10513 0.35625
+v 1.34550 11.24201 0.35625
+v 1.31259 11.20380 0.36000
+v 0.70575 10.28857 0.36000
+v 0.72372 10.23467 0.36000
+v 0.92836 9.97156 0.36000
+v 1.31330 10.10975 0.36000
+v 1.36700 10.10975 0.36000
+v 1.41470 10.08908 0.36000
+v 1.41317 10.09180 0.36000
+v 2.04132 10.73989 0.36000
+v 1.99879 10.78242 0.36000
+v 1.51930 11.10209 0.36000
+v 1.34581 11.23702 0.36000
+v 0.95766 9.96456 0.32000
+v 0.93100 9.94679 0.32000
+v 0.93100 9.93188 0.32000
+v 1.56943 9.01414 0.32000
+v 1.61710 8.97600 0.32000
+v 1.64032 8.97600 0.32000
+v 1.64881 9.00999 0.32000
+v 1.40900 9.95925 0.32000
+v 1.40900 10.05660 0.32000
+v 1.36334 10.08400 0.32000
+v 1.31597 10.08400 0.32000
+v 0.95766 9.96456 0.34500
+v 0.93100 9.94679 0.34500
+v 0.93100 9.93188 0.34500
+v 1.56943 9.01414 0.34500
+v 1.61710 8.97600 0.34500
+v 1.64032 8.97600 0.34500
+v 1.64881 9.00999 0.34500
+v 1.40900 9.95925 0.34500
+v 1.40900 10.05660 0.34500
+v 1.36334 10.08400 0.34500
+v 1.31597 10.08400 0.34500
+v 0.96431 9.95097 0.36000
+v 0.94600 9.93876 0.36000
+v 0.94600 9.93659 0.36000
+v 1.58050 9.02449 0.36000
+v 1.62237 8.99100 0.36000
+v 1.62860 8.99100 0.36000
+v 1.63335 9.00997 0.36000
+v 1.39400 9.95739 0.36000
+v 1.39400 10.04811 0.36000
+v 1.35918 10.06900 0.36000
+v 1.31841 10.06900 0.36000
+v 0.63948 10.23590 0.32000
+v 0.34073 9.78778 0.32000
+v 0.32139 9.66209 0.32000
+v 0.41002 9.57347 0.32000
+v 0.65021 9.04305 0.32000
+v 1.77974 7.50368 0.32000
+v 1.91543 7.33892 0.32000
+v 1.94905 7.37253 0.32000
+v 1.95901 7.90065 0.32000
+v 1.96947 7.95296 0.32000
+v 2.03841 8.02189 0.32000
+v 1.94939 8.40763 0.32000
+v 1.74969 8.71716 0.32000
+v 1.65045 8.94542 0.32000
+v 1.58135 8.97504 0.32000
+v 1.52026 9.04631 0.32000
+v 0.92951 9.88738 0.32000
+v 0.90955 9.95723 0.32000
+v 0.69974 10.22699 0.32000
+v 0.68243 10.27026 0.32000
+v 0.63948 10.23590 0.33000
+v 0.34073 9.78778 0.33000
+v 0.32139 9.66209 0.33000
+v 0.41002 9.57347 0.33000
+v 0.65021 9.04305 0.33000
+v 1.77974 7.50368 0.33000
+v 1.91543 7.33892 0.33000
+v 1.94905 7.37253 0.33000
+v 1.95901 7.90065 0.33000
+v 1.96947 7.95296 0.33000
+v 2.03841 8.02189 0.33000
+v 1.94939 8.40763 0.33000
+v 1.74969 8.71716 0.33000
+v 1.65045 8.94542 0.33000
+v 1.58135 8.97504 0.33000
+v 1.52026 9.04631 0.33000
+v 0.92951 9.88738 0.33000
+v 0.90955 9.95723 0.33000
+v 0.69974 10.22699 0.33000
+v 0.68243 10.27026 0.33000
+v 0.66185 10.21538 0.36000
+v 0.36937 9.77666 0.36000
+v 0.35336 9.67256 0.36000
+v 0.43509 9.59082 0.36000
+v 0.67625 9.05827 0.36000
+v 1.80343 7.52211 0.36000
+v 1.91758 7.38349 0.36000
+v 1.91928 7.38519 0.36000
+v 1.92907 7.90390 0.36000
+v 1.94184 7.96775 0.36000
+v 2.00544 8.03135 0.36000
+v 1.92134 8.39577 0.36000
+v 1.72316 8.70295 0.36000
+v 1.62768 8.92254 0.36000
+v 1.56312 8.95021 0.36000
+v 1.49654 9.02789 0.36000
+v 0.90205 9.87427 0.36000
+v 0.88230 9.94340 0.36000
+v 0.67346 10.21191 0.36000
+v 0.66960 10.22157 0.36000
+v 1.43100 10.05629 0.32000
+v 1.43100 9.96075 0.32000
+v 1.67115 9.01015 0.32000
+v 1.66127 8.96073 0.32000
+v 1.77028 8.72289 0.32000
+v 1.97060 8.41239 0.32000
+v 2.05836 8.04185 0.32000
+v 2.08500 8.06849 0.32000
+v 2.19987 7.95361 0.32000
+v 2.27997 7.80343 0.32000
+v 2.34529 7.72878 0.32000
+v 2.39012 7.77361 0.32000
+v 2.64008 8.24352 0.32000
+v 2.79002 8.40347 0.32000
+v 2.80788 8.43918 0.32000
+v 1.53056 9.97595 0.32000
+v 1.44382 10.06270 0.32000
+v 1.43100 10.05629 0.35250
+v 1.43100 9.96075 0.35250
+v 1.67115 9.01015 0.35250
+v 1.66127 8.96073 0.35250
+v 1.77028 8.72289 0.35250
+v 1.97060 8.41239 0.35250
+v 2.05836 8.04185 0.35250
+v 2.08500 8.06849 0.35250
+v 2.19987 7.95361 0.35250
+v 2.27997 7.80343 0.35250
+v 2.34529 7.72878 0.35250
+v 2.39012 7.77361 0.35250
+v 2.64008 8.24352 0.35250
+v 2.79002 8.40347 0.35250
+v 2.80788 8.43918 0.35250
+v 1.53056 9.97595 0.35250
+v 1.44382 10.06270 0.35250
+v 1.43850 10.05166 0.36000
+v 1.43850 9.96168 0.36000
+v 1.67884 9.01035 0.36000
+v 1.66910 8.96165 0.36000
+v 1.77687 8.72651 0.36000
+v 1.97760 8.41537 0.36000
+v 2.06256 8.05665 0.36000
+v 2.08500 8.07909 0.36000
+v 2.20597 7.95813 0.36000
+v 2.28618 7.80772 0.36000
+v 2.34566 7.73975 0.36000
+v 2.38403 7.77812 0.36000
+v 2.63392 8.24792 0.36000
+v 2.78381 8.40780 0.36000
+v 2.79898 8.43815 0.36000
+v 1.52501 9.97089 0.36000
+v 1.44233 10.05357 0.36000
+v 0.53500 8.22000 0.00000
+v 0.42500 8.11000 0.00000
+v 0.36500 8.17000 0.00000
+v -1.53500 8.34000 0.00000
+v -1.57500 8.30000 0.00000
+v -1.03500 7.24000 0.00000
+v -0.89500 7.10000 0.00000
+v 0.80500 5.84000 0.00000
+v 0.86500 5.90000 0.00000
+v 0.91500 5.85000 0.00000
+v 2.56500 5.75000 0.00000
+v 2.60500 5.79000 0.00000
+v 2.45500 5.97000 0.00000
+v 2.96500 7.41000 0.00000
+v 2.77500 8.45000 0.00000
+v 2.73500 8.49000 0.00000
+v 2.68500 8.44000 0.00000
+v 2.47500 8.04000 0.00000
+v 2.33500 7.89000 0.00000
+v 2.22500 8.00000 0.00000
+v 2.01500 8.35000 0.00000
+v 1.96500 8.40000 0.00000
+v 1.92500 8.36000 0.00000
+v 1.93500 7.60000 0.00000
+v 1.82500 7.49000 0.00000
+v 0.81500 8.83000 0.00000
+v 0.53500 8.22000 0.51000
+v 0.42500 8.11000 0.51000
+v 0.36500 8.17000 0.51000
+v -1.53500 8.34000 0.51000
+v -1.57500 8.30000 0.51000
+v -1.03500 7.24000 0.51000
+v -0.89500 7.10000 0.51000
+v 0.80500 5.84000 0.51000
+v 0.86500 5.90000 0.51000
+v 0.91500 5.85000 0.51000
+v 2.56500 5.75000 0.51000
+v 2.60500 5.79000 0.51000
+v 2.45500 5.97000 0.51000
+v 2.96500 7.41000 0.51000
+v 2.77500 8.45000 0.51000
+v 2.73500 8.49000 0.51000
+v 2.68500 8.44000 0.51000
+v 2.47500 8.04000 0.51000
+v 2.33500 7.89000 0.51000
+v 2.22500 8.00000 0.51000
+v 2.01500 8.35000 0.51000
+v 1.96500 8.40000 0.51000
+v 1.92500 8.36000 0.51000
+v 1.93500 7.60000 0.51000
+v 1.82500 7.49000 0.51000
+v 0.81500 8.83000 0.51000
+v 0.75030 8.72710 0.51000
+v 0.54017 8.21680 0.51000
+v 0.47509 8.14242 0.51000
+v 0.51837 8.12511 0.51000
+v 0.59938 8.04411 0.51000
+v 0.89031 7.71305 0.51000
+v 0.90932 7.65600 0.51000
+v 0.94749 7.65600 0.51000
+v 1.02938 7.57410 0.51000
+v 1.81923 6.67428 0.51000
+v 1.88722 6.61600 0.51000
+v 1.91941 6.61600 0.51000
+v 1.93900 6.89021 0.51000
+v 1.93900 7.28903 0.51000
+v 1.86238 7.51889 0.51000
+v 1.82500 7.48151 0.51000
+v 1.70041 7.60611 0.51000
+v 0.92026 8.69631 0.51000
+v 0.81545 8.82018 0.51000
+v 0.75030 8.72710 0.53500
+v 0.54017 8.21680 0.53500
+v 0.47509 8.14242 0.53500
+v 0.51837 8.12511 0.53500
+v 0.59938 8.04411 0.53500
+v 0.89031 7.71305 0.53500
+v 0.90932 7.65600 0.53500
+v 0.94749 7.65600 0.53500
+v 1.02938 7.57410 0.53500
+v 1.81923 6.67428 0.53500
+v 1.88722 6.61600 0.53500
+v 1.91941 6.61600 0.53500
+v 1.93900 6.89021 0.53500
+v 1.93900 7.28903 0.53500
+v 1.86238 7.51889 0.53500
+v 1.82500 7.48151 0.53500
+v 1.70041 7.60611 0.53500
+v 0.92026 8.69631 0.53500
+v 0.81545 8.82018 0.53500
+v 0.76353 8.71986 0.55000
+v 0.55309 8.20879 0.55000
+v 0.50033 8.14849 0.55000
+v 0.52680 8.13790 0.55000
+v 0.61033 8.05437 0.55000
+v 0.90358 7.72067 0.55000
+v 0.92014 7.67100 0.55000
+v 0.95370 7.67100 0.55000
+v 1.04033 7.58437 0.55000
+v 1.82980 6.68497 0.55000
+v 1.89277 6.63100 0.55000
+v 1.90545 6.63100 0.55000
+v 1.92400 6.89075 0.55000
+v 1.92400 7.28659 0.55000
+v 1.85582 7.49112 0.55000
+v 1.82500 7.46030 0.55000
+v 1.68893 7.59637 0.55000
+v 0.90842 8.68709 0.55000
+v 0.81657 8.79563 0.55000
+v -1.56768 8.29884 0.51000
+v -1.03009 7.24357 0.51000
+v -0.96500 7.17849 0.51000
+v -0.91885 7.22463 0.51000
+v -0.05822 7.81507 0.51000
+v 0.35163 8.05498 0.51000
+v 0.43050 8.11086 0.51000
+v 0.42382 8.10270 0.51000
+v 0.36230 8.16422 0.51000
+v -1.53274 8.33377 0.51000
+v -1.56768 8.29884 0.52000
+v -1.03009 7.24357 0.52000
+v -0.96500 7.17849 0.52000
+v -0.91885 7.22463 0.52000
+v -0.05822 7.81507 0.52000
+v 0.35163 8.05498 0.52000
+v 0.43050 8.11086 0.52000
+v 0.42382 8.10270 0.52000
+v 0.36230 8.16422 0.52000
+v -1.53274 8.33377 0.52000
+v -1.53105 8.29304 0.55000
+v -1.00551 7.26142 0.55000
+v -0.96500 7.22091 0.55000
+v -0.93811 7.24781 0.55000
+v -0.07430 7.84042 0.55000
+v 0.33535 8.08021 0.55000
+v 0.49318 8.16932 0.55000
+v 0.42603 8.05805 0.55000
+v 0.34878 8.13531 0.55000
+v -1.52144 8.30264 0.55000
+v 0.41898 8.07537 0.51000
+v 0.03820 7.85492 0.51000
+v -0.91087 7.20555 0.51000
+v -0.94664 7.16084 0.51000
+v -0.77129 7.01472 0.51000
+v 0.80441 5.84790 0.51000
+v 0.84903 5.89252 0.51000
+v 0.86900 7.34022 0.51000
+v 0.88888 7.66827 0.51000
+v 0.82028 7.76627 0.51000
+v 0.58063 8.03588 0.51000
+v 0.51176 8.10476 0.51000
+v 0.45707 8.12298 0.51000
+v 0.41898 8.07537 0.52000
+v 0.03820 7.85492 0.52000
+v -0.91087 7.20555 0.52000
+v -0.94664 7.16084 0.52000
+v -0.77129 7.01472 0.52000
+v 0.80441 5.84790 0.52000
+v 0.84903 5.89252 0.52000
+v 0.86900 7.34022 0.52000
+v 0.88888 7.66827 0.52000
+v 0.82028 7.76627 0.52000
+v 0.58063 8.03588 0.52000
+v 0.51176 8.10476 0.52000
+v 0.45707 8.12298 0.52000
+v 0.43889 8.05223 0.55000
+v 0.05421 7.82952 0.55000
+v -0.89024 7.18332 0.55000
+v -0.90484 7.16507 0.55000
+v -0.75275 7.03832 0.55000
+v 0.80149 5.88740 0.55000
+v 0.81921 5.90512 0.55000
+v 0.83902 7.34134 0.55000
+v 0.85831 7.65964 0.55000
+v 0.79671 7.74764 0.55000
+v 0.55880 8.01529 0.55000
+v 0.49555 8.07853 0.55000
+v 0.46743 8.08791 0.55000
+v 2.68989 8.43640 0.51000
+v 2.47994 8.03650 0.51000
+v 2.35100 7.89764 0.51000
+v 2.35100 7.76170 0.51000
+v 2.69637 7.19924 0.51000
+v 2.87133 7.35476 0.51000
+v 2.95840 7.41281 0.51000
+v 2.77933 8.41761 0.51000
+v 2.73423 8.48075 0.51000
+v 2.68989 8.43640 0.52000
+v 2.47994 8.03650 0.52000
+v 2.35100 7.89764 0.52000
+v 2.35100 7.76170 0.52000
+v 2.69637 7.19924 0.52000
+v 2.87133 7.35476 0.52000
+v 2.95840 7.41281 0.52000
+v 2.77933 8.41761 0.52000
+v 2.73423 8.48075 0.52000
+v 2.71433 8.41842 0.55000
+v 2.50464 8.01902 0.55000
+v 2.38100 7.88586 0.55000
+v 2.38100 7.77017 0.55000
+v 2.70320 7.24545 0.55000
+v 2.85295 7.37857 0.55000
+v 2.92542 7.42688 0.55000
+v 2.75098 8.40569 0.55000
+v 2.73041 8.43449 0.55000
+v 1.93103 8.35755 0.51000
+v 1.94103 7.59755 0.51000
+v 1.88100 7.53751 0.51000
+v 1.88100 7.51106 0.51000
+v 1.96100 7.29106 0.51000
+v 1.96100 6.88979 0.51000
+v 1.94137 6.61502 0.51000
+v 1.99323 6.60638 0.51000
+v 2.67720 7.19123 0.51000
+v 2.32900 7.75830 0.51000
+v 2.32900 7.88751 0.51000
+v 2.22024 7.99628 0.51000
+v 2.01024 8.34628 0.51000
+v 1.96500 8.39151 0.51000
+v 1.93103 8.35755 0.52000
+v 1.94103 7.59755 0.52000
+v 1.88100 7.53751 0.52000
+v 1.88100 7.51106 0.52000
+v 1.96100 7.29106 0.52000
+v 1.96100 6.88979 0.52000
+v 1.94137 6.61502 0.52000
+v 1.99323 6.60638 0.52000
+v 2.67720 7.19123 0.52000
+v 2.32900 7.75830 0.52000
+v 2.32900 7.88751 0.52000
+v 2.22024 7.99628 0.52000
+v 2.01024 8.34628 0.52000
+v 1.96500 8.39151 0.52000
+v 1.96120 8.34529 0.55000
+v 1.97120 7.58529 0.55000
+v 1.91100 7.52509 0.55000
+v 1.91100 7.51634 0.55000
+v 1.99100 7.29634 0.55000
+v 1.99100 6.88872 0.55000
+v 1.97324 6.64012 0.55000
+v 1.98436 6.63827 0.55000
+v 2.63823 7.19737 0.55000
+v 2.29900 7.74983 0.55000
+v 2.29900 7.87509 0.55000
+v 2.19641 7.97768 0.55000
+v 1.98641 8.32768 0.55000
+v 1.96500 8.34909 0.55000
+v 0.89100 7.33976 0.51000
+v 0.87103 5.90245 0.51000
+v 0.91763 5.85585 0.51000
+v 2.56267 5.75615 0.51000
+v 2.59670 5.79018 0.51000
+v 1.94026 6.50629 0.51000
+v 1.91900 6.53818 0.51000
+v 1.91900 6.59400 0.51000
+v 1.88275 6.59400 0.51000
+v 1.80075 6.66574 0.51000
+v 1.01062 7.56590 0.51000
+v 0.94251 7.63400 0.51000
+v 0.91061 7.63400 0.51000
+v 0.89100 7.33976 0.53500
+v 0.87103 5.90245 0.53500
+v 0.91763 5.85585 0.53500
+v 2.56267 5.75615 0.53500
+v 2.59670 5.79018 0.53500
+v 1.94026 6.50629 0.53500
+v 1.91900 6.53818 0.53500
+v 1.91900 6.59400 0.53500
+v 1.88275 6.59400 0.53500
+v 1.80075 6.66574 0.53500
+v 1.01062 7.56590 0.53500
+v 0.94251 7.63400 0.53500
+v 0.91061 7.63400 0.53500
+v 0.90599 7.33916 0.55000
+v 0.88612 5.90858 0.55000
+v 0.92422 5.87048 0.55000
+v 2.55683 5.77153 0.55000
+v 2.57593 5.79063 0.55000
+v 1.92843 6.49700 0.55000
+v 1.90400 6.53364 0.55000
+v 1.90400 6.57900 0.55000
+v 1.87711 6.57900 0.55000
+v 1.79013 6.65511 0.55000
+v 0.99967 7.55563 0.55000
+v 0.93630 7.61900 0.55000
+v 0.92465 7.61900 0.55000
+v 1.99676 6.58362 0.51000
+v 1.94100 6.59292 0.51000
+v 1.94100 6.54182 0.51000
+v 1.95975 6.51368 0.51000
+v 2.38921 6.03430 0.51000
+v 2.45419 5.97859 0.51000
+v 2.48965 6.02291 0.51000
+v 2.84932 7.10193 0.51000
+v 2.92978 7.33327 0.51000
+v 2.94487 7.34836 0.51000
+v 2.91586 7.36286 0.51000
+v 1.99676 6.58362 0.53500
+v 1.94100 6.59292 0.53500
+v 1.94100 6.54182 0.53500
+v 1.95975 6.51368 0.53500
+v 2.38921 6.03430 0.53500
+v 2.45419 5.97859 0.53500
+v 2.48965 6.02291 0.53500
+v 2.84932 7.10193 0.53500
+v 2.92978 7.33327 0.53500
+v 2.94487 7.34836 0.53500
+v 2.91586 7.36286 0.53500
+v 2.00115 6.56768 0.55000
+v 1.95600 6.57521 0.55000
+v 1.95600 6.54636 0.55000
+v 1.97164 6.52290 0.55000
+v 2.39972 6.04504 0.55000
+v 2.45217 6.00008 0.55000
+v 2.47626 6.03019 0.55000
+v 2.83512 7.10677 0.55000
+v 2.91675 7.34145 0.55000
+v 2.91955 7.34425 0.55000
+v 2.91801 7.34502 0.55000
+v -4.19500 7.99000 0.00000
+v -4.23500 8.02000 0.00000
+v -4.27500 7.98000 0.00000
+v -4.41500 6.48000 0.00000
+v -4.37500 6.44000 0.00000
+v -4.39500 6.41000 0.00000
+v -3.17500 5.22000 0.00000
+v 0.22500 5.16000 0.00000
+v 0.26500 5.20000 0.00000
+v 0.23500 5.24000 0.00000
+v -0.50500 6.11000 0.00000
+v -0.53500 6.09000 0.00000
+v -0.58500 6.14000 0.00000
+v -2.16500 5.86000 0.00000
+v -2.26500 5.76000 0.00000
+v -3.41500 6.54000 0.00000
+v -3.55500 6.68000 0.00000
+v -3.68500 7.26000 0.00000
+v -3.08500 7.93000 0.00000
+v -2.86500 8.94000 0.00000
+v -2.91500 8.98000 0.00000
+v -4.19500 7.99000 0.22000
+v -4.23500 8.02000 0.22000
+v -4.27500 7.98000 0.22000
+v -4.41500 6.48000 0.22000
+v -4.37500 6.44000 0.22000
+v -4.39500 6.41000 0.22000
+v -3.17500 5.22000 0.22000
+v 0.22500 5.16000 0.22000
+v 0.26500 5.20000 0.22000
+v 0.23500 5.24000 0.22000
+v -0.50500 6.11000 0.22000
+v -0.53500 6.09000 0.22000
+v -0.58500 6.14000 0.22000
+v -2.16500 5.86000 0.22000
+v -2.26500 5.76000 0.22000
+v -3.41500 6.54000 0.22000
+v -3.55500 6.68000 0.22000
+v -3.68500 7.26000 0.22000
+v -3.08500 7.93000 0.22000
+v -2.86500 8.94000 0.22000
+v -2.91500 8.98000 0.22000
+v -1.43138 5.37521 0.22000
+v -1.54305 5.29400 0.22000
+v -1.55900 5.29400 0.22000
+v -1.55900 5.25492 0.22000
+v -1.51249 5.24562 0.22000
+v -1.47292 5.21594 0.22000
+v 0.22259 5.16607 0.22000
+v 0.25708 5.20056 0.22000
+v 0.23031 5.23625 0.22000
+v -0.50583 6.10172 0.22000
+v -1.43138 5.37521 0.24500
+v -1.54305 5.29400 0.24500
+v -1.55900 5.29400 0.24500
+v -1.55900 5.25492 0.24500
+v -1.51249 5.24562 0.24500
+v -1.47292 5.21594 0.24500
+v 0.22259 5.16607 0.24500
+v 0.25708 5.20056 0.24500
+v 0.23031 5.23625 0.24500
+v -0.50583 6.10172 0.24500
+v -1.42234 5.36324 0.26000
+v -1.53817 5.27900 0.26000
+v -1.54400 5.27900 0.26000
+v -1.54400 5.26722 0.26000
+v -1.50621 5.25966 0.26000
+v -1.46773 5.23080 0.26000
+v 0.21656 5.18126 0.26000
+v 0.23727 5.20197 0.26000
+v 0.21859 5.22688 0.26000
+v -0.50792 6.08101 0.26000
+v -2.16184 5.85447 0.22000
+v -2.21629 5.79094 0.22000
+v -1.69147 5.39485 0.22000
+v -1.59259 5.32564 0.22000
+v -1.54652 5.31642 0.22000
+v -0.59898 6.05451 0.22000
+v -0.55349 6.10000 0.22000
+v -0.58703 6.13355 0.22000
+v -2.16184 5.85447 0.23000
+v -2.21629 5.79094 0.23000
+v -1.69147 5.39485 0.23000
+v -1.59259 5.32564 0.23000
+v -1.54652 5.31642 0.23000
+v -0.59898 6.05451 0.23000
+v -0.55349 6.10000 0.23000
+v -0.58703 6.13355 0.23000
+v -2.14604 5.82680 0.26000
+v -2.17274 5.79566 0.26000
+v -1.67383 5.41912 0.26000
+v -1.58054 5.35382 0.26000
+v -1.55411 5.34854 0.26000
+v -0.61888 6.07703 0.26000
+v -0.59591 6.10000 0.26000
+v -0.59719 6.10128 0.26000
+v -3.51881 6.54001 0.22000
+v -3.21875 5.34977 0.22000
+v -3.23814 5.29162 0.22000
+v -3.17244 5.22593 0.22000
+v -1.51741 5.17608 0.22000
+v -1.49230 5.20118 0.22000
+v -1.49931 5.21521 0.22000
+v -1.58035 5.24560 0.22000
+v -1.59051 5.30656 0.22000
+v -2.10868 5.67526 0.22000
+v -2.23466 5.78185 0.22000
+v -2.26382 5.75270 0.22000
+v -2.28804 5.76481 0.22000
+v -3.41870 6.53526 0.22000
+v -3.50158 6.60893 0.22000
+v -3.51881 6.54001 0.25250
+v -3.21875 5.34977 0.25250
+v -3.23814 5.29162 0.25250
+v -3.17244 5.22593 0.25250
+v -1.51741 5.17608 0.25250
+v -1.49230 5.20118 0.25250
+v -1.49931 5.21521 0.25250
+v -1.58035 5.24560 0.25250
+v -1.59051 5.30656 0.25250
+v -2.10868 5.67526 0.25250
+v -2.23466 5.78185 0.25250
+v -2.26382 5.75270 0.25250
+v -2.28804 5.76481 0.25250
+v -3.41870 6.53526 0.25250
+v -3.50158 6.60893 0.25250
+v -3.51108 6.54001 0.26000
+v -3.21095 5.34947 0.26000
+v -3.22955 5.29365 0.26000
+v -3.16924 5.23333 0.26000
+v -1.52042 5.18367 0.26000
+v -1.50143 5.20267 0.26000
+v -1.50470 5.20922 0.26000
+v -1.58704 5.24010 0.26000
+v -1.59739 5.30225 0.26000
+v -2.11329 5.66933 0.26000
+v -2.23424 5.77167 0.26000
+v -2.26233 5.74357 0.26000
+v -2.29185 5.75833 0.26000
+v -3.42332 6.52933 0.26000
+v -3.49731 6.59510 0.26000
+v -3.77922 7.18785 0.22000
+v -3.80012 7.15651 0.22000
+v -4.32048 6.47604 0.22000
+v -4.38649 6.41003 0.22000
+v -3.55081 5.58429 0.22000
+v -3.27181 5.31526 0.22000
+v -3.24955 5.30784 0.22000
+v -3.24115 5.34985 0.22000
+v -3.54111 6.53968 0.22000
+v -3.53066 6.61283 0.22000
+v -3.51349 6.63000 0.22000
+v -3.56048 6.67699 0.22000
+v -3.68040 7.21664 0.22000
+v -3.72761 7.25440 0.22000
+v -3.76985 7.26285 0.22000
+v -3.77922 7.18785 0.24500
+v -3.80012 7.15651 0.24500
+v -4.32048 6.47604 0.24500
+v -4.38649 6.41003 0.24500
+v -3.55081 5.58429 0.24500
+v -3.27181 5.31526 0.24500
+v -3.24955 5.30784 0.24500
+v -3.24115 5.34985 0.24500
+v -3.54111 6.53968 0.24500
+v -3.53066 6.61283 0.24500
+v -3.51349 6.63000 0.24500
+v -3.56048 6.67699 0.24500
+v -3.68040 7.21664 0.24500
+v -3.72761 7.25440 0.24500
+v -3.76985 7.26285 0.24500
+v -3.76478 7.18248 0.26000
+v -3.78790 7.14778 0.26000
+v -4.30917 6.46614 0.26000
+v -4.36521 6.41009 0.26000
+v -3.54033 5.59503 0.26000
+v -3.26385 5.32842 0.26000
+v -3.26093 5.32744 0.26000
+v -3.25652 5.34947 0.26000
+v -3.55637 6.53888 0.26000
+v -3.54480 6.61990 0.26000
+v -3.53470 6.63000 0.26000
+v -3.57417 6.66947 0.26000
+v -3.69390 7.20822 0.26000
+v -3.73413 7.24041 0.26000
+v -3.75696 7.24498 0.26000
+v -4.26940 7.97712 0.22000
+v -4.27904 7.91927 0.22000
+v -4.38908 6.53880 0.22000
+v -4.40814 6.48162 0.22000
+v -4.38251 6.45600 0.22000
+v -4.36749 6.45600 0.22000
+v -4.33952 6.48396 0.22000
+v -3.82022 7.16305 0.22000
+v -3.79118 7.23082 0.22000
+v -3.80077 7.29797 0.22000
+v -3.99024 7.61707 0.22000
+v -4.18757 7.99201 0.22000
+v -4.20618 7.98270 0.22000
+v -4.23500 8.01151 0.22000
+v -4.26940 7.97712 0.24500
+v -4.27904 7.91927 0.24500
+v -4.38908 6.53880 0.24500
+v -4.40814 6.48162 0.24500
+v -4.38251 6.45600 0.24500
+v -4.36749 6.45600 0.24500
+v -4.33952 6.48396 0.24500
+v -3.82022 7.16305 0.24500
+v -3.79118 7.23082 0.24500
+v -3.80077 7.29797 0.24500
+v -3.99024 7.61707 0.24500
+v -4.18757 7.99201 0.24500
+v -4.20618 7.98270 0.24500
+v -4.23500 8.01151 0.24500
+v -4.25539 7.96991 0.26000
+v -4.26414 7.91743 0.26000
+v -4.37427 6.53578 0.26000
+v -4.39097 6.48567 0.26000
+v -4.37630 6.47100 0.26000
+v -4.37370 6.47100 0.26000
+v -4.35083 6.49386 0.26000
+v -3.83327 7.17068 0.26000
+v -3.80662 7.23286 0.26000
+v -3.81520 7.29288 0.26000
+v -4.00333 7.60974 0.26000
+v -4.19400 7.97202 0.26000
+v -4.20915 7.96445 0.26000
+v -4.23500 7.99030 0.26000
+v -4.16738 8.00829 0.22000
+v -3.96975 7.62292 0.22000
+v -3.76113 7.27522 0.22000
+v -3.68708 7.25671 0.22000
+v -3.09056 7.93277 0.22000
+v -2.89064 8.91235 0.22000
+v -2.87304 8.93875 0.22000
+v -2.91507 8.97237 0.22000
+v -4.16738 8.00829 0.23000
+v -3.96975 7.62292 0.23000
+v -3.76113 7.27522 0.23000
+v -3.68708 7.25671 0.23000
+v -3.09056 7.93277 0.23000
+v -2.89064 8.91235 0.23000
+v -2.87304 8.93875 0.23000
+v -2.91507 8.97237 0.23000
+v -4.12929 7.99976 0.26000
+v -3.94351 7.63749 0.26000
+v -3.74180 7.30131 0.26000
+v -3.69751 7.29024 0.26000
+v -3.11835 7.94661 0.26000
+v -2.91886 8.92410 0.26000
+v -2.91326 8.93251 0.26000
+v -2.91543 8.93424 0.26000
+v 3.54500 6.10000 0.00000
+v 2.45500 6.04000 0.00000
+v 2.41500 6.00000 0.00000
+v 2.45500 5.93000 0.00000
+v 2.34500 5.82000 0.00000
+v 1.88500 5.82000 0.00000
+v 1.84500 5.78000 0.00000
+v 2.96500 5.14000 0.00000
+v 3.07500 5.25000 0.00000
+v 4.35500 5.18000 0.00000
+v 4.39500 5.22000 0.00000
+v 4.35500 5.27000 0.00000
+v 3.57500 6.13000 0.00000
+v 3.54500 6.10000 0.51000
+v 2.45500 6.04000 0.51000
+v 2.41500 6.00000 0.51000
+v 2.45500 5.93000 0.51000
+v 2.34500 5.82000 0.51000
+v 1.88500 5.82000 0.51000
+v 1.84500 5.78000 0.51000
+v 2.96500 5.14000 0.51000
+v 3.07500 5.25000 0.51000
+v 4.35500 5.18000 0.51000
+v 4.39500 5.22000 0.51000
+v 4.35500 5.27000 0.51000
+v 3.57500 6.13000 0.51000
+v 2.45765 6.03416 0.51000
+v 2.42248 5.99900 0.51000
+v 2.46223 5.92944 0.51000
+v 2.42432 5.88205 0.51000
+v 2.51834 5.83504 0.51000
+v 2.58957 5.77399 0.51000
+v 2.89827 5.29600 0.51000
+v 2.92210 5.29600 0.51000
+v 3.52857 6.06155 0.51000
+v 3.52015 6.10367 0.51000
+v 2.45765 6.03416 0.53500
+v 2.42248 5.99900 0.53500
+v 2.46223 5.92944 0.53500
+v 2.42432 5.88205 0.53500
+v 2.51834 5.83504 0.53500
+v 2.58957 5.77399 0.53500
+v 2.89827 5.29600 0.53500
+v 2.92210 5.29600 0.53500
+v 3.52857 6.06155 0.53500
+v 3.52015 6.10367 0.53500
+v 2.46426 6.01956 0.55000
+v 2.44119 5.99649 0.55000
+v 2.48031 5.92803 0.55000
+v 2.44763 5.88717 0.55000
+v 2.52670 5.84763 0.55000
+v 2.60098 5.78396 0.55000
+v 2.90644 5.31100 0.55000
+v 2.91485 5.31100 0.55000
+v 3.51250 6.06542 0.55000
+v 3.50802 6.08784 0.55000
+v 2.34749 5.81400 0.51000
+v 1.88749 5.81400 0.51000
+v 1.85405 5.78056 0.51000
+v 1.93831 5.71502 0.51000
+v 2.96395 5.14744 0.51000
+v 3.02503 5.20852 0.51000
+v 2.88080 5.28544 0.51000
+v 2.57066 5.76566 0.51000
+v 2.40581 5.87233 0.51000
+v 2.34749 5.81400 0.52000
+v 1.88749 5.81400 0.52000
+v 1.85405 5.78056 0.52000
+v 1.93831 5.71502 0.52000
+v 2.96395 5.14744 0.52000
+v 3.02503 5.20852 0.52000
+v 2.88080 5.28544 0.52000
+v 2.57066 5.76566 0.52000
+v 2.40581 5.87233 0.52000
+v 2.35991 5.78400 0.55000
+v 1.89991 5.78400 0.55000
+v 1.89929 5.78338 0.55000
+v 1.95489 5.74014 0.55000
+v 2.95871 5.18462 0.55000
+v 2.97519 5.20110 0.55000
+v 2.85982 5.26263 0.55000
+v 2.54895 5.74398 0.55000
+v 2.40988 5.83397 0.55000
+v 3.55100 6.09751 0.51000
+v 3.55100 6.05800 0.51000
+v 3.51974 6.01632 0.51000
+v 2.94100 5.29788 0.51000
+v 2.94100 5.28321 0.51000
+v 3.02682 5.22600 0.51000
+v 3.04251 5.22600 0.51000
+v 3.07251 5.25600 0.51000
+v 3.14517 5.25600 0.51000
+v 4.35266 5.18615 0.51000
+v 4.38696 5.22045 0.51000
+v 4.35043 5.26611 0.51000
+v 3.57479 6.12130 0.51000
+v 3.55100 6.09751 0.53500
+v 3.55100 6.05800 0.53500
+v 3.51974 6.01632 0.53500
+v 2.94100 5.29788 0.53500
+v 2.94100 5.28321 0.53500
+v 3.02682 5.22600 0.53500
+v 3.04251 5.22600 0.53500
+v 3.07251 5.25600 0.53500
+v 3.14517 5.25600 0.53500
+v 4.35266 5.18615 0.53500
+v 4.38696 5.22045 0.53500
+v 4.35043 5.26611 0.53500
+v 3.57479 6.12130 0.53500
+v 3.56600 6.09130 0.55000
+v 3.56600 6.05300 0.55000
+v 3.53158 6.00711 0.55000
+v 2.95600 5.29259 0.55000
+v 2.95600 5.29124 0.55000
+v 3.03136 5.24100 0.55000
+v 3.03630 5.24100 0.55000
+v 3.06630 5.27100 0.55000
+v 3.14561 5.27100 0.55000
+v 4.34681 5.20151 0.55000
+v 4.36686 5.22156 0.55000
+v 4.33901 5.25637 0.55000
+v 3.57426 6.09956 0.55000
+v -2.58500 7.37000 0.00000
+v -2.88500 6.25000 0.00000
+v -2.23500 5.75000 0.00000
+v -0.94500 7.09000 0.00000
+v -1.51500 8.18000 0.00000
+v -1.64500 8.25000 0.00000
+v -2.58500 7.37000 0.45000
+v -2.88500 6.25000 0.45000
+v -2.23500 5.75000 0.45000
+v -0.94500 7.09000 0.45000
+v -1.51500 8.18000 0.45000
+v -1.64500 8.25000 0.45000
+v -2.57965 7.36679 0.45000
+v -2.84918 6.36854 0.45000
+v -2.87841 6.24189 0.45000
+v -2.83117 6.19465 0.45000
+v -2.40139 5.90480 0.45000
+v -2.28350 5.80656 0.45000
+v -2.24965 5.81502 0.45000
+v -2.21077 5.93167 0.45000
+v -2.05081 6.58151 0.45000
+v -1.63083 8.12144 0.45000
+v -1.61157 8.20809 0.45000
+v -1.64514 8.24165 0.45000
+v -2.57965 7.36679 0.46000
+v -2.84918 6.36854 0.46000
+v -2.87841 6.24189 0.46000
+v -2.83117 6.19465 0.46000
+v -2.40139 5.90480 0.46000
+v -2.28350 5.80656 0.46000
+v -2.24965 5.81502 0.46000
+v -2.21077 5.93167 0.46000
+v -2.05081 6.58151 0.46000
+v -1.63083 8.12144 0.46000
+v -1.61157 8.20809 0.46000
+v -1.64514 8.24165 0.46000
+v -2.55292 7.35072 0.49000
+v -2.82007 6.36126 0.49000
+v -2.84544 6.25135 0.49000
+v -2.81200 6.21791 0.49000
+v -2.38336 5.92883 0.49000
+v -2.27600 5.83936 0.49000
+v -2.27290 5.84013 0.49000
+v -2.23961 5.94001 0.49000
+v -2.07985 6.58904 0.49000
+v -1.65996 8.12865 0.49000
+v -1.64443 8.19852 0.49000
+v -1.64583 8.19991 0.49000
+v -1.59961 8.18691 0.45000
+v -2.20929 5.85812 0.45000
+v -2.23028 5.80565 0.45000
+v -2.26487 5.78836 0.45000
+v -2.23486 5.75834 0.45000
+v -2.08923 5.89426 0.45000
+v -0.95231 7.09102 0.45000
+v -1.51989 8.17641 0.45000
+v -1.56500 8.22151 0.45000
+v -1.59961 8.18691 0.47500
+v -2.20929 5.85812 0.47500
+v -2.23028 5.80565 0.47500
+v -2.26487 5.78836 0.47500
+v -2.23486 5.75834 0.47500
+v -2.08923 5.89426 0.47500
+v -0.95231 7.09102 0.47500
+v -1.51989 8.17641 0.47500
+v -1.56500 8.22151 0.47500
+v -1.58613 8.17918 0.49000
+v -2.19502 5.85342 0.49000
+v -2.21847 5.79479 0.49000
+v -2.23955 5.78425 0.49000
+v -2.23450 5.77920 0.49000
+v -2.09979 5.90492 0.49000
+v -0.97057 7.09358 0.49000
+v -1.53212 8.16742 0.49000
+v -1.56500 8.20030 0.49000
+v -0.89500 12.23000 0.00000
+v 0.02500 11.32000 0.00000
+v 1.39500 11.27000 0.00000
+v 1.44500 11.31000 0.00000
+v -0.85500 12.27000 0.00000
+v -0.89500 12.23000 0.29000
+v 0.02500 11.32000 0.29000
+v 1.39500 11.27000 0.29000
+v 1.44500 11.31000 0.29000
+v -0.85500 12.27000 0.29000
+v -0.88649 12.23002 0.29000
+v 0.02756 11.32591 0.29000
+v 1.39299 11.27608 0.29000
+v 1.43551 11.31009 0.29000
+v 1.38188 11.35479 0.29000
+v -0.85357 12.26294 0.29000
+v -0.88649 12.23002 0.31500
+v 0.02756 11.32591 0.31500
+v 1.39299 11.27608 0.31500
+v 1.43551 11.31009 0.31500
+v 1.38188 11.35479 0.31500
+v -0.85357 12.26294 0.31500
+v -0.86522 12.23008 0.33000
+v 0.03395 11.34069 0.33000
+v 1.38797 11.29127 0.33000
+v 1.41180 11.31033 0.33000
+v 1.37407 11.34177 0.33000
+v -0.85000 12.24530 0.33000
+v 0.12500 12.48000 0.00000
+v 0.62500 11.76000 0.00000
+v 1.38500 11.69000 0.00000
+v 1.43500 11.73000 0.00000
+v 0.15500 12.54000 0.00000
+v 0.12500 12.48000 0.03000
+v 0.62500 11.76000 0.03000
+v 1.38500 11.69000 0.03000
+v 1.43500 11.73000 0.03000
+v 0.15500 12.54000 0.03000
+v 0.12230 12.49882 0.03000
+v 0.13019 12.48303 0.03000
+v 0.57966 11.81383 0.03000
+v 0.62771 11.76578 0.03000
+v 1.38314 11.69620 0.03000
+v 1.42540 11.73000 0.03000
+v 1.33153 11.80509 0.03000
+v 0.15588 12.53240 0.03000
+v 0.12230 12.49882 0.05500
+v 0.13019 12.48303 0.05500
+v 0.57966 11.81383 0.05500
+v 0.62771 11.76578 0.05500
+v 1.38314 11.69620 0.05500
+v 1.42540 11.73000 0.05500
+v 1.33153 11.80509 0.05500
+v 0.15588 12.53240 0.05500
+v 0.14055 12.49585 0.07000
+v 0.14318 12.49059 0.07000
+v 0.59129 11.82340 0.07000
+v 0.63448 11.78022 0.07000
+v 1.37849 11.71169 0.07000
+v 1.40138 11.73000 0.07000
+v 1.32287 11.79281 0.07000
+v 0.15809 12.51339 0.07000
+v -3.39500 11.45000 0.00000
+v -3.37500 11.42000 0.00000
+v -2.53500 10.37000 0.00000
+v -2.64500 10.26000 0.00000
+v -3.55500 10.60000 0.00000
+v -3.60500 10.56000 0.00000
+v -2.17500 8.70000 0.00000
+v -0.17500 8.27000 0.00000
+v 0.42500 8.20000 0.00000
+v 0.46500 8.24000 0.00000
+v -0.63500 10.08000 0.00000
+v -0.60500 10.11000 0.00000
+v -0.64500 10.15000 0.00000
+v -3.35500 11.49000 0.00000
+v -3.39500 11.45000 0.49000
+v -3.37500 11.42000 0.49000
+v -2.53500 10.37000 0.49000
+v -2.64500 10.26000 0.49000
+v -3.55500 10.60000 0.49000
+v -3.60500 10.56000 0.49000
+v -2.17500 8.70000 0.49000
+v -0.17500 8.27000 0.49000
+v 0.42500 8.20000 0.49000
+v 0.46500 8.24000 0.49000
+v -0.63500 10.08000 0.49000
+v -0.60500 10.11000 0.49000
+v -0.64500 10.15000 0.49000
+v -3.35500 11.49000 0.49000
+v -3.38728 11.44924 0.49000
+v -3.37015 11.42354 0.49000
+v -2.52696 10.36955 0.49000
+v -2.57597 10.32055 0.49000
+v -2.35190 10.14519 0.49000
+v -1.32217 9.69531 0.49000
+v -1.21325 9.62600 0.49000
+v -1.18682 9.62600 0.49000
+v -1.12859 9.66481 0.49000
+v -0.64931 10.06422 0.49000
+v -0.61304 10.10955 0.49000
+v -0.64854 10.14506 0.49000
+v -3.35380 11.48271 0.49000
+v -3.38728 11.44924 0.50000
+v -3.37015 11.42354 0.50000
+v -2.52696 10.36955 0.50000
+v -2.57597 10.32055 0.50000
+v -2.35190 10.14519 0.50000
+v -1.32217 9.69531 0.50000
+v -1.21325 9.62600 0.50000
+v -1.18682 9.62600 0.50000
+v -1.12859 9.66481 0.50000
+v -0.64931 10.06422 0.50000
+v -0.61304 10.10955 0.50000
+v -0.64854 10.14506 0.50000
+v -3.35380 11.48271 0.50000
+v -3.34868 11.44541 0.53000
+v -3.34591 11.44127 0.53000
+v -2.48676 10.36733 0.53000
+v -2.53080 10.32329 0.53000
+v -2.33641 10.17116 0.53000
+v -1.30803 9.72187 0.53000
+v -1.20452 9.65600 0.53000
+v -1.19590 9.65600 0.53000
+v -1.14657 9.68889 0.53000
+v -0.67084 10.08533 0.53000
+v -0.65324 10.10733 0.53000
+v -0.66627 10.12036 0.53000
+v -3.34781 11.44628 0.53000
+v -3.59728 10.55924 0.49000
+v -3.58010 10.53347 0.49000
+v -2.29046 8.82395 0.49000
+v -2.22467 8.75816 0.49000
+v -1.23247 9.60152 0.49000
+v -1.24947 9.63553 0.49000
+v -1.32754 9.67456 0.49000
+v -2.35810 10.12481 0.49000
+v -2.58488 10.30229 0.49000
+v -2.64382 10.25317 0.49000
+v -3.56347 10.59304 0.49000
+v -3.59728 10.55924 0.50000
+v -3.58010 10.53347 0.50000
+v -2.29046 8.82395 0.50000
+v -2.22467 8.75816 0.50000
+v -1.23247 9.60152 0.50000
+v -1.24947 9.63553 0.50000
+v -1.32754 9.67456 0.50000
+v -2.35810 10.12481 0.50000
+v -2.58488 10.30229 0.50000
+v -2.64382 10.25317 0.50000
+v -3.56347 10.59304 0.50000
+v -3.55868 10.55541 0.53000
+v -3.55563 10.55084 0.53000
+v -2.26777 8.84368 0.53000
+v -2.22302 8.79893 0.53000
+v -1.26982 9.60915 0.53000
+v -1.27183 9.61317 0.53000
+v -1.34027 9.64738 0.53000
+v -2.37359 10.09884 0.53000
+v -2.58429 10.26373 0.53000
+v -2.63795 10.21901 0.53000
+v -3.55585 10.55824 0.53000
+v -1.12140 9.64519 0.49000
+v -1.18318 9.60400 0.49000
+v -1.21251 9.60400 0.49000
+v -1.33095 9.48556 0.49000
+v -2.16074 8.79574 0.49000
+v -2.20688 8.74037 0.49000
+v -2.17201 8.70549 0.49000
+v -0.22400 8.28592 0.49000
+v 0.42283 8.20631 0.49000
+v 0.45770 8.24118 0.49000
+v 0.43972 8.27714 0.49000
+v -0.54996 9.96659 0.49000
+v -0.62585 10.06145 0.49000
+v -1.12140 9.64519 0.50000
+v -1.18318 9.60400 0.50000
+v -1.21251 9.60400 0.50000
+v -1.33095 9.48556 0.50000
+v -2.16074 8.79574 0.50000
+v -2.20688 8.74037 0.50000
+v -2.17201 8.70549 0.50000
+v -0.22400 8.28592 0.50000
+v 0.42283 8.20631 0.50000
+v 0.45770 8.24118 0.50000
+v 0.43972 8.27714 0.50000
+v -0.54996 9.96659 0.50000
+v -0.62585 10.06145 0.50000
+v -1.10337 9.62115 0.53000
+v -1.17410 9.57400 0.53000
+v -1.20009 9.57400 0.53000
+v -1.31071 9.46337 0.53000
+v -2.13945 8.77442 0.53000
+v -2.16630 8.74221 0.53000
+v -2.15705 8.73296 0.53000
+v -0.21900 8.31553 0.53000
+v 0.41196 8.23788 0.53000
+v 0.42120 8.24711 0.53000
+v 0.41333 8.26283 0.53000
+v -0.57474 9.94955 0.53000
+v -0.63008 10.01872 0.53000
+vn 0.0000 -0.0000 -1.0000
+vn 0.0000 0.0000 1.0000
+vn -0.8370 -0.5472 0.0000
+vn -0.7071 0.7071 0.0000
+vn 0.3830 0.9237 0.0000
+vn -0.6854 0.7282 0.0000
+vn -0.7037 -0.7105 0.0000
+vn 0.0000 -1.0000 0.0000
+vn -0.7071 -0.7071 0.0000
+vn -0.9960 0.0894 0.0000
+vn 0.7071 0.7071 0.0000
+vn 0.8000 0.6000 0.0000
+vn 0.7071 -0.7071 0.0000
+vn 0.4432 0.8964 0.0000
+vn -0.7809 -0.6247 0.0000
+vn 0.3560 0.9345 0.0000
+vn -0.7993 -0.6010 0.0000
+vn -0.6936 0.7203 0.0000
+vn -0.6097 0.7926 0.0000
+vn 0.6000 0.8000 0.0000
+vn -0.9957 0.0929 0.0000
+vn -0.8321 0.5547 0.0000
+vn -0.7044 -0.7098 0.0000
+vn -0.4981 0.8671 0.0000
+vn -0.5834 0.8122 0.0000
+vn -0.6709 0.7415 0.0000
+vn -0.7593 0.6508 0.0000
+vn -1.0000 0.0000 0.0000
+vn -0.5440 -0.8391 0.0000
+vn -0.5448 0.8386 0.0000
+vn -0.9637 -0.2670 0.0000
+vn -0.7282 -0.6854 0.0000
+vn 0.4741 -0.8805 0.0000
+vn 0.6402 -0.7682 0.0000
+vn 0.6064 -0.7951 0.0000
+vn 0.6757 -0.7372 0.0000
+vn -0.9759 0.2180 0.0000
+vn 0.3618 -0.9323 0.0000
+vn 0.6585 -0.7526 0.0000
+vn -0.9829 0.1843 0.0000
+vn 0.3417 -0.9398 0.0000
+vn 0.7526 -0.6585 0.0000
+vn 0.9766 -0.2149 0.0000
+vn 0.6887 -0.7250 0.0000
+vn -0.9285 -0.3714 0.0000
+vn 0.4084 -0.9128 0.0000
+vn 0.9719 -0.2356 0.0000
+vn -0.7406 -0.6720 0.0000
+vn -0.5070 -0.8619 0.0000
+vn -0.1713 -0.9852 0.0000
+vn -0.9596 0.2813 0.0000
+vn 0.3610 -0.9326 0.0000
+vn 0.9600 -0.2800 0.0000
+vn -0.6247 -0.7809 0.0000
+vn 0.2950 -0.9555 0.0000
+vn 0.2562 -0.9666 0.0000
+vn 0.7241 -0.6897 0.0000
+vn 0.9403 -0.3404 0.0000
+vn 1.0000 0.0000 0.0000
+vn -0.2460 0.9693 0.0000
+vn 0.6709 0.7415 0.0000
+vn 0.9648 -0.2631 0.0000
+vn 0.2585 -0.9660 0.0000
+vn 0.6854 -0.7282 0.0000
+vn 0.9413 -0.3375 0.0000
+vn 0.6823 0.7311 0.0000
+vn -0.2261 0.9741 0.0000
+vn 0.2623 -0.9650 0.0000
+vn 0.9274 -0.3742 0.0000
+vn -0.2147 0.9767 0.0000
+vn -0.2649 0.9643 0.0000
+vn -0.3096 0.9509 0.0000
+vn 0.5340 0.8455 0.0000
+vn 0.2316 0.9728 0.0000
+vn -0.0688 0.9976 0.0000
+vn -0.3032 0.9529 0.0000
+vn -0.4930 0.8700 0.0000
+vn -0.6839 0.7295 0.0000
+vn 0.9531 -0.3026 0.0000
+vn 0.6306 0.7761 0.0000
+vn -0.3321 0.9432 0.0000
+vn -0.9712 0.2384 0.0000
+vn 0.9373 0.3485 0.0000
+vn 0.7295 0.6839 0.0000
+vn -0.3958 0.9183 0.0000
+vn 0.9574 -0.2887 0.0000
+vn -0.0320 -0.9995 0.0000
+vn 0.7567 0.6538 0.0000
+vn -0.5547 0.8321 0.0000
+vn -0.1843 0.9829 0.0000
+vn 0.7226 -0.6912 0.0000
+vn -0.5940 -0.8045 0.0000
+vn -0.0549 -0.9985 0.0000
+vn -0.6332 -0.7740 0.0000
+vn -0.4842 -0.8750 0.0000
+vn -0.0546 -0.9985 0.0000
+vn 0.7386 0.6741 0.0000
+vn -0.0483 0.9988 0.0000
+vn 0.9468 -0.3217 0.0000
+vn 0.9829 0.1843 0.0000
+vn 0.9191 -0.3939 0.0000
+vn 0.7669 0.6418 0.0000
+vn 0.7250 -0.6887 0.0000
+vn 0.1927 -0.9812 0.0000
+vn -0.6373 -0.7706 0.0000
+vn 0.8944 -0.4472 0.0000
+vn 0.7474 0.6644 0.0000
+vn 0.9487 0.3162 0.0000
+vn 0.8164 0.5775 0.0000
+vn 0.1390 0.9903 0.0000
+vn 0.5586 0.8294 0.0000
+vn 0.0222 0.9998 0.0000
+vn 0.6508 0.7593 0.0000
+vn 0.5261 0.8504 0.0000
+vn -0.5501 0.8351 0.0000
+vn -0.6332 0.7740 0.0000
+vn -0.7747 0.6324 0.0000
+vn -0.9839 0.1789 0.0000
+vn -0.6757 -0.7372 0.0000
+vn -0.5444 -0.8388 0.0000
+vn -0.6178 -0.7863 0.0000
+vn -0.5865 0.8099 0.0000
+vn -0.5487 0.8360 0.0000
+vn -0.9864 0.1644 0.0000
+vn -0.9582 -0.2860 0.0000
+vn -0.9114 -0.4116 0.0000
+vn 0.2425 -0.9701 0.0000
+vn 0.6380 -0.7700 0.0000
+vn 0.6094 -0.7929 0.0000
+vn 0.6720 -0.7406 0.0000
+vn 0.7562 -0.6544 0.0000
+vn 0.9939 0.1104 0.0000
+vn 0.6139 0.7894 0.0000
+vn 0.5221 0.8529 0.0000
+vn 0.6663 -0.7457 0.0000
+vn 0.5570 -0.8305 0.0000
+vn 0.4650 -0.8853 0.0000
+vn 0.9588 0.2841 0.0000
+vn 0.9255 0.3786 0.0000
+vn 0.3511 0.9363 0.0000
+vn -0.4390 0.8985 0.0000
+vn -0.3890 0.5905 0.7071
+vn -0.4478 0.5473 0.7071
+vn -0.5000 0.5000 0.7071
+vn -0.5478 0.4472 0.7071
+vn -0.6957 0.1265 0.7071
+vn -0.4778 -0.5212 0.7071
+vn -0.3850 -0.5931 0.7071
+vn -0.4369 -0.5560 0.7071
+vn -0.4147 0.5727 0.7071
+vn -0.3880 0.5912 0.7071
+vn -0.6975 0.1163 0.7071
+vn -0.6776 -0.2023 0.7071
+vn -0.6445 -0.2910 0.7071
+vn 0.1715 -0.6860 0.7071
+vn 0.4511 -0.5445 0.7071
+vn 0.4309 -0.5606 0.7071
+vn 0.4752 -0.5237 0.7071
+vn 0.5347 -0.4627 0.7071
+vn 0.7028 0.0781 0.7071
+vn 0.5000 0.5000 0.7071
+vn 0.4341 0.5582 0.7071
+vn 0.3692 0.6031 0.7071
+vn 0.4712 -0.5273 0.7071
+vn 0.3938 -0.5873 0.7071
+vn 0.3288 -0.6260 0.7071
+vn 0.6780 0.2009 0.7071
+vn 0.6544 0.2677 0.7071
+vn 0.2483 0.6621 0.7071
+vn -0.3104 0.6353 0.7071
+vn -0.6402 0.7682 0.0000
+vn -0.9753 0.2209 0.0000
+vn -0.9138 -0.4061 0.0000
+vn 0.3557 -0.9346 0.0000
+vn 0.4692 -0.8831 0.0000
+vn 0.9739 -0.2271 0.0000
+vn 0.9684 -0.2492 0.0000
+vn 0.1644 0.9864 0.0000
+vn -0.3497 0.9369 0.0000
+vn -0.4527 0.5432 0.7071
+vn -0.6897 0.1562 0.7071
+vn -0.6950 0.1303 0.7071
+vn -0.6462 -0.2872 0.7071
+vn 0.2515 -0.6609 0.7071
+vn 0.3317 -0.6245 0.7071
+vn 0.6886 -0.1606 0.7071
+vn 0.6848 -0.1762 0.7071
+vn 0.1158 0.6976 0.7070
+vn -0.2473 0.6625 0.7071
+vn -0.7682 0.6402 0.0000
+vn -0.9733 0.2294 0.0000
+vn -0.3511 -0.9363 0.0000
+vn 0.3304 -0.9439 0.0000
+vn 0.3779 -0.9258 0.0000
+vn 0.9439 -0.3304 0.0000
+vn 0.3162 0.9487 0.0000
+vn -0.3534 0.9355 0.0000
+vn -0.5433 0.4526 0.7071
+vn -0.6883 0.1622 0.7071
+vn -0.2481 -0.6622 0.7071
+vn 0.2336 -0.6674 0.7071
+vn 0.2672 -0.6547 0.7071
+vn 0.6674 -0.2336 0.7071
+vn 0.7071 0.0000 0.7071
+vn 0.2240 0.6706 0.7071
+vn -0.2499 0.6615 0.7071
+vn -0.9716 0.2365 0.0000
+vn 0.9317 0.3633 0.0000
+vn 0.0767 0.9971 0.0000
+vn -0.4158 0.9095 0.0000
+vn -0.9736 0.2283 0.0000
+vn -0.9759 0.2181 0.0000
+vn 0.3766 -0.9264 0.0000
+vn 0.9728 -0.2315 0.0000
+vn -0.9248 -0.3805 0.0000
+vn -0.2169 -0.9762 0.0000
+vn 0.4668 -0.8844 0.0000
+vn 0.9684 -0.2495 0.0000
+vn 0.9572 -0.2893 0.0000
+vn 0.9950 -0.0995 0.0000
+vn 0.3939 0.9191 0.0000
+vn -0.3532 0.9356 0.0000
+vn -0.7105 0.1742 0.6818
+vn 0.6809 0.2669 0.6819
+vn 0.0542 0.7050 0.7071
+vn -0.2940 0.6431 0.7071
+vn -0.6885 0.1614 0.7071
+vn -0.6901 0.1542 0.7071
+vn -0.7071 0.0000 0.7071
+vn 0.0000 -0.7071 0.7071
+vn 0.2663 -0.6551 0.7071
+vn 0.7083 -0.1697 0.6852
+vn -0.6731 -0.2781 0.6852
+vn -0.1533 -0.6903 0.7071
+vn 0.3300 -0.6253 0.7071
+vn 0.6847 -0.1764 0.7071
+vn 0.6769 -0.2046 0.7071
+vn 0.7036 -0.0704 0.7071
+vn 0.2785 0.6499 0.7071
+vn -0.2497 0.6615 0.7071
+vn -0.4399 0.8981 0.0000
+vn -0.5882 0.8087 0.0000
+vn -0.7139 0.7002 0.0000
+vn -0.8104 0.5859 0.0000
+vn -0.8817 0.4719 0.0000
+vn -0.9363 0.3511 0.0000
+vn -0.9710 0.2390 0.0000
+vn -0.9953 0.0971 0.0000
+vn -0.9978 -0.0665 0.0000
+vn -0.9628 -0.2703 0.0000
+vn -0.8638 -0.5039 0.0000
+vn -0.6364 -0.7714 0.0000
+vn -0.3096 -0.9509 0.0000
+vn 0.0651 -0.9979 0.0000
+vn 0.3311 -0.9436 0.0000
+vn -0.9594 0.2822 0.0000
+vn -0.9398 -0.3417 0.0000
+vn 0.9514 -0.3080 0.0000
+vn -0.1807 0.9835 0.0000
+vn -0.2484 0.9687 0.0000
+vn -0.9450 0.3271 0.0000
+vn -0.3846 -0.9231 0.0000
+vn 0.2382 -0.9712 0.0000
+vn -0.8575 -0.5145 0.0000
+vn -0.9310 0.3651 0.0000
+vn -0.7572 0.6532 0.0000
+vn -0.5665 0.8240 0.0000
+vn -0.3714 0.9285 0.0000
+vn 0.0278 0.9996 0.0000
+vn 0.6292 0.7772 0.0000
+vn 0.8638 0.5039 0.0000
+vn 0.9882 0.1533 0.0000
+vn 0.9867 -0.1624 0.0000
+vn 0.9390 -0.3439 0.0000
+vn 0.8584 -0.5130 0.0000
+vn 0.7203 -0.6936 0.0000
+vn 0.5623 -0.8269 0.0000
+vn 0.3824 -0.9240 0.0000
+vn 0.1047 -0.9945 0.0000
+vn -0.3011 -0.9536 0.0000
+vn -0.6585 -0.7526 0.0000
+vn -0.8480 -0.5300 0.0000
+vn 0.7782 -0.6280 0.0000
+vn 0.8376 0.5463 0.0000
+vn 0.6738 0.7390 0.0000
+vn 0.3796 0.9252 0.0000
+vn 0.0565 0.9984 0.0000
+vn -0.2309 0.9730 0.0000
+vn -0.3110 0.6350 0.7071
+vn -0.4159 0.5718 0.7071
+vn -0.5048 0.4951 0.7071
+vn -0.5730 0.4143 0.7071
+vn -0.6234 0.3337 0.7071
+vn -0.6621 0.2483 0.7071
+vn -0.6866 0.1690 0.7071
+vn -0.7038 0.0687 0.7071
+vn -0.7056 -0.0470 0.7071
+vn -0.6808 -0.1911 0.7071
+vn -0.6108 -0.3563 0.7071
+vn -0.4500 -0.5454 0.7071
+vn -0.2189 -0.6724 0.7071
+vn 0.0460 -0.7056 0.7071
+vn 0.2341 -0.6672 0.7071
+vn -0.6784 0.1995 0.7071
+vn -0.6645 -0.2417 0.7071
+vn 0.2553 -0.6594 0.7071
+vn 0.6727 -0.2178 0.7071
+vn 0.4243 0.5657 0.7071
+vn -0.1277 0.6955 0.7071
+vn -0.1756 0.6849 0.7071
+vn -0.6682 0.2313 0.7071
+vn -0.2719 -0.6527 0.7071
+vn 0.1684 -0.6867 0.7071
+vn -0.6063 -0.3638 0.7071
+vn -0.6583 0.2582 0.7071
+vn -0.5354 0.4619 0.7071
+vn -0.4006 0.5827 0.7071
+vn -0.2626 0.6565 0.7071
+vn 0.0196 0.7068 0.7071
+vn 0.4449 0.5496 0.7071
+vn 0.6108 0.3563 0.7071
+vn 0.6988 0.1084 0.7071
+vn 0.6977 -0.1148 0.7071
+vn 0.6640 -0.2432 0.7071
+vn 0.6070 -0.3627 0.7071
+vn 0.5093 -0.4905 0.7071
+vn 0.3976 -0.5847 0.7071
+vn 0.2703 -0.6534 0.7071
+vn 0.0740 -0.7032 0.7071
+vn -0.2129 -0.6743 0.7071
+vn -0.4657 -0.5322 0.7071
+vn -0.5996 -0.3748 0.7071
+vn 0.5503 -0.4441 0.7071
+vn 0.7028 0.0780 0.7071
+vn 0.5923 0.3863 0.7071
+vn 0.4764 0.5225 0.7071
+vn 0.2684 0.6542 0.7071
+vn 0.0400 0.7060 0.7071
+vn -0.1633 0.6880 0.7071
+vn -0.3125 0.9499 0.0000
+vn -0.9568 0.2909 0.0000
+vn -0.4061 -0.9138 0.0000
+vn 0.2998 -0.9540 0.0000
+vn -0.8000 -0.6000 0.0000
+vn -0.9636 0.2672 0.0000
+vn -0.9719 0.2353 0.0000
+vn -0.8944 -0.4472 0.0000
+vn 0.2778 -0.9607 0.0000
+vn 0.4640 -0.8858 0.0000
+vn 0.9372 -0.3487 0.0000
+vn 0.9138 0.4061 0.0000
+vn -0.2359 0.9718 0.0000
+vn -0.2747 0.9615 0.0000
+vn 0.7682 0.6402 0.0000
+vn 0.9625 -0.2713 0.0000
+vn 0.2728 -0.9621 0.0000
+vn 0.9210 -0.3896 0.0000
+vn 0.9578 0.2873 0.0000
+vn 0.0000 1.0000 0.0000
+vn -0.2305 0.9731 0.0000
+vn 0.9607 -0.2777 0.0000
+vn 0.2787 -0.9604 0.0000
+vn 0.9247 -0.3807 0.0000
+vn 0.9231 0.3846 0.0000
+vn -0.2402 0.9707 0.0000
+vn -0.2210 0.6717 0.7071
+vn -0.6765 0.2057 0.7071
+vn -0.2871 -0.6462 0.7071
+vn 0.2120 -0.6746 0.7071
+vn -0.5657 -0.4242 0.7071
+vn -0.6814 0.1889 0.7071
+vn -0.6873 0.1664 0.7071
+vn -0.6327 -0.3159 0.7071
+vn 0.1964 -0.6793 0.7071
+vn 0.3281 -0.6264 0.7071
+vn 0.6627 -0.2466 0.7071
+vn 0.6461 0.2873 0.7071
+vn -0.1668 0.6872 0.7071
+vn -0.1943 0.6799 0.7071
+vn 0.5432 0.4527 0.7071
+vn 0.6806 -0.1918 0.7071
+vn 0.1929 -0.6803 0.7071
+vn 0.6512 -0.2755 0.7071
+vn 0.6773 0.2031 0.7071
+vn 0.0000 0.7071 0.7071
+vn -0.1630 0.6881 0.7071
+vn 0.6793 -0.1964 0.7071
+vn 0.1971 -0.6791 0.7071
+vn 0.6539 -0.2692 0.7071
+vn 0.6527 0.2720 0.7071
+vn -0.1699 0.6864 0.7071
+vn -0.4619 -0.8869 0.0000
+vn -0.5480 -0.8365 0.0000
+vn -0.7181 0.6960 0.0000
+vn 0.1998 -0.9798 0.0000
+vn 0.2216 0.9751 0.0000
+vn 0.2075 -0.9782 0.0000
+vn -0.7612 -0.6485 0.0000
+vn 0.8990 -0.4380 0.0000
+vn 0.8080 0.5892 0.0000
+vn -0.9398 0.3417 0.0000
+vn 0.1961 0.9806 0.0000
+vn 0.0423 0.9991 0.0000
+vn 0.1241 -0.9923 0.0000
+vn -0.2748 -0.9615 0.0000
+vn 0.0808 -0.9967 0.0000
+vn -0.0278 -0.9996 0.0000
+vn 0.0500 -0.9988 0.0000
+vn 0.7068 -0.7074 0.0000
+vn 0.6097 0.7926 0.0000
+vn 0.5322 0.8466 0.0000
+vn -0.5002 -0.5002 0.7069
+vn -0.3268 -0.6274 0.7068
+vn 0.0878 -0.7019 0.7069
+vn -0.1943 -0.6801 0.7069
+vn 0.0572 -0.7049 0.7070
+vn -0.0196 -0.7067 0.7073
+vn 0.0353 -0.7063 0.7071
+vn 0.4999 -0.5002 0.7070
+vn 0.4311 0.5604 0.7072
+vn 0.3763 0.5986 0.7071
+vn 0.0299 0.7065 0.7071
+vn -0.5002 0.5002 0.7069
+vn 0.2747 0.9615 0.0000
+vn -0.1414 0.9900 0.0000
+vn -0.4008 -0.9162 0.0000
+vn -0.7073 -0.7069 0.0000
+vn 0.8137 -0.5812 0.0000
+vn -0.6247 0.7809 0.0000
+vn 0.1155 0.9933 0.0000
+vn -0.3713 0.9285 0.0000
+vn 0.0948 0.9955 0.0000
+vn 0.9487 0.3160 0.0000
+vn -0.0808 0.9967 0.0000
+vn 0.1943 0.6799 0.7071
+vn -0.1000 0.7000 0.7071
+vn -0.5000 -0.5000 0.7071
+vn -0.3875 -0.5915 0.7071
+vn -0.2834 -0.6478 0.7071
+vn 0.5000 -0.5000 0.7071
+vn 0.1467 -0.6917 0.7071
+vn -0.5001 -0.4999 0.7071
+vn 0.5754 -0.4110 0.7071
+vn 0.5285 0.4698 0.7071
+vn -0.4417 0.5521 0.7072
+vn 0.0817 0.7025 0.7070
+vn -0.2626 0.6566 0.7070
+vn 0.0670 0.7038 0.7072
+vn 0.6708 0.2236 0.7072
+vn -0.0571 0.7048 0.7071
+vn -0.7433 -0.6690 0.0000
+vn -0.5145 0.8575 0.0000
+vn -0.9284 0.3715 0.0000
+vn -0.8742 -0.4856 0.0000
+vn 0.7070 -0.7072 0.0000
+vn 0.8222 0.5692 0.0000
+vn -0.7072 0.7070 0.0000
+vn -0.5256 -0.4730 0.7071
+vn -0.3638 0.6064 0.7071
+vn -0.6565 0.2627 0.7071
+vn -0.6182 -0.3434 0.7071
+vn 0.4999 -0.5001 0.7071
+vn 0.6357 -0.3097 0.7071
+vn 0.5814 0.4025 0.7071
+vn -0.5001 0.5000 0.7071
+vn -0.6313 -0.7756 0.0000
+vn -0.6300 -0.7766 0.0000
+vn 0.7071 0.7072 0.0000
+vn -0.3715 0.9284 0.0000
+vn 0.4258 0.9048 0.0000
+vn -0.4464 -0.5484 0.7071
+vn -0.4456 -0.5492 0.7070
+vn 0.4999 -0.5000 0.7071
+vn 0.6325 -0.3162 0.7071
+vn -0.2627 0.6565 0.7071
+vn 0.1568 0.6897 0.7070
+vn 0.5001 0.5001 0.7070
+vn 0.3010 0.6397 0.7072
+vn -0.4999 0.4999 0.7072
+vn -0.0948 -0.9955 0.0000
+vn 0.1961 -0.9806 0.0000
+vn -0.0671 -0.7041 0.7069
+vn 0.1388 -0.6938 0.7066
+vn 0.5002 -0.5002 0.7069
+vn 0.5002 0.5002 0.7069
+vn -0.7072 -0.7070 0.0000
+vn 0.2036 -0.9791 0.0000
+vn 0.7072 0.7070 0.0000
+vn 0.6225 0.7826 0.0000
+vn -0.7131 0.7010 0.0000
+vn -0.5000 -0.4999 0.7071
+vn 0.1439 -0.6923 0.7071
+vn 0.5000 0.4999 0.7071
+vn 0.4402 0.5534 0.7071
+vn -0.5043 0.4958 0.7070
+vn -0.9950 0.1003 0.0000
+vn 0.7612 -0.6485 0.0000
+vn -0.9110 -0.4125 0.0000
+vn -0.8028 -0.5962 0.0000
+vn 0.9994 -0.0345 0.0000
+vn -0.7944 -0.6075 0.0000
+vn 0.8662 -0.4997 0.0000
+vn 0.7619 -0.6476 0.0000
+vn 0.7648 0.6443 0.0000
+vn 0.7181 -0.6960 0.0000
+vn 0.5726 0.8198 0.0000
+vn -0.4441 0.8960 0.0000
+vn -0.4472 0.8944 0.0000
+vn -0.9960 0.0891 0.0000
+vn -0.9487 0.3162 0.0000
+vn -0.7070 -0.7072 0.0000
+vn 0.8575 -0.5145 0.0000
+vn 0.9864 -0.1644 0.0000
+vn 0.8320 -0.5547 0.0000
+vn 0.6508 -0.7593 0.0000
+vn 0.8137 -0.5813 0.0000
+vn 0.8366 -0.5478 0.0000
+vn 0.7072 -0.7070 0.0000
+vn -0.4292 0.9032 0.0000
+vn -0.3160 0.6321 0.7075
+vn -0.4998 0.4998 0.7074
+vn -0.7041 0.0630 0.7073
+vn -0.6705 0.2235 0.7074
+vn -0.4999 -0.4999 0.7072
+vn 0.4527 -0.5432 0.7071
+vn 0.6062 -0.3637 0.7073
+vn -0.4994 -0.5001 0.7074
+vn 0.6976 -0.1162 0.7070
+vn 0.5884 -0.3922 0.7071
+vn 0.4602 -0.5369 0.7071
+vn 0.5755 -0.4111 0.7069
+vn 0.5916 -0.3874 0.7070
+vn 0.5001 -0.5000 0.7071
+vn -0.3035 0.6386 0.7072
+vn -0.9695 -0.2449 0.0000
+vn -0.9806 0.1960 0.0000
+vn -0.9091 -0.4167 0.0000
+vn -0.8403 -0.5421 0.0000
+vn -0.9731 -0.2305 0.0000
+vn -0.8823 -0.4706 0.0000
+vn -0.7526 -0.6585 0.0000
+vn 0.8829 -0.4696 0.0000
+vn 0.7296 -0.6839 0.0000
+vn 0.8944 -0.4473 0.0000
+vn 0.7690 0.6392 0.0000
+vn -0.6855 -0.1732 0.7072
+vn -0.6934 0.1387 0.7071
+vn -0.6428 -0.2946 0.7071
+vn -0.5942 -0.3834 0.7071
+vn -0.6882 -0.1630 0.7070
+vn -0.6238 -0.3327 0.7073
+vn -0.5321 -0.4656 0.7071
+vn 0.6243 -0.3321 0.7071
+vn 0.5160 -0.4837 0.7070
+vn 0.6327 -0.3163 0.7069
+vn 0.5437 0.4519 0.7072
+vn 0.4998 0.4998 0.7074
+vn -0.3161 0.6326 0.7070
+vn -0.8334 0.5526 0.0000
+vn -0.9487 -0.3162 0.0000
+vn -0.7893 -0.6140 0.0000
+vn 0.3379 -0.9412 0.0000
+vn -0.3955 -0.9185 0.0000
+vn 0.8898 0.4563 0.0000
+vn 0.5547 0.8321 0.0000
+vn -0.5895 0.3909 0.7069
+vn -0.6712 -0.2238 0.7067
+vn -0.5584 -0.4343 0.7068
+vn 0.2390 -0.6657 0.7069
+vn -0.2829 -0.6551 0.7006
+vn 0.6364 0.3335 0.6956
+vn 0.5079 -0.4922 0.7070
+vn 0.4999 0.4999 0.7072
+vn 0.3922 0.5884 0.7071
+vn 0.4343 0.5584 0.7068
+vn -0.5546 0.8321 0.0000
+vn -0.8209 -0.5711 0.0000
+vn -0.6247 -0.7808 0.0000
+vn 0.9702 -0.2423 0.0000
+vn 0.9695 0.2449 0.0000
+vn 0.5146 0.8575 0.0000
+vn -0.3162 0.9487 0.0000
+vn -0.3922 0.5884 0.7071
+vn -0.5805 -0.4038 0.7071
+vn -0.4417 -0.5521 0.7071
+vn 0.6860 -0.1715 0.7071
+vn 0.6857 0.1732 0.7070
+vn 0.3638 0.6063 0.7071
+vn -0.2236 0.6708 0.7071
+vn -0.8320 0.5547 0.0000
+vn -0.9884 0.1521 0.0000
+vn -0.8062 -0.5916 0.0000
+vn -0.7719 -0.6357 0.0000
+vn 0.9998 -0.0189 0.0000
+vn 0.9806 -0.1961 0.0000
+vn 0.7071 -0.7072 0.0000
+vn 0.9744 0.2249 0.0000
+vn 0.8403 0.5421 0.0000
+vn 0.9171 0.3987 0.0000
+vn 0.3940 0.9191 0.0000
+vn 0.7592 0.6508 0.0000
+vn 0.8183 0.5748 0.0000
+vn 0.9615 0.2748 0.0000
+vn 0.7894 0.6139 0.0000
+vn 0.9285 0.3714 0.0000
+vn -0.5884 0.3923 0.7071
+vn -0.6989 0.1075 0.7071
+vn -0.6442 -0.2917 0.7071
+vn -0.5701 -0.4183 0.7071
+vn -0.5459 -0.4495 0.7071
+vn 0.7070 -0.0133 0.7071
+vn 0.6934 -0.1387 0.7070
+vn 0.6890 0.1590 0.7071
+vn 0.5942 0.3834 0.7071
+vn 0.6485 0.2819 0.7071
+vn 0.2786 0.6499 0.7071
+vn 0.5369 0.4602 0.7071
+vn 0.5786 0.4064 0.7071
+vn 0.6799 0.1943 0.7071
+vn 0.5581 0.4341 0.7071
+vn 0.6566 0.2626 0.7071
+vn -0.4416 0.5522 0.7072
+vn 0.0891 0.9960 0.0000
+vn -0.8910 -0.4539 0.0000
+vn -0.5955 -0.8034 0.0000
+vn -0.0605 -0.9982 0.0000
+vn 0.9426 -0.3338 0.0000
+vn 0.9837 0.1797 0.0000
+vn -0.8854 0.4648 0.0000
+vn -0.7311 0.6823 0.0000
+vn 0.8575 0.5145 0.0000
+vn -0.9999 -0.0132 0.0000
+vn 0.7986 0.6019 0.0000
+vn -0.9088 0.4172 0.0000
+vn -0.9247 0.3808 0.0000
+vn -0.7526 0.6585 0.0000
+vn -0.3714 -0.9285 0.0000
+vn -0.7071 -0.7072 0.0000
+vn -0.7512 -0.6601 0.0000
+vn -0.9487 -0.3161 0.0000
+vn -0.7515 -0.6597 0.0000
+vn -0.6508 -0.7592 0.0000
+vn 0.9975 -0.0713 0.0000
+vn 0.8132 0.5819 0.0000
+vn 0.7634 0.6459 0.0000
+vn -0.8193 0.5734 0.0000
+vn -0.6540 0.2693 0.7070
+vn -0.5322 0.4657 0.7071
+vn -0.2625 -0.6564 0.7073
+vn -0.5312 -0.4668 0.7071
+vn -0.6708 -0.2236 0.7072
+vn -0.5314 -0.4665 0.7071
+vn -0.4602 -0.5369 0.7071
+vn 0.7054 -0.0504 0.7070
+vn 0.6707 0.2236 0.7072
+vn 0.5751 0.4115 0.7071
+vn 0.5398 0.4568 0.7071
+vn -0.5794 0.4056 0.7069
+vn 0.5657 -0.8246 0.0000
+vn 0.5052 -0.8630 0.0000
+vn 0.5781 -0.8160 0.0000
+vn -0.7738 0.6334 0.0000
+vn -0.7070 0.7072 0.0000
+vn -0.6300 -0.3209 0.7072
+vn 0.4000 -0.5830 0.7072
+vn 0.3572 -0.6103 0.7071
+vn 0.4108 -0.6706 0.6177
+vn -0.6646 0.4108 0.6242
+vn 0.5000 0.4999 0.7072
+vn 0.0630 0.7043 0.7071
+vn -0.4999 0.5001 0.7071
+vn -0.5010 0.8654 0.0000
+vn -0.5647 0.8253 0.0000
+vn -0.7809 0.6247 0.0000
+vn -0.6402 -0.7682 0.0000
+vn -0.5951 -0.8036 0.0000
+vn 0.9999 -0.0138 0.0000
+vn 0.9982 -0.0605 0.0000
+vn 0.8192 0.5735 0.0000
+vn 0.7072 0.7071 0.0000
+vn 0.3161 0.9487 0.0000
+vn -0.3543 0.6119 0.7071
+vn -0.3993 0.5836 0.7071
+vn -0.5522 0.4418 0.7071
+vn -0.4526 -0.5432 0.7072
+vn -0.4208 -0.5682 0.7071
+vn 0.7071 -0.0098 0.7070
+vn 0.7059 -0.0428 0.7070
+vn 0.5794 0.4055 0.7070
+vn 0.5285 0.4698 0.7070
+vn 0.2236 0.6708 0.7071
+vn -0.5522 0.4417 0.7071
+vn -0.7328 0.6804 0.0000
+vn -0.8522 -0.5233 0.0000
+vn 0.6644 -0.7474 0.0000
+vn 0.5547 -0.8320 0.0000
+vn 0.9845 0.1755 0.0000
+vn 0.8137 0.5812 0.0000
+vn -0.6261 0.3287 0.7071
+vn -0.5182 0.4812 0.7071
+vn -0.6026 -0.3700 0.7071
+vn 0.4698 -0.5285 0.7071
+vn 0.3922 -0.5883 0.7072
+vn 0.6961 0.1241 0.7071
+vn 0.5754 0.4110 0.7071
+vn -0.9975 0.0713 0.0000
+vn -0.1643 -0.9864 0.0000
+vn 0.6499 -0.7600 0.0000
+vn 0.8522 0.5233 0.0000
+vn 0.7070 0.7072 0.0000
+vn -0.7070 -0.0093 0.7072
+vn -0.6646 -0.2417 0.7071
+vn -0.7053 0.0504 0.7071
+vn -0.1162 -0.6975 0.7071
+vn 0.4596 -0.5374 0.7071
+vn 0.6026 0.3700 0.7071
+vn 0.6063 0.3638 0.7072
+vn -0.9999 0.0139 0.0000
+vn 0.7372 0.6757 0.0000
+vn 0.8321 0.5547 0.0000
+vn 0.6585 0.7526 0.0000
+vn 0.7515 0.6597 0.0000
+vn -0.9978 0.0665 0.0000
+vn -0.7070 0.0098 0.7071
+vn -0.0428 -0.7058 0.7071
+vn 0.4999 -0.4999 0.7072
+vn 0.5212 0.4778 0.7072
+vn 0.5884 0.3923 0.7071
+vn 0.4657 0.5322 0.7071
+vn 0.5314 0.4665 0.7071
+vn -0.7055 0.0470 0.7071
+vn 0.1645 0.9864 0.0000
+vn -0.8322 -0.5545 0.0000
+vn -0.7448 -0.6673 0.0000
+vn -0.6509 -0.7592 0.0000
+vn 0.7808 -0.6247 0.0000
+vn 0.9487 -0.3162 0.0000
+vn 0.9445 -0.3285 0.0000
+vn 0.4471 0.8945 0.0000
+vn -0.6467 0.7628 0.0000
+vn 0.1163 0.6975 0.7071
+vn -0.5883 -0.3921 0.7072
+vn -0.5267 -0.4718 0.7071
+vn -0.4603 -0.5369 0.7070
+vn 0.5521 -0.4417 0.7072
+vn 0.6707 -0.2236 0.7072
+vn 0.6679 -0.2323 0.7071
+vn 0.3162 0.6326 0.7070
+vn -0.4573 0.5394 0.7071
+vn -0.6983 -0.7159 0.0000
+vn -0.0176 -0.9998 0.0000
+vn 0.7617 0.6479 0.0000
+vn -0.1745 0.9847 0.0000
+vn 0.5613 0.8276 0.0000
+vn 0.9758 0.2187 0.0000
+vn 0.7450 -0.6671 0.0000
+vn 0.9771 -0.2128 0.0000
+vn 0.6247 0.7809 0.0000
+vn -0.6118 0.7910 0.0000
+vn -0.5882 0.8088 0.0000
+vn -0.1961 -0.9806 0.0000
+vn -0.6000 -0.8000 0.0000
+vn -0.0294 -0.9996 0.0000
+vn -0.6174 0.7866 0.0000
+vn -0.4159 0.5719 0.7071
+vn -0.1387 -0.6934 0.7071
+vn -0.4243 -0.5657 0.7071
+vn -0.0208 -0.7067 0.7073
+vn 0.5657 0.4243 0.7071
+vn 0.5385 0.4581 0.7072
+vn -0.4366 0.5562 0.7071
+vn -0.8320 0.5548 0.0000
+vn -0.7944 0.6075 0.0000
+vn -0.7029 -0.7113 0.0000
+vn -0.6941 -0.7199 0.0000
+vn -0.3162 -0.9487 0.0000
+vn 0.9697 0.2445 0.0000
+vn 0.9899 -0.1414 0.0000
+vn 0.9762 0.2169 0.0000
+vn 0.6246 0.7809 0.0000
+vn 0.1962 0.9806 0.0000
+vn -0.9923 0.1240 0.0000
+vn -0.5883 0.3922 0.7072
+vn -0.5616 0.4295 0.7072
+vn -0.4970 -0.5029 0.7072
+vn -0.4908 -0.5090 0.7072
+vn -0.2238 -0.6708 0.7070
+vn 0.6934 -0.1387 0.7071
+vn 0.6858 0.1729 0.7070
+vn 0.7001 -0.1000 0.7070
+vn 0.6903 0.1534 0.7071
+vn 0.4417 0.5521 0.7072
+vn 0.1388 0.6935 0.7070
+vn -0.7016 0.0877 0.7071
+vn -0.9968 0.0795 0.0000
+vn 0.7944 -0.6074 0.0000
+vn 0.9192 -0.3939 0.0000
+vn 0.9900 0.1414 0.0000
+vn 0.8598 0.5105 0.0000
+vn 0.8849 0.4657 0.0000
+vn -0.4474 0.8943 0.0000
+vn -0.6974 0.1162 0.7072
+vn -0.7048 0.0562 0.7071
+vn -0.6707 0.2235 0.7073
+vn -0.4999 -0.5000 0.7071
+vn 0.5617 -0.4295 0.7071
+vn 0.6500 -0.2786 0.7071
+vn 0.7000 0.1000 0.7071
+vn 0.6080 0.3610 0.7072
+vn 0.6258 0.3293 0.7071
+vn -0.3162 0.6325 0.7071
+vn 0.4999 0.5000 0.7072
+vn -0.4999 0.5000 0.7071
+vn -0.6024 -0.7982 0.0000
+vn -0.5734 -0.8193 0.0000
+vn -0.1962 -0.9806 0.0000
+vn 0.6145 -0.7889 0.0000
+vn -0.5369 0.4602 0.7071
+vn -0.4260 -0.5644 0.7071
+vn -0.4055 -0.5793 0.7071
+vn 0.4345 -0.5578 0.7071
+vn 0.5001 0.4999 0.7071
+vn -0.1234 0.6962 0.7071
+vn -0.8898 -0.4563 0.0000
+vn -0.2425 -0.9702 0.0000
+vn 0.7498 -0.6616 0.0000
+vn 0.9798 -0.2000 0.0000
+vn 0.8321 -0.5547 0.0000
+vn -0.6100 0.7924 0.0000
+vn -0.6292 -0.3227 0.7071
+vn -0.6064 -0.3638 0.7071
+vn -0.1715 -0.6860 0.7071
+vn 0.5302 -0.4678 0.7071
+vn 0.6928 -0.1414 0.7071
+vn 0.5884 -0.3921 0.7071
+vn 0.4417 0.5522 0.7071
+vn -0.4314 0.5604 0.7070
+vn -0.9697 -0.2445 0.0000
+vn -0.9487 0.3163 0.0000
+vn -0.0301 -0.9995 0.0000
+vn 0.8946 0.4470 0.0000
+vn 0.9864 0.1644 0.0000
+vn 0.5798 0.8148 0.0000
+vn 0.6459 0.7634 0.0000
+vn 0.4472 0.8944 0.0000
+vn 0.5631 0.8264 0.0000
+vn 0.6644 0.7474 0.0000
+vn -0.9701 0.2425 0.0000
+vn -0.6860 -0.1729 0.7068
+vn -0.6708 0.2236 0.7072
+vn -0.0213 -0.7070 0.7068
+vn 0.6326 0.3160 0.7071
+vn 0.6975 0.1162 0.7071
+vn 0.4099 0.5761 0.7072
+vn 0.4567 0.5397 0.7072
+vn 0.3162 0.6325 0.7071
+vn 0.3981 0.5843 0.7072
+vn 0.4698 0.5285 0.7071
+vn -0.6861 0.1715 0.7070
+vn -0.0550 0.9985 0.0000
+vn -0.8682 -0.4961 0.0000
+vn -0.4961 -0.8682 0.0000
+vn 0.7809 0.6247 0.0000
+vn 0.7407 0.6718 0.0000
+vn -0.8682 -0.4962 0.0000
+vn -0.4472 -0.8944 0.0000
+vn -0.6508 -0.7593 0.0000
+vn -0.8400 -0.5425 0.0000
+vn 0.7838 -0.6210 0.0000
+vn 0.9806 0.1960 0.0000
+vn -0.0653 0.9979 0.0000
+vn -0.6140 -0.3508 0.7071
+vn -0.5521 0.4417 0.7072
+vn -0.3162 -0.6324 0.7072
+vn -0.4602 -0.5369 0.7070
+vn -0.5940 -0.3837 0.7070
+vn 0.5543 -0.4391 0.7071
+vn 0.6934 0.1386 0.7071
+vn -0.0462 0.7055 0.7072
+vn -0.6140 -0.7893 0.0000
+vn 0.4706 0.8824 0.0000
+vn 0.8400 0.5425 0.0000
+vn 0.5433 0.8396 0.0000
+vn -0.4341 -0.5581 0.7072
+vn -0.3424 -0.6187 0.7071
+vn 0.3327 0.6239 0.7071
+vn 0.5940 0.3836 0.7071
+vn 0.3842 0.5937 0.7071
+vn -0.8000 0.6000 0.0000
+vn -0.7788 0.6273 0.0000
+vn -0.5547 -0.8321 0.0000
+vn -0.0578 -0.9983 0.0000
+vn -0.5657 0.4243 0.7071
+vn -0.5507 0.4436 0.7071
+vn -0.3922 -0.5883 0.7071
+vn -0.0408 -0.7060 0.7071
+vn 0.5521 0.4417 0.7072
+vn 0.5238 0.4750 0.7071
+vn -0.9659 0.2587 0.0000
+vn -0.6097 -0.7926 0.0000
+vn 0.7204 -0.6935 0.0000
+vn 0.8861 0.4634 0.0000
+vn 0.4741 0.8805 0.0000
+vn -0.6834 0.7300 0.0000
+vn -0.9654 0.2607 0.0000
+vn -0.9744 0.2249 0.0000
+vn -0.5591 -0.8291 0.0000
+vn 0.2425 -0.9702 0.0000
+vn 0.9710 -0.2390 0.0000
+vn 0.9762 -0.2170 0.0000
+vn -0.6827 0.1843 0.7071
+vn -0.6890 0.1590 0.7071
+vn -0.3953 -0.5862 0.7071
+vn -0.4527 -0.5432 0.7071
+vn 0.1714 -0.6860 0.7071
+vn 0.6709 -0.2236 0.7071
+vn 0.6866 -0.1690 0.7071
+vn 0.6822 -0.1861 0.7071
+vn 0.6903 -0.1534 0.7071
+vn 0.4998 0.5001 0.7072
+vn -0.4833 0.5162 0.7071
+vn -0.9674 0.2533 0.0000
+vn -0.9285 0.3714 0.0000
+vn -0.4471 0.8945 0.0000
+vn 0.6823 -0.7311 0.0000
+vn 0.8862 0.4634 0.0000
+vn -0.6841 0.1791 0.7070
+vn -0.6566 0.2626 0.7070
+vn -0.3162 0.6326 0.7070
+vn 0.4824 -0.5169 0.7071
+vn 0.5127 -0.4870 0.7071
+vn 0.6266 0.3277 0.7071
+vn 0.4999 0.5000 0.7071
+vn -0.7032 -0.7110 0.0000
+vn -0.0365 -0.9993 0.0000
+vn 0.6247 -0.7809 0.0000
+vn 0.3852 0.9228 0.0000
+vn 0.6246 -0.7809 0.0000
+vn 0.6403 0.7682 0.0000
+vn 0.3764 0.9265 0.0000
+vn -0.4972 -0.5027 0.7071
+vn -0.0258 -0.7066 0.7071
+vn 0.4417 -0.5522 0.7070
+vn 0.4527 0.5432 0.7071
+vn 0.2661 0.6551 0.7071
+vn -0.8214 -0.5704 0.0000
+vn -0.0917 -0.9958 0.0000
+vn 0.5347 0.8450 0.0000
+vn -0.8944 0.4472 0.0000
+vn -0.8945 -0.4470 0.0000
+vn -0.8301 -0.5576 0.0000
+vn -0.6326 -0.3161 0.7071
+vn -0.5871 -0.3943 0.7070
+vn -0.5001 -0.5001 0.7070
+vn -0.0649 -0.7041 0.7071
+vn 0.4416 -0.5522 0.7072
+vn 0.3720 0.6013 0.7071
+vn -0.8321 -0.5547 0.0000
+vn 0.3500 0.9368 0.0000
+vn -0.7928 -0.6095 0.0000
+vn -0.2102 -0.9777 0.0000
+vn -0.1159 -0.9933 0.0000
+vn 0.8583 0.5131 0.0000
+vn -0.8321 -0.5546 0.0000
+vn -0.6163 -0.7875 0.0000
+vn -0.4004 -0.9164 0.0000
+vn -0.5369 -0.8437 0.0000
+vn 0.5546 -0.8321 0.0000
+vn 0.7808 -0.6248 0.0000
+vn -0.5883 -0.3923 0.7071
+vn -0.5521 -0.4417 0.7072
+vn -0.4358 -0.5569 0.7071
+vn -0.2831 -0.6480 0.7071
+vn -0.3796 -0.5966 0.7071
+vn 0.4526 -0.5432 0.7072
+vn 0.5521 -0.4417 0.7071
+vn 0.3134 0.6338 0.7071
+vn -0.7983 -0.6022 0.0000
+vn 0.6476 -0.7619 0.0000
+vn 0.8945 0.4471 0.0000
+vn 0.4472 0.8945 0.0000
+vn 0.4004 0.9164 0.0000
+vn 0.6163 0.7875 0.0000
+vn 0.3466 0.9380 0.0000
+vn -0.5884 -0.3923 0.7070
+vn -0.5645 -0.4259 0.7071
+vn 0.4580 -0.5388 0.7071
+vn 0.6325 0.3162 0.7071
+vn 0.2831 0.6479 0.7071
+vn 0.4358 0.5568 0.7071
+vn 0.2451 0.6632 0.7072
+vn -0.5547 0.8320 0.0000
+vn -0.6393 0.7690 0.0000
+vn -0.2106 -0.9776 0.0000
+vn -0.1222 -0.9925 0.0000
+vn 0.8944 0.4472 0.0000
+vn 0.8629 0.5055 0.0000
+vn -0.6432 0.7657 0.0000
+vn -0.3922 0.5883 0.7071
+vn -0.4520 0.5437 0.7071
+vn -0.5432 0.4527 0.7071
+vn -0.1489 -0.6912 0.7071
+vn -0.0864 -0.7018 0.7071
+vn 0.4999 -0.5000 0.7072
+vn 0.6324 0.3163 0.7071
+vn 0.6101 0.3574 0.7071
+vn 0.5522 0.4418 0.7071
+vn -0.4548 0.5414 0.7071
+o plate
+usemtl plate
+f 1//1 170//1 169//1
+f 339//2 340//2 171//2
+f 1//1 169//1 168//1
+f 338//2 339//2 171//2
+f 168//1 167//1 166//1
+f 336//2 337//2 338//2
+f 165//1 164//1 163//1
+f 333//2 334//2 335//2
+f 165//1 163//1 162//1
+f 332//2 333//2 335//2
+f 166//1 165//1 162//1
+f 332//2 335//2 336//2
+f 166//1 162//1 161//1
+f 331//2 332//2 336//2
+f 168//1 166//1 161//1
+f 331//2 336//2 338//2
+f 168//1 161//1 160//1
+f 330//2 331//2 338//2
+f 1//1 168//1 160//1
+f 330//2 338//2 171//2
+f 1//1 160//1 159//1
+f 329//2 330//2 171//2
+f 1//1 159//1 158//1
+f 328//2 329//2 171//2
+f 1//1 158//1 157//1
+f 327//2 328//2 171//2
+f 1//1 157//1 156//1
+f 326//2 327//2 171//2
+f 1//1 156//1 155//1
+f 325//2 326//2 171//2
+f 1//1 155//1 154//1
+f 324//2 325//2 171//2
+f 1//1 154//1 153//1
+f 323//2 324//2 171//2
+f 153//1 152//1 151//1
+f 321//2 322//2 323//2
+f 153//1 151//1 150//1
+f 320//2 321//2 323//2
+f 153//1 150//1 149//1
+f 319//2 320//2 323//2
+f 147//1 146//1 145//1
+f 315//2 316//2 317//2
+f 148//1 147//1 145//1
+f 315//2 317//2 318//2
+f 148//1 145//1 144//1
+f 314//2 315//2 318//2
+f 148//1 144//1 143//1
+f 313//2 314//2 318//2
+f 149//1 148//1 143//1
+f 313//2 318//2 319//2
+f 153//1 149//1 143//1
+f 313//2 319//2 323//2
+f 153//1 143//1 142//1
+f 312//2 313//2 323//2
+f 153//1 142//1 141//1
+f 311//2 312//2 323//2
+f 153//1 141//1 140//1
+f 310//2 311//2 323//2
+f 153//1 140//1 139//1
+f 309//2 310//2 323//2
+f 153//1 139//1 138//1
+f 308//2 309//2 323//2
+f 153//1 138//1 137//1
+f 307//2 308//2 323//2
+f 153//1 137//1 136//1
+f 306//2 307//2 323//2
+f 153//1 136//1 135//1
+f 305//2 306//2 323//2
+f 134//1 133//1 132//1
+f 302//2 303//2 304//2
+f 132//1 131//1 130//1
+f 300//2 301//2 302//2
+f 134//1 132//1 130//1
+f 300//2 302//2 304//2
+f 134//1 130//1 129//1
+f 299//2 300//2 304//2
+f 134//1 129//1 128//1
+f 298//2 299//2 304//2
+f 135//1 134//1 128//1
+f 298//2 304//2 305//2
+f 135//1 128//1 127//1
+f 297//2 298//2 305//2
+f 135//1 127//1 126//1
+f 296//2 297//2 305//2
+f 125//1 124//1 123//1
+f 293//2 294//2 295//2
+f 125//1 123//1 122//1
+f 292//2 293//2 295//2
+f 125//1 122//1 121//1
+f 291//2 292//2 295//2
+f 120//1 119//1 118//1
+f 288//2 289//2 290//2
+f 120//1 118//1 117//1
+f 287//2 288//2 290//2
+f 120//1 117//1 116//1
+f 286//2 287//2 290//2
+f 120//1 116//1 115//1
+f 285//2 286//2 290//2
+f 120//1 115//1 114//1
+f 284//2 285//2 290//2
+f 121//1 120//1 114//1
+f 284//2 290//2 291//2
+f 121//1 114//1 113//1
+f 283//2 284//2 291//2
+f 113//1 112//1 111//1
+f 281//2 282//2 283//2
+f 113//1 111//1 110//1
+f 280//2 281//2 283//2
+f 113//1 110//1 109//1
+f 279//2 280//2 283//2
+f 113//1 109//1 108//1
+f 278//2 279//2 283//2
+f 121//1 113//1 108//1
+f 278//2 283//2 291//2
+f 121//1 108//1 107//1
+f 277//2 278//2 291//2
+f 121//1 107//1 106//1
+f 276//2 277//2 291//2
+f 106//1 105//1 104//1
+f 274//2 275//2 276//2
+f 106//1 104//1 103//1
+f 273//2 274//2 276//2
+f 106//1 103//1 102//1
+f 272//2 273//2 276//2
+f 106//1 102//1 101//1
+f 271//2 272//2 276//2
+f 121//1 106//1 101//1
+f 271//2 276//2 291//2
+f 121//1 101//1 100//1
+f 270//2 271//2 291//2
+f 121//1 100//1 99//1
+f 269//2 270//2 291//2
+f 121//1 99//1 98//1
+f 268//2 269//2 291//2
+f 121//1 98//1 97//1
+f 267//2 268//2 291//2
+f 121//1 97//1 96//1
+f 266//2 267//2 291//2
+f 121//1 96//1 95//1
+f 265//2 266//2 291//2
+f 95//1 94//1 93//1
+f 263//2 264//2 265//2
+f 121//1 95//1 93//1
+f 263//2 265//2 291//2
+f 121//1 93//1 92//1
+f 262//2 263//2 291//2
+f 121//1 92//1 91//1
+f 261//2 262//2 291//2
+f 121//1 91//1 90//1
+f 260//2 261//2 291//2
+f 121//1 90//1 89//1
+f 259//2 260//2 291//2
+f 121//1 89//1 88//1
+f 258//2 259//2 291//2
+f 121//1 88//1 87//1
+f 257//2 258//2 291//2
+f 87//1 86//1 85//1
+f 255//2 256//2 257//2
+f 87//1 85//1 84//1
+f 254//2 255//2 257//2
+f 87//1 84//1 83//1
+f 253//2 254//2 257//2
+f 121//1 87//1 83//1
+f 253//2 257//2 291//2
+f 121//1 83//1 82//1
+f 252//2 253//2 291//2
+f 121//1 82//1 81//1
+f 251//2 252//2 291//2
+f 121//1 81//1 80//1
+f 250//2 251//2 291//2
+f 125//1 121//1 80//1
+f 250//2 291//2 295//2
+f 125//1 80//1 79//1
+f 249//2 250//2 295//2
+f 125//1 79//1 78//1
+f 248//2 249//2 295//2
+f 125//1 78//1 77//1
+f 247//2 248//2 295//2
+f 126//1 125//1 77//1
+f 247//2 295//2 296//2
+f 126//1 77//1 76//1
+f 246//2 247//2 296//2
+f 76//1 75//1 74//1
+f 244//2 245//2 246//2
+f 76//1 74//1 73//1
+f 243//2 244//2 246//2
+f 76//1 73//1 72//1
+f 242//2 243//2 246//2
+f 126//1 76//1 72//1
+f 242//2 246//2 296//2
+f 126//1 72//1 71//1
+f 241//2 242//2 296//2
+f 126//1 71//1 70//1
+f 240//2 241//2 296//2
+f 126//1 70//1 69//1
+f 239//2 240//2 296//2
+f 126//1 69//1 68//1
+f 238//2 239//2 296//2
+f 126//1 68//1 67//1
+f 237//2 238//2 296//2
+f 126//1 67//1 66//1
+f 236//2 237//2 296//2
+f 126//1 66//1 65//1
+f 235//2 236//2 296//2
+f 126//1 65//1 64//1
+f 234//2 235//2 296//2
+f 126//1 64//1 63//1
+f 233//2 234//2 296//2
+f 126//1 63//1 62//1
+f 232//2 233//2 296//2
+f 126//1 62//1 61//1
+f 231//2 232//2 296//2
+f 126//1 61//1 60//1
+f 230//2 231//2 296//2
+f 126//1 60//1 59//1
+f 229//2 230//2 296//2
+f 135//1 126//1 59//1
+f 229//2 296//2 305//2
+f 135//1 59//1 58//1
+f 228//2 229//2 305//2
+f 135//1 58//1 57//1
+f 227//2 228//2 305//2
+f 57//1 56//1 55//1
+f 225//2 226//2 227//2
+f 135//1 57//1 55//1
+f 225//2 227//2 305//2
+f 135//1 55//1 54//1
+f 224//2 225//2 305//2
+f 135//1 54//1 53//1
+f 223//2 224//2 305//2
+f 135//1 53//1 52//1
+f 222//2 223//2 305//2
+f 135//1 52//1 51//1
+f 221//2 222//2 305//2
+f 135//1 51//1 50//1
+f 220//2 221//2 305//2
+f 135//1 50//1 49//1
+f 219//2 220//2 305//2
+f 135//1 49//1 48//1
+f 218//2 219//2 305//2
+f 135//1 48//1 47//1
+f 217//2 218//2 305//2
+f 135//1 47//1 46//1
+f 216//2 217//2 305//2
+f 135//1 46//1 45//1
+f 215//2 216//2 305//2
+f 135//1 45//1 44//1
+f 214//2 215//2 305//2
+f 44//1 43//1 42//1
+f 212//2 213//2 214//2
+f 44//1 42//1 41//1
+f 211//2 212//2 214//2
+f 44//1 41//1 40//1
+f 210//2 211//2 214//2
+f 44//1 40//1 39//1
+f 209//2 210//2 214//2
+f 135//1 44//1 39//1
+f 209//2 214//2 305//2
+f 135//1 39//1 38//1
+f 208//2 209//2 305//2
+f 135//1 38//1 37//1
+f 207//2 208//2 305//2
+f 153//1 135//1 37//1
+f 207//2 305//2 323//2
+f 37//1 36//1 35//1
+f 205//2 206//2 207//2
+f 37//1 35//1 34//1
+f 204//2 205//2 207//2
+f 37//1 34//1 33//1
+f 203//2 204//2 207//2
+f 37//1 33//1 32//1
+f 202//2 203//2 207//2
+f 37//1 32//1 31//1
+f 201//2 202//2 207//2
+f 153//1 37//1 31//1
+f 201//2 207//2 323//2
+f 153//1 31//1 30//1
+f 200//2 201//2 323//2
+f 153//1 30//1 29//1
+f 199//2 200//2 323//2
+f 153//1 29//1 28//1
+f 198//2 199//2 323//2
+f 153//1 28//1 27//1
+f 197//2 198//2 323//2
+f 153//1 27//1 26//1
+f 196//2 197//2 323//2
+f 26//1 25//1 24//1
+f 194//2 195//2 196//2
+f 153//1 26//1 24//1
+f 194//2 196//2 323//2
+f 153//1 24//1 23//1
+f 193//2 194//2 323//2
+f 153//1 23//1 22//1
+f 192//2 193//2 323//2
+f 22//1 21//1 20//1
+f 190//2 191//2 192//2
+f 22//1 20//1 19//1
+f 189//2 190//2 192//2
+f 22//1 19//1 18//1
+f 188//2 189//2 192//2
+f 18//1 17//1 16//1
+f 186//2 187//2 188//2
+f 18//1 16//1 15//1
+f 185//2 186//2 188//2
+f 22//1 18//1 15//1
+f 185//2 188//2 192//2
+f 22//1 15//1 14//1
+f 184//2 185//2 192//2
+f 22//1 14//1 13//1
+f 183//2 184//2 192//2
+f 22//1 13//1 12//1
+f 182//2 183//2 192//2
+f 22//1 12//1 11//1
+f 181//2 182//2 192//2
+f 153//1 22//1 11//1
+f 181//2 192//2 323//2
+f 153//1 11//1 10//1
+f 180//2 181//2 323//2
+f 153//1 10//1 9//1
+f 179//2 180//2 323//2
+f 153//1 9//1 8//1
+f 178//2 179//2 323//2
+f 153//1 8//1 7//1
+f 177//2 178//2 323//2
+f 7//1 6//1 5//1
+f 175//2 176//2 177//2
+f 153//1 7//1 5//1
+f 175//2 177//2 323//2
+f 153//1 5//1 4//1
+f 174//2 175//2 323//2
+f 153//1 4//1 3//1
+f 173//2 174//2 323//2
+f 153//1 3//1 2//1
+f 172//2 173//2 323//2
+f 153//1 2//1 1//1
+f 171//2 172//2 323//2
+f 1//3 2//3 172//3 171//3
+f 2//4 3//4 173//4 172//4
+f 3//5 4//5 174//5 173//5
+f 4//6 5//6 175//6 174//6
+f 5//7 6//7 176//7 175//7
+f 6//8 7//8 177//8 176//8
+f 7//9 8//9 178//9 177//9
+f 8//4 9//4 179//4 178//4
+f 9//10 10//10 180//10 179//10
+f 10//4 11//4 181//4 180//4
+f 11//11 12//11 182//11 181//11
+f 12//12 13//12 183//12 182//12
+f 13//13 14//13 184//13 183//13
+f 14//11 15//11 185//11 184//11
+f 15//14 16//14 186//14 185//14
+f 16//4 17//4 187//4 186//4
+f 17//15 18//15 188//15 187//15
+f 18//4 19//4 189//4 188//4
+f 19//16 20//16 190//16 189//16
+f 20//4 21//4 191//4 190//4
+f 21//17 22//17 192//17 191//17
+f 22//18 23//18 193//18 192//18
+f 23//19 24//19 194//19 193//19
+f 24//20 25//20 195//20 194//20
+f 25//4 26//4 196//4 195//4
+f 26//21 27//21 197//21 196//21
+f 27//9 28//9 198//9 197//9
+f 28//22 29//22 199//22 198//22
+f 29//23 30//23 200//23 199//23
+f 30//4 31//4 201//4 200//4
+f 31//24 32//24 202//24 201//24
+f 32//25 33//25 203//25 202//25
+f 33//26 34//26 204//26 203//26
+f 34//27 35//27 205//27 204//27
+f 35//28 36//28 206//28 205//28
+f 36//9 37//9 207//9 206//9
+f 37//29 38//29 208//29 207//29
+f 38//9 39//9 209//9 208//9
+f 39//4 40//4 210//4 209//4
+f 40//30 41//30 211//30 210//30
+f 41//4 42//4 212//4 211//4
+f 42//31 43//31 213//31 212//31
+f 43//32 44//32 214//32 213//32
+f 44//33 45//33 215//33 214//33
+f 45//34 46//34 216//34 215//34
+f 46//35 47//35 217//35 216//35
+f 47//36 48//36 218//36 217//36
+f 48//9 49//9 219//9 218//9
+f 49//37 50//37 220//37 219//37
+f 50//28 51//28 221//28 220//28
+f 51//9 52//9 222//9 221//9
+f 52//38 53//38 223//38 222//38
+f 53//39 54//39 224//39 223//39
+f 54//9 55//9 225//9 224//9
+f 55//40 56//40 226//40 225//40
+f 56//9 57//9 227//9 226//9
+f 57//41 58//41 228//41 227//41
+f 58//42 59//42 229//42 228//42
+f 59//43 60//43 230//43 229//43
+f 60//44 61//44 231//44 230//44
+f 61//9 62//9 232//9 231//9
+f 62//45 63//45 233//45 232//45
+f 63//9 64//9 234//9 233//9
+f 64//46 65//46 235//46 234//46
+f 65//13 66//13 236//13 235//13
+f 66//47 67//47 237//47 236//47
+f 67//13 68//13 238//13 237//13
+f 68//48 69//48 239//48 238//48
+f 69//49 70//49 240//49 239//49
+f 70//50 71//50 241//50 240//50
+f 71//9 72//9 242//9 241//9
+f 72//51 73//51 243//51 242//51
+f 73//28 74//28 244//28 243//28
+f 74//9 75//9 245//9 244//9
+f 75//52 76//52 246//52 245//52
+f 76//13 77//13 247//13 246//13
+f 77//53 78//53 248//53 247//53
+f 78//13 79//13 249//13 248//13
+f 79//54 80//54 250//54 249//54
+f 80//55 81//55 251//55 250//55
+f 81//56 82//56 252//56 251//56
+f 82//57 83//57 253//57 252//57
+f 83//58 84//58 254//58 253//58
+f 84//59 85//59 255//59 254//59
+f 85//11 86//11 256//11 255//11
+f 86//60 87//60 257//60 256//60
+f 87//61 88//61 258//61 257//61
+f 88//62 89//62 259//62 258//62
+f 89//13 90//13 260//13 259//13
+f 90//63 91//63 261//63 260//63
+f 91//64 92//64 262//64 261//64
+f 92//65 93//65 263//65 262//65
+f 93//66 94//66 264//66 263//66
+f 94//67 95//67 265//67 264//67
+f 95//11 96//11 266//11 265//11
+f 96//13 97//13 267//13 266//13
+f 97//68 98//68 268//68 267//68
+f 98//13 99//13 269//13 268//13
+f 99//69 100//69 270//69 269//69
+f 100//59 101//59 271//59 270//59
+f 101//11 102//11 272//11 271//11
+f 102//70 103//70 273//70 272//70
+f 103//71 104//71 274//71 273//71
+f 104//72 105//72 275//72 274//72
+f 105//4 106//4 276//4 275//4
+f 106//11 107//11 277//11 276//11
+f 107//73 108//73 278//73 277//73
+f 108//74 109//74 279//74 278//74
+f 109//75 110//75 280//75 279//75
+f 110//76 111//76 281//76 280//76
+f 111//77 112//77 282//77 281//77
+f 112//78 113//78 283//78 282//78
+f 113//11 114//11 284//11 283//11
+f 114//79 115//79 285//79 284//79
+f 115//59 116//59 286//59 285//59
+f 116//80 117//80 287//80 286//80
+f 117//81 118//81 288//81 287//81
+f 118//78 119//78 289//78 288//78
+f 119//82 120//82 290//82 289//82
+f 120//4 121//4 291//4 290//4
+f 121//11 122//11 292//11 291//11
+f 122//83 123//83 293//83 292//83
+f 123//84 124//84 294//84 293//84
+f 124//85 125//85 295//85 294//85
+f 125//11 126//11 296//11 295//11
+f 126//86 127//86 297//86 296//86
+f 127//13 128//13 298//13 297//13
+f 128//87 129//87 299//87 298//87
+f 129//13 130//13 300//13 299//13
+f 130//88 131//88 301//88 300//88
+f 131//89 132//89 302//89 301//89
+f 132//11 133//11 303//11 302//11
+f 133//90 134//90 304//90 303//90
+f 134//11 135//11 305//11 304//11
+f 135//91 136//91 306//91 305//91
+f 136//92 137//92 307//92 306//92
+f 137//13 138//13 308//13 307//13
+f 138//9 139//9 309//9 308//9
+f 139//93 140//93 310//93 309//93
+f 140//94 141//94 311//94 310//94
+f 141//95 142//95 312//95 311//95
+f 142//13 143//13 313//13 312//13
+f 143//96 144//96 314//96 313//96
+f 144//13 145//13 315//13 314//13
+f 145//97 146//97 316//97 315//97
+f 146//4 147//4 317//4 316//4
+f 147//98 148//98 318//98 317//98
+f 148//11 149//11 319//11 318//11
+f 149//99 150//99 320//99 319//99
+f 150//100 151//100 321//100 320//100
+f 151//101 152//101 322//101 321//101
+f 152//102 153//102 323//102 322//102
+f 153//103 154//103 324//103 323//103
+f 154//104 155//104 325//104 324//104
+f 155//105 156//105 326//105 325//105
+f 156//13 157//13 327//13 326//13
+f 157//106 158//106 328//106 327//106
+f 158//107 159//107 329//107 328//107
+f 159//13 160//13 330//13 329//13
+f 160//106 161//106 331//106 330//106
+f 161//108 162//108 332//108 331//108
+f 162//109 163//109 333//109 332//109
+f 163//11 164//11 334//11 333//11
+f 164//4 165//4 335//4 334//4
+f 165//110 166//110 336//110 335//110
+f 166//111 167//111 337//111 336//111
+f 167//112 168//112 338//112 337//112
+f 168//113 169//113 339//113 338//113
+f 169//114 170//114 340//114 339//114
+f 170//4 1//4 171//4 340//4
+o letter01Walls
+usemtl frame
+f 341//1 369//1 368//1
+f 397//2 398//2 370//2
+f 341//1 368//1 367//1
+f 396//2 397//2 370//2
+f 341//1 367//1 366//1
+f 395//2 396//2 370//2
+f 341//1 366//1 365//1
+f 394//2 395//2 370//2
+f 341//1 365//1 364//1
+f 393//2 394//2 370//2
+f 341//1 364//1 363//1
+f 392//2 393//2 370//2
+f 363//1 362//1 361//1
+f 390//2 391//2 392//2
+f 363//1 361//1 360//1
+f 389//2 390//2 392//2
+f 363//1 360//1 359//1
+f 388//2 389//2 392//2
+f 363//1 359//1 358//1
+f 387//2 388//2 392//2
+f 363//1 358//1 357//1
+f 386//2 387//2 392//2
+f 356//1 355//1 354//1
+f 383//2 384//2 385//2
+f 356//1 354//1 353//1
+f 382//2 383//2 385//2
+f 357//1 356//1 353//1
+f 382//2 385//2 386//2
+f 357//1 353//1 352//1
+f 381//2 382//2 386//2
+f 357//1 352//1 351//1
+f 380//2 381//2 386//2
+f 357//1 351//1 350//1
+f 379//2 380//2 386//2
+f 357//1 350//1 349//1
+f 378//2 379//2 386//2
+f 363//1 357//1 349//1
+f 378//2 386//2 392//2
+f 363//1 349//1 348//1
+f 377//2 378//2 392//2
+f 363//1 348//1 347//1
+f 376//2 377//2 392//2
+f 341//1 363//1 347//1
+f 376//2 392//2 370//2
+f 341//1 347//1 346//1
+f 375//2 376//2 370//2
+f 341//1 346//1 345//1
+f 374//2 375//2 370//2
+f 341//1 345//1 344//1
+f 373//2 374//2 370//2
+f 341//1 344//1 343//1
+f 372//2 373//2 370//2
+f 343//1 342//1 341//1
+f 370//2 371//2 372//2
+f 341//115 342//115 371//115 370//115
+f 342//116 343//116 372//116 371//116
+f 343//4 344//4 373//4 372//4
+f 344//117 345//117 374//117 373//117
+f 345//118 346//118 375//118 374//118
+f 346//119 347//119 376//119 375//119
+f 347//120 348//120 377//120 376//120
+f 348//121 349//121 378//121 377//121
+f 349//122 350//122 379//122 378//122
+f 350//123 351//123 380//123 379//123
+f 351//124 352//124 381//124 380//124
+f 352//125 353//125 382//125 381//125
+f 353//126 354//126 383//126 382//126
+f 354//127 355//127 384//127 383//127
+f 355//128 356//128 385//128 384//128
+f 356//129 357//129 386//129 385//129
+f 357//130 358//130 387//130 386//130
+f 358//131 359//131 388//131 387//131
+f 359//132 360//132 389//132 388//132
+f 360//11 361//11 390//11 389//11
+f 361//133 362//133 391//133 390//133
+f 362//134 363//134 392//134 391//134
+f 363//135 364//135 393//135 392//135
+f 364//136 365//136 394//136 393//136
+f 365//137 366//137 395//137 394//137
+f 366//138 367//138 396//138 395//138
+f 367//139 368//139 397//139 396//139
+f 368//140 369//140 398//140 397//140
+f 369//141 341//141 370//141 398//141
+o letter01Face
+usemtl dark
+f 399//1 427//1 426//1
+f 484//1 485//1 457//1
+f 399//1 426//1 425//1
+f 483//2 484//2 457//2
+f 399//1 425//1 424//1
+f 482//2 483//2 457//2
+f 399//1 424//1 423//1
+f 481//2 482//2 457//2
+f 399//1 423//1 422//1
+f 480//2 481//2 457//2
+f 399//1 422//1 421//1
+f 479//2 480//2 457//2
+f 421//1 420//1 419//1
+f 477//2 478//2 479//2
+f 421//1 419//1 418//1
+f 476//2 477//2 479//2
+f 421//1 418//1 417//1
+f 475//2 476//2 479//2
+f 421//1 417//1 416//1
+f 474//2 475//2 479//2
+f 421//1 416//1 415//1
+f 473//2 474//2 479//2
+f 414//1 413//1 412//1
+f 470//2 471//2 472//2
+f 414//1 412//1 411//1
+f 469//2 470//2 472//2
+f 415//1 414//1 411//1
+f 469//2 472//2 473//2
+f 415//1 411//1 410//1
+f 468//2 469//2 473//2
+f 415//1 410//1 409//1
+f 467//2 468//2 473//2
+f 415//1 409//1 408//1
+f 466//2 467//2 473//2
+f 415//1 408//1 407//1
+f 465//2 466//2 473//2
+f 421//1 415//1 407//1
+f 465//2 473//2 479//2
+f 421//1 407//1 406//1
+f 464//2 465//2 479//2
+f 421//1 406//1 405//1
+f 463//2 464//2 479//2
+f 399//1 421//1 405//1
+f 463//2 479//2 457//2
+f 399//1 405//1 404//1
+f 462//2 463//2 457//2
+f 399//1 404//1 403//1
+f 461//2 462//2 457//2
+f 399//1 403//1 402//1
+f 460//2 461//2 457//2
+f 399//1 402//1 401//1
+f 459//2 460//2 457//2
+f 401//1 400//1 399//1
+f 457//2 458//2 459//2
+f 399//115 400//115 429//115 428//115
+f 400//116 401//116 430//116 429//116
+f 401//4 402//4 431//4 430//4
+f 402//117 403//117 432//117 431//117
+f 403//118 404//118 433//118 432//118
+f 404//119 405//119 434//119 433//119
+f 405//120 406//120 435//120 434//120
+f 406//121 407//121 436//121 435//121
+f 407//122 408//122 437//122 436//122
+f 408//123 409//123 438//123 437//123
+f 409//124 410//124 439//124 438//124
+f 410//125 411//125 440//125 439//125
+f 411//126 412//126 441//126 440//126
+f 412//127 413//127 442//127 441//127
+f 413//128 414//128 443//128 442//128
+f 414//129 415//129 444//129 443//129
+f 415//130 416//130 445//130 444//130
+f 416//131 417//131 446//131 445//131
+f 417//132 418//132 447//132 446//132
+f 418//11 419//11 448//11 447//11
+f 419//133 420//133 449//133 448//133
+f 420//134 421//134 450//134 449//134
+f 421//135 422//135 451//135 450//135
+f 422//136 423//136 452//136 451//136
+f 423//137 424//137 453//137 452//137
+f 424//138 425//138 454//138 453//138
+f 425//139 426//139 455//139 454//139
+f 426//140 427//140 456//140 455//140
+f 427//141 399//141 428//141 456//141
+f 428//142 429//142 458//142 457//142
+f 429//143 430//143 459//143 458//143
+f 430//144 431//144 460//144 459//144
+f 431//145 432//145 461//145 460//145
+f 432//146 433//146 462//146 461//146
+f 433//147 434//147 463//147 462//147
+f 434//148 435//148 464//148 463//148
+f 435//149 436//149 465//149 464//149
+f 436//150 437//150 466//150 465//150
+f 437//151 438//151 467//151 466//151
+f 438//152 439//152 468//152 467//152
+f 439//153 440//153 469//153 468//153
+f 440//154 441//154 470//154 469//154
+f 441//155 442//155 471//155 470//155
+f 442//156 443//156 472//156 471//156
+f 443//157 444//157 473//157 472//157
+f 444//158 445//158 474//158 473//158
+f 445//159 446//159 475//159 474//159
+f 446//160 447//160 476//160 475//160
+f 447//161 448//161 477//161 476//161
+f 448//162 449//162 478//162 477//162
+f 449//163 450//163 479//163 478//163
+f 450//164 451//164 480//164 479//164
+f 451//165 452//165 481//165 480//165
+f 452//166 453//166 482//166 481//166
+f 453//167 454//167 483//167 482//167
+f 454//168 455//168 484//168 483//168
+f 455//169 456//169 485//169 484//169
+f 456//170 428//170 457//170 485//170
+o letter02Walls
+usemtl frame
+f 486//1 496//1 495//1
+f 506//2 507//2 497//2
+f 486//1 495//1 494//1
+f 505//2 506//2 497//2
+f 486//1 494//1 493//1
+f 504//2 505//2 497//2
+f 486//1 493//1 492//1
+f 503//2 504//2 497//2
+f 486//1 492//1 491//1
+f 502//2 503//2 497//2
+f 486//1 491//1 490//1
+f 501//2 502//2 497//2
+f 486//1 490//1 489//1
+f 500//2 501//2 497//2
+f 486//1 489//1 488//1
+f 499//2 500//2 497//2
+f 488//1 487//1 486//1
+f 497//2 498//2 499//2
+f 486//171 487//171 498//171 497//171
+f 487//172 488//172 499//172 498//172
+f 488//40 489//40 500//40 499//40
+f 489//173 490//173 501//173 500//173
+f 490//174 491//174 502//174 501//174
+f 491//175 492//175 503//175 502//175
+f 492//176 493//176 504//176 503//176
+f 493//177 494//177 505//177 504//177
+f 494//132 495//132 506//132 505//132
+f 495//178 496//178 507//178 506//178
+f 496//179 486//179 497//179 507//179
+o letter02Face
+usemtl dark
+f 508//1 518//1 517//1
+f 539//1 540//1 530//1
+f 508//1 517//1 516//1
+f 538//1 539//1 530//1
+f 508//1 516//1 515//1
+f 537//2 538//2 530//2
+f 508//1 515//1 514//1
+f 536//2 537//2 530//2
+f 508//1 514//1 513//1
+f 535//2 536//2 530//2
+f 508//1 513//1 512//1
+f 534//2 535//2 530//2
+f 508//1 512//1 511//1
+f 533//1 534//1 530//1
+f 508//1 511//1 510//1
+f 532//2 533//2 530//2
+f 510//1 509//1 508//1
+f 530//2 531//2 532//2
+f 508//171 509//171 520//171 519//171
+f 509//172 510//172 521//172 520//172
+f 510//40 511//40 522//40 521//40
+f 511//173 512//173 523//173 522//173
+f 512//174 513//174 524//174 523//174
+f 513//175 514//175 525//175 524//175
+f 514//176 515//176 526//176 525//176
+f 515//177 516//177 527//177 526//177
+f 516//132 517//132 528//132 527//132
+f 517//178 518//178 529//178 528//178
+f 518//179 508//179 519//179 529//179
+f 519//180 520//180 531//180 530//180
+f 520//181 521//181 532//181 531//181
+f 521//182 522//182 533//182 532//182
+f 522//183 523//183 534//183 533//183
+f 523//184 524//184 535//184 534//184
+f 524//185 525//185 536//185 535//185
+f 525//186 526//186 537//186 536//186
+f 526//187 527//187 538//187 537//187
+f 527//160 528//160 539//160 538//160
+f 528//188 529//188 540//188 539//188
+f 529//189 519//189 530//189 540//189
+o letter03Walls
+usemtl frame
+f 541//1 549//1 548//1
+f 557//2 558//2 550//2
+f 541//1 548//1 547//1
+f 556//2 557//2 550//2
+f 541//1 547//1 546//1
+f 555//2 556//2 550//2
+f 541//1 546//1 545//1
+f 554//2 555//2 550//2
+f 541//1 545//1 544//1
+f 553//2 554//2 550//2
+f 541//1 544//1 543//1
+f 552//2 553//2 550//2
+f 543//1 542//1 541//1
+f 550//2 551//2 552//2
+f 541//190 542//190 551//190 550//190
+f 542//191 543//191 552//191 551//191
+f 543//192 544//192 553//192 552//192
+f 544//193 545//193 554//193 553//193
+f 545//194 546//194 555//194 554//194
+f 546//195 547//195 556//195 555//195
+f 547//59 548//59 557//59 556//59
+f 548//196 549//196 558//196 557//196
+f 549//197 541//197 550//197 558//197
+o letter03Face
+usemtl dark
+f 559//1 567//1 566//1
+f 584//1 585//1 577//1
+f 559//1 566//1 565//1
+f 583//1 584//1 577//1
+f 559//1 565//1 564//1
+f 582//2 583//2 577//2
+f 559//1 564//1 563//1
+f 581//2 582//2 577//2
+f 559//1 563//1 562//1
+f 580//2 581//2 577//2
+f 559//1 562//1 561//1
+f 579//1 580//1 577//1
+f 561//1 560//1 559//1
+f 577//2 578//2 579//2
+f 559//190 560//190 569//190 568//190
+f 560//191 561//191 570//191 569//191
+f 561//192 562//192 571//192 570//192
+f 562//193 563//193 572//193 571//193
+f 563//194 564//194 573//194 572//194
+f 564//195 565//195 574//195 573//195
+f 565//59 566//59 575//59 574//59
+f 566//196 567//196 576//196 575//196
+f 567//197 559//197 568//197 576//197
+f 568//198 569//198 578//198 577//198
+f 569//199 570//199 579//199 578//199
+f 570//200 571//200 580//200 579//200
+f 571//201 572//201 581//201 580//201
+f 572//202 573//202 582//202 581//202
+f 573//203 574//203 583//203 582//203
+f 574//204 575//204 584//204 583//204
+f 575//205 576//205 585//205 584//205
+f 576//206 568//206 577//206 585//206
+o letter04Walls
+usemtl frame
+f 586//1 603//1 602//1
+f 620//2 621//2 604//2
+f 586//1 602//1 601//1
+f 619//2 620//2 604//2
+f 586//1 601//1 600//1
+f 618//2 619//2 604//2
+f 586//1 600//1 599//1
+f 617//2 618//2 604//2
+f 586//1 599//1 598//1
+f 616//2 617//2 604//2
+f 586//1 598//1 597//1
+f 615//2 616//2 604//2
+f 596//1 595//1 594//1
+f 612//2 613//2 614//2
+f 596//1 594//1 593//1
+f 611//2 612//2 614//2
+f 596//1 593//1 592//1
+f 610//2 611//2 614//2
+f 596//1 592//1 591//1
+f 609//2 610//2 614//2
+f 596//1 591//1 590//1
+f 608//2 609//2 614//2
+f 597//1 596//1 590//1
+f 608//2 614//2 615//2
+f 597//1 590//1 589//1
+f 607//2 608//2 615//2
+f 597//1 589//1 588//1
+f 606//2 607//2 615//2
+f 597//1 588//1 587//1
+f 605//2 606//2 615//2
+f 597//1 587//1 586//1
+f 604//2 605//2 615//2
+f 586//207 587//207 605//207 604//207
+f 587//208 588//208 606//208 605//208
+f 588//209 589//209 607//209 606//209
+f 589//210 590//210 608//210 607//210
+f 590//211 591//211 609//211 608//211
+f 591//212 592//212 610//212 609//212
+f 592//28 593//28 611//28 610//28
+f 593//8 594//8 612//8 611//8
+f 594//213 595//213 613//213 612//213
+f 595//214 596//214 614//214 613//214
+f 596//215 597//215 615//215 614//215
+f 597//216 598//216 616//216 615//216
+f 598//217 599//217 617//217 616//217
+f 599//218 600//218 618//218 617//218
+f 600//219 601//219 619//219 618//219
+f 601//220 602//220 620//220 619//220
+f 602//221 603//221 621//221 620//221
+f 603//222 586//222 604//222 621//222
+o letter04Face
+usemtl dark
+f 622//1 639//1 638//1
+f 674//1 675//1 658//1
+f 622//1 638//1 637//1
+f 673//2 674//2 658//2
+f 622//1 637//1 636//1
+f 672//2 673//2 658//2
+f 622//1 636//1 635//1
+f 671//2 672//2 658//2
+f 622//1 635//1 634//1
+f 670//2 671//2 658//2
+f 622//1 634//1 633//1
+f 669//2 670//2 658//2
+f 632//1 631//1 630//1
+f 666//2 667//2 668//2
+f 632//1 630//1 629//1
+f 665//1 666//1 668//1
+f 632//1 629//1 628//1
+f 664//2 665//2 668//2
+f 632//1 628//1 627//1
+f 663//2 664//2 668//2
+f 632//1 627//1 626//1
+f 662//2 663//2 668//2
+f 633//1 632//1 626//1
+f 662//2 668//2 669//2
+f 633//1 626//1 625//1
+f 661//2 662//2 669//2
+f 633//1 625//1 624//1
+f 660//2 661//2 669//2
+f 633//1 624//1 623//1
+f 659//2 660//2 669//2
+f 633//1 623//1 622//1
+f 658//2 659//2 669//2
+f 622//207 623//207 641//207 640//207
+f 623//208 624//208 642//208 641//208
+f 624//209 625//209 643//209 642//209
+f 625//210 626//210 644//210 643//210
+f 626//211 627//211 645//211 644//211
+f 627//212 628//212 646//212 645//212
+f 628//28 629//28 647//28 646//28
+f 629//8 630//8 648//8 647//8
+f 630//213 631//213 649//213 648//213
+f 631//214 632//214 650//214 649//214
+f 632//215 633//215 651//215 650//215
+f 633//216 634//216 652//216 651//216
+f 634//217 635//217 653//217 652//217
+f 635//218 636//218 654//218 653//218
+f 636//219 637//219 655//219 654//219
+f 637//220 638//220 656//220 655//220
+f 638//221 639//221 657//221 656//221
+f 639//222 622//222 640//222 657//222
+f 640//223 641//223 659//223 658//223
+f 641//224 642//224 660//224 659//224
+f 642//225 643//225 661//225 660//225
+f 643//226 644//226 662//226 661//226
+f 644//227 645//227 663//227 662//227
+f 645//228 646//228 664//228 663//228
+f 646//229 647//229 665//229 664//229
+f 647//230 648//230 666//230 665//230
+f 648//231 649//231 667//231 666//231
+f 649//232 650//232 668//232 667//232
+f 650//233 651//233 669//233 668//233
+f 651//234 652//234 670//234 669//234
+f 652//235 653//235 671//235 670//235
+f 653//236 654//236 672//236 671//236
+f 654//237 655//237 673//237 672//237
+f 655//238 656//238 674//238 673//238
+f 656//239 657//239 675//239 674//239
+f 657//240 640//240 658//240 675//240
+o letter05Walls
+usemtl frame
+f 676//1 727//1 726//1
+f 778//2 779//2 728//2
+f 676//1 726//1 725//1
+f 777//2 778//2 728//2
+f 676//1 725//1 724//1
+f 776//2 777//2 728//2
+f 676//1 724//1 723//1
+f 775//2 776//2 728//2
+f 676//1 723//1 722//1
+f 774//2 775//2 728//2
+f 676//1 722//1 721//1
+f 773//2 774//2 728//2
+f 676//1 721//1 720//1
+f 772//2 773//2 728//2
+f 676//1 720//1 719//1
+f 771//2 772//2 728//2
+f 676//1 719//1 718//1
+f 770//2 771//2 728//2
+f 676//1 718//1 717//1
+f 769//2 770//2 728//2
+f 676//1 717//1 716//1
+f 768//2 769//2 728//2
+f 676//1 716//1 715//1
+f 767//2 768//2 728//2
+f 676//1 715//1 714//1
+f 766//2 767//2 728//2
+f 676//1 714//1 713//1
+f 765//2 766//2 728//2
+f 676//1 713//1 712//1
+f 764//2 765//2 728//2
+f 701//1 700//1 699//1
+f 751//2 752//2 753//2
+f 701//1 699//1 698//1
+f 750//2 751//2 753//2
+f 701//1 698//1 697//1
+f 749//2 750//2 753//2
+f 702//1 701//1 697//1
+f 749//2 753//2 754//2
+f 703//1 702//1 697//1
+f 749//2 754//2 755//2
+f 703//1 697//1 696//1
+f 748//2 749//2 755//2
+f 704//1 703//1 696//1
+f 748//2 755//2 756//2
+f 704//1 696//1 695//1
+f 747//2 748//2 756//2
+f 704//1 695//1 694//1
+f 746//2 747//2 756//2
+f 705//1 704//1 694//1
+f 746//2 756//2 757//2
+f 706//1 705//1 694//1
+f 746//2 757//2 758//2
+f 694//1 693//1 692//1
+f 744//2 745//2 746//2
+f 694//1 692//1 691//1
+f 743//2 744//2 746//2
+f 706//1 694//1 691//1
+f 743//2 746//2 758//2
+f 707//1 706//1 691//1
+f 743//2 758//2 759//2
+f 708//1 707//1 691//1
+f 743//2 759//2 760//2
+f 708//1 691//1 690//1
+f 742//2 743//2 760//2
+f 709//1 708//1 690//1
+f 742//2 760//2 761//2
+f 709//1 690//1 689//1
+f 741//2 742//2 761//2
+f 710//1 709//1 689//1
+f 741//2 761//2 762//2
+f 710//1 689//1 688//1
+f 740//2 741//2 762//2
+f 710//1 688//1 687//1
+f 739//2 740//2 762//2
+f 711//1 710//1 687//1
+f 739//2 762//2 763//2
+f 711//1 687//1 686//1
+f 738//2 739//2 763//2
+f 712//1 711//1 686//1
+f 738//2 763//2 764//2
+f 676//1 712//1 686//1
+f 738//2 764//2 728//2
+f 676//1 686//1 685//1
+f 737//2 738//2 728//2
+f 676//1 685//1 684//1
+f 736//2 737//2 728//2
+f 676//1 684//1 683//1
+f 735//2 736//2 728//2
+f 676//1 683//1 682//1
+f 734//2 735//2 728//2
+f 676//1 682//1 681//1
+f 733//2 734//2 728//2
+f 676//1 681//1 680//1
+f 732//2 733//2 728//2
+f 676//1 680//1 679//1
+f 731//2 732//2 728//2
+f 676//1 679//1 678//1
+f 730//2 731//2 728//2
+f 678//1 677//1 676//1
+f 728//2 729//2 730//2
+f 676//241 677//241 729//241 728//241
+f 677//242 678//242 730//242 729//242
+f 678//243 679//243 731//243 730//243
+f 679//244 680//244 732//244 731//244
+f 680//245 681//245 733//245 732//245
+f 681//246 682//246 734//246 733//246
+f 682//247 683//247 735//247 734//247
+f 683//248 684//248 736//248 735//248
+f 684//249 685//249 737//249 736//249
+f 685//250 686//250 738//250 737//250
+f 686//251 687//251 739//251 738//251
+f 687//252 688//252 740//252 739//252
+f 688//253 689//253 741//253 740//253
+f 689//254 690//254 742//254 741//254
+f 690//255 691//255 743//255 742//255
+f 691//256 692//256 744//256 743//256
+f 692//257 693//257 745//257 744//257
+f 693//52 694//52 746//52 745//52
+f 694//258 695//258 747//258 746//258
+f 695//20 696//20 748//20 747//20
+f 696//259 697//259 749//259 748//259
+f 697//260 698//260 750//260 749//260
+f 698//261 699//261 751//261 750//261
+f 699//262 700//262 752//262 751//262
+f 700//263 701//263 753//263 752//263
+f 701//264 702//264 754//264 753//264
+f 702//265 703//265 755//265 754//265
+f 703//266 704//266 756//266 755//266
+f 704//267 705//267 757//267 756//267
+f 705//268 706//268 758//268 757//268
+f 706//269 707//269 759//269 758//269
+f 707//270 708//270 760//270 759//270
+f 708//271 709//271 761//271 760//271
+f 709//272 710//272 762//272 761//272
+f 710//273 711//273 763//273 762//273
+f 711//274 712//274 764//274 763//274
+f 712//275 713//275 765//275 764//275
+f 713//276 714//276 766//276 765//276
+f 714//277 715//277 767//277 766//277
+f 715//278 716//278 768//278 767//278
+f 716//279 717//279 769//279 768//279
+f 717//280 718//280 770//280 769//280
+f 718//281 719//281 771//281 770//281
+f 719//282 720//282 772//282 771//282
+f 720//8 721//8 773//8 772//8
+f 721//283 722//283 774//283 773//283
+f 722//132 723//132 775//132 774//132
+f 723//284 724//284 776//284 775//284
+f 724//285 725//285 777//285 776//285
+f 725//286 726//286 778//286 777//286
+f 726//287 727//287 779//287 778//287
+f 727//288 676//288 728//288 779//288
+o letter05Face
+usemtl dark
+f 780//1 831//1 830//1
+f 934//2 935//2 884//2
+f 780//1 830//1 829//1
+f 933//2 934//2 884//2
+f 780//1 829//1 828//1
+f 932//2 933//2 884//2
+f 780//1 828//1 827//1
+f 931//2 932//2 884//2
+f 780//1 827//1 826//1
+f 930//2 931//2 884//2
+f 780//1 826//1 825//1
+f 929//2 930//2 884//2
+f 780//1 825//1 824//1
+f 928//1 929//1 884//1
+f 780//1 824//1 823//1
+f 927//1 928//1 884//1
+f 780//1 823//1 822//1
+f 926//2 927//2 884//2
+f 780//1 822//1 821//1
+f 925//2 926//2 884//2
+f 780//1 821//1 820//1
+f 924//2 925//2 884//2
+f 780//1 820//1 819//1
+f 923//2 924//2 884//2
+f 780//1 819//1 818//1
+f 922//2 923//2 884//2
+f 780//1 818//1 817//1
+f 921//2 922//2 884//2
+f 780//1 817//1 816//1
+f 920//2 921//2 884//2
+f 805//1 804//1 803//1
+f 907//2 908//2 909//2
+f 805//1 803//1 802//1
+f 906//2 907//2 909//2
+f 805//1 802//1 801//1
+f 905//2 906//2 909//2
+f 806//1 805//1 801//1
+f 905//2 909//2 910//2
+f 807//1 806//1 801//1
+f 905//2 910//2 911//2
+f 807//1 801//1 800//1
+f 904//2 905//2 911//2
+f 808//1 807//1 800//1
+f 904//2 911//2 912//2
+f 808//1 800//1 799//1
+f 903//1 904//1 912//1
+f 808//1 799//1 798//1
+f 902//2 903//2 912//2
+f 809//1 808//1 798//1
+f 902//2 912//2 913//2
+f 810//1 809//1 798//1
+f 902//2 913//2 914//2
+f 798//1 797//1 796//1
+f 900//1 901//1 902//1
+f 798//1 796//1 795//1
+f 899//2 900//2 902//2
+f 810//1 798//1 795//1
+f 899//1 902//1 914//1
+f 811//1 810//1 795//1
+f 899//2 914//2 915//2
+f 812//1 811//1 795//1
+f 899//2 915//2 916//2
+f 812//1 795//1 794//1
+f 898//2 899//2 916//2
+f 813//1 812//1 794//1
+f 898//2 916//2 917//2
+f 813//1 794//1 793//1
+f 897//2 898//2 917//2
+f 814//1 813//1 793//1
+f 897//2 917//2 918//2
+f 814//1 793//1 792//1
+f 896//2 897//2 918//2
+f 814//1 792//1 791//1
+f 895//2 896//2 918//2
+f 815//1 814//1 791//1
+f 895//2 918//2 919//2
+f 815//1 791//1 790//1
+f 894//2 895//2 919//2
+f 816//1 815//1 790//1
+f 894//2 919//2 920//2
+f 780//1 816//1 790//1
+f 894//1 920//1 884//1
+f 780//1 790//1 789//1
+f 893//2 894//2 884//2
+f 780//1 789//1 788//1
+f 892//2 893//2 884//2
+f 780//1 788//1 787//1
+f 891//2 892//2 884//2
+f 780//1 787//1 786//1
+f 890//2 891//2 884//2
+f 780//1 786//1 785//1
+f 889//2 890//2 884//2
+f 780//1 785//1 784//1
+f 888//2 889//2 884//2
+f 780//1 784//1 783//1
+f 887//2 888//2 884//2
+f 780//1 783//1 782//1
+f 886//2 887//2 884//2
+f 782//1 781//1 780//1
+f 884//2 885//2 886//2
+f 780//241 781//241 833//241 832//241
+f 781//242 782//242 834//242 833//242
+f 782//243 783//243 835//243 834//243
+f 783//244 784//244 836//244 835//244
+f 784//245 785//245 837//245 836//245
+f 785//246 786//246 838//246 837//246
+f 786//247 787//247 839//247 838//247
+f 787//248 788//248 840//248 839//248
+f 788//249 789//249 841//249 840//249
+f 789//250 790//250 842//250 841//250
+f 790//251 791//251 843//251 842//251
+f 791//252 792//252 844//252 843//252
+f 792//253 793//253 845//253 844//253
+f 793//254 794//254 846//254 845//254
+f 794//255 795//255 847//255 846//255
+f 795//256 796//256 848//256 847//256
+f 796//257 797//257 849//257 848//257
+f 797//52 798//52 850//52 849//52
+f 798//258 799//258 851//258 850//258
+f 799//20 800//20 852//20 851//20
+f 800//259 801//259 853//259 852//259
+f 801//260 802//260 854//260 853//260
+f 802//261 803//261 855//261 854//261
+f 803//262 804//262 856//262 855//262
+f 804//263 805//263 857//263 856//263
+f 805//264 806//264 858//264 857//264
+f 806//265 807//265 859//265 858//265
+f 807//266 808//266 860//266 859//266
+f 808//267 809//267 861//267 860//267
+f 809//268 810//268 862//268 861//268
+f 810//269 811//269 863//269 862//269
+f 811//270 812//270 864//270 863//270
+f 812//271 813//271 865//271 864//271
+f 813//272 814//272 866//272 865//272
+f 814//273 815//273 867//273 866//273
+f 815//274 816//274 868//274 867//274
+f 816//275 817//275 869//275 868//275
+f 817//276 818//276 870//276 869//276
+f 818//277 819//277 871//277 870//277
+f 819//278 820//278 872//278 871//278
+f 820//279 821//279 873//279 872//279
+f 821//280 822//280 874//280 873//280
+f 822//281 823//281 875//281 874//281
+f 823//282 824//282 876//282 875//282
+f 824//8 825//8 877//8 876//8
+f 825//283 826//283 878//283 877//283
+f 826//132 827//132 879//132 878//132
+f 827//284 828//284 880//284 879//284
+f 828//285 829//285 881//285 880//285
+f 829//286 830//286 882//286 881//286
+f 830//287 831//287 883//287 882//287
+f 831//288 780//288 832//288 883//288
+f 832//289 833//289 885//289 884//289
+f 833//290 834//290 886//290 885//290
+f 834//291 835//291 887//291 886//291
+f 835//292 836//292 888//292 887//292
+f 836//293 837//293 889//293 888//293
+f 837//294 838//294 890//294 889//294
+f 838//295 839//295 891//295 890//295
+f 839//296 840//296 892//296 891//296
+f 840//297 841//297 893//297 892//297
+f 841//298 842//298 894//298 893//298
+f 842//299 843//299 895//299 894//299
+f 843//300 844//300 896//300 895//300
+f 844//301 845//301 897//301 896//301
+f 845//302 846//302 898//302 897//302
+f 846//303 847//303 899//303 898//303
+f 847//304 848//304 900//304 899//304
+f 848//305 849//305 901//305 900//305
+f 849//306 850//306 902//306 901//306
+f 850//307 851//307 903//307 902//307
+f 851//308 852//308 904//308 903//308
+f 852//309 853//309 905//309 904//309
+f 853//310 854//310 906//310 905//310
+f 854//311 855//311 907//311 906//311
+f 855//312 856//312 908//312 907//312
+f 856//313 857//313 909//313 908//313
+f 857//314 858//314 910//314 909//314
+f 858//315 859//315 911//315 910//315
+f 859//316 860//316 912//316 911//316
+f 860//317 861//317 913//317 912//317
+f 861//318 862//318 914//318 913//318
+f 862//319 863//319 915//319 914//319
+f 863//320 864//320 916//320 915//320
+f 864//321 865//321 917//321 916//321
+f 865//322 866//322 918//322 917//322
+f 866//323 867//323 919//323 918//323
+f 867//324 868//324 920//324 919//324
+f 868//325 869//325 921//325 920//325
+f 869//326 870//326 922//326 921//326
+f 870//327 871//327 923//327 922//327
+f 871//328 872//328 924//328 923//328
+f 872//329 873//329 925//329 924//329
+f 873//330 874//330 926//330 925//330
+f 874//331 875//331 927//331 926//331
+f 875//332 876//332 928//332 927//332
+f 876//230 877//230 929//230 928//230
+f 877//333 878//333 930//333 929//333
+f 878//334 879//334 931//334 930//334
+f 879//335 880//335 932//335 931//335
+f 880//336 881//336 933//336 932//336
+f 881//337 882//337 934//337 933//337
+f 882//338 883//338 935//338 934//338
+f 883//339 832//339 884//339 935//339
+o letter06Walls
+usemtl frame
+f 936//1 962//1 961//1
+f 988//2 989//2 963//2
+f 936//1 961//1 960//1
+f 987//2 988//2 963//2
+f 936//1 960//1 959//1
+f 986//2 987//2 963//2
+f 936//1 959//1 958//1
+f 985//2 986//2 963//2
+f 936//1 958//1 957//1
+f 984//2 985//2 963//2
+f 957//1 956//1 955//1
+f 982//2 983//2 984//2
+f 957//1 955//1 954//1
+f 981//2 982//2 984//2
+f 957//1 954//1 953//1
+f 980//2 981//2 984//2
+f 957//1 953//1 952//1
+f 979//2 980//2 984//2
+f 936//1 957//1 952//1
+f 979//2 984//2 963//2
+f 936//1 952//1 951//1
+f 978//2 979//2 963//2
+f 950//1 949//1 948//1
+f 975//2 976//2 977//2
+f 950//1 948//1 947//1
+f 974//2 975//2 977//2
+f 950//1 947//1 946//1
+f 973//2 974//2 977//2
+f 950//1 946//1 945//1
+f 972//2 973//2 977//2
+f 950//1 945//1 944//1
+f 971//2 972//2 977//2
+f 951//1 950//1 944//1
+f 971//2 977//2 978//2
+f 936//1 951//1 944//1
+f 971//2 978//2 963//2
+f 936//1 944//1 943//1
+f 970//2 971//2 963//2
+f 936//1 943//1 942//1
+f 969//2 970//2 963//2
+f 936//1 942//1 941//1
+f 968//2 969//2 963//2
+f 936//1 941//1 940//1
+f 967//2 968//2 963//2
+f 936//1 940//1 939//1
+f 966//2 967//2 963//2
+f 936//1 939//1 938//1
+f 965//2 966//2 963//2
+f 938//1 937//1 936//1
+f 963//2 964//2 965//2
+f 936//340 937//340 964//340 963//340
+f 937//341 938//341 965//341 964//341
+f 938//342 939//342 966//342 965//342
+f 939//343 940//343 967//343 966//343
+f 940//344 941//344 968//344 967//344
+f 941//345 942//345 969//345 968//345
+f 942//346 943//346 970//346 969//346
+f 943//347 944//347 971//347 970//347
+f 944//348 945//348 972//348 971//348
+f 945//349 946//349 973//349 972//349
+f 946//350 947//350 974//350 973//350
+f 947//351 948//351 975//351 974//351
+f 948//352 949//352 976//352 975//352
+f 949//353 950//353 977//353 976//353
+f 950//354 951//354 978//354 977//354
+f 951//355 952//355 979//355 978//355
+f 952//356 953//356 980//356 979//356
+f 953//357 954//357 981//357 980//357
+f 954//358 955//358 982//358 981//358
+f 955//359 956//359 983//359 982//359
+f 956//360 957//360 984//360 983//360
+f 957//361 958//361 985//361 984//361
+f 958//362 959//362 986//362 985//362
+f 959//363 960//363 987//363 986//363
+f 960//364 961//364 988//364 987//364
+f 961//359 962//359 989//359 988//359
+f 962//365 936//365 963//365 989//365
+o letter06Face
+usemtl dark
+f 990//1 1016//1 1015//1
+f 1069//1 1070//1 1044//1
+f 990//1 1015//1 1014//1
+f 1068//2 1069//2 1044//2
+f 990//1 1014//1 1013//1
+f 1067//2 1068//2 1044//2
+f 990//1 1013//1 1012//1
+f 1066//2 1067//2 1044//2
+f 990//1 1012//1 1011//1
+f 1065//2 1066//2 1044//2
+f 1011//1 1010//1 1009//1
+f 1063//2 1064//2 1065//2
+f 1011//1 1009//1 1008//1
+f 1062//1 1063//1 1065//1
+f 1011//1 1008//1 1007//1
+f 1061//2 1062//2 1065//2
+f 1011//1 1007//1 1006//1
+f 1060//2 1061//2 1065//2
+f 990//1 1011//1 1006//1
+f 1060//2 1065//2 1044//2
+f 990//1 1006//1 1005//1
+f 1059//2 1060//2 1044//2
+f 1004//1 1003//1 1002//1
+f 1056//2 1057//2 1058//2
+f 1004//1 1002//1 1001//1
+f 1055//1 1056//1 1058//1
+f 1004//1 1001//1 1000//1
+f 1054//2 1055//2 1058//2
+f 1004//1 1000//1 999//1
+f 1053//2 1054//2 1058//2
+f 1004//1 999//1 998//1
+f 1052//2 1053//2 1058//2
+f 1005//1 1004//1 998//1
+f 1052//2 1058//2 1059//2
+f 990//1 1005//1 998//1
+f 1052//2 1059//2 1044//2
+f 990//1 998//1 997//1
+f 1051//1 1052//1 1044//1
+f 990//1 997//1 996//1
+f 1050//2 1051//2 1044//2
+f 990//1 996//1 995//1
+f 1049//2 1050//2 1044//2
+f 990//1 995//1 994//1
+f 1048//2 1049//2 1044//2
+f 990//1 994//1 993//1
+f 1047//2 1048//2 1044//2
+f 990//1 993//1 992//1
+f 1046//1 1047//1 1044//1
+f 992//1 991//1 990//1
+f 1044//2 1045//2 1046//2
+f 990//340 991//340 1018//340 1017//340
+f 991//341 992//341 1019//341 1018//341
+f 992//342 993//342 1020//342 1019//342
+f 993//343 994//343 1021//343 1020//343
+f 994//344 995//344 1022//344 1021//344
+f 995//345 996//345 1023//345 1022//345
+f 996//346 997//346 1024//346 1023//346
+f 997//347 998//347 1025//347 1024//347
+f 998//348 999//348 1026//348 1025//348
+f 999//349 1000//349 1027//349 1026//349
+f 1000//350 1001//350 1028//350 1027//350
+f 1001//351 1002//351 1029//351 1028//351
+f 1002//352 1003//352 1030//352 1029//352
+f 1003//353 1004//353 1031//353 1030//353
+f 1004//354 1005//354 1032//354 1031//354
+f 1005//355 1006//355 1033//355 1032//355
+f 1006//356 1007//356 1034//356 1033//356
+f 1007//357 1008//357 1035//357 1034//357
+f 1008//358 1009//358 1036//358 1035//358
+f 1009//359 1010//359 1037//359 1036//359
+f 1010//360 1011//360 1038//360 1037//360
+f 1011//361 1012//361 1039//361 1038//361
+f 1012//362 1013//362 1040//362 1039//362
+f 1013//363 1014//363 1041//363 1040//363
+f 1014//364 1015//364 1042//364 1041//364
+f 1015//359 1016//359 1043//359 1042//359
+f 1016//365 990//365 1017//365 1043//365
+f 1017//366 1018//366 1045//366 1044//366
+f 1018//367 1019//367 1046//367 1045//367
+f 1019//368 1020//368 1047//368 1046//368
+f 1020//369 1021//369 1048//369 1047//369
+f 1021//370 1022//370 1049//370 1048//370
+f 1022//371 1023//371 1050//371 1049//371
+f 1023//372 1024//372 1051//372 1050//372
+f 1024//373 1025//373 1052//373 1051//373
+f 1025//374 1026//374 1053//374 1052//374
+f 1026//375 1027//375 1054//375 1053//375
+f 1027//376 1028//376 1055//376 1054//376
+f 1028//377 1029//377 1056//377 1055//377
+f 1029//378 1030//378 1057//378 1056//378
+f 1030//379 1031//379 1058//379 1057//379
+f 1031//380 1032//380 1059//380 1058//380
+f 1032//381 1033//381 1060//381 1059//381
+f 1033//382 1034//382 1061//382 1060//382
+f 1034//383 1035//383 1062//383 1061//383
+f 1035//384 1036//384 1063//384 1062//384
+f 1036//385 1037//385 1064//385 1063//385
+f 1037//386 1038//386 1065//386 1064//386
+f 1038//387 1039//387 1066//387 1065//387
+f 1039//388 1040//388 1067//388 1066//388
+f 1040//389 1041//389 1068//389 1067//389
+f 1041//390 1042//390 1069//390 1068//390
+f 1042//385 1043//385 1070//385 1069//385
+f 1043//391 1017//391 1044//391 1070//391
+o head
+usemtl frame
+f 1071//9 1072//9 1100//9 1099//9
+f 1072//392 1073//392 1101//392 1100//392
+f 1073//9 1074//9 1102//9 1101//9
+f 1074//393 1075//393 1103//393 1102//393
+f 1075//9 1076//9 1104//9 1103//9
+f 1076//394 1077//394 1105//394 1104//394
+f 1077//9 1078//9 1106//9 1105//9
+f 1078//395 1079//395 1107//395 1106//395
+f 1079//105 1080//105 1108//105 1107//105
+f 1080//13 1081//13 1109//13 1108//13
+f 1081//106 1082//106 1110//106 1109//106
+f 1082//11 1083//11 1111//11 1110//11
+f 1083//268 1084//268 1112//268 1111//268
+f 1084//396 1085//396 1113//396 1112//396
+f 1085//11 1086//11 1114//11 1113//11
+f 1086//13 1087//13 1115//13 1114//13
+f 1087//397 1088//397 1116//397 1115//397
+f 1088//398 1089//398 1117//398 1116//398
+f 1089//13 1090//13 1118//13 1117//13
+f 1090//399 1091//399 1119//399 1118//399
+f 1091//400 1092//400 1120//400 1119//400
+f 1092//401 1093//401 1121//401 1120//401
+f 1093//4 1094//4 1122//4 1121//4
+f 1094//209 1095//209 1123//209 1122//209
+f 1095//402 1096//402 1124//402 1123//402
+f 1096//111 1097//111 1125//111 1124//111
+f 1097//403 1098//403 1126//403 1125//403
+f 1098//4 1071//4 1099//4 1126//4
+f 1071//1 1098//1 1097//1
+f 1125//2 1126//2 1099//2
+f 1071//1 1097//1 1096//1
+f 1124//2 1125//2 1099//2
+f 1071//1 1096//1 1095//1
+f 1123//2 1124//2 1099//2
+f 1093//1 1092//1 1091//1
+f 1119//2 1120//2 1121//2
+f 1094//1 1093//1 1091//1
+f 1119//2 1121//2 1122//2
+f 1095//1 1094//1 1091//1
+f 1119//2 1122//2 1123//2
+f 1071//1 1095//1 1091//1
+f 1119//2 1123//2 1099//2
+f 1091//1 1090//1 1089//1
+f 1117//2 1118//2 1119//2
+f 1091//1 1089//1 1088//1
+f 1116//2 1117//2 1119//2
+f 1071//1 1091//1 1088//1
+f 1116//2 1119//2 1099//2
+f 1071//1 1088//1 1087//1
+f 1115//2 1116//2 1099//2
+f 1071//1 1087//1 1086//1
+f 1114//2 1115//2 1099//2
+f 1071//1 1086//1 1085//1
+f 1113//2 1114//2 1099//2
+f 1084//1 1083//1 1082//1
+f 1110//2 1111//2 1112//2
+f 1085//1 1084//1 1082//1
+f 1110//2 1112//2 1113//2
+f 1085//1 1082//1 1081//1
+f 1109//2 1110//2 1113//2
+f 1085//1 1081//1 1080//1
+f 1108//2 1109//2 1113//2
+f 1085//1 1080//1 1079//1
+f 1107//2 1108//2 1113//2
+f 1085//1 1079//1 1078//1
+f 1106//2 1107//2 1113//2
+f 1085//1 1078//1 1077//1
+f 1105//2 1106//2 1113//2
+f 1085//1 1077//1 1076//1
+f 1104//2 1105//2 1113//2
+f 1085//1 1076//1 1075//1
+f 1103//2 1104//2 1113//2
+f 1085//1 1075//1 1074//1
+f 1102//2 1103//2 1113//2
+f 1085//1 1074//1 1073//1
+f 1101//2 1102//2 1113//2
+f 1071//1 1085//1 1073//1
+f 1101//2 1113//2 1099//2
+f 1073//1 1072//1 1071//1
+f 1099//2 1100//2 1101//2
+usemtl glass
+f 1127//1 1139//1 1138//1
+f 1164//2 1165//2 1153//2
+f 1127//1 1138//1 1137//1
+f 1163//2 1164//2 1153//2
+f 1127//1 1137//1 1136//1
+f 1162//2 1163//2 1153//2
+f 1127//1 1136//1 1135//1
+f 1161//2 1162//2 1153//2
+f 1127//1 1135//1 1134//1
+f 1160//2 1161//2 1153//2
+f 1127//1 1134//1 1133//1
+f 1159//2 1160//2 1153//2
+f 1127//1 1133//1 1132//1
+f 1158//2 1159//2 1153//2
+f 1127//1 1132//1 1131//1
+f 1157//2 1158//2 1153//2
+f 1131//1 1130//1 1129//1
+f 1155//2 1156//2 1157//2
+f 1127//1 1131//1 1129//1
+f 1155//2 1157//2 1153//2
+f 1129//1 1128//1 1127//1
+f 1153//2 1154//2 1155//2
+f 1127//9 1128//9 1141//9 1140//9
+f 1128//392 1129//392 1142//392 1141//392
+f 1129//9 1130//9 1143//9 1142//9
+f 1130//404 1131//404 1144//404 1143//404
+f 1131//405 1132//405 1145//405 1144//405
+f 1132//406 1133//406 1146//406 1145//406
+f 1133//407 1134//407 1147//407 1146//407
+f 1134//408 1135//408 1148//408 1147//408
+f 1135//409 1136//409 1149//409 1148//409
+f 1136//410 1137//410 1150//410 1149//410
+f 1137//411 1138//411 1151//411 1150//411
+f 1138//403 1139//403 1152//403 1151//403
+f 1139//4 1127//4 1140//4 1152//4
+f 1140//412 1141//412 1154//412 1153//412
+f 1141//413 1142//413 1155//413 1154//413
+f 1142//412 1143//412 1156//412 1155//412
+f 1143//414 1144//414 1157//414 1156//414
+f 1144//415 1145//415 1158//415 1157//415
+f 1145//416 1146//416 1159//416 1158//416
+f 1146//417 1147//417 1160//417 1159//417
+f 1147//418 1148//418 1161//418 1160//418
+f 1148//419 1149//419 1162//419 1161//419
+f 1149//420 1150//420 1163//420 1162//420
+f 1150//421 1151//421 1164//421 1163//421
+f 1151//422 1152//422 1165//422 1164//422
+f 1152//423 1140//423 1153//423 1165//423
+usemtl champagne
+f 1166//1 1187//1 1186//1
+f 1230//2 1231//2 1210//2
+f 1166//1 1186//1 1185//1
+f 1229//2 1230//2 1210//2
+f 1166//1 1185//1 1184//1
+f 1228//2 1229//2 1210//2
+f 1184//1 1183//1 1182//1
+f 1226//2 1227//2 1228//2
+f 1181//1 1180//1 1179//1
+f 1223//2 1224//2 1225//2
+f 1182//1 1181//1 1179//1
+f 1223//2 1225//2 1226//2
+f 1184//1 1182//1 1179//1
+f 1223//2 1226//2 1228//2
+f 1166//1 1184//1 1179//1
+f 1223//2 1228//2 1210//2
+f 1166//1 1179//1 1178//1
+f 1222//2 1223//2 1210//2
+f 1166//1 1178//1 1177//1
+f 1221//2 1222//2 1210//2
+f 1177//1 1176//1 1175//1
+f 1219//2 1220//2 1221//2
+f 1166//1 1177//1 1175//1
+f 1219//2 1221//2 1210//2
+f 1166//1 1175//1 1174//1
+f 1218//2 1219//2 1210//2
+f 1166//1 1174//1 1173//1
+f 1217//2 1218//2 1210//2
+f 1166//1 1173//1 1172//1
+f 1216//2 1217//2 1210//2
+f 1172//1 1171//1 1170//1
+f 1214//2 1215//2 1216//2
+f 1166//1 1172//1 1170//1
+f 1214//2 1216//2 1210//2
+f 1166//1 1170//1 1169//1
+f 1213//2 1214//2 1210//2
+f 1166//1 1169//1 1168//1
+f 1212//2 1213//2 1210//2
+f 1168//1 1167//1 1166//1
+f 1210//2 1211//2 1212//2
+f 1166//424 1167//424 1189//424 1188//424
+f 1167//425 1168//425 1190//425 1189//425
+f 1168//9 1169//9 1191//9 1190//9
+f 1169//393 1170//393 1192//393 1191//393
+f 1170//9 1171//9 1193//9 1192//9
+f 1171//426 1172//426 1194//426 1193//426
+f 1172//8 1173//8 1195//8 1194//8
+f 1173//13 1174//13 1196//13 1195//13
+f 1174//397 1175//397 1197//397 1196//397
+f 1175//427 1176//427 1198//427 1197//427
+f 1176//428 1177//428 1199//428 1198//428
+f 1177//8 1178//8 1200//8 1199//8
+f 1178//59 1179//59 1201//59 1200//59
+f 1179//107 1180//107 1202//107 1201//107
+f 1180//429 1181//429 1203//429 1202//429
+f 1181//359 1182//359 1204//359 1203//359
+f 1182//430 1183//430 1205//430 1204//430
+f 1183//431 1184//431 1206//431 1205//431
+f 1184//432 1185//432 1207//432 1206//432
+f 1185//433 1186//433 1208//433 1207//433
+f 1186//359 1187//359 1209//359 1208//359
+f 1187//434 1166//434 1188//434 1209//434
+f 1188//435 1189//435 1211//435 1210//435
+f 1189//436 1190//436 1212//436 1211//436
+f 1190//437 1191//437 1213//437 1212//437
+f 1191//438 1192//438 1214//438 1213//438
+f 1192//437 1193//437 1215//437 1214//437
+f 1193//439 1194//439 1216//439 1215//439
+f 1194//230 1195//230 1217//230 1216//230
+f 1195//440 1196//440 1218//440 1217//440
+f 1196//441 1197//441 1219//441 1218//441
+f 1197//442 1198//442 1220//442 1219//442
+f 1198//443 1199//443 1221//443 1220//443
+f 1199//230 1200//230 1222//230 1221//230
+f 1200//204 1201//204 1223//204 1222//204
+f 1201//444 1202//444 1224//444 1223//444
+f 1202//445 1203//445 1225//445 1224//445
+f 1203//385 1204//385 1226//385 1225//385
+f 1204//446 1205//446 1227//446 1226//446
+f 1205//447 1206//447 1228//447 1227//447
+f 1206//448 1207//448 1229//448 1228//448
+f 1207//449 1208//449 1230//449 1229//449
+f 1208//385 1209//385 1231//385 1230//385
+f 1209//450 1188//450 1210//450 1231//450
+f 1232//1 1245//1 1244//1
+f 1272//2 1273//2 1260//2
+f 1232//1 1244//1 1243//1
+f 1271//2 1272//2 1260//2
+f 1232//1 1243//1 1242//1
+f 1270//2 1271//2 1260//2
+f 1232//1 1242//1 1241//1
+f 1269//2 1270//2 1260//2
+f 1232//1 1241//1 1240//1
+f 1268//2 1269//2 1260//2
+f 1239//1 1238//1 1237//1
+f 1265//2 1266//2 1267//2
+f 1239//1 1237//1 1236//1
+f 1264//2 1265//2 1267//2
+f 1240//1 1239//1 1236//1
+f 1264//2 1267//2 1268//2
+f 1240//1 1236//1 1235//1
+f 1263//2 1264//2 1268//2
+f 1232//1 1240//1 1235//1
+f 1263//1 1268//1 1260//1
+f 1235//1 1234//1 1233//1
+f 1261//2 1262//2 1263//2
+f 1235//1 1233//1 1232//1
+f 1260//2 1261//2 1263//2
+f 1232//28 1233//28 1247//28 1246//28
+f 1233//4 1234//4 1248//4 1247//4
+f 1234//451 1235//451 1249//451 1248//451
+f 1235//28 1236//28 1250//28 1249//28
+f 1236//452 1237//452 1251//452 1250//452
+f 1237//453 1238//453 1252//453 1251//453
+f 1238//9 1239//9 1253//9 1252//9
+f 1239//454 1240//454 1254//454 1253//454
+f 1240//9 1241//9 1255//9 1254//9
+f 1241//455 1242//455 1256//455 1255//455
+f 1242//399 1243//399 1257//399 1256//399
+f 1243//456 1244//456 1258//456 1257//456
+f 1244//107 1245//107 1259//107 1258//107
+f 1245//457 1232//457 1246//457 1259//457
+f 1246//229 1247//229 1261//229 1260//229
+f 1247//144 1248//144 1262//144 1261//144
+f 1248//458 1249//458 1263//458 1262//458
+f 1249//229 1250//229 1264//229 1263//229
+f 1250//459 1251//459 1265//459 1264//459
+f 1251//460 1252//460 1266//460 1265//460
+f 1252//437 1253//437 1267//437 1266//437
+f 1253//461 1254//461 1268//461 1267//461
+f 1254//437 1255//437 1269//437 1268//437
+f 1255//462 1256//462 1270//462 1269//462
+f 1256//463 1257//463 1271//463 1270//463
+f 1257//464 1258//464 1272//464 1271//464
+f 1258//444 1259//444 1273//444 1272//444
+f 1259//465 1246//465 1260//465 1273//465
+f 1316//1 1328//1 1327//1
+f 1353//2 1354//2 1342//2
+f 1327//1 1326//1 1325//1
+f 1351//2 1352//2 1353//2
+f 1327//1 1325//1 1324//1
+f 1350//2 1351//2 1353//2
+f 1324//1 1323//1 1322//1
+f 1348//2 1349//2 1350//2
+f 1327//1 1324//1 1322//1
+f 1348//2 1350//2 1353//2
+f 1316//1 1327//1 1322//1
+f 1348//1 1353//1 1342//1
+f 1316//1 1322//1 1321//1
+f 1347//2 1348//2 1342//2
+f 1321//1 1320//1 1319//1
+f 1345//2 1346//2 1347//2
+f 1321//1 1319//1 1318//1
+f 1344//2 1345//2 1347//2
+f 1321//1 1318//1 1317//1
+f 1343//2 1344//2 1347//2
+f 1321//1 1317//1 1316//1
+f 1342//1 1343//1 1347//1
+f 1316//466 1317//466 1330//466 1329//466
+f 1317//9 1318//9 1331//9 1330//9
+f 1318//28 1319//28 1332//28 1331//28
+f 1319//467 1320//467 1333//467 1332//467
+f 1320//455 1321//455 1334//455 1333//455
+f 1321//106 1322//106 1335//106 1334//106
+f 1322//468 1323//468 1336//468 1335//468
+f 1323//469 1324//469 1337//469 1336//469
+f 1324//396 1325//396 1338//396 1337//396
+f 1325//11 1326//11 1339//11 1338//11
+f 1326//359 1327//359 1340//359 1339//359
+f 1327//470 1328//470 1341//470 1340//470
+f 1328//4 1316//4 1329//4 1341//4
+f 1329//471 1330//471 1343//471 1342//471
+f 1330//437 1331//437 1344//437 1343//437
+f 1331//229 1332//229 1345//229 1344//229
+f 1332//472 1333//472 1346//472 1345//472
+f 1333//473 1334//473 1347//473 1346//473
+f 1334//474 1335//474 1348//474 1347//474
+f 1335//161 1336//161 1349//161 1348//161
+f 1336//475 1337//475 1350//475 1349//475
+f 1337//476 1338//476 1351//476 1350//476
+f 1338//477 1339//477 1352//477 1351//477
+f 1339//385 1340//385 1353//385 1352//385
+f 1340//478 1341//478 1354//478 1353//478
+f 1341//479 1329//479 1342//479 1354//479
+usemtl dark
+f 1274//1 1281//1 1280//1
+f 1296//2 1297//2 1290//2
+f 1274//1 1280//1 1279//1
+f 1295//2 1296//2 1290//2
+f 1274//1 1279//1 1278//1
+f 1294//2 1295//2 1290//2
+f 1274//1 1278//1 1277//1
+f 1293//2 1294//2 1290//2
+f 1274//1 1277//1 1276//1
+f 1292//2 1293//2 1290//2
+f 1276//1 1275//1 1274//1
+f 1290//2 1291//2 1292//2
+f 1274//359 1275//359 1283//359 1282//359
+f 1275//28 1276//28 1284//28 1283//28
+f 1276//480 1277//480 1285//480 1284//480
+f 1277//481 1278//481 1286//481 1285//481
+f 1278//13 1279//13 1287//13 1286//13
+f 1279//11 1280//11 1288//11 1287//11
+f 1280//359 1281//359 1289//359 1288//359
+f 1281//4 1274//4 1282//4 1289//4
+f 1282//385 1283//385 1291//385 1290//385
+f 1283//229 1284//229 1292//229 1291//229
+f 1284//482 1285//482 1293//482 1292//482
+f 1285//483 1286//483 1294//483 1293//483
+f 1286//484 1287//484 1295//484 1294//484
+f 1287//485 1288//485 1296//485 1295//485
+f 1288//385 1289//385 1297//385 1296//385
+f 1289//423 1282//423 1290//423 1297//423
+f 1298//1 1303//1 1302//1
+f 1314//2 1315//2 1310//2
+f 1298//1 1302//1 1301//1
+f 1313//2 1314//2 1310//2
+f 1298//1 1301//1 1300//1
+f 1312//2 1313//2 1310//2
+f 1300//1 1299//1 1298//1
+f 1310//2 1311//2 1312//2
+f 1298//486 1299//486 1305//486 1304//486
+f 1299//487 1300//487 1306//487 1305//487
+f 1300//59 1301//59 1307//59 1306//59
+f 1301//488 1302//488 1308//488 1307//488
+f 1302//489 1303//489 1309//489 1308//489
+f 1303//490 1298//490 1304//490 1309//490
+f 1304//491 1305//491 1311//491 1310//491
+f 1305//492 1306//492 1312//492 1311//492
+f 1306//204 1307//204 1313//204 1312//204
+f 1307//493 1308//493 1314//493 1313//493
+f 1308//494 1309//494 1315//494 1314//494
+f 1309//495 1304//495 1310//495 1315//495
+o neck
+usemtl frame
+f 1355//496 1356//496 1373//496 1372//496
+f 1356//54 1357//54 1374//54 1373//54
+f 1357//497 1358//497 1375//497 1374//497
+f 1358//9 1359//9 1376//9 1375//9
+f 1359//498 1360//498 1377//498 1376//498
+f 1360//499 1361//499 1378//499 1377//499
+f 1361//13 1362//13 1379//13 1378//13
+f 1362//500 1363//500 1380//500 1379//500
+f 1363//13 1364//13 1381//13 1380//13
+f 1364//501 1365//501 1382//501 1381//501
+f 1365//502 1366//502 1383//502 1382//502
+f 1366//503 1367//503 1384//503 1383//503
+f 1367//504 1368//504 1385//504 1384//504
+f 1368//505 1369//505 1386//505 1385//505
+f 1369//506 1370//506 1387//506 1386//506
+f 1370//11 1371//11 1388//11 1387//11
+f 1371//507 1355//507 1372//507 1388//507
+f 1355//1 1371//1 1370//1
+f 1387//2 1388//2 1372//2
+f 1355//1 1370//1 1369//1
+f 1386//2 1387//2 1372//2
+f 1355//1 1369//1 1368//1
+f 1385//2 1386//2 1372//2
+f 1355//1 1368//1 1367//1
+f 1384//2 1385//2 1372//2
+f 1355//1 1367//1 1366//1
+f 1383//2 1384//2 1372//2
+f 1355//1 1366//1 1365//1
+f 1382//2 1383//2 1372//2
+f 1355//1 1365//1 1364//1
+f 1381//2 1382//2 1372//2
+f 1355//1 1364//1 1363//1
+f 1380//2 1381//2 1372//2
+f 1355//1 1363//1 1362//1
+f 1379//2 1380//2 1372//2
+f 1355//1 1362//1 1361//1
+f 1378//2 1379//2 1372//2
+f 1355//1 1361//1 1360//1
+f 1377//2 1378//2 1372//2
+f 1355//1 1360//1 1359//1
+f 1376//2 1377//2 1372//2
+f 1355//1 1359//1 1358//1
+f 1375//2 1376//2 1372//2
+f 1355//1 1358//1 1357//1
+f 1374//2 1375//2 1372//2
+f 1357//1 1356//1 1355//1
+f 1372//2 1373//2 1374//2
+usemtl champagne
+f 1389//1 1405//1 1404//1
+f 1438//2 1439//2 1423//2
+f 1389//1 1404//1 1403//1
+f 1437//2 1438//2 1423//2
+f 1389//1 1403//1 1402//1
+f 1436//2 1437//2 1423//2
+f 1389//1 1402//1 1401//1
+f 1435//2 1436//2 1423//2
+f 1389//1 1401//1 1400//1
+f 1434//2 1435//2 1423//2
+f 1389//1 1400//1 1399//1
+f 1433//2 1434//2 1423//2
+f 1389//1 1399//1 1398//1
+f 1432//2 1433//2 1423//2
+f 1389//1 1398//1 1397//1
+f 1431//2 1432//2 1423//2
+f 1389//1 1397//1 1396//1
+f 1430//2 1431//2 1423//2
+f 1389//1 1396//1 1395//1
+f 1429//2 1430//2 1423//2
+f 1389//1 1395//1 1394//1
+f 1428//2 1429//2 1423//2
+f 1394//1 1393//1 1392//1
+f 1426//2 1427//2 1428//2
+f 1389//1 1394//1 1392//1
+f 1426//2 1428//2 1423//2
+f 1389//1 1392//1 1391//1
+f 1425//2 1426//2 1423//2
+f 1391//1 1390//1 1389//1
+f 1423//2 1424//2 1425//2
+f 1389//508 1390//508 1407//508 1406//508
+f 1390//4 1391//4 1408//4 1407//4
+f 1391//509 1392//509 1409//509 1408//509
+f 1392//510 1393//510 1410//510 1409//510
+f 1393//511 1394//511 1411//511 1410//511
+f 1394//34 1395//34 1412//34 1411//34
+f 1395//512 1396//512 1413//512 1412//512
+f 1396//13 1397//13 1414//13 1413//13
+f 1397//9 1398//9 1415//9 1414//9
+f 1398//513 1399//513 1416//513 1415//513
+f 1399//514 1400//514 1417//514 1416//514
+f 1400//515 1401//515 1418//515 1417//515
+f 1401//516 1402//516 1419//516 1418//516
+f 1402//517 1403//517 1420//517 1419//517
+f 1403//518 1404//518 1421//518 1420//518
+f 1404//11 1405//11 1422//11 1421//11
+f 1405//519 1389//519 1406//519 1422//519
+f 1406//520 1407//520 1424//520 1423//520
+f 1407//521 1408//521 1425//521 1424//521
+f 1408//522 1409//522 1426//522 1425//522
+f 1409//523 1410//523 1427//523 1426//523
+f 1410//524 1411//524 1428//524 1427//524
+f 1411//525 1412//525 1429//525 1428//525
+f 1412//526 1413//526 1430//526 1429//526
+f 1413//440 1414//440 1431//440 1430//440
+f 1414//527 1415//527 1432//527 1431//527
+f 1415//528 1416//528 1433//528 1432//528
+f 1416//529 1417//529 1434//529 1433//529
+f 1417//530 1418//530 1435//530 1434//530
+f 1418//531 1419//531 1436//531 1435//531
+f 1419//532 1420//532 1437//532 1436//532
+f 1420//533 1421//533 1438//533 1437//533
+f 1421//485 1422//485 1439//485 1438//485
+f 1422//534 1406//534 1423//534 1439//534
+f 1569//1 1585//1 1584//1
+f 1618//2 1619//2 1603//2
+f 1569//1 1584//1 1583//1
+f 1617//2 1618//2 1603//2
+f 1569//1 1583//1 1582//1
+f 1616//2 1617//2 1603//2
+f 1569//1 1582//1 1581//1
+f 1615//2 1616//2 1603//2
+f 1569//1 1581//1 1580//1
+f 1614//2 1615//2 1603//2
+f 1569//1 1580//1 1579//1
+f 1613//2 1614//2 1603//2
+f 1569//1 1579//1 1578//1
+f 1612//2 1613//2 1603//2
+f 1569//1 1578//1 1577//1
+f 1611//2 1612//2 1603//2
+f 1569//1 1577//1 1576//1
+f 1610//2 1611//2 1603//2
+f 1576//1 1575//1 1574//1
+f 1608//2 1609//2 1610//2
+f 1569//1 1576//1 1574//1
+f 1608//1 1610//1 1603//1
+f 1569//1 1574//1 1573//1
+f 1607//2 1608//2 1603//2
+f 1573//1 1572//1 1571//1
+f 1605//2 1606//2 1607//2
+f 1569//1 1573//1 1571//1
+f 1605//2 1607//2 1603//2
+f 1571//1 1570//1 1569//1
+f 1603//2 1604//2 1605//2
+f 1569//28 1570//28 1587//28 1586//28
+f 1570//535 1571//535 1588//535 1587//535
+f 1571//536 1572//536 1589//536 1588//536
+f 1572//537 1573//537 1590//537 1589//537
+f 1573//538 1574//538 1591//538 1590//538
+f 1574//539 1575//539 1592//539 1591//539
+f 1575//13 1576//13 1593//13 1592//13
+f 1576//9 1577//9 1594//9 1593//9
+f 1577//540 1578//540 1595//540 1594//540
+f 1578//541 1579//541 1596//541 1595//541
+f 1579//13 1580//13 1597//13 1596//13
+f 1580//542 1581//542 1598//542 1597//542
+f 1581//543 1582//543 1599//543 1598//543
+f 1582//544 1583//544 1600//544 1599//544
+f 1583//545 1584//545 1601//545 1600//545
+f 1584//11 1585//11 1602//11 1601//11
+f 1585//508 1569//508 1586//508 1602//508
+f 1586//229 1587//229 1604//229 1603//229
+f 1587//546 1588//546 1605//546 1604//546
+f 1588//547 1589//547 1606//547 1605//547
+f 1589//548 1590//548 1607//548 1606//548
+f 1590//549 1591//549 1608//549 1607//549
+f 1591//550 1592//550 1609//550 1608//550
+f 1592//484 1593//484 1610//484 1609//484
+f 1593//524 1594//524 1611//524 1610//524
+f 1594//551 1595//551 1612//551 1611//551
+f 1595//552 1596//552 1613//552 1612//552
+f 1596//484 1597//484 1614//484 1613//484
+f 1597//553 1598//553 1615//553 1614//553
+f 1598//554 1599//554 1616//554 1615//554
+f 1599//555 1600//555 1617//555 1616//555
+f 1600//556 1601//556 1618//556 1617//556
+f 1601//557 1602//557 1619//557 1618//557
+f 1602//558 1586//558 1603//558 1619//558
+usemtl glass
+f 1440//1 1451//1 1450//1
+f 1474//2 1475//2 1464//2
+f 1440//1 1450//1 1449//1
+f 1473//2 1474//2 1464//2
+f 1440//1 1449//1 1448//1
+f 1472//2 1473//2 1464//2
+f 1440//1 1448//1 1447//1
+f 1471//2 1472//2 1464//2
+f 1447//1 1446//1 1445//1
+f 1469//2 1470//2 1471//2
+f 1440//1 1447//1 1445//1
+f 1469//2 1471//2 1464//2
+f 1440//1 1445//1 1444//1
+f 1468//2 1469//2 1464//2
+f 1440//1 1444//1 1443//1
+f 1467//2 1468//2 1464//2
+f 1440//1 1443//1 1442//1
+f 1466//2 1467//2 1464//2
+f 1442//1 1441//1 1440//1
+f 1464//2 1465//2 1466//2
+f 1440//559 1441//559 1453//559 1452//559
+f 1441//560 1442//560 1454//560 1453//560
+f 1442//561 1443//561 1455//561 1454//561
+f 1443//562 1444//562 1456//562 1455//562
+f 1444//8 1445//8 1457//8 1456//8
+f 1445//563 1446//563 1458//563 1457//563
+f 1446//564 1447//564 1459//564 1458//564
+f 1447//505 1448//505 1460//505 1459//505
+f 1448//488 1449//488 1461//488 1460//488
+f 1449//565 1450//565 1462//565 1461//565
+f 1450//133 1451//133 1463//133 1462//133
+f 1451//4 1440//4 1452//4 1463//4
+f 1452//566 1453//566 1465//566 1464//566
+f 1453//567 1454//567 1466//567 1465//567
+f 1454//568 1455//568 1467//568 1466//568
+f 1455//569 1456//569 1468//569 1467//569
+f 1456//230 1457//230 1469//230 1468//230
+f 1457//570 1458//570 1470//570 1469//570
+f 1458//571 1459//571 1471//571 1470//571
+f 1459//572 1460//572 1472//572 1471//572
+f 1460//573 1461//573 1473//573 1472//573
+f 1461//574 1462//574 1474//574 1473//574
+f 1462//575 1463//575 1475//575 1474//575
+f 1463//423 1452//423 1464//423 1475//423
+f 1476//1 1486//1 1485//1
+f 1507//2 1508//2 1498//2
+f 1476//1 1485//1 1484//1
+f 1506//2 1507//2 1498//2
+f 1476//1 1484//1 1483//1
+f 1505//2 1506//2 1498//2
+f 1476//1 1483//1 1482//1
+f 1504//2 1505//2 1498//2
+f 1476//1 1482//1 1481//1
+f 1503//2 1504//2 1498//2
+f 1476//1 1481//1 1480//1
+f 1502//2 1503//2 1498//2
+f 1476//1 1480//1 1479//1
+f 1501//2 1502//2 1498//2
+f 1476//1 1479//1 1478//1
+f 1500//2 1501//2 1498//2
+f 1478//1 1477//1 1476//1
+f 1498//2 1499//2 1500//2
+f 1476//576 1477//576 1488//576 1487//576
+f 1477//28 1478//28 1489//28 1488//28
+f 1478//577 1479//577 1490//577 1489//577
+f 1479//578 1480//578 1491//578 1490//578
+f 1480//8 1481//8 1492//8 1491//8
+f 1481//579 1482//579 1493//579 1492//579
+f 1482//580 1483//580 1494//580 1493//580
+f 1483//59 1484//59 1495//59 1494//59
+f 1484//581 1485//581 1496//581 1495//581
+f 1485//359 1486//359 1497//359 1496//359
+f 1486//582 1476//582 1487//582 1497//582
+f 1487//583 1488//583 1499//583 1498//583
+f 1488//229 1489//229 1500//229 1499//229
+f 1489//584 1490//584 1501//584 1500//584
+f 1490//585 1491//585 1502//585 1501//585
+f 1491//230 1492//230 1503//230 1502//230
+f 1492//586 1493//586 1504//586 1503//586
+f 1493//587 1494//587 1505//587 1504//587
+f 1494//204 1495//204 1506//204 1505//204
+f 1495//588 1496//588 1507//588 1506//588
+f 1496//385 1497//385 1508//385 1507//385
+f 1497//589 1487//589 1498//589 1508//589
+usemtl dark
+f 1509//1 1528//1 1527//1
+f 1567//2 1568//2 1549//2
+f 1509//1 1527//1 1526//1
+f 1566//2 1567//2 1549//2
+f 1509//1 1526//1 1525//1
+f 1565//2 1566//2 1549//2
+f 1509//1 1525//1 1524//1
+f 1564//2 1565//2 1549//2
+f 1523//1 1522//1 1521//1
+f 1561//2 1562//2 1563//2
+f 1524//1 1523//1 1521//1
+f 1561//2 1563//2 1564//2
+f 1509//1 1524//1 1521//1
+f 1561//2 1564//2 1549//2
+f 1509//1 1521//1 1520//1
+f 1560//2 1561//2 1549//2
+f 1509//1 1520//1 1519//1
+f 1559//2 1560//2 1549//2
+f 1509//1 1519//1 1518//1
+f 1558//2 1559//2 1549//2
+f 1509//1 1518//1 1517//1
+f 1557//2 1558//2 1549//2
+f 1509//1 1517//1 1516//1
+f 1556//2 1557//2 1549//2
+f 1509//1 1516//1 1515//1
+f 1555//2 1556//2 1549//2
+f 1509//1 1515//1 1514//1
+f 1554//2 1555//2 1549//2
+f 1509//1 1514//1 1513//1
+f 1553//2 1554//2 1549//2
+f 1509//1 1513//1 1512//1
+f 1552//2 1553//2 1549//2
+f 1509//1 1512//1 1511//1
+f 1551//2 1552//2 1549//2
+f 1511//1 1510//1 1509//1
+f 1549//2 1550//2 1551//2
+f 1509//590 1510//590 1530//590 1529//590
+f 1510//591 1511//591 1531//591 1530//591
+f 1511//9 1512//9 1532//9 1531//9
+f 1512//498 1513//498 1533//498 1532//498
+f 1513//592 1514//592 1534//592 1533//592
+f 1514//593 1515//593 1535//593 1534//593
+f 1515//455 1516//455 1536//455 1535//455
+f 1516//594 1517//594 1537//594 1536//594
+f 1517//595 1518//595 1538//595 1537//595
+f 1518//596 1519//596 1539//596 1538//596
+f 1519//597 1520//597 1540//597 1539//597
+f 1520//598 1521//598 1541//598 1540//598
+f 1521//599 1522//599 1542//599 1541//599
+f 1522//600 1523//600 1543//600 1542//600
+f 1523//601 1524//601 1544//601 1543//601
+f 1524//602 1525//602 1545//602 1544//602
+f 1525//603 1526//603 1546//603 1545//603
+f 1526//604 1527//604 1547//604 1546//604
+f 1527//605 1528//605 1548//605 1547//605
+f 1528//429 1509//429 1529//429 1548//429
+f 1529//606 1530//606 1550//606 1549//606
+f 1530//607 1531//607 1551//607 1550//607
+f 1531//437 1532//437 1552//437 1551//437
+f 1532//608 1533//608 1553//608 1552//608
+f 1533//609 1534//609 1554//609 1553//609
+f 1534//610 1535//610 1555//610 1554//610
+f 1535//462 1536//462 1556//462 1555//462
+f 1536//611 1537//611 1557//611 1556//611
+f 1537//612 1538//612 1558//612 1557//612
+f 1538//440 1539//440 1559//440 1558//440
+f 1539//613 1540//613 1560//613 1559//613
+f 1540//614 1541//614 1561//614 1560//614
+f 1541//615 1542//615 1562//615 1561//615
+f 1542//616 1543//616 1563//616 1562//616
+f 1543//617 1544//617 1564//617 1563//617
+f 1544//618 1545//618 1565//618 1564//618
+f 1545//619 1546//619 1566//619 1565//619
+f 1546//620 1547//620 1567//620 1566//620
+f 1547//621 1548//621 1568//621 1567//621
+f 1548//622 1529//622 1549//622 1568//622
+o body
+usemtl frame
+f 1620//4 1621//4 1647//4 1646//4
+f 1621//11 1622//11 1648//11 1647//11
+f 1622//623 1623//623 1649//623 1648//623
+f 1623//4 1624//4 1650//4 1649//4
+f 1624//624 1625//624 1651//624 1650//624
+f 1625//9 1626//9 1652//9 1651//9
+f 1626//625 1627//625 1653//625 1652//625
+f 1627//13 1628//13 1654//13 1653//13
+f 1628//9 1629//9 1655//9 1654//9
+f 1629//626 1630//626 1656//626 1655//626
+f 1630//13 1631//13 1657//13 1656//13
+f 1631//354 1632//354 1658//354 1657//354
+f 1632//627 1633//627 1659//627 1658//627
+f 1633//628 1634//628 1660//628 1659//628
+f 1634//11 1635//11 1661//11 1660//11
+f 1635//4 1636//4 1662//4 1661//4
+f 1636//629 1637//629 1663//629 1662//629
+f 1637//630 1638//630 1664//630 1663//630
+f 1638//11 1639//11 1665//11 1664//11
+f 1639//631 1640//631 1666//631 1665//631
+f 1640//11 1641//11 1667//11 1666//11
+f 1641//4 1642//4 1668//4 1667//4
+f 1642//632 1643//632 1669//632 1668//632
+f 1643//4 1644//4 1670//4 1669//4
+f 1644//633 1645//633 1671//633 1670//633
+f 1645//634 1620//634 1646//634 1671//634
+f 1620//1 1645//1 1644//1
+f 1670//2 1671//2 1646//2
+f 1643//1 1642//1 1641//1
+f 1667//2 1668//2 1669//2
+f 1643//1 1641//1 1640//1
+f 1666//2 1667//2 1669//2
+f 1643//1 1640//1 1639//1
+f 1665//2 1666//2 1669//2
+f 1643//1 1639//1 1638//1
+f 1664//2 1665//2 1669//2
+f 1644//1 1643//1 1638//1
+f 1664//2 1669//2 1670//2
+f 1637//1 1636//1 1635//1
+f 1661//2 1662//2 1663//2
+f 1637//1 1635//1 1634//1
+f 1660//2 1661//2 1663//2
+f 1637//1 1634//1 1633//1
+f 1659//2 1660//2 1663//2
+f 1638//1 1637//1 1633//1
+f 1659//2 1663//2 1664//2
+f 1644//1 1638//1 1633//1
+f 1659//2 1664//2 1670//2
+f 1644//1 1633//1 1632//1
+f 1658//2 1659//2 1670//2
+f 1620//1 1644//1 1632//1
+f 1658//2 1670//2 1646//2
+f 1620//1 1632//1 1631//1
+f 1657//2 1658//2 1646//2
+f 1620//1 1631//1 1630//1
+f 1656//2 1657//2 1646//2
+f 1620//1 1630//1 1629//1
+f 1655//2 1656//2 1646//2
+f 1620//1 1629//1 1628//1
+f 1654//2 1655//2 1646//2
+f 1620//1 1628//1 1627//1
+f 1653//2 1654//2 1646//2
+f 1627//1 1626//1 1625//1
+f 1651//2 1652//2 1653//2
+f 1627//1 1625//1 1624//1
+f 1650//2 1651//2 1653//2
+f 1627//1 1624//1 1623//1
+f 1649//2 1650//2 1653//2
+f 1627//1 1623//1 1622//1
+f 1648//2 1649//2 1653//2
+f 1627//1 1622//1 1621//1
+f 1647//2 1648//2 1653//2
+f 1627//1 1621//1 1620//1
+f 1646//2 1647//2 1653//2
+usemtl glass
+f 1672//1 1690//1 1689//1
+f 1727//2 1728//2 1710//2
+f 1672//1 1689//1 1688//1
+f 1726//2 1727//2 1710//2
+f 1687//1 1686//1 1685//1
+f 1723//2 1724//2 1725//2
+f 1688//1 1687//1 1685//1
+f 1723//2 1725//2 1726//2
+f 1672//1 1688//1 1685//1
+f 1723//2 1726//2 1710//2
+f 1672//1 1685//1 1684//1
+f 1722//2 1723//2 1710//2
+f 1672//1 1684//1 1683//1
+f 1721//2 1722//2 1710//2
+f 1672//1 1683//1 1682//1
+f 1720//2 1721//2 1710//2
+f 1672//1 1682//1 1681//1
+f 1719//2 1720//2 1710//2
+f 1672//1 1681//1 1680//1
+f 1718//2 1719//2 1710//2
+f 1672//1 1680//1 1679//1
+f 1717//2 1718//2 1710//2
+f 1672//1 1679//1 1678//1
+f 1716//2 1717//2 1710//2
+f 1672//1 1678//1 1677//1
+f 1715//2 1716//2 1710//2
+f 1672//1 1677//1 1676//1
+f 1714//2 1715//2 1710//2
+f 1672//1 1676//1 1675//1
+f 1713//2 1714//2 1710//2
+f 1675//1 1674//1 1673//1
+f 1711//2 1712//2 1713//2
+f 1675//1 1673//1 1672//1
+f 1710//2 1711//2 1713//2
+f 1672//635 1673//635 1692//635 1691//635
+f 1673//636 1674//636 1693//636 1692//636
+f 1674//637 1675//637 1694//637 1693//637
+f 1675//638 1676//638 1695//638 1694//638
+f 1676//639 1677//639 1696//639 1695//639
+f 1677//640 1678//640 1697//640 1696//640
+f 1678//8 1679//8 1698//8 1697//8
+f 1679//9 1680//9 1699//9 1698//9
+f 1680//641 1681//641 1700//641 1699//641
+f 1681//642 1682//642 1701//642 1700//642
+f 1682//8 1683//8 1702//8 1701//8
+f 1683//643 1684//643 1703//643 1702//643
+f 1684//59 1685//59 1704//59 1703//59
+f 1685//108 1686//108 1705//108 1704//108
+f 1686//4 1687//4 1706//4 1705//4
+f 1687//11 1688//11 1707//11 1706//11
+f 1688//644 1689//644 1708//644 1707//644
+f 1689//645 1690//645 1709//645 1708//645
+f 1690//646 1672//646 1691//646 1709//646
+f 1691//647 1692//647 1711//647 1710//647
+f 1692//648 1693//648 1712//648 1711//648
+f 1693//649 1694//649 1713//649 1712//649
+f 1694//437 1695//437 1714//437 1713//437
+f 1695//650 1696//650 1715//650 1714//650
+f 1696//651 1697//651 1716//651 1715//651
+f 1697//230 1698//230 1717//230 1716//230
+f 1698//437 1699//437 1718//437 1717//437
+f 1699//652 1700//652 1719//652 1718//652
+f 1700//653 1701//653 1720//653 1719//653
+f 1701//230 1702//230 1721//230 1720//230
+f 1702//654 1703//654 1722//654 1721//654
+f 1703//204 1704//204 1723//204 1722//204
+f 1704//655 1705//655 1724//655 1723//655
+f 1705//144 1706//144 1725//144 1724//144
+f 1706//161 1707//161 1726//161 1725//161
+f 1707//656 1708//656 1727//656 1726//656
+f 1708//657 1709//657 1728//657 1727//657
+f 1709//658 1691//658 1710//658 1728//658
+f 1729//1 1738//1 1737//1
+f 1757//2 1758//2 1749//2
+f 1729//1 1737//1 1736//1
+f 1756//2 1757//2 1749//2
+f 1735//1 1734//1 1733//1
+f 1753//1 1754//1 1755//1
+f 1732//1 1731//1 1730//1
+f 1750//2 1751//2 1752//2
+f 1733//1 1732//1 1730//1
+f 1750//2 1752//2 1753//2
+f 1735//1 1733//1 1730//1
+f 1750//1 1753//1 1755//1
+f 1735//1 1730//1 1729//1
+f 1749//2 1750//2 1755//2
+f 1736//2 1735//2 1729//2
+f 1749//1 1755//1 1756//1
+f 1729//624 1730//624 1740//624 1739//624
+f 1730//638 1731//638 1741//638 1740//638
+f 1731//455 1732//455 1742//455 1741//455
+f 1732//659 1733//659 1743//659 1742//659
+f 1733//660 1734//660 1744//660 1743//660
+f 1734//661 1735//661 1745//661 1744//661
+f 1735//662 1736//662 1746//662 1745//662
+f 1736//11 1737//11 1747//11 1746//11
+f 1737//623 1738//623 1748//623 1747//623
+f 1738//663 1729//663 1739//663 1748//663
+f 1739//664 1740//664 1750//664 1749//664
+f 1740//437 1741//437 1751//437 1750//437
+f 1741//440 1742//440 1752//440 1751//440
+f 1742//665 1743//665 1753//665 1752//665
+f 1743//666 1744//666 1754//666 1753//666
+f 1744//667 1745//667 1755//667 1754//667
+f 1745//668 1746//668 1756//668 1755//668
+f 1746//669 1747//669 1757//669 1756//669
+f 1747//670 1748//670 1758//670 1757//670
+f 1748//671 1739//671 1749//671 1758//671
+f 1759//1 1771//1 1770//1
+f 1796//2 1797//2 1785//2
+f 1759//1 1770//1 1769//1
+f 1795//2 1796//2 1785//2
+f 1759//1 1769//1 1768//1
+f 1794//2 1795//2 1785//2
+f 1759//1 1768//1 1767//1
+f 1793//2 1794//2 1785//2
+f 1759//1 1767//1 1766//1
+f 1792//2 1793//2 1785//2
+f 1759//1 1766//1 1765//1
+f 1791//2 1792//2 1785//2
+f 1759//1 1765//1 1764//1
+f 1790//2 1791//2 1785//2
+f 1759//1 1764//1 1763//1
+f 1789//2 1790//2 1785//2
+f 1759//1 1763//1 1762//1
+f 1788//2 1789//2 1785//2
+f 1759//1 1762//1 1761//1
+f 1787//2 1788//2 1785//2
+f 1761//1 1760//1 1759//1
+f 1785//2 1786//2 1787//2
+f 1759//672 1760//672 1773//672 1772//672
+f 1760//673 1761//673 1774//673 1773//673
+f 1761//674 1762//674 1775//674 1774//674
+f 1762//675 1763//675 1776//675 1775//675
+f 1763//676 1764//676 1777//676 1776//676
+f 1764//13 1765//13 1778//13 1777//13
+f 1765//677 1766//677 1779//677 1778//677
+f 1766//678 1767//678 1780//678 1779//678
+f 1767//679 1768//679 1781//679 1780//679
+f 1768//107 1769//107 1782//107 1781//107
+f 1769//680 1770//680 1783//680 1782//680
+f 1770//681 1771//681 1784//681 1783//681
+f 1771//674 1759//674 1772//674 1784//674
+f 1772//682 1773//682 1786//682 1785//682
+f 1773//683 1774//683 1787//683 1786//683
+f 1774//684 1775//684 1788//684 1787//684
+f 1775//685 1776//685 1789//685 1788//685
+f 1776//686 1777//686 1790//686 1789//686
+f 1777//440 1778//440 1791//440 1790//440
+f 1778//687 1779//687 1792//687 1791//687
+f 1779//688 1780//688 1793//688 1792//688
+f 1780//689 1781//689 1794//689 1793//689
+f 1781//690 1782//690 1795//690 1794//690
+f 1782//161 1783//161 1796//161 1795//161
+f 1783//691 1784//691 1797//691 1796//691
+f 1784//692 1772//692 1785//692 1797//692
+usemtl champagne
+f 1798//1 1806//1 1805//1
+f 1823//2 1824//2 1816//2
+f 1798//1 1805//1 1804//1
+f 1822//2 1823//2 1816//2
+f 1798//1 1804//1 1803//1
+f 1821//2 1822//2 1816//2
+f 1798//1 1803//1 1802//1
+f 1820//2 1821//2 1816//2
+f 1798//1 1802//1 1801//1
+f 1819//2 1820//2 1816//2
+f 1801//1 1800//1 1799//1
+f 1817//2 1818//2 1819//2
+f 1801//1 1799//1 1798//1
+f 1816//2 1817//2 1819//2
+f 1798//629 1799//629 1808//629 1807//629
+f 1799//693 1800//693 1809//693 1808//693
+f 1800//28 1801//28 1810//28 1809//28
+f 1801//694 1802//694 1811//694 1810//694
+f 1802//695 1803//695 1812//695 1811//695
+f 1803//696 1804//696 1813//696 1812//696
+f 1804//697 1805//697 1814//697 1813//697
+f 1805//698 1806//698 1815//698 1814//698
+f 1806//457 1798//457 1807//457 1815//457
+f 1807//699 1808//699 1817//699 1816//699
+f 1808//700 1809//700 1818//700 1817//700
+f 1809//229 1810//229 1819//229 1818//229
+f 1810//701 1811//701 1820//701 1819//701
+f 1811//702 1812//702 1821//702 1820//702
+f 1812//703 1813//703 1822//703 1821//703
+f 1813//704 1814//704 1823//704 1822//704
+f 1814//705 1815//705 1824//705 1823//705
+f 1815//144 1807//144 1816//144 1824//144
+f 1825//1 1838//1 1837//1
+f 1865//2 1866//2 1853//2
+f 1825//1 1837//1 1836//1
+f 1864//2 1865//2 1853//2
+f 1836//1 1835//1 1834//1
+f 1862//2 1863//2 1864//2
+f 1825//1 1836//1 1834//1
+f 1862//2 1864//2 1853//2
+f 1825//1 1834//1 1833//1
+f 1861//1 1862//1 1853//1
+f 1825//1 1833//1 1832//1
+f 1860//2 1861//2 1853//2
+f 1832//1 1831//1 1830//1
+f 1858//2 1859//2 1860//2
+f 1832//1 1830//1 1829//1
+f 1857//1 1858//1 1860//1
+f 1825//1 1832//1 1829//1
+f 1857//1 1860//1 1853//1
+f 1829//1 1828//1 1827//1
+f 1855//2 1856//2 1857//2
+f 1829//1 1827//1 1826//1
+f 1854//2 1855//2 1857//2
+f 1829//1 1826//1 1825//1
+f 1853//2 1854//2 1857//2
+f 1825//632 1826//632 1840//632 1839//632
+f 1826//457 1827//457 1841//457 1840//457
+f 1827//28 1828//28 1842//28 1841//28
+f 1828//257 1829//257 1843//257 1842//257
+f 1829//28 1830//28 1844//28 1843//28
+f 1830//706 1831//706 1845//706 1844//706
+f 1831//707 1832//707 1846//707 1845//707
+f 1832//708 1833//708 1847//708 1846//708
+f 1833//709 1834//709 1848//709 1847//709
+f 1834//59 1835//59 1849//59 1848//59
+f 1835//11 1836//11 1850//11 1849//11
+f 1836//631 1837//631 1851//631 1850//631
+f 1837//710 1838//710 1852//710 1851//710
+f 1838//663 1825//663 1839//663 1852//663
+f 1839//711 1840//711 1854//711 1853//711
+f 1840//144 1841//144 1855//144 1854//144
+f 1841//229 1842//229 1856//229 1855//229
+f 1842//712 1843//712 1857//712 1856//712
+f 1843//229 1844//229 1858//229 1857//229
+f 1844//713 1845//713 1859//713 1858//713
+f 1845//714 1846//714 1860//714 1859//714
+f 1846//715 1847//715 1861//715 1860//715
+f 1847//716 1848//716 1862//716 1861//716
+f 1848//204 1849//204 1863//204 1862//204
+f 1849//161 1850//161 1864//161 1863//161
+f 1850//717 1851//717 1865//717 1864//717
+f 1851//161 1852//161 1866//161 1865//161
+f 1852//671 1839//671 1853//671 1866//671
+f 1867//1 1879//1 1878//1
+f 1904//2 1905//2 1893//2
+f 1867//1 1878//1 1877//1
+f 1903//2 1904//2 1893//2
+f 1867//1 1877//1 1876//1
+f 1902//2 1903//2 1893//2
+f 1867//1 1876//1 1875//1
+f 1901//2 1902//2 1893//2
+f 1875//1 1874//1 1873//1
+f 1899//2 1900//2 1901//2
+f 1867//1 1875//1 1873//1
+f 1899//2 1901//2 1893//2
+f 1867//1 1873//1 1872//1
+f 1898//2 1899//2 1893//2
+f 1867//1 1872//1 1871//1
+f 1897//2 1898//2 1893//2
+f 1867//1 1871//1 1870//1
+f 1896//2 1897//2 1893//2
+f 1867//1 1870//1 1869//1
+f 1895//2 1896//2 1893//2
+f 1869//1 1868//1 1867//1
+f 1893//2 1894//2 1895//2
+f 1867//718 1868//718 1881//718 1880//718
+f 1868//9 1869//9 1882//9 1881//9
+f 1869//626 1870//626 1883//626 1882//626
+f 1870//13 1871//13 1884//13 1883//13
+f 1871//719 1872//719 1885//719 1884//719
+f 1872//720 1873//720 1886//720 1885//720
+f 1873//59 1874//59 1887//59 1886//59
+f 1874//359 1875//359 1888//359 1887//359
+f 1875//721 1876//721 1889//721 1888//721
+f 1876//722 1877//722 1890//722 1889//722
+f 1877//468 1878//468 1891//468 1890//468
+f 1878//359 1879//359 1892//359 1891//359
+f 1879//723 1867//723 1880//723 1892//723
+f 1880//724 1881//724 1894//724 1893//724
+f 1881//524 1882//524 1895//524 1894//524
+f 1882//725 1883//725 1896//725 1895//725
+f 1883//726 1884//726 1897//726 1896//726
+f 1884//727 1885//727 1898//727 1897//727
+f 1885//728 1886//728 1899//728 1898//728
+f 1886//204 1887//204 1900//204 1899//204
+f 1887//385 1888//385 1901//385 1900//385
+f 1888//729 1889//729 1902//729 1901//729
+f 1889//730 1890//730 1903//730 1902//730
+f 1890//161 1891//161 1904//161 1903//161
+f 1891//385 1892//385 1905//385 1904//385
+f 1892//731 1880//731 1893//731 1905//731
+usemtl dark
+f 1906//1 1916//1 1915//1
+f 1937//2 1938//2 1928//2
+f 1906//1 1915//1 1914//1
+f 1936//2 1937//2 1928//2
+f 1906//1 1914//1 1913//1
+f 1935//2 1936//2 1928//2
+f 1906//1 1913//1 1912//1
+f 1934//2 1935//2 1928//2
+f 1906//1 1912//1 1911//1
+f 1933//2 1934//2 1928//2
+f 1906//1 1911//1 1910//1
+f 1932//2 1933//2 1928//2
+f 1906//1 1910//1 1909//1
+f 1931//2 1932//2 1928//2
+f 1906//1 1909//1 1908//1
+f 1930//2 1931//2 1928//2
+f 1908//1 1907//1 1906//1
+f 1928//2 1929//2 1930//2
+f 1906//732 1907//732 1918//732 1917//732
+f 1907//28 1908//28 1919//28 1918//28
+f 1908//733 1909//733 1920//733 1919//733
+f 1909//734 1910//734 1921//734 1920//734
+f 1910//735 1911//735 1922//735 1921//735
+f 1911//736 1912//736 1923//736 1922//736
+f 1912//737 1913//737 1924//737 1923//737
+f 1913//738 1914//738 1925//738 1924//738
+f 1914//13 1915//13 1926//13 1925//13
+f 1915//739 1916//739 1927//739 1926//739
+f 1916//740 1906//740 1917//740 1927//740
+f 1917//741 1918//741 1929//741 1928//741
+f 1918//229 1919//229 1930//229 1929//229
+f 1919//742 1920//742 1931//742 1930//742
+f 1920//743 1921//743 1932//743 1931//743
+f 1921//744 1922//744 1933//744 1932//744
+f 1922//745 1923//745 1934//745 1933//745
+f 1923//746 1924//746 1935//746 1934//746
+f 1924//747 1925//747 1936//747 1935//747
+f 1925//440 1926//440 1937//440 1936//440
+f 1926//748 1927//748 1938//748 1937//748
+f 1927//749 1917//749 1928//749 1938//749
+o tail
+usemtl frame
+f 1939//20 1940//20 1961//20 1960//20
+f 1940//4 1941//4 1962//4 1961//4
+f 1941//21 1942//21 1963//21 1962//21
+f 1942//9 1943//9 1964//9 1963//9
+f 1943//22 1944//22 1965//22 1964//22
+f 1944//750 1945//750 1966//750 1965//750
+f 1945//751 1946//751 1967//751 1966//751
+f 1946//13 1947//13 1968//13 1967//13
+f 1947//12 1948//12 1969//12 1968//12
+f 1948//752 1949//752 1970//752 1969//752
+f 1949//89 1950//89 1971//89 1970//89
+f 1950//11 1951//11 1972//11 1971//11
+f 1951//753 1952//753 1973//753 1972//753
+f 1952//4 1953//4 1974//4 1973//4
+f 1953//754 1954//754 1975//754 1974//754
+f 1954//11 1955//11 1976//11 1975//11
+f 1955//755 1956//755 1977//755 1976//755
+f 1956//756 1957//756 1978//756 1977//756
+f 1957//757 1958//757 1979//757 1978//757
+f 1958//758 1959//758 1980//758 1979//758
+f 1959//759 1939//759 1960//759 1980//759
+f 1939//1 1959//1 1958//1
+f 1979//2 1980//2 1960//2
+f 1939//1 1958//1 1957//1
+f 1978//2 1979//2 1960//2
+f 1939//1 1957//1 1956//1
+f 1977//2 1978//2 1960//2
+f 1939//1 1956//1 1955//1
+f 1976//2 1977//2 1960//2
+f 1953//1 1952//1 1951//1
+f 1972//2 1973//2 1974//2
+f 1953//1 1951//1 1950//1
+f 1971//2 1972//2 1974//2
+f 1950//1 1949//1 1948//1
+f 1969//2 1970//2 1971//2
+f 1953//1 1950//1 1948//1
+f 1969//2 1971//2 1974//2
+f 1953//1 1948//1 1947//1
+f 1968//2 1969//2 1974//2
+f 1953//1 1947//1 1946//1
+f 1967//2 1968//2 1974//2
+f 1953//1 1946//1 1945//1
+f 1966//2 1967//2 1974//2
+f 1954//1 1953//1 1945//1
+f 1966//2 1974//2 1975//2
+f 1955//1 1954//1 1945//1
+f 1966//2 1975//2 1976//2
+f 1939//1 1955//1 1945//1
+f 1966//2 1976//2 1960//2
+f 1945//1 1944//1 1943//1
+f 1964//2 1965//2 1966//2
+f 1939//1 1945//1 1943//1
+f 1964//2 1966//2 1960//2
+f 1939//1 1943//1 1942//1
+f 1963//2 1964//2 1960//2
+f 1939//1 1942//1 1941//1
+f 1962//2 1963//2 1960//2
+f 1941//1 1940//1 1939//1
+f 1960//2 1961//2 1962//2
+usemtl champagne
+f 1981//1 1990//1 1989//1
+f 2009//2 2010//2 2001//2
+f 1981//1 1989//1 1988//1
+f 2008//2 2009//2 2001//2
+f 1981//1 1988//1 1987//1
+f 2007//2 2008//2 2001//2
+f 1981//1 1987//1 1986//1
+f 2006//2 2007//2 2001//2
+f 1981//1 1986//1 1985//1
+f 2005//2 2006//2 2001//2
+f 1981//1 1985//1 1984//1
+f 2004//2 2005//2 2001//2
+f 1984//1 1983//1 1982//1
+f 2002//2 2003//2 2004//2
+f 1984//1 1982//1 1981//1
+f 2001//2 2002//2 2004//2
+f 1981//760 1982//760 1992//760 1991//760
+f 1982//359 1983//359 1993//359 1992//359
+f 1983//28 1984//28 1994//28 1993//28
+f 1984//761 1985//761 1995//761 1994//761
+f 1985//762 1986//762 1996//762 1995//762
+f 1986//763 1987//763 1997//763 1996//763
+f 1987//13 1988//13 1998//13 1997//13
+f 1988//12 1989//12 1999//12 1998//12
+f 1989//752 1990//752 2000//752 1999//752
+f 1990//764 1981//764 1991//764 2000//764
+f 1991//765 1992//765 2002//765 2001//765
+f 1992//385 1993//385 2003//385 2002//385
+f 1993//229 1994//229 2004//229 2003//229
+f 1994//766 1995//766 2005//766 2004//766
+f 1995//767 1996//767 2006//767 2005//767
+f 1996//768 1997//768 2007//768 2006//768
+f 1997//726 1998//726 2008//726 2007//726
+f 1998//769 1999//769 2009//769 2008//769
+f 1999//770 2000//770 2010//770 2009//770
+f 2000//771 1991//771 2001//771 2010//771
+f 2080//1 2094//1 2093//1
+f 2123//2 2124//2 2110//2
+f 2080//1 2093//1 2092//1
+f 2122//2 2123//2 2110//2
+f 2080//1 2092//1 2091//1
+f 2121//2 2122//2 2110//2
+f 2091//1 2090//1 2089//1
+f 2119//2 2120//2 2121//2
+f 2091//1 2089//1 2088//1
+f 2118//2 2119//2 2121//2
+f 2080//1 2091//1 2088//1
+f 2118//2 2121//2 2110//2
+f 2080//1 2088//1 2087//1
+f 2117//2 2118//2 2110//2
+f 2080//1 2087//1 2086//1
+f 2116//2 2117//2 2110//2
+f 2080//1 2086//1 2085//1
+f 2115//2 2116//2 2110//2
+f 2080//1 2085//1 2084//1
+f 2114//2 2115//2 2110//2
+f 2084//1 2083//1 2082//1
+f 2112//2 2113//2 2114//2
+f 2084//1 2082//1 2081//1
+f 2111//2 2112//2 2114//2
+f 2084//1 2081//1 2080//1
+f 2110//2 2111//2 2114//2
+f 2080//772 2081//772 2096//772 2095//772
+f 2081//773 2082//773 2097//773 2096//773
+f 2082//4 2083//4 2098//4 2097//4
+f 2083//774 2084//774 2099//774 2098//774
+f 2084//775 2085//775 2100//775 2099//775
+f 2085//776 2086//776 2101//776 2100//776
+f 2086//595 2087//595 2102//595 2101//595
+f 2087//777 2088//777 2103//777 2102//777
+f 2088//778 2089//778 2104//778 2103//778
+f 2089//13 2090//13 2105//13 2104//13
+f 2090//11 2091//11 2106//11 2105//11
+f 2091//779 2092//779 2107//779 2106//779
+f 2092//780 2093//780 2108//780 2107//780
+f 2093//781 2094//781 2109//781 2108//781
+f 2094//782 2080//782 2095//782 2109//782
+f 2095//783 2096//783 2111//783 2110//783
+f 2096//784 2097//784 2112//784 2111//784
+f 2097//144 2098//144 2113//144 2112//144
+f 2098//785 2099//785 2114//785 2113//785
+f 2099//786 2100//786 2115//786 2114//786
+f 2100//787 2101//787 2116//787 2115//787
+f 2101//788 2102//788 2117//788 2116//788
+f 2102//789 2103//789 2118//789 2117//789
+f 2103//790 2104//790 2119//790 2118//790
+f 2104//440 2105//440 2120//440 2119//440
+f 2105//161 2106//161 2121//161 2120//161
+f 2106//791 2107//791 2122//791 2121//791
+f 2107//792 2108//792 2123//792 2122//792
+f 2108//793 2109//793 2124//793 2123//793
+f 2109//794 2095//794 2110//794 2124//794
+f 2125//1 2138//1 2137//1
+f 2165//2 2166//2 2153//2
+f 2137//1 2136//1 2135//1
+f 2163//2 2164//2 2165//2
+f 2125//1 2137//1 2135//1
+f 2163//2 2165//2 2153//2
+f 2125//1 2135//1 2134//1
+f 2162//2 2163//2 2153//2
+f 2125//1 2134//1 2133//1
+f 2161//2 2162//2 2153//2
+f 2125//1 2133//1 2132//1
+f 2160//2 2161//2 2153//2
+f 2125//1 2132//1 2131//1
+f 2159//2 2160//2 2153//2
+f 2125//1 2131//1 2130//1
+f 2158//2 2159//2 2153//2
+f 2125//1 2130//1 2129//1
+f 2157//2 2158//2 2153//2
+f 2129//1 2128//1 2127//1
+f 2155//2 2156//2 2157//2
+f 2125//1 2129//1 2127//1
+f 2155//2 2157//2 2153//2
+f 2127//1 2126//1 2125//1
+f 2153//2 2154//2 2155//2
+f 2125//124 2126//124 2140//124 2139//124
+f 2126//795 2127//795 2141//795 2140//795
+f 2127//510 2128//510 2142//510 2141//510
+f 2128//511 2129//511 2143//511 2142//511
+f 2129//8 2130//8 2144//8 2143//8
+f 2130//455 2131//455 2145//455 2144//455
+f 2131//796 2132//796 2146//796 2145//796
+f 2132//797 2133//797 2147//797 2146//797
+f 2133//798 2134//798 2148//798 2147//798
+f 2134//799 2135//799 2149//799 2148//799
+f 2135//800 2136//800 2150//800 2149//800
+f 2136//801 2137//801 2151//801 2150//801
+f 2137//710 2138//710 2152//710 2151//710
+f 2138//663 2125//663 2139//663 2152//663
+f 2139//802 2140//802 2154//802 2153//802
+f 2140//803 2141//803 2155//803 2154//803
+f 2141//804 2142//804 2156//804 2155//804
+f 2142//805 2143//805 2157//805 2156//805
+f 2143//230 2144//230 2158//230 2157//230
+f 2144//462 2145//462 2159//462 2158//462
+f 2145//806 2146//806 2160//806 2159//806
+f 2146//807 2147//807 2161//807 2160//807
+f 2147//808 2148//808 2162//808 2161//808
+f 2148//809 2149//809 2163//809 2162//809
+f 2149//810 2150//810 2164//810 2163//810
+f 2150//811 2151//811 2165//811 2164//811
+f 2151//812 2152//812 2166//812 2165//812
+f 2152//813 2139//813 2153//813 2166//813
+usemtl glass
+f 2011//1 2018//1 2017//1
+f 2033//2 2034//2 2027//2
+f 2011//1 2017//1 2016//1
+f 2032//2 2033//2 2027//2
+f 2011//1 2016//1 2015//1
+f 2031//2 2032//2 2027//2
+f 2011//1 2015//1 2014//1
+f 2030//2 2031//2 2027//2
+f 2011//1 2014//1 2013//1
+f 2029//2 2030//2 2027//2
+f 2013//1 2012//1 2011//1
+f 2027//2 2028//2 2029//2
+f 2011//27 2012//27 2020//27 2019//27
+f 2012//814 2013//814 2021//814 2020//814
+f 2013//815 2014//815 2022//815 2021//815
+f 2014//816 2015//816 2023//816 2022//816
+f 2015//817 2016//817 2024//817 2023//817
+f 2016//13 2017//13 2025//13 2024//13
+f 2017//488 2018//488 2026//488 2025//488
+f 2018//753 2011//753 2019//753 2026//753
+f 2019//818 2020//818 2028//818 2027//818
+f 2020//819 2021//819 2029//819 2028//819
+f 2021//820 2022//820 2030//820 2029//820
+f 2022//766 2023//766 2031//766 2030//766
+f 2023//821 2024//821 2032//821 2031//821
+f 2024//440 2025//440 2033//440 2032//440
+f 2025//822 2026//822 2034//822 2033//822
+f 2026//823 2019//823 2027//823 2034//823
+f 2167//1 2174//1 2173//1
+f 2189//2 2190//2 2183//2
+f 2167//1 2173//1 2172//1
+f 2188//2 2189//2 2183//2
+f 2167//1 2172//1 2171//1
+f 2187//2 2188//2 2183//2
+f 2167//1 2171//1 2170//1
+f 2186//2 2187//2 2183//2
+f 2167//1 2170//1 2169//1
+f 2185//2 2186//2 2183//2
+f 2169//1 2168//1 2167//1
+f 2183//2 2184//2 2185//2
+f 2167//824 2168//824 2176//824 2175//824
+f 2168//264 2169//264 2177//264 2176//264
+f 2169//825 2170//825 2178//825 2177//825
+f 2170//826 2171//826 2179//826 2178//826
+f 2171//827 2172//827 2180//827 2179//827
+f 2172//828 2173//828 2181//828 2180//828
+f 2173//780 2174//780 2182//780 2181//780
+f 2174//829 2167//829 2175//829 2182//829
+f 2175//830 2176//830 2184//830 2183//830
+f 2176//831 2177//831 2185//831 2184//831
+f 2177//832 2178//832 2186//832 2185//832
+f 2178//833 2179//833 2187//833 2186//833
+f 2179//834 2180//834 2188//834 2187//834
+f 2180//835 2181//835 2189//835 2188//835
+f 2181//836 2182//836 2190//836 2189//836
+f 2182//837 2175//837 2183//837 2190//837
+usemtl dark
+f 2035//1 2049//1 2048//1
+f 2078//2 2079//2 2065//2
+f 2035//1 2048//1 2047//1
+f 2077//2 2078//2 2065//2
+f 2046//1 2045//1 2044//1
+f 2074//2 2075//2 2076//2
+f 2046//1 2044//1 2043//1
+f 2073//2 2074//2 2076//2
+f 2047//1 2046//1 2043//1
+f 2073//2 2076//2 2077//2
+f 2035//1 2047//1 2043//1
+f 2073//2 2077//2 2065//2
+f 2035//1 2043//1 2042//1
+f 2072//2 2073//2 2065//2
+f 2042//1 2041//1 2040//1
+f 2070//2 2071//2 2072//2
+f 2042//1 2040//1 2039//1
+f 2069//2 2070//2 2072//2
+f 2035//1 2042//1 2039//1
+f 2069//2 2072//2 2065//2
+f 2035//1 2039//1 2038//1
+f 2068//2 2069//2 2065//2
+f 2038//1 2037//1 2036//1
+f 2066//2 2067//2 2068//2
+f 2038//1 2036//1 2035//1
+f 2065//2 2066//2 2068//2
+f 2035//838 2036//838 2051//838 2050//838
+f 2036//839 2037//839 2052//839 2051//839
+f 2037//638 2038//638 2053//638 2052//638
+f 2038//840 2039//840 2054//840 2053//840
+f 2039//455 2040//455 2055//455 2054//455
+f 2040//841 2041//841 2056//841 2055//841
+f 2041//140 2042//140 2057//140 2056//140
+f 2042//842 2043//842 2058//842 2057//842
+f 2043//843 2044//843 2059//843 2058//843
+f 2044//844 2045//844 2060//844 2059//844
+f 2045//663 2046//663 2061//663 2060//663
+f 2046//845 2047//845 2062//845 2061//845
+f 2047//846 2048//846 2063//846 2062//846
+f 2048//847 2049//847 2064//847 2063//847
+f 2049//848 2035//848 2050//848 2064//848
+f 2050//849 2051//849 2066//849 2065//849
+f 2051//850 2052//850 2067//850 2066//850
+f 2052//524 2053//524 2068//524 2067//524
+f 2053//851 2054//851 2069//851 2068//851
+f 2054//726 2055//726 2070//726 2069//726
+f 2055//852 2056//852 2071//852 2070//852
+f 2056//169 2057//169 2072//169 2071//169
+f 2057//853 2058//853 2073//853 2072//853
+f 2058//854 2059//854 2074//854 2073//854
+f 2059//855 2060//855 2075//855 2074//855
+f 2060//479 2061//479 2076//479 2075//479
+f 2061//856 2062//856 2077//856 2076//856
+f 2062//857 2063//857 2078//857 2077//857
+f 2063//858 2064//858 2079//858 2078//858
+f 2064//859 2050//859 2065//859 2079//859
+o hindLegR
+usemtl frame
+f 2191//860 2192//860 2205//860 2204//860
+f 2192//4 2193//4 2206//4 2205//4
+f 2193//861 2194//861 2207//861 2206//861
+f 2194//4 2195//4 2208//4 2207//4
+f 2195//359 2196//359 2209//359 2208//359
+f 2196//4 2197//4 2210//4 2209//4
+f 2197//862 2198//862 2211//862 2210//862
+f 2198//13 2199//13 2212//13 2211//13
+f 2199//96 2200//96 2213//96 2212//96
+f 2200//13 2201//13 2214//13 2213//13
+f 2201//863 2202//863 2215//863 2214//863
+f 2202//864 2203//864 2216//864 2215//864
+f 2203//4 2191//4 2204//4 2216//4
+f 2191//1 2203//1 2202//1
+f 2215//2 2216//2 2204//2
+f 2191//1 2202//1 2201//1
+f 2214//2 2215//2 2204//2
+f 2191//1 2201//1 2200//1
+f 2213//2 2214//2 2204//2
+f 2191//1 2200//1 2199//1
+f 2212//2 2213//2 2204//2
+f 2191//1 2199//1 2198//1
+f 2211//2 2212//2 2204//2
+f 2198//1 2197//1 2196//1
+f 2209//2 2210//2 2211//2
+f 2198//1 2196//1 2195//1
+f 2208//2 2209//2 2211//2
+f 2191//1 2198//1 2195//1
+f 2208//2 2211//2 2204//2
+f 2191//1 2195//1 2194//1
+f 2207//2 2208//2 2204//2
+f 2191//1 2194//1 2193//1
+f 2206//2 2207//2 2204//2
+f 2193//1 2192//1 2191//1
+f 2204//2 2205//2 2206//2
+usemtl dark
+f 2217//1 2226//1 2225//1
+f 2245//2 2246//2 2237//2
+f 2217//1 2225//1 2224//1
+f 2244//2 2245//2 2237//2
+f 2217//1 2224//1 2223//1
+f 2243//2 2244//2 2237//2
+f 2217//1 2223//1 2222//1
+f 2242//2 2243//2 2237//2
+f 2217//1 2222//1 2221//1
+f 2241//2 2242//2 2237//2
+f 2221//1 2220//1 2219//1
+f 2239//2 2240//2 2241//2
+f 2217//1 2221//1 2219//1
+f 2239//2 2241//2 2237//2
+f 2219//1 2218//1 2217//1
+f 2237//2 2238//2 2239//2
+f 2217//663 2218//663 2228//663 2227//663
+f 2218//865 2219//865 2229//865 2228//865
+f 2219//674 2220//674 2230//674 2229//674
+f 2220//866 2221//866 2231//866 2230//866
+f 2221//867 2222//867 2232//867 2231//867
+f 2222//868 2223//868 2233//868 2232//868
+f 2223//8 2224//8 2234//8 2233//8
+f 2224//869 2225//869 2235//869 2234//869
+f 2225//870 2226//870 2236//870 2235//870
+f 2226//871 2217//871 2227//871 2236//871
+f 2227//813 2228//813 2238//813 2237//813
+f 2228//872 2229//872 2239//872 2238//872
+f 2229//873 2230//873 2240//873 2239//873
+f 2230//874 2231//874 2241//874 2240//874
+f 2231//875 2232//875 2242//875 2241//875
+f 2232//876 2233//876 2243//876 2242//876
+f 2233//230 2234//230 2244//230 2243//230
+f 2234//877 2235//877 2245//877 2244//877
+f 2235//878 2236//878 2246//878 2245//878
+f 2236//879 2227//879 2237//879 2246//879
+f 2247//1 2255//1 2254//1
+f 2272//2 2273//2 2265//2
+f 2247//1 2254//1 2253//1
+f 2271//2 2272//2 2265//2
+f 2253//1 2252//1 2251//1
+f 2269//2 2270//2 2271//2
+f 2247//1 2253//1 2251//1
+f 2269//1 2271//1 2265//1
+f 2247//1 2251//1 2250//1
+f 2268//2 2269//2 2265//2
+f 2247//1 2250//1 2249//1
+f 2267//2 2268//2 2265//2
+f 2249//1 2248//1 2247//1
+f 2265//2 2266//2 2267//2
+f 2247//359 2248//359 2257//359 2256//359
+f 2248//4 2249//4 2258//4 2257//4
+f 2249//880 2250//880 2259//880 2258//880
+f 2250//95 2251//95 2260//95 2259//95
+f 2251//13 2252//13 2261//13 2260//13
+f 2252//881 2253//881 2262//881 2261//881
+f 2253//882 2254//882 2263//882 2262//882
+f 2254//883 2255//883 2264//883 2263//883
+f 2255//457 2247//457 2256//457 2264//457
+f 2256//385 2257//385 2266//385 2265//385
+f 2257//144 2258//144 2267//144 2266//144
+f 2258//884 2259//884 2268//884 2267//884
+f 2259//885 2260//885 2269//885 2268//885
+f 2260//440 2261//440 2270//440 2269//440
+f 2261//886 2262//886 2271//886 2270//886
+f 2262//887 2263//887 2272//887 2271//887
+f 2263//888 2264//888 2273//888 2272//888
+f 2264//144 2256//144 2265//144 2273//144
+usemtl champagne
+f 2274//1 2286//1 2285//1
+f 2311//2 2312//2 2300//2
+f 2274//1 2285//1 2284//1
+f 2310//2 2311//2 2300//2
+f 2274//1 2284//1 2283//1
+f 2309//2 2310//2 2300//2
+f 2281//1 2280//1 2279//1
+f 2305//2 2306//2 2307//2
+f 2281//1 2279//1 2278//1
+f 2304//2 2305//2 2307//2
+f 2282//1 2281//1 2278//1
+f 2304//2 2307//2 2308//2
+f 2283//1 2282//1 2278//1
+f 2304//2 2308//2 2309//2
+f 2283//1 2278//1 2277//1
+f 2303//2 2304//2 2309//2
+f 2283//1 2277//1 2276//1
+f 2302//2 2303//2 2309//2
+f 2283//1 2276//1 2275//1
+f 2301//2 2302//2 2309//2
+f 2283//1 2275//1 2274//1
+f 2300//2 2301//2 2309//2
+f 2274//28 2275//28 2288//28 2287//28
+f 2275//889 2276//889 2289//889 2288//889
+f 2276//890 2277//890 2290//890 2289//890
+f 2277//28 2278//28 2291//28 2290//28
+f 2278//891 2279//891 2292//891 2291//891
+f 2279//8 2280//8 2293//8 2292//8
+f 2280//13 2281//13 2294//13 2293//13
+f 2281//8 2282//8 2295//8 2294//8
+f 2282//892 2283//892 2296//892 2295//892
+f 2283//13 2284//13 2297//13 2296//13
+f 2284//863 2285//863 2298//863 2297//863
+f 2285//864 2286//864 2299//864 2298//864
+f 2286//4 2274//4 2287//4 2299//4
+f 2287//229 2288//229 2301//229 2300//229
+f 2288//893 2289//893 2302//893 2301//893
+f 2289//894 2290//894 2303//894 2302//894
+f 2290//229 2291//229 2304//229 2303//229
+f 2291//895 2292//895 2305//895 2304//895
+f 2292//230 2293//230 2306//230 2305//230
+f 2293//440 2294//440 2307//440 2306//440
+f 2294//230 2295//230 2308//230 2307//230
+f 2295//896 2296//896 2309//896 2308//896
+f 2296//440 2297//440 2310//440 2309//440
+f 2297//897 2298//897 2311//897 2310//897
+f 2298//898 2299//898 2312//898 2311//898
+f 2299//144 2287//144 2300//144 2312//144
+o foreLegR
+usemtl frame
+f 2313//899 2314//899 2320//899 2319//899
+f 2314//900 2315//900 2321//900 2320//900
+f 2315//901 2316//901 2322//901 2321//901
+f 2316//902 2317//902 2323//902 2322//902
+f 2317//903 2318//903 2324//903 2323//903
+f 2318//904 2313//904 2319//904 2324//904
+f 2313//1 2318//1 2317//1
+f 2323//2 2324//2 2319//2
+f 2313//1 2317//1 2316//1
+f 2322//2 2323//2 2319//2
+f 2313//1 2316//1 2315//1
+f 2321//2 2322//2 2319//2
+f 2315//1 2314//1 2313//1
+f 2319//2 2320//2 2321//2
+usemtl glass
+f 2325//1 2336//1 2335//1
+f 2359//2 2360//2 2349//2
+f 2325//1 2335//1 2334//1
+f 2358//2 2359//2 2349//2
+f 2325//1 2334//1 2333//1
+f 2357//2 2358//2 2349//2
+f 2325//1 2333//1 2332//1
+f 2356//2 2357//2 2349//2
+f 2325//1 2332//1 2331//1
+f 2355//2 2356//2 2349//2
+f 2325//1 2331//1 2330//1
+f 2354//2 2355//2 2349//2
+f 2325//1 2330//1 2329//1
+f 2353//2 2354//2 2349//2
+f 2325//1 2329//1 2328//1
+f 2352//2 2353//2 2349//2
+f 2325//1 2328//1 2327//1
+f 2351//2 2352//2 2349//2
+f 2327//1 2326//1 2325//1
+f 2349//2 2350//2 2351//2
+f 2325//905 2326//905 2338//905 2337//905
+f 2326//906 2327//906 2339//906 2338//906
+f 2327//9 2328//9 2340//9 2339//9
+f 2328//907 2329//907 2341//907 2340//907
+f 2329//675 2330//675 2342//675 2341//675
+f 2330//908 2331//908 2343//908 2342//908
+f 2331//737 2332//737 2344//737 2343//737
+f 2332//909 2333//909 2345//909 2344//909
+f 2333//62 2334//62 2346//62 2345//62
+f 2334//910 2335//910 2347//910 2346//910
+f 2335//710 2336//710 2348//710 2347//710
+f 2336//904 2325//904 2337//904 2348//904
+f 2337//911 2338//911 2350//911 2349//911
+f 2338//912 2339//912 2351//912 2350//912
+f 2339//437 2340//437 2352//437 2351//437
+f 2340//913 2341//913 2353//913 2352//913
+f 2341//914 2342//914 2354//914 2353//914
+f 2342//915 2343//915 2355//915 2354//915
+f 2343//916 2344//916 2356//916 2355//916
+f 2344//917 2345//917 2357//917 2356//917
+f 2345//918 2346//918 2358//918 2357//918
+f 2346//919 2347//919 2359//919 2358//919
+f 2347//920 2348//920 2360//920 2359//920
+f 2348//921 2337//921 2349//921 2360//921
+usemtl dark
+f 2361//1 2369//1 2368//1
+f 2386//2 2387//2 2379//2
+f 2361//1 2368//1 2367//1
+f 2385//2 2386//2 2379//2
+f 2361//1 2367//1 2366//1
+f 2384//2 2385//2 2379//2
+f 2361//1 2366//1 2365//1
+f 2383//2 2384//2 2379//2
+f 2365//1 2364//1 2363//1
+f 2381//2 2382//2 2383//2
+f 2365//1 2363//1 2362//1
+f 2380//1 2381//1 2383//1
+f 2365//1 2362//1 2361//1
+f 2379//1 2380//1 2383//1
+f 2361//922 2362//922 2371//922 2370//922
+f 2362//923 2363//923 2372//923 2371//923
+f 2363//924 2364//924 2373//924 2372//924
+f 2364//486 2365//486 2374//486 2373//486
+f 2365//925 2366//925 2375//925 2374//925
+f 2366//103 2367//103 2376//103 2375//103
+f 2367//926 2368//926 2377//926 2376//926
+f 2368//710 2369//710 2378//710 2377//710
+f 2369//663 2361//663 2370//663 2378//663
+f 2370//927 2371//927 2380//927 2379//927
+f 2371//928 2372//928 2381//928 2380//928
+f 2372//929 2373//929 2382//929 2381//929
+f 2373//491 2374//491 2383//491 2382//491
+f 2374//930 2375//930 2384//930 2383//930
+f 2375//931 2376//931 2385//931 2384//931
+f 2376//932 2377//932 2386//932 2385//932
+f 2377//933 2378//933 2387//933 2386//933
+f 2378//671 2370//671 2379//671 2387//671
+o hornR
+usemtl frame
+f 2388//934 2389//934 2394//934 2393//934
+f 2389//935 2390//935 2395//935 2394//935
+f 2390//936 2391//936 2396//936 2395//936
+f 2391//937 2392//937 2397//937 2396//937
+f 2392//4 2388//4 2393//4 2397//4
+f 2388//1 2392//1 2391//1
+f 2396//2 2397//2 2393//2
+f 2388//1 2391//1 2390//1
+f 2395//2 2396//2 2393//2
+f 2390//1 2389//1 2388//1
+f 2393//2 2394//2 2395//2
+usemtl dark
+f 2398//1 2403//1 2402//1
+f 2414//2 2415//2 2410//2
+f 2398//1 2402//1 2401//1
+f 2413//2 2414//2 2410//2
+f 2398//1 2401//1 2400//1
+f 2412//2 2413//2 2410//2
+f 2400//1 2399//1 2398//1
+f 2410//2 2411//2 2412//2
+f 2398//934 2399//934 2405//934 2404//934
+f 2399//935 2400//935 2406//935 2405//935
+f 2400//938 2401//938 2407//938 2406//938
+f 2401//939 2402//939 2408//939 2407//939
+f 2402//940 2403//940 2409//940 2408//940
+f 2403//4 2398//4 2404//4 2409//4
+f 2404//941 2405//941 2411//941 2410//941
+f 2405//942 2406//942 2412//942 2411//942
+f 2406//943 2407//943 2413//943 2412//943
+f 2407//944 2408//944 2414//944 2413//944
+f 2408//945 2409//945 2415//945 2414//945
+f 2409//144 2404//144 2410//144 2415//144
+o crest
+usemtl frame
+f 2416//946 2417//946 2422//946 2421//946
+f 2417//947 2418//947 2423//947 2422//947
+f 2418//936 2419//936 2424//936 2423//936
+f 2419//948 2420//948 2425//948 2424//948
+f 2420//949 2416//949 2421//949 2425//949
+f 2416//1 2420//1 2419//1
+f 2424//2 2425//2 2421//2
+f 2416//1 2419//1 2418//1
+f 2423//2 2424//2 2421//2
+f 2418//1 2417//1 2416//1
+f 2421//2 2422//2 2423//2
+usemtl champagne
+f 2426//1 2433//1 2432//1
+f 2448//2 2449//2 2442//2
+f 2426//1 2432//1 2431//1
+f 2447//2 2448//2 2442//2
+f 2426//1 2431//1 2430//1
+f 2446//2 2447//2 2442//2
+f 2426//1 2430//1 2429//1
+f 2445//2 2446//2 2442//2
+f 2426//1 2429//1 2428//1
+f 2444//2 2445//2 2442//2
+f 2428//1 2427//1 2426//1
+f 2442//2 2443//2 2444//2
+f 2426//950 2427//950 2435//950 2434//950
+f 2427//951 2428//951 2436//951 2435//951
+f 2428//9 2429//9 2437//9 2436//9
+f 2429//947 2430//947 2438//947 2437//947
+f 2430//938 2431//938 2439//938 2438//938
+f 2431//758 2432//758 2440//758 2439//758
+f 2432//114 2433//114 2441//114 2440//114
+f 2433//4 2426//4 2434//4 2441//4
+f 2434//952 2435//952 2443//952 2442//952
+f 2435//953 2436//953 2444//953 2443//953
+f 2436//954 2437//954 2445//954 2444//954
+f 2437//955 2438//955 2446//955 2445//955
+f 2438//956 2439//956 2447//956 2446//956
+f 2439//792 2440//792 2448//792 2447//792
+f 2440//957 2441//957 2449//957 2448//957
+f 2441//479 2434//479 2442//479 2449//479
+o wingR
+usemtl frame
+f 2450//958 2451//958 2465//958 2464//958
+f 2451//15 2452//15 2466//15 2465//15
+f 2452//4 2453//4 2467//4 2466//4
+f 2453//959 2454//959 2468//959 2467//959
+f 2454//429 2455//429 2469//429 2468//429
+f 2455//960 2456//960 2470//960 2469//960
+f 2456//961 2457//961 2471//961 2470//961
+f 2457//962 2458//962 2472//962 2471//962
+f 2458//13 2459//13 2473//13 2472//13
+f 2459//963 2460//963 2474//963 2473//963
+f 2460//13 2461//13 2475//13 2474//13
+f 2461//11 2462//11 2476//11 2475//11
+f 2462//14 2463//14 2477//14 2476//14
+f 2463//4 2450//4 2464//4 2477//4
+f 2450//1 2463//1 2462//1
+f 2476//2 2477//2 2464//2
+f 2450//1 2462//1 2461//1
+f 2475//2 2476//2 2464//2
+f 2450//1 2461//1 2460//1
+f 2474//2 2475//2 2464//2
+f 2450//1 2460//1 2459//1
+f 2473//2 2474//2 2464//2
+f 2450//1 2459//1 2458//1
+f 2472//2 2473//2 2464//2
+f 2450//1 2458//1 2457//1
+f 2471//2 2472//2 2464//2
+f 2457//1 2456//1 2455//1
+f 2469//2 2470//2 2471//2
+f 2457//1 2455//1 2454//1
+f 2468//2 2469//2 2471//2
+f 2457//1 2454//1 2453//1
+f 2467//2 2468//2 2471//2
+f 2457//1 2453//1 2452//1
+f 2466//2 2467//2 2471//2
+f 2450//1 2457//1 2452//1
+f 2466//2 2471//2 2464//2
+f 2452//1 2451//1 2450//1
+f 2464//2 2465//2 2466//2
+usemtl dark
+f 2478//1 2490//1 2489//1
+f 2515//2 2516//2 2504//2
+f 2478//1 2489//1 2488//1
+f 2514//2 2515//2 2504//2
+f 2478//1 2488//1 2487//1
+f 2513//2 2514//2 2504//2
+f 2478//1 2487//1 2486//1
+f 2512//2 2513//2 2504//2
+f 2478//1 2486//1 2485//1
+f 2511//2 2512//2 2504//2
+f 2478//1 2485//1 2484//1
+f 2510//2 2511//2 2504//2
+f 2478//1 2484//1 2483//1
+f 2509//2 2510//2 2504//2
+f 2483//1 2482//1 2481//1
+f 2507//2 2508//2 2509//2
+f 2483//1 2481//1 2480//1
+f 2506//2 2507//2 2509//2
+f 2478//1 2483//1 2480//1
+f 2506//2 2509//2 2504//2
+f 2480//1 2479//1 2478//1
+f 2504//2 2505//2 2506//2
+f 2478//964 2479//964 2492//964 2491//964
+f 2479//15 2480//15 2493//15 2492//15
+f 2480//663 2481//663 2494//663 2493//663
+f 2481//965 2482//965 2495//965 2494//965
+f 2482//966 2483//966 2496//966 2495//966
+f 2483//967 2484//967 2497//967 2496//967
+f 2484//8 2485//8 2498//8 2497//8
+f 2485//968 2486//968 2499//968 2498//968
+f 2486//34 2487//34 2500//34 2499//34
+f 2487//969 2488//969 2501//969 2500//969
+f 2488//488 2489//488 2502//488 2501//488
+f 2489//14 2490//14 2503//14 2502//14
+f 2490//663 2478//663 2491//663 2503//663
+f 2491//970 2492//970 2505//970 2504//970
+f 2492//971 2493//971 2506//971 2505//971
+f 2493//144 2494//144 2507//144 2506//144
+f 2494//972 2495//972 2508//972 2507//972
+f 2495//973 2496//973 2509//973 2508//973
+f 2496//974 2497//974 2510//974 2509//974
+f 2497//230 2498//230 2511//230 2510//230
+f 2498//703 2499//703 2512//703 2511//703
+f 2499//975 2500//975 2513//975 2512//975
+f 2500//976 2501//976 2514//976 2513//976
+f 2501//822 2502//822 2515//822 2514//822
+f 2502//977 2503//977 2516//977 2515//977
+f 2503//671 2491//671 2504//671 2516//671
+usemtl glass
+f 2517//1 2527//1 2526//1
+f 2548//2 2549//2 2539//2
+f 2526//1 2525//1 2524//1
+f 2546//2 2547//2 2548//2
+f 2517//1 2526//1 2524//1
+f 2546//2 2548//2 2539//2
+f 2517//1 2524//1 2523//1
+f 2545//2 2546//2 2539//2
+f 2517//1 2523//1 2522//1
+f 2544//2 2545//2 2539//2
+f 2517//1 2522//1 2521//1
+f 2543//2 2544//2 2539//2
+f 2517//1 2521//1 2520//1
+f 2542//2 2543//2 2539//2
+f 2517//1 2520//1 2519//1
+f 2541//2 2542//2 2539//2
+f 2519//1 2518//1 2517//1
+f 2539//2 2540//2 2541//2
+f 2517//958 2518//958 2529//958 2528//958
+f 2518//978 2519//978 2530//978 2529//978
+f 2519//9 2520//9 2531//9 2530//9
+f 2520//979 2521//979 2532//979 2531//979
+f 2521//980 2522//980 2533//980 2532//980
+f 2522//981 2523//981 2534//981 2533//981
+f 2523//982 2524//982 2535//982 2534//982
+f 2524//983 2525//983 2536//983 2535//983
+f 2525//171 2526//171 2537//171 2536//171
+f 2526//984 2527//984 2538//984 2537//984
+f 2527//663 2517//663 2528//663 2538//663
+f 2528//985 2529//985 2540//985 2539//985
+f 2529//986 2530//986 2541//986 2540//986
+f 2530//437 2531//437 2542//437 2541//437
+f 2531//987 2532//987 2543//987 2542//987
+f 2532//988 2533//988 2544//988 2543//988
+f 2533//856 2534//856 2545//856 2544//856
+f 2534//989 2535//989 2546//989 2545//989
+f 2535//990 2536//990 2547//990 2546//990
+f 2536//180 2537//180 2548//180 2547//180
+f 2537//991 2538//991 2549//991 2548//991
+f 2538//671 2528//671 2539//671 2549//671
+f 2550//1 2562//1 2561//1
+f 2587//2 2588//2 2576//2
+f 2550//1 2561//1 2560//1
+f 2586//2 2587//2 2576//2
+f 2550//1 2560//1 2559//1
+f 2585//2 2586//2 2576//2
+f 2550//1 2559//1 2558//1
+f 2584//2 2585//2 2576//2
+f 2550//1 2558//1 2557//1
+f 2583//2 2584//2 2576//2
+f 2550//1 2557//1 2556//1
+f 2582//2 2583//2 2576//2
+f 2550//1 2556//1 2555//1
+f 2581//2 2582//2 2576//2
+f 2550//1 2555//1 2554//1
+f 2580//2 2581//2 2576//2
+f 2550//1 2554//1 2553//1
+f 2579//2 2580//2 2576//2
+f 2553//1 2552//1 2551//1
+f 2577//2 2578//2 2579//2
+f 2553//1 2551//1 2550//1
+f 2576//2 2577//2 2579//2
+f 2550//992 2551//992 2564//992 2563//992
+f 2551//359 2552//359 2565//359 2564//359
+f 2552//4 2553//4 2566//4 2565//4
+f 2553//993 2554//993 2567//993 2566//993
+f 2554//190 2555//190 2568//190 2567//190
+f 2555//486 2556//486 2569//486 2568//486
+f 2556//994 2557//994 2570//994 2569//994
+f 2557//995 2558//995 2571//995 2570//995
+f 2558//13 2559//13 2572//13 2571//13
+f 2559//996 2560//996 2573//996 2572//996
+f 2560//997 2561//997 2574//997 2573//997
+f 2561//863 2562//863 2575//863 2574//863
+f 2562//998 2550//998 2563//998 2575//998
+f 2563//999 2564//999 2577//999 2576//999
+f 2564//385 2565//385 2578//385 2577//385
+f 2565//144 2566//144 2579//144 2578//144
+f 2566//1000 2567//1000 2580//1000 2579//1000
+f 2567//1001 2568//1001 2581//1001 2580//1001
+f 2568//442 2569//442 2582//442 2581//442
+f 2569//1002 2570//1002 2583//1002 2582//1002
+f 2570//1003 2571//1003 2584//1003 2583//1003
+f 2571//1004 2572//1004 2585//1004 2584//1004
+f 2572//1005 2573//1005 2586//1005 2585//1005
+f 2573//1006 2574//1006 2587//1006 2586//1006
+f 2574//1007 2575//1007 2588//1007 2587//1007
+f 2575//1008 2563//1008 2576//1008 2588//1008
diff --git a/assets/SingeText.glb b/assets/SingeText.glb
new file mode 100644
index 000000000..9446c38f2
--- /dev/null
+++ b/assets/SingeText.glb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:979ec317a81c7d47978e106cf29f59cfaa9855d11741ac3bc200fb1b92e6fbb6
+size 62136
diff --git a/assets/SingeText.mtl b/assets/SingeText.mtl
new file mode 100644
index 000000000..6f7c2a17b
--- /dev/null
+++ b/assets/SingeText.mtl
@@ -0,0 +1,12 @@
+# Materials for SingeText.obj
+newmtl logo
+Ka 0.060 0.062 0.066
+Kd 0.300 0.310 0.330
+Ks 0.700 0.700 0.700
+Ns 180.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.80
+Pr 0.35
+
diff --git a/assets/SingeText.obj b/assets/SingeText.obj
new file mode 100644
index 000000000..18767cb53
--- /dev/null
+++ b/assets/SingeText.obj
@@ -0,0 +1,1735 @@
+# Singe logotype, extruded from SingeText.jpeg by util/textModel.py
+# Units: 0.01 per image pixel; Y up, front faces toward +Z, resting on Y = 0, centred on X = 0
+mtllib SingeText.mtl
+v -3.60267 4.62648 -0.15000
+v -4.22784 4.21467 -0.15000
+v -4.93891 3.63288 -0.15000
+v -5.20536 3.36643 -0.15000
+v -5.39561 3.13337 -0.15000
+v -5.39837 3.11821 -0.15000
+v -5.36178 3.08467 -0.15000
+v -4.32338 2.41071 -0.15000
+v -3.98950 2.14837 -0.15000
+v -4.62411 1.68883 -0.15000
+v -5.88678 0.86020 -0.15000
+v -5.89128 0.83320 -0.15000
+v -5.69555 0.17752 -0.15000
+v -5.64412 0.06363 -0.15000
+v -5.63565 0.06575 -0.15000
+v -4.76870 0.78409 -0.15000
+v -3.49459 1.76340 -0.15000
+v -3.22833 2.00500 -0.15000
+v -3.01961 2.24620 -0.15000
+v -3.02026 2.25205 -0.15000
+v -3.07565 2.30744 -0.15000
+v -3.29599 2.47882 -0.15000
+v -4.42097 3.16747 -0.15000
+v -4.13323 3.42459 -0.15000
+v -3.70312 3.71302 -0.15000
+v -2.74711 4.21517 -0.15000
+v -2.93473 4.84839 -0.15000
+v -2.97051 4.93585 -0.15000
+v -2.96990 4.93562 -0.15000
+v -3.62750 4.67000 -0.10000
+v -4.25750 4.25500 -0.10000
+v -4.97250 3.67000 -0.10000
+v -5.24250 3.40000 -0.10000
+v -5.44250 3.15500 -0.10000
+v -5.45250 3.10000 -0.10000
+v -5.39250 3.04500 -0.10000
+v -4.35250 2.37000 -0.10000
+v -4.07250 2.15000 -0.10000
+v -4.65250 1.73000 -0.10000
+v -5.93250 0.89000 -0.10000
+v -5.94250 0.83000 -0.10000
+v -5.74250 0.16000 -0.10000
+v -5.67250 0.00500 -0.10000
+v -5.61250 0.02000 -0.10000
+v -4.73750 0.74500 -0.10000
+v -3.46250 1.72500 -0.10000
+v -3.19250 1.97000 -0.10000
+v -2.96750 2.23000 -0.10000
+v -2.97250 2.27500 -0.10000
+v -3.04250 2.34500 -0.10000
+v -3.26750 2.52000 -0.10000
+v -4.33750 3.17500 -0.10000
+v -4.10250 3.38500 -0.10000
+v -3.67750 3.67000 -0.10000
+v -2.68750 4.19000 -0.10000
+v -2.88750 4.86500 -0.10000
+v -2.93250 4.97500 -0.10000
+v -2.97250 4.99000 -0.10000
+v -3.62750 4.67000 0.10000
+v -4.25750 4.25500 0.10000
+v -4.97250 3.67000 0.10000
+v -5.24250 3.40000 0.10000
+v -5.44250 3.15500 0.10000
+v -5.45250 3.10000 0.10000
+v -5.39250 3.04500 0.10000
+v -4.35250 2.37000 0.10000
+v -4.07250 2.15000 0.10000
+v -4.65250 1.73000 0.10000
+v -5.93250 0.89000 0.10000
+v -5.94250 0.83000 0.10000
+v -5.74250 0.16000 0.10000
+v -5.67250 0.00500 0.10000
+v -5.61250 0.02000 0.10000
+v -4.73750 0.74500 0.10000
+v -3.46250 1.72500 0.10000
+v -3.19250 1.97000 0.10000
+v -2.96750 2.23000 0.10000
+v -2.97250 2.27500 0.10000
+v -3.04250 2.34500 0.10000
+v -3.26750 2.52000 0.10000
+v -4.33750 3.17500 0.10000
+v -4.10250 3.38500 0.10000
+v -3.67750 3.67000 0.10000
+v -2.68750 4.19000 0.10000
+v -2.88750 4.86500 0.10000
+v -2.93250 4.97500 0.10000
+v -2.97250 4.99000 0.10000
+v -3.60267 4.62648 0.15000
+v -4.22784 4.21467 0.15000
+v -4.93891 3.63288 0.15000
+v -5.20536 3.36643 0.15000
+v -5.39561 3.13337 0.15000
+v -5.39837 3.11821 0.15000
+v -5.36178 3.08467 0.15000
+v -4.32338 2.41071 0.15000
+v -3.98950 2.14837 0.15000
+v -4.62411 1.68883 0.15000
+v -5.88678 0.86020 0.15000
+v -5.89128 0.83320 0.15000
+v -5.69555 0.17752 0.15000
+v -5.64412 0.06363 0.15000
+v -5.63565 0.06575 0.15000
+v -4.76870 0.78409 0.15000
+v -3.49459 1.76340 0.15000
+v -3.22833 2.00500 0.15000
+v -3.01961 2.24620 0.15000
+v -3.02026 2.25205 0.15000
+v -3.07565 2.30744 0.15000
+v -3.29599 2.47882 0.15000
+v -4.42097 3.16747 0.15000
+v -4.13323 3.42459 0.15000
+v -3.70312 3.71302 0.15000
+v -2.74711 4.21517 0.15000
+v -2.93473 4.84839 0.15000
+v -2.97051 4.93585 0.15000
+v -2.96990 4.93562 0.15000
+v -2.41704 3.44114 -0.15000
+v -2.45748 3.40743 -0.15000
+v -3.04353 0.81987 -0.15000
+v -3.07049 0.67608 -0.15000
+v -3.07604 0.68857 -0.15000
+v -2.55820 0.88562 -0.15000
+v -2.42103 0.95849 -0.15000
+v -2.09606 2.35191 -0.15000
+v -1.74821 3.70359 -0.15000
+v -1.74802 3.70190 -0.15000
+v -1.72754 3.69848 -0.15000
+v -2.44250 3.48500 -0.10000
+v -2.50250 3.43500 -0.10000
+v -3.09250 0.83000 -0.10000
+v -3.12250 0.67000 -0.10000
+v -3.10250 0.62500 -0.10000
+v -2.53750 0.84000 -0.10000
+v -2.37750 0.92500 -0.10000
+v -2.04750 2.34000 -0.10000
+v -1.69750 3.70000 -0.10000
+v -1.70250 3.74500 -0.10000
+v -1.73250 3.75000 -0.10000
+v -2.44250 3.48500 0.10000
+v -2.50250 3.43500 0.10000
+v -3.09250 0.83000 0.10000
+v -3.12250 0.67000 0.10000
+v -3.10250 0.62500 0.10000
+v -2.53750 0.84000 0.10000
+v -2.37750 0.92500 0.10000
+v -2.04750 2.34000 0.10000
+v -1.69750 3.70000 0.10000
+v -1.70250 3.74500 0.10000
+v -1.73250 3.75000 0.10000
+v -2.41704 3.44114 0.15000
+v -2.45748 3.40743 0.15000
+v -3.04353 0.81987 0.15000
+v -3.07049 0.67608 0.15000
+v -3.07604 0.68857 0.15000
+v -2.55820 0.88562 0.15000
+v -2.42103 0.95849 0.15000
+v -2.09606 2.35191 0.15000
+v -1.74821 3.70359 0.15000
+v -1.74802 3.70190 0.15000
+v -1.72754 3.69848 0.15000
+v -2.23752 4.50288 -0.15000
+v -2.24654 4.49205 -0.15000
+v -2.39874 3.84636 -0.15000
+v -2.41691 3.85318 -0.15000
+v -2.33522 3.88177 -0.15000
+v -1.62225 4.17278 -0.15000
+v -1.38750 4.84350 -0.15000
+v -1.38750 4.83896 -0.15000
+v -1.36645 4.83195 -0.15000
+v -2.26750 4.54500 -0.10000
+v -2.29250 4.51500 -0.10000
+v -2.45750 3.81500 -0.10000
+v -2.41750 3.80000 -0.10000
+v -2.31750 3.83500 -0.10000
+v -1.58250 4.13500 -0.10000
+v -1.33750 4.83500 -0.10000
+v -1.33750 4.87500 -0.10000
+v -1.36750 4.88500 -0.10000
+v -2.26750 4.54500 0.10000
+v -2.29250 4.51500 0.10000
+v -2.45750 3.81500 0.10000
+v -2.41750 3.80000 0.10000
+v -2.31750 3.83500 0.10000
+v -1.58250 4.13500 0.10000
+v -1.33750 4.83500 0.10000
+v -1.33750 4.87500 0.10000
+v -1.36750 4.88500 0.10000
+v -2.23752 4.50288 0.15000
+v -2.24654 4.49205 0.15000
+v -2.39874 3.84636 0.15000
+v -2.41691 3.85318 0.15000
+v -2.33522 3.88177 0.15000
+v -1.62225 4.17278 0.15000
+v -1.38750 4.84350 0.15000
+v -1.38750 4.83896 0.15000
+v -1.36645 4.83195 0.15000
+v 0.62484 4.44254 -0.15000
+v 0.08200 2.24246 -0.15000
+v -0.66267 4.13256 -0.15000
+v -0.68346 4.13416 -0.15000
+v -1.17442 3.90972 -0.15000
+v -1.73376 1.52384 -0.15000
+v -1.93250 0.63448 -0.15000
+v -1.93250 0.59500 -0.15000
+v -1.93727 0.59500 -0.15000
+v -1.35518 0.83162 -0.15000
+v -0.85368 2.91242 -0.15000
+v -0.01619 0.89315 -0.15000
+v -0.01459 0.89280 -0.15000
+v 0.30960 1.06390 -0.15000
+v 0.84934 3.15848 -0.15000
+v 1.31823 4.70981 -0.15000
+v 1.31910 4.71849 -0.15000
+v 1.33632 4.71111 -0.15000
+v 0.58250 4.48000 -0.10000
+v 0.07250 2.38500 -0.10000
+v -0.62750 4.18000 -0.10000
+v -0.69250 4.18500 -0.10000
+v -1.21750 3.94500 -0.10000
+v -1.78250 1.53500 -0.10000
+v -1.98250 0.64000 -0.10000
+v -1.98250 0.54500 -0.10000
+v -1.92750 0.54500 -0.10000
+v -1.31250 0.79500 -0.10000
+v -0.84250 2.77000 -0.10000
+v -0.05250 0.85000 -0.10000
+v -0.00750 0.84000 -0.10000
+v 0.35250 1.03000 -0.10000
+v 0.89750 3.14500 -0.10000
+v 1.36750 4.70000 -0.10000
+v 1.37250 4.75000 -0.10000
+v 1.33750 4.76500 -0.10000
+v 0.58250 4.48000 0.10000
+v 0.07250 2.38500 0.10000
+v -0.62750 4.18000 0.10000
+v -0.69250 4.18500 0.10000
+v -1.21750 3.94500 0.10000
+v -1.78250 1.53500 0.10000
+v -1.98250 0.64000 0.10000
+v -1.98250 0.54500 0.10000
+v -1.92750 0.54500 0.10000
+v -1.31250 0.79500 0.10000
+v -0.84250 2.77000 0.10000
+v -0.05250 0.85000 0.10000
+v -0.00750 0.84000 0.10000
+v 0.35250 1.03000 0.10000
+v 0.89750 3.14500 0.10000
+v 1.36750 4.70000 0.10000
+v 1.37250 4.75000 0.10000
+v 1.33750 4.76500 0.10000
+v 0.62484 4.44254 0.15000
+v 0.08200 2.24246 0.15000
+v -0.66267 4.13256 0.15000
+v -0.68346 4.13416 0.15000
+v -1.17442 3.90972 0.15000
+v -1.73376 1.52384 0.15000
+v -1.93250 0.63448 0.15000
+v -1.93250 0.59500 0.15000
+v -1.93727 0.59500 0.15000
+v -1.35518 0.83162 0.15000
+v -0.85368 2.91242 0.15000
+v -0.01619 0.89315 0.15000
+v -0.01459 0.89280 0.15000
+v 0.30960 1.06390 0.15000
+v 0.84934 3.15848 0.15000
+v 1.31823 4.70981 0.15000
+v 1.31910 4.71849 0.15000
+v 1.33632 4.71111 0.15000
+v 2.32948 4.35264 -0.15000
+v 2.09340 4.23701 -0.15000
+v 1.88028 4.08201 -0.15000
+v 1.63082 3.82767 -0.15000
+v 1.39999 3.50843 -0.15000
+v 1.21315 3.15933 -0.15000
+v 1.06535 2.76520 -0.15000
+v 0.98691 2.44655 -0.15000
+v 0.94766 2.04423 -0.15000
+v 0.96704 1.75351 -0.15000
+v 1.04391 1.47967 -0.15000
+v 1.17620 1.25289 -0.15000
+v 1.36200 1.09961 -0.15000
+v 1.55884 1.03552 -0.15000
+v 1.77241 1.04945 -0.15000
+v 2.14299 1.17948 -0.15000
+v 1.82010 0.08165 -0.15000
+v 1.81705 0.09005 -0.15000
+v 2.36726 0.30304 -0.15000
+v 3.25393 3.04143 -0.15000
+v 3.26001 3.03687 -0.15000
+v 3.03824 2.99614 -0.15000
+v 2.09096 2.75324 -0.15000
+v 1.93513 2.30307 -0.15000
+v 1.93656 2.30248 -0.15000
+v 2.48640 2.43735 -0.15000
+v 2.53303 2.35964 -0.15000
+v 2.42093 2.07380 -0.15000
+v 2.19114 1.80745 -0.15000
+v 2.02124 1.69064 -0.15000
+v 1.88146 1.63473 -0.15000
+v 1.67419 1.64049 -0.15000
+v 1.54892 1.74190 -0.15000
+v 1.50454 1.81798 -0.15000
+v 1.45687 2.12523 -0.15000
+v 1.52393 2.53277 -0.15000
+v 1.65717 2.89661 -0.15000
+v 1.90751 3.31556 -0.15000
+v 2.17509 3.59342 -0.15000
+v 2.30863 3.68424 -0.15000
+v 2.46507 3.74897 -0.15000
+v 2.57762 3.76082 -0.15000
+v 2.69254 3.72453 -0.15000
+v 2.78598 3.64276 -0.15000
+v 2.85021 3.54000 -0.15000
+v 2.83360 3.54000 -0.15000
+v 3.26550 4.07519 -0.15000
+v 3.26412 4.08765 -0.15000
+v 3.19910 4.18735 -0.15000
+v 3.04034 4.33210 -0.15000
+v 2.86129 4.40555 -0.15000
+v 2.61195 4.41967 -0.15000
+v 2.31250 4.40000 -0.10000
+v 2.06750 4.28000 -0.10000
+v 1.84750 4.12000 -0.10000
+v 1.59250 3.86000 -0.10000
+v 1.35750 3.53500 -0.10000
+v 1.16750 3.18000 -0.10000
+v 1.01750 2.78000 -0.10000
+v 0.93750 2.45500 -0.10000
+v 0.89750 2.04500 -0.10000
+v 0.91750 1.74500 -0.10000
+v 0.99750 1.46000 -0.10000
+v 1.13750 1.22000 -0.10000
+v 1.33750 1.05500 -0.10000
+v 1.55250 0.98500 -0.10000
+v 1.78250 1.00000 -0.10000
+v 2.06750 1.10000 -0.10000
+v 1.76750 0.08000 -0.10000
+v 1.78750 0.02500 -0.10000
+v 2.40750 0.26500 -0.10000
+v 3.31250 3.06000 -0.10000
+v 3.27250 3.09000 -0.10000
+v 3.02750 3.04500 -0.10000
+v 2.05250 2.79500 -0.10000
+v 1.87250 2.27500 -0.10000
+v 1.93250 2.25000 -0.10000
+v 2.46250 2.38000 -0.10000
+v 2.47750 2.35500 -0.10000
+v 2.37750 2.10000 -0.10000
+v 2.15750 1.84500 -0.10000
+v 1.99750 1.73500 -0.10000
+v 1.87250 1.68500 -0.10000
+v 1.69250 1.69000 -0.10000
+v 1.58750 1.77500 -0.10000
+v 1.55250 1.83500 -0.10000
+v 1.50750 2.12500 -0.10000
+v 1.57250 2.52000 -0.10000
+v 1.70250 2.87500 -0.10000
+v 1.94750 3.28500 -0.10000
+v 2.20750 3.55500 -0.10000
+v 2.33250 3.64000 -0.10000
+v 2.47750 3.70000 -0.10000
+v 2.57250 3.71000 -0.10000
+v 2.66750 3.68000 -0.10000
+v 2.74750 3.61000 -0.10000
+v 2.82250 3.49000 -0.10000
+v 2.85750 3.49000 -0.10000
+v 3.31750 4.06000 -0.10000
+v 3.31250 4.10500 -0.10000
+v 3.23750 4.22000 -0.10000
+v 3.06750 4.37500 -0.10000
+v 2.87250 4.45500 -0.10000
+v 2.60750 4.47000 -0.10000
+v 2.31250 4.40000 0.10000
+v 2.06750 4.28000 0.10000
+v 1.84750 4.12000 0.10000
+v 1.59250 3.86000 0.10000
+v 1.35750 3.53500 0.10000
+v 1.16750 3.18000 0.10000
+v 1.01750 2.78000 0.10000
+v 0.93750 2.45500 0.10000
+v 0.89750 2.04500 0.10000
+v 0.91750 1.74500 0.10000
+v 0.99750 1.46000 0.10000
+v 1.13750 1.22000 0.10000
+v 1.33750 1.05500 0.10000
+v 1.55250 0.98500 0.10000
+v 1.78250 1.00000 0.10000
+v 2.06750 1.10000 0.10000
+v 1.76750 0.08000 0.10000
+v 1.78750 0.02500 0.10000
+v 2.40750 0.26500 0.10000
+v 3.31250 3.06000 0.10000
+v 3.27250 3.09000 0.10000
+v 3.02750 3.04500 0.10000
+v 2.05250 2.79500 0.10000
+v 1.87250 2.27500 0.10000
+v 1.93250 2.25000 0.10000
+v 2.46250 2.38000 0.10000
+v 2.47750 2.35500 0.10000
+v 2.37750 2.10000 0.10000
+v 2.15750 1.84500 0.10000
+v 1.99750 1.73500 0.10000
+v 1.87250 1.68500 0.10000
+v 1.69250 1.69000 0.10000
+v 1.58750 1.77500 0.10000
+v 1.55250 1.83500 0.10000
+v 1.50750 2.12500 0.10000
+v 1.57250 2.52000 0.10000
+v 1.70250 2.87500 0.10000
+v 1.94750 3.28500 0.10000
+v 2.20750 3.55500 0.10000
+v 2.33250 3.64000 0.10000
+v 2.47750 3.70000 0.10000
+v 2.57250 3.71000 0.10000
+v 2.66750 3.68000 0.10000
+v 2.74750 3.61000 0.10000
+v 2.82250 3.49000 0.10000
+v 2.85750 3.49000 0.10000
+v 3.31750 4.06000 0.10000
+v 3.31250 4.10500 0.10000
+v 3.23750 4.22000 0.10000
+v 3.06750 4.37500 0.10000
+v 2.87250 4.45500 0.10000
+v 2.60750 4.47000 0.10000
+v 2.32948 4.35264 0.15000
+v 2.09340 4.23701 0.15000
+v 1.88028 4.08201 0.15000
+v 1.63082 3.82767 0.15000
+v 1.39999 3.50843 0.15000
+v 1.21315 3.15933 0.15000
+v 1.06535 2.76520 0.15000
+v 0.98691 2.44655 0.15000
+v 0.94766 2.04423 0.15000
+v 0.96704 1.75351 0.15000
+v 1.04391 1.47967 0.15000
+v 1.17620 1.25289 0.15000
+v 1.36200 1.09961 0.15000
+v 1.55884 1.03552 0.15000
+v 1.77241 1.04945 0.15000
+v 2.14299 1.17948 0.15000
+v 1.82010 0.08165 0.15000
+v 1.81705 0.09005 0.15000
+v 2.36726 0.30304 0.15000
+v 3.25393 3.04143 0.15000
+v 3.26001 3.03687 0.15000
+v 3.03824 2.99614 0.15000
+v 2.09096 2.75324 0.15000
+v 1.93513 2.30307 0.15000
+v 1.93656 2.30248 0.15000
+v 2.48640 2.43735 0.15000
+v 2.53303 2.35964 0.15000
+v 2.42093 2.07380 0.15000
+v 2.19114 1.80745 0.15000
+v 2.02124 1.69064 0.15000
+v 1.88146 1.63473 0.15000
+v 1.67419 1.64049 0.15000
+v 1.54892 1.74190 0.15000
+v 1.50454 1.81798 0.15000
+v 1.45687 2.12523 0.15000
+v 1.52393 2.53277 0.15000
+v 1.65717 2.89661 0.15000
+v 1.90751 3.31556 0.15000
+v 2.17509 3.59342 0.15000
+v 2.30863 3.68424 0.15000
+v 2.46507 3.74897 0.15000
+v 2.57762 3.76082 0.15000
+v 2.69254 3.72453 0.15000
+v 2.78598 3.64276 0.15000
+v 2.85021 3.54000 0.15000
+v 2.83360 3.54000 0.15000
+v 3.26550 4.07519 0.15000
+v 3.26412 4.08765 0.15000
+v 3.19910 4.18735 0.15000
+v 3.04034 4.33210 0.15000
+v 2.86129 4.40555 0.15000
+v 2.61195 4.41967 0.15000
+v 4.42134 4.26192 -0.15000
+v 3.68779 4.02062 -0.15000
+v 3.51819 3.46274 -0.15000
+v 3.50554 3.46837 -0.15000
+v 3.69627 3.52831 -0.15000
+v 3.74725 3.46033 -0.15000
+v 3.10590 1.14743 -0.15000
+v 2.99540 0.69101 -0.15000
+v 2.98360 0.71460 -0.15000
+v 5.23877 1.36663 -0.15000
+v 5.32232 1.41040 -0.15000
+v 5.54853 2.01833 -0.15000
+v 5.55375 2.00657 -0.15000
+v 4.73027 1.80665 -0.15000
+v 3.85993 1.55798 -0.15000
+v 3.79723 1.63322 -0.15000
+v 4.02196 2.43048 -0.15000
+v 4.99579 2.70656 -0.15000
+v 5.19943 3.18789 -0.15000
+v 5.20030 3.18500 -0.15000
+v 5.19334 3.18500 -0.15000
+v 4.16568 2.94161 -0.15000
+v 4.38211 3.69034 -0.15000
+v 5.66044 4.06131 -0.15000
+v 5.88838 4.61489 -0.15000
+v 5.88417 4.62500 -0.15000
+v 5.88859 4.62500 -0.15000
+v 4.40750 4.31000 -0.10000
+v 3.64750 4.06000 -0.10000
+v 3.45750 3.43500 -0.10000
+v 3.50250 3.41500 -0.10000
+v 3.67750 3.47000 -0.10000
+v 3.69250 3.45000 -0.10000
+v 3.05750 1.16000 -0.10000
+v 2.94250 0.68500 -0.10000
+v 2.95750 0.65500 -0.10000
+v 5.25750 1.32000 -0.10000
+v 5.36250 1.37500 -0.10000
+v 5.60250 2.02000 -0.10000
+v 5.58250 2.06500 -0.10000
+v 4.71750 1.85500 -0.10000
+v 3.87750 1.61500 -0.10000
+v 3.85250 1.64500 -0.10000
+v 4.06250 2.39000 -0.10000
+v 5.03250 2.66500 -0.10000
+v 5.25250 3.18500 -0.10000
+v 5.23750 3.23500 -0.10000
+v 5.18750 3.23500 -0.10000
+v 4.23750 3.01000 -0.10000
+v 4.42250 3.65000 -0.10000
+v 5.69750 4.02000 -0.10000
+v 5.94250 4.61500 -0.10000
+v 5.91750 4.67500 -0.10000
+v 5.88250 4.67500 -0.10000
+v 4.40750 4.31000 0.10000
+v 3.64750 4.06000 0.10000
+v 3.45750 3.43500 0.10000
+v 3.50250 3.41500 0.10000
+v 3.67750 3.47000 0.10000
+v 3.69250 3.45000 0.10000
+v 3.05750 1.16000 0.10000
+v 2.94250 0.68500 0.10000
+v 2.95750 0.65500 0.10000
+v 5.25750 1.32000 0.10000
+v 5.36250 1.37500 0.10000
+v 5.60250 2.02000 0.10000
+v 5.58250 2.06500 0.10000
+v 4.71750 1.85500 0.10000
+v 3.87750 1.61500 0.10000
+v 3.85250 1.64500 0.10000
+v 4.06250 2.39000 0.10000
+v 5.03250 2.66500 0.10000
+v 5.25250 3.18500 0.10000
+v 5.23750 3.23500 0.10000
+v 5.18750 3.23500 0.10000
+v 4.23750 3.01000 0.10000
+v 4.42250 3.65000 0.10000
+v 5.69750 4.02000 0.10000
+v 5.94250 4.61500 0.10000
+v 5.91750 4.67500 0.10000
+v 5.88250 4.67500 0.10000
+v 4.42134 4.26192 0.15000
+v 3.68779 4.02062 0.15000
+v 3.51819 3.46274 0.15000
+v 3.50554 3.46837 0.15000
+v 3.69627 3.52831 0.15000
+v 3.74725 3.46033 0.15000
+v 3.10590 1.14743 0.15000
+v 2.99540 0.69101 0.15000
+v 2.98360 0.71460 0.15000
+v 5.23877 1.36663 0.15000
+v 5.32232 1.41040 0.15000
+v 5.54853 2.01833 0.15000
+v 5.55375 2.00657 0.15000
+v 4.73027 1.80665 0.15000
+v 3.85993 1.55798 0.15000
+v 3.79723 1.63322 0.15000
+v 4.02196 2.43048 0.15000
+v 4.99579 2.70656 0.15000
+v 5.19943 3.18789 0.15000
+v 5.20030 3.18500 0.15000
+v 5.19334 3.18500 0.15000
+v 4.16568 2.94161 0.15000
+v 4.38211 3.69034 0.15000
+v 5.66044 4.06131 0.15000
+v 5.88838 4.61489 0.15000
+v 5.88417 4.62500 0.15000
+v 5.88859 4.62500 0.15000
+vn 0.0000 0.0000 1.0000
+vn 0.0000 0.0000 -1.0000
+vn -0.3890 0.5905 -0.7071
+vn -0.4478 0.5473 -0.7071
+vn -0.5000 0.5000 -0.7071
+vn -0.5478 0.4472 -0.7071
+vn -0.6957 0.1265 -0.7071
+vn -0.4778 -0.5212 -0.7071
+vn -0.3850 -0.5931 -0.7071
+vn -0.4369 -0.5560 -0.7071
+vn -0.4147 0.5727 -0.7071
+vn -0.3880 0.5912 -0.7071
+vn -0.6975 0.1163 -0.7071
+vn -0.6776 -0.2023 -0.7071
+vn -0.6445 -0.2910 -0.7071
+vn 0.1715 -0.6860 -0.7071
+vn 0.4511 -0.5445 -0.7071
+vn 0.4309 -0.5606 -0.7071
+vn 0.4752 -0.5237 -0.7071
+vn 0.5347 -0.4627 -0.7071
+vn 0.7028 0.0781 -0.7071
+vn 0.5000 0.5000 -0.7071
+vn 0.4341 0.5582 -0.7071
+vn 0.3692 0.6031 -0.7071
+vn 0.4712 -0.5273 -0.7071
+vn 0.3938 -0.5873 -0.7071
+vn 0.3288 -0.6260 -0.7071
+vn 0.6780 0.2009 -0.7071
+vn 0.6544 0.2677 -0.7071
+vn 0.2483 0.6621 -0.7071
+vn -0.3104 0.6353 -0.7071
+vn -0.5501 0.8351 0.0000
+vn -0.6332 0.7740 0.0000
+vn -0.7071 0.7071 0.0000
+vn -0.7747 0.6324 0.0000
+vn -0.9839 0.1789 0.0000
+vn -0.6757 -0.7372 0.0000
+vn -0.5444 -0.8388 0.0000
+vn -0.6178 -0.7863 0.0000
+vn -0.5865 0.8099 0.0000
+vn -0.5487 0.8360 0.0000
+vn -0.9864 0.1644 0.0000
+vn -0.9582 -0.2860 0.0000
+vn -0.9114 -0.4116 0.0000
+vn 0.2425 -0.9701 0.0000
+vn 0.6380 -0.7700 0.0000
+vn 0.6094 -0.7929 0.0000
+vn 0.6720 -0.7406 0.0000
+vn 0.7562 -0.6544 0.0000
+vn 0.9939 0.1104 0.0000
+vn 0.7071 0.7071 0.0000
+vn 0.6139 0.7894 0.0000
+vn 0.5221 0.8529 0.0000
+vn 0.6663 -0.7457 0.0000
+vn 0.5570 -0.8305 0.0000
+vn 0.4650 -0.8853 0.0000
+vn 0.9588 0.2841 0.0000
+vn 0.9255 0.3786 0.0000
+vn 0.3511 0.9363 0.0000
+vn -0.4390 0.8985 0.0000
+vn -0.3890 0.5905 0.7071
+vn -0.4478 0.5473 0.7071
+vn -0.5000 0.5000 0.7071
+vn -0.5478 0.4472 0.7071
+vn -0.6957 0.1265 0.7071
+vn -0.4778 -0.5212 0.7071
+vn -0.3850 -0.5931 0.7071
+vn -0.4369 -0.5560 0.7071
+vn -0.4147 0.5727 0.7071
+vn -0.3880 0.5912 0.7071
+vn -0.6975 0.1163 0.7071
+vn -0.6776 -0.2023 0.7071
+vn -0.6445 -0.2910 0.7071
+vn 0.1715 -0.6860 0.7071
+vn 0.4511 -0.5445 0.7071
+vn 0.4309 -0.5606 0.7071
+vn 0.4752 -0.5237 0.7071
+vn 0.5347 -0.4627 0.7071
+vn 0.7028 0.0781 0.7071
+vn 0.5000 0.5000 0.7071
+vn 0.4341 0.5582 0.7071
+vn 0.3692 0.6031 0.7071
+vn 0.4712 -0.5273 0.7071
+vn 0.3938 -0.5873 0.7071
+vn 0.3288 -0.6260 0.7071
+vn 0.6780 0.2009 0.7071
+vn 0.6544 0.2677 0.7071
+vn 0.2483 0.6621 0.7071
+vn -0.3104 0.6353 0.7071
+vn -0.4527 0.5432 -0.7071
+vn -0.6897 0.1562 -0.7071
+vn -0.6950 0.1303 -0.7071
+vn -0.6462 -0.2872 -0.7071
+vn 0.2515 -0.6609 -0.7071
+vn 0.3317 -0.6245 -0.7071
+vn 0.6886 -0.1606 -0.7071
+vn 0.6848 -0.1762 -0.7071
+vn 0.1158 0.6976 -0.7070
+vn -0.2473 0.6625 -0.7071
+vn -0.6402 0.7682 0.0000
+vn -0.9753 0.2209 0.0000
+vn -0.9829 0.1843 0.0000
+vn -0.9138 -0.4061 0.0000
+vn 0.3557 -0.9346 0.0000
+vn 0.4692 -0.8831 0.0000
+vn 0.9739 -0.2271 0.0000
+vn 0.9684 -0.2492 0.0000
+vn 0.1644 0.9864 0.0000
+vn -0.3497 0.9369 0.0000
+vn -0.4527 0.5432 0.7071
+vn -0.6897 0.1562 0.7071
+vn -0.6950 0.1303 0.7071
+vn -0.6462 -0.2872 0.7071
+vn 0.2515 -0.6609 0.7071
+vn 0.3317 -0.6245 0.7071
+vn 0.6886 -0.1606 0.7071
+vn 0.6848 -0.1762 0.7071
+vn 0.1158 0.6976 0.7070
+vn -0.2473 0.6625 0.7071
+vn -0.5433 0.4526 -0.7071
+vn -0.6883 0.1622 -0.7071
+vn -0.2481 -0.6622 -0.7071
+vn 0.2336 -0.6674 -0.7071
+vn 0.2672 -0.6547 -0.7071
+vn 0.6674 -0.2336 -0.7071
+vn 0.7071 0.0000 -0.7071
+vn 0.2240 0.6706 -0.7071
+vn -0.2499 0.6615 -0.7071
+vn -0.7682 0.6402 0.0000
+vn -0.9733 0.2294 0.0000
+vn -0.3511 -0.9363 0.0000
+vn 0.3304 -0.9439 0.0000
+vn 0.3779 -0.9258 0.0000
+vn 0.9439 -0.3304 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.3162 0.9487 0.0000
+vn -0.3534 0.9355 0.0000
+vn -0.5433 0.4526 0.7071
+vn -0.6883 0.1622 0.7071
+vn -0.2481 -0.6622 0.7071
+vn 0.2336 -0.6674 0.7071
+vn 0.2672 -0.6547 0.7071
+vn 0.6674 -0.2336 0.7071
+vn 0.7071 0.0000 0.7071
+vn 0.2240 0.6706 0.7071
+vn -0.2499 0.6615 0.7071
+vn -0.7105 0.1742 -0.6818
+vn 0.6809 0.2669 -0.6819
+vn 0.0542 0.7050 -0.7071
+vn -0.2940 0.6431 -0.7071
+vn -0.6885 0.1614 -0.7071
+vn -0.6901 0.1542 -0.7071
+vn -0.7071 0.0000 -0.7071
+vn 0.0000 -0.7071 -0.7071
+vn 0.2663 -0.6551 -0.7071
+vn 0.7083 -0.1697 -0.6852
+vn -0.6731 -0.2781 -0.6852
+vn -0.1533 -0.6903 -0.7071
+vn 0.3300 -0.6253 -0.7071
+vn 0.6847 -0.1764 -0.7071
+vn 0.6769 -0.2046 -0.7071
+vn 0.7036 -0.0704 -0.7071
+vn 0.2785 0.6499 -0.7071
+vn -0.2497 0.6615 -0.7071
+vn -0.9716 0.2365 0.0000
+vn 0.9317 0.3633 0.0000
+vn 0.0767 0.9971 0.0000
+vn -0.4158 0.9095 0.0000
+vn -0.9736 0.2283 0.0000
+vn -0.9759 0.2181 0.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.3766 -0.9264 0.0000
+vn 0.9728 -0.2315 0.0000
+vn -0.9248 -0.3805 0.0000
+vn -0.2169 -0.9762 0.0000
+vn 0.4668 -0.8844 0.0000
+vn 0.9684 -0.2495 0.0000
+vn 0.9572 -0.2893 0.0000
+vn 0.9950 -0.0995 0.0000
+vn 0.3939 0.9191 0.0000
+vn -0.3532 0.9356 0.0000
+vn -0.7105 0.1742 0.6818
+vn 0.6809 0.2669 0.6819
+vn 0.0542 0.7050 0.7071
+vn -0.2940 0.6431 0.7071
+vn -0.6885 0.1614 0.7071
+vn -0.6901 0.1542 0.7071
+vn -0.7071 0.0000 0.7071
+vn 0.0000 -0.7071 0.7071
+vn 0.2663 -0.6551 0.7071
+vn 0.7083 -0.1697 0.6852
+vn -0.6731 -0.2781 0.6852
+vn -0.1533 -0.6903 0.7071
+vn 0.3300 -0.6253 0.7071
+vn 0.6847 -0.1764 0.7071
+vn 0.6769 -0.2046 0.7071
+vn 0.7036 -0.0704 0.7071
+vn 0.2785 0.6499 0.7071
+vn -0.2497 0.6615 0.7071
+vn -0.3110 0.6350 -0.7071
+vn -0.4159 0.5718 -0.7071
+vn -0.5048 0.4951 -0.7071
+vn -0.5730 0.4143 -0.7071
+vn -0.6234 0.3337 -0.7071
+vn -0.6621 0.2483 -0.7071
+vn -0.6866 0.1690 -0.7071
+vn -0.7038 0.0687 -0.7071
+vn -0.7056 -0.0470 -0.7071
+vn -0.6808 -0.1911 -0.7071
+vn -0.6108 -0.3563 -0.7071
+vn -0.4500 -0.5454 -0.7071
+vn -0.2189 -0.6724 -0.7071
+vn 0.0460 -0.7056 -0.7071
+vn 0.2341 -0.6672 -0.7071
+vn -0.6784 0.1995 -0.7071
+vn -0.6645 -0.2417 -0.7071
+vn 0.2553 -0.6594 -0.7071
+vn 0.6727 -0.2178 -0.7071
+vn 0.4243 0.5657 -0.7071
+vn -0.1277 0.6955 -0.7071
+vn -0.1756 0.6849 -0.7071
+vn -0.6682 0.2313 -0.7071
+vn -0.2719 -0.6527 -0.7071
+vn 0.1684 -0.6867 -0.7071
+vn -0.6063 -0.3638 -0.7071
+vn -0.6583 0.2582 -0.7071
+vn -0.5354 0.4619 -0.7071
+vn -0.4006 0.5827 -0.7071
+vn -0.2626 0.6565 -0.7071
+vn 0.0196 0.7068 -0.7071
+vn 0.4449 0.5496 -0.7071
+vn 0.6108 0.3563 -0.7071
+vn 0.6988 0.1084 -0.7071
+vn 0.6977 -0.1148 -0.7071
+vn 0.6640 -0.2432 -0.7071
+vn 0.6070 -0.3627 -0.7071
+vn 0.5093 -0.4905 -0.7071
+vn 0.3976 -0.5847 -0.7071
+vn 0.2703 -0.6534 -0.7071
+vn 0.0740 -0.7032 -0.7071
+vn -0.2129 -0.6743 -0.7071
+vn -0.4657 -0.5322 -0.7071
+vn -0.5996 -0.3748 -0.7071
+vn 0.5503 -0.4441 -0.7071
+vn 0.7028 0.0780 -0.7071
+vn 0.5923 0.3863 -0.7071
+vn 0.4764 0.5225 -0.7071
+vn 0.2684 0.6542 -0.7071
+vn 0.0400 0.7060 -0.7071
+vn -0.1633 0.6880 -0.7071
+vn -0.4399 0.8981 0.0000
+vn -0.5882 0.8087 0.0000
+vn -0.7139 0.7002 0.0000
+vn -0.8104 0.5859 0.0000
+vn -0.8817 0.4719 0.0000
+vn -0.9363 0.3511 0.0000
+vn -0.9710 0.2390 0.0000
+vn -0.9953 0.0971 0.0000
+vn -0.9978 -0.0665 0.0000
+vn -0.9628 -0.2703 0.0000
+vn -0.8638 -0.5039 0.0000
+vn -0.6364 -0.7714 0.0000
+vn -0.3096 -0.9509 0.0000
+vn 0.0651 -0.9979 0.0000
+vn 0.3311 -0.9436 0.0000
+vn -0.9594 0.2822 0.0000
+vn -0.9398 -0.3417 0.0000
+vn 0.3610 -0.9326 0.0000
+vn 0.9514 -0.3080 0.0000
+vn 0.6000 0.8000 0.0000
+vn -0.1807 0.9835 0.0000
+vn -0.2484 0.9687 0.0000
+vn -0.9450 0.3271 0.0000
+vn -0.3846 -0.9231 0.0000
+vn 0.2382 -0.9712 0.0000
+vn -0.8575 -0.5145 0.0000
+vn -0.9310 0.3651 0.0000
+vn -0.7572 0.6532 0.0000
+vn -0.5665 0.8240 0.0000
+vn -0.3714 0.9285 0.0000
+vn 0.0278 0.9996 0.0000
+vn 0.6292 0.7772 0.0000
+vn 0.8638 0.5039 0.0000
+vn 0.9882 0.1533 0.0000
+vn 0.9867 -0.1624 0.0000
+vn 0.9390 -0.3439 0.0000
+vn 0.8584 -0.5130 0.0000
+vn 0.7203 -0.6936 0.0000
+vn 0.5623 -0.8269 0.0000
+vn 0.3824 -0.9240 0.0000
+vn 0.1047 -0.9945 0.0000
+vn -0.3011 -0.9536 0.0000
+vn -0.6585 -0.7526 0.0000
+vn -0.8480 -0.5300 0.0000
+vn 0.7782 -0.6280 0.0000
+vn 0.8376 0.5463 0.0000
+vn 0.6738 0.7390 0.0000
+vn 0.3796 0.9252 0.0000
+vn 0.0565 0.9984 0.0000
+vn -0.2309 0.9730 0.0000
+vn -0.3110 0.6350 0.7071
+vn -0.4159 0.5718 0.7071
+vn -0.5048 0.4951 0.7071
+vn -0.5730 0.4143 0.7071
+vn -0.6234 0.3337 0.7071
+vn -0.6621 0.2483 0.7071
+vn -0.6866 0.1690 0.7071
+vn -0.7038 0.0687 0.7071
+vn -0.7056 -0.0470 0.7071
+vn -0.6808 -0.1911 0.7071
+vn -0.6108 -0.3563 0.7071
+vn -0.4500 -0.5454 0.7071
+vn -0.2189 -0.6724 0.7071
+vn 0.0460 -0.7056 0.7071
+vn 0.2341 -0.6672 0.7071
+vn -0.6784 0.1995 0.7071
+vn -0.6645 -0.2417 0.7071
+vn 0.2553 -0.6594 0.7071
+vn 0.6727 -0.2178 0.7071
+vn 0.4243 0.5657 0.7071
+vn -0.1277 0.6955 0.7071
+vn -0.1756 0.6849 0.7071
+vn -0.6682 0.2313 0.7071
+vn -0.2719 -0.6527 0.7071
+vn 0.1684 -0.6867 0.7071
+vn -0.6063 -0.3638 0.7071
+vn -0.6583 0.2582 0.7071
+vn -0.5354 0.4619 0.7071
+vn -0.4006 0.5827 0.7071
+vn -0.2626 0.6565 0.7071
+vn 0.0196 0.7068 0.7071
+vn 0.4449 0.5496 0.7071
+vn 0.6108 0.3563 0.7071
+vn 0.6988 0.1084 0.7071
+vn 0.6977 -0.1148 0.7071
+vn 0.6640 -0.2432 0.7071
+vn 0.6070 -0.3627 0.7071
+vn 0.5093 -0.4905 0.7071
+vn 0.3976 -0.5847 0.7071
+vn 0.2703 -0.6534 0.7071
+vn 0.0740 -0.7032 0.7071
+vn -0.2129 -0.6743 0.7071
+vn -0.4657 -0.5322 0.7071
+vn -0.5996 -0.3748 0.7071
+vn 0.5503 -0.4441 0.7071
+vn 0.7028 0.0780 0.7071
+vn 0.5923 0.3863 0.7071
+vn 0.4764 0.5225 0.7071
+vn 0.2684 0.6542 0.7071
+vn 0.0400 0.7060 0.7071
+vn -0.1633 0.6880 0.7071
+vn -0.2210 0.6717 -0.7071
+vn -0.6765 0.2057 -0.7071
+vn -0.2871 -0.6462 -0.7071
+vn 0.2120 -0.6746 -0.7071
+vn -0.5657 -0.4242 -0.7071
+vn -0.6814 0.1889 -0.7071
+vn -0.6873 0.1664 -0.7071
+vn -0.6327 -0.3159 -0.7071
+vn 0.1964 -0.6793 -0.7071
+vn 0.3281 -0.6264 -0.7071
+vn 0.6627 -0.2466 -0.7071
+vn 0.6461 0.2873 -0.7071
+vn -0.1668 0.6872 -0.7071
+vn -0.1943 0.6799 -0.7071
+vn 0.5432 0.4527 -0.7071
+vn 0.6806 -0.1918 -0.7071
+vn 0.1929 -0.6803 -0.7071
+vn 0.6512 -0.2755 -0.7071
+vn 0.6773 0.2031 -0.7071
+vn 0.0000 0.7071 -0.7071
+vn -0.1630 0.6881 -0.7071
+vn 0.6793 -0.1964 -0.7071
+vn 0.1971 -0.6791 -0.7071
+vn 0.6539 -0.2692 -0.7071
+vn 0.6527 0.2720 -0.7071
+vn -0.1699 0.6864 -0.7071
+vn -0.3125 0.9499 0.0000
+vn -0.9568 0.2909 0.0000
+vn -0.4061 -0.9138 0.0000
+vn 0.2998 -0.9540 0.0000
+vn -0.8000 -0.6000 0.0000
+vn -0.9636 0.2672 0.0000
+vn -0.9719 0.2353 0.0000
+vn -0.8944 -0.4472 0.0000
+vn 0.2778 -0.9607 0.0000
+vn 0.4640 -0.8858 0.0000
+vn 0.9372 -0.3487 0.0000
+vn 0.9138 0.4061 0.0000
+vn -0.2359 0.9718 0.0000
+vn -0.2747 0.9615 0.0000
+vn 0.7682 0.6402 0.0000
+vn 0.9625 -0.2713 0.0000
+vn 0.2728 -0.9621 0.0000
+vn 0.9210 -0.3896 0.0000
+vn 0.9578 0.2873 0.0000
+vn 0.0000 1.0000 0.0000
+vn -0.2305 0.9731 0.0000
+vn 0.9607 -0.2777 0.0000
+vn 0.2787 -0.9604 0.0000
+vn 0.9247 -0.3807 0.0000
+vn 0.9231 0.3846 0.0000
+vn -0.2402 0.9707 0.0000
+vn -0.2210 0.6717 0.7071
+vn -0.6765 0.2057 0.7071
+vn -0.2871 -0.6462 0.7071
+vn 0.2120 -0.6746 0.7071
+vn -0.5657 -0.4242 0.7071
+vn -0.6814 0.1889 0.7071
+vn -0.6873 0.1664 0.7071
+vn -0.6327 -0.3159 0.7071
+vn 0.1964 -0.6793 0.7071
+vn 0.3281 -0.6264 0.7071
+vn 0.6627 -0.2466 0.7071
+vn 0.6461 0.2873 0.7071
+vn -0.1668 0.6872 0.7071
+vn -0.1943 0.6799 0.7071
+vn 0.5432 0.4527 0.7071
+vn 0.6806 -0.1918 0.7071
+vn 0.1929 -0.6803 0.7071
+vn 0.6512 -0.2755 0.7071
+vn 0.6773 0.2031 0.7071
+vn 0.0000 0.7071 0.7071
+vn -0.1630 0.6881 0.7071
+vn 0.6793 -0.1964 0.7071
+vn 0.1971 -0.6791 0.7071
+vn 0.6539 -0.2692 0.7071
+vn 0.6527 0.2720 0.7071
+vn -0.1699 0.6864 0.7071
+o letter01
+usemtl logo
+f 1//1 29//1 28//1
+f 115//2 116//2 88//2
+f 1//2 28//2 27//2
+f 114//1 115//1 88//1
+f 1//2 27//2 26//2
+f 113//1 114//1 88//1
+f 1//2 26//2 25//2
+f 112//1 113//1 88//1
+f 1//2 25//2 24//2
+f 111//1 112//1 88//1
+f 1//2 24//2 23//2
+f 110//1 111//1 88//1
+f 23//2 22//2 21//2
+f 108//1 109//1 110//1
+f 23//2 21//2 20//2
+f 107//1 108//1 110//1
+f 23//2 20//2 19//2
+f 106//1 107//1 110//1
+f 23//2 19//2 18//2
+f 105//1 106//1 110//1
+f 23//2 18//2 17//2
+f 104//1 105//1 110//1
+f 16//2 15//2 14//2
+f 101//1 102//1 103//1
+f 16//2 14//2 13//2
+f 100//1 101//1 103//1
+f 17//2 16//2 13//2
+f 100//1 103//1 104//1
+f 17//2 13//2 12//2
+f 99//1 100//1 104//1
+f 17//2 12//2 11//2
+f 98//1 99//1 104//1
+f 17//2 11//2 10//2
+f 97//1 98//1 104//1
+f 17//2 10//2 9//2
+f 96//1 97//1 104//1
+f 23//2 17//2 9//2
+f 96//1 104//1 110//1
+f 23//2 9//2 8//2
+f 95//1 96//1 110//1
+f 23//2 8//2 7//2
+f 94//1 95//1 110//1
+f 1//2 23//2 7//2
+f 94//1 110//1 88//1
+f 1//2 7//2 6//2
+f 93//1 94//1 88//1
+f 1//2 6//2 5//2
+f 92//1 93//1 88//1
+f 1//2 5//2 4//2
+f 91//1 92//1 88//1
+f 1//2 4//2 3//2
+f 90//1 91//1 88//1
+f 3//2 2//2 1//2
+f 88//1 89//1 90//1
+f 1//3 2//3 31//3 30//3
+f 2//4 3//4 32//4 31//4
+f 3//5 4//5 33//5 32//5
+f 4//6 5//6 34//6 33//6
+f 5//7 6//7 35//7 34//7
+f 6//8 7//8 36//8 35//8
+f 7//9 8//9 37//9 36//9
+f 8//10 9//10 38//10 37//10
+f 9//11 10//11 39//11 38//11
+f 10//12 11//12 40//12 39//12
+f 11//13 12//13 41//13 40//13
+f 12//14 13//14 42//14 41//14
+f 13//15 14//15 43//15 42//15
+f 14//16 15//16 44//16 43//16
+f 15//17 16//17 45//17 44//17
+f 16//18 17//18 46//18 45//18
+f 17//19 18//19 47//19 46//19
+f 18//20 19//20 48//20 47//20
+f 19//21 20//21 49//21 48//21
+f 20//22 21//22 50//22 49//22
+f 21//23 22//23 51//23 50//23
+f 22//24 23//24 52//24 51//24
+f 23//25 24//25 53//25 52//25
+f 24//26 25//26 54//26 53//26
+f 25//27 26//27 55//27 54//27
+f 26//28 27//28 56//28 55//28
+f 27//29 28//29 57//29 56//29
+f 28//30 29//30 58//30 57//30
+f 29//31 1//31 30//31 58//31
+f 30//32 31//32 60//32 59//32
+f 31//33 32//33 61//33 60//33
+f 32//34 33//34 62//34 61//34
+f 33//35 34//35 63//35 62//35
+f 34//36 35//36 64//36 63//36
+f 35//37 36//37 65//37 64//37
+f 36//38 37//38 66//38 65//38
+f 37//39 38//39 67//39 66//39
+f 38//40 39//40 68//40 67//40
+f 39//41 40//41 69//41 68//41
+f 40//42 41//42 70//42 69//42
+f 41//43 42//43 71//43 70//43
+f 42//44 43//44 72//44 71//44
+f 43//45 44//45 73//45 72//45
+f 44//46 45//46 74//46 73//46
+f 45//47 46//47 75//47 74//47
+f 46//48 47//48 76//48 75//48
+f 47//49 48//49 77//49 76//49
+f 48//50 49//50 78//50 77//50
+f 49//51 50//51 79//51 78//51
+f 50//52 51//52 80//52 79//52
+f 51//53 52//53 81//53 80//53
+f 52//54 53//54 82//54 81//54
+f 53//55 54//55 83//55 82//55
+f 54//56 55//56 84//56 83//56
+f 55//57 56//57 85//57 84//57
+f 56//58 57//58 86//58 85//58
+f 57//59 58//59 87//59 86//59
+f 58//60 30//60 59//60 87//60
+f 59//61 60//61 89//61 88//61
+f 60//62 61//62 90//62 89//62
+f 61//63 62//63 91//63 90//63
+f 62//64 63//64 92//64 91//64
+f 63//65 64//65 93//65 92//65
+f 64//66 65//66 94//66 93//66
+f 65//67 66//67 95//67 94//67
+f 66//68 67//68 96//68 95//68
+f 67//69 68//69 97//69 96//69
+f 68//70 69//70 98//70 97//70
+f 69//71 70//71 99//71 98//71
+f 70//72 71//72 100//72 99//72
+f 71//73 72//73 101//73 100//73
+f 72//74 73//74 102//74 101//74
+f 73//75 74//75 103//75 102//75
+f 74//76 75//76 104//76 103//76
+f 75//77 76//77 105//77 104//77
+f 76//78 77//78 106//78 105//78
+f 77//79 78//79 107//79 106//79
+f 78//80 79//80 108//80 107//80
+f 79//81 80//81 109//81 108//81
+f 80//82 81//82 110//82 109//82
+f 81//83 82//83 111//83 110//83
+f 82//84 83//84 112//84 111//84
+f 83//85 84//85 113//85 112//85
+f 84//86 85//86 114//86 113//86
+f 85//87 86//87 115//87 114//87
+f 86//88 87//88 116//88 115//88
+f 87//89 59//89 88//89 116//89
+o letter02
+usemtl logo
+f 117//1 127//1 126//1
+f 159//2 160//2 150//2
+f 117//1 126//1 125//1
+f 158//2 159//2 150//2
+f 117//2 125//2 124//2
+f 157//1 158//1 150//1
+f 117//2 124//2 123//2
+f 156//1 157//1 150//1
+f 117//2 123//2 122//2
+f 155//1 156//1 150//1
+f 117//2 122//2 121//2
+f 154//1 155//1 150//1
+f 117//1 121//1 120//1
+f 153//2 154//2 150//2
+f 117//2 120//2 119//2
+f 152//1 153//1 150//1
+f 119//2 118//2 117//2
+f 150//1 151//1 152//1
+f 117//90 118//90 129//90 128//90
+f 118//91 119//91 130//91 129//91
+f 119//92 120//92 131//92 130//92
+f 120//93 121//93 132//93 131//93
+f 121//94 122//94 133//94 132//94
+f 122//95 123//95 134//95 133//95
+f 123//96 124//96 135//96 134//96
+f 124//97 125//97 136//97 135//97
+f 125//21 126//21 137//21 136//21
+f 126//98 127//98 138//98 137//98
+f 127//99 117//99 128//99 138//99
+f 128//100 129//100 140//100 139//100
+f 129//101 130//101 141//101 140//101
+f 130//102 131//102 142//102 141//102
+f 131//103 132//103 143//103 142//103
+f 132//104 133//104 144//104 143//104
+f 133//105 134//105 145//105 144//105
+f 134//106 135//106 146//106 145//106
+f 135//107 136//107 147//107 146//107
+f 136//50 137//50 148//50 147//50
+f 137//108 138//108 149//108 148//108
+f 138//109 128//109 139//109 149//109
+f 139//110 140//110 151//110 150//110
+f 140//111 141//111 152//111 151//111
+f 141//112 142//112 153//112 152//112
+f 142//113 143//113 154//113 153//113
+f 143//114 144//114 155//114 154//114
+f 144//115 145//115 156//115 155//115
+f 145//116 146//116 157//116 156//116
+f 146//117 147//117 158//117 157//117
+f 147//79 148//79 159//79 158//79
+f 148//118 149//118 160//118 159//118
+f 149//119 139//119 150//119 160//119
+o letter03
+usemtl logo
+f 161//1 169//1 168//1
+f 195//2 196//2 188//2
+f 161//1 168//1 167//1
+f 194//2 195//2 188//2
+f 161//2 167//2 166//2
+f 193//1 194//1 188//1
+f 161//2 166//2 165//2
+f 192//1 193//1 188//1
+f 161//2 165//2 164//2
+f 191//1 192//1 188//1
+f 161//1 164//1 163//1
+f 190//2 191//2 188//2
+f 163//2 162//2 161//2
+f 188//1 189//1 190//1
+f 161//120 162//120 171//120 170//120
+f 162//121 163//121 172//121 171//121
+f 163//122 164//122 173//122 172//122
+f 164//123 165//123 174//123 173//123
+f 165//124 166//124 175//124 174//124
+f 166//125 167//125 176//125 175//125
+f 167//126 168//126 177//126 176//126
+f 168//127 169//127 178//127 177//127
+f 169//128 161//128 170//128 178//128
+f 170//129 171//129 180//129 179//129
+f 171//130 172//130 181//130 180//130
+f 172//131 173//131 182//131 181//131
+f 173//132 174//132 183//132 182//132
+f 174//133 175//133 184//133 183//133
+f 175//134 176//134 185//134 184//134
+f 176//135 177//135 186//135 185//135
+f 177//136 178//136 187//136 186//136
+f 178//137 170//137 179//137 187//137
+f 179//138 180//138 189//138 188//138
+f 180//139 181//139 190//139 189//139
+f 181//140 182//140 191//140 190//140
+f 182//141 183//141 192//141 191//141
+f 183//142 184//142 193//142 192//142
+f 184//143 185//143 194//143 193//143
+f 185//144 186//144 195//144 194//144
+f 186//145 187//145 196//145 195//145
+f 187//146 179//146 188//146 196//146
+o letter04
+usemtl logo
+f 197//1 214//1 213//1
+f 267//2 268//2 251//2
+f 197//2 213//2 212//2
+f 266//1 267//1 251//1
+f 197//2 212//2 211//2
+f 265//1 266//1 251//1
+f 197//2 211//2 210//2
+f 264//1 265//1 251//1
+f 197//2 210//2 209//2
+f 263//1 264//1 251//1
+f 197//2 209//2 208//2
+f 262//1 263//1 251//1
+f 207//2 206//2 205//2
+f 259//1 260//1 261//1
+f 207//1 205//1 204//1
+f 258//2 259//2 261//2
+f 207//2 204//2 203//2
+f 257//1 258//1 261//1
+f 207//2 203//2 202//2
+f 256//1 257//1 261//1
+f 207//2 202//2 201//2
+f 255//1 256//1 261//1
+f 208//2 207//2 201//2
+f 255//1 261//1 262//1
+f 208//2 201//2 200//2
+f 254//1 255//1 262//1
+f 208//2 200//2 199//2
+f 253//1 254//1 262//1
+f 208//2 199//2 198//2
+f 252//1 253//1 262//1
+f 208//2 198//2 197//2
+f 251//1 252//1 262//1
+f 197//147 198//147 216//147 215//147
+f 198//148 199//148 217//148 216//148
+f 199//149 200//149 218//149 217//149
+f 200//150 201//150 219//150 218//150
+f 201//151 202//151 220//151 219//151
+f 202//152 203//152 221//152 220//152
+f 203//153 204//153 222//153 221//153
+f 204//154 205//154 223//154 222//154
+f 205//155 206//155 224//155 223//155
+f 206//156 207//156 225//156 224//156
+f 207//157 208//157 226//157 225//157
+f 208//158 209//158 227//158 226//158
+f 209//159 210//159 228//159 227//159
+f 210//160 211//160 229//160 228//160
+f 211//161 212//161 230//161 229//161
+f 212//162 213//162 231//162 230//162
+f 213//163 214//163 232//163 231//163
+f 214//164 197//164 215//164 232//164
+f 215//165 216//165 234//165 233//165
+f 216//166 217//166 235//166 234//166
+f 217//167 218//167 236//167 235//167
+f 218//168 219//168 237//168 236//168
+f 219//169 220//169 238//169 237//169
+f 220//170 221//170 239//170 238//170
+f 221//171 222//171 240//171 239//171
+f 222//172 223//172 241//172 240//172
+f 223//173 224//173 242//173 241//173
+f 224//174 225//174 243//174 242//174
+f 225//175 226//175 244//175 243//175
+f 226//176 227//176 245//176 244//176
+f 227//177 228//177 246//177 245//177
+f 228//178 229//178 247//178 246//178
+f 229//179 230//179 248//179 247//179
+f 230//180 231//180 249//180 248//180
+f 231//181 232//181 250//181 249//181
+f 232//182 215//182 233//182 250//182
+f 233//183 234//183 252//183 251//183
+f 234//184 235//184 253//184 252//184
+f 235//185 236//185 254//185 253//185
+f 236//186 237//186 255//186 254//186
+f 237//187 238//187 256//187 255//187
+f 238//188 239//188 257//188 256//188
+f 239//189 240//189 258//189 257//189
+f 240//190 241//190 259//190 258//190
+f 241//191 242//191 260//191 259//191
+f 242//192 243//192 261//192 260//192
+f 243//193 244//193 262//193 261//193
+f 244//194 245//194 263//194 262//194
+f 245//195 246//195 264//195 263//195
+f 246//196 247//196 265//196 264//196
+f 247//197 248//197 266//197 265//197
+f 248//198 249//198 267//198 266//198
+f 249//199 250//199 268//199 267//199
+f 250//200 233//200 251//200 268//200
+o letter05
+usemtl logo
+f 269//2 320//2 319//2
+f 475//1 476//1 425//1
+f 269//2 319//2 318//2
+f 474//1 475//1 425//1
+f 269//2 318//2 317//2
+f 473//1 474//1 425//1
+f 269//2 317//2 316//2
+f 472//1 473//1 425//1
+f 269//2 316//2 315//2
+f 471//1 472//1 425//1
+f 269//2 315//2 314//2
+f 470//1 471//1 425//1
+f 269//1 314//1 313//1
+f 469//2 470//2 425//2
+f 269//1 313//1 312//1
+f 468//2 469//2 425//2
+f 269//2 312//2 311//2
+f 467//1 468//1 425//1
+f 269//2 311//2 310//2
+f 466//1 467//1 425//1
+f 269//2 310//2 309//2
+f 465//1 466//1 425//1
+f 269//2 309//2 308//2
+f 464//1 465//1 425//1
+f 269//2 308//2 307//2
+f 463//1 464//1 425//1
+f 269//2 307//2 306//2
+f 462//1 463//1 425//1
+f 269//2 306//2 305//2
+f 461//1 462//1 425//1
+f 294//2 293//2 292//2
+f 448//1 449//1 450//1
+f 294//2 292//2 291//2
+f 447//1 448//1 450//1
+f 294//2 291//2 290//2
+f 446//1 447//1 450//1
+f 295//2 294//2 290//2
+f 446//1 450//1 451//1
+f 296//2 295//2 290//2
+f 446//1 451//1 452//1
+f 296//2 290//2 289//2
+f 445//1 446//1 452//1
+f 297//2 296//2 289//2
+f 445//1 452//1 453//1
+f 297//1 289//1 288//1
+f 444//2 445//2 453//2
+f 297//2 288//2 287//2
+f 443//1 444//1 453//1
+f 298//2 297//2 287//2
+f 443//1 453//1 454//1
+f 299//2 298//2 287//2
+f 443//1 454//1 455//1
+f 287//1 286//1 285//1
+f 441//2 442//2 443//2
+f 287//2 285//2 284//2
+f 440//1 441//1 443//1
+f 299//1 287//1 284//1
+f 440//2 443//2 455//2
+f 300//2 299//2 284//2
+f 440//1 455//1 456//1
+f 301//2 300//2 284//2
+f 440//1 456//1 457//1
+f 301//2 284//2 283//2
+f 439//1 440//1 457//1
+f 302//2 301//2 283//2
+f 439//1 457//1 458//1
+f 302//2 283//2 282//2
+f 438//1 439//1 458//1
+f 303//2 302//2 282//2
+f 438//1 458//1 459//1
+f 303//2 282//2 281//2
+f 437//1 438//1 459//1
+f 303//2 281//2 280//2
+f 436//1 437//1 459//1
+f 304//2 303//2 280//2
+f 436//1 459//1 460//1
+f 304//2 280//2 279//2
+f 435//1 436//1 460//1
+f 305//2 304//2 279//2
+f 435//1 460//1 461//1
+f 269//1 305//1 279//1
+f 435//2 461//2 425//2
+f 269//2 279//2 278//2
+f 434//1 435//1 425//1
+f 269//2 278//2 277//2
+f 433//1 434//1 425//1
+f 269//2 277//2 276//2
+f 432//1 433//1 425//1
+f 269//2 276//2 275//2
+f 431//1 432//1 425//1
+f 269//2 275//2 274//2
+f 430//1 431//1 425//1
+f 269//2 274//2 273//2
+f 429//1 430//1 425//1
+f 269//2 273//2 272//2
+f 428//1 429//1 425//1
+f 269//2 272//2 271//2
+f 427//1 428//1 425//1
+f 271//2 270//2 269//2
+f 425//1 426//1 427//1
+f 269//201 270//201 322//201 321//201
+f 270//202 271//202 323//202 322//202
+f 271//203 272//203 324//203 323//203
+f 272//204 273//204 325//204 324//204
+f 273//205 274//205 326//205 325//205
+f 274//206 275//206 327//206 326//206
+f 275//207 276//207 328//207 327//207
+f 276//208 277//208 329//208 328//208
+f 277//209 278//209 330//209 329//209
+f 278//210 279//210 331//210 330//210
+f 279//211 280//211 332//211 331//211
+f 280//212 281//212 333//212 332//212
+f 281//213 282//213 334//213 333//213
+f 282//214 283//214 335//214 334//214
+f 283//215 284//215 336//215 335//215
+f 284//216 285//216 337//216 336//216
+f 285//217 286//217 338//217 337//217
+f 286//218 287//218 339//218 338//218
+f 287//219 288//219 340//219 339//219
+f 288//220 289//220 341//220 340//220
+f 289//221 290//221 342//221 341//221
+f 290//222 291//222 343//222 342//222
+f 291//223 292//223 344//223 343//223
+f 292//224 293//224 345//224 344//224
+f 293//225 294//225 346//225 345//225
+f 294//226 295//226 347//226 346//226
+f 295//227 296//227 348//227 347//227
+f 296//228 297//228 349//228 348//228
+f 297//229 298//229 350//229 349//229
+f 298//230 299//230 351//230 350//230
+f 299//231 300//231 352//231 351//231
+f 300//232 301//232 353//232 352//232
+f 301//233 302//233 354//233 353//233
+f 302//234 303//234 355//234 354//234
+f 303//235 304//235 356//235 355//235
+f 304//236 305//236 357//236 356//236
+f 305//237 306//237 358//237 357//237
+f 306//238 307//238 359//238 358//238
+f 307//239 308//239 360//239 359//239
+f 308//240 309//240 361//240 360//240
+f 309//241 310//241 362//241 361//241
+f 310//242 311//242 363//242 362//242
+f 311//243 312//243 364//243 363//243
+f 312//244 313//244 365//244 364//244
+f 313//154 314//154 366//154 365//154
+f 314//245 315//245 367//245 366//245
+f 315//246 316//246 368//246 367//246
+f 316//247 317//247 369//247 368//247
+f 317//248 318//248 370//248 369//248
+f 318//249 319//249 371//249 370//249
+f 319//250 320//250 372//250 371//250
+f 320//251 269//251 321//251 372//251
+f 321//252 322//252 374//252 373//252
+f 322//253 323//253 375//253 374//253
+f 323//254 324//254 376//254 375//254
+f 324//255 325//255 377//255 376//255
+f 325//256 326//256 378//256 377//256
+f 326//257 327//257 379//257 378//257
+f 327//258 328//258 380//258 379//258
+f 328//259 329//259 381//259 380//259
+f 329//260 330//260 382//260 381//260
+f 330//261 331//261 383//261 382//261
+f 331//262 332//262 384//262 383//262
+f 332//263 333//263 385//263 384//263
+f 333//264 334//264 386//264 385//264
+f 334//265 335//265 387//265 386//265
+f 335//266 336//266 388//266 387//266
+f 336//267 337//267 389//267 388//267
+f 337//268 338//268 390//268 389//268
+f 338//269 339//269 391//269 390//269
+f 339//270 340//270 392//270 391//270
+f 340//271 341//271 393//271 392//271
+f 341//272 342//272 394//272 393//272
+f 342//273 343//273 395//273 394//273
+f 343//274 344//274 396//274 395//274
+f 344//275 345//275 397//275 396//275
+f 345//276 346//276 398//276 397//276
+f 346//277 347//277 399//277 398//277
+f 347//278 348//278 400//278 399//278
+f 348//279 349//279 401//279 400//279
+f 349//280 350//280 402//280 401//280
+f 350//281 351//281 403//281 402//281
+f 351//282 352//282 404//282 403//282
+f 352//283 353//283 405//283 404//283
+f 353//284 354//284 406//284 405//284
+f 354//285 355//285 407//285 406//285
+f 355//286 356//286 408//286 407//286
+f 356//287 357//287 409//287 408//287
+f 357//288 358//288 410//288 409//288
+f 358//289 359//289 411//289 410//289
+f 359//290 360//290 412//290 411//290
+f 360//291 361//291 413//291 412//291
+f 361//292 362//292 414//292 413//292
+f 362//293 363//293 415//293 414//293
+f 363//294 364//294 416//294 415//294
+f 364//295 365//295 417//295 416//295
+f 365//172 366//172 418//172 417//172
+f 366//296 367//296 419//296 418//296
+f 367//50 368//50 420//50 419//50
+f 368//297 369//297 421//297 420//297
+f 369//298 370//298 422//298 421//298
+f 370//299 371//299 423//299 422//299
+f 371//300 372//300 424//300 423//300
+f 372//301 321//301 373//301 424//301
+f 373//302 374//302 426//302 425//302
+f 374//303 375//303 427//303 426//303
+f 375//304 376//304 428//304 427//304
+f 376//305 377//305 429//305 428//305
+f 377//306 378//306 430//306 429//306
+f 378//307 379//307 431//307 430//307
+f 379//308 380//308 432//308 431//308
+f 380//309 381//309 433//309 432//309
+f 381//310 382//310 434//310 433//310
+f 382//311 383//311 435//311 434//311
+f 383//312 384//312 436//312 435//312
+f 384//313 385//313 437//313 436//313
+f 385//314 386//314 438//314 437//314
+f 386//315 387//315 439//315 438//315
+f 387//316 388//316 440//316 439//316
+f 388//317 389//317 441//317 440//317
+f 389//318 390//318 442//318 441//318
+f 390//319 391//319 443//319 442//319
+f 391//320 392//320 444//320 443//320
+f 392//321 393//321 445//321 444//321
+f 393//322 394//322 446//322 445//322
+f 394//323 395//323 447//323 446//323
+f 395//324 396//324 448//324 447//324
+f 396//325 397//325 449//325 448//325
+f 397//326 398//326 450//326 449//326
+f 398//327 399//327 451//327 450//327
+f 399//328 400//328 452//328 451//328
+f 400//329 401//329 453//329 452//329
+f 401//330 402//330 454//330 453//330
+f 402//331 403//331 455//331 454//331
+f 403//332 404//332 456//332 455//332
+f 404//333 405//333 457//333 456//333
+f 405//334 406//334 458//334 457//334
+f 406//335 407//335 459//335 458//335
+f 407//336 408//336 460//336 459//336
+f 408//337 409//337 461//337 460//337
+f 409//338 410//338 462//338 461//338
+f 410//339 411//339 463//339 462//339
+f 411//340 412//340 464//340 463//340
+f 412//341 413//341 465//341 464//341
+f 413//342 414//342 466//342 465//342
+f 414//343 415//343 467//343 466//343
+f 415//344 416//344 468//344 467//344
+f 416//345 417//345 469//345 468//345
+f 417//190 418//190 470//190 469//190
+f 418//346 419//346 471//346 470//346
+f 419//347 420//347 472//347 471//347
+f 420//348 421//348 473//348 472//348
+f 421//349 422//349 474//349 473//349
+f 422//350 423//350 475//350 474//350
+f 423//351 424//351 476//351 475//351
+f 424//352 373//352 425//352 476//352
+o letter06
+usemtl logo
+f 477//1 503//1 502//1
+f 583//2 584//2 558//2
+f 477//2 502//2 501//2
+f 582//1 583//1 558//1
+f 477//2 501//2 500//2
+f 581//1 582//1 558//1
+f 477//2 500//2 499//2
+f 580//1 581//1 558//1
+f 477//2 499//2 498//2
+f 579//1 580//1 558//1
+f 498//2 497//2 496//2
+f 577//1 578//1 579//1
+f 498//1 496//1 495//1
+f 576//2 577//2 579//2
+f 498//2 495//2 494//2
+f 575//1 576//1 579//1
+f 498//2 494//2 493//2
+f 574//1 575//1 579//1
+f 477//2 498//2 493//2
+f 574//1 579//1 558//1
+f 477//2 493//2 492//2
+f 573//1 574//1 558//1
+f 491//2 490//2 489//2
+f 570//1 571//1 572//1
+f 491//1 489//1 488//1
+f 569//2 570//2 572//2
+f 491//2 488//2 487//2
+f 568//1 569//1 572//1
+f 491//2 487//2 486//2
+f 567//1 568//1 572//1
+f 491//2 486//2 485//2
+f 566//1 567//1 572//1
+f 492//2 491//2 485//2
+f 566//1 572//1 573//1
+f 477//2 492//2 485//2
+f 566//1 573//1 558//1
+f 477//1 485//1 484//1
+f 565//2 566//2 558//2
+f 477//2 484//2 483//2
+f 564//1 565//1 558//1
+f 477//2 483//2 482//2
+f 563//1 564//1 558//1
+f 477//2 482//2 481//2
+f 562//1 563//1 558//1
+f 477//2 481//2 480//2
+f 561//1 562//1 558//1
+f 477//1 480//1 479//1
+f 560//2 561//2 558//2
+f 479//2 478//2 477//2
+f 558//1 559//1 560//1
+f 477//353 478//353 505//353 504//353
+f 478//354 479//354 506//354 505//354
+f 479//355 480//355 507//355 506//355
+f 480//356 481//356 508//356 507//356
+f 481//357 482//357 509//357 508//357
+f 482//358 483//358 510//358 509//358
+f 483//359 484//359 511//359 510//359
+f 484//360 485//360 512//360 511//360
+f 485//361 486//361 513//361 512//361
+f 486//362 487//362 514//362 513//362
+f 487//363 488//363 515//363 514//363
+f 488//364 489//364 516//364 515//364
+f 489//365 490//365 517//365 516//365
+f 490//366 491//366 518//366 517//366
+f 491//367 492//367 519//367 518//367
+f 492//368 493//368 520//368 519//368
+f 493//369 494//369 521//369 520//369
+f 494//370 495//370 522//370 521//370
+f 495//371 496//371 523//371 522//371
+f 496//372 497//372 524//372 523//372
+f 497//373 498//373 525//373 524//373
+f 498//374 499//374 526//374 525//374
+f 499//375 500//375 527//375 526//375
+f 500//376 501//376 528//376 527//376
+f 501//377 502//377 529//377 528//377
+f 502//372 503//372 530//372 529//372
+f 503//378 477//378 504//378 530//378
+f 504//379 505//379 532//379 531//379
+f 505//380 506//380 533//380 532//380
+f 506//381 507//381 534//381 533//381
+f 507//382 508//382 535//382 534//382
+f 508//383 509//383 536//383 535//383
+f 509//384 510//384 537//384 536//384
+f 510//385 511//385 538//385 537//385
+f 511//386 512//386 539//386 538//386
+f 512//387 513//387 540//387 539//387
+f 513//388 514//388 541//388 540//388
+f 514//389 515//389 542//389 541//389
+f 515//390 516//390 543//390 542//390
+f 516//391 517//391 544//391 543//391
+f 517//392 518//392 545//392 544//392
+f 518//393 519//393 546//393 545//393
+f 519//394 520//394 547//394 546//394
+f 520//395 521//395 548//395 547//395
+f 521//396 522//396 549//396 548//396
+f 522//397 523//397 550//397 549//397
+f 523//398 524//398 551//398 550//398
+f 524//399 525//399 552//399 551//399
+f 525//400 526//400 553//400 552//400
+f 526//401 527//401 554//401 553//401
+f 527//402 528//402 555//402 554//402
+f 528//403 529//403 556//403 555//403
+f 529//398 530//398 557//398 556//398
+f 530//404 504//404 531//404 557//404
+f 531//405 532//405 559//405 558//405
+f 532//406 533//406 560//406 559//406
+f 533//407 534//407 561//407 560//407
+f 534//408 535//408 562//408 561//408
+f 535//409 536//409 563//409 562//409
+f 536//410 537//410 564//410 563//410
+f 537//411 538//411 565//411 564//411
+f 538//412 539//412 566//412 565//412
+f 539//413 540//413 567//413 566//413
+f 540//414 541//414 568//414 567//414
+f 541//415 542//415 569//415 568//415
+f 542//416 543//416 570//416 569//416
+f 543//417 544//417 571//417 570//417
+f 544//418 545//418 572//418 571//418
+f 545//419 546//419 573//419 572//419
+f 546//420 547//420 574//420 573//420
+f 547//421 548//421 575//421 574//421
+f 548//422 549//422 576//422 575//422
+f 549//423 550//423 577//423 576//423
+f 550//424 551//424 578//424 577//424
+f 551//425 552//425 579//425 578//425
+f 552//426 553//426 580//426 579//426
+f 553//427 554//427 581//427 580//427
+f 554//428 555//428 582//428 581//428
+f 555//429 556//429 583//429 582//429
+f 556//424 557//424 584//424 583//424
+f 557//430 531//430 558//430 584//430
diff --git a/assets/SingeText.svg b/assets/SingeText.svg
new file mode 100644
index 000000000..c3bce40ab
--- /dev/null
+++ b/assets/SingeText.svg
@@ -0,0 +1,8 @@
+
+
diff --git a/assets/SingeTextPrint-face.stl b/assets/SingeTextPrint-face.stl
new file mode 100644
index 000000000..f15fc4c3c
--- /dev/null
+++ b/assets/SingeTextPrint-face.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7b8d3d4e1b92e284a62bdc891c211aba1173d7e26e4d536705fc65580257878d
+size 42684
diff --git a/assets/SingeTextPrint-plate.stl b/assets/SingeTextPrint-plate.stl
new file mode 100644
index 000000000..274279274
--- /dev/null
+++ b/assets/SingeTextPrint-plate.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:61b2c735b7a0ba86cebd0f482beab4e2d3412d22e4fbfad365e6e7e2e5849961
+size 20884
diff --git a/assets/SingeTextPrint-walls.stl b/assets/SingeTextPrint-walls.stl
new file mode 100644
index 000000000..82e19e928
--- /dev/null
+++ b/assets/SingeTextPrint-walls.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ae9c022b0948af943eee1c16ca3aab70d9ddcbff80395b8bab3928ac324a5d47
+size 28084
diff --git a/assets/SingeTextPrint.mtl b/assets/SingeTextPrint.mtl
new file mode 100644
index 000000000..390f4352f
--- /dev/null
+++ b/assets/SingeTextPrint.mtl
@@ -0,0 +1,34 @@
+# Materials for SingeTextPrint.obj
+newmtl dark
+Ka 0.060 0.062 0.066
+Kd 0.300 0.310 0.330
+Ks 0.700 0.700 0.700
+Ns 180.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.80
+Pr 0.35
+
+newmtl frame
+Ka 0.024 0.022 0.020
+Kd 0.120 0.110 0.100
+Ks 0.300 0.300 0.300
+Ns 40.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.00
+Pr 0.70
+
+newmtl champagne
+Ka 0.144 0.128 0.108
+Kd 0.720 0.640 0.540
+Ks 0.850 0.800 0.700
+Ns 120.0
+d 1.00
+Ni 1.00
+illum 2
+Pm 0.80
+Pr 0.40
+
diff --git a/assets/SingeTextPrint.obj b/assets/SingeTextPrint.obj
new file mode 100644
index 000000000..8b52eedea
--- /dev/null
+++ b/assets/SingeTextPrint.obj
@@ -0,0 +1,2617 @@
+# Singe logotype, printable extruded from SingeText.jpeg by util/textModel.py
+# Units: 0.01 per image pixel; Y up, front faces toward +Z, resting on Y = 0, centred on X = 0
+mtllib SingeTextPrint.mtl
+v -3.62750 4.91000 -0.31000
+v -4.43750 4.36000 -0.31000
+v -5.07750 3.81000 -0.31000
+v -5.56250 3.27500 -0.31000
+v -5.57250 3.22000 -0.31000
+v -5.43250 3.07500 -0.31000
+v -4.42250 2.41500 -0.31000
+v -4.28250 2.27000 -0.31000
+v -4.52750 2.05500 -0.31000
+v -5.90250 1.16000 -0.31000
+v -6.05250 1.01000 -0.31000
+v -6.06250 0.95000 -0.31000
+v -5.82250 0.16000 -0.31000
+v -5.67250 0.00500 -0.31000
+v -5.61250 0.02000 -0.31000
+v -4.61750 0.84000 -0.31000
+v -3.74250 1.50000 -0.31000
+v -3.13750 2.02500 -0.31000
+v -3.00250 1.88500 -0.31000
+v -3.24250 0.77000 -0.31000
+v -3.10250 0.62500 -0.31000
+v -2.39750 0.90000 -0.31000
+v -2.18750 1.11000 -0.31000
+v -2.05250 0.97500 -0.31000
+v -2.11250 0.68000 -0.31000
+v -1.97250 0.54000 -0.31000
+v -1.32750 0.78000 -0.31000
+v -1.18750 0.92500 -0.31000
+v -0.91750 2.12000 -0.31000
+v -0.77750 2.25500 -0.31000
+v -0.64250 2.12000 -0.31000
+v -0.18750 0.99500 -0.31000
+v -0.05250 0.85000 -0.31000
+v -0.00750 0.84000 -0.31000
+v 0.33750 1.01500 -0.31000
+v 0.47250 1.15000 -0.31000
+v 0.58750 1.62000 -0.31000
+v 0.72750 1.76500 -0.31000
+v 0.86250 1.63000 -0.31000
+v 0.99750 1.36500 -0.31000
+v 1.23250 1.12500 -0.31000
+v 1.49250 0.99500 -0.31000
+v 1.70750 0.99000 -0.31000
+v 1.84250 0.85500 -0.31000
+v 1.64750 0.16500 -0.31000
+v 1.78750 0.02500 -0.31000
+v 2.40250 0.26000 -0.31000
+v 2.52750 0.38500 -0.31000
+v 2.62750 0.70500 -0.31000
+v 2.76750 0.84500 -0.31000
+v 2.97250 0.65000 -0.31000
+v 5.32250 1.34000 -0.31000
+v 5.49250 1.51000 -0.31000
+v 5.72250 2.14000 -0.31000
+v 5.58250 2.30500 -0.31000
+v 4.20250 1.95000 -0.31000
+v 4.06250 2.09500 -0.31000
+v 4.12750 2.32000 -0.31000
+v 4.26250 2.45500 -0.31000
+v 5.02250 2.66000 -0.31000
+v 5.17250 2.80500 -0.31000
+v 5.37250 3.34000 -0.31000
+v 5.21750 3.48000 -0.31000
+v 4.58750 3.33500 -0.31000
+v 4.45250 3.47000 -0.31000
+v 4.48250 3.57500 -0.31000
+v 4.62250 3.72000 -0.31000
+v 5.69750 4.02000 -0.31000
+v 5.82750 4.15500 -0.31000
+v 6.06250 4.73500 -0.31000
+v 6.05750 4.77500 -0.31000
+v 5.91750 4.91500 -0.31000
+v 4.18250 4.48500 -0.31000
+v 3.68250 4.32500 -0.31000
+v 3.51750 4.17000 -0.31000
+v 3.16750 4.54000 -0.31000
+v 3.00250 4.65000 -0.31000
+v 2.77250 4.71000 -0.31000
+v 2.45750 4.68500 -0.31000
+v 2.22750 4.60500 -0.31000
+v 1.96250 4.45000 -0.31000
+v 1.36750 3.87500 -0.31000
+v 1.23250 4.01000 -0.31000
+v 1.49250 4.87000 -0.31000
+v 1.33750 5.00500 -0.31000
+v 0.60750 4.74500 -0.31000
+v 0.47250 4.61500 -0.31000
+v 0.14250 3.31500 -0.31000
+v 0.00750 3.18000 -0.31000
+v -0.13750 3.33500 -0.31000
+v -0.50750 4.30000 -0.31000
+v -0.65250 4.43500 -0.31000
+v -1.20250 4.20000 -0.31000
+v -1.33750 4.06500 -0.31000
+v -1.37250 3.92500 -0.31000
+v -1.50750 3.79000 -0.31000
+v -1.71750 4.00000 -0.31000
+v -1.43750 4.28500 -0.31000
+v -1.21250 4.97500 -0.31000
+v -1.34250 5.12000 -0.31000
+v -2.26750 4.78500 -0.31000
+v -2.53250 4.52500 -0.31000
+v -2.66750 4.66000 -0.31000
+v -2.81250 5.09500 -0.31000
+v -2.97250 5.23000 -0.31000
+v -3.62750 4.91000 -0.15000
+v -4.43750 4.36000 -0.15000
+v -5.07750 3.81000 -0.15000
+v -5.56250 3.27500 -0.15000
+v -5.57250 3.22000 -0.15000
+v -5.43250 3.07500 -0.15000
+v -4.42250 2.41500 -0.15000
+v -4.28250 2.27000 -0.15000
+v -4.52750 2.05500 -0.15000
+v -5.90250 1.16000 -0.15000
+v -6.05250 1.01000 -0.15000
+v -6.06250 0.95000 -0.15000
+v -5.82250 0.16000 -0.15000
+v -5.67250 0.00500 -0.15000
+v -5.61250 0.02000 -0.15000
+v -4.61750 0.84000 -0.15000
+v -3.74250 1.50000 -0.15000
+v -3.13750 2.02500 -0.15000
+v -3.00250 1.88500 -0.15000
+v -3.24250 0.77000 -0.15000
+v -3.10250 0.62500 -0.15000
+v -2.39750 0.90000 -0.15000
+v -2.18750 1.11000 -0.15000
+v -2.05250 0.97500 -0.15000
+v -2.11250 0.68000 -0.15000
+v -1.97250 0.54000 -0.15000
+v -1.32750 0.78000 -0.15000
+v -1.18750 0.92500 -0.15000
+v -0.91750 2.12000 -0.15000
+v -0.77750 2.25500 -0.15000
+v -0.64250 2.12000 -0.15000
+v -0.18750 0.99500 -0.15000
+v -0.05250 0.85000 -0.15000
+v -0.00750 0.84000 -0.15000
+v 0.33750 1.01500 -0.15000
+v 0.47250 1.15000 -0.15000
+v 0.58750 1.62000 -0.15000
+v 0.72750 1.76500 -0.15000
+v 0.86250 1.63000 -0.15000
+v 0.99750 1.36500 -0.15000
+v 1.23250 1.12500 -0.15000
+v 1.49250 0.99500 -0.15000
+v 1.70750 0.99000 -0.15000
+v 1.84250 0.85500 -0.15000
+v 1.64750 0.16500 -0.15000
+v 1.78750 0.02500 -0.15000
+v 2.40250 0.26000 -0.15000
+v 2.52750 0.38500 -0.15000
+v 2.62750 0.70500 -0.15000
+v 2.76750 0.84500 -0.15000
+v 2.97250 0.65000 -0.15000
+v 5.32250 1.34000 -0.15000
+v 5.49250 1.51000 -0.15000
+v 5.72250 2.14000 -0.15000
+v 5.58250 2.30500 -0.15000
+v 4.20250 1.95000 -0.15000
+v 4.06250 2.09500 -0.15000
+v 4.12750 2.32000 -0.15000
+v 4.26250 2.45500 -0.15000
+v 5.02250 2.66000 -0.15000
+v 5.17250 2.80500 -0.15000
+v 5.37250 3.34000 -0.15000
+v 5.21750 3.48000 -0.15000
+v 4.58750 3.33500 -0.15000
+v 4.45250 3.47000 -0.15000
+v 4.48250 3.57500 -0.15000
+v 4.62250 3.72000 -0.15000
+v 5.69750 4.02000 -0.15000
+v 5.82750 4.15500 -0.15000
+v 6.06250 4.73500 -0.15000
+v 6.05750 4.77500 -0.15000
+v 5.91750 4.91500 -0.15000
+v 4.18250 4.48500 -0.15000
+v 3.68250 4.32500 -0.15000
+v 3.51750 4.17000 -0.15000
+v 3.16750 4.54000 -0.15000
+v 3.00250 4.65000 -0.15000
+v 2.77250 4.71000 -0.15000
+v 2.45750 4.68500 -0.15000
+v 2.22750 4.60500 -0.15000
+v 1.96250 4.45000 -0.15000
+v 1.36750 3.87500 -0.15000
+v 1.23250 4.01000 -0.15000
+v 1.49250 4.87000 -0.15000
+v 1.33750 5.00500 -0.15000
+v 0.60750 4.74500 -0.15000
+v 0.47250 4.61500 -0.15000
+v 0.14250 3.31500 -0.15000
+v 0.00750 3.18000 -0.15000
+v -0.13750 3.33500 -0.15000
+v -0.50750 4.30000 -0.15000
+v -0.65250 4.43500 -0.15000
+v -1.20250 4.20000 -0.15000
+v -1.33750 4.06500 -0.15000
+v -1.37250 3.92500 -0.15000
+v -1.50750 3.79000 -0.15000
+v -1.71750 4.00000 -0.15000
+v -1.43750 4.28500 -0.15000
+v -1.21250 4.97500 -0.15000
+v -1.34250 5.12000 -0.15000
+v -2.26750 4.78500 -0.15000
+v -2.53250 4.52500 -0.15000
+v -2.66750 4.66000 -0.15000
+v -2.81250 5.09500 -0.15000
+v -2.97250 5.23000 -0.15000
+v -3.62750 4.79000 -0.15000
+v -4.25750 4.37500 -0.15000
+v -4.97250 3.79000 -0.15000
+v -5.24250 3.52000 -0.15000
+v -5.44250 3.27500 -0.15000
+v -5.45250 3.22000 -0.15000
+v -5.39250 3.16500 -0.15000
+v -4.35250 2.49000 -0.15000
+v -4.07250 2.27000 -0.15000
+v -4.65250 1.85000 -0.15000
+v -5.93250 1.01000 -0.15000
+v -5.94250 0.95000 -0.15000
+v -5.74250 0.28000 -0.15000
+v -5.67250 0.12500 -0.15000
+v -5.61250 0.14000 -0.15000
+v -4.73750 0.86500 -0.15000
+v -3.46250 1.84500 -0.15000
+v -3.19250 2.09000 -0.15000
+v -2.96750 2.35000 -0.15000
+v -2.97250 2.39500 -0.15000
+v -3.04250 2.46500 -0.15000
+v -3.26750 2.64000 -0.15000
+v -4.33750 3.29500 -0.15000
+v -4.10250 3.50500 -0.15000
+v -3.67750 3.79000 -0.15000
+v -2.68750 4.31000 -0.15000
+v -2.88750 4.98500 -0.15000
+v -2.93250 5.09500 -0.15000
+v -2.97250 5.11000 -0.15000
+v -3.62750 4.79000 0.09000
+v -4.25750 4.37500 0.09000
+v -4.97250 3.79000 0.09000
+v -5.24250 3.52000 0.09000
+v -5.44250 3.27500 0.09000
+v -5.45250 3.22000 0.09000
+v -5.39250 3.16500 0.09000
+v -4.35250 2.49000 0.09000
+v -4.07250 2.27000 0.09000
+v -4.65250 1.85000 0.09000
+v -5.93250 1.01000 0.09000
+v -5.94250 0.95000 0.09000
+v -5.74250 0.28000 0.09000
+v -5.67250 0.12500 0.09000
+v -5.61250 0.14000 0.09000
+v -4.73750 0.86500 0.09000
+v -3.46250 1.84500 0.09000
+v -3.19250 2.09000 0.09000
+v -2.96750 2.35000 0.09000
+v -2.97250 2.39500 0.09000
+v -3.04250 2.46500 0.09000
+v -3.26750 2.64000 0.09000
+v -4.33750 3.29500 0.09000
+v -4.10250 3.50500 0.09000
+v -3.67750 3.79000 0.09000
+v -2.68750 4.31000 0.09000
+v -2.88750 4.98500 0.09000
+v -2.93250 5.09500 0.09000
+v -2.97250 5.11000 0.09000
+v -3.62750 4.79000 0.09000
+v -4.25750 4.37500 0.09000
+v -4.97250 3.79000 0.09000
+v -5.24250 3.52000 0.09000
+v -5.44250 3.27500 0.09000
+v -5.45250 3.22000 0.09000
+v -5.39250 3.16500 0.09000
+v -4.35250 2.49000 0.09000
+v -4.07250 2.27000 0.09000
+v -4.65250 1.85000 0.09000
+v -5.93250 1.01000 0.09000
+v -5.94250 0.95000 0.09000
+v -5.74250 0.28000 0.09000
+v -5.67250 0.12500 0.09000
+v -5.61250 0.14000 0.09000
+v -4.73750 0.86500 0.09000
+v -3.46250 1.84500 0.09000
+v -3.19250 2.09000 0.09000
+v -2.96750 2.35000 0.09000
+v -2.97250 2.39500 0.09000
+v -3.04250 2.46500 0.09000
+v -3.26750 2.64000 0.09000
+v -4.33750 3.29500 0.09000
+v -4.10250 3.50500 0.09000
+v -3.67750 3.79000 0.09000
+v -2.68750 4.31000 0.09000
+v -2.88750 4.98500 0.09000
+v -2.93250 5.09500 0.09000
+v -2.97250 5.11000 0.09000
+v -3.62750 4.79000 0.10000
+v -4.25750 4.37500 0.10000
+v -4.97250 3.79000 0.10000
+v -5.24250 3.52000 0.10000
+v -5.44250 3.27500 0.10000
+v -5.45250 3.22000 0.10000
+v -5.39250 3.16500 0.10000
+v -4.35250 2.49000 0.10000
+v -4.07250 2.27000 0.10000
+v -4.65250 1.85000 0.10000
+v -5.93250 1.01000 0.10000
+v -5.94250 0.95000 0.10000
+v -5.74250 0.28000 0.10000
+v -5.67250 0.12500 0.10000
+v -5.61250 0.14000 0.10000
+v -4.73750 0.86500 0.10000
+v -3.46250 1.84500 0.10000
+v -3.19250 2.09000 0.10000
+v -2.96750 2.35000 0.10000
+v -2.97250 2.39500 0.10000
+v -3.04250 2.46500 0.10000
+v -3.26750 2.64000 0.10000
+v -4.33750 3.29500 0.10000
+v -4.10250 3.50500 0.10000
+v -3.67750 3.79000 0.10000
+v -2.68750 4.31000 0.10000
+v -2.88750 4.98500 0.10000
+v -2.93250 5.09500 0.10000
+v -2.97250 5.11000 0.10000
+v -3.60267 4.74648 0.15000
+v -4.22784 4.33467 0.15000
+v -4.93891 3.75288 0.15000
+v -5.20536 3.48643 0.15000
+v -5.39561 3.25337 0.15000
+v -5.39837 3.23821 0.15000
+v -5.36178 3.20467 0.15000
+v -4.32338 2.53071 0.15000
+v -3.98950 2.26837 0.15000
+v -4.62411 1.80883 0.15000
+v -5.88678 0.98020 0.15000
+v -5.89128 0.95320 0.15000
+v -5.69555 0.29752 0.15000
+v -5.64412 0.18363 0.15000
+v -5.63565 0.18575 0.15000
+v -4.76870 0.90409 0.15000
+v -3.49459 1.88340 0.15000
+v -3.22833 2.12500 0.15000
+v -3.01961 2.36620 0.15000
+v -3.02026 2.37205 0.15000
+v -3.07565 2.42744 0.15000
+v -3.29599 2.59882 0.15000
+v -4.42097 3.28747 0.15000
+v -4.13323 3.54459 0.15000
+v -3.70312 3.83302 0.15000
+v -2.74711 4.33517 0.15000
+v -2.93473 4.96839 0.15000
+v -2.97051 5.05585 0.15000
+v -2.96990 5.05562 0.15000
+v -2.44250 3.60500 -0.15000
+v -2.50250 3.55500 -0.15000
+v -3.09250 0.95000 -0.15000
+v -3.12250 0.79000 -0.15000
+v -3.10250 0.74500 -0.15000
+v -2.53750 0.96000 -0.15000
+v -2.37750 1.04500 -0.15000
+v -2.04750 2.46000 -0.15000
+v -1.69750 3.82000 -0.15000
+v -1.70250 3.86500 -0.15000
+v -1.73250 3.87000 -0.15000
+v -2.44250 3.60500 0.09000
+v -2.50250 3.55500 0.09000
+v -3.09250 0.95000 0.09000
+v -3.12250 0.79000 0.09000
+v -3.10250 0.74500 0.09000
+v -2.53750 0.96000 0.09000
+v -2.37750 1.04500 0.09000
+v -2.04750 2.46000 0.09000
+v -1.69750 3.82000 0.09000
+v -1.70250 3.86500 0.09000
+v -1.73250 3.87000 0.09000
+v -2.44250 3.60500 0.09000
+v -2.50250 3.55500 0.09000
+v -3.09250 0.95000 0.09000
+v -3.12250 0.79000 0.09000
+v -3.10250 0.74500 0.09000
+v -2.53750 0.96000 0.09000
+v -2.37750 1.04500 0.09000
+v -2.04750 2.46000 0.09000
+v -1.69750 3.82000 0.09000
+v -1.70250 3.86500 0.09000
+v -1.73250 3.87000 0.09000
+v -2.44250 3.60500 0.10000
+v -2.50250 3.55500 0.10000
+v -3.09250 0.95000 0.10000
+v -3.12250 0.79000 0.10000
+v -3.10250 0.74500 0.10000
+v -2.53750 0.96000 0.10000
+v -2.37750 1.04500 0.10000
+v -2.04750 2.46000 0.10000
+v -1.69750 3.82000 0.10000
+v -1.70250 3.86500 0.10000
+v -1.73250 3.87000 0.10000
+v -2.41704 3.56114 0.15000
+v -2.45748 3.52743 0.15000
+v -3.04353 0.93987 0.15000
+v -3.07049 0.79608 0.15000
+v -3.07604 0.80857 0.15000
+v -2.55820 1.00562 0.15000
+v -2.42103 1.07849 0.15000
+v -2.09606 2.47191 0.15000
+v -1.74821 3.82359 0.15000
+v -1.74802 3.82190 0.15000
+v -1.72754 3.81848 0.15000
+v -2.26750 4.66500 -0.15000
+v -2.29250 4.63500 -0.15000
+v -2.45750 3.93500 -0.15000
+v -2.41750 3.92000 -0.15000
+v -2.31750 3.95500 -0.15000
+v -1.58250 4.25500 -0.15000
+v -1.33750 4.95500 -0.15000
+v -1.33750 4.99500 -0.15000
+v -1.36750 5.00500 -0.15000
+v -2.26750 4.66500 0.09000
+v -2.29250 4.63500 0.09000
+v -2.45750 3.93500 0.09000
+v -2.41750 3.92000 0.09000
+v -2.31750 3.95500 0.09000
+v -1.58250 4.25500 0.09000
+v -1.33750 4.95500 0.09000
+v -1.33750 4.99500 0.09000
+v -1.36750 5.00500 0.09000
+v -2.26750 4.66500 0.09000
+v -2.29250 4.63500 0.09000
+v -2.45750 3.93500 0.09000
+v -2.41750 3.92000 0.09000
+v -2.31750 3.95500 0.09000
+v -1.58250 4.25500 0.09000
+v -1.33750 4.95500 0.09000
+v -1.33750 4.99500 0.09000
+v -1.36750 5.00500 0.09000
+v -2.26750 4.66500 0.10000
+v -2.29250 4.63500 0.10000
+v -2.45750 3.93500 0.10000
+v -2.41750 3.92000 0.10000
+v -2.31750 3.95500 0.10000
+v -1.58250 4.25500 0.10000
+v -1.33750 4.95500 0.10000
+v -1.33750 4.99500 0.10000
+v -1.36750 5.00500 0.10000
+v -2.23752 4.62288 0.15000
+v -2.24654 4.61205 0.15000
+v -2.39874 3.96636 0.15000
+v -2.41691 3.97318 0.15000
+v -2.33522 4.00177 0.15000
+v -1.62225 4.29278 0.15000
+v -1.38750 4.96350 0.15000
+v -1.38750 4.95896 0.15000
+v -1.36645 4.95195 0.15000
+v 0.58250 4.60000 -0.15000
+v 0.07250 2.50500 -0.15000
+v -0.62750 4.30000 -0.15000
+v -0.69250 4.30500 -0.15000
+v -1.21750 4.06500 -0.15000
+v -1.78250 1.65500 -0.15000
+v -1.98250 0.76000 -0.15000
+v -1.98250 0.66500 -0.15000
+v -1.92750 0.66500 -0.15000
+v -1.31250 0.91500 -0.15000
+v -0.84250 2.89000 -0.15000
+v -0.05250 0.97000 -0.15000
+v -0.00750 0.96000 -0.15000
+v 0.35250 1.15000 -0.15000
+v 0.89750 3.26500 -0.15000
+v 1.36750 4.82000 -0.15000
+v 1.37250 4.87000 -0.15000
+v 1.33750 4.88500 -0.15000
+v 0.58250 4.60000 0.09000
+v 0.07250 2.50500 0.09000
+v -0.62750 4.30000 0.09000
+v -0.69250 4.30500 0.09000
+v -1.21750 4.06500 0.09000
+v -1.78250 1.65500 0.09000
+v -1.98250 0.76000 0.09000
+v -1.98250 0.66500 0.09000
+v -1.92750 0.66500 0.09000
+v -1.31250 0.91500 0.09000
+v -0.84250 2.89000 0.09000
+v -0.05250 0.97000 0.09000
+v -0.00750 0.96000 0.09000
+v 0.35250 1.15000 0.09000
+v 0.89750 3.26500 0.09000
+v 1.36750 4.82000 0.09000
+v 1.37250 4.87000 0.09000
+v 1.33750 4.88500 0.09000
+v 0.58250 4.60000 0.09000
+v 0.07250 2.50500 0.09000
+v -0.62750 4.30000 0.09000
+v -0.69250 4.30500 0.09000
+v -1.21750 4.06500 0.09000
+v -1.78250 1.65500 0.09000
+v -1.98250 0.76000 0.09000
+v -1.98250 0.66500 0.09000
+v -1.92750 0.66500 0.09000
+v -1.31250 0.91500 0.09000
+v -0.84250 2.89000 0.09000
+v -0.05250 0.97000 0.09000
+v -0.00750 0.96000 0.09000
+v 0.35250 1.15000 0.09000
+v 0.89750 3.26500 0.09000
+v 1.36750 4.82000 0.09000
+v 1.37250 4.87000 0.09000
+v 1.33750 4.88500 0.09000
+v 0.58250 4.60000 0.10000
+v 0.07250 2.50500 0.10000
+v -0.62750 4.30000 0.10000
+v -0.69250 4.30500 0.10000
+v -1.21750 4.06500 0.10000
+v -1.78250 1.65500 0.10000
+v -1.98250 0.76000 0.10000
+v -1.98250 0.66500 0.10000
+v -1.92750 0.66500 0.10000
+v -1.31250 0.91500 0.10000
+v -0.84250 2.89000 0.10000
+v -0.05250 0.97000 0.10000
+v -0.00750 0.96000 0.10000
+v 0.35250 1.15000 0.10000
+v 0.89750 3.26500 0.10000
+v 1.36750 4.82000 0.10000
+v 1.37250 4.87000 0.10000
+v 1.33750 4.88500 0.10000
+v 0.62484 4.56254 0.15000
+v 0.08200 2.36246 0.15000
+v -0.66267 4.25256 0.15000
+v -0.68346 4.25416 0.15000
+v -1.17442 4.02972 0.15000
+v -1.73376 1.64384 0.15000
+v -1.93250 0.75448 0.15000
+v -1.93250 0.71500 0.15000
+v -1.93727 0.71500 0.15000
+v -1.35518 0.95162 0.15000
+v -0.85368 3.03242 0.15000
+v -0.01619 1.01315 0.15000
+v -0.01459 1.01280 0.15000
+v 0.30960 1.18390 0.15000
+v 0.84934 3.27848 0.15000
+v 1.31823 4.82981 0.15000
+v 1.31910 4.83849 0.15000
+v 1.33632 4.83111 0.15000
+v 2.31250 4.52000 -0.15000
+v 2.06750 4.40000 -0.15000
+v 1.84750 4.24000 -0.15000
+v 1.59250 3.98000 -0.15000
+v 1.35750 3.65500 -0.15000
+v 1.16750 3.30000 -0.15000
+v 1.01750 2.90000 -0.15000
+v 0.93750 2.57500 -0.15000
+v 0.89750 2.16500 -0.15000
+v 0.91750 1.86500 -0.15000
+v 0.99750 1.58000 -0.15000
+v 1.13750 1.34000 -0.15000
+v 1.33750 1.17500 -0.15000
+v 1.55250 1.10500 -0.15000
+v 1.78250 1.12000 -0.15000
+v 2.06750 1.22000 -0.15000
+v 1.76750 0.20000 -0.15000
+v 1.78750 0.14500 -0.15000
+v 2.40750 0.38500 -0.15000
+v 3.31250 3.18000 -0.15000
+v 3.27250 3.21000 -0.15000
+v 3.02750 3.16500 -0.15000
+v 2.05250 2.91500 -0.15000
+v 1.87250 2.39500 -0.15000
+v 1.93250 2.37000 -0.15000
+v 2.46250 2.50000 -0.15000
+v 2.47750 2.47500 -0.15000
+v 2.37750 2.22000 -0.15000
+v 2.15750 1.96500 -0.15000
+v 1.99750 1.85500 -0.15000
+v 1.87250 1.80500 -0.15000
+v 1.69250 1.81000 -0.15000
+v 1.58750 1.89500 -0.15000
+v 1.55250 1.95500 -0.15000
+v 1.50750 2.24500 -0.15000
+v 1.57250 2.64000 -0.15000
+v 1.70250 2.99500 -0.15000
+v 1.94750 3.40500 -0.15000
+v 2.20750 3.67500 -0.15000
+v 2.33250 3.76000 -0.15000
+v 2.47750 3.82000 -0.15000
+v 2.57250 3.83000 -0.15000
+v 2.66750 3.80000 -0.15000
+v 2.74750 3.73000 -0.15000
+v 2.82250 3.61000 -0.15000
+v 2.85750 3.61000 -0.15000
+v 3.31750 4.18000 -0.15000
+v 3.31250 4.22500 -0.15000
+v 3.23750 4.34000 -0.15000
+v 3.06750 4.49500 -0.15000
+v 2.87250 4.57500 -0.15000
+v 2.60750 4.59000 -0.15000
+v 2.31250 4.52000 0.09000
+v 2.06750 4.40000 0.09000
+v 1.84750 4.24000 0.09000
+v 1.59250 3.98000 0.09000
+v 1.35750 3.65500 0.09000
+v 1.16750 3.30000 0.09000
+v 1.01750 2.90000 0.09000
+v 0.93750 2.57500 0.09000
+v 0.89750 2.16500 0.09000
+v 0.91750 1.86500 0.09000
+v 0.99750 1.58000 0.09000
+v 1.13750 1.34000 0.09000
+v 1.33750 1.17500 0.09000
+v 1.55250 1.10500 0.09000
+v 1.78250 1.12000 0.09000
+v 2.06750 1.22000 0.09000
+v 1.76750 0.20000 0.09000
+v 1.78750 0.14500 0.09000
+v 2.40750 0.38500 0.09000
+v 3.31250 3.18000 0.09000
+v 3.27250 3.21000 0.09000
+v 3.02750 3.16500 0.09000
+v 2.05250 2.91500 0.09000
+v 1.87250 2.39500 0.09000
+v 1.93250 2.37000 0.09000
+v 2.46250 2.50000 0.09000
+v 2.47750 2.47500 0.09000
+v 2.37750 2.22000 0.09000
+v 2.15750 1.96500 0.09000
+v 1.99750 1.85500 0.09000
+v 1.87250 1.80500 0.09000
+v 1.69250 1.81000 0.09000
+v 1.58750 1.89500 0.09000
+v 1.55250 1.95500 0.09000
+v 1.50750 2.24500 0.09000
+v 1.57250 2.64000 0.09000
+v 1.70250 2.99500 0.09000
+v 1.94750 3.40500 0.09000
+v 2.20750 3.67500 0.09000
+v 2.33250 3.76000 0.09000
+v 2.47750 3.82000 0.09000
+v 2.57250 3.83000 0.09000
+v 2.66750 3.80000 0.09000
+v 2.74750 3.73000 0.09000
+v 2.82250 3.61000 0.09000
+v 2.85750 3.61000 0.09000
+v 3.31750 4.18000 0.09000
+v 3.31250 4.22500 0.09000
+v 3.23750 4.34000 0.09000
+v 3.06750 4.49500 0.09000
+v 2.87250 4.57500 0.09000
+v 2.60750 4.59000 0.09000
+v 2.31250 4.52000 0.09000
+v 2.06750 4.40000 0.09000
+v 1.84750 4.24000 0.09000
+v 1.59250 3.98000 0.09000
+v 1.35750 3.65500 0.09000
+v 1.16750 3.30000 0.09000
+v 1.01750 2.90000 0.09000
+v 0.93750 2.57500 0.09000
+v 0.89750 2.16500 0.09000
+v 0.91750 1.86500 0.09000
+v 0.99750 1.58000 0.09000
+v 1.13750 1.34000 0.09000
+v 1.33750 1.17500 0.09000
+v 1.55250 1.10500 0.09000
+v 1.78250 1.12000 0.09000
+v 2.06750 1.22000 0.09000
+v 1.76750 0.20000 0.09000
+v 1.78750 0.14500 0.09000
+v 2.40750 0.38500 0.09000
+v 3.31250 3.18000 0.09000
+v 3.27250 3.21000 0.09000
+v 3.02750 3.16500 0.09000
+v 2.05250 2.91500 0.09000
+v 1.87250 2.39500 0.09000
+v 1.93250 2.37000 0.09000
+v 2.46250 2.50000 0.09000
+v 2.47750 2.47500 0.09000
+v 2.37750 2.22000 0.09000
+v 2.15750 1.96500 0.09000
+v 1.99750 1.85500 0.09000
+v 1.87250 1.80500 0.09000
+v 1.69250 1.81000 0.09000
+v 1.58750 1.89500 0.09000
+v 1.55250 1.95500 0.09000
+v 1.50750 2.24500 0.09000
+v 1.57250 2.64000 0.09000
+v 1.70250 2.99500 0.09000
+v 1.94750 3.40500 0.09000
+v 2.20750 3.67500 0.09000
+v 2.33250 3.76000 0.09000
+v 2.47750 3.82000 0.09000
+v 2.57250 3.83000 0.09000
+v 2.66750 3.80000 0.09000
+v 2.74750 3.73000 0.09000
+v 2.82250 3.61000 0.09000
+v 2.85750 3.61000 0.09000
+v 3.31750 4.18000 0.09000
+v 3.31250 4.22500 0.09000
+v 3.23750 4.34000 0.09000
+v 3.06750 4.49500 0.09000
+v 2.87250 4.57500 0.09000
+v 2.60750 4.59000 0.09000
+v 2.31250 4.52000 0.10000
+v 2.06750 4.40000 0.10000
+v 1.84750 4.24000 0.10000
+v 1.59250 3.98000 0.10000
+v 1.35750 3.65500 0.10000
+v 1.16750 3.30000 0.10000
+v 1.01750 2.90000 0.10000
+v 0.93750 2.57500 0.10000
+v 0.89750 2.16500 0.10000
+v 0.91750 1.86500 0.10000
+v 0.99750 1.58000 0.10000
+v 1.13750 1.34000 0.10000
+v 1.33750 1.17500 0.10000
+v 1.55250 1.10500 0.10000
+v 1.78250 1.12000 0.10000
+v 2.06750 1.22000 0.10000
+v 1.76750 0.20000 0.10000
+v 1.78750 0.14500 0.10000
+v 2.40750 0.38500 0.10000
+v 3.31250 3.18000 0.10000
+v 3.27250 3.21000 0.10000
+v 3.02750 3.16500 0.10000
+v 2.05250 2.91500 0.10000
+v 1.87250 2.39500 0.10000
+v 1.93250 2.37000 0.10000
+v 2.46250 2.50000 0.10000
+v 2.47750 2.47500 0.10000
+v 2.37750 2.22000 0.10000
+v 2.15750 1.96500 0.10000
+v 1.99750 1.85500 0.10000
+v 1.87250 1.80500 0.10000
+v 1.69250 1.81000 0.10000
+v 1.58750 1.89500 0.10000
+v 1.55250 1.95500 0.10000
+v 1.50750 2.24500 0.10000
+v 1.57250 2.64000 0.10000
+v 1.70250 2.99500 0.10000
+v 1.94750 3.40500 0.10000
+v 2.20750 3.67500 0.10000
+v 2.33250 3.76000 0.10000
+v 2.47750 3.82000 0.10000
+v 2.57250 3.83000 0.10000
+v 2.66750 3.80000 0.10000
+v 2.74750 3.73000 0.10000
+v 2.82250 3.61000 0.10000
+v 2.85750 3.61000 0.10000
+v 3.31750 4.18000 0.10000
+v 3.31250 4.22500 0.10000
+v 3.23750 4.34000 0.10000
+v 3.06750 4.49500 0.10000
+v 2.87250 4.57500 0.10000
+v 2.60750 4.59000 0.10000
+v 2.32948 4.47264 0.15000
+v 2.09340 4.35701 0.15000
+v 1.88028 4.20201 0.15000
+v 1.63082 3.94767 0.15000
+v 1.39999 3.62843 0.15000
+v 1.21315 3.27933 0.15000
+v 1.06535 2.88520 0.15000
+v 0.98691 2.56655 0.15000
+v 0.94766 2.16423 0.15000
+v 0.96704 1.87351 0.15000
+v 1.04391 1.59967 0.15000
+v 1.17620 1.37289 0.15000
+v 1.36200 1.21961 0.15000
+v 1.55884 1.15552 0.15000
+v 1.77241 1.16945 0.15000
+v 2.14299 1.29948 0.15000
+v 1.82010 0.20165 0.15000
+v 1.81705 0.21005 0.15000
+v 2.36726 0.42304 0.15000
+v 3.25393 3.16143 0.15000
+v 3.26001 3.15687 0.15000
+v 3.03824 3.11614 0.15000
+v 2.09096 2.87324 0.15000
+v 1.93513 2.42307 0.15000
+v 1.93656 2.42248 0.15000
+v 2.48640 2.55735 0.15000
+v 2.53303 2.47964 0.15000
+v 2.42093 2.19380 0.15000
+v 2.19114 1.92745 0.15000
+v 2.02124 1.81064 0.15000
+v 1.88146 1.75473 0.15000
+v 1.67419 1.76049 0.15000
+v 1.54892 1.86190 0.15000
+v 1.50454 1.93798 0.15000
+v 1.45687 2.24523 0.15000
+v 1.52393 2.65277 0.15000
+v 1.65717 3.01661 0.15000
+v 1.90751 3.43556 0.15000
+v 2.17509 3.71342 0.15000
+v 2.30863 3.80424 0.15000
+v 2.46507 3.86897 0.15000
+v 2.57762 3.88082 0.15000
+v 2.69254 3.84453 0.15000
+v 2.78598 3.76276 0.15000
+v 2.85021 3.66000 0.15000
+v 2.83360 3.66000 0.15000
+v 3.26550 4.19519 0.15000
+v 3.26412 4.20765 0.15000
+v 3.19910 4.30735 0.15000
+v 3.04034 4.45210 0.15000
+v 2.86129 4.52555 0.15000
+v 2.61195 4.53967 0.15000
+v 4.40750 4.43000 -0.15000
+v 3.64750 4.18000 -0.15000
+v 3.45750 3.55500 -0.15000
+v 3.50250 3.53500 -0.15000
+v 3.67750 3.59000 -0.15000
+v 3.69250 3.57000 -0.15000
+v 3.05750 1.28000 -0.15000
+v 2.94250 0.80500 -0.15000
+v 2.95750 0.77500 -0.15000
+v 5.25750 1.44000 -0.15000
+v 5.36250 1.49500 -0.15000
+v 5.60250 2.14000 -0.15000
+v 5.58250 2.18500 -0.15000
+v 4.71750 1.97500 -0.15000
+v 3.87750 1.73500 -0.15000
+v 3.85250 1.76500 -0.15000
+v 4.06250 2.51000 -0.15000
+v 5.03250 2.78500 -0.15000
+v 5.25250 3.30500 -0.15000
+v 5.23750 3.35500 -0.15000
+v 5.18750 3.35500 -0.15000
+v 4.23750 3.13000 -0.15000
+v 4.42250 3.77000 -0.15000
+v 5.69750 4.14000 -0.15000
+v 5.94250 4.73500 -0.15000
+v 5.91750 4.79500 -0.15000
+v 5.88250 4.79500 -0.15000
+v 4.40750 4.43000 0.09000
+v 3.64750 4.18000 0.09000
+v 3.45750 3.55500 0.09000
+v 3.50250 3.53500 0.09000
+v 3.67750 3.59000 0.09000
+v 3.69250 3.57000 0.09000
+v 3.05750 1.28000 0.09000
+v 2.94250 0.80500 0.09000
+v 2.95750 0.77500 0.09000
+v 5.25750 1.44000 0.09000
+v 5.36250 1.49500 0.09000
+v 5.60250 2.14000 0.09000
+v 5.58250 2.18500 0.09000
+v 4.71750 1.97500 0.09000
+v 3.87750 1.73500 0.09000
+v 3.85250 1.76500 0.09000
+v 4.06250 2.51000 0.09000
+v 5.03250 2.78500 0.09000
+v 5.25250 3.30500 0.09000
+v 5.23750 3.35500 0.09000
+v 5.18750 3.35500 0.09000
+v 4.23750 3.13000 0.09000
+v 4.42250 3.77000 0.09000
+v 5.69750 4.14000 0.09000
+v 5.94250 4.73500 0.09000
+v 5.91750 4.79500 0.09000
+v 5.88250 4.79500 0.09000
+v 4.40750 4.43000 0.09000
+v 3.64750 4.18000 0.09000
+v 3.45750 3.55500 0.09000
+v 3.50250 3.53500 0.09000
+v 3.67750 3.59000 0.09000
+v 3.69250 3.57000 0.09000
+v 3.05750 1.28000 0.09000
+v 2.94250 0.80500 0.09000
+v 2.95750 0.77500 0.09000
+v 5.25750 1.44000 0.09000
+v 5.36250 1.49500 0.09000
+v 5.60250 2.14000 0.09000
+v 5.58250 2.18500 0.09000
+v 4.71750 1.97500 0.09000
+v 3.87750 1.73500 0.09000
+v 3.85250 1.76500 0.09000
+v 4.06250 2.51000 0.09000
+v 5.03250 2.78500 0.09000
+v 5.25250 3.30500 0.09000
+v 5.23750 3.35500 0.09000
+v 5.18750 3.35500 0.09000
+v 4.23750 3.13000 0.09000
+v 4.42250 3.77000 0.09000
+v 5.69750 4.14000 0.09000
+v 5.94250 4.73500 0.09000
+v 5.91750 4.79500 0.09000
+v 5.88250 4.79500 0.09000
+v 4.40750 4.43000 0.10000
+v 3.64750 4.18000 0.10000
+v 3.45750 3.55500 0.10000
+v 3.50250 3.53500 0.10000
+v 3.67750 3.59000 0.10000
+v 3.69250 3.57000 0.10000
+v 3.05750 1.28000 0.10000
+v 2.94250 0.80500 0.10000
+v 2.95750 0.77500 0.10000
+v 5.25750 1.44000 0.10000
+v 5.36250 1.49500 0.10000
+v 5.60250 2.14000 0.10000
+v 5.58250 2.18500 0.10000
+v 4.71750 1.97500 0.10000
+v 3.87750 1.73500 0.10000
+v 3.85250 1.76500 0.10000
+v 4.06250 2.51000 0.10000
+v 5.03250 2.78500 0.10000
+v 5.25250 3.30500 0.10000
+v 5.23750 3.35500 0.10000
+v 5.18750 3.35500 0.10000
+v 4.23750 3.13000 0.10000
+v 4.42250 3.77000 0.10000
+v 5.69750 4.14000 0.10000
+v 5.94250 4.73500 0.10000
+v 5.91750 4.79500 0.10000
+v 5.88250 4.79500 0.10000
+v 4.42134 4.38192 0.15000
+v 3.68779 4.14062 0.15000
+v 3.51819 3.58274 0.15000
+v 3.50554 3.58837 0.15000
+v 3.69627 3.64831 0.15000
+v 3.74725 3.58033 0.15000
+v 3.10590 1.26743 0.15000
+v 2.99540 0.81101 0.15000
+v 2.98360 0.83460 0.15000
+v 5.23877 1.48663 0.15000
+v 5.32232 1.53040 0.15000
+v 5.54853 2.13833 0.15000
+v 5.55375 2.12657 0.15000
+v 4.73027 1.92665 0.15000
+v 3.85993 1.67798 0.15000
+v 3.79723 1.75322 0.15000
+v 4.02196 2.55048 0.15000
+v 4.99579 2.82656 0.15000
+v 5.19943 3.30789 0.15000
+v 5.20030 3.30500 0.15000
+v 5.19334 3.30500 0.15000
+v 4.16568 3.06161 0.15000
+v 4.38211 3.81034 0.15000
+v 5.66044 4.18131 0.15000
+v 5.88838 4.73489 0.15000
+v 5.88417 4.74500 0.15000
+v 5.88859 4.74500 0.15000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 0.0000 1.0000
+vn -0.5618 0.8273 0.0000
+vn -0.6518 0.7584 0.0000
+vn -0.7409 0.6716 0.0000
+vn -0.9839 0.1789 0.0000
+vn -0.7194 -0.6946 0.0000
+vn -0.5470 -0.8371 0.0000
+vn -0.6596 0.7516 0.0000
+vn -0.5455 0.8381 0.0000
+vn -0.7071 0.7071 0.0000
+vn -0.9864 0.1644 0.0000
+vn -0.9568 -0.2907 0.0000
+vn -0.7186 -0.6954 0.0000
+vn 0.2425 -0.9701 0.0000
+vn 0.6360 -0.7717 0.0000
+vn 0.6022 -0.7984 0.0000
+vn 0.6554 -0.7553 0.0000
+vn -0.7198 -0.6941 0.0000
+vn -0.9776 0.2104 0.0000
+vn 0.3634 -0.9316 0.0000
+vn 0.7071 -0.7071 0.0000
+vn -0.7071 -0.7071 0.0000
+vn -0.9799 0.1993 0.0000
+vn 0.3487 -0.9372 0.0000
+vn 0.7194 -0.6946 0.0000
+vn 0.9754 -0.2204 0.0000
+vn 0.6941 -0.7198 0.0000
+vn -0.9270 -0.3749 0.0000
+vn -0.7319 -0.6814 0.0000
+vn -0.2169 -0.9762 0.0000
+vn 0.4524 -0.8918 0.0000
+vn 0.9713 -0.2377 0.0000
+vn -0.8910 -0.4539 0.0000
+vn -0.7145 -0.6996 0.0000
+vn -0.4472 -0.8944 0.0000
+vn -0.0232 -0.9997 0.0000
+vn -0.9623 0.2720 0.0000
+vn 0.3569 -0.9341 0.0000
+vn 0.9545 -0.2983 0.0000
+vn -0.6892 -0.7246 0.0000
+vn 0.2817 -0.9595 0.0000
+vn 0.9394 -0.3429 0.0000
+vn 0.7625 0.6470 0.0000
+vn -0.2491 0.9685 0.0000
+vn 0.7194 0.6946 0.0000
+vn 0.9607 -0.2775 0.0000
+vn 0.2604 -0.9655 0.0000
+vn 0.6950 -0.7190 0.0000
+vn 0.9367 -0.3502 0.0000
+vn 0.6703 0.7421 0.0000
+vn -0.2243 0.9745 0.0000
+vn 0.7071 0.7071 0.0000
+vn 0.9615 -0.2747 0.0000
+vn 0.2688 -0.9632 0.0000
+vn 0.7203 -0.6936 0.0000
+vn 0.9268 -0.3755 0.0000
+vn 0.9923 0.1240 0.0000
+vn -0.2406 0.9706 0.0000
+vn -0.3048 0.9524 0.0000
+vn -0.6847 0.7288 0.0000
+vn 0.7265 0.6872 0.0000
+vn 0.5547 0.8321 0.0000
+vn 0.2524 0.9676 0.0000
+vn -0.0791 0.9969 0.0000
+vn -0.3285 0.9445 0.0000
+vn -0.5049 0.8632 0.0000
+vn -0.6949 0.7191 0.0000
+vn 0.9572 -0.2894 0.0000
+vn 0.6568 0.7541 0.0000
+vn -0.3355 0.9420 0.0000
+vn -0.6936 0.7203 0.0000
+vn -0.9693 0.2460 0.0000
+vn 0.7303 0.6832 0.0000
+vn 0.9337 0.3580 0.0000
+vn 0.6814 0.7319 0.0000
+vn -0.3929 0.9196 0.0000
+vn -0.9701 0.2425 0.0000
+vn 0.7133 -0.7008 0.0000
+vn 0.9507 -0.3100 0.0000
+vn 0.7446 0.6675 0.0000
+vn -0.3405 0.9402 0.0000
+vn -0.7003 0.7138 0.0000
+vn 0.9487 0.3162 0.0000
+vn 0.6449 0.7643 0.0000
+vn -0.4390 0.8985 0.0000
+vn -0.5501 0.8351 0.0000
+vn -0.6332 0.7740 0.0000
+vn -0.7747 0.6324 0.0000
+vn -0.6757 -0.7372 0.0000
+vn -0.5444 -0.8388 0.0000
+vn -0.6178 -0.7863 0.0000
+vn -0.5865 0.8099 0.0000
+vn -0.5487 0.8360 0.0000
+vn -0.9582 -0.2860 0.0000
+vn -0.9114 -0.4116 0.0000
+vn 0.6380 -0.7700 0.0000
+vn 0.6094 -0.7929 0.0000
+vn 0.6720 -0.7406 0.0000
+vn 0.7562 -0.6544 0.0000
+vn 0.9939 0.1104 0.0000
+vn 0.6139 0.7894 0.0000
+vn 0.5221 0.8529 0.0000
+vn 0.6663 -0.7457 0.0000
+vn 0.5570 -0.8305 0.0000
+vn 0.4650 -0.8853 0.0000
+vn 0.9588 0.2841 0.0000
+vn 0.9255 0.3786 0.0000
+vn 0.3511 0.9363 0.0000
+vn -0.3890 0.5905 0.7071
+vn -0.4478 0.5473 0.7071
+vn -0.5000 0.5000 0.7071
+vn -0.5478 0.4472 0.7071
+vn -0.6957 0.1265 0.7071
+vn -0.4778 -0.5212 0.7071
+vn -0.3850 -0.5931 0.7071
+vn -0.4369 -0.5560 0.7071
+vn -0.4147 0.5727 0.7071
+vn -0.3880 0.5912 0.7071
+vn -0.6975 0.1163 0.7071
+vn -0.6776 -0.2023 0.7071
+vn -0.6445 -0.2910 0.7071
+vn 0.1715 -0.6860 0.7071
+vn 0.4511 -0.5445 0.7071
+vn 0.4309 -0.5606 0.7071
+vn 0.4752 -0.5237 0.7071
+vn 0.5347 -0.4627 0.7071
+vn 0.7028 0.0781 0.7071
+vn 0.5000 0.5000 0.7071
+vn 0.4341 0.5582 0.7071
+vn 0.3692 0.6031 0.7071
+vn 0.4712 -0.5273 0.7071
+vn 0.3938 -0.5873 0.7071
+vn 0.3288 -0.6260 0.7071
+vn 0.6780 0.2009 0.7071
+vn 0.6544 0.2677 0.7071
+vn 0.2483 0.6621 0.7071
+vn -0.3104 0.6353 0.7071
+vn -0.6402 0.7682 0.0000
+vn -0.9753 0.2209 0.0000
+vn -0.9829 0.1843 0.0000
+vn -0.9138 -0.4061 0.0000
+vn 0.3557 -0.9346 0.0000
+vn 0.4692 -0.8831 0.0000
+vn 0.9739 -0.2271 0.0000
+vn 0.9684 -0.2492 0.0000
+vn 0.1644 0.9864 0.0000
+vn -0.3497 0.9369 0.0000
+vn -0.4527 0.5432 0.7071
+vn -0.6897 0.1562 0.7071
+vn -0.6950 0.1303 0.7071
+vn -0.6462 -0.2872 0.7071
+vn 0.2515 -0.6609 0.7071
+vn 0.3317 -0.6245 0.7071
+vn 0.6886 -0.1606 0.7071
+vn 0.6848 -0.1762 0.7071
+vn 0.1158 0.6976 0.7070
+vn -0.2473 0.6625 0.7071
+vn -0.7682 0.6402 0.0000
+vn -0.9733 0.2294 0.0000
+vn -0.3511 -0.9363 0.0000
+vn 0.3304 -0.9439 0.0000
+vn 0.3779 -0.9258 0.0000
+vn 0.9439 -0.3304 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.3162 0.9487 0.0000
+vn -0.3534 0.9355 0.0000
+vn -0.5433 0.4526 0.7071
+vn -0.6883 0.1622 0.7071
+vn -0.2481 -0.6622 0.7071
+vn 0.2336 -0.6674 0.7071
+vn 0.2672 -0.6547 0.7071
+vn 0.6674 -0.2336 0.7071
+vn 0.7071 0.0000 0.7071
+vn 0.2240 0.6706 0.7071
+vn -0.2499 0.6615 0.7071
+vn -0.9716 0.2365 0.0000
+vn 0.9317 0.3633 0.0000
+vn 0.0767 0.9971 0.0000
+vn -0.4158 0.9095 0.0000
+vn -0.9736 0.2283 0.0000
+vn -0.9759 0.2181 0.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.3766 -0.9264 0.0000
+vn 0.9728 -0.2315 0.0000
+vn -0.9248 -0.3805 0.0000
+vn 0.4668 -0.8844 0.0000
+vn 0.9684 -0.2495 0.0000
+vn 0.9572 -0.2893 0.0000
+vn 0.9950 -0.0995 0.0000
+vn 0.3939 0.9191 0.0000
+vn -0.3532 0.9356 0.0000
+vn -0.7105 0.1742 0.6818
+vn 0.6809 0.2669 0.6819
+vn 0.0542 0.7050 0.7071
+vn -0.2940 0.6431 0.7071
+vn -0.6885 0.1614 0.7071
+vn -0.6901 0.1542 0.7071
+vn -0.7071 0.0000 0.7071
+vn 0.0000 -0.7071 0.7071
+vn 0.2663 -0.6551 0.7071
+vn 0.7083 -0.1697 0.6852
+vn -0.6731 -0.2781 0.6852
+vn -0.1533 -0.6903 0.7071
+vn 0.3300 -0.6253 0.7071
+vn 0.6847 -0.1764 0.7071
+vn 0.6769 -0.2046 0.7071
+vn 0.7036 -0.0704 0.7071
+vn 0.2785 0.6499 0.7071
+vn -0.2497 0.6615 0.7071
+vn -0.4399 0.8981 0.0000
+vn -0.5882 0.8087 0.0000
+vn -0.7139 0.7002 0.0000
+vn -0.8104 0.5859 0.0000
+vn -0.8817 0.4719 0.0000
+vn -0.9363 0.3511 0.0000
+vn -0.9710 0.2390 0.0000
+vn -0.9953 0.0971 0.0000
+vn -0.9978 -0.0665 0.0000
+vn -0.9628 -0.2703 0.0000
+vn -0.8638 -0.5039 0.0000
+vn -0.6364 -0.7714 0.0000
+vn -0.3096 -0.9509 0.0000
+vn 0.0651 -0.9979 0.0000
+vn 0.3311 -0.9436 0.0000
+vn -0.9594 0.2822 0.0000
+vn -0.9398 -0.3417 0.0000
+vn 0.3610 -0.9326 0.0000
+vn 0.9514 -0.3080 0.0000
+vn 0.6000 0.8000 0.0000
+vn -0.1807 0.9835 0.0000
+vn -0.2484 0.9687 0.0000
+vn -0.9450 0.3271 0.0000
+vn -0.3846 -0.9231 0.0000
+vn 0.2382 -0.9712 0.0000
+vn -0.8575 -0.5145 0.0000
+vn -0.9310 0.3651 0.0000
+vn -0.7572 0.6532 0.0000
+vn -0.5665 0.8240 0.0000
+vn -0.3714 0.9285 0.0000
+vn 0.0278 0.9996 0.0000
+vn 0.6292 0.7772 0.0000
+vn 0.8638 0.5039 0.0000
+vn 0.9882 0.1533 0.0000
+vn 0.9867 -0.1624 0.0000
+vn 0.9390 -0.3439 0.0000
+vn 0.8584 -0.5130 0.0000
+vn 0.5623 -0.8269 0.0000
+vn 0.3824 -0.9240 0.0000
+vn 0.1047 -0.9945 0.0000
+vn -0.3011 -0.9536 0.0000
+vn -0.6585 -0.7526 0.0000
+vn -0.8480 -0.5300 0.0000
+vn 0.7782 -0.6280 0.0000
+vn 0.8376 0.5463 0.0000
+vn 0.6738 0.7390 0.0000
+vn 0.3796 0.9252 0.0000
+vn 0.0565 0.9984 0.0000
+vn -0.2309 0.9730 0.0000
+vn -0.3110 0.6350 0.7071
+vn -0.4159 0.5718 0.7071
+vn -0.5048 0.4951 0.7071
+vn -0.5730 0.4143 0.7071
+vn -0.6234 0.3337 0.7071
+vn -0.6621 0.2483 0.7071
+vn -0.6866 0.1690 0.7071
+vn -0.7038 0.0687 0.7071
+vn -0.7056 -0.0470 0.7071
+vn -0.6808 -0.1911 0.7071
+vn -0.6108 -0.3563 0.7071
+vn -0.4500 -0.5454 0.7071
+vn -0.2189 -0.6724 0.7071
+vn 0.0460 -0.7056 0.7071
+vn 0.2341 -0.6672 0.7071
+vn -0.6784 0.1995 0.7071
+vn -0.6645 -0.2417 0.7071
+vn 0.2553 -0.6594 0.7071
+vn 0.6727 -0.2178 0.7071
+vn 0.4243 0.5657 0.7071
+vn -0.1277 0.6955 0.7071
+vn -0.1756 0.6849 0.7071
+vn -0.6682 0.2313 0.7071
+vn -0.2719 -0.6527 0.7071
+vn 0.1684 -0.6867 0.7071
+vn -0.6063 -0.3638 0.7071
+vn -0.6583 0.2582 0.7071
+vn -0.5354 0.4619 0.7071
+vn -0.4006 0.5827 0.7071
+vn -0.2626 0.6565 0.7071
+vn 0.0196 0.7068 0.7071
+vn 0.4449 0.5496 0.7071
+vn 0.6108 0.3563 0.7071
+vn 0.6988 0.1084 0.7071
+vn 0.6977 -0.1148 0.7071
+vn 0.6640 -0.2432 0.7071
+vn 0.6070 -0.3627 0.7071
+vn 0.5093 -0.4905 0.7071
+vn 0.3976 -0.5847 0.7071
+vn 0.2703 -0.6534 0.7071
+vn 0.0740 -0.7032 0.7071
+vn -0.2129 -0.6743 0.7071
+vn -0.4657 -0.5322 0.7071
+vn -0.5996 -0.3748 0.7071
+vn 0.5503 -0.4441 0.7071
+vn 0.7028 0.0780 0.7071
+vn 0.5923 0.3863 0.7071
+vn 0.4764 0.5225 0.7071
+vn 0.2684 0.6542 0.7071
+vn 0.0400 0.7060 0.7071
+vn -0.1633 0.6880 0.7071
+vn -0.3125 0.9499 0.0000
+vn -0.9568 0.2909 0.0000
+vn -0.4061 -0.9138 0.0000
+vn 0.2998 -0.9540 0.0000
+vn -0.8000 -0.6000 0.0000
+vn -0.9636 0.2672 0.0000
+vn -0.9719 0.2353 0.0000
+vn -0.8944 -0.4472 0.0000
+vn 0.2778 -0.9607 0.0000
+vn 0.4640 -0.8858 0.0000
+vn 0.9372 -0.3487 0.0000
+vn 0.9138 0.4061 0.0000
+vn -0.2359 0.9718 0.0000
+vn -0.2747 0.9615 0.0000
+vn 0.7682 0.6402 0.0000
+vn 0.9625 -0.2713 0.0000
+vn 0.2728 -0.9621 0.0000
+vn 0.9210 -0.3896 0.0000
+vn 0.9578 0.2873 0.0000
+vn 0.0000 1.0000 0.0000
+vn -0.2305 0.9731 0.0000
+vn 0.9607 -0.2777 0.0000
+vn 0.2787 -0.9604 0.0000
+vn 0.9247 -0.3807 0.0000
+vn 0.9231 0.3846 0.0000
+vn -0.2402 0.9707 0.0000
+vn -0.2210 0.6717 0.7071
+vn -0.6765 0.2057 0.7071
+vn -0.2871 -0.6462 0.7071
+vn 0.2120 -0.6746 0.7071
+vn -0.5657 -0.4242 0.7071
+vn -0.6814 0.1889 0.7071
+vn -0.6873 0.1664 0.7071
+vn -0.6327 -0.3159 0.7071
+vn 0.1964 -0.6793 0.7071
+vn 0.3281 -0.6264 0.7071
+vn 0.6627 -0.2466 0.7071
+vn 0.6461 0.2873 0.7071
+vn -0.1668 0.6872 0.7071
+vn -0.1943 0.6799 0.7071
+vn 0.5432 0.4527 0.7071
+vn 0.6806 -0.1918 0.7071
+vn 0.1929 -0.6803 0.7071
+vn 0.6512 -0.2755 0.7071
+vn 0.6773 0.2031 0.7071
+vn 0.0000 0.7071 0.7071
+vn -0.1630 0.6881 0.7071
+vn 0.6793 -0.1964 0.7071
+vn 0.1971 -0.6791 0.7071
+vn 0.6539 -0.2692 0.7071
+vn 0.6527 0.2720 0.7071
+vn -0.1699 0.6864 0.7071
+o plate
+usemtl champagne
+f 1//1 105//1 104//1
+f 209//2 210//2 106//2
+f 1//1 104//1 103//1
+f 208//2 209//2 106//2
+f 1//1 103//1 102//1
+f 207//2 208//2 106//2
+f 102//1 101//1 100//1
+f 205//2 206//2 207//2
+f 102//1 100//1 99//1
+f 204//2 205//2 207//2
+f 102//1 99//1 98//1
+f 203//2 204//2 207//2
+f 102//1 98//1 97//1
+f 202//2 203//2 207//2
+f 1//1 102//1 97//1
+f 202//2 207//2 106//2
+f 1//1 97//1 96//1
+f 201//2 202//2 106//2
+f 95//1 94//1 93//1
+f 198//2 199//2 200//2
+f 95//1 93//1 92//1
+f 197//2 198//2 200//2
+f 96//1 95//1 92//1
+f 197//2 200//2 201//2
+f 96//1 92//1 91//1
+f 196//2 197//2 201//2
+f 96//1 91//1 90//1
+f 195//2 196//2 201//2
+f 96//1 90//1 89//1
+f 194//2 195//2 201//2
+f 88//1 87//1 86//1
+f 191//2 192//2 193//2
+f 88//1 86//1 85//1
+f 190//2 191//2 193//2
+f 88//1 85//1 84//1
+f 189//2 190//2 193//2
+f 88//1 84//1 83//1
+f 188//2 189//2 193//2
+f 89//1 88//1 83//1
+f 188//2 193//2 194//2
+f 89//1 83//1 82//1
+f 187//2 188//2 194//2
+f 82//1 81//1 80//1
+f 185//2 186//2 187//2
+f 82//1 80//1 79//1
+f 184//2 185//2 187//2
+f 82//1 79//1 78//1
+f 183//2 184//2 187//2
+f 82//1 78//1 77//1
+f 182//2 183//2 187//2
+f 89//1 82//1 77//1
+f 182//2 187//2 194//2
+f 89//1 77//1 76//1
+f 181//2 182//2 194//2
+f 89//1 76//1 75//1
+f 180//2 181//2 194//2
+f 75//1 74//1 73//1
+f 178//2 179//2 180//2
+f 75//1 73//1 72//1
+f 177//2 178//2 180//2
+f 75//1 72//1 71//1
+f 176//2 177//2 180//2
+f 89//1 75//1 71//1
+f 176//2 180//2 194//2
+f 89//1 71//1 70//1
+f 175//2 176//2 194//2
+f 89//1 70//1 69//1
+f 174//2 175//2 194//2
+f 89//1 69//1 68//1
+f 173//2 174//2 194//2
+f 89//1 68//1 67//1
+f 172//2 173//2 194//2
+f 89//1 67//1 66//1
+f 171//2 172//2 194//2
+f 89//1 66//1 65//1
+f 170//2 171//2 194//2
+f 89//1 65//1 64//1
+f 169//2 170//2 194//2
+f 64//1 63//1 62//1
+f 167//2 168//2 169//2
+f 89//1 64//1 62//1
+f 167//2 169//2 194//2
+f 89//1 62//1 61//1
+f 166//2 167//2 194//2
+f 89//1 61//1 60//1
+f 165//2 166//2 194//2
+f 89//1 60//1 59//1
+f 164//2 165//2 194//2
+f 89//1 59//1 58//1
+f 163//2 164//2 194//2
+f 89//1 58//1 57//1
+f 162//2 163//2 194//2
+f 89//1 57//1 56//1
+f 161//2 162//2 194//2
+f 56//1 55//1 54//1
+f 159//2 160//2 161//2
+f 56//1 54//1 53//1
+f 158//2 159//2 161//2
+f 89//1 56//1 53//1
+f 158//2 161//2 194//2
+f 89//1 53//1 52//1
+f 157//2 158//2 194//2
+f 52//1 51//1 50//1
+f 155//2 156//2 157//2
+f 89//1 52//1 50//1
+f 155//2 157//2 194//2
+f 96//1 89//1 50//1
+f 155//2 194//2 201//2
+f 1//1 96//1 50//1
+f 155//2 201//2 106//2
+f 1//1 50//1 49//1
+f 154//2 155//2 106//2
+f 49//1 48//1 47//1
+f 152//2 153//2 154//2
+f 49//1 47//1 46//1
+f 151//2 152//2 154//2
+f 49//1 46//1 45//1
+f 150//2 151//2 154//2
+f 49//1 45//1 44//1
+f 149//2 150//2 154//2
+f 49//1 44//1 43//1
+f 148//2 149//2 154//2
+f 43//1 42//1 41//1
+f 146//2 147//2 148//2
+f 43//1 41//1 40//1
+f 145//2 146//2 148//2
+f 49//1 43//1 40//1
+f 145//2 148//2 154//2
+f 49//1 40//1 39//1
+f 144//2 145//2 154//2
+f 49//1 39//1 38//1
+f 143//2 144//2 154//2
+f 1//1 49//1 38//1
+f 143//2 154//2 106//2
+f 1//1 38//1 37//1
+f 142//2 143//2 106//2
+f 1//1 37//1 36//1
+f 141//2 142//2 106//2
+f 36//1 35//1 34//1
+f 139//2 140//2 141//2
+f 36//1 34//1 33//1
+f 138//2 139//2 141//2
+f 36//1 33//1 32//1
+f 137//2 138//2 141//2
+f 36//1 32//1 31//1
+f 136//2 137//2 141//2
+f 36//1 31//1 30//1
+f 135//2 136//2 141//2
+f 1//1 36//1 30//1
+f 135//2 141//2 106//2
+f 1//1 30//1 29//1
+f 134//2 135//2 106//2
+f 1//1 29//1 28//1
+f 133//2 134//2 106//2
+f 1//1 28//1 27//1
+f 132//2 133//2 106//2
+f 27//1 26//1 25//1
+f 130//2 131//2 132//2
+f 27//1 25//1 24//1
+f 129//2 130//2 132//2
+f 1//1 27//1 24//1
+f 129//2 132//2 106//2
+f 1//1 24//1 23//1
+f 128//2 129//2 106//2
+f 1//1 23//1 22//1
+f 127//2 128//2 106//2
+f 22//1 21//1 20//1
+f 125//2 126//2 127//2
+f 22//1 20//1 19//1
+f 124//2 125//2 127//2
+f 1//1 22//1 19//1
+f 124//2 127//2 106//2
+f 1//1 19//1 18//1
+f 123//2 124//2 106//2
+f 1//1 18//1 17//1
+f 122//2 123//2 106//2
+f 1//1 17//1 16//1
+f 121//2 122//2 106//2
+f 16//1 15//1 14//1
+f 119//2 120//2 121//2
+f 16//1 14//1 13//1
+f 118//2 119//2 121//2
+f 16//1 13//1 12//1
+f 117//2 118//2 121//2
+f 16//1 12//1 11//1
+f 116//2 117//2 121//2
+f 16//1 11//1 10//1
+f 115//2 116//2 121//2
+f 16//1 10//1 9//1
+f 114//2 115//2 121//2
+f 16//1 9//1 8//1
+f 113//2 114//2 121//2
+f 1//1 16//1 8//1
+f 113//2 121//2 106//2
+f 1//1 8//1 7//1
+f 112//2 113//2 106//2
+f 1//1 7//1 6//1
+f 111//2 112//2 106//2
+f 1//1 6//1 5//1
+f 110//2 111//2 106//2
+f 1//1 5//1 4//1
+f 109//2 110//2 106//2
+f 1//1 4//1 3//1
+f 108//2 109//2 106//2
+f 3//1 2//1 1//1
+f 106//2 107//2 108//2
+f 1//3 2//3 107//3 106//3
+f 2//4 3//4 108//4 107//4
+f 3//5 4//5 109//5 108//5
+f 4//6 5//6 110//6 109//6
+f 5//7 6//7 111//7 110//7
+f 6//8 7//8 112//8 111//8
+f 7//7 8//7 113//7 112//7
+f 8//9 9//9 114//9 113//9
+f 9//10 10//10 115//10 114//10
+f 10//11 11//11 116//11 115//11
+f 11//12 12//12 117//12 116//12
+f 12//13 13//13 118//13 117//13
+f 13//14 14//14 119//14 118//14
+f 14//15 15//15 120//15 119//15
+f 15//16 16//16 121//16 120//16
+f 16//17 17//17 122//17 121//17
+f 17//18 18//18 123//18 122//18
+f 18//19 19//19 124//19 123//19
+f 19//20 20//20 125//20 124//20
+f 20//7 21//7 126//7 125//7
+f 21//21 22//21 127//21 126//21
+f 22//22 23//22 128//22 127//22
+f 23//23 24//23 129//23 128//23
+f 24//24 25//24 130//24 129//24
+f 25//23 26//23 131//23 130//23
+f 26//25 27//25 132//25 131//25
+f 27//26 28//26 133//26 132//26
+f 28//27 29//27 134//27 133//27
+f 29//28 30//28 135//28 134//28
+f 30//23 31//23 136//23 135//23
+f 31//29 32//29 137//29 136//29
+f 32//30 33//30 138//30 137//30
+f 33//31 34//31 139//31 138//31
+f 34//32 35//32 140//32 139//32
+f 35//22 36//22 141//22 140//22
+f 36//33 37//33 142//33 141//33
+f 37//26 38//26 143//26 142//26
+f 38//23 39//23 144//23 143//23
+f 39//34 40//34 145//34 144//34
+f 40//35 41//35 146//35 145//35
+f 41//36 42//36 147//36 146//36
+f 42//37 43//37 148//37 147//37
+f 43//23 44//23 149//23 148//23
+f 44//38 45//38 150//38 149//38
+f 45//23 46//23 151//23 150//23
+f 46//39 47//39 152//39 151//39
+f 47//22 48//22 153//22 152//22
+f 48//40 49//40 154//40 153//40
+f 49//22 50//22 155//22 154//22
+f 50//41 51//41 156//41 155//41
+f 51//42 52//42 157//42 156//42
+f 52//22 53//22 158//22 157//22
+f 53//43 54//43 159//43 158//43
+f 54//44 55//44 160//44 159//44
+f 55//45 56//45 161//45 160//45
+f 56//46 57//46 162//46 161//46
+f 57//47 58//47 163//47 162//47
+f 58//22 59//22 164//22 163//22
+f 59//48 60//48 165//48 164//48
+f 60//49 61//49 166//49 165//49
+f 61//50 62//50 167//50 166//50
+f 62//51 63//51 168//51 167//51
+f 63//52 64//52 169//52 168//52
+f 64//53 65//53 170//53 169//53
+f 65//54 66//54 171//54 170//54
+f 66//26 67//26 172//26 171//26
+f 67//55 68//55 173//55 172//55
+f 68//56 69//56 174//56 173//56
+f 69//57 70//57 175//57 174//57
+f 70//58 71//58 176//58 175//58
+f 71//53 72//53 177//53 176//53
+f 72//59 73//59 178//59 177//59
+f 73//60 74//60 179//60 178//60
+f 74//61 75//61 180//61 179//61
+f 75//62 76//62 181//62 180//62
+f 76//63 77//63 182//63 181//63
+f 77//64 78//64 183//64 182//64
+f 78//65 79//65 184//65 183//65
+f 79//66 80//66 185//66 184//66
+f 80//67 81//67 186//67 185//67
+f 81//68 82//68 187//68 186//68
+f 82//53 83//53 188//53 187//53
+f 83//69 84//69 189//69 188//69
+f 84//70 85//70 190//70 189//70
+f 85//71 86//71 191//71 190//71
+f 86//72 87//72 192//72 191//72
+f 87//73 88//73 193//73 192//73
+f 88//11 89//11 194//11 193//11
+f 89//74 90//74 195//74 194//74
+f 90//75 91//75 196//75 195//75
+f 91//76 92//76 197//76 196//76
+f 92//77 93//77 198//77 197//77
+f 93//11 94//11 199//11 198//11
+f 94//78 95//78 200//78 199//78
+f 95//11 96//11 201//11 200//11
+f 96//53 97//53 202//53 201//53
+f 97//79 98//79 203//79 202//79
+f 98//80 99//80 204//80 203//80
+f 99//81 100//81 205//81 204//81
+f 100//82 101//82 206//82 205//82
+f 101//83 102//83 207//83 206//83
+f 102//53 103//53 208//53 207//53
+f 103//84 104//84 209//84 208//84
+f 104//85 105//85 210//85 209//85
+f 105//86 1//86 106//86 210//86
+o letter01Walls
+usemtl frame
+f 211//1 239//1 238//1
+f 267//2 268//2 240//2
+f 211//1 238//1 237//1
+f 266//2 267//2 240//2
+f 211//1 237//1 236//1
+f 265//2 266//2 240//2
+f 211//1 236//1 235//1
+f 264//2 265//2 240//2
+f 211//1 235//1 234//1
+f 263//2 264//2 240//2
+f 211//1 234//1 233//1
+f 262//2 263//2 240//2
+f 233//1 232//1 231//1
+f 260//2 261//2 262//2
+f 233//1 231//1 230//1
+f 259//2 260//2 262//2
+f 233//1 230//1 229//1
+f 258//2 259//2 262//2
+f 233//1 229//1 228//1
+f 257//2 258//2 262//2
+f 233//1 228//1 227//1
+f 256//2 257//2 262//2
+f 226//1 225//1 224//1
+f 253//2 254//2 255//2
+f 226//1 224//1 223//1
+f 252//2 253//2 255//2
+f 227//1 226//1 223//1
+f 252//2 255//2 256//2
+f 227//1 223//1 222//1
+f 251//2 252//2 256//2
+f 227//1 222//1 221//1
+f 250//2 251//2 256//2
+f 227//1 221//1 220//1
+f 249//2 250//2 256//2
+f 227//1 220//1 219//1
+f 248//2 249//2 256//2
+f 233//1 227//1 219//1
+f 248//2 256//2 262//2
+f 233//1 219//1 218//1
+f 247//2 248//2 262//2
+f 233//1 218//1 217//1
+f 246//2 247//2 262//2
+f 211//1 233//1 217//1
+f 246//2 262//2 240//2
+f 211//1 217//1 216//1
+f 245//2 246//2 240//2
+f 211//1 216//1 215//1
+f 244//2 245//2 240//2
+f 211//1 215//1 214//1
+f 243//2 244//2 240//2
+f 211//1 214//1 213//1
+f 242//2 243//2 240//2
+f 213//1 212//1 211//1
+f 240//2 241//2 242//2
+f 211//87 212//87 241//87 240//87
+f 212//88 213//88 242//88 241//88
+f 213//11 214//11 243//11 242//11
+f 214//89 215//89 244//89 243//89
+f 215//6 216//6 245//6 244//6
+f 216//90 217//90 246//90 245//90
+f 217//91 218//91 247//91 246//91
+f 218//92 219//92 248//92 247//92
+f 219//93 220//93 249//93 248//93
+f 220//94 221//94 250//94 249//94
+f 221//12 222//12 251//12 250//12
+f 222//95 223//95 252//95 251//95
+f 223//96 224//96 253//96 252//96
+f 224//15 225//15 254//15 253//15
+f 225//97 226//97 255//97 254//97
+f 226//98 227//98 256//98 255//98
+f 227//99 228//99 257//99 256//99
+f 228//100 229//100 258//100 257//100
+f 229//101 230//101 259//101 258//101
+f 230//53 231//53 260//53 259//53
+f 231//102 232//102 261//102 260//102
+f 232//103 233//103 262//103 261//103
+f 233//104 234//104 263//104 262//104
+f 234//105 235//105 264//105 263//105
+f 235//106 236//106 265//106 264//106
+f 236//107 237//107 266//107 265//107
+f 237//108 238//108 267//108 266//108
+f 238//109 239//109 268//109 267//109
+f 239//86 211//86 240//86 268//86
+o letter01Face
+usemtl dark
+f 269//1 297//1 296//1
+f 354//1 355//1 327//1
+f 269//1 296//1 295//1
+f 353//2 354//2 327//2
+f 269//1 295//1 294//1
+f 352//2 353//2 327//2
+f 269//1 294//1 293//1
+f 351//2 352//2 327//2
+f 269//1 293//1 292//1
+f 350//2 351//2 327//2
+f 269//1 292//1 291//1
+f 349//2 350//2 327//2
+f 291//1 290//1 289//1
+f 347//2 348//2 349//2
+f 291//1 289//1 288//1
+f 346//2 347//2 349//2
+f 291//1 288//1 287//1
+f 345//2 346//2 349//2
+f 291//1 287//1 286//1
+f 344//2 345//2 349//2
+f 291//1 286//1 285//1
+f 343//2 344//2 349//2
+f 284//1 283//1 282//1
+f 340//2 341//2 342//2
+f 284//1 282//1 281//1
+f 339//2 340//2 342//2
+f 285//1 284//1 281//1
+f 339//2 342//2 343//2
+f 285//1 281//1 280//1
+f 338//2 339//2 343//2
+f 285//1 280//1 279//1
+f 337//2 338//2 343//2
+f 285//1 279//1 278//1
+f 336//2 337//2 343//2
+f 285//1 278//1 277//1
+f 335//2 336//2 343//2
+f 291//1 285//1 277//1
+f 335//2 343//2 349//2
+f 291//1 277//1 276//1
+f 334//2 335//2 349//2
+f 291//1 276//1 275//1
+f 333//2 334//2 349//2
+f 269//1 291//1 275//1
+f 333//2 349//2 327//2
+f 269//1 275//1 274//1
+f 332//2 333//2 327//2
+f 269//1 274//1 273//1
+f 331//2 332//2 327//2
+f 269//1 273//1 272//1
+f 330//2 331//2 327//2
+f 269//1 272//1 271//1
+f 329//2 330//2 327//2
+f 271//1 270//1 269//1
+f 327//2 328//2 329//2
+f 269//87 270//87 299//87 298//87
+f 270//88 271//88 300//88 299//88
+f 271//11 272//11 301//11 300//11
+f 272//89 273//89 302//89 301//89
+f 273//6 274//6 303//6 302//6
+f 274//90 275//90 304//90 303//90
+f 275//91 276//91 305//91 304//91
+f 276//92 277//92 306//92 305//92
+f 277//93 278//93 307//93 306//93
+f 278//94 279//94 308//94 307//94
+f 279//12 280//12 309//12 308//12
+f 280//95 281//95 310//95 309//95
+f 281//96 282//96 311//96 310//96
+f 282//15 283//15 312//15 311//15
+f 283//97 284//97 313//97 312//97
+f 284//98 285//98 314//98 313//98
+f 285//99 286//99 315//99 314//99
+f 286//100 287//100 316//100 315//100
+f 287//101 288//101 317//101 316//101
+f 288//53 289//53 318//53 317//53
+f 289//102 290//102 319//102 318//102
+f 290//103 291//103 320//103 319//103
+f 291//104 292//104 321//104 320//104
+f 292//105 293//105 322//105 321//105
+f 293//106 294//106 323//106 322//106
+f 294//107 295//107 324//107 323//107
+f 295//108 296//108 325//108 324//108
+f 296//109 297//109 326//109 325//109
+f 297//86 269//86 298//86 326//86
+f 298//110 299//110 328//110 327//110
+f 299//111 300//111 329//111 328//111
+f 300//112 301//112 330//112 329//112
+f 301//113 302//113 331//113 330//113
+f 302//114 303//114 332//114 331//114
+f 303//115 304//115 333//115 332//115
+f 304//116 305//116 334//116 333//116
+f 305//117 306//117 335//117 334//117
+f 306//118 307//118 336//118 335//118
+f 307//119 308//119 337//119 336//119
+f 308//120 309//120 338//120 337//120
+f 309//121 310//121 339//121 338//121
+f 310//122 311//122 340//122 339//122
+f 311//123 312//123 341//123 340//123
+f 312//124 313//124 342//124 341//124
+f 313//125 314//125 343//125 342//125
+f 314//126 315//126 344//126 343//126
+f 315//127 316//127 345//127 344//127
+f 316//128 317//128 346//128 345//128
+f 317//129 318//129 347//129 346//129
+f 318//130 319//130 348//130 347//130
+f 319//131 320//131 349//131 348//131
+f 320//132 321//132 350//132 349//132
+f 321//133 322//133 351//133 350//133
+f 322//134 323//134 352//134 351//134
+f 323//135 324//135 353//135 352//135
+f 324//136 325//136 354//136 353//136
+f 325//137 326//137 355//137 354//137
+f 326//138 298//138 327//138 355//138
+o letter02Walls
+usemtl frame
+f 356//1 366//1 365//1
+f 376//2 377//2 367//2
+f 356//1 365//1 364//1
+f 375//2 376//2 367//2
+f 356//1 364//1 363//1
+f 374//2 375//2 367//2
+f 356//1 363//1 362//1
+f 373//2 374//2 367//2
+f 356//1 362//1 361//1
+f 372//2 373//2 367//2
+f 356//1 361//1 360//1
+f 371//2 372//2 367//2
+f 356//1 360//1 359//1
+f 370//2 371//2 367//2
+f 356//1 359//1 358//1
+f 369//2 370//2 367//2
+f 358//1 357//1 356//1
+f 367//2 368//2 369//2
+f 356//139 357//139 368//139 367//139
+f 357//140 358//140 369//140 368//140
+f 358//141 359//141 370//141 369//141
+f 359//142 360//142 371//142 370//142
+f 360//143 361//143 372//143 371//143
+f 361//144 362//144 373//144 372//144
+f 362//145 363//145 374//145 373//145
+f 363//146 364//146 375//146 374//146
+f 364//101 365//101 376//101 375//101
+f 365//147 366//147 377//147 376//147
+f 366//148 356//148 367//148 377//148
+o letter02Face
+usemtl dark
+f 378//1 388//1 387//1
+f 409//1 410//1 400//1
+f 378//1 387//1 386//1
+f 408//1 409//1 400//1
+f 378//1 386//1 385//1
+f 407//2 408//2 400//2
+f 378//1 385//1 384//1
+f 406//2 407//2 400//2
+f 378//1 384//1 383//1
+f 405//2 406//2 400//2
+f 378//1 383//1 382//1
+f 404//2 405//2 400//2
+f 378//1 382//1 381//1
+f 403//1 404//1 400//1
+f 378//1 381//1 380//1
+f 402//2 403//2 400//2
+f 380//1 379//1 378//1
+f 400//2 401//2 402//2
+f 378//139 379//139 390//139 389//139
+f 379//140 380//140 391//140 390//140
+f 380//141 381//141 392//141 391//141
+f 381//142 382//142 393//142 392//142
+f 382//143 383//143 394//143 393//143
+f 383//144 384//144 395//144 394//144
+f 384//145 385//145 396//145 395//145
+f 385//146 386//146 397//146 396//146
+f 386//101 387//101 398//101 397//101
+f 387//147 388//147 399//147 398//147
+f 388//148 378//148 389//148 399//148
+f 389//149 390//149 401//149 400//149
+f 390//150 391//150 402//150 401//150
+f 391//151 392//151 403//151 402//151
+f 392//152 393//152 404//152 403//152
+f 393//153 394//153 405//153 404//153
+f 394//154 395//154 406//154 405//154
+f 395//155 396//155 407//155 406//155
+f 396//156 397//156 408//156 407//156
+f 397//128 398//128 409//128 408//128
+f 398//157 399//157 410//157 409//157
+f 399//158 389//158 400//158 410//158
+o letter03Walls
+usemtl frame
+f 411//1 419//1 418//1
+f 427//2 428//2 420//2
+f 411//1 418//1 417//1
+f 426//2 427//2 420//2
+f 411//1 417//1 416//1
+f 425//2 426//2 420//2
+f 411//1 416//1 415//1
+f 424//2 425//2 420//2
+f 411//1 415//1 414//1
+f 423//2 424//2 420//2
+f 411//1 414//1 413//1
+f 422//2 423//2 420//2
+f 413//1 412//1 411//1
+f 420//2 421//2 422//2
+f 411//159 412//159 421//159 420//159
+f 412//160 413//160 422//160 421//160
+f 413//161 414//161 423//161 422//161
+f 414//162 415//162 424//162 423//162
+f 415//163 416//163 425//163 424//163
+f 416//164 417//164 426//164 425//164
+f 417//165 418//165 427//165 426//165
+f 418//166 419//166 428//166 427//166
+f 419//167 411//167 420//167 428//167
+o letter03Face
+usemtl dark
+f 429//1 437//1 436//1
+f 454//1 455//1 447//1
+f 429//1 436//1 435//1
+f 453//1 454//1 447//1
+f 429//1 435//1 434//1
+f 452//2 453//2 447//2
+f 429//1 434//1 433//1
+f 451//2 452//2 447//2
+f 429//1 433//1 432//1
+f 450//2 451//2 447//2
+f 429//1 432//1 431//1
+f 449//1 450//1 447//1
+f 431//1 430//1 429//1
+f 447//2 448//2 449//2
+f 429//159 430//159 439//159 438//159
+f 430//160 431//160 440//160 439//160
+f 431//161 432//161 441//161 440//161
+f 432//162 433//162 442//162 441//162
+f 433//163 434//163 443//163 442//163
+f 434//164 435//164 444//164 443//164
+f 435//165 436//165 445//165 444//165
+f 436//166 437//166 446//166 445//166
+f 437//167 429//167 438//167 446//167
+f 438//168 439//168 448//168 447//168
+f 439//169 440//169 449//169 448//169
+f 440//170 441//170 450//170 449//170
+f 441//171 442//171 451//171 450//171
+f 442//172 443//172 452//172 451//172
+f 443//173 444//173 453//173 452//173
+f 444//174 445//174 454//174 453//174
+f 445//175 446//175 455//175 454//175
+f 446//176 438//176 447//176 455//176
+o letter04Walls
+usemtl frame
+f 456//1 473//1 472//1
+f 490//2 491//2 474//2
+f 456//1 472//1 471//1
+f 489//2 490//2 474//2
+f 456//1 471//1 470//1
+f 488//2 489//2 474//2
+f 456//1 470//1 469//1
+f 487//2 488//2 474//2
+f 456//1 469//1 468//1
+f 486//2 487//2 474//2
+f 456//1 468//1 467//1
+f 485//2 486//2 474//2
+f 466//1 465//1 464//1
+f 482//2 483//2 484//2
+f 466//1 464//1 463//1
+f 481//2 482//2 484//2
+f 466//1 463//1 462//1
+f 480//2 481//2 484//2
+f 466//1 462//1 461//1
+f 479//2 480//2 484//2
+f 466//1 461//1 460//1
+f 478//2 479//2 484//2
+f 467//1 466//1 460//1
+f 478//2 484//2 485//2
+f 467//1 460//1 459//1
+f 477//2 478//2 485//2
+f 467//1 459//1 458//1
+f 476//2 477//2 485//2
+f 467//1 458//1 457//1
+f 475//2 476//2 485//2
+f 467//1 457//1 456//1
+f 474//2 475//2 485//2
+f 456//177 457//177 475//177 474//177
+f 457//178 458//178 476//178 475//178
+f 458//179 459//179 477//179 476//179
+f 459//180 460//180 478//180 477//180
+f 460//181 461//181 479//181 478//181
+f 461//182 462//182 480//182 479//182
+f 462//183 463//183 481//183 480//183
+f 463//184 464//184 482//184 481//184
+f 464//185 465//185 483//185 482//185
+f 465//186 466//186 484//186 483//186
+f 466//187 467//187 485//187 484//187
+f 467//31 468//31 486//31 485//31
+f 468//188 469//188 487//188 486//188
+f 469//189 470//189 488//189 487//189
+f 470//190 471//190 489//190 488//190
+f 471//191 472//191 490//191 489//191
+f 472//192 473//192 491//192 490//192
+f 473//193 456//193 474//193 491//193
+o letter04Face
+usemtl dark
+f 492//1 509//1 508//1
+f 544//1 545//1 528//1
+f 492//1 508//1 507//1
+f 543//2 544//2 528//2
+f 492//1 507//1 506//1
+f 542//2 543//2 528//2
+f 492//1 506//1 505//1
+f 541//2 542//2 528//2
+f 492//1 505//1 504//1
+f 540//2 541//2 528//2
+f 492//1 504//1 503//1
+f 539//2 540//2 528//2
+f 502//1 501//1 500//1
+f 536//2 537//2 538//2
+f 502//1 500//1 499//1
+f 535//1 536//1 538//1
+f 502//1 499//1 498//1
+f 534//2 535//2 538//2
+f 502//1 498//1 497//1
+f 533//2 534//2 538//2
+f 502//1 497//1 496//1
+f 532//2 533//2 538//2
+f 503//1 502//1 496//1
+f 532//2 538//2 539//2
+f 503//1 496//1 495//1
+f 531//2 532//2 539//2
+f 503//1 495//1 494//1
+f 530//2 531//2 539//2
+f 503//1 494//1 493//1
+f 529//2 530//2 539//2
+f 503//1 493//1 492//1
+f 528//2 529//2 539//2
+f 492//177 493//177 511//177 510//177
+f 493//178 494//178 512//178 511//178
+f 494//179 495//179 513//179 512//179
+f 495//180 496//180 514//180 513//180
+f 496//181 497//181 515//181 514//181
+f 497//182 498//182 516//182 515//182
+f 498//183 499//183 517//183 516//183
+f 499//184 500//184 518//184 517//184
+f 500//185 501//185 519//185 518//185
+f 501//186 502//186 520//186 519//186
+f 502//187 503//187 521//187 520//187
+f 503//31 504//31 522//31 521//31
+f 504//188 505//188 523//188 522//188
+f 505//189 506//189 524//189 523//189
+f 506//190 507//190 525//190 524//190
+f 507//191 508//191 526//191 525//191
+f 508//192 509//192 527//192 526//192
+f 509//193 492//193 510//193 527//193
+f 510//194 511//194 529//194 528//194
+f 511//195 512//195 530//195 529//195
+f 512//196 513//196 531//196 530//196
+f 513//197 514//197 532//197 531//197
+f 514//198 515//198 533//198 532//198
+f 515//199 516//199 534//199 533//199
+f 516//200 517//200 535//200 534//200
+f 517//201 518//201 536//201 535//201
+f 518//202 519//202 537//202 536//202
+f 519//203 520//203 538//203 537//203
+f 520//204 521//204 539//204 538//204
+f 521//205 522//205 540//205 539//205
+f 522//206 523//206 541//206 540//206
+f 523//207 524//207 542//207 541//207
+f 524//208 525//208 543//208 542//208
+f 525//209 526//209 544//209 543//209
+f 526//210 527//210 545//210 544//210
+f 527//211 510//211 528//211 545//211
+o letter05Walls
+usemtl frame
+f 546//1 597//1 596//1
+f 648//2 649//2 598//2
+f 546//1 596//1 595//1
+f 647//2 648//2 598//2
+f 546//1 595//1 594//1
+f 646//2 647//2 598//2
+f 546//1 594//1 593//1
+f 645//2 646//2 598//2
+f 546//1 593//1 592//1
+f 644//2 645//2 598//2
+f 546//1 592//1 591//1
+f 643//2 644//2 598//2
+f 546//1 591//1 590//1
+f 642//2 643//2 598//2
+f 546//1 590//1 589//1
+f 641//2 642//2 598//2
+f 546//1 589//1 588//1
+f 640//2 641//2 598//2
+f 546//1 588//1 587//1
+f 639//2 640//2 598//2
+f 546//1 587//1 586//1
+f 638//2 639//2 598//2
+f 546//1 586//1 585//1
+f 637//2 638//2 598//2
+f 546//1 585//1 584//1
+f 636//2 637//2 598//2
+f 546//1 584//1 583//1
+f 635//2 636//2 598//2
+f 546//1 583//1 582//1
+f 634//2 635//2 598//2
+f 571//1 570//1 569//1
+f 621//2 622//2 623//2
+f 571//1 569//1 568//1
+f 620//2 621//2 623//2
+f 571//1 568//1 567//1
+f 619//2 620//2 623//2
+f 572//1 571//1 567//1
+f 619//2 623//2 624//2
+f 573//1 572//1 567//1
+f 619//2 624//2 625//2
+f 573//1 567//1 566//1
+f 618//2 619//2 625//2
+f 574//1 573//1 566//1
+f 618//2 625//2 626//2
+f 574//1 566//1 565//1
+f 617//2 618//2 626//2
+f 574//1 565//1 564//1
+f 616//2 617//2 626//2
+f 575//1 574//1 564//1
+f 616//2 626//2 627//2
+f 576//1 575//1 564//1
+f 616//2 627//2 628//2
+f 564//1 563//1 562//1
+f 614//2 615//2 616//2
+f 564//1 562//1 561//1
+f 613//2 614//2 616//2
+f 576//1 564//1 561//1
+f 613//2 616//2 628//2
+f 577//1 576//1 561//1
+f 613//2 628//2 629//2
+f 578//1 577//1 561//1
+f 613//2 629//2 630//2
+f 578//1 561//1 560//1
+f 612//2 613//2 630//2
+f 579//1 578//1 560//1
+f 612//2 630//2 631//2
+f 579//1 560//1 559//1
+f 611//2 612//2 631//2
+f 580//1 579//1 559//1
+f 611//2 631//2 632//2
+f 580//1 559//1 558//1
+f 610//2 611//2 632//2
+f 580//1 558//1 557//1
+f 609//2 610//2 632//2
+f 581//1 580//1 557//1
+f 609//2 632//2 633//2
+f 581//1 557//1 556//1
+f 608//2 609//2 633//2
+f 582//1 581//1 556//1
+f 608//2 633//2 634//2
+f 546//1 582//1 556//1
+f 608//2 634//2 598//2
+f 546//1 556//1 555//1
+f 607//2 608//2 598//2
+f 546//1 555//1 554//1
+f 606//2 607//2 598//2
+f 546//1 554//1 553//1
+f 605//2 606//2 598//2
+f 546//1 553//1 552//1
+f 604//2 605//2 598//2
+f 546//1 552//1 551//1
+f 603//2 604//2 598//2
+f 546//1 551//1 550//1
+f 602//2 603//2 598//2
+f 546//1 550//1 549//1
+f 601//2 602//2 598//2
+f 546//1 549//1 548//1
+f 600//2 601//2 598//2
+f 548//1 547//1 546//1
+f 598//2 599//2 600//2
+f 546//212 547//212 599//212 598//212
+f 547//213 548//213 600//213 599//213
+f 548//214 549//214 601//214 600//214
+f 549//215 550//215 602//215 601//215
+f 550//216 551//216 603//216 602//216
+f 551//217 552//217 604//217 603//217
+f 552//218 553//218 605//218 604//218
+f 553//219 554//219 606//219 605//219
+f 554//220 555//220 607//220 606//220
+f 555//221 556//221 608//221 607//221
+f 556//222 557//222 609//222 608//222
+f 557//223 558//223 610//223 609//223
+f 558//224 559//224 611//224 610//224
+f 559//225 560//225 612//225 611//225
+f 560//226 561//226 613//226 612//226
+f 561//227 562//227 614//227 613//227
+f 562//228 563//228 615//228 614//228
+f 563//229 564//229 616//229 615//229
+f 564//230 565//230 617//230 616//230
+f 565//231 566//231 618//231 617//231
+f 566//232 567//232 619//232 618//232
+f 567//233 568//233 620//233 619//233
+f 568//234 569//234 621//234 620//234
+f 569//235 570//235 622//235 621//235
+f 570//236 571//236 623//236 622//236
+f 571//237 572//237 624//237 623//237
+f 572//238 573//238 625//238 624//238
+f 573//239 574//239 626//239 625//239
+f 574//240 575//240 627//240 626//240
+f 575//241 576//241 628//241 627//241
+f 576//242 577//242 629//242 628//242
+f 577//243 578//243 630//243 629//243
+f 578//244 579//244 631//244 630//244
+f 579//245 580//245 632//245 631//245
+f 580//246 581//246 633//246 632//246
+f 581//247 582//247 634//247 633//247
+f 582//248 583//248 635//248 634//248
+f 583//56 584//56 636//56 635//56
+f 584//249 585//249 637//249 636//249
+f 585//250 586//250 638//250 637//250
+f 586//251 587//251 639//251 638//251
+f 587//252 588//252 640//252 639//252
+f 588//253 589//253 641//253 640//253
+f 589//254 590//254 642//254 641//254
+f 590//184 591//184 643//184 642//184
+f 591//255 592//255 644//255 643//255
+f 592//101 593//101 645//101 644//101
+f 593//256 594//256 646//256 645//256
+f 594//257 595//257 647//257 646//257
+f 595//258 596//258 648//258 647//258
+f 596//259 597//259 649//259 648//259
+f 597//260 546//260 598//260 649//260
+o letter05Face
+usemtl dark
+f 650//1 701//1 700//1
+f 804//2 805//2 754//2
+f 650//1 700//1 699//1
+f 803//2 804//2 754//2
+f 650//1 699//1 698//1
+f 802//2 803//2 754//2
+f 650//1 698//1 697//1
+f 801//2 802//2 754//2
+f 650//1 697//1 696//1
+f 800//2 801//2 754//2
+f 650//1 696//1 695//1
+f 799//2 800//2 754//2
+f 650//1 695//1 694//1
+f 798//1 799//1 754//1
+f 650//1 694//1 693//1
+f 797//1 798//1 754//1
+f 650//1 693//1 692//1
+f 796//2 797//2 754//2
+f 650//1 692//1 691//1
+f 795//2 796//2 754//2
+f 650//1 691//1 690//1
+f 794//2 795//2 754//2
+f 650//1 690//1 689//1
+f 793//2 794//2 754//2
+f 650//1 689//1 688//1
+f 792//2 793//2 754//2
+f 650//1 688//1 687//1
+f 791//2 792//2 754//2
+f 650//1 687//1 686//1
+f 790//2 791//2 754//2
+f 675//1 674//1 673//1
+f 777//2 778//2 779//2
+f 675//1 673//1 672//1
+f 776//2 777//2 779//2
+f 675//1 672//1 671//1
+f 775//2 776//2 779//2
+f 676//1 675//1 671//1
+f 775//2 779//2 780//2
+f 677//1 676//1 671//1
+f 775//2 780//2 781//2
+f 677//1 671//1 670//1
+f 774//2 775//2 781//2
+f 678//1 677//1 670//1
+f 774//2 781//2 782//2
+f 678//1 670//1 669//1
+f 773//1 774//1 782//1
+f 678//1 669//1 668//1
+f 772//2 773//2 782//2
+f 679//1 678//1 668//1
+f 772//2 782//2 783//2
+f 680//1 679//1 668//1
+f 772//2 783//2 784//2
+f 668//1 667//1 666//1
+f 770//1 771//1 772//1
+f 668//1 666//1 665//1
+f 769//2 770//2 772//2
+f 680//1 668//1 665//1
+f 769//1 772//1 784//1
+f 681//1 680//1 665//1
+f 769//2 784//2 785//2
+f 682//1 681//1 665//1
+f 769//2 785//2 786//2
+f 682//1 665//1 664//1
+f 768//2 769//2 786//2
+f 683//1 682//1 664//1
+f 768//2 786//2 787//2
+f 683//1 664//1 663//1
+f 767//2 768//2 787//2
+f 684//1 683//1 663//1
+f 767//2 787//2 788//2
+f 684//1 663//1 662//1
+f 766//2 767//2 788//2
+f 684//1 662//1 661//1
+f 765//2 766//2 788//2
+f 685//1 684//1 661//1
+f 765//2 788//2 789//2
+f 685//1 661//1 660//1
+f 764//2 765//2 789//2
+f 686//1 685//1 660//1
+f 764//2 789//2 790//2
+f 650//1 686//1 660//1
+f 764//1 790//1 754//1
+f 650//1 660//1 659//1
+f 763//2 764//2 754//2
+f 650//1 659//1 658//1
+f 762//2 763//2 754//2
+f 650//1 658//1 657//1
+f 761//2 762//2 754//2
+f 650//1 657//1 656//1
+f 760//2 761//2 754//2
+f 650//1 656//1 655//1
+f 759//2 760//2 754//2
+f 650//1 655//1 654//1
+f 758//2 759//2 754//2
+f 650//1 654//1 653//1
+f 757//2 758//2 754//2
+f 650//1 653//1 652//1
+f 756//2 757//2 754//2
+f 652//1 651//1 650//1
+f 754//2 755//2 756//2
+f 650//212 651//212 703//212 702//212
+f 651//213 652//213 704//213 703//213
+f 652//214 653//214 705//214 704//214
+f 653//215 654//215 706//215 705//215
+f 654//216 655//216 707//216 706//216
+f 655//217 656//217 708//217 707//217
+f 656//218 657//218 709//218 708//218
+f 657//219 658//219 710//219 709//219
+f 658//220 659//220 711//220 710//220
+f 659//221 660//221 712//221 711//221
+f 660//222 661//222 713//222 712//222
+f 661//223 662//223 714//223 713//223
+f 662//224 663//224 715//224 714//224
+f 663//225 664//225 716//225 715//225
+f 664//226 665//226 717//226 716//226
+f 665//227 666//227 718//227 717//227
+f 666//228 667//228 719//228 718//228
+f 667//229 668//229 720//229 719//229
+f 668//230 669//230 721//230 720//230
+f 669//231 670//231 722//231 721//231
+f 670//232 671//232 723//232 722//232
+f 671//233 672//233 724//233 723//233
+f 672//234 673//234 725//234 724//234
+f 673//235 674//235 726//235 725//235
+f 674//236 675//236 727//236 726//236
+f 675//237 676//237 728//237 727//237
+f 676//238 677//238 729//238 728//238
+f 677//239 678//239 730//239 729//239
+f 678//240 679//240 731//240 730//240
+f 679//241 680//241 732//241 731//241
+f 680//242 681//242 733//242 732//242
+f 681//243 682//243 734//243 733//243
+f 682//244 683//244 735//244 734//244
+f 683//245 684//245 736//245 735//245
+f 684//246 685//246 737//246 736//246
+f 685//247 686//247 738//247 737//247
+f 686//248 687//248 739//248 738//248
+f 687//56 688//56 740//56 739//56
+f 688//249 689//249 741//249 740//249
+f 689//250 690//250 742//250 741//250
+f 690//251 691//251 743//251 742//251
+f 691//252 692//252 744//252 743//252
+f 692//253 693//253 745//253 744//253
+f 693//254 694//254 746//254 745//254
+f 694//184 695//184 747//184 746//184
+f 695//255 696//255 748//255 747//255
+f 696//101 697//101 749//101 748//101
+f 697//256 698//256 750//256 749//256
+f 698//257 699//257 751//257 750//257
+f 699//258 700//258 752//258 751//258
+f 700//259 701//259 753//259 752//259
+f 701//260 650//260 702//260 753//260
+f 702//261 703//261 755//261 754//261
+f 703//262 704//262 756//262 755//262
+f 704//263 705//263 757//263 756//263
+f 705//264 706//264 758//264 757//264
+f 706//265 707//265 759//265 758//265
+f 707//266 708//266 760//266 759//266
+f 708//267 709//267 761//267 760//267
+f 709//268 710//268 762//268 761//268
+f 710//269 711//269 763//269 762//269
+f 711//270 712//270 764//270 763//270
+f 712//271 713//271 765//271 764//271
+f 713//272 714//272 766//272 765//272
+f 714//273 715//273 767//273 766//273
+f 715//274 716//274 768//274 767//274
+f 716//275 717//275 769//275 768//275
+f 717//276 718//276 770//276 769//276
+f 718//277 719//277 771//277 770//277
+f 719//278 720//278 772//278 771//278
+f 720//279 721//279 773//279 772//279
+f 721//280 722//280 774//280 773//280
+f 722//281 723//281 775//281 774//281
+f 723//282 724//282 776//282 775//282
+f 724//283 725//283 777//283 776//283
+f 725//284 726//284 778//284 777//284
+f 726//285 727//285 779//285 778//285
+f 727//286 728//286 780//286 779//286
+f 728//287 729//287 781//287 780//287
+f 729//288 730//288 782//288 781//288
+f 730//289 731//289 783//289 782//289
+f 731//290 732//290 784//290 783//290
+f 732//291 733//291 785//291 784//291
+f 733//292 734//292 786//292 785//292
+f 734//293 735//293 787//293 786//293
+f 735//294 736//294 788//294 787//294
+f 736//295 737//295 789//295 788//295
+f 737//296 738//296 790//296 789//296
+f 738//297 739//297 791//297 790//297
+f 739//298 740//298 792//298 791//298
+f 740//299 741//299 793//299 792//299
+f 741//300 742//300 794//300 793//300
+f 742//301 743//301 795//301 794//301
+f 743//302 744//302 796//302 795//302
+f 744//303 745//303 797//303 796//303
+f 745//304 746//304 798//304 797//304
+f 746//201 747//201 799//201 798//201
+f 747//305 748//305 800//305 799//305
+f 748//306 749//306 801//306 800//306
+f 749//307 750//307 802//307 801//307
+f 750//308 751//308 803//308 802//308
+f 751//309 752//309 804//309 803//309
+f 752//310 753//310 805//310 804//310
+f 753//311 702//311 754//311 805//311
+o letter06Walls
+usemtl frame
+f 806//1 832//1 831//1
+f 858//2 859//2 833//2
+f 806//1 831//1 830//1
+f 857//2 858//2 833//2
+f 806//1 830//1 829//1
+f 856//2 857//2 833//2
+f 806//1 829//1 828//1
+f 855//2 856//2 833//2
+f 806//1 828//1 827//1
+f 854//2 855//2 833//2
+f 827//1 826//1 825//1
+f 852//2 853//2 854//2
+f 827//1 825//1 824//1
+f 851//2 852//2 854//2
+f 827//1 824//1 823//1
+f 850//2 851//2 854//2
+f 827//1 823//1 822//1
+f 849//2 850//2 854//2
+f 806//1 827//1 822//1
+f 849//2 854//2 833//2
+f 806//1 822//1 821//1
+f 848//2 849//2 833//2
+f 820//1 819//1 818//1
+f 845//2 846//2 847//2
+f 820//1 818//1 817//1
+f 844//2 845//2 847//2
+f 820//1 817//1 816//1
+f 843//2 844//2 847//2
+f 820//1 816//1 815//1
+f 842//2 843//2 847//2
+f 820//1 815//1 814//1
+f 841//2 842//2 847//2
+f 821//1 820//1 814//1
+f 841//2 847//2 848//2
+f 806//1 821//1 814//1
+f 841//2 848//2 833//2
+f 806//1 814//1 813//1
+f 840//2 841//2 833//2
+f 806//1 813//1 812//1
+f 839//2 840//2 833//2
+f 806//1 812//1 811//1
+f 838//2 839//2 833//2
+f 806//1 811//1 810//1
+f 837//2 838//2 833//2
+f 806//1 810//1 809//1
+f 836//2 837//2 833//2
+f 806//1 809//1 808//1
+f 835//2 836//2 833//2
+f 808//1 807//1 806//1
+f 833//2 834//2 835//2
+f 806//312 807//312 834//312 833//312
+f 807//313 808//313 835//313 834//313
+f 808//314 809//314 836//314 835//314
+f 809//315 810//315 837//315 836//315
+f 810//316 811//316 838//316 837//316
+f 811//317 812//317 839//317 838//317
+f 812//318 813//318 840//318 839//318
+f 813//319 814//319 841//319 840//319
+f 814//320 815//320 842//320 841//320
+f 815//321 816//321 843//321 842//321
+f 816//322 817//322 844//322 843//322
+f 817//323 818//323 845//323 844//323
+f 818//324 819//324 846//324 845//324
+f 819//325 820//325 847//325 846//325
+f 820//326 821//326 848//326 847//326
+f 821//327 822//327 849//327 848//327
+f 822//328 823//328 850//328 849//328
+f 823//329 824//329 851//329 850//329
+f 824//330 825//330 852//330 851//330
+f 825//331 826//331 853//331 852//331
+f 826//332 827//332 854//332 853//332
+f 827//333 828//333 855//333 854//333
+f 828//334 829//334 856//334 855//334
+f 829//335 830//335 857//335 856//335
+f 830//336 831//336 858//336 857//336
+f 831//331 832//331 859//331 858//331
+f 832//337 806//337 833//337 859//337
+o letter06Face
+usemtl dark
+f 860//1 886//1 885//1
+f 939//1 940//1 914//1
+f 860//1 885//1 884//1
+f 938//2 939//2 914//2
+f 860//1 884//1 883//1
+f 937//2 938//2 914//2
+f 860//1 883//1 882//1
+f 936//2 937//2 914//2
+f 860//1 882//1 881//1
+f 935//2 936//2 914//2
+f 881//1 880//1 879//1
+f 933//2 934//2 935//2
+f 881//1 879//1 878//1
+f 932//1 933//1 935//1
+f 881//1 878//1 877//1
+f 931//2 932//2 935//2
+f 881//1 877//1 876//1
+f 930//2 931//2 935//2
+f 860//1 881//1 876//1
+f 930//2 935//2 914//2
+f 860//1 876//1 875//1
+f 929//2 930//2 914//2
+f 874//1 873//1 872//1
+f 926//2 927//2 928//2
+f 874//1 872//1 871//1
+f 925//1 926//1 928//1
+f 874//1 871//1 870//1
+f 924//2 925//2 928//2
+f 874//1 870//1 869//1
+f 923//2 924//2 928//2
+f 874//1 869//1 868//1
+f 922//2 923//2 928//2
+f 875//1 874//1 868//1
+f 922//2 928//2 929//2
+f 860//1 875//1 868//1
+f 922//2 929//2 914//2
+f 860//1 868//1 867//1
+f 921//1 922//1 914//1
+f 860//1 867//1 866//1
+f 920//2 921//2 914//2
+f 860//1 866//1 865//1
+f 919//2 920//2 914//2
+f 860//1 865//1 864//1
+f 918//2 919//2 914//2
+f 860//1 864//1 863//1
+f 917//2 918//2 914//2
+f 860//1 863//1 862//1
+f 916//1 917//1 914//1
+f 862//1 861//1 860//1
+f 914//2 915//2 916//2
+f 860//312 861//312 888//312 887//312
+f 861//313 862//313 889//313 888//313
+f 862//314 863//314 890//314 889//314
+f 863//315 864//315 891//315 890//315
+f 864//316 865//316 892//316 891//316
+f 865//317 866//317 893//317 892//317
+f 866//318 867//318 894//318 893//318
+f 867//319 868//319 895//319 894//319
+f 868//320 869//320 896//320 895//320
+f 869//321 870//321 897//321 896//321
+f 870//322 871//322 898//322 897//322
+f 871//323 872//323 899//323 898//323
+f 872//324 873//324 900//324 899//324
+f 873//325 874//325 901//325 900//325
+f 874//326 875//326 902//326 901//326
+f 875//327 876//327 903//327 902//327
+f 876//328 877//328 904//328 903//328
+f 877//329 878//329 905//329 904//329
+f 878//330 879//330 906//330 905//330
+f 879//331 880//331 907//331 906//331
+f 880//332 881//332 908//332 907//332
+f 881//333 882//333 909//333 908//333
+f 882//334 883//334 910//334 909//334
+f 883//335 884//335 911//335 910//335
+f 884//336 885//336 912//336 911//336
+f 885//331 886//331 913//331 912//331
+f 886//337 860//337 887//337 913//337
+f 887//338 888//338 915//338 914//338
+f 888//339 889//339 916//339 915//339
+f 889//340 890//340 917//340 916//340
+f 890//341 891//341 918//341 917//341
+f 891//342 892//342 919//342 918//342
+f 892//343 893//343 920//343 919//343
+f 893//344 894//344 921//344 920//344
+f 894//345 895//345 922//345 921//345
+f 895//346 896//346 923//346 922//346
+f 896//347 897//347 924//347 923//347
+f 897//348 898//348 925//348 924//348
+f 898//349 899//349 926//349 925//349
+f 899//350 900//350 927//350 926//350
+f 900//351 901//351 928//351 927//351
+f 901//352 902//352 929//352 928//352
+f 902//353 903//353 930//353 929//353
+f 903//354 904//354 931//354 930//354
+f 904//355 905//355 932//355 931//355
+f 905//356 906//356 933//356 932//356
+f 906//357 907//357 934//357 933//357
+f 907//358 908//358 935//358 934//358
+f 908//359 909//359 936//359 935//359
+f 909//360 910//360 937//360 936//360
+f 910//361 911//361 938//361 937//361
+f 911//362 912//362 939//362 938//362
+f 912//357 913//357 940//357 939//357
+f 913//363 887//363 914//363 940//363
diff --git a/cmake/Superbuild.cmake b/cmake/Superbuild.cmake
index d637ab6ec..0ed232a48 100644
--- a/cmake/Superbuild.cmake
+++ b/cmake/Superbuild.cmake
@@ -169,6 +169,9 @@ singeCmakeProject(zstd ${SB_THIRDPARTY}/zstd/build/cmake "" "-DZSTD_BUILD_SHARED
singeCmakeProject(SDL3 ${SB_THIRDPARTY}/SDL3 "" "-DSDL_SHARED=off;-DSDL_STATIC=on;-DSDL_TESTS=off;-DSDL_EXAMPLES=off" "${SB_ENV}")
+# ===== Host tools: the shader compiler (see cmake/hostTools.cmake) =====
+include(${CMAKE_CURRENT_LIST_DIR}/hostTools.cmake)
+
# ===== Jolt Physics (C++; static, single precision, no tests or samples) =====
# The x86 baseline is SSE4.1/4.2 so a shipped binary runs on anything from 2008 on; AVX and the
# bit-count instructions would silently raise it. No link-time optimisation through the cross
@@ -315,8 +318,8 @@ set(singeBinary ${SB_PREFIX}/singe)
ExternalProject_Add(singe
SOURCE_DIR ${CMAKE_SOURCE_DIR}
BINARY_DIR ${singeBinary}
- DEPENDS zlib zstd SDL3 SDL3_image SDL3_mixer SDL3_ttf openssl ffmpeg Jolt
- CONFIGURE_COMMAND ${SB_ENV} ${CMAKE_COMMAND} -S ${CMAKE_SOURCE_DIR} -B ${singeBinary} ${SB_CMAKE_ARGS} -DSINGE_SUPERBUILD=OFF -DKANGAROO_OS=${KANGAROO_OS} -DKANGAROO_ARCH=${KANGAROO_ARCH} -DSINGE_TREE=${SINGE_TREE}
+ DEPENDS zlib zstd SDL3 SDL3_image SDL3_mixer SDL3_ttf openssl ffmpeg Jolt shadercross
+ CONFIGURE_COMMAND ${SB_ENV} ${CMAKE_COMMAND} -S ${CMAKE_SOURCE_DIR} -B ${singeBinary} ${SB_CMAKE_ARGS} -DSINGE_SHADERCROSS=${SINGE_SHADERCROSS} -DSINGE_SUPERBUILD=OFF -DKANGAROO_OS=${KANGAROO_OS} -DKANGAROO_ARCH=${KANGAROO_ARCH} -DSINGE_TREE=${SINGE_TREE}
BUILD_COMMAND ${SB_ENV} ${CMAKE_COMMAND} --build ${singeBinary} --parallel ${SB_JOBS}
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${singeBinary}/${singeBinaryBase}${CMAKE_EXECUTABLE_SUFFIX} ${CMAKE_SOURCE_DIR}/.builddir/${singeBinaryName}
BUILD_ALWAYS ON
diff --git a/cmake/hostTools.cmake b/cmake/hostTools.cmake
new file mode 100644
index 000000000..a6075998f
--- /dev/null
+++ b/cmake/hostTools.cmake
@@ -0,0 +1,66 @@
+# Host tools the build needs at build time, built once for the host machine and shared by every
+# preset: SDL_shadercross (the scene shaders are HLSL, compiled to SPIR-V, DXIL and MSL when Singe
+# is built, the way the icon and the other embedded files are made) with SPIRV-Cross, a minimal
+# host SDL3 for its command line tool, and Microsoft's prebuilt DirectX Shader Compiler, which
+# SDL_shadercross drives and which is fetched like zig (building it from source is a half-hour
+# job nobody should need). Everything lives under .builddir/toolchains.
+#
+# DXC's prebuilt release exists for x86_64 Linux hosts. On another host put an unpacked DXC
+# (lib/libdxcompiler.so, lib/libdxil.so, include/dxc/dxcapi.h) at .builddir/toolchains/dxc.
+
+set(SINGE_DXC_VERSION "v1.10.2605.37")
+set(SINGE_DXC_FILE "linux_dxc_2026_08_11.x86_64.tar.gz")
+set(SINGE_DXC_SHA256 "dea02d61c0548a6163a5fb45daa9263faeb5334e35d25a30b0293a32d089ceae")
+
+get_filename_component(hostToolchains ${CMAKE_CURRENT_LIST_DIR}/../.builddir/toolchains ABSOLUTE)
+set(hostPrefix ${hostToolchains}/host)
+set(hostBuild ${hostToolchains}/hostBuild)
+set(hostDxc ${hostToolchains}/dxc)
+file(MAKE_DIRECTORY ${hostPrefix} ${hostBuild})
+
+# ----- DirectX Shader Compiler, prebuilt -----
+if(NOT EXISTS ${hostDxc}/lib/libdxcompiler.so)
+ if((CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") AND (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64"))
+ set(dxcUrl "https://github.com/microsoft/DirectXShaderCompiler/releases/download/${SINGE_DXC_VERSION}/${SINGE_DXC_FILE}")
+ message(STATUS "Downloading the DirectX Shader Compiler ${SINGE_DXC_VERSION}")
+ file(DOWNLOAD ${dxcUrl} ${hostToolchains}/${SINGE_DXC_FILE} EXPECTED_HASH SHA256=${SINGE_DXC_SHA256} STATUS status)
+ list(GET status 0 code)
+ if(NOT code EQUAL 0)
+ message(FATAL_ERROR "DirectX Shader Compiler download failed: ${status}")
+ endif()
+ file(MAKE_DIRECTORY ${hostDxc})
+ file(ARCHIVE_EXTRACT INPUT ${hostToolchains}/${SINGE_DXC_FILE} DESTINATION ${hostDxc})
+ else()
+ message(FATAL_ERROR "No prebuilt DirectX Shader Compiler for this host; put one at ${hostDxc} (see cmake/hostTools.cmake).")
+ endif()
+endif()
+
+# ----- The host builds run with the host's own compilers, never the cross toolchain -----
+set(hostEnv ${CMAKE_COMMAND} -E env --unset=CC --unset=CXX --unset=AR --unset=RANLIB --unset=CFLAGS --unset=CXXFLAGS --unset=LDFLAGS --unset=PKG_CONFIG_LIBDIR --unset=PKG_CONFIG_SYSROOT_DIR "MAKEFLAGS=-j${SB_JOBS}")
+# A | inside an argument becomes a ; (a CMake list) on the way to the child, see LIST_SEPARATOR.
+set(hostArgs -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${hostPrefix} "-DCMAKE_INSTALL_RPATH=${hostPrefix}/lib|${hostDxc}/lib" -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON)
+
+# A host CMake project; its stamps and build tree live with the tools, so every preset shares them.
+function(singeHostProject name source deps args)
+ ExternalProject_Add(${name}
+ SOURCE_DIR ${source}
+ BINARY_DIR ${hostBuild}/${name}
+ STAMP_DIR ${hostBuild}/${name}-stamp
+ TMP_DIR ${hostBuild}/${name}-tmp
+ DEPENDS ${deps}
+ LIST_SEPARATOR |
+ CONFIGURE_COMMAND ${hostEnv} ${CMAKE_COMMAND} -S ${source} -B ${hostBuild}/${name} ${hostArgs} ${args}
+ BUILD_COMMAND ${hostEnv} ${CMAKE_COMMAND} --build ${hostBuild}/${name} --parallel ${SB_JOBS}
+ INSTALL_COMMAND ${hostEnv} ${CMAKE_COMMAND} --build ${hostBuild}/${name} --target install
+ LOG_CONFIGURE ON LOG_BUILD ON LOG_INSTALL ON LOG_OUTPUT_ON_FAILURE ON
+ )
+endfunction()
+
+# SDL3 for the host, shared, with nothing SDL_shadercross's tool does not use.
+singeHostProject(hostSDL3 ${SB_THIRDPARTY}/SDL3 "" "-DSDL_SHARED=ON;-DSDL_STATIC=OFF;-DSDL_TESTS=OFF;-DSDL_EXAMPLES=OFF;-DSDL_AUDIO=OFF;-DSDL_VIDEO=OFF;-DSDL_GPU=OFF;-DSDL_RENDER=OFF;-DSDL_CAMERA=OFF;-DSDL_JOYSTICK=OFF;-DSDL_HAPTIC=OFF;-DSDL_HIDAPI=OFF;-DSDL_POWER=OFF;-DSDL_SENSOR=OFF;-DSDL_DIALOG=OFF;-DSDL_UNIX_CONSOLE_BUILD=ON")
+# SPIRV-Cross as the shared C library SDL_shadercross looks for.
+singeHostProject(spirvCross ${SB_THIRDPARTY}/SPIRV-Cross "" "-DSPIRV_CROSS_SHARED=ON;-DSPIRV_CROSS_STATIC=OFF;-DSPIRV_CROSS_CLI=OFF;-DSPIRV_CROSS_ENABLE_TESTS=OFF")
+# SDL_shadercross, unvendored: SPIRV-Cross and SDL3 from the host prefix, DXC from its download.
+singeHostProject(shadercross ${SB_THIRDPARTY}/SDL_shadercross "hostSDL3;spirvCross" "-DSDLSHADERCROSS_VENDORED=OFF;-DSDLSHADERCROSS_DXC=ON;-DSDLSHADERCROSS_SHARED=OFF;-DSDLSHADERCROSS_STATIC=ON;-DSDLSHADERCROSS_CLI=ON;-DSDLSHADERCROSS_INSTALL=ON;-DSDLSHADERCROSS_INSTALL_CPACK=OFF;-DCMAKE_PREFIX_PATH=${hostPrefix}|${hostDxc};-DSDL3_DIR=${hostPrefix}/lib/cmake/SDL3")
+
+set(SINGE_SHADERCROSS ${hostPrefix}/bin/shadercross)
diff --git a/cmake/shaderHeader.cmake b/cmake/shaderHeader.cmake
new file mode 100644
index 000000000..9983cf017
--- /dev/null
+++ b/cmake/shaderHeader.cmake
@@ -0,0 +1,38 @@
+# Compiles src/shaders/scene.hlsl into a C header of SPIR-V, DXIL and MSL blobs with
+# SDL_shadercross. Run by the build as
+# cmake -DSHADERCROSS= -DSOURCE= -DOUTPUT= -P shaderHeader.cmake
+# so the header is generated into the build tree like the icon and the other embedded files.
+
+set(entries vertexStatic:vertex vertexSkinned:vertex fragmentMain:fragment depthMain:fragment)
+set(formats SPIRV DXIL MSL)
+get_filename_component(sourceDir ${SOURCE} DIRECTORY)
+get_filename_component(outputDir ${OUTPUT} DIRECTORY)
+set(work ${outputDir}/work)
+file(MAKE_DIRECTORY ${work})
+
+set(header "// Generated from scene.hlsl by cmake/shaderHeader.cmake with SDL_shadercross; do not edit.\n")
+string(APPEND header "// SPIR-V for Vulkan, DXIL for Direct3D 12, MSL for Metal, one set per entry point.\n\n")
+string(APPEND header "#ifndef SCENE_SHADERS_H\n#define SCENE_SHADERS_H\n\n#include \n\n")
+string(APPEND header "typedef struct SceneShaderS {\n\tconst char *entryPoint;\n\tconst unsigned char *spirv;\n\tsize_t spirvSize;\n\tconst unsigned char *dxil;\n\tsize_t dxilSize;\n\tconst unsigned char *msl;\n\tsize_t mslSize;\n} SceneShaderT;\n\n")
+foreach(entry IN LISTS entries)
+ string(REPLACE ":" ";" parts ${entry})
+ list(GET parts 0 name)
+ list(GET parts 1 stage)
+ foreach(format IN LISTS formats)
+ string(TOLOWER ${format} extension)
+ set(blob ${work}/${name}.${extension})
+ execute_process(COMMAND ${SHADERCROSS} ${SOURCE} -s HLSL -d ${format} -t ${stage} -e ${name} -o ${blob} RESULT_VARIABLE code OUTPUT_VARIABLE out ERROR_VARIABLE err)
+ if(NOT code EQUAL 0)
+ message(FATAL_ERROR "Shader ${name} (${format}) failed to compile:\n${out}\n${err}")
+ endif()
+ file(READ ${blob} hex HEX)
+ string(REGEX REPLACE "([0-9a-f][0-9a-f])" "0x\\1," bytes "${hex}")
+ string(APPEND header "static const unsigned char _${name}${format}[] = {\n\t${bytes}\n};\n\n")
+ endforeach()
+ string(SUBSTRING ${name} 0 1 initial)
+ string(SUBSTRING ${name} 1 -1 rest)
+ string(TOUPPER ${initial} initial)
+ string(APPEND header "static const SceneShaderT sceneShader${initial}${rest} = { \"${name}\", _${name}SPIRV, sizeof(_${name}SPIRV), _${name}DXIL, sizeof(_${name}DXIL), _${name}MSL, sizeof(_${name}MSL) };\n\n")
+endforeach()
+string(APPEND header "#endif\n")
+file(WRITE ${OUTPUT} "${header}")
diff --git a/docs/Manual.adoc b/docs/Manual.adoc
index c145eebb4..82ad409a5 100644
--- a/docs/Manual.adoc
+++ b/docs/Manual.adoc
@@ -771,9 +771,11 @@ for diagrams and HUD-like scenes.
A model's animations are listed by `modelGetAnimations` and driven per
instance with `animationPlay(node, nameOrIndex, loop, speed)` on the
instance's root node, plus pause, resume, stop, and seek calls. Node
-animation (things moving) and skinning (characters deforming) both work;
-morph targets do not yet. Animations advance with real time and hold while
-the game is paused.
+animation (things moving), skinning (characters deforming) and morph
+targets (blend shapes: faces, lip sync, muscle bulges) all work; a model's
+morph weights can also be set from script with `nodeSetMorph`, by name or
+number, on the node that carries the mesh. Animations advance with real
+time and hold while the game is paused.
.From scene to overlay and back
`sceneProject(x, y, z)` turns a world point into overlay coordinates, so
@@ -880,6 +882,39 @@ BODY_DYNAMIC, SHAPE_HULL)` wraps the whole model in a convex hull. Skinned
characters are best driven kinematically with a capsule and left to push
things rather than be pushed.
+.2D games
+Physics is not tied to the 3D scene. Nodes exist on every machine, GPU or
+not, so a 2D game can give nodes bodies, call `physicsSet2D(true)` so they
+move in X and Y and turn about Z only, work in overlay coordinates with
+gravity pointing down the screen, and draw sprites where the nodes are:
+
+[source,lua]
+----
+physicsSet2D(true)
+physicsSetGravity(0, 900, 0) -- Pixels per second squared; overlay Y runs down.
+
+floor = nodeNew()
+nodeSetPosition(floor, 360, 470, 0)
+bodyNew(floor, BODY_STATIC, SHAPE_BOX, 720, 20, 50)
+
+crate = nodeNew()
+nodeSetPosition(crate, 200, -40, 0)
+bodyNew(crate, BODY_DYNAMIC, SHAPE_BOX, 40, 40, 50)
+bodySetMass(crate, 1)
+
+function onOverlayUpdate()
+ local x, y = nodeGetPosition(crate)
+ local _, _, angle = nodeGetRotation(crate)
+ spriteRotate(crateArt, angle)
+ spriteDraw(crateArt, x, y, true)
+ return OVERLAY_UPDATED
+end
+----
+
+Give every 2D body some depth (the third size) so shapes overlap in Z;
+`50` is fine. Circles are `SHAPE_SPHERE`. This is the form that runs on a
+Raspberry Pi 3, which has no 3D.
+
.Where it runs
Physics runs on the CPU and needs no GPU, but the library is built for
SSE4.1 on x86 (2008 and later) and NEON on the Pi; a machine below that
@@ -1078,8 +1113,8 @@ These calls drive the animations a model carries, per instance. Every one
takes the *root node* returned by `modelInstance`; other nodes raise an
error. Animations are numbered from `1` in the order `modelGetAnimations`
lists them, or named. Time advances with the wall clock and holds while the
-game is paused. Node animation and skinning are supported; morph targets are
-not.
+game is paused. Node animation, skinning and morph target weights are all
+driven.
[#animationgettime]
==== animationGetTime
@@ -3246,6 +3281,36 @@ The node's direct children as a table of handles, in the order they were added.
*Since:* 3.00.
*See also:* <>
+[#nodegetmorph]
+==== nodeGetMorph
+
+[source,text]
+----
+weight = nodeGetMorph(node, nameOrIndex)
+----
+
+The current weight of one of the mesh's morph targets.
+
+*Returns:* A number.
+
+*Since:* 3.00.
+*See also:* <>, <>
+
+[#nodegetmorphs]
+==== nodeGetMorphs
+
+[source,text]
+----
+names = nodeGetMorphs(node)
+----
+
+The morph targets of the node's mesh, in the order the file stores them, as a table of names. Exporters that write no names give empty strings; those targets can still be set by number.
+
+*Returns:* A table of strings.
+
+*Since:* 3.00.
+*See also:* <>
+
[#nodegetname]
==== nodeGetName
@@ -3404,6 +3469,32 @@ Gives the node a mesh to draw, optionally with a material (default look otherwis
*Since:* 3.00.
*See also:* <>, <>, <>
+[#nodesetmorph]
+==== nodeSetMorph
+
+[source,text]
+----
+nodeSetMorph(node, nameOrIndex, weight)
+----
+
+How much of a morph target (blend shape) the node's mesh shows, usually `0` to `1`; several targets add up. The node is the one carrying the mesh, which for a model is a child of the instance root (`nodeFind` by the mesh's name, or `nodeGetChildren`). An animation with a weights channel overrides what you set while it plays.
+
+*Notes:* Up to eight targets with non-zero weights apply per mesh in a frame, the strongest if there are more.
+
+*Since:* 3.00.
+*See also:* <>, <>, <>
+
+.Example
+[source,lua]
+----
+-- Lip sync from a table of mouth openings per disc frame.
+face = nodeFind("Head", hero)
+function onOverlayUpdate()
+ nodeSetMorph(face, "mouthOpen", mouthByFrame[discGetFrame()] or 0)
+ return OVERLAY_UPDATED
+end
+----
+
[#nodesetname]
==== nodeSetName
@@ -3723,6 +3814,19 @@ The first body along a ray from `(x, y, z)` in the direction `(dx, dy, dz)` (any
*Since:* 3.00.
*See also:* <>, <>
+[#physicsset2d]
+==== physicsSet2D
+
+[source,text]
+----
+physicsSet2D(planar)
+----
+
+Bodies made from now on move only in X and Y and turn only about Z: a 2D game's world, usually in overlay coordinates with gravity pointing +Y. Bodies already made keep their freedom. Works without a GPU, the Raspberry Pi 3 included.
+
+*Since:* 3.00.
+*See also:* <>, <>
+
[#physicssetenabled]
==== physicsSetEnabled
diff --git a/src/model.c b/src/model.c
index 8211d79b8..9e82f2223 100644
--- a/src/model.c
+++ b/src/model.c
@@ -43,6 +43,7 @@
#define NO_HANDLE -1
#define ERROR_LENGTH 256
+#define MAX_MORPH_TARGETS 64
#define DEGREES(r) ((r) * (180.0f / 3.14159265358979323846f))
@@ -93,9 +94,11 @@ static void _freeStaleInstances(void);
static SDL_Surface *_loadImage(const cgltf_image *image);
static int32_t _loadMaterial(const cgltf_material *material);
static bool _loadMeshes(ModelT *model);
-static int32_t _loadPrimitive(const cgltf_primitive *primitive);
+static void _loadMorphs(int32_t mesh, const cgltf_mesh *source, const cgltf_primitive *primitive, int32_t vertexCount);
+static int32_t _loadPrimitive(const cgltf_mesh *source, const cgltf_primitive *primitive);
static bool _readAttribute(const cgltf_accessor *accessor, float *out, int32_t components, int32_t count);
static void _sampleChannel(const cgltf_animation_channel *channel, double time, float *out, int32_t components);
+static void _sampleWeights(const cgltf_animation_channel *channel, double time, float *out, int32_t count);
static ModelT *_models;
@@ -172,6 +175,7 @@ static void _applyAnimation(InstanceT *instance) {
const cgltf_animation *animation;
int32_t x;
float values[4];
+ float morphValues[MAX_MORPH_TARGETS];
if ((instance->animation < 0) || (instance->animation >= (int32_t)data->animations_count)) {
return;
@@ -203,6 +207,27 @@ static void _applyAnimation(InstanceT *instance) {
} else if (channel->target_path == cgltf_animation_path_type_scale) {
_sampleChannel(channel, instance->time, values, 3);
nodeSetScale(node, vec3(values[0], values[1], values[2]));
+ } else if (channel->target_path == cgltf_animation_path_type_weights) {
+ // One weight per target per keyframe, to the node's own mesh or its primitive children.
+ int32_t count = (int32_t)(channel->sampler->output->count / channel->sampler->input->count);
+ int32_t w;
+ int32_t c;
+
+ if ((count <= 0) || (count > MAX_MORPH_TARGETS)) {
+ continue;
+ }
+ _sampleWeights(channel, instance->time, morphValues, count);
+ if (nodeGetMorphCount(node) > 0) {
+ for (w = 0; w < count; w++) {
+ nodeSetMorphWeight(node, w, morphValues[w]);
+ }
+ } else {
+ for (c = 0; c < nodeGetChildCount(node); c++) {
+ for (w = 0; w < count; w++) {
+ nodeSetMorphWeight(nodeGetChild(node, c), w, morphValues[w]);
+ }
+ }
+ }
}
}
}
@@ -289,15 +314,25 @@ static void _buildNode(ModelT *model, InstanceT *instance, const cgltf_node *nod
nodeSetRotation(handle, rotation);
nodeSetScale(handle, scale);
if (node->mesh != NULL) {
+ const float *weights = (node->weights_count > 0) ? node->weights : node->mesh->weights;
+ int32_t weightCount = (int32_t)((node->weights_count > 0) ? node->weights_count : node->mesh->weights_count);
+ int32_t w;
+
mesh = &model->meshes[node->mesh - model->data->meshes];
if (mesh->count == 1) {
nodeSetMesh(handle, mesh->primitives[0].mesh, mesh->primitives[0].material);
+ for (w = 0; w < weightCount; w++) {
+ nodeSetMorphWeight(handle, w, weights[w]);
+ }
} else {
for (x = 0; x < mesh->count; x++) {
int32_t child = nodeNew(handle);
if (child != NO_HANDLE) {
nodeSetMesh(child, mesh->primitives[x].mesh, mesh->primitives[x].material);
+ for (w = 0; w < weightCount; w++) {
+ nodeSetMorphWeight(child, w, weights[w]);
+ }
}
}
}
@@ -489,7 +524,7 @@ static bool _loadMeshes(ModelT *model) {
utilTrace("Model: mesh %s primitive %d is not triangles; skipped.", data->meshes[x].name ? data->meshes[x].name : "(unnamed)", y);
continue;
}
- mesh = _loadPrimitive(primitive);
+ mesh = _loadPrimitive(&data->meshes[x], primitive);
if (mesh == NO_HANDLE) {
return false;
}
@@ -502,9 +537,58 @@ static bool _loadMeshes(ModelT *model) {
}
+// The primitive's morph targets: position and normal deltas per target, named from the mesh's
+// target names when the exporter wrote them.
+static void _loadMorphs(int32_t mesh, const cgltf_mesh *source, const cgltf_primitive *primitive, int32_t vertexCount) {
+ int32_t targetCount = (int32_t)primitive->targets_count;
+ float *deltas;
+ float *values;
+ const char **names = NULL;
+ int32_t t;
+ int32_t x;
+ int32_t a;
+
+ deltas = SDL_calloc((size_t)targetCount * (size_t)vertexCount * 6, sizeof(float));
+ values = SDL_calloc((size_t)vertexCount * 3, sizeof(float));
+ if ((deltas == NULL) || (values == NULL)) {
+ utilDie("Out of memory loading morph targets.");
+ }
+ for (t = 0; t < targetCount; t++) {
+ const cgltf_morph_target *target = &primitive->targets[t];
+
+ for (a = 0; a < (int32_t)target->attributes_count; a++) {
+ const cgltf_attribute *attribute = &target->attributes[a];
+ int32_t offset;
+
+ if ((attribute->type == cgltf_attribute_type_position) && (attribute->index == 0)) {
+ offset = 0;
+ } else if ((attribute->type == cgltf_attribute_type_normal) && (attribute->index == 0)) {
+ offset = 3;
+ } else {
+ continue;
+ }
+ if (!_readAttribute(attribute->data, values, 3, vertexCount)) {
+ continue;
+ }
+ for (x = 0; x < vertexCount; x++) {
+ deltas[((size_t)t * (size_t)vertexCount + (size_t)x) * 6 + (size_t)offset] = values[x * 3];
+ deltas[((size_t)t * (size_t)vertexCount + (size_t)x) * 6 + (size_t)offset + 1] = values[x * 3 + 1];
+ deltas[((size_t)t * (size_t)vertexCount + (size_t)x) * 6 + (size_t)offset + 2] = values[x * 3 + 2];
+ }
+ }
+ }
+ if ((source->target_names != NULL) && ((int32_t)source->target_names_count >= targetCount)) {
+ names = (const char **)source->target_names;
+ }
+ meshSetMorphTargets(mesh, deltas, targetCount, names);
+ SDL_free(values);
+ SDL_free(deltas);
+}
+
+
// One primitive as a scene mesh: positions, normals (computed when absent), texture
// coordinates, joints and weights when skinned, and indices (generated when absent).
-static int32_t _loadPrimitive(const cgltf_primitive *primitive) {
+static int32_t _loadPrimitive(const cgltf_mesh *source, const cgltf_primitive *primitive) {
const cgltf_accessor *positions = NULL;
const cgltf_accessor *normals = NULL;
const cgltf_accessor *uvs = NULL;
@@ -595,6 +679,8 @@ static int32_t _loadPrimitive(const cgltf_primitive *primitive) {
mesh = meshNewVertices(vertices, vertexCount, indices, indexCount, (joints != NULL) && (weights != NULL));
if (mesh == NO_HANDLE) {
_fail("Unable to upload a primitive.");
+ } else if (primitive->targets_count > 0) {
+ _loadMorphs(mesh, source, primitive, vertexCount);
}
SDL_free(values);
SDL_free(indices);
@@ -700,6 +786,48 @@ static void _sampleChannel(const cgltf_animation_channel *channel, double time,
}
+// A weights channel at a time: count scalars per keyframe, linear or step (cubic spline treated
+// as linear between its values), clamped at both ends.
+static void _sampleWeights(const cgltf_animation_channel *channel, double time, float *out, int32_t count) {
+ const cgltf_accessor *input = channel->sampler->input;
+ const cgltf_accessor *output = channel->sampler->output;
+ int32_t keys = (int32_t)input->count;
+ int32_t k;
+ int32_t next;
+ int32_t stride = (channel->sampler->interpolation == cgltf_interpolation_type_cubic_spline) ? 3 : 1;
+ float t0;
+ float t1;
+ float t;
+ float a;
+ float b;
+ int32_t w;
+
+ if (keys == 0) {
+ return;
+ }
+ for (k = 0; k < keys - 1; k++) {
+ cgltf_accessor_read_float(input, (cgltf_size)(k + 1), &t1, 1);
+ if (time < t1) {
+ break;
+ }
+ }
+ next = SDL_min(k + 1, keys - 1);
+ cgltf_accessor_read_float(input, (cgltf_size)k, &t0, 1);
+ cgltf_accessor_read_float(input, (cgltf_size)next, &t1, 1);
+ t = (t1 > t0) ? (float)((time - t0) / (t1 - t0)) : 0.0f;
+ t = SDL_clamp(t, 0.0f, 1.0f);
+ if (channel->sampler->interpolation == cgltf_interpolation_type_step) {
+ t = 0.0f;
+ }
+ for (w = 0; w < count; w++) {
+ // Cubic spline keyframes hold in-tangent, value, out-tangent per weight; the value is the middle.
+ cgltf_accessor_read_float(output, (cgltf_size)((k * stride + (stride == 3 ? 1 : 0)) * count + w), &a, 1);
+ cgltf_accessor_read_float(output, (cgltf_size)((next * stride + (stride == 3 ? 1 : 0)) * count + w), &b, 1);
+ out[w] = a + (b - a) * t;
+ }
+}
+
+
// ===== Animation (on a model instance's root node) =====
double animationGetTime(int32_t root) {
diff --git a/src/physics.h b/src/physics.h
index d29468b79..ea28ff444 100644
--- a/src/physics.h
+++ b/src/physics.h
@@ -100,6 +100,7 @@ int32_t physicsGetEvents(PhysicsEventT *events, int32_t maximum);
bool physicsInit(void);
void physicsQuit(void);
bool physicsRaycast(Vec3T origin, Vec3T direction, float maxDistance, int32_t *node, Vec3T *point, Vec3T *normal);
+void physicsSet2D(bool planar);
void physicsSetEnabled(bool enabled);
void physicsSetGravity(Vec3T gravity);
void physicsUpdate(bool advance);
diff --git a/src/physicsJolt.cpp b/src/physicsJolt.cpp
index 423d8f350..b6d643f52 100644
--- a/src/physicsJolt.cpp
+++ b/src/physicsJolt.cpp
@@ -203,6 +203,7 @@ namespace {
double accumulator; // Seconds owed to the fixed step
uint64_t lastTick;
bool enabled;
+ bool planar; // New bodies keep to the XY plane (2D games)
};
@@ -568,6 +569,10 @@ bool bodyNew(int32_t node, BodyTypeE type, ShapeTypeE shape, float a, float b, f
settings.mFriction = DEFAULT_FRICTION;
settings.mRestitution = DEFAULT_BOUNCE;
settings.mUserData = (JPH::uint64)(uint32_t)node;
+ if (_world->planar) {
+ // Moves in X and Y, turns about Z, nothing else: a 2D game's world.
+ settings.mAllowedDOFs = JPH::EAllowedDOFs::Plane2D;
+ }
record->id = _world->system->GetBodyInterface().CreateAndAddBody(settings, JPH::EActivation::Activate);
}
if (record->id.IsInvalid()) {
@@ -929,6 +934,16 @@ bool physicsRaycast(Vec3T origin, Vec3T direction, float maxDistance, int32_t *n
}
+// 2D mode for bodies made from now on: they move in X and Y and turn about Z only, so a 2D game
+// can run its world in overlay coordinates (gravity pointing +Y then, since the overlay's Y runs
+// down) and draw sprites where the nodes are. Bodies already made keep their freedom.
+void physicsSet2D(bool planar) {
+ if (_world != nullptr) {
+ _world->planar = planar;
+ }
+}
+
+
// Pauses the simulation (bodies hold still) without losing it.
void physicsSetEnabled(bool enabled) {
if (_world != nullptr) {
diff --git a/src/scene.c b/src/scene.c
index ad4e56f19..1b3439912 100644
--- a/src/scene.c
+++ b/src/scene.c
@@ -64,13 +64,18 @@
#define SHADOW_BIAS 0.0015f
#define SHADOW_MARGIN 1.05f // The fitted light frustum, a little larger than the scene
#define SKIN_BOUNDS_GROW 1.5f // A skinned mesh moves beyond its bind pose
+#define MAX_MORPHS 8 // Active morph targets per draw (the shader's limit)
+#define MORPH_FLOATS 8 // Per target per vertex: position delta xyz + pad, normal delta xyz + pad
// Matches DrawUniforms in scene.hlsl.
typedef struct DrawUniformsS {
- Mat4T modelViewProjection;
- Mat4T model;
- Mat4T normalMatrix;
+ Mat4T modelViewProjection;
+ Mat4T model;
+ Mat4T normalMatrix;
+ float morphWeights[MAX_MORPHS];
+ int32_t morphTargets[MAX_MORPHS];
+ int32_t morphInfo[4];
} DrawUniformsT;
// Matches Light and FragmentUniforms in scene.hlsl.
@@ -114,6 +119,9 @@ typedef struct MeshS {
float *positions; // A CPU copy of the geometry (x, y, z per vertex) for physics shapes
uint32_t *indices;
int32_t vertexCount;
+ SDL_GPUBuffer *morphBuffer; // Morph target deltas, MORPH_FLOATS per vertex per target
+ char **morphNames;
+ int32_t morphCount;
bool skinned;
bool used;
} MeshT;
@@ -162,6 +170,8 @@ typedef struct NodeS {
int32_t material;
LightT light;
bool castsShadow;
+ float *morphWeights; // One per target of the node's mesh
+ int32_t morphCount;
int32_t *skinJoints; // Nodes whose world matrices drive a skinned mesh
Mat4T *skinInverseBind;
int32_t skinCount;
@@ -208,6 +218,7 @@ typedef struct SceneS {
ShadowT shadows[MAX_SHADOWS];
int32_t shadowCount;
SDL_GPUTexture *white; // 1x1 stand-in for untextured materials
+ SDL_GPUBuffer *noMorphs; // Stand-in delta buffer for meshes without morph targets
SDL_FColor background;
Vec3T ambient;
NodeT *nodes;
@@ -243,7 +254,7 @@ static bool _createPipeline(int32_t variant);
static SDL_GPUTexture *_createShadowArray(SDL_GPUTextureType type, int32_t layers, int32_t size);
static bool _createShadowMaps(int32_t layers);
static bool _createShadowPipeline(int32_t variant);
-static SDL_GPUShader *_createShader(const SceneShaderT *shader, SDL_GPUShaderStage stage, uint32_t samplers, uint32_t uniforms);
+static SDL_GPUShader *_createShader(const SceneShaderT *shader, SDL_GPUShaderStage stage, uint32_t samplers, uint32_t uniforms, uint32_t storageBuffers);
static bool _createShaders(void);
static SDL_GPUTextureFormat _depthFormat(void);
static SDL_GPUTextureFormat _shadowFormat(void);
@@ -256,7 +267,10 @@ static void _fillLights(FragmentUniformsT *uniforms);
static void _fitShadows(int32_t drawCount);
static void _fillSkin(const NodeT *node, SkinUniformsT *uniforms);
static void _freeFeed(FeedT *feed);
+static void _freeMorphs(MeshT *mesh);
+static void _freeMorphWeights(NodeT *node);
static void _freeSkin(NodeT *node);
+static void _matchMorphWeights(NodeT *node);
static void _freeMaterialTexture(MaterialT *material);
static void _lathe(SceneVertexT **vertices, int32_t *vertexCount, uint32_t **indices, int32_t *indexCount, float bottomRadius, float topRadius, float height, int32_t segments);
static int32_t _lookupPipeline(int32_t node);
@@ -531,7 +545,7 @@ static bool _createPipeline(int32_t variant) {
// Picks the blob for the format the device accepts.
-static SDL_GPUShader *_createShader(const SceneShaderT *shader, SDL_GPUShaderStage stage, uint32_t samplers, uint32_t uniforms) {
+static SDL_GPUShader *_createShader(const SceneShaderT *shader, SDL_GPUShaderStage stage, uint32_t samplers, uint32_t uniforms, uint32_t storageBuffers) {
SDL_GPUShaderCreateInfo info;
SDL_GPUShaderFormat formats = SDL_GetGPUShaderFormats(_scene.device);
SDL_GPUShader *result;
@@ -557,6 +571,7 @@ static SDL_GPUShader *_createShader(const SceneShaderT *shader, SDL_GPUShaderSta
info.stage = stage;
info.num_samplers = samplers;
info.num_uniform_buffers = uniforms;
+ info.num_storage_buffers = storageBuffers;
result = SDL_CreateGPUShader(_scene.device, &info);
if (result == NULL) {
utilTrace("Scene: shader %s: %s", shader->entryPoint, SDL_GetError());
@@ -566,10 +581,10 @@ static SDL_GPUShader *_createShader(const SceneShaderT *shader, SDL_GPUShaderSta
static bool _createShaders(void) {
- _scene.vertexStatic = _createShader(&sceneShaderVertexStatic, SDL_GPU_SHADERSTAGE_VERTEX, 0, 1);
- _scene.vertexSkinned = _createShader(&sceneShaderVertexSkinned, SDL_GPU_SHADERSTAGE_VERTEX, 0, 2);
- _scene.fragment = _createShader(&sceneShaderFragmentMain, SDL_GPU_SHADERSTAGE_FRAGMENT, 2, 1);
- _scene.depthFragment = _createShader(&sceneShaderDepthMain, SDL_GPU_SHADERSTAGE_FRAGMENT, 0, 0);
+ _scene.vertexStatic = _createShader(&sceneShaderVertexStatic, SDL_GPU_SHADERSTAGE_VERTEX, 0, 1, 1);
+ _scene.vertexSkinned = _createShader(&sceneShaderVertexSkinned, SDL_GPU_SHADERSTAGE_VERTEX, 0, 2, 1);
+ _scene.fragment = _createShader(&sceneShaderFragmentMain, SDL_GPU_SHADERSTAGE_FRAGMENT, 2, 1, 0);
+ _scene.depthFragment = _createShader(&sceneShaderDepthMain, SDL_GPU_SHADERSTAGE_FRAGMENT, 0, 0, 0);
return (_scene.vertexStatic != NULL) && (_scene.vertexSkinned != NULL) && (_scene.fragment != NULL) && (_scene.depthFragment != NULL);
}
@@ -783,6 +798,7 @@ static void _drawList(SDL_GPUCommandBuffer *commands, SDL_GPURenderPass *pass, i
SDL_BindGPUGraphicsPipeline(pass, pipeline);
lastPipeline = variant;
}
+ memset(&drawUniforms, 0, sizeof(drawUniforms));
drawUniforms.modelViewProjection = mat4Multiply(*viewProjection, node->world);
drawUniforms.model = node->world;
if (mat4Invert(node->world, &inverse)) {
@@ -790,7 +806,40 @@ static void _drawList(SDL_GPUCommandBuffer *commands, SDL_GPURenderPass *pass, i
} else {
drawUniforms.normalMatrix = identity;
}
+ // The strongest active morph targets, up to the shader's limit.
+ if ((mesh->morphBuffer != NULL) && (node->morphCount == mesh->morphCount)) {
+ int32_t active = 0;
+ int32_t t;
+
+ for (t = 0; t < node->morphCount; t++) {
+ if (node->morphWeights[t] == 0.0f) {
+ continue;
+ }
+ if (active < MAX_MORPHS) {
+ drawUniforms.morphWeights[active] = node->morphWeights[t];
+ drawUniforms.morphTargets[active] = t;
+ active++;
+ } else {
+ // Replace the weakest chosen one if this is stronger.
+ int32_t weakest = 0;
+ int32_t k;
+
+ for (k = 1; k < MAX_MORPHS; k++) {
+ if (fabsf(drawUniforms.morphWeights[k]) < fabsf(drawUniforms.morphWeights[weakest])) {
+ weakest = k;
+ }
+ }
+ if (fabsf(node->morphWeights[t]) > fabsf(drawUniforms.morphWeights[weakest])) {
+ drawUniforms.morphWeights[weakest] = node->morphWeights[t];
+ drawUniforms.morphTargets[weakest] = t;
+ }
+ }
+ }
+ drawUniforms.morphInfo[0] = active;
+ drawUniforms.morphInfo[1] = mesh->vertexCount;
+ }
SDL_PushGPUVertexUniformData(commands, 0, &drawUniforms, sizeof(drawUniforms));
+ SDL_BindGPUVertexStorageBuffers(pass, 0, (mesh->morphBuffer != NULL) ? &mesh->morphBuffer : &_scene.noMorphs, 1);
if (mesh->skinned && (node->skinCount > 0)) {
// 8 KB per skinned draw; allocated once per pass that needs it.
if (skinUniforms == NULL) {
@@ -1051,6 +1100,29 @@ static void _freeMaterialTexture(MaterialT *material) {
}
+static void _freeMorphs(MeshT *mesh) {
+ int32_t x;
+
+ if (mesh->morphBuffer != NULL) {
+ SDL_ReleaseGPUBuffer(_scene.device, mesh->morphBuffer);
+ mesh->morphBuffer = NULL;
+ }
+ for (x = 0; x < mesh->morphCount; x++) {
+ SDL_free(mesh->morphNames[x]);
+ }
+ SDL_free(mesh->morphNames);
+ mesh->morphNames = NULL;
+ mesh->morphCount = 0;
+}
+
+
+static void _freeMorphWeights(NodeT *node) {
+ SDL_free(node->morphWeights);
+ node->morphWeights = NULL;
+ node->morphCount = 0;
+}
+
+
static void _freeSkin(NodeT *node) {
SDL_free(node->skinJoints);
SDL_free(node->skinInverseBind);
@@ -1131,6 +1203,24 @@ static void _lathe(SceneVertexT **vertices, int32_t *vertexCount, uint32_t **ind
}
+// Sizes the node's weight list to its mesh's targets (weights start at 0).
+static void _matchMorphWeights(NodeT *node) {
+ int32_t count = ((node->mesh != NO_HANDLE) && meshValid(node->mesh)) ? _scene.meshes[node->mesh].morphCount : 0;
+
+ if (count == node->morphCount) {
+ return;
+ }
+ _freeMorphWeights(node);
+ if (count > 0) {
+ node->morphWeights = SDL_calloc((size_t)count, sizeof(float));
+ if (node->morphWeights == NULL) {
+ utilDie("Out of memory allocating morph weights.");
+ }
+ node->morphCount = count;
+ }
+}
+
+
// What the fragment shader samples for a material: its video feed, its image, or NULL.
static SDL_GPUTexture *_materialTexture(const MaterialT *material) {
if ((material->feed != NO_HANDLE) && (material->feed < _scene.feedCount) && _scene.feeds[material->feed].used) {
@@ -1680,16 +1770,34 @@ bool meshDelete(int32_t mesh) {
}
SDL_free(_scene.meshes[mesh].positions);
SDL_free(_scene.meshes[mesh].indices);
+ _freeMorphs(&_scene.meshes[mesh]);
memset(&_scene.meshes[mesh], 0, sizeof(MeshT));
for (x = 0; x < _scene.nodeCount; x++) {
if (_scene.nodes[x].used && (_scene.nodes[x].mesh == mesh)) {
_scene.nodes[x].mesh = NO_HANDLE;
+ _freeMorphWeights(&_scene.nodes[x]);
}
}
return true;
}
+// A morph target by name, or -1.
+int32_t meshFindMorph(int32_t mesh, const char *name) {
+ int32_t x;
+
+ if (!meshValid(mesh) || (name == NULL)) {
+ return NO_HANDLE;
+ }
+ for (x = 0; x < _scene.meshes[mesh].morphCount; x++) {
+ if ((_scene.meshes[mesh].morphNames[x] != NULL) && (strcmp(_scene.meshes[mesh].morphNames[x], name) == 0)) {
+ return x;
+ }
+ }
+ return NO_HANDLE;
+}
+
+
// The mesh's geometry as kept on the CPU: x, y, z per vertex and triangle indices.
bool meshGetGeometry(int32_t mesh, const float **positions, int32_t *vertexCount, const uint32_t **indices, int32_t *indexCount) {
if (!meshValid(mesh)) {
@@ -1703,6 +1811,22 @@ bool meshGetGeometry(int32_t mesh, const float **positions, int32_t *vertexCount
}
+int32_t meshGetMorphCount(int32_t mesh) {
+ if (!meshValid(mesh)) {
+ return 0;
+ }
+ return _scene.meshes[mesh].morphCount;
+}
+
+
+const char *meshGetMorphName(int32_t mesh, int32_t target) {
+ if (!meshValid(mesh) || (target < 0) || (target >= _scene.meshes[mesh].morphCount) || (_scene.meshes[mesh].morphNames[target] == NULL)) {
+ return "";
+ }
+ return _scene.meshes[mesh].morphNames[target];
+}
+
+
// Raw geometry from a script: positions (3 per vertex), normals (3, may be NULL for flat
// shading computed here), uvs (2, may be NULL), and triangle indices.
int32_t meshNew(const float *positions, const float *normals, const float *uvs, int32_t vertexCount, const uint32_t *indices, int32_t indexCount) {
@@ -1770,6 +1894,56 @@ int32_t meshPlane(float width, float depth) {
}
+// Gives the mesh morph targets: deltas holds, per target, per vertex, a position delta (x, y, z)
+// and a normal delta (x, y, z), six floats; names may be NULL or hold NULL entries. Nodes using
+// the mesh get a weight per target, all 0.
+bool meshSetMorphTargets(int32_t mesh, const float *deltas, int32_t targetCount, const char **names) {
+ MeshT *m;
+ float *packed;
+ int32_t count;
+ int32_t x;
+
+ if (!meshValid(mesh) || (deltas == NULL) || (targetCount <= 0)) {
+ return false;
+ }
+ m = &_scene.meshes[mesh];
+ count = targetCount * m->vertexCount;
+ packed = SDL_calloc((size_t)count * MORPH_FLOATS, sizeof(float));
+ if (packed == NULL) {
+ utilDie("Out of memory packing morph targets.");
+ }
+ // float4 pairs for the shader: xyz0 position delta, xyz0 normal delta.
+ for (x = 0; x < count; x++) {
+ packed[x * MORPH_FLOATS] = deltas[x * 6];
+ packed[x * MORPH_FLOATS + 1] = deltas[x * 6 + 1];
+ packed[x * MORPH_FLOATS + 2] = deltas[x * 6 + 2];
+ packed[x * MORPH_FLOATS + 4] = deltas[x * 6 + 3];
+ packed[x * MORPH_FLOATS + 5] = deltas[x * 6 + 4];
+ packed[x * MORPH_FLOATS + 6] = deltas[x * 6 + 5];
+ }
+ _freeMorphs(m);
+ m->morphBuffer = _uploadBuffer(SDL_GPU_BUFFERUSAGE_GRAPHICS_STORAGE_READ, packed, (uint32_t)((size_t)count * MORPH_FLOATS * sizeof(float)));
+ SDL_free(packed);
+ if (m->morphBuffer == NULL) {
+ return false;
+ }
+ m->morphNames = SDL_calloc((size_t)targetCount, sizeof(char *));
+ if (m->morphNames == NULL) {
+ utilDie("Out of memory naming morph targets.");
+ }
+ for (x = 0; x < targetCount; x++) {
+ m->morphNames[x] = ((names != NULL) && (names[x] != NULL)) ? SDL_strdup(names[x]) : NULL;
+ }
+ m->morphCount = targetCount;
+ for (x = 0; x < _scene.nodeCount; x++) {
+ if (_scene.nodes[x].used && (_scene.nodes[x].mesh == mesh)) {
+ _matchMorphWeights(&_scene.nodes[x]);
+ }
+ }
+ return true;
+}
+
+
// Latitude/longitude sphere; segments around, half as many from pole to pole.
int32_t meshSphere(float radius, int32_t segments) {
SceneVertexT *vertices;
@@ -1905,6 +2079,7 @@ bool nodeDelete(int32_t node) {
}
SDL_free(_scene.nodes[node].name);
_freeSkin(&_scene.nodes[node]);
+ _freeMorphWeights(&_scene.nodes[node]);
_scene.nodes[node].name = NULL;
_scene.nodes[node].used = false;
return true;
@@ -1979,6 +2154,22 @@ int32_t nodeGetMesh(int32_t node) {
}
+int32_t nodeGetMorphCount(int32_t node) {
+ if (!nodeValid(node)) {
+ return 0;
+ }
+ return _scene.nodes[node].morphCount;
+}
+
+
+float nodeGetMorphWeight(int32_t node, int32_t target) {
+ if (!nodeValid(node) || (target < 0) || (target >= _scene.nodes[node].morphCount)) {
+ return 0.0f;
+ }
+ return _scene.nodes[node].morphWeights[target];
+}
+
+
const char *nodeGetName(int32_t node) {
if (!nodeValid(node) || (_scene.nodes[node].name == NULL)) {
return "";
@@ -2077,9 +2268,6 @@ bool nodeMove(int32_t node, Vec3T delta) {
int32_t nodeNew(int32_t parent) {
int32_t node;
- if (_scene.device == NULL) {
- return NO_HANDLE;
- }
if (parent == NO_HANDLE) {
parent = SCENE_ROOT_NODE;
}
@@ -2115,6 +2303,17 @@ bool nodeSetMesh(int32_t node, int32_t mesh, int32_t material) {
}
_scene.nodes[node].mesh = mesh;
_scene.nodes[node].material = material;
+ _matchMorphWeights(&_scene.nodes[node]);
+ return true;
+}
+
+
+// How much of a morph target the node's mesh shows (usually 0 to 1).
+bool nodeSetMorphWeight(int32_t node, int32_t target, float weight) {
+ if (!nodeValid(node) || (target < 0) || (target >= _scene.nodes[node].morphCount)) {
+ return false;
+ }
+ _scene.nodes[node].morphWeights[target] = weight;
return true;
}
@@ -2293,13 +2492,15 @@ bool sceneInit(SDL_GPUDevice *device, SDL_Renderer *renderer) {
_scene.antialias = true;
_scene.sampleCount = SDL_GPU_SAMPLECOUNT_1;
_scene.shadowSize = SHADOW_SIZE;
+ // The node tree is plain data and exists on every machine (physics bodies live on nodes);
+ // everything from here on needs the GPU, and without one the layer cannot be enabled.
+ _allocNode();
+ nodeSetName(SCENE_ROOT_NODE, "root");
if (device == NULL) {
return false;
}
_scene.depthFormat = _depthFormat();
_scene.shadowFormat = _shadowFormat();
- _allocNode();
- nodeSetName(SCENE_ROOT_NODE, "root");
if (!_createShaders()) {
sceneQuit();
return false;
@@ -2326,8 +2527,13 @@ bool sceneInit(SDL_GPUDevice *device, SDL_Renderer *renderer) {
_scene.white = _uploadTexture(pixel);
SDL_DestroySurface(pixel);
}
+ {
+ float zero[MORPH_FLOATS] = { 0.0f };
+
+ _scene.noMorphs = _uploadBuffer(SDL_GPU_BUFFERUSAGE_GRAPHICS_STORAGE_READ, zero, sizeof(zero));
+ }
_scene.shadowMapsNone = _createShadowArray(SDL_GPU_TEXTURETYPE_2D_ARRAY, 1, 1);
- if ((_scene.sampler == NULL) || (_scene.shadowSampler == NULL) || (_scene.white == NULL) || (_scene.shadowMapsNone == NULL)) {
+ if ((_scene.sampler == NULL) || (_scene.shadowSampler == NULL) || (_scene.white == NULL) || (_scene.shadowMapsNone == NULL) || (_scene.noMorphs == NULL)) {
utilTrace("Scene: %s", SDL_GetError());
sceneQuit();
return false;
@@ -2398,11 +2604,15 @@ void sceneQuit(void) {
if (_scene.white != NULL) {
SDL_ReleaseGPUTexture(_scene.device, _scene.white);
}
+ if (_scene.noMorphs != NULL) {
+ SDL_ReleaseGPUBuffer(_scene.device, _scene.noMorphs);
+ }
_destroyTargets();
}
for (x = 0; x < _scene.nodeCount; x++) {
SDL_free(_scene.nodes[x].name);
_freeSkin(&_scene.nodes[x]);
+ _freeMorphWeights(&_scene.nodes[x]);
}
SDL_free(_scene.nodes);
SDL_free(_scene.meshes);
@@ -2728,7 +2938,7 @@ Vec3T sceneUnproject(float x, float y, float distance) {
void sceneUpdateTransforms(void) {
Mat4T identity = mat4Identity();
- if (_scene.device != NULL) {
+ if (_scene.nodeCount > 0) {
_updateWorld(SCENE_ROOT_NODE, &identity, true);
}
}
diff --git a/src/scene.h b/src/scene.h
index 7f250b811..f25ada4f6 100644
--- a/src/scene.h
+++ b/src/scene.h
@@ -98,11 +98,15 @@ int32_t meshCone(float radius, float height, int32_t segments);
int32_t meshCylinder(float radius, float height, int32_t segments);
bool meshDelete(int32_t mesh);
bool meshGetGeometry(int32_t mesh, const float **positions, int32_t *vertexCount, const uint32_t **indices, int32_t *indexCount);
+int32_t meshFindMorph(int32_t mesh, const char *name);
+int32_t meshGetMorphCount(int32_t mesh);
+const char *meshGetMorphName(int32_t mesh, int32_t target);
int32_t meshNew(const float *positions, const float *normals, const float *uvs, int32_t vertexCount, const uint32_t *indices, int32_t indexCount);
int32_t meshNewVertices(const SceneVertexT *vertices, int32_t vertexCount, const uint32_t *indices, int32_t indexCount, bool skinned);
int32_t meshPlane(float width, float depth);
int32_t meshSphere(float radius, int32_t segments);
int32_t meshTorus(float radius, float tubeRadius, int32_t segments);
+bool meshSetMorphTargets(int32_t mesh, const float *deltas, int32_t targetCount, const char **names);
bool meshValid(int32_t mesh);
bool nodeDelete(int32_t node);
@@ -111,6 +115,8 @@ int32_t nodeGetChild(int32_t node, int32_t index);
int32_t nodeGetChildCount(int32_t node);
uint32_t nodeGetGeneration(int32_t node);
int32_t nodeGetMesh(int32_t node);
+int32_t nodeGetMorphCount(int32_t node);
+float nodeGetMorphWeight(int32_t node, int32_t target);
const char *nodeGetName(int32_t node);
int32_t nodeGetParent(int32_t node);
Vec3T nodeGetPosition(int32_t node);
@@ -123,6 +129,7 @@ bool nodeMove(int32_t node, Vec3T delta);
int32_t nodeNew(int32_t parent);
bool nodeRotate(int32_t node, QuatT delta);
bool nodeSetMesh(int32_t node, int32_t mesh, int32_t material);
+bool nodeSetMorphWeight(int32_t node, int32_t target, float weight);
bool nodeSetName(int32_t node, const char *name);
bool nodeSetParent(int32_t node, int32_t parent);
bool nodeSetPosition(int32_t node, Vec3T position);
diff --git a/src/shaders/build.sh b/src/shaders/build.sh
deleted file mode 100755
index 9c2538981..000000000
--- a/src/shaders/build.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-#
-# Compiles scene.hlsl into sceneShaders.h: SPIR-V (Vulkan), DXIL (Direct3D 12) and MSL (Metal)
-# for each entry point, as C arrays. Needs SDL_shadercross's command line tool (built from
-# https://github.com/libsdl-org/SDL_shadercross with SDLSHADERCROSS_DXC=ON); pass its path as the
-# first argument or put it on PATH. The engine build never runs this: the output is checked in.
-#
-# Usage: src/shaders/build.sh [path/to/shadercross]
-
-set -euo pipefail
-cd "$(dirname "$0")"
-SHADERCROSS=${1:-shadercross}
-OUT=sceneShaders.h
-TMP=$(mktemp -d)
-trap 'rm -rf "$TMP"' EXIT
-
-ENTRIES="vertexStatic:vertex vertexSkinned:vertex fragmentMain:fragment depthMain:fragment"
-
-emit() {
- # emit NAME FILE: a C array from a binary file
- local name=$1
- local file=$2
- echo "static const unsigned char ${name}[] = {"
- od -An -v -tx1 "$file" | sed 's/ \([0-9a-f][0-9a-f]\)/0x\1,/g; s/^/\t/'
- echo "};"
-}
-
-{
- echo "// Generated by build.sh from scene.hlsl with SDL_shadercross; do not edit."
- echo "// SPIR-V for Vulkan, DXIL for Direct3D 12, MSL for Metal, one set per entry point."
- echo
- echo "#ifndef SCENE_SHADERS_H"
- echo "#define SCENE_SHADERS_H"
- echo
- echo "#include "
- echo
- echo "typedef struct SceneShaderS {"
- echo " const char *entryPoint;"
- echo " const unsigned char *spirv;"
- echo " size_t spirvSize;"
- echo " const unsigned char *dxil;"
- echo " size_t dxilSize;"
- echo " const unsigned char *msl;"
- echo " size_t mslSize;"
- echo "} SceneShaderT;"
- echo
- for entry in $ENTRIES; do
- name=${entry%%:*}
- stage=${entry##*:}
- for format in SPIRV DXIL MSL; do
- ext=$(echo "$format" | tr '[:upper:]' '[:lower:]')
- "$SHADERCROSS" scene.hlsl -s HLSL -d "$format" -t "$stage" -e "$name" -o "$TMP/$name.$ext" >&2
- emit "_${name}${format}" "$TMP/$name.$ext"
- echo
- done
- echo "static const SceneShaderT sceneShader$(echo "${name:0:1}" | tr '[:lower:]' '[:upper:]')${name:1} = { \"$name\", _${name}SPIRV, sizeof(_${name}SPIRV), _${name}DXIL, sizeof(_${name}DXIL), _${name}MSL, sizeof(_${name}MSL) };"
- echo
- done
- echo "#endif"
-} > "$OUT"
-echo "Wrote $OUT"
diff --git a/src/shaders/scene.hlsl b/src/shaders/scene.hlsl
index 25a39d2f9..1500800ce 100644
--- a/src/shaders/scene.hlsl
+++ b/src/shaders/scene.hlsl
@@ -9,6 +9,7 @@
#define MAX_LIGHTS 8
#define MAX_JOINTS 128
#define MAX_SHADOWS 8
+#define MAX_MORPHS 8 // Active morph targets per draw
#define SHADOW_NONE 0
#define SHADOW_MAP 1
@@ -25,8 +26,14 @@ cbuffer DrawUniforms : register(b0, space1) {
float4x4 modelViewProjection;
float4x4 model;
float4x4 normalMatrix; // Inverse transpose of model, for normals under non-uniform scale
+ float4 morphWeights[2]; // Up to MAX_MORPHS active targets ...
+ int4 morphTargets[2]; // ... and which targets they are
+ int4 morphInfo; // x = active count, y = vertices per target
};
+// Morph target deltas: per target, per vertex, a position delta then a normal delta.
+StructuredBuffer morphDeltas : register(t0, space0);
+
cbuffer SkinUniforms : register(b1, space1) {
float4x4 joints[MAX_JOINTS];
};
@@ -47,32 +54,59 @@ struct VertexOutput {
};
-VertexOutput vertexStatic(VertexInput input) {
- VertexOutput output;
+// Adds the active morph targets' deltas to a vertex.
+void morph(uint vertex, inout float3 position, inout float3 normal) {
+ int x;
- output.position = mul(modelViewProjection, float4(input.position, 1.0));
- output.worldPosition = mul(model, float4(input.position, 1.0)).xyz;
- output.worldNormal = normalize(mul((float3x3)normalMatrix, input.normal));
+ for (x = 0; x < MAX_MORPHS; x++) {
+ float weight;
+ uint base;
+
+ if (x >= morphInfo.x) {
+ continue;
+ }
+ weight = morphWeights[x / 4][x % 4];
+ base = ((uint)morphTargets[x / 4][x % 4] * (uint)morphInfo.y + vertex) * 2;
+ position += morphDeltas[base].xyz * weight;
+ normal += morphDeltas[base + 1].xyz * weight;
+ }
+}
+
+
+VertexOutput vertexStatic(VertexInput input, uint vertex : SV_VertexID) {
+ VertexOutput output;
+ float3 position = input.position;
+ float3 normal = input.normal;
+
+ morph(vertex, position, normal);
+ output.position = mul(modelViewProjection, float4(position, 1.0));
+ output.worldPosition = mul(model, float4(position, 1.0)).xyz;
+ output.worldNormal = normalize(mul((float3x3)normalMatrix, normal));
output.uv = input.uv;
return output;
}
-VertexOutput vertexSkinned(VertexInput input) {
+VertexOutput vertexSkinned(VertexInput input, uint vertex : SV_VertexID) {
VertexOutput output;
- float4 position = float4(input.position, 1.0);
+ float3 morphed = input.position;
+ float3 normal = input.normal;
+ float4 position;
float4 skinned;
float3 skinnedNormal;
+ morph(vertex, morphed, normal);
+ position = float4(morphed, 1.0);
+
// The weighted sum of the joint transforms, applied to the position and the normal.
skinned = mul(joints[input.joints.x], position) * input.weights.x
+ mul(joints[input.joints.y], position) * input.weights.y
+ mul(joints[input.joints.z], position) * input.weights.z
+ mul(joints[input.joints.w], position) * input.weights.w;
- skinnedNormal = mul((float3x3)joints[input.joints.x], input.normal) * input.weights.x
- + mul((float3x3)joints[input.joints.y], input.normal) * input.weights.y
- + mul((float3x3)joints[input.joints.z], input.normal) * input.weights.z
- + mul((float3x3)joints[input.joints.w], input.normal) * input.weights.w;
+ skinnedNormal = mul((float3x3)joints[input.joints.x], normal) * input.weights.x
+ + mul((float3x3)joints[input.joints.y], normal) * input.weights.y
+ + mul((float3x3)joints[input.joints.z], normal) * input.weights.z
+ + mul((float3x3)joints[input.joints.w], normal) * input.weights.w;
output.position = mul(modelViewProjection, skinned);
output.worldPosition = mul(model, skinned).xyz;
output.worldNormal = normalize(mul((float3x3)normalMatrix, skinnedNormal));
diff --git a/src/shaders/sceneShaders.h b/src/shaders/sceneShaders.h
deleted file mode 100644
index 95d8d9a7c..000000000
--- a/src/shaders/sceneShaders.h
+++ /dev/null
@@ -1,4584 +0,0 @@
-// Generated by build.sh from scene.hlsl with SDL_shadercross; do not edit.
-// SPIR-V for Vulkan, DXIL for Direct3D 12, MSL for Metal, one set per entry point.
-
-#ifndef SCENE_SHADERS_H
-#define SCENE_SHADERS_H
-
-#include
-
-typedef struct SceneShaderS {
- const char *entryPoint;
- const unsigned char *spirv;
- size_t spirvSize;
- const unsigned char *dxil;
- size_t dxilSize;
- const unsigned char *msl;
- size_t mslSize;
-} SceneShaderT;
-
-static const unsigned char _vertexStaticSPIRV[] = {
- 0x03,0x02,0x23,0x07,0x00,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x52,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x0b,0x00,0x06,0x00,
- 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,
- 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x76,0x65,0x72,0x74,
- 0x65,0x78,0x53,0x74,0x61,0x74,0x69,0x63,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x05,0x00,0x00,0x00,
- 0x58,0x02,0x00,0x00,0x05,0x00,0x07,0x00,0x0a,0x00,0x00,0x00,0x74,0x79,0x70,0x65,
- 0x2e,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,
- 0x06,0x00,0x08,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6d,0x6f,0x64,0x65,
- 0x6c,0x56,0x69,0x65,0x77,0x50,0x72,0x6f,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x00,
- 0x06,0x00,0x05,0x00,0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6d,0x6f,0x64,0x65,
- 0x6c,0x00,0x00,0x00,0x06,0x00,0x07,0x00,0x0a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x06,0x00,0x0b,0x00,0x00,0x00,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x0c,0x00,0x00,0x00,
- 0x74,0x79,0x70,0x65,0x2e,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x00,0x00,0x00,0x06,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x6a,0x6f,0x69,0x6e,0x74,0x73,0x00,0x00,0x05,0x00,0x06,0x00,0x0d,0x00,0x00,0x00,
- 0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x08,0x00,0x0e,0x00,0x00,0x00,0x74,0x79,0x70,0x65,0x2e,0x46,0x72,0x61,
- 0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,
- 0x06,0x00,0x07,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x61,0x6d,0x65,
- 0x72,0x61,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x00,0x00,0x06,0x00,0x05,0x00,
- 0x0e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x00,
- 0x06,0x00,0x06,0x00,0x0e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x62,0x61,0x73,0x65,
- 0x43,0x6f,0x6c,0x6f,0x72,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x0e,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x00,0x00,0x00,0x00,
- 0x06,0x00,0x06,0x00,0x0e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x74,0x65,
- 0x72,0x69,0x61,0x6c,0x00,0x00,0x00,0x00,0x06,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
- 0x05,0x00,0x00,0x00,0x63,0x6f,0x75,0x6e,0x74,0x73,0x00,0x00,0x06,0x00,0x07,0x00,
- 0x0e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x73,0x68,0x61,0x64,0x6f,0x77,0x50,0x61,
- 0x72,0x61,0x6d,0x73,0x00,0x00,0x00,0x00,0x06,0x00,0x07,0x00,0x0e,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x74,0x72,0x69,0x78,
- 0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x0e,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x73,0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x00,0x00,0x06,0x00,0x05,0x00,
- 0x0e,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x6c,0x69,0x67,0x68,0x74,0x73,0x00,0x00,
- 0x05,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x4c,0x69,0x67,0x68,0x74,0x00,0x00,0x00,
- 0x06,0x00,0x07,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x6f,0x73,0x69,
- 0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x06,0x00,0x07,0x00,
- 0x0f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,
- 0x6e,0x52,0x61,0x6e,0x67,0x65,0x00,0x00,0x06,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x00,0x00,0x06,0x00,0x05,0x00,
- 0x0f,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x63,0x6f,0x6e,0x65,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x07,0x00,0x10,0x00,0x00,0x00,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,
- 0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x00,0x05,0x00,0x06,0x00,
- 0x11,0x00,0x00,0x00,0x74,0x79,0x70,0x65,0x2e,0x32,0x64,0x2e,0x69,0x6d,0x61,0x67,
- 0x65,0x00,0x00,0x00,0x05,0x00,0x05,0x00,0x12,0x00,0x00,0x00,0x62,0x61,0x73,0x65,
- 0x54,0x65,0x78,0x74,0x75,0x72,0x65,0x00,0x05,0x00,0x06,0x00,0x13,0x00,0x00,0x00,
- 0x74,0x79,0x70,0x65,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x05,0x00,0x14,0x00,0x00,0x00,0x62,0x61,0x73,0x65,0x53,0x61,0x6d,0x70,
- 0x6c,0x65,0x72,0x00,0x05,0x00,0x07,0x00,0x15,0x00,0x00,0x00,0x74,0x79,0x70,0x65,
- 0x2e,0x32,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x2e,0x61,0x72,0x72,0x61,0x79,0x00,
- 0x05,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,
- 0x70,0x73,0x00,0x00,0x05,0x00,0x06,0x00,0x17,0x00,0x00,0x00,0x73,0x68,0x61,0x64,
- 0x6f,0x77,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x00,0x00,0x00,0x05,0x00,0x07,0x00,
- 0x03,0x00,0x00,0x00,0x69,0x6e,0x2e,0x76,0x61,0x72,0x2e,0x54,0x45,0x58,0x43,0x4f,
- 0x4f,0x52,0x44,0x30,0x00,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x04,0x00,0x00,0x00,
- 0x69,0x6e,0x2e,0x76,0x61,0x72,0x2e,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,
- 0x00,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x05,0x00,0x00,0x00,0x69,0x6e,0x2e,0x76,
- 0x61,0x72,0x2e,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x32,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x6f,0x75,0x74,0x2e,0x76,0x61,0x72,0x2e,
- 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x00,0x00,0x00,0x05,0x00,0x07,0x00,
- 0x08,0x00,0x00,0x00,0x6f,0x75,0x74,0x2e,0x76,0x61,0x72,0x2e,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x31,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x09,0x00,0x00,0x00,
- 0x6f,0x75,0x74,0x2e,0x76,0x61,0x72,0x2e,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x32,0x00,0x00,0x00,0x05,0x00,0x06,0x00,0x02,0x00,0x00,0x00,0x76,0x65,0x72,0x74,
- 0x65,0x78,0x53,0x74,0x61,0x74,0x69,0x63,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x06,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x03,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x04,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x05,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x07,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x08,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x09,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0b,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0d,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0d,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x10,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x10,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x12,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x12,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x14,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x14,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x16,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x16,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x17,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x17,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0a,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
- 0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x0a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x0a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x0a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x47,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x0c,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x40,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x0f,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x30,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x40,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x0e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x30,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
- 0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x0e,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x60,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x70,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x0e,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0xf0,0x02,0x00,0x00,
- 0x47,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
- 0x1c,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
- 0x1c,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
- 0x1e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,
- 0x1f,0x00,0x00,0x00,0x00,0x00,0x80,0x3f,0x2b,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,
- 0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,
- 0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x22,0x00,0x00,0x00,
- 0x1e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x04,0x00,0x23,0x00,0x00,0x00,
- 0x22,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0x0a,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
- 0x24,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
- 0x25,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
- 0x25,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
- 0x18,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
- 0x0c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x27,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x25,0x00,0x00,0x00,
- 0x28,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,
- 0x22,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x0f,0x00,0x00,0x00,
- 0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
- 0x1e,0x00,0x0c,0x00,0x0e,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x22,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x29,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
- 0x19,0x00,0x09,0x00,0x11,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x11,0x00,0x00,0x00,0x1a,0x00,0x02,0x00,0x13,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
- 0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x19,0x00,0x09,0x00,
- 0x15,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
- 0x17,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
- 0x17,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x32,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x33,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,
- 0x13,0x00,0x02,0x00,0x34,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x35,0x00,0x00,0x00,
- 0x34,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x18,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x27,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x29,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2a,0x00,0x00,0x00,0x12,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2b,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2b,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x30,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x32,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x32,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x33,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x34,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x38,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
- 0x41,0x00,0x05,0x00,0x36,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
- 0x1d,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,
- 0x3c,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
- 0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x1e,0x00,0x00,0x00,
- 0x3f,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
- 0x1e,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x50,0x00,0x07,0x00,0x22,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,
- 0x3f,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x90,0x00,0x05,0x00,
- 0x22,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,
- 0x41,0x00,0x05,0x00,0x36,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
- 0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x23,0x00,0x00,0x00,0x44,0x00,0x00,0x00,
- 0x43,0x00,0x00,0x00,0x90,0x00,0x05,0x00,0x22,0x00,0x00,0x00,0x45,0x00,0x00,0x00,
- 0x41,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x2d,0x00,0x00,0x00,
- 0x46,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x36,0x00,0x00,0x00,
- 0x47,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x23,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
- 0x22,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x4f,0x00,0x08,0x00,0x2d,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x49,0x00,0x00,0x00,
- 0x49,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x22,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x2d,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,
- 0x4b,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x22,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,
- 0x48,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x2d,0x00,0x00,0x00,
- 0x4e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x50,0x00,0x06,0x00,0x37,0x00,0x00,0x00,
- 0x4f,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
- 0x90,0x00,0x05,0x00,0x2d,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,
- 0x4f,0x00,0x00,0x00,0x0c,0x00,0x06,0x00,0x2d,0x00,0x00,0x00,0x51,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
- 0x06,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x07,0x00,0x00,0x00,
- 0x46,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x51,0x00,0x00,0x00,
- 0x3e,0x00,0x03,0x00,0x09,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,
- 0x38,0x00,0x01,0x00,
-};
-
-static const unsigned char _vertexStaticDXIL[] = {
- 0x44,0x58,0x42,0x43,0x0d,0x39,0xe0,0xb8,0x20,0x37,0x03,0xc3,0xcf,0xb8,0x25,0xa1,
- 0xee,0x9e,0xbb,0x0b,0x01,0x00,0x00,0x00,0x08,0x16,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x3c,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x70,0x01,0x00,0x00,
- 0xcc,0x02,0x00,0x00,0x48,0x0a,0x00,0x00,0x64,0x0a,0x00,0x00,0x53,0x46,0x49,0x30,
- 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x53,0x47,0x31,
- 0x74,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x68,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x68,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x00,0x00,0x00,0x00,0x4f,0x53,0x47,0x31,0xa0,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x07,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x07,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x03,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x91,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x00,0x53,0x56,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x00,0x00,0x00,0x00,
- 0x50,0x53,0x56,0x30,0x54,0x01,0x00,0x00,0x34,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x44,0x00,0x00,0x00,0x00,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x00,0x54,0x45,
- 0x58,0x43,0x4f,0x4f,0x52,0x44,0x00,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x00,
- 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x00,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,
- 0x44,0x00,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x00,0x76,0x65,0x72,0x74,0x65,
- 0x78,0x53,0x74,0x61,0x74,0x69,0x63,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x43,0x00,0x03,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x01,0x01,0x43,0x00,0x03,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x01,0x02,0x42,0x00,0x03,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x43,0x00,0x03,0x02,0x00,0x00,0x25,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x01,0x01,0x43,0x00,0x03,0x02,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x01,0x02,0x42,0x00,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x03,0x44,0x03,0x03,0x04,0x00,0x00,0x07,0xf0,0x00,0x00,
- 0x07,0xf0,0x00,0x00,0x07,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
- 0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
- 0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x53,0x54,0x41,0x54,
- 0x74,0x07,0x00,0x00,0x60,0x00,0x01,0x00,0xdd,0x01,0x00,0x00,0x44,0x58,0x49,0x4c,
- 0x00,0x01,0x00,0x00,0x10,0x00,0x00,0x00,0x5c,0x07,0x00,0x00,0x42,0x43,0xc0,0xde,
- 0x21,0x0c,0x00,0x00,0xd4,0x01,0x00,0x00,0x0b,0x82,0x20,0x00,0x02,0x00,0x00,0x00,
- 0x13,0x00,0x00,0x00,0x07,0x81,0x23,0x91,0x41,0xc8,0x04,0x49,0x06,0x10,0x32,0x39,
- 0x92,0x01,0x84,0x0c,0x25,0x05,0x08,0x19,0x1e,0x04,0x8b,0x62,0x80,0x14,0x45,0x02,
- 0x42,0x92,0x0b,0x42,0xa4,0x10,0x32,0x14,0x38,0x08,0x18,0x4b,0x0a,0x32,0x52,0x88,
- 0x48,0x90,0x14,0x20,0x43,0x46,0x88,0xa5,0x00,0x19,0x32,0x42,0xe4,0x48,0x0e,0x90,
- 0x91,0x22,0xc4,0x50,0x41,0x51,0x81,0x8c,0xe1,0x83,0xe5,0x8a,0x04,0x29,0x46,0x06,
- 0x51,0x18,0x00,0x00,0x08,0x00,0x00,0x00,0x1b,0x8c,0xe0,0xff,0xff,0xff,0xff,0x07,
- 0x40,0x02,0xa8,0x0d,0x84,0xf0,0xff,0xff,0xff,0xff,0x03,0x20,0x6d,0x30,0x86,0xff,
- 0xff,0xff,0xff,0x1f,0x00,0x09,0xa8,0x00,0x49,0x18,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x13,0x82,0x60,0x42,0x20,0x4c,0x08,0x06,0x00,0x00,0x00,0x00,0x89,0x20,0x00,0x00,
- 0x28,0x00,0x00,0x00,0x32,0x22,0x48,0x09,0x20,0x64,0x85,0x04,0x93,0x22,0xa4,0x84,
- 0x04,0x93,0x22,0xe3,0x84,0xa1,0x90,0x14,0x12,0x4c,0x8a,0x8c,0x0b,0x84,0xa4,0x4c,
- 0x10,0x78,0x23,0x00,0x25,0x00,0x14,0x66,0x00,0xe6,0x08,0xc0,0x60,0x8e,0x00,0x29,
- 0xc6,0x20,0x84,0x14,0x42,0xa6,0x18,0x80,0x10,0x52,0x06,0xa1,0x82,0x0c,0x32,0xc6,
- 0x18,0x63,0x90,0x2a,0xc3,0x20,0x83,0xd8,0x51,0xc3,0xe5,0x4f,0xd8,0x43,0x48,0x3e,
- 0xb7,0x51,0xc5,0x4a,0x4c,0x7e,0x71,0xdb,0x88,0x18,0x63,0x0c,0x2a,0xf7,0x0c,0x97,
- 0x3f,0x61,0x0f,0x21,0xf9,0x21,0xd0,0x0c,0x0b,0x81,0x82,0x57,0x08,0x47,0x20,0xa1,
- 0x58,0x8a,0x41,0xc6,0x18,0x34,0xe7,0x08,0x82,0x62,0x40,0x52,0x08,0xa9,0x64,0x07,
- 0x02,0x86,0x11,0x88,0x21,0x09,0xf2,0x71,0x87,0x23,0x4d,0x0b,0x80,0x39,0xd4,0xe4,
- 0x4f,0xd8,0x43,0xfc,0x5d,0x04,0x58,0x6e,0x83,0x14,0x4e,0xc4,0x48,0x68,0xd0,0x5a,
- 0xd3,0x4e,0x06,0x02,0x13,0x14,0x72,0xc0,0x87,0x74,0x60,0x87,0x36,0x68,0x87,0x79,
- 0x68,0x03,0x72,0xc0,0x87,0x0d,0xaf,0x50,0x0e,0x6d,0xd0,0x0e,0x7a,0x50,0x0e,0x6d,
- 0x00,0x0f,0x7a,0x30,0x07,0x72,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x71,0xa0,
- 0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x78,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,
- 0x71,0x60,0x07,0x7a,0x30,0x07,0x72,0xd0,0x06,0xe9,0x30,0x07,0x72,0xa0,0x07,0x73,
- 0x20,0x07,0x6d,0x90,0x0e,0x76,0x40,0x07,0x7a,0x60,0x07,0x74,0xd0,0x06,0xe6,0x10,
- 0x07,0x76,0xa0,0x07,0x73,0x20,0x07,0x6d,0x60,0x0e,0x73,0x20,0x07,0x7a,0x30,0x07,
- 0x72,0xd0,0x06,0xe6,0x60,0x07,0x74,0xa0,0x07,0x76,0x40,0x07,0x6d,0xe0,0x0e,0x78,
- 0xa0,0x07,0x71,0x60,0x07,0x7a,0x30,0x07,0x72,0xa0,0x07,0x76,0x40,0x07,0x43,0x9e,
- 0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,0x3c,0x06,0x10,0x00,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x79,0x10,0x20,0x00,0x04,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x18,0xf2,0x28,0x40,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x30,0xe4,0x61,0x80,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,
- 0xc8,0x13,0x01,0x01,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x90,0x67,0x02,
- 0x02,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x21,0x8f,0x05,0x04,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x59,0x20,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
- 0x32,0x1e,0x98,0x18,0x19,0x11,0x4c,0x90,0x8c,0x09,0x26,0x47,0xc6,0x04,0x43,0x22,
- 0x25,0x30,0x02,0x50,0x0c,0x05,0x38,0x50,0x04,0x85,0x50,0x06,0xe5,0x50,0x12,0x05,
- 0x18,0x50,0x80,0x02,0xe5,0x51,0x60,0xa5,0x55,0x2c,0x45,0x2e,0x50,0x10,0x85,0x41,
- 0xa5,0x24,0x46,0x00,0xca,0xa0,0x08,0x0a,0x81,0x6a,0x0d,0xd0,0x9e,0x01,0x20,0x3e,
- 0x03,0x40,0x7d,0x2c,0x46,0x81,0x4e,0x90,0x0f,0x4e,0x90,0x0f,0x4e,0x90,0x0f,0x00,
- 0x78,0x80,0x07,0x78,0x00,0x40,0x04,0x84,0x00,0x00,0x00,0x00,0x79,0x18,0x00,0x00,
- 0xbc,0x00,0x00,0x00,0x1a,0x03,0x4c,0x90,0x46,0x02,0x13,0xc4,0x8f,0x0c,0x6f,0x0c,
- 0x05,0x4e,0x2e,0xcd,0x2e,0x8c,0xae,0x2c,0x05,0x24,0xc6,0x25,0xc7,0x05,0xc6,0x25,
- 0x06,0x04,0x45,0x66,0x0c,0x87,0x26,0x2c,0x66,0xac,0x26,0x65,0x43,0x10,0x4c,0x10,
- 0x08,0x64,0x82,0x40,0x24,0x1b,0x84,0x81,0xd8,0x20,0x10,0x04,0x05,0xbb,0xb9,0x09,
- 0x02,0xa1,0x6c,0x18,0x0e,0x84,0x98,0x20,0x70,0x61,0xc0,0x88,0x2e,0x0f,0xae,0xec,
- 0x8b,0x48,0x2e,0xec,0xae,0xca,0x2d,0xcd,0xec,0x4d,0xae,0x6d,0x6e,0x82,0x40,0x2c,
- 0x1b,0x10,0x42,0x59,0x06,0x62,0x60,0x80,0x0d,0x41,0xb3,0x81,0x00,0x00,0x07,0x98,
- 0x20,0x6c,0x60,0x40,0x30,0x20,0x92,0x0b,0xbb,0xab,0x72,0x4b,0x33,0x7b,0x93,0x6b,
- 0x9b,0xfb,0x6a,0x7b,0x23,0x2b,0x63,0xb3,0x4a,0x2b,0xbb,0x83,0x92,0x7b,0x53,0x2b,
- 0x1b,0xa3,0x4b,0x7b,0x73,0x9b,0x20,0x10,0xcc,0x04,0x81,0x68,0x36,0x0c,0xd3,0x24,
- 0x4d,0x10,0x08,0x67,0x82,0x40,0x3c,0x13,0x04,0x02,0x9a,0x20,0x54,0xdf,0x06,0x05,
- 0x89,0x24,0xaa,0x22,0xac,0xeb,0xc2,0x28,0x11,0xc9,0x85,0xdd,0x55,0xb9,0xa5,0x99,
- 0xbd,0xc9,0xb5,0xcd,0x7d,0xb5,0xbd,0x91,0x95,0xb1,0x4d,0x10,0x88,0x68,0x03,0x82,
- 0x68,0x12,0x55,0x6d,0xd6,0xc5,0x8c,0x48,0x2e,0xec,0xae,0xca,0x2d,0xcd,0xec,0x4d,
- 0xae,0x6d,0xee,0xcb,0xed,0x4d,0xae,0x2d,0x8c,0xad,0x29,0x8c,0x4e,0x2e,0x0d,0x6f,
- 0x82,0x40,0x48,0x1b,0x10,0xa4,0x93,0xa8,0xca,0xb3,0xae,0x0d,0x04,0x93,0x71,0xdf,
- 0x86,0x81,0x80,0xc0,0x60,0x82,0x20,0x00,0x1b,0x80,0x0d,0x03,0x31,0x06,0x63,0xb0,
- 0x21,0x20,0x83,0x0d,0xc3,0x20,0x06,0x65,0x30,0x41,0xe8,0xc4,0x60,0x43,0x70,0x06,
- 0x64,0xec,0xca,0xe4,0xe8,0xca,0xf0,0xa6,0xe8,0xc2,0xe8,0xd2,0xc6,0x88,0x50,0x15,
- 0x61,0x0d,0x3d,0x3d,0x49,0x11,0x4d,0x10,0x0a,0x6d,0x82,0x50,0x6c,0x1b,0x02,0x62,
- 0x82,0x50,0x70,0x1b,0x84,0xca,0xda,0xb0,0x10,0x6a,0xb0,0x06,0x6c,0xd0,0x06,0x6c,
- 0x30,0xb8,0x01,0xc1,0x06,0x6f,0xb0,0x21,0x18,0x36,0x2c,0x83,0x1a,0xac,0x01,0x1b,
- 0xc4,0x01,0x1b,0x0c,0x6e,0x30,0xb0,0xc1,0x1b,0x6c,0x08,0xa4,0x09,0x42,0xd1,0x6d,
- 0x10,0xaa,0x6a,0xc3,0x22,0xa9,0xc1,0x1a,0xb0,0xc1,0x1c,0xb0,0xc1,0x40,0x07,0x12,
- 0x1b,0xd4,0xc1,0x86,0x01,0x0e,0xe4,0xc0,0x0e,0x36,0x2c,0x84,0x1a,0xac,0x01,0x1b,
- 0xb4,0x01,0x1d,0x0c,0x6e,0x40,0xb0,0xc1,0x1b,0x6c,0x58,0x06,0x35,0x58,0x03,0x36,
- 0x88,0x03,0x3a,0x18,0xdc,0x60,0x60,0x83,0x37,0xd8,0xb0,0x48,0x6a,0xb0,0x06,0x6c,
- 0x30,0x07,0x74,0x30,0xd0,0x81,0xc4,0x06,0x75,0xc0,0x65,0xca,0xea,0x0b,0xea,0x6d,
- 0x2e,0x8d,0x2e,0xed,0xcd,0x6d,0x82,0x50,0x78,0x13,0x04,0x62,0xda,0x20,0x54,0x7d,
- 0xb0,0x61,0xa9,0xf6,0x60,0x0d,0xdc,0xa0,0x0d,0xf8,0x60,0xe0,0x83,0x8a,0x0d,0xfc,
- 0x60,0x03,0x81,0x07,0x79,0xa0,0x07,0x7f,0xb0,0x61,0xb8,0x03,0x50,0x00,0x36,0x14,
- 0x62,0x90,0x06,0xa1,0xf0,0x00,0x8c,0xc2,0xe4,0xe4,0xc2,0xf2,0xbe,0xd8,0xde,0xc6,
- 0xc2,0xd8,0xbe,0xc4,0xf2,0xe8,0xca,0xe6,0x26,0x08,0x04,0x45,0x28,0x4c,0x4e,0x2e,
- 0x2c,0xef,0x8b,0xed,0x6d,0x2c,0x8c,0xed,0x8b,0x8d,0x6c,0x8e,0x6e,0x82,0x40,0x54,
- 0x34,0xcc,0xd8,0xde,0xc2,0xe8,0xe6,0x26,0x08,0x84,0xc5,0x22,0xcd,0x6d,0x8e,0x6e,
- 0x6e,0x82,0x40,0x5c,0x34,0xe6,0xd2,0xce,0xbe,0xd8,0xc8,0x26,0x08,0x04,0x46,0x63,
- 0x2e,0xed,0xec,0x6b,0x8e,0x6e,0x82,0x40,0x64,0x1b,0x98,0x51,0x20,0x85,0x52,0x30,
- 0x85,0x53,0x40,0x85,0x54,0x50,0x85,0x55,0x60,0x85,0x56,0x70,0x85,0x2a,0x6c,0x6c,
- 0x76,0x6d,0x2e,0x69,0x64,0x65,0x6e,0x74,0x53,0x82,0xa0,0x0a,0x19,0x9e,0x8b,0x5d,
- 0x99,0xdc,0x5c,0xda,0x9b,0xdb,0x94,0x80,0x68,0x42,0x86,0xe7,0x62,0x17,0xc6,0x66,
- 0x57,0x26,0x37,0x25,0x28,0xea,0x90,0xe1,0xb9,0xcc,0xa1,0x85,0x91,0x95,0xc9,0x35,
- 0xbd,0x91,0x95,0xb1,0x4d,0x09,0x90,0x32,0x64,0x78,0x2e,0x72,0x65,0x73,0x6f,0x75,
- 0x72,0x63,0x65,0x73,0x53,0x02,0xa7,0x12,0x19,0x9e,0x0b,0x5d,0x1e,0x5c,0x59,0x90,
- 0x9b,0xdb,0x1b,0x5d,0x18,0x5d,0xda,0x9b,0xdb,0xdc,0x14,0x01,0x0c,0xca,0xa0,0x0e,
- 0x19,0x9e,0x8b,0x5d,0x5a,0xd9,0x5d,0x12,0xd9,0x14,0x5d,0x18,0x5d,0xd9,0x94,0xe0,
- 0x0c,0xea,0x90,0xe1,0xb9,0x94,0xb9,0xd1,0xc9,0xe5,0x41,0xbd,0xa5,0xb9,0xd1,0xcd,
- 0x4d,0x09,0x42,0xa1,0x0b,0x19,0x9e,0xcb,0xd8,0x5b,0x9d,0x1b,0x5d,0x99,0xdc,0xdc,
- 0x94,0xc0,0x15,0x00,0x79,0x18,0x00,0x00,0x4c,0x00,0x00,0x00,0x33,0x08,0x80,0x1c,
- 0xc4,0xe1,0x1c,0x66,0x14,0x01,0x3d,0x88,0x43,0x38,0x84,0xc3,0x8c,0x42,0x80,0x07,
- 0x79,0x78,0x07,0x73,0x98,0x71,0x0c,0xe6,0x00,0x0f,0xed,0x10,0x0e,0xf4,0x80,0x0e,
- 0x33,0x0c,0x42,0x1e,0xc2,0xc1,0x1d,0xce,0xa1,0x1c,0x66,0x30,0x05,0x3d,0x88,0x43,
- 0x38,0x84,0x83,0x1b,0xcc,0x03,0x3d,0xc8,0x43,0x3d,0x8c,0x03,0x3d,0xcc,0x78,0x8c,
- 0x74,0x70,0x07,0x7b,0x08,0x07,0x79,0x48,0x87,0x70,0x70,0x07,0x7a,0x70,0x03,0x76,
- 0x78,0x87,0x70,0x20,0x87,0x19,0xcc,0x11,0x0e,0xec,0x90,0x0e,0xe1,0x30,0x0f,0x6e,
- 0x30,0x0f,0xe3,0xf0,0x0e,0xf0,0x50,0x0e,0x33,0x10,0xc4,0x1d,0xde,0x21,0x1c,0xd8,
- 0x21,0x1d,0xc2,0x61,0x1e,0x66,0x30,0x89,0x3b,0xbc,0x83,0x3b,0xd0,0x43,0x39,0xb4,
- 0x03,0x3c,0xbc,0x83,0x3c,0x84,0x03,0x3b,0xcc,0xf0,0x14,0x76,0x60,0x07,0x7b,0x68,
- 0x07,0x37,0x68,0x87,0x72,0x68,0x07,0x37,0x80,0x87,0x70,0x90,0x87,0x70,0x60,0x07,
- 0x76,0x28,0x07,0x76,0xf8,0x05,0x76,0x78,0x87,0x77,0x80,0x87,0x5f,0x08,0x87,0x71,
- 0x18,0x87,0x72,0x98,0x87,0x79,0x98,0x81,0x2c,0xee,0xf0,0x0e,0xee,0xe0,0x0e,0xf5,
- 0xc0,0x0e,0xec,0x30,0x03,0x62,0xc8,0xa1,0x1c,0xe4,0xa1,0x1c,0xcc,0xa1,0x1c,0xe4,
- 0xa1,0x1c,0xdc,0x61,0x1c,0xca,0x21,0x1c,0xc4,0x81,0x1d,0xca,0x61,0x06,0xd6,0x90,
- 0x43,0x39,0xc8,0x43,0x39,0x98,0x43,0x39,0xc8,0x43,0x39,0xb8,0xc3,0x38,0x94,0x43,
- 0x38,0x88,0x03,0x3b,0x94,0xc3,0x2f,0xbc,0x83,0x3c,0xfc,0x82,0x3b,0xd4,0x03,0x3b,
- 0xb0,0xc3,0x8c,0xc8,0x21,0x07,0x7c,0x70,0x03,0x72,0x10,0x87,0x73,0x70,0x03,0x7b,
- 0x08,0x07,0x79,0x60,0x87,0x70,0xc8,0x87,0x77,0xa8,0x07,0x7a,0x98,0x81,0x3c,0xe4,
- 0x80,0x0f,0x6e,0x40,0x0f,0xe5,0xd0,0x0e,0xf0,0x00,0x00,0x00,0x71,0x20,0x00,0x00,
- 0x20,0x00,0x00,0x00,0x56,0xb0,0x0d,0x97,0xef,0x3c,0xbe,0x10,0x50,0x45,0x41,0x44,
- 0xa5,0x03,0x0c,0x25,0x61,0x00,0x02,0xe6,0x17,0xb7,0x6d,0x07,0xd2,0x70,0xf9,0xce,
- 0xe3,0x0b,0x11,0x01,0x4c,0x44,0x08,0x34,0xc3,0x42,0xd8,0x80,0x33,0x5c,0xbe,0xf3,
- 0xf8,0x83,0x33,0xdd,0x7e,0x71,0xdb,0x16,0x30,0x0d,0x97,0xef,0x3c,0xfe,0xe2,0x00,
- 0x83,0xd8,0x3c,0xd4,0xe4,0x17,0xb7,0x6d,0x02,0xd5,0x70,0xf9,0xce,0xe3,0x4b,0x93,
- 0x13,0x11,0x28,0x35,0x3d,0xd4,0xe4,0x17,0xb7,0x6d,0x06,0xd2,0x70,0xf9,0xce,0xe3,
- 0x4f,0x44,0x34,0x21,0x40,0x84,0xf9,0xc5,0x6d,0x1b,0xc1,0x33,0x5c,0xbe,0xf3,0xf8,
- 0x54,0x03,0x44,0x98,0x5f,0xdc,0xb6,0x01,0x30,0x15,0x11,0x4d,0xc4,0xc5,0x4e,0xc0,
- 0x84,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x41,0x53,0x48,0x14,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x96,0x06,0xb3,0xb4,0xf8,0xc3,0xba,0x4b,0xc2,0x7c,0x62,0x4c,
- 0xf4,0xab,0x45,0x92,0x44,0x58,0x49,0x4c,0x9c,0x0b,0x00,0x00,0x60,0x00,0x01,0x00,
- 0xe7,0x02,0x00,0x00,0x44,0x58,0x49,0x4c,0x00,0x01,0x00,0x00,0x10,0x00,0x00,0x00,
- 0x84,0x0b,0x00,0x00,0x42,0x43,0xc0,0xde,0x21,0x0c,0x00,0x00,0xde,0x02,0x00,0x00,
- 0x0b,0x82,0x20,0x00,0x02,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x07,0x81,0x23,0x91,
- 0x41,0xc8,0x04,0x49,0x06,0x10,0x32,0x39,0x92,0x01,0x84,0x0c,0x25,0x05,0x08,0x19,
- 0x1e,0x04,0x8b,0x62,0x80,0x18,0x45,0x02,0x42,0x92,0x0b,0x42,0xc4,0x10,0x32,0x14,
- 0x38,0x08,0x18,0x4b,0x0a,0x32,0x62,0x88,0x48,0x90,0x14,0x20,0x43,0x46,0x88,0xa5,
- 0x00,0x19,0x32,0x42,0xe4,0x48,0x0e,0x90,0x11,0x23,0xc4,0x50,0x41,0x51,0x81,0x8c,
- 0xe1,0x83,0xe5,0x8a,0x04,0x31,0x46,0x06,0x51,0x18,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x1b,0x8c,0xe0,0xff,0xff,0xff,0xff,0x07,0x40,0x02,0xa8,0x0d,0x84,0xf0,0xff,0xff,
- 0xff,0xff,0x03,0x20,0x6d,0x30,0x86,0xff,0xff,0xff,0xff,0x1f,0x00,0x09,0xa8,0x00,
- 0x49,0x18,0x00,0x00,0x03,0x00,0x00,0x00,0x13,0x82,0x60,0x42,0x20,0x4c,0x08,0x06,
- 0x00,0x00,0x00,0x00,0x89,0x20,0x00,0x00,0x2c,0x00,0x00,0x00,0x32,0x22,0x88,0x09,
- 0x20,0x64,0x85,0x04,0x13,0x23,0xa4,0x84,0x04,0x13,0x23,0xe3,0x84,0xa1,0x90,0x14,
- 0x12,0x4c,0x8c,0x8c,0x0b,0x84,0xc4,0x4c,0x10,0x84,0xc1,0x08,0x40,0x09,0x00,0x0a,
- 0x66,0x00,0xe6,0x08,0xc0,0x60,0x8e,0x00,0x29,0xc6,0x40,0x10,0x44,0x41,0x90,0x51,
- 0x0c,0x80,0x20,0x88,0x62,0x20,0xa4,0x20,0x03,0x31,0x0c,0xc3,0x30,0x0c,0xa4,0x94,
- 0x61,0x20,0x06,0x62,0x8e,0x1a,0x2e,0x7f,0xc2,0x1e,0x42,0xf2,0xb9,0x8d,0x2a,0x56,
- 0x62,0xf2,0x8b,0xdb,0x46,0xc4,0x30,0x0c,0x03,0x15,0xf7,0x0c,0x97,0x3f,0x61,0x0f,
- 0x21,0xf9,0x21,0xd0,0x0c,0x0b,0x81,0x82,0xa7,0x10,0x0e,0x01,0x11,0x14,0x95,0x62,
- 0x20,0x86,0x61,0xa0,0x69,0x8e,0x20,0x28,0x06,0x44,0x14,0x04,0x51,0x91,0x35,0x10,
- 0x30,0x8c,0x40,0x0c,0x49,0x90,0x1d,0x77,0x38,0xd2,0xb4,0x00,0x98,0x43,0x4d,0xfe,
- 0x84,0x3d,0xc4,0xdf,0x45,0x80,0xe5,0x36,0x48,0xe1,0x44,0x8c,0x84,0x06,0x4d,0xd3,
- 0x68,0x4b,0x06,0x22,0x09,0x06,0xf2,0x68,0x00,0x00,0x00,0x00,0x13,0x14,0x72,0xc0,
- 0x87,0x74,0x60,0x87,0x36,0x68,0x87,0x79,0x68,0x03,0x72,0xc0,0x87,0x0d,0xaf,0x50,
- 0x0e,0x6d,0xd0,0x0e,0x7a,0x50,0x0e,0x6d,0x00,0x0f,0x7a,0x30,0x07,0x72,0xa0,0x07,
- 0x73,0x20,0x07,0x6d,0x90,0x0e,0x71,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x78,
- 0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x71,0x60,0x07,0x7a,0x30,0x07,0x72,0xd0,
- 0x06,0xe9,0x30,0x07,0x72,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x76,0x40,0x07,
- 0x7a,0x60,0x07,0x74,0xd0,0x06,0xe6,0x10,0x07,0x76,0xa0,0x07,0x73,0x20,0x07,0x6d,
- 0x60,0x0e,0x73,0x20,0x07,0x7a,0x30,0x07,0x72,0xd0,0x06,0xe6,0x60,0x07,0x74,0xa0,
- 0x07,0x76,0x40,0x07,0x6d,0xe0,0x0e,0x78,0xa0,0x07,0x71,0x60,0x07,0x7a,0x30,0x07,
- 0x72,0xa0,0x07,0x76,0x40,0x07,0x43,0x9e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x86,0x3c,0x06,0x10,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x0c,0x79,0x10,0x20,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xf2,0x28,
- 0x40,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xe4,0x61,0x80,0x00,0x08,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xc8,0x13,0x01,0x01,0x30,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0x90,0x67,0x02,0x02,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x80,0x21,0x8f,0x05,0x04,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x59,
- 0x20,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x32,0x1e,0x98,0x14,0x19,0x11,0x4c,0x90,
- 0x8c,0x09,0x26,0x47,0xc6,0x04,0x43,0x22,0x4a,0x60,0x04,0xa0,0x24,0x8a,0xa1,0x00,
- 0x07,0xca,0xa0,0x1c,0x8a,0xa0,0x3c,0xa8,0x28,0x89,0x11,0x80,0x32,0x28,0x82,0x42,
- 0x20,0x6e,0x06,0x80,0xba,0xb1,0x18,0x05,0x3a,0x41,0x3e,0x38,0x41,0x3e,0x38,0x41,
- 0x3e,0x00,0xe0,0x01,0x1e,0xe0,0x01,0x00,0x11,0x10,0x02,0x00,0x79,0x18,0x00,0x00,
- 0x66,0x00,0x00,0x00,0x1a,0x03,0x4c,0x90,0x46,0x02,0x13,0xc4,0x8f,0x0c,0x6f,0x0c,
- 0x05,0x4e,0x2e,0xcd,0x2e,0x8c,0xae,0x2c,0x05,0x24,0xc6,0x25,0xc7,0x05,0xc6,0x25,
- 0x06,0x04,0x45,0x66,0x0c,0x87,0x26,0x2c,0x66,0xac,0x26,0x65,0x43,0x10,0x4c,0x10,
- 0x08,0x64,0x82,0x40,0x24,0x1b,0x84,0x81,0x98,0x20,0x10,0xca,0x06,0x61,0x30,0x28,
- 0xd8,0xcd,0x4d,0x10,0x88,0x65,0xc3,0x80,0x24,0xc4,0x04,0x81,0xb3,0x08,0x4c,0x10,
- 0x08,0x66,0x03,0x42,0x2c,0xcc,0x40,0x0c,0x0d,0xb0,0x21,0x70,0x36,0x10,0x00,0xf0,
- 0x00,0x13,0x84,0xee,0xda,0x10,0x44,0x13,0x04,0x01,0x20,0x63,0x57,0x26,0x47,0x57,
- 0x86,0x37,0x45,0x17,0x46,0x97,0x36,0x46,0x84,0xaa,0x08,0x6b,0xe8,0xe9,0x49,0x8a,
- 0x68,0x82,0x50,0x44,0x13,0x84,0x42,0xda,0x10,0x10,0x13,0x84,0x62,0x9a,0x20,0x10,
- 0xcd,0x04,0x81,0x70,0x36,0x08,0xda,0xb6,0x61,0x21,0x2a,0xeb,0xc2,0xae,0x21,0x23,
- 0x2e,0x6e,0x43,0x30,0x6c,0x58,0x86,0xca,0xba,0xbc,0x6b,0xc8,0x86,0x8b,0x9b,0x20,
- 0x10,0xcf,0x86,0x00,0x0c,0x26,0x08,0x05,0xb5,0x41,0xd0,0xb4,0x0d,0x0b,0x18,0x54,
- 0xd6,0x15,0x06,0xd7,0x20,0x06,0x60,0x70,0x8d,0xc1,0x86,0xa1,0xfb,0xc8,0x60,0xc3,
- 0x42,0x54,0xd6,0x85,0x89,0xc1,0x90,0x11,0x17,0xb7,0x61,0x19,0x2a,0xeb,0xf2,0xc4,
- 0x60,0xc8,0x86,0x8b,0xdb,0xb0,0x80,0x41,0x65,0x5d,0x61,0x20,0x06,0x83,0x18,0x80,
- 0xc1,0x35,0x06,0x5c,0xa6,0xac,0xbe,0xa0,0xde,0xe6,0xd2,0xe8,0xd2,0xde,0xdc,0x26,
- 0x08,0x45,0x35,0x41,0x20,0xa0,0x0d,0x82,0xb6,0x06,0x1b,0x16,0x2d,0x0d,0xac,0x0c,
- 0x53,0x83,0x41,0x0d,0xb4,0x8b,0x0d,0x36,0x10,0x66,0x70,0x06,0x68,0xd0,0x06,0x1b,
- 0x86,0x32,0x70,0x03,0x60,0x43,0x31,0x51,0x6f,0x00,0x01,0x55,0xd8,0xd8,0xec,0xda,
- 0x5c,0xd2,0xc8,0xca,0xdc,0xe8,0xa6,0x04,0x41,0x15,0x32,0x3c,0x17,0xbb,0x32,0xb9,
- 0xb9,0xb4,0x37,0xb7,0x29,0x01,0xd1,0x84,0x0c,0xcf,0xc5,0x2e,0x8c,0xcd,0xae,0x4c,
- 0x6e,0x4a,0x60,0xd4,0x21,0xc3,0x73,0x99,0x43,0x0b,0x23,0x2b,0x93,0x6b,0x7a,0x23,
- 0x2b,0x63,0x9b,0x12,0x24,0x65,0xc8,0xf0,0x5c,0xe4,0xca,0xe6,0xde,0xea,0xe4,0xc6,
- 0xca,0xe6,0xa6,0x04,0x4f,0x1d,0x32,0x3c,0x17,0xbb,0xb4,0xb2,0xbb,0x24,0xb2,0x29,
- 0xba,0x30,0xba,0xb2,0x29,0x41,0x54,0x87,0x0c,0xcf,0xa5,0xcc,0x8d,0x4e,0x2e,0x0f,
- 0xea,0x2d,0xcd,0x8d,0x6e,0x6e,0x4a,0xf0,0x06,0x00,0x00,0x00,0x79,0x18,0x00,0x00,
- 0x4c,0x00,0x00,0x00,0x33,0x08,0x80,0x1c,0xc4,0xe1,0x1c,0x66,0x14,0x01,0x3d,0x88,
- 0x43,0x38,0x84,0xc3,0x8c,0x42,0x80,0x07,0x79,0x78,0x07,0x73,0x98,0x71,0x0c,0xe6,
- 0x00,0x0f,0xed,0x10,0x0e,0xf4,0x80,0x0e,0x33,0x0c,0x42,0x1e,0xc2,0xc1,0x1d,0xce,
- 0xa1,0x1c,0x66,0x30,0x05,0x3d,0x88,0x43,0x38,0x84,0x83,0x1b,0xcc,0x03,0x3d,0xc8,
- 0x43,0x3d,0x8c,0x03,0x3d,0xcc,0x78,0x8c,0x74,0x70,0x07,0x7b,0x08,0x07,0x79,0x48,
- 0x87,0x70,0x70,0x07,0x7a,0x70,0x03,0x76,0x78,0x87,0x70,0x20,0x87,0x19,0xcc,0x11,
- 0x0e,0xec,0x90,0x0e,0xe1,0x30,0x0f,0x6e,0x30,0x0f,0xe3,0xf0,0x0e,0xf0,0x50,0x0e,
- 0x33,0x10,0xc4,0x1d,0xde,0x21,0x1c,0xd8,0x21,0x1d,0xc2,0x61,0x1e,0x66,0x30,0x89,
- 0x3b,0xbc,0x83,0x3b,0xd0,0x43,0x39,0xb4,0x03,0x3c,0xbc,0x83,0x3c,0x84,0x03,0x3b,
- 0xcc,0xf0,0x14,0x76,0x60,0x07,0x7b,0x68,0x07,0x37,0x68,0x87,0x72,0x68,0x07,0x37,
- 0x80,0x87,0x70,0x90,0x87,0x70,0x60,0x07,0x76,0x28,0x07,0x76,0xf8,0x05,0x76,0x78,
- 0x87,0x77,0x80,0x87,0x5f,0x08,0x87,0x71,0x18,0x87,0x72,0x98,0x87,0x79,0x98,0x81,
- 0x2c,0xee,0xf0,0x0e,0xee,0xe0,0x0e,0xf5,0xc0,0x0e,0xec,0x30,0x03,0x62,0xc8,0xa1,
- 0x1c,0xe4,0xa1,0x1c,0xcc,0xa1,0x1c,0xe4,0xa1,0x1c,0xdc,0x61,0x1c,0xca,0x21,0x1c,
- 0xc4,0x81,0x1d,0xca,0x61,0x06,0xd6,0x90,0x43,0x39,0xc8,0x43,0x39,0x98,0x43,0x39,
- 0xc8,0x43,0x39,0xb8,0xc3,0x38,0x94,0x43,0x38,0x88,0x03,0x3b,0x94,0xc3,0x2f,0xbc,
- 0x83,0x3c,0xfc,0x82,0x3b,0xd4,0x03,0x3b,0xb0,0xc3,0x8c,0xc8,0x21,0x07,0x7c,0x70,
- 0x03,0x72,0x10,0x87,0x73,0x70,0x03,0x7b,0x08,0x07,0x79,0x60,0x87,0x70,0xc8,0x87,
- 0x77,0xa8,0x07,0x7a,0x98,0x81,0x3c,0xe4,0x80,0x0f,0x6e,0x40,0x0f,0xe5,0xd0,0x0e,
- 0xf0,0x00,0x00,0x00,0x71,0x20,0x00,0x00,0x20,0x00,0x00,0x00,0x56,0xb0,0x0d,0x97,
- 0xef,0x3c,0xbe,0x10,0x50,0x45,0x41,0x44,0xa5,0x03,0x0c,0x25,0x61,0x00,0x02,0xe6,
- 0x17,0xb7,0x6d,0x07,0xd2,0x70,0xf9,0xce,0xe3,0x0b,0x11,0x01,0x4c,0x44,0x08,0x34,
- 0xc3,0x42,0xd8,0x80,0x33,0x5c,0xbe,0xf3,0xf8,0x83,0x33,0xdd,0x7e,0x71,0xdb,0x16,
- 0x30,0x0d,0x97,0xef,0x3c,0xfe,0xe2,0x00,0x83,0xd8,0x3c,0xd4,0xe4,0x17,0xb7,0x6d,
- 0x02,0xd5,0x70,0xf9,0xce,0xe3,0x4b,0x93,0x13,0x11,0x28,0x35,0x3d,0xd4,0xe4,0x17,
- 0xb7,0x6d,0x06,0xd2,0x70,0xf9,0xce,0xe3,0x4f,0x44,0x34,0x21,0x40,0x84,0xf9,0xc5,
- 0x6d,0x1b,0xc1,0x33,0x5c,0xbe,0xf3,0xf8,0x54,0x03,0x44,0x98,0x5f,0xdc,0xb6,0x01,
- 0x30,0x15,0x11,0x4d,0xc4,0xc5,0x4e,0xc0,0x84,0x08,0x00,0x00,0x61,0x20,0x00,0x00,
- 0x60,0x01,0x00,0x00,0x13,0x04,0x41,0x2c,0x10,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
- 0x44,0x14,0x57,0x29,0x94,0x5d,0x21,0xcc,0x00,0x8c,0x32,0x00,0x09,0x32,0xca,0x00,
- 0x74,0xc8,0x28,0x03,0x90,0x6c,0xa3,0x0c,0xc0,0x87,0x8c,0x32,0x00,0x60,0x80,0x8c,
- 0x32,0x00,0xc9,0x19,0x8c,0x32,0x00,0x62,0x80,0x94,0xdc,0x28,0x03,0xe0,0x21,0xa3,
- 0x0c,0x40,0x18,0x20,0x05,0x31,0xca,0x00,0x24,0xc9,0x28,0x03,0x30,0x06,0xc8,0x28,
- 0x03,0x90,0x3c,0xe5,0x56,0x32,0x54,0x94,0x00,0x55,0x23,0x00,0x00,0x00,0x00,0x00,
- 0x23,0x06,0x09,0x00,0x82,0x60,0x60,0xa1,0xc1,0xb2,0x99,0x81,0x19,0x04,0x33,0x11,
- 0x1e,0x81,0x8c,0xc2,0x4c,0x84,0x47,0x20,0xa3,0x30,0x13,0xe1,0x11,0xc8,0x28,0x8c,
- 0x18,0x24,0x00,0x08,0x82,0x81,0x21,0x07,0x18,0x19,0xa8,0x41,0x18,0x5c,0x23,0x06,
- 0x09,0x00,0x82,0x60,0x60,0xcc,0x41,0x56,0x06,0x6b,0x70,0x60,0x23,0x06,0x09,0x00,
- 0x82,0x60,0x60,0xd0,0x81,0xd6,0x06,0x6c,0x30,0x06,0xd9,0x88,0x41,0x02,0x80,0x20,
- 0x18,0x18,0x75,0xb0,0xb9,0x41,0x1b,0x24,0xda,0x88,0x41,0x02,0x80,0x20,0x18,0x18,
- 0x76,0xc0,0xbd,0x81,0x1b,0x8c,0xc1,0x36,0x62,0x90,0x00,0x20,0x08,0x06,0xc6,0x1d,
- 0x74,0x6f,0xf0,0x06,0x66,0xc0,0x8d,0x18,0x24,0x00,0x08,0x82,0x81,0x81,0x07,0x1e,
- 0x1c,0xc0,0x01,0xd3,0x8d,0x18,0x24,0x00,0x08,0x82,0x81,0x91,0x07,0x5f,0x1c,0xc4,
- 0x81,0x19,0x78,0x23,0x06,0x07,0x00,0x82,0x60,0x10,0xd9,0x41,0x18,0x30,0x72,0x30,
- 0x9a,0x10,0x00,0xa3,0x09,0x42,0x30,0x9a,0x30,0x08,0xa3,0x09,0xc4,0x30,0x62,0x70,
- 0x00,0x20,0x08,0x06,0xd1,0x1e,0x98,0x41,0x34,0x06,0xa3,0x09,0x01,0x30,0x9a,0x20,
- 0x04,0xa3,0x09,0x83,0x30,0x9a,0x40,0x0c,0x23,0x06,0x07,0x00,0x82,0x60,0x10,0x81,
- 0xc2,0x1a,0x58,0x67,0x30,0x9a,0x10,0x00,0xa3,0x09,0x42,0x30,0x9a,0x30,0x08,0xa3,
- 0x09,0xc4,0x30,0x62,0x70,0x00,0x20,0x08,0x06,0x51,0x29,0xc0,0xc1,0x56,0x06,0xa3,
- 0x09,0x01,0x30,0x9a,0x20,0x04,0xa3,0x09,0x83,0x30,0x9a,0x40,0x0c,0x36,0x5d,0xf2,
- 0x19,0x31,0x40,0x00,0x10,0x04,0x83,0x49,0x15,0xf0,0xe0,0xb9,0x82,0x11,0x03,0x04,
- 0x00,0x41,0x30,0x98,0x56,0x21,0x0f,0x96,0x2b,0xb0,0xe0,0x80,0x8e,0x59,0x9b,0x7c,
- 0x46,0x0c,0x10,0x00,0x04,0xc1,0x60,0x72,0x05,0x3e,0x90,0xb6,0x60,0xc4,0x00,0x01,
- 0x40,0x10,0x0c,0xa6,0x57,0xe8,0x03,0x67,0x0b,0x2c,0x50,0xa0,0x63,0xd9,0x27,0x9f,
- 0x11,0x03,0x04,0x00,0x41,0x30,0x98,0x64,0x01,0x14,0xaa,0x2f,0x18,0x31,0x40,0x00,
- 0x10,0x04,0x83,0x69,0x16,0x42,0x21,0xfa,0x02,0x0b,0x1a,0xe8,0x18,0x37,0x06,0xf2,
- 0x19,0x31,0x40,0x00,0x10,0x04,0x83,0xc9,0x16,0x48,0x01,0x1b,0x83,0x60,0xc4,0x00,
- 0x01,0x40,0x10,0x0c,0xa6,0x5b,0x28,0x05,0x6a,0x0c,0x02,0x0b,0x20,0xe8,0x8c,0x18,
- 0x1c,0x00,0x08,0x82,0x41,0xa4,0x0b,0xa5,0x00,0x07,0xa0,0x30,0x9a,0x10,0x00,0xa3,
- 0x09,0x42,0x30,0x9a,0x30,0x08,0x23,0x06,0x07,0x00,0x82,0x60,0x10,0xf9,0x42,0x2a,
- 0xd0,0xc1,0x28,0x8c,0x26,0x04,0xc0,0x68,0x82,0x10,0x8c,0x26,0x0c,0xc2,0x88,0xc1,
- 0x01,0x80,0x20,0x18,0x44,0xe2,0xd0,0x0a,0x78,0x60,0x0a,0xa3,0x09,0x01,0x30,0x9a,
- 0x20,0x04,0xa3,0x09,0x83,0x30,0x62,0x70,0x00,0x20,0x08,0x06,0x91,0x39,0xc4,0x02,
- 0x1f,0x94,0xc2,0x68,0x42,0x00,0x8c,0x26,0x08,0xc1,0x68,0xc2,0x20,0xd8,0x73,0x07,
- 0xf2,0x19,0x31,0x40,0x00,0x10,0x04,0x83,0x49,0x1d,0x70,0x81,0xb9,0x83,0x60,0xc4,
- 0x00,0x01,0x40,0x10,0x0c,0xa6,0x75,0xc8,0x85,0xe4,0x0e,0x02,0x0b,0x0c,0xe8,0x98,
- 0xb4,0x07,0xf2,0x19,0x31,0x40,0x00,0x10,0x04,0x83,0xc9,0x1d,0x78,0xe1,0xd9,0x83,
- 0x60,0xc4,0x00,0x01,0x40,0x10,0x0c,0xa6,0x77,0xe8,0x05,0x66,0x0f,0x02,0x0b,0x12,
- 0xe8,0x58,0xf5,0x07,0xf2,0x19,0x31,0x40,0x00,0x10,0x04,0x83,0x49,0x1e,0xc0,0x41,
- 0xfa,0x83,0x60,0xc4,0x00,0x01,0x40,0x10,0x0c,0xa6,0x79,0x08,0x87,0xe7,0x0f,0x02,
- 0x0b,0x18,0xe8,0x8c,0x18,0x1c,0x00,0x08,0x82,0x41,0x64,0x0f,0xe1,0xc0,0x0a,0xb9,
- 0x30,0x9a,0x10,0x00,0xa3,0x09,0x42,0x30,0x9a,0x30,0x08,0xa3,0x09,0xc4,0xb0,0xbd,
- 0x01,0x16,0xee,0xe1,0x1e,0x86,0x0d,0x88,0xa0,0x18,0x80,0xed,0x0d,0xb1,0x80,0x0f,
- 0xf9,0x30,0x6c,0x40,0x04,0xc5,0x00,0x6c,0x6f,0x90,0x85,0x7c,0x98,0x87,0x61,0x03,
- 0x22,0x28,0x06,0x60,0x7b,0xc3,0x2c,0xe8,0x83,0x3d,0x0c,0x1b,0x10,0x41,0x31,0x00,
- 0xdb,0x1b,0x68,0x61,0x1f,0x78,0x81,0x82,0x61,0x8c,0x18,0x1c,0x00,0x08,0x82,0x41,
- 0x14,0x12,0xec,0x70,0x0b,0xe3,0x30,0x9a,0x10,0x00,0xa3,0x09,0x42,0x30,0x9a,0x30,
- 0x08,0xa3,0x09,0xc4,0x30,0x6c,0x40,0x2c,0xc4,0x00,0x0c,0x1b,0x10,0xca,0x30,0x00,
- 0xc3,0x06,0x44,0x22,0x0c,0xc0,0xb0,0x01,0x81,0x04,0x03,0x40,0xc7,0x30,0x46,0x0c,
- 0x0e,0x00,0x04,0xc1,0x20,0x3a,0x09,0x79,0xe8,0x85,0x71,0x18,0x4d,0x08,0x80,0xd1,
- 0x04,0x21,0x18,0x4d,0x18,0x84,0xd1,0x04,0x62,0x18,0x36,0x20,0x22,0x62,0x00,0x86,
- 0x0d,0x08,0x68,0x18,0x80,0x61,0x03,0xe2,0x11,0x06,0x60,0xd8,0x80,0x70,0x82,0x01,
- 0xa0,0x66,0x18,0xdb,0x1b,0xc2,0x21,0x25,0x52,0x62,0xd8,0x80,0x08,0xae,0x01,0xd8,
- 0xde,0x20,0x0e,0x2a,0xb1,0x12,0xc3,0x06,0x44,0x70,0x0d,0xc0,0xf6,0x86,0x71,0x58,
- 0x89,0x92,0x18,0x36,0x20,0x82,0x6b,0x00,0xb6,0x37,0x90,0x03,0x4b,0xa0,0xc4,0xb0,
- 0x01,0x11,0x5c,0x03,0xb0,0xbd,0xa1,0x1c,0x5a,0x22,0x1f,0x28,0x18,0xc6,0xb0,0x01,
- 0x61,0x44,0x03,0x30,0x6c,0x40,0x14,0xd0,0x00,0x0c,0x1b,0x10,0xc4,0x33,0x00,0xc3,
- 0x06,0xc4,0xe0,0x0c,0x00,0x09,0xc3,0x18,0x36,0x20,0x0e,0x66,0x00,0x86,0x0d,0x08,
- 0x63,0x19,0x80,0x61,0x03,0xa2,0x50,0x06,0x60,0xd8,0x80,0x20,0x92,0x01,0xa0,0x61,
- 0x18,0xdb,0x1b,0xd0,0x21,0x26,0x62,0x62,0xd8,0x80,0x08,0xbe,0x01,0xd8,0xde,0x90,
- 0x0e,0x32,0x31,0x13,0xc3,0x06,0x44,0xf0,0x0d,0xc0,0xf6,0x06,0x75,0x98,0x89,0x96,
- 0x18,0x36,0x20,0x82,0x6f,0x00,0xb6,0x37,0xac,0x03,0x4d,0xc0,0xc4,0xb0,0x01,0x11,
- 0x7c,0x03,0xb0,0xbd,0x81,0x1d,0x6a,0x82,0x1e,0x28,0x18,0xc6,0xb0,0x01,0x61,0x64,
- 0x03,0x30,0x6c,0x40,0x14,0xd8,0x00,0x0c,0x1b,0x10,0xc4,0x35,0x00,0xc3,0x06,0xc4,
- 0x60,0x0d,0x00,0x09,0xc3,0x18,0x36,0x20,0x0e,0x6a,0x00,0x86,0x0d,0x08,0x63,0x1a,
- 0x80,0x61,0x03,0xa2,0x90,0x06,0x60,0xd8,0x80,0x20,0xa2,0x01,0xa0,0x61,0x18,0xd6,
- 0xb5,0x83,0x7c,0x46,0x0c,0x10,0x00,0x04,0xc1,0x60,0xea,0x89,0x95,0xc0,0xda,0x21,
- 0x18,0x31,0x40,0x00,0x10,0x04,0x83,0xc9,0x27,0x58,0x62,0x6a,0x87,0xc0,0x1c,0x78,
- 0x90,0xcf,0x88,0x01,0x02,0x80,0x20,0x18,0x4c,0x60,0xe1,0x12,0x0e,0x3c,0x04,0x23,
- 0x06,0x08,0x00,0x82,0x60,0x30,0x85,0xc5,0x4b,0x38,0xf0,0x10,0x58,0x32,0x0f,0xf2,
- 0x19,0x31,0x40,0x00,0x10,0x04,0x83,0x69,0x2c,0x62,0x22,0x99,0x87,0x60,0xc4,0x00,
- 0x01,0x40,0x10,0x0c,0x26,0xb2,0x90,0x89,0x64,0x1e,0x82,0x11,0x83,0x05,0x00,0x41,
- 0x30,0x50,0xd0,0x02,0x24,0x0e,0x22,0x38,0x88,0x60,0xc4,0xc0,0x00,0x40,0x10,0x0c,
- 0x18,0xb4,0x00,0x89,0xc0,0x82,0x44,0x3e,0x26,0x1c,0xf2,0xb1,0xa1,0x90,0xcf,0x88,
- 0x41,0x02,0x80,0x20,0x18,0x20,0x6e,0x71,0x13,0x67,0x71,0x16,0x3e,0xe1,0x07,0x23,
- 0x06,0x09,0x00,0x82,0x60,0x80,0xb8,0xc5,0x4d,0x9c,0xc5,0x59,0x8c,0x84,0x1e,0x8c,
- 0x18,0x24,0x00,0x08,0x82,0x01,0xe2,0x16,0x37,0x71,0x16,0x67,0xc1,0x13,0x76,0x30,
- 0x62,0x90,0x00,0x20,0x08,0x06,0x88,0x5b,0xdc,0x04,0x5a,0x9c,0x85,0x4f,0x0c,0x23,
- 0x06,0x09,0x00,0x82,0x60,0x80,0xb8,0xc5,0x4d,0xa0,0xc5,0x59,0x8c,0x84,0x30,0x62,
- 0x90,0x00,0x20,0x08,0x06,0x88,0x5b,0xdc,0x04,0x5a,0x9c,0x05,0x4f,0x04,0x23,0x06,
- 0x09,0x00,0x82,0x60,0x80,0xb8,0xc5,0x4d,0x84,0xc5,0x59,0xf8,0x44,0x3f,0x8c,0x18,
- 0x24,0x00,0x08,0x82,0x01,0xe2,0x16,0x37,0x11,0x16,0x67,0x31,0x12,0xfc,0x30,0x62,
- 0x90,0x00,0x20,0x08,0x06,0x88,0x5b,0xdc,0xc4,0x58,0x9c,0x85,0x4f,0xf8,0xc2,0x88,
- 0x41,0x02,0x80,0x20,0x18,0x20,0x6e,0x71,0x13,0x63,0x71,0x16,0x23,0xa1,0x0b,0x23,
- 0x06,0x09,0x00,0x82,0x60,0x80,0xb8,0xc5,0x4d,0x8c,0xc5,0x59,0xf0,0x84,0x2d,0x8c,
- 0x18,0x24,0x00,0x08,0x82,0x01,0xe2,0x16,0x37,0x31,0x16,0x67,0xd1,0x13,0xb2,0x80,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-};
-
-static const unsigned char _vertexStaticMSL[] = {
- 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,
- 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,
- 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,
- 0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,
- 0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,
- 0x79,0x70,0x65,0x5f,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,0x34,0x20,
- 0x6d,0x6f,0x64,0x65,0x6c,0x56,0x69,0x65,0x77,0x50,0x72,0x6f,0x6a,0x65,0x63,0x74,
- 0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,
- 0x34,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x78,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,
- 0x69,0x78,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,
- 0x79,0x70,0x65,0x5f,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,0x34,0x20,
- 0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x31,0x32,0x38,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,
- 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x4c,0x69,0x67,0x68,0x74,0x0a,0x7b,0x0a,
- 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x6f,0x73,0x69,0x74,
- 0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x52,0x61,0x6e,
- 0x67,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,
- 0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,
- 0x20,0x63,0x6f,0x6e,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,
- 0x74,0x20,0x74,0x79,0x70,0x65,0x5f,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,
- 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x34,0x20,0x63,0x61,0x6d,0x65,0x72,0x61,0x50,0x6f,0x73,0x69,0x74,
- 0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,
- 0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x20,0x62,0x61,0x73,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x65,0x6d,0x69,0x73,0x73,0x69,
- 0x76,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x6d,
- 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x20,0x63,0x6f,0x75,0x6e,0x74,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x50,0x61,0x72,
- 0x61,0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,
- 0x34,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x38,
- 0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x68,
- 0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x38,0x5d,0x3b,0x0a,0x20,0x20,0x20,
- 0x20,0x4c,0x69,0x67,0x68,0x74,0x20,0x6c,0x69,0x67,0x68,0x74,0x73,0x5b,0x38,0x5d,
- 0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x76,0x65,0x72,
- 0x74,0x65,0x78,0x53,0x74,0x61,0x74,0x69,0x63,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,
- 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6f,0x75,0x74,0x5f,0x76,
- 0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x20,0x5b,0x5b,0x75,
- 0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,
- 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6f,0x75,0x74,0x5f,0x76,0x61,0x72,
- 0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x20,0x5b,0x5b,0x75,0x73,0x65,
- 0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x6f,0x75,0x74,0x5f,0x76,0x61,0x72,0x5f,0x54,
- 0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x32,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,
- 0x6c,0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,
- 0x20,0x5b,0x5b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x3b,0x0a,0x7d,
- 0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x76,0x65,0x72,0x74,0x65,0x78,
- 0x53,0x74,0x61,0x74,0x69,0x63,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,
- 0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,
- 0x75,0x74,0x65,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x33,0x20,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x31,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,
- 0x65,0x28,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,
- 0x74,0x32,0x20,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,
- 0x52,0x44,0x32,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,
- 0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x65,0x72,0x74,0x65,0x78,
- 0x20,0x76,0x65,0x72,0x74,0x65,0x78,0x53,0x74,0x61,0x74,0x69,0x63,0x5f,0x6f,0x75,
- 0x74,0x20,0x76,0x65,0x72,0x74,0x65,0x78,0x53,0x74,0x61,0x74,0x69,0x63,0x28,0x76,
- 0x65,0x72,0x74,0x65,0x78,0x53,0x74,0x61,0x74,0x69,0x63,0x5f,0x69,0x6e,0x20,0x69,
- 0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,
- 0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x79,0x70,0x65,0x5f,0x44,0x72,
- 0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26,0x20,0x44,0x72,0x61,0x77,
- 0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,
- 0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,
- 0x72,0x74,0x65,0x78,0x53,0x74,0x61,0x74,0x69,0x63,0x5f,0x6f,0x75,0x74,0x20,0x6f,
- 0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x20,0x5f,0x36,0x35,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,
- 0x28,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,
- 0x4f,0x52,0x44,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x6f,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,
- 0x3d,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6d,
- 0x6f,0x64,0x65,0x6c,0x56,0x69,0x65,0x77,0x50,0x72,0x6f,0x6a,0x65,0x63,0x74,0x69,
- 0x6f,0x6e,0x20,0x2a,0x20,0x5f,0x36,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,
- 0x74,0x2e,0x6f,0x75,0x74,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,
- 0x52,0x44,0x30,0x20,0x3d,0x20,0x28,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,
- 0x72,0x6d,0x73,0x2e,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x2a,0x20,0x5f,0x36,0x35,0x29,
- 0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x6f,0x75,
- 0x74,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x20,
- 0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,
- 0x65,0x28,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x31,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x78,0x33,
- 0x28,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,
- 0x78,0x5b,0x30,0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,
- 0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,
- 0x69,0x78,0x5b,0x31,0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,
- 0x72,0x69,0x78,0x5b,0x32,0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,
- 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,
- 0x74,0x72,0x69,0x78,0x5b,0x33,0x5d,0x5b,0x30,0x5d,0x29,0x2e,0x78,0x79,0x7a,0x2c,
- 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,
- 0x78,0x5b,0x30,0x5d,0x5b,0x31,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,
- 0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,
- 0x69,0x78,0x5b,0x31,0x5d,0x5b,0x31,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,
- 0x72,0x69,0x78,0x5b,0x32,0x5d,0x5b,0x31,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,
- 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,
- 0x74,0x72,0x69,0x78,0x5b,0x33,0x5d,0x5b,0x31,0x5d,0x29,0x2e,0x78,0x79,0x7a,0x2c,
- 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,
- 0x78,0x5b,0x30,0x5d,0x5b,0x32,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,
- 0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,
- 0x69,0x78,0x5b,0x31,0x5d,0x5b,0x32,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,
- 0x72,0x69,0x78,0x5b,0x32,0x5d,0x5b,0x32,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,
- 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,
- 0x74,0x72,0x69,0x78,0x5b,0x33,0x5d,0x5b,0x32,0x5d,0x29,0x2e,0x78,0x79,0x7a,0x29,
- 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x6f,0x75,0x74,0x5f,0x76,
- 0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x32,0x20,0x3d,0x20,0x69,
- 0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,
- 0x44,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,
- 0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,
-};
-
-static const SceneShaderT sceneShaderVertexStatic = { "vertexStatic", _vertexStaticSPIRV, sizeof(_vertexStaticSPIRV), _vertexStaticDXIL, sizeof(_vertexStaticDXIL), _vertexStaticMSL, sizeof(_vertexStaticMSL) };
-
-static const unsigned char _vertexSkinnedSPIRV[] = {
- 0x03,0x02,0x23,0x07,0x00,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0xa4,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x0b,0x00,0x06,0x00,
- 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,
- 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x0f,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x76,0x65,0x72,0x74,
- 0x65,0x78,0x53,0x6b,0x69,0x6e,0x6e,0x65,0x64,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
- 0x03,0x00,0x03,0x00,0x05,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x05,0x00,0x07,0x00,
- 0x0c,0x00,0x00,0x00,0x74,0x79,0x70,0x65,0x2e,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,
- 0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x06,0x00,0x08,0x00,0x0c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x69,0x65,0x77,0x50,0x72,0x6f,
- 0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x00,0x06,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x6d,0x6f,0x64,0x65,0x6c,0x00,0x00,0x00,0x06,0x00,0x07,0x00,
- 0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,
- 0x74,0x72,0x69,0x78,0x00,0x00,0x00,0x00,0x05,0x00,0x06,0x00,0x0d,0x00,0x00,0x00,
- 0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x07,0x00,0x0e,0x00,0x00,0x00,0x74,0x79,0x70,0x65,0x2e,0x53,0x6b,0x69,
- 0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x06,0x00,0x05,0x00,
- 0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x00,0x00,
- 0x05,0x00,0x06,0x00,0x0f,0x00,0x00,0x00,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x00,0x05,0x00,0x08,0x00,0x10,0x00,0x00,0x00,
- 0x74,0x79,0x70,0x65,0x2e,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,
- 0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x06,0x00,0x07,0x00,0x10,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x63,0x61,0x6d,0x65,0x72,0x61,0x50,0x6f,0x73,0x69,0x74,0x69,
- 0x6f,0x6e,0x00,0x00,0x06,0x00,0x05,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x00,0x06,0x00,0x06,0x00,0x10,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x62,0x61,0x73,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x00,0x00,0x00,
- 0x06,0x00,0x06,0x00,0x10,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x65,0x6d,0x69,0x73,
- 0x73,0x69,0x76,0x65,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x10,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x00,0x00,0x00,0x00,
- 0x06,0x00,0x05,0x00,0x10,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x63,0x6f,0x75,0x6e,
- 0x74,0x73,0x00,0x00,0x06,0x00,0x07,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x73,0x68,0x61,0x64,0x6f,0x77,0x50,0x61,0x72,0x61,0x6d,0x73,0x00,0x00,0x00,0x00,
- 0x06,0x00,0x07,0x00,0x10,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x73,0x68,0x61,0x64,
- 0x6f,0x77,0x4d,0x61,0x74,0x72,0x69,0x78,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,
- 0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x73,0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,
- 0x66,0x6f,0x00,0x00,0x06,0x00,0x05,0x00,0x10,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
- 0x6c,0x69,0x67,0x68,0x74,0x73,0x00,0x00,0x05,0x00,0x04,0x00,0x11,0x00,0x00,0x00,
- 0x4c,0x69,0x67,0x68,0x74,0x00,0x00,0x00,0x06,0x00,0x07,0x00,0x11,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,
- 0x00,0x00,0x00,0x00,0x06,0x00,0x07,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x52,0x61,0x6e,0x67,0x65,0x00,0x00,
- 0x06,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x63,0x6f,0x6c,0x6f,
- 0x72,0x00,0x00,0x00,0x06,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x63,0x6f,0x6e,0x65,0x00,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x12,0x00,0x00,0x00,
- 0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x00,0x00,0x00,0x00,0x05,0x00,0x06,0x00,0x13,0x00,0x00,0x00,0x74,0x79,0x70,0x65,
- 0x2e,0x32,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x00,0x00,0x00,0x05,0x00,0x05,0x00,
- 0x14,0x00,0x00,0x00,0x62,0x61,0x73,0x65,0x54,0x65,0x78,0x74,0x75,0x72,0x65,0x00,
- 0x05,0x00,0x06,0x00,0x15,0x00,0x00,0x00,0x74,0x79,0x70,0x65,0x2e,0x73,0x61,0x6d,
- 0x70,0x6c,0x65,0x72,0x00,0x00,0x00,0x00,0x05,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
- 0x62,0x61,0x73,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x00,0x05,0x00,0x07,0x00,
- 0x17,0x00,0x00,0x00,0x74,0x79,0x70,0x65,0x2e,0x32,0x64,0x2e,0x69,0x6d,0x61,0x67,
- 0x65,0x2e,0x61,0x72,0x72,0x61,0x79,0x00,0x05,0x00,0x05,0x00,0x18,0x00,0x00,0x00,
- 0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x70,0x73,0x00,0x00,0x05,0x00,0x06,0x00,
- 0x19,0x00,0x00,0x00,0x73,0x68,0x61,0x64,0x6f,0x77,0x53,0x61,0x6d,0x70,0x6c,0x65,
- 0x72,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x03,0x00,0x00,0x00,0x69,0x6e,0x2e,0x76,
- 0x61,0x72,0x2e,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x07,0x00,0x04,0x00,0x00,0x00,0x69,0x6e,0x2e,0x76,0x61,0x72,0x2e,0x54,
- 0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x00,0x00,0x00,0x00,0x05,0x00,0x07,0x00,
- 0x05,0x00,0x00,0x00,0x69,0x6e,0x2e,0x76,0x61,0x72,0x2e,0x54,0x45,0x58,0x43,0x4f,
- 0x4f,0x52,0x44,0x32,0x00,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x06,0x00,0x00,0x00,
- 0x69,0x6e,0x2e,0x76,0x61,0x72,0x2e,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,
- 0x00,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x69,0x6e,0x2e,0x76,
- 0x61,0x72,0x2e,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x34,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x07,0x00,0x09,0x00,0x00,0x00,0x6f,0x75,0x74,0x2e,0x76,0x61,0x72,0x2e,
- 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x00,0x00,0x00,0x05,0x00,0x07,0x00,
- 0x0a,0x00,0x00,0x00,0x6f,0x75,0x74,0x2e,0x76,0x61,0x72,0x2e,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x31,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x0b,0x00,0x00,0x00,
- 0x6f,0x75,0x74,0x2e,0x76,0x61,0x72,0x2e,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x32,0x00,0x00,0x00,0x05,0x00,0x06,0x00,0x02,0x00,0x00,0x00,0x76,0x65,0x72,0x74,
- 0x65,0x78,0x53,0x6b,0x69,0x6e,0x6e,0x65,0x64,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x08,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x03,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x04,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x05,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x06,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x07,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x09,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0a,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0d,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0d,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0f,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0f,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x12,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x12,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x14,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x14,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x16,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x16,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x18,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x18,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x19,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x19,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
- 0x0c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x0e,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x40,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x11,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x30,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x40,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x10,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x10,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x10,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x30,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x10,0x00,0x00,0x00,
- 0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x60,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x10,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x70,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x10,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x10,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x10,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x10,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0xf0,0x02,0x00,0x00,
- 0x47,0x00,0x03,0x00,0x10,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
- 0x1e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
- 0x1e,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
- 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x20,0x00,0x00,0x00,
- 0x21,0x00,0x00,0x00,0x00,0x00,0x80,0x3f,0x2b,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,
- 0x22,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,
- 0x24,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x25,0x00,0x00,0x00,
- 0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x04,0x00,0x26,0x00,0x00,0x00,
- 0x25,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,
- 0x26,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
- 0x27,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
- 0x28,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
- 0x28,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
- 0x1a,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
- 0x0e,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2a,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x28,0x00,0x00,0x00,
- 0x2b,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,
- 0x26,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,
- 0x25,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x11,0x00,0x00,0x00,
- 0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
- 0x1c,0x00,0x04,0x00,0x1d,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
- 0x1e,0x00,0x0c,0x00,0x10,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
- 0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
- 0x25,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
- 0x19,0x00,0x09,0x00,0x13,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x13,0x00,0x00,0x00,0x1a,0x00,0x02,0x00,0x15,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
- 0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x19,0x00,0x09,0x00,
- 0x17,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
- 0x17,0x00,0x04,0x00,0x30,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
- 0x17,0x00,0x04,0x00,0x32,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x33,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
- 0x17,0x00,0x04,0x00,0x34,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x36,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x38,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x32,0x00,0x00,0x00,
- 0x13,0x00,0x02,0x00,0x3a,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x3b,0x00,0x00,0x00,
- 0x3a,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x3c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x26,0x00,0x00,0x00,0x18,0x00,0x04,0x00,0x3d,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x27,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2a,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2c,0x00,0x00,0x00,0x12,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2d,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2f,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x2e,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x31,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x33,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x35,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x36,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x37,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x38,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x38,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x20,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x3f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x28,0x00,0x00,0x00,0x36,0x00,0x05,0x00,0x3a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x40,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x30,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x30,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x32,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x41,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x45,0x00,0x00,0x00,
- 0x41,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x20,0x00,0x00,0x00,
- 0x46,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x50,0x00,0x07,0x00,
- 0x25,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x45,0x00,0x00,0x00,
- 0x46,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x3f,0x00,0x00,0x00,
- 0x48,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x28,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
- 0x3c,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
- 0x49,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,
- 0x4a,0x00,0x00,0x00,0x90,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,
- 0x47,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,
- 0x4d,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x20,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x8e,0x00,0x05,0x00,
- 0x25,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
- 0x41,0x00,0x05,0x00,0x3f,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x28,0x00,0x00,0x00,0x51,0x00,0x00,0x00,
- 0x50,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x3c,0x00,0x00,0x00,0x52,0x00,0x00,0x00,
- 0x0f,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x26,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x90,0x00,0x05,0x00,
- 0x25,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
- 0x41,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
- 0x55,0x00,0x00,0x00,0x8e,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x57,0x00,0x00,0x00,
- 0x54,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
- 0x58,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
- 0x3f,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x28,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x59,0x00,0x00,0x00,
- 0x41,0x00,0x06,0x00,0x3c,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
- 0x1f,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x26,0x00,0x00,0x00,
- 0x5c,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x90,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
- 0x5d,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,
- 0x3e,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
- 0x8e,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,
- 0x5f,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
- 0x58,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x3f,0x00,0x00,0x00,
- 0x62,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x28,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
- 0x3c,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
- 0x63,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x65,0x00,0x00,0x00,
- 0x64,0x00,0x00,0x00,0x90,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x66,0x00,0x00,0x00,
- 0x47,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x3e,0x00,0x00,0x00,
- 0x67,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x20,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x8e,0x00,0x05,0x00,
- 0x25,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
- 0x81,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
- 0x69,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,
- 0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x30,0x00,0x00,0x00,
- 0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
- 0x6d,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,
- 0x30,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
- 0x25,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x4f,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
- 0x6f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x50,0x00,0x06,0x00,0x3d,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,
- 0x6e,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x90,0x00,0x05,0x00,0x30,0x00,0x00,0x00,
- 0x72,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x8e,0x00,0x05,0x00,
- 0x30,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x75,0x00,0x00,0x00,
- 0x74,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x76,0x00,0x00,0x00,
- 0x53,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x30,0x00,0x00,0x00,
- 0x77,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
- 0x78,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,
- 0x30,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x3d,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x77,0x00,0x00,0x00,
- 0x79,0x00,0x00,0x00,0x90,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,
- 0x42,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x8e,0x00,0x05,0x00,0x30,0x00,0x00,0x00,
- 0x7c,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
- 0x30,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
- 0x7e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
- 0x5c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x30,0x00,0x00,0x00,
- 0x81,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
- 0x82,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,
- 0x30,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x82,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x3d,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x81,0x00,0x00,0x00,
- 0x83,0x00,0x00,0x00,0x90,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
- 0x42,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x8e,0x00,0x05,0x00,0x30,0x00,0x00,0x00,
- 0x86,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
- 0x30,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x65,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x89,0x00,0x00,0x00,
- 0x88,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,
- 0x65,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x30,0x00,0x00,0x00,
- 0x8b,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
- 0x8c,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,
- 0x30,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x3d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,
- 0x8d,0x00,0x00,0x00,0x90,0x00,0x05,0x00,0x30,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,
- 0x42,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x8e,0x00,0x05,0x00,0x30,0x00,0x00,0x00,
- 0x90,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
- 0x30,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
- 0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
- 0x1f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
- 0x92,0x00,0x00,0x00,0x90,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x94,0x00,0x00,0x00,
- 0x6a,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,
- 0x95,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x26,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x95,0x00,0x00,0x00,0x90,0x00,0x05,0x00,
- 0x25,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x96,0x00,0x00,0x00,
- 0x4f,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x97,0x00,0x00,0x00,
- 0x97,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x41,0x00,0x05,0x00,0x3c,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
- 0x24,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
- 0x99,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x25,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,
- 0x9a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x30,0x00,0x00,0x00,
- 0x9c,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x25,0x00,0x00,0x00,
- 0x9d,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,
- 0x30,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
- 0x25,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x4f,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,
- 0x9f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x50,0x00,0x06,0x00,0x3d,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
- 0x9e,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x90,0x00,0x05,0x00,0x30,0x00,0x00,0x00,
- 0xa2,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0x0c,0x00,0x06,0x00,
- 0x30,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x45,0x00,0x00,0x00,
- 0xa2,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x08,0x00,0x00,0x00,0x94,0x00,0x00,0x00,
- 0x3e,0x00,0x03,0x00,0x09,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,
- 0x0a,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x0b,0x00,0x00,0x00,
- 0x43,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
-};
-
-static const unsigned char _vertexSkinnedDXIL[] = {
- 0x44,0x58,0x42,0x43,0x27,0xb4,0xc6,0xd9,0x69,0x41,0xbc,0x07,0x91,0x11,0x7e,0x85,
- 0x11,0x6e,0x35,0x08,0x01,0x00,0x00,0x00,0x70,0x25,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x3c,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xb0,0x01,0x00,0x00,
- 0x80,0x03,0x00,0x00,0x00,0x0c,0x00,0x00,0x1c,0x0c,0x00,0x00,0x53,0x46,0x49,0x30,
- 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x53,0x47,0x31,
- 0xb4,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xa8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xa8,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xa8,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xa8,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x00,0x00,0x00,0x00,0x4f,0x53,0x47,0x31,0xa0,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x07,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x07,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x03,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x91,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x00,0x53,0x56,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x00,0x00,0x00,0x00,
- 0x50,0x53,0x56,0x30,0xc8,0x01,0x00,0x00,0x34,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x05,0x04,0x00,0x05,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x00,0x54,0x45,0x58,
- 0x43,0x4f,0x4f,0x52,0x44,0x00,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x00,0x54,
- 0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x00,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x00,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x00,0x54,0x45,0x58,0x43,0x4f,0x4f,
- 0x52,0x44,0x00,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x00,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x00,0x76,0x65,0x72,0x74,0x65,0x78,0x53,0x6b,0x69,0x6e,0x6e,
- 0x65,0x64,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x43,0x00,0x03,0x00,0x00,0x00,
- 0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x01,0x43,0x00,0x03,0x00,0x00,0x00,
- 0x13,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x02,0x42,0x00,0x03,0x00,0x00,0x00,
- 0x1c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x03,0x44,0x00,0x01,0x00,0x00,0x00,
- 0x25,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x04,0x44,0x00,0x03,0x00,0x00,0x00,
- 0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x43,0x00,0x03,0x02,0x00,0x00,
- 0x37,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x01,0x43,0x00,0x03,0x02,0x00,0x00,
- 0x40,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x02,0x42,0x00,0x03,0x02,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x44,0x03,0x03,0x04,0x00,0x00,
- 0x07,0xf0,0x00,0x00,0x07,0xf0,0x00,0x00,0x07,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x77,0xf0,0x00,0x00,0x77,0xf0,0x00,0x00,0x77,0xf0,0x00,0x00,0x77,0xf0,0x00,0x00,
- 0x77,0xf0,0x00,0x00,0x77,0xf0,0x00,0x00,0x77,0xf0,0x00,0x00,0x77,0xf0,0x00,0x00,
- 0x53,0x54,0x41,0x54,0x78,0x08,0x00,0x00,0x60,0x00,0x01,0x00,0x1e,0x02,0x00,0x00,
- 0x44,0x58,0x49,0x4c,0x00,0x01,0x00,0x00,0x10,0x00,0x00,0x00,0x60,0x08,0x00,0x00,
- 0x42,0x43,0xc0,0xde,0x21,0x0c,0x00,0x00,0x15,0x02,0x00,0x00,0x0b,0x82,0x20,0x00,
- 0x02,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x07,0x81,0x23,0x91,0x41,0xc8,0x04,0x49,
- 0x06,0x10,0x32,0x39,0x92,0x01,0x84,0x0c,0x25,0x05,0x08,0x19,0x1e,0x04,0x8b,0x62,
- 0x80,0x18,0x45,0x02,0x42,0x92,0x0b,0x42,0xc4,0x10,0x32,0x14,0x38,0x08,0x18,0x4b,
- 0x0a,0x32,0x62,0x88,0x48,0x90,0x14,0x20,0x43,0x46,0x88,0xa5,0x00,0x19,0x32,0x42,
- 0xe4,0x48,0x0e,0x90,0x11,0x23,0xc4,0x50,0x41,0x51,0x81,0x8c,0xe1,0x83,0xe5,0x8a,
- 0x04,0x31,0x46,0x06,0x51,0x18,0x00,0x00,0x08,0x00,0x00,0x00,0x1b,0x8c,0xe0,0xff,
- 0xff,0xff,0xff,0x07,0x40,0x02,0xa8,0x0d,0x84,0xf0,0xff,0xff,0xff,0xff,0x03,0x20,
- 0x6d,0x30,0x86,0xff,0xff,0xff,0xff,0x1f,0x00,0x09,0xa8,0x00,0x49,0x18,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x13,0x82,0x60,0x42,0x20,0x4c,0x08,0x06,0x00,0x00,0x00,0x00,
- 0x89,0x20,0x00,0x00,0x34,0x00,0x00,0x00,0x32,0x22,0x88,0x09,0x20,0x64,0x85,0x04,
- 0x13,0x23,0xa4,0x84,0x04,0x13,0x23,0xe3,0x84,0xa1,0x90,0x14,0x12,0x4c,0x8c,0x8c,
- 0x0b,0x84,0xc4,0x4c,0x10,0x8c,0xc1,0x08,0x40,0x09,0x00,0x0a,0x66,0x00,0xe6,0x08,
- 0xc0,0x60,0x8e,0x00,0x29,0xc6,0x40,0x10,0x44,0x41,0x90,0x51,0x0c,0x82,0x20,0x88,
- 0x82,0x20,0xa4,0x18,0x00,0x41,0x10,0xc5,0x40,0x4a,0x41,0x06,0x62,0x18,0x86,0x61,
- 0x18,0x88,0x29,0xc3,0x40,0x0c,0xe4,0x1c,0x35,0x5c,0xfe,0x84,0x3d,0x84,0xe4,0x73,
- 0x1b,0x55,0xac,0xc4,0xe4,0x17,0xb7,0x8d,0x88,0x61,0x18,0x06,0x2a,0xee,0x19,0x2e,
- 0x7f,0xc2,0x1e,0x42,0xf2,0x43,0xa0,0x19,0x16,0x02,0x05,0x51,0x21,0x20,0x42,0x22,
- 0x68,0x2a,0xc5,0x40,0x0c,0xc3,0x40,0xd5,0x1c,0x41,0x50,0x0c,0x89,0x28,0x08,0xe2,
- 0x22,0x6c,0x20,0x60,0x18,0x81,0x18,0x92,0x60,0x3b,0xee,0x70,0xa4,0x69,0x01,0x30,
- 0x87,0x9a,0xfc,0x09,0x7b,0x88,0xbf,0x8b,0x00,0xcb,0x6d,0x90,0xc2,0x89,0x18,0x09,
- 0x0d,0x1c,0xc7,0x51,0x97,0x80,0x01,0xdc,0x71,0x87,0x23,0x4d,0x0b,0x80,0x39,0xd4,
- 0xe4,0x4f,0xd8,0x43,0xfc,0xac,0x82,0x34,0x6e,0x83,0x14,0x4e,0xc4,0x48,0x28,0xf8,
- 0x08,0x4c,0x0b,0x02,0x00,0x00,0x00,0x00,0x13,0x14,0x72,0xc0,0x87,0x74,0x60,0x87,
- 0x36,0x68,0x87,0x79,0x68,0x03,0x72,0xc0,0x87,0x0d,0xaf,0x50,0x0e,0x6d,0xd0,0x0e,
- 0x7a,0x50,0x0e,0x6d,0x00,0x0f,0x7a,0x30,0x07,0x72,0xa0,0x07,0x73,0x20,0x07,0x6d,
- 0x90,0x0e,0x71,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x78,0xa0,0x07,0x73,0x20,
- 0x07,0x6d,0x90,0x0e,0x71,0x60,0x07,0x7a,0x30,0x07,0x72,0xd0,0x06,0xe9,0x30,0x07,
- 0x72,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x76,0x40,0x07,0x7a,0x60,0x07,0x74,
- 0xd0,0x06,0xe6,0x10,0x07,0x76,0xa0,0x07,0x73,0x20,0x07,0x6d,0x60,0x0e,0x73,0x20,
- 0x07,0x7a,0x30,0x07,0x72,0xd0,0x06,0xe6,0x60,0x07,0x74,0xa0,0x07,0x76,0x40,0x07,
- 0x6d,0xe0,0x0e,0x78,0xa0,0x07,0x71,0x60,0x07,0x7a,0x30,0x07,0x72,0xa0,0x07,0x76,
- 0x40,0x07,0x43,0x9e,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,
- 0x3c,0x06,0x10,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x79,0x10,0x20,
- 0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xf2,0x28,0x40,0x00,0x08,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xe4,0x61,0x80,0x00,0x08,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x60,0xc8,0xe3,0x00,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x90,0x67,0x02,0x02,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x21,0x4f,
- 0x05,0x04,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43,0x1e,0x0c,0x08,0x80,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb2,0x40,0x00,0x00,0x21,0x00,0x00,0x00,
- 0x32,0x1e,0x98,0x18,0x19,0x11,0x4c,0x90,0x8c,0x09,0x26,0x47,0xc6,0x04,0x43,0x22,
- 0x4a,0x60,0x04,0xa0,0x18,0x0a,0x70,0xa0,0x00,0x01,0x03,0x8a,0xa0,0x10,0xca,0xa0,
- 0x1c,0x4a,0xa2,0x00,0x03,0x0a,0x50,0xa0,0x3c,0x0a,0x7c,0xa0,0x84,0x07,0x0a,0x3b,
- 0xa0,0xb0,0x15,0x0a,0xa4,0x30,0xa8,0x28,0x89,0x11,0x80,0x32,0x28,0x82,0x52,0x28,
- 0x04,0xba,0x6a,0x80,0xba,0x19,0x00,0xf2,0x66,0x00,0x08,0x9c,0x01,0xa0,0x70,0x06,
- 0x80,0xc4,0xb1,0x2c,0x0a,0x3a,0x41,0x3e,0x38,0x41,0x3e,0x38,0x41,0x3e,0x00,0xe0,
- 0x01,0x1e,0xe0,0x01,0x00,0x11,0x10,0x02,0x80,0x7b,0xe4,0x83,0x7b,0xe4,0x83,0x7b,
- 0xe4,0x83,0x7b,0xe4,0x83,0x7b,0xe4,0x83,0x7b,0xe4,0x83,0x7b,0xe4,0x83,0x7b,0xe4,
- 0x03,0x00,0x00,0x00,0x79,0x18,0x00,0x00,0xe0,0x00,0x00,0x00,0x1a,0x03,0x4c,0x90,
- 0x46,0x02,0x13,0xc4,0x8f,0x0c,0x6f,0x0c,0x05,0x4e,0x2e,0xcd,0x2e,0x8c,0xae,0x2c,
- 0x05,0x24,0xc6,0x25,0xc7,0x05,0xc6,0x25,0x06,0x04,0x45,0x66,0x0c,0x87,0x26,0x2c,
- 0x66,0xac,0x26,0x65,0x43,0x10,0x4c,0x10,0x88,0x64,0x82,0x40,0x28,0x1b,0x84,0x81,
- 0xd8,0x20,0x10,0x04,0x05,0xbb,0xb9,0x09,0x02,0xb1,0x6c,0x18,0x0e,0x84,0x98,0x20,
- 0x78,0x64,0xc0,0x88,0x2e,0x0f,0xae,0xec,0x8b,0x48,0x2e,0xec,0xae,0xca,0x2d,0xcd,
- 0xec,0x4d,0xae,0x6d,0x6e,0x82,0x40,0x30,0x1b,0x10,0x42,0x59,0x06,0x62,0x60,0x80,
- 0x09,0x42,0x18,0x98,0x01,0x23,0xba,0x3c,0xb8,0xb2,0xaf,0xa9,0xb5,0x34,0xb7,0x2a,
- 0xb7,0x34,0xb3,0x37,0xb9,0xb6,0xb9,0x09,0x02,0xd1,0x6c,0x40,0x06,0xe7,0x19,0x86,
- 0x01,0x02,0x36,0x08,0x4d,0xb4,0x81,0x00,0x00,0x09,0x98,0x20,0x74,0x63,0x40,0x30,
- 0x20,0x92,0x0b,0xbb,0xab,0x72,0x4b,0x33,0x7b,0x93,0x6b,0x9b,0xfb,0x6a,0x7b,0x23,
- 0x2b,0x63,0xb3,0x4a,0x2b,0xbb,0x83,0x92,0x7b,0x53,0x2b,0x1b,0xa3,0x4b,0x7b,0x73,
- 0x9b,0x20,0x10,0xce,0x04,0x81,0x78,0x36,0x0c,0xd7,0x65,0x4d,0x10,0x08,0x68,0x82,
- 0x40,0x44,0x13,0x04,0x42,0x9a,0x20,0x5c,0x62,0xb0,0x41,0x41,0x2a,0x0b,0xcb,0x08,
- 0x6d,0xdb,0x38,0x4a,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x5f,0x6d,0x6f,0x64,0x65,0x6c,0x13,0x04,0x62,0xda,0x80,0x20,0x9e,0x85,0x65,0x9f,
- 0xb6,0x31,0x23,0x92,0x0b,0xbb,0xab,0x72,0x4b,0x33,0x7b,0x93,0x6b,0x9b,0xfb,0x72,
- 0x7b,0x93,0x6b,0x0b,0x63,0x6b,0x0a,0xa3,0x93,0x4b,0xc3,0x9b,0x20,0x10,0xd4,0x06,
- 0x04,0x09,0x03,0x0b,0xcb,0xc4,0x40,0xdb,0x36,0x10,0x4c,0x07,0x06,0x63,0x30,0x41,
- 0x00,0x83,0x32,0xe0,0x34,0xb5,0x96,0xe6,0x56,0xe5,0x96,0x66,0xf6,0x26,0xd7,0x36,
- 0xf7,0xa5,0xf6,0x96,0xe6,0x46,0x37,0xb7,0x01,0x41,0xcc,0xc0,0xc2,0x32,0x42,0xdb,
- 0x36,0x08,0xd0,0x19,0x6c,0x28,0x08,0x8a,0x0c,0xca,0x00,0x0d,0x26,0x08,0x02,0xb0,
- 0x01,0xd8,0x30,0x10,0x6b,0xb0,0x06,0x1b,0x02,0x36,0xd8,0x30,0x0c,0x6a,0xd0,0x06,
- 0x13,0x04,0x31,0x38,0x83,0x0d,0xc1,0x1b,0xb0,0xb1,0x2b,0x93,0xa3,0x2b,0xc3,0x9b,
- 0x5a,0x4b,0x73,0x73,0x2b,0x23,0x23,0x42,0x55,0x84,0x35,0xf4,0xf4,0x24,0x45,0x34,
- 0x41,0x28,0xb8,0x09,0x42,0xd1,0x6d,0x08,0x88,0x09,0x42,0xe1,0x6d,0x10,0x32,0x6d,
- 0xc3,0x42,0xc8,0xc1,0x1c,0xd0,0x41,0x1d,0xd0,0xc1,0x60,0x07,0x04,0x1d,0xdc,0xc1,
- 0x86,0x60,0xd8,0xb0,0x0c,0x72,0x30,0x07,0x74,0x90,0x07,0x74,0x30,0xd8,0xc1,0x40,
- 0x07,0x77,0xb0,0x21,0xb0,0x26,0x08,0xc5,0xb7,0x41,0xc8,0xb2,0x0d,0x8b,0x25,0x07,
- 0x73,0x40,0x07,0x7b,0x40,0x07,0x03,0x1f,0x58,0x74,0xd0,0x07,0x13,0x84,0x02,0x0c,
- 0x36,0x04,0xd9,0x04,0xa1,0x08,0x83,0x09,0x02,0x51,0x6d,0x10,0x32,0x51,0xd8,0xb0,
- 0x64,0x72,0xf0,0x07,0x74,0x00,0x0a,0x74,0x30,0x84,0x42,0x46,0x07,0xa3,0xb0,0x21,
- 0xb8,0x36,0x2c,0x97,0x1c,0xcc,0x01,0x1d,0x94,0x02,0x1d,0x0c,0xa1,0x70,0xd1,0xc1,
- 0x28,0x6c,0x28,0xf0,0x40,0x0f,0xfc,0x80,0x14,0x4c,0x61,0xc3,0x42,0xc8,0xc1,0x1c,
- 0xd0,0x41,0x1d,0xf0,0xc1,0x60,0x07,0x04,0x1d,0xdc,0xc1,0x86,0x65,0x90,0x83,0x39,
- 0xa0,0x83,0x3c,0xe0,0x83,0xc1,0x0e,0x06,0x3a,0xb8,0x83,0x0d,0x8b,0x25,0x07,0x73,
- 0x40,0x07,0x7b,0xc0,0x07,0x03,0x1f,0x58,0x74,0xd0,0x07,0x5c,0xa6,0xac,0xbe,0xa0,
- 0xde,0xe6,0xd2,0xe8,0xd2,0xde,0xdc,0x36,0x2c,0xd9,0x2a,0xcc,0x81,0x1d,0xd4,0x41,
- 0x28,0x0c,0xa1,0x90,0xd1,0xc1,0x28,0x6c,0x20,0x50,0x21,0x15,0x54,0x81,0x15,0x36,
- 0x0c,0xa7,0xd0,0x0a,0xc0,0x86,0x42,0x0d,0xe2,0xc0,0x15,0x26,0x80,0x51,0x98,0x9c,
- 0x5c,0x58,0xde,0x17,0xdb,0xdb,0x58,0x18,0xdb,0x97,0x58,0x1e,0x5d,0xd9,0xdc,0x04,
- 0x81,0xb0,0x08,0x85,0xc9,0xc9,0x85,0xe5,0x7d,0xb1,0xbd,0x8d,0x85,0xb1,0x7d,0xb1,
- 0x91,0xcd,0xd1,0x4d,0x10,0x88,0x8b,0x86,0x19,0xdb,0x5b,0x18,0xdd,0xdc,0x04,0x81,
- 0xc0,0x58,0xa4,0xb9,0xcd,0xd1,0xcd,0x4d,0x10,0x88,0x8c,0x44,0x9a,0x1b,0xdd,0x1c,
- 0x8d,0xb9,0xb4,0xb3,0x2f,0x36,0xb2,0x09,0x02,0xa1,0xd1,0x98,0x4b,0x3b,0xfb,0x9a,
- 0xa3,0x9b,0x20,0x10,0x1b,0x8b,0xba,0x34,0x37,0xba,0xb9,0x0d,0x10,0x2c,0xc4,0x82,
- 0x2c,0xcc,0x02,0x2d,0xd4,0x82,0x2d,0xdc,0x02,0x2e,0x5c,0xb9,0xa0,0x0b,0xbb,0xc0,
- 0x0b,0xbd,0xc0,0x0b,0x55,0xd8,0xd8,0xec,0xda,0x5c,0xd2,0xc8,0xca,0xdc,0xe8,0xa6,
- 0x04,0x41,0x15,0x32,0x3c,0x17,0xbb,0x32,0xb9,0xb9,0xb4,0x37,0xb7,0x29,0x01,0xd1,
- 0x84,0x0c,0xcf,0xc5,0x2e,0x8c,0xcd,0xae,0x4c,0x6e,0x4a,0x50,0xd4,0x21,0xc3,0x73,
- 0x99,0x43,0x0b,0x23,0x2b,0x93,0x6b,0x7a,0x23,0x2b,0x63,0x9b,0x12,0x20,0x65,0xc8,
- 0xf0,0x5c,0xe4,0xca,0xe6,0xde,0xea,0xe4,0xc6,0xca,0xe6,0xa6,0x04,0x52,0x25,0x32,
- 0x3c,0x17,0xba,0x3c,0xb8,0xb2,0x20,0x37,0xb7,0x37,0xba,0x30,0xba,0xb4,0x37,0xb7,
- 0xb9,0x29,0x02,0x1a,0xb4,0x41,0x1d,0x32,0x3c,0x17,0xbb,0xb4,0xb2,0xbb,0x24,0xb2,
- 0x29,0xba,0x30,0xba,0xb2,0x29,0xc1,0x1b,0xd4,0x21,0xc3,0x73,0x29,0x73,0xa3,0x93,
- 0xcb,0x83,0x7a,0x4b,0x73,0xa3,0x9b,0x9b,0x12,0xb8,0x42,0x17,0x32,0x3c,0x97,0xb1,
- 0xb7,0x3a,0x37,0xba,0x32,0xb9,0xb9,0x29,0x41,0x2f,0x00,0x00,0x79,0x18,0x00,0x00,
- 0x4c,0x00,0x00,0x00,0x33,0x08,0x80,0x1c,0xc4,0xe1,0x1c,0x66,0x14,0x01,0x3d,0x88,
- 0x43,0x38,0x84,0xc3,0x8c,0x42,0x80,0x07,0x79,0x78,0x07,0x73,0x98,0x71,0x0c,0xe6,
- 0x00,0x0f,0xed,0x10,0x0e,0xf4,0x80,0x0e,0x33,0x0c,0x42,0x1e,0xc2,0xc1,0x1d,0xce,
- 0xa1,0x1c,0x66,0x30,0x05,0x3d,0x88,0x43,0x38,0x84,0x83,0x1b,0xcc,0x03,0x3d,0xc8,
- 0x43,0x3d,0x8c,0x03,0x3d,0xcc,0x78,0x8c,0x74,0x70,0x07,0x7b,0x08,0x07,0x79,0x48,
- 0x87,0x70,0x70,0x07,0x7a,0x70,0x03,0x76,0x78,0x87,0x70,0x20,0x87,0x19,0xcc,0x11,
- 0x0e,0xec,0x90,0x0e,0xe1,0x30,0x0f,0x6e,0x30,0x0f,0xe3,0xf0,0x0e,0xf0,0x50,0x0e,
- 0x33,0x10,0xc4,0x1d,0xde,0x21,0x1c,0xd8,0x21,0x1d,0xc2,0x61,0x1e,0x66,0x30,0x89,
- 0x3b,0xbc,0x83,0x3b,0xd0,0x43,0x39,0xb4,0x03,0x3c,0xbc,0x83,0x3c,0x84,0x03,0x3b,
- 0xcc,0xf0,0x14,0x76,0x60,0x07,0x7b,0x68,0x07,0x37,0x68,0x87,0x72,0x68,0x07,0x37,
- 0x80,0x87,0x70,0x90,0x87,0x70,0x60,0x07,0x76,0x28,0x07,0x76,0xf8,0x05,0x76,0x78,
- 0x87,0x77,0x80,0x87,0x5f,0x08,0x87,0x71,0x18,0x87,0x72,0x98,0x87,0x79,0x98,0x81,
- 0x2c,0xee,0xf0,0x0e,0xee,0xe0,0x0e,0xf5,0xc0,0x0e,0xec,0x30,0x03,0x62,0xc8,0xa1,
- 0x1c,0xe4,0xa1,0x1c,0xcc,0xa1,0x1c,0xe4,0xa1,0x1c,0xdc,0x61,0x1c,0xca,0x21,0x1c,
- 0xc4,0x81,0x1d,0xca,0x61,0x06,0xd6,0x90,0x43,0x39,0xc8,0x43,0x39,0x98,0x43,0x39,
- 0xc8,0x43,0x39,0xb8,0xc3,0x38,0x94,0x43,0x38,0x88,0x03,0x3b,0x94,0xc3,0x2f,0xbc,
- 0x83,0x3c,0xfc,0x82,0x3b,0xd4,0x03,0x3b,0xb0,0xc3,0x8c,0xc8,0x21,0x07,0x7c,0x70,
- 0x03,0x72,0x10,0x87,0x73,0x70,0x03,0x7b,0x08,0x07,0x79,0x60,0x87,0x70,0xc8,0x87,
- 0x77,0xa8,0x07,0x7a,0x98,0x81,0x3c,0xe4,0x80,0x0f,0x6e,0x40,0x0f,0xe5,0xd0,0x0e,
- 0xf0,0x00,0x00,0x00,0x71,0x20,0x00,0x00,0x24,0x00,0x00,0x00,0x66,0xb0,0x0d,0x97,
- 0xef,0x3c,0xbe,0x10,0x50,0x45,0x41,0x44,0xa5,0x03,0x0c,0x25,0x61,0x00,0x02,0xe6,
- 0x17,0xb7,0x6d,0x08,0xd2,0x70,0xf9,0xce,0xe3,0x0b,0x11,0x01,0x4c,0x44,0x08,0x34,
- 0xc3,0x42,0x18,0x81,0x33,0x5c,0xbe,0xf3,0xf8,0x83,0x33,0xdd,0x7e,0x71,0xdb,0x16,
- 0x30,0x0d,0x97,0xef,0x3c,0xfe,0xe2,0x00,0x83,0xd8,0x3c,0xd4,0xe4,0x17,0xb7,0x6d,
- 0x02,0xd3,0x70,0xf9,0xce,0xe3,0x2f,0x0e,0x30,0x88,0xcd,0x43,0x4d,0x3e,0x72,0xdb,
- 0x36,0x50,0x0d,0x97,0xef,0x3c,0xbe,0x34,0x39,0x11,0x81,0x52,0xd3,0x43,0x4d,0x7e,
- 0x71,0xdb,0x76,0x20,0x0d,0x97,0xef,0x3c,0xfe,0x44,0x44,0x13,0x02,0x44,0x98,0x5f,
- 0xdc,0xb6,0x15,0x3c,0xc3,0xe5,0x3b,0x8f,0x4f,0x35,0x40,0x84,0xf9,0xc5,0x6d,0x1b,
- 0x40,0x53,0x11,0xd1,0x44,0x5c,0xac,0x82,0x34,0x0d,0x31,0x00,0x00,0x00,0x00,0x00,
- 0x48,0x41,0x53,0x48,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0xf2,0x97,0xd6,
- 0xad,0x07,0x8f,0xd0,0x8b,0x74,0xf8,0xde,0xae,0x5e,0x77,0x85,0x44,0x58,0x49,0x4c,
- 0x4c,0x19,0x00,0x00,0x60,0x00,0x01,0x00,0x53,0x06,0x00,0x00,0x44,0x58,0x49,0x4c,
- 0x00,0x01,0x00,0x00,0x10,0x00,0x00,0x00,0x34,0x19,0x00,0x00,0x42,0x43,0xc0,0xde,
- 0x21,0x0c,0x00,0x00,0x4a,0x06,0x00,0x00,0x0b,0x82,0x20,0x00,0x02,0x00,0x00,0x00,
- 0x13,0x00,0x00,0x00,0x07,0x81,0x23,0x91,0x41,0xc8,0x04,0x49,0x06,0x10,0x32,0x39,
- 0x92,0x01,0x84,0x0c,0x25,0x05,0x08,0x19,0x1e,0x04,0x8b,0x62,0x80,0x18,0x45,0x02,
- 0x42,0x92,0x0b,0x42,0xc4,0x10,0x32,0x14,0x38,0x08,0x18,0x4b,0x0a,0x32,0x62,0x88,
- 0x48,0x90,0x14,0x20,0x43,0x46,0x88,0xa5,0x00,0x19,0x32,0x42,0xe4,0x48,0x0e,0x90,
- 0x11,0x23,0xc4,0x50,0x41,0x51,0x81,0x8c,0xe1,0x83,0xe5,0x8a,0x04,0x31,0x46,0x06,
- 0x51,0x18,0x00,0x00,0x08,0x00,0x00,0x00,0x1b,0x8c,0xe0,0xff,0xff,0xff,0xff,0x07,
- 0x40,0x02,0xa8,0x0d,0x84,0xf0,0xff,0xff,0xff,0xff,0x03,0x20,0x6d,0x30,0x86,0xff,
- 0xff,0xff,0xff,0x1f,0x00,0x09,0xa8,0x00,0x49,0x18,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x13,0x82,0x60,0x42,0x20,0x4c,0x08,0x06,0x00,0x00,0x00,0x00,0x89,0x20,0x00,0x00,
- 0x35,0x00,0x00,0x00,0x32,0x22,0x88,0x09,0x20,0x64,0x85,0x04,0x13,0x23,0xa4,0x84,
- 0x04,0x13,0x23,0xe3,0x84,0xa1,0x90,0x14,0x12,0x4c,0x8c,0x8c,0x0b,0x84,0xc4,0x4c,
- 0x10,0x98,0xc1,0x08,0x40,0x09,0x00,0x0a,0x66,0x00,0xe6,0x08,0xc0,0x60,0x8e,0x00,
- 0x29,0xc6,0x40,0x10,0x44,0x41,0x90,0x51,0x0c,0x82,0x20,0x88,0x82,0x20,0xa4,0x18,
- 0x00,0x41,0x10,0xc5,0x40,0x4a,0x41,0x06,0x62,0x18,0x86,0x61,0x18,0x88,0x29,0xc3,
- 0x40,0x0c,0xe4,0x1c,0x35,0x5c,0xfe,0x84,0x3d,0x84,0xe4,0x73,0x1b,0x55,0xac,0xc4,
- 0xe4,0x17,0xb7,0x8d,0x88,0x61,0x18,0x06,0x2a,0xee,0x19,0x2e,0x7f,0xc2,0x1e,0x42,
- 0xf2,0x43,0xa0,0x19,0x16,0x02,0x05,0x51,0x21,0x20,0x42,0x22,0x68,0x2a,0xc5,0x40,
- 0x0c,0xc3,0x40,0xd5,0x1c,0x41,0x50,0x0c,0x89,0x28,0x08,0xe2,0x22,0x6c,0x20,0x60,
- 0x18,0x81,0x18,0x92,0x60,0x3b,0xee,0x70,0xa4,0x69,0x01,0x30,0x87,0x9a,0xfc,0x09,
- 0x7b,0x88,0xbf,0x8b,0x00,0xcb,0x6d,0x90,0xc2,0x89,0x18,0x09,0x0d,0x1c,0xc7,0x51,
- 0x97,0x80,0x01,0xdc,0x71,0x87,0x23,0x4d,0x0b,0x80,0x39,0xd4,0xe4,0x4f,0xd8,0x43,
- 0xfc,0xac,0x82,0x34,0x6e,0x83,0x14,0x4e,0xc4,0x48,0x28,0xf8,0x08,0x4c,0x0b,0x22,
- 0x09,0x06,0x1a,0x69,0x00,0x00,0x00,0x00,0x13,0x14,0x72,0xc0,0x87,0x74,0x60,0x87,
- 0x36,0x68,0x87,0x79,0x68,0x03,0x72,0xc0,0x87,0x0d,0xaf,0x50,0x0e,0x6d,0xd0,0x0e,
- 0x7a,0x50,0x0e,0x6d,0x00,0x0f,0x7a,0x30,0x07,0x72,0xa0,0x07,0x73,0x20,0x07,0x6d,
- 0x90,0x0e,0x71,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x78,0xa0,0x07,0x73,0x20,
- 0x07,0x6d,0x90,0x0e,0x71,0x60,0x07,0x7a,0x30,0x07,0x72,0xd0,0x06,0xe9,0x30,0x07,
- 0x72,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x76,0x40,0x07,0x7a,0x60,0x07,0x74,
- 0xd0,0x06,0xe6,0x10,0x07,0x76,0xa0,0x07,0x73,0x20,0x07,0x6d,0x60,0x0e,0x73,0x20,
- 0x07,0x7a,0x30,0x07,0x72,0xd0,0x06,0xe6,0x60,0x07,0x74,0xa0,0x07,0x76,0x40,0x07,
- 0x6d,0xe0,0x0e,0x78,0xa0,0x07,0x71,0x60,0x07,0x7a,0x30,0x07,0x72,0xa0,0x07,0x76,
- 0x40,0x07,0x43,0x9e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,
- 0x3c,0x06,0x10,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x79,0x10,0x20,
- 0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xf2,0x28,0x40,0x00,0x08,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xe4,0x61,0x80,0x00,0x08,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x60,0xc8,0xe3,0x00,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x90,0x67,0x02,0x02,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x21,0x4f,
- 0x05,0x04,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43,0x1e,0x0c,0x08,0x80,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb2,0x40,0x00,0x00,0x1a,0x00,0x00,0x00,
- 0x32,0x1e,0x98,0x14,0x19,0x11,0x4c,0x90,0x8c,0x09,0x26,0x47,0xc6,0x04,0x43,0x22,
- 0x4a,0x60,0x04,0xa0,0x24,0x8a,0xa1,0x00,0x07,0x0a,0x10,0x30,0xa0,0x0c,0xca,0xa1,
- 0x08,0xca,0xa3,0x10,0xa8,0x28,0x89,0x11,0x80,0x32,0x28,0x82,0x52,0x28,0x04,0xf2,
- 0x66,0x00,0x28,0x9c,0x01,0x20,0x71,0x2c,0x8b,0x82,0x4e,0x90,0x0f,0x4e,0x90,0x0f,
- 0x4e,0x90,0x0f,0x00,0x78,0x80,0x07,0x78,0x00,0x40,0x04,0x84,0x00,0xe0,0x1e,0xf9,
- 0xe0,0x1e,0xf9,0xe0,0x1e,0xf9,0xe0,0x1e,0xf9,0xe0,0x1e,0xf9,0xe0,0x1e,0xf9,0xe0,
- 0x1e,0xf9,0xe0,0x1e,0xf9,0x00,0x00,0x00,0x79,0x18,0x00,0x00,0x76,0x00,0x00,0x00,
- 0x1a,0x03,0x4c,0x90,0x46,0x02,0x13,0xc4,0x8f,0x0c,0x6f,0x0c,0x05,0x4e,0x2e,0xcd,
- 0x2e,0x8c,0xae,0x2c,0x05,0x24,0xc6,0x25,0xc7,0x05,0xc6,0x25,0x06,0x04,0x45,0x66,
- 0x0c,0x87,0x26,0x2c,0x66,0xac,0x26,0x65,0x43,0x10,0x4c,0x10,0x88,0x64,0x82,0x40,
- 0x28,0x1b,0x84,0x81,0x98,0x20,0x10,0xcb,0x06,0x61,0x30,0x28,0xd8,0xcd,0x4d,0x10,
- 0x08,0x66,0xc3,0x80,0x24,0xc4,0x04,0xc1,0xd3,0x08,0x4c,0x10,0x88,0x66,0x03,0x42,
- 0x2c,0xcc,0x40,0x0c,0x0d,0x30,0x41,0x08,0x83,0x6d,0x82,0x40,0x38,0x1b,0x90,0xe1,
- 0x61,0x86,0x61,0x80,0x80,0x0d,0x82,0x13,0x6d,0x20,0x00,0x40,0x02,0x26,0x08,0x62,
- 0xc0,0x6d,0x08,0xa8,0x09,0x82,0x00,0xb0,0xb1,0x2b,0x93,0xa3,0x2b,0xc3,0x9b,0x5a,
- 0x4b,0x73,0x73,0x2b,0x23,0x23,0x42,0x55,0x84,0x35,0xf4,0xf4,0x24,0x45,0x34,0x41,
- 0x28,0xa8,0x09,0x42,0x51,0x6d,0x08,0x88,0x09,0x42,0x61,0x4d,0x10,0x88,0x67,0x82,
- 0x40,0x40,0x1b,0x84,0xce,0xdb,0xb0,0x10,0x58,0xa6,0x6d,0xda,0xc0,0x11,0xda,0xb7,
- 0x21,0x18,0x36,0x2c,0x03,0x96,0x69,0x61,0xa0,0x0d,0xdc,0xa0,0x7d,0x13,0x04,0x22,
- 0xda,0x10,0x8c,0xc1,0x04,0xa1,0xb8,0x36,0x08,0x5d,0xb7,0x61,0x19,0x03,0x2c,0xd3,
- 0xc8,0x40,0x1b,0xca,0x60,0x0c,0x34,0x33,0x98,0x20,0x14,0xd8,0x86,0xa0,0x9b,0x20,
- 0x14,0xd9,0x04,0x81,0x90,0x36,0x08,0xdd,0x1a,0x6c,0x58,0x3a,0x0c,0x0d,0xb4,0x34,
- 0xd0,0x06,0x35,0xe8,0x34,0x36,0x98,0x20,0x10,0xd3,0x86,0xc0,0x0d,0x36,0x2c,0x6e,
- 0x80,0x65,0xda,0x1b,0x68,0x83,0x1a,0xb8,0x81,0xc6,0x06,0x1b,0x0a,0x30,0x10,0x83,
- 0x33,0x68,0x03,0x38,0xd8,0xb0,0x10,0x58,0xa6,0x6d,0x65,0x30,0x70,0x84,0xf6,0x6d,
- 0x58,0x06,0x2c,0xd3,0xc2,0xa0,0x0c,0x06,0x6e,0xd0,0xbe,0x0d,0xcb,0x18,0x60,0x99,
- 0x46,0x06,0x65,0x30,0x94,0xc1,0x18,0x68,0x66,0xc0,0x65,0xca,0xea,0x0b,0xea,0x6d,
- 0x2e,0x8d,0x2e,0xed,0xcd,0x6d,0xc3,0xd2,0xd5,0x41,0xc6,0x6d,0x6a,0x30,0xa8,0x41,
- 0xa7,0xb1,0xc1,0x06,0x42,0x0e,0xe6,0x80,0x0e,0xec,0x60,0xc3,0x10,0x07,0x77,0x00,
- 0x6c,0x28,0xac,0x0b,0x0f,0x26,0xa0,0x0a,0x1b,0x9b,0x5d,0x9b,0x4b,0x1a,0x59,0x99,
- 0x1b,0xdd,0x94,0x20,0xa8,0x42,0x86,0xe7,0x62,0x57,0x26,0x37,0x97,0xf6,0xe6,0x36,
- 0x25,0x20,0x9a,0x90,0xe1,0xb9,0xd8,0x85,0xb1,0xd9,0x95,0xc9,0x4d,0x09,0x8c,0x3a,
- 0x64,0x78,0x2e,0x73,0x68,0x61,0x64,0x65,0x72,0x4d,0x6f,0x64,0x65,0x6c,0x53,0x82,
- 0xa4,0x0c,0x19,0x9e,0x8b,0x5c,0xd9,0xdc,0x5b,0x9d,0xdc,0x58,0xd9,0xdc,0x94,0x40,
- 0xaa,0x43,0x86,0xe7,0x62,0x97,0x56,0x76,0x97,0x44,0x36,0x45,0x17,0x46,0x57,0x36,
- 0x25,0xa0,0xea,0x90,0xe1,0xb9,0x94,0xb9,0xd1,0xc9,0xe5,0x41,0xbd,0xa5,0xb9,0xd1,
- 0xcd,0x4d,0x09,0xf0,0x00,0x00,0x00,0x00,0x79,0x18,0x00,0x00,0x4c,0x00,0x00,0x00,
- 0x33,0x08,0x80,0x1c,0xc4,0xe1,0x1c,0x66,0x14,0x01,0x3d,0x88,0x43,0x38,0x84,0xc3,
- 0x8c,0x42,0x80,0x07,0x79,0x78,0x07,0x73,0x98,0x71,0x0c,0xe6,0x00,0x0f,0xed,0x10,
- 0x0e,0xf4,0x80,0x0e,0x33,0x0c,0x42,0x1e,0xc2,0xc1,0x1d,0xce,0xa1,0x1c,0x66,0x30,
- 0x05,0x3d,0x88,0x43,0x38,0x84,0x83,0x1b,0xcc,0x03,0x3d,0xc8,0x43,0x3d,0x8c,0x03,
- 0x3d,0xcc,0x78,0x8c,0x74,0x70,0x07,0x7b,0x08,0x07,0x79,0x48,0x87,0x70,0x70,0x07,
- 0x7a,0x70,0x03,0x76,0x78,0x87,0x70,0x20,0x87,0x19,0xcc,0x11,0x0e,0xec,0x90,0x0e,
- 0xe1,0x30,0x0f,0x6e,0x30,0x0f,0xe3,0xf0,0x0e,0xf0,0x50,0x0e,0x33,0x10,0xc4,0x1d,
- 0xde,0x21,0x1c,0xd8,0x21,0x1d,0xc2,0x61,0x1e,0x66,0x30,0x89,0x3b,0xbc,0x83,0x3b,
- 0xd0,0x43,0x39,0xb4,0x03,0x3c,0xbc,0x83,0x3c,0x84,0x03,0x3b,0xcc,0xf0,0x14,0x76,
- 0x60,0x07,0x7b,0x68,0x07,0x37,0x68,0x87,0x72,0x68,0x07,0x37,0x80,0x87,0x70,0x90,
- 0x87,0x70,0x60,0x07,0x76,0x28,0x07,0x76,0xf8,0x05,0x76,0x78,0x87,0x77,0x80,0x87,
- 0x5f,0x08,0x87,0x71,0x18,0x87,0x72,0x98,0x87,0x79,0x98,0x81,0x2c,0xee,0xf0,0x0e,
- 0xee,0xe0,0x0e,0xf5,0xc0,0x0e,0xec,0x30,0x03,0x62,0xc8,0xa1,0x1c,0xe4,0xa1,0x1c,
- 0xcc,0xa1,0x1c,0xe4,0xa1,0x1c,0xdc,0x61,0x1c,0xca,0x21,0x1c,0xc4,0x81,0x1d,0xca,
- 0x61,0x06,0xd6,0x90,0x43,0x39,0xc8,0x43,0x39,0x98,0x43,0x39,0xc8,0x43,0x39,0xb8,
- 0xc3,0x38,0x94,0x43,0x38,0x88,0x03,0x3b,0x94,0xc3,0x2f,0xbc,0x83,0x3c,0xfc,0x82,
- 0x3b,0xd4,0x03,0x3b,0xb0,0xc3,0x8c,0xc8,0x21,0x07,0x7c,0x70,0x03,0x72,0x10,0x87,
- 0x73,0x70,0x03,0x7b,0x08,0x07,0x79,0x60,0x87,0x70,0xc8,0x87,0x77,0xa8,0x07,0x7a,
- 0x98,0x81,0x3c,0xe4,0x80,0x0f,0x6e,0x40,0x0f,0xe5,0xd0,0x0e,0xf0,0x00,0x00,0x00,
- 0x71,0x20,0x00,0x00,0x24,0x00,0x00,0x00,0x66,0xb0,0x0d,0x97,0xef,0x3c,0xbe,0x10,
- 0x50,0x45,0x41,0x44,0xa5,0x03,0x0c,0x25,0x61,0x00,0x02,0xe6,0x17,0xb7,0x6d,0x08,
- 0xd2,0x70,0xf9,0xce,0xe3,0x0b,0x11,0x01,0x4c,0x44,0x08,0x34,0xc3,0x42,0x18,0x81,
- 0x33,0x5c,0xbe,0xf3,0xf8,0x83,0x33,0xdd,0x7e,0x71,0xdb,0x16,0x30,0x0d,0x97,0xef,
- 0x3c,0xfe,0xe2,0x00,0x83,0xd8,0x3c,0xd4,0xe4,0x17,0xb7,0x6d,0x02,0xd3,0x70,0xf9,
- 0xce,0xe3,0x2f,0x0e,0x30,0x88,0xcd,0x43,0x4d,0x3e,0x72,0xdb,0x36,0x50,0x0d,0x97,
- 0xef,0x3c,0xbe,0x34,0x39,0x11,0x81,0x52,0xd3,0x43,0x4d,0x7e,0x71,0xdb,0x76,0x20,
- 0x0d,0x97,0xef,0x3c,0xfe,0x44,0x44,0x13,0x02,0x44,0x98,0x5f,0xdc,0xb6,0x15,0x3c,
- 0xc3,0xe5,0x3b,0x8f,0x4f,0x35,0x40,0x84,0xf9,0xc5,0x6d,0x1b,0x40,0x53,0x11,0xd1,
- 0x44,0x5c,0xac,0x82,0x34,0x0d,0x31,0x00,0x61,0x20,0x00,0x00,0xa3,0x04,0x00,0x00,
- 0x13,0x04,0x41,0x2c,0x10,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x44,0x14,0x57,0xd9,
- 0xcd,0x00,0x94,0xc2,0x28,0x03,0xa0,0x24,0xa3,0x0c,0x80,0xa2,0x8c,0x32,0x00,0x4a,
- 0x34,0xca,0xb0,0xb0,0x41,0x52,0x72,0xa3,0x0c,0x80,0xd2,0x06,0xa3,0x0c,0x80,0x19,
- 0x24,0xa3,0x0c,0x40,0x18,0x24,0xa3,0x0c,0x80,0x32,0x8d,0x32,0x00,0x69,0x90,0x8c,
- 0x32,0x00,0x6a,0x90,0x8c,0x32,0x00,0x49,0x52,0x10,0xa3,0x0c,0xc0,0x19,0x24,0xe5,
- 0x56,0x32,0xa3,0x0c,0x00,0x1a,0x24,0xa3,0x0c,0xc0,0x1a,0x24,0x54,0x94,0x00,0x5d,
- 0x23,0x00,0x00,0x00,0x23,0x06,0x09,0x00,0x82,0x60,0x80,0xb5,0x01,0xe4,0xb1,0x01,
- 0x1b,0x04,0x23,0x06,0x09,0x00,0x82,0x60,0x80,0xb9,0x41,0xf4,0xb1,0x01,0x1b,0x08,
- 0x33,0x11,0x63,0x40,0x24,0xa3,0x30,0x13,0x31,0x06,0x44,0x32,0x0a,0x33,0x11,0x63,
- 0x40,0x24,0xa3,0x30,0x13,0x31,0x06,0x44,0x32,0x0a,0x33,0x11,0x63,0x40,0x24,0xa3,
- 0x30,0x13,0x31,0x06,0x44,0x32,0x0a,0x33,0x11,0x63,0x40,0x24,0xa3,0x30,0x13,0x31,
- 0x06,0x44,0x32,0x0a,0x33,0x11,0x63,0x40,0x24,0xa3,0x30,0x13,0x31,0x06,0x44,0x32,
- 0x0a,0x33,0x11,0x63,0x40,0x24,0xa3,0x30,0x13,0x31,0x06,0x44,0x32,0x0a,0x33,0x11,
- 0x63,0x40,0x24,0xa3,0x30,0x13,0x31,0x06,0x44,0x32,0x0a,0x33,0x11,0x63,0x40,0x24,
- 0xa3,0x30,0x62,0x90,0x00,0x20,0x08,0x06,0x46,0x29,0xcc,0xc1,0x1c,0xf0,0x41,0x1c,
- 0x9c,0xc1,0x88,0x41,0x02,0x80,0x20,0x18,0x18,0xa6,0x40,0x07,0x74,0xd0,0x07,0x14,
- 0x1a,0x8c,0x18,0x24,0x00,0x08,0x82,0x81,0x71,0x0a,0x75,0x50,0x07,0x7e,0x10,0x07,
- 0x69,0x30,0x62,0x90,0x00,0x20,0x08,0x06,0x06,0x2a,0xd8,0x81,0x1d,0xfc,0xc1,0x1c,
- 0xa8,0xc1,0x88,0x41,0x02,0x80,0x20,0x18,0x20,0xa8,0x70,0x07,0x7b,0x00,0x0a,0x75,
- 0xb0,0x06,0x23,0x06,0x09,0x00,0x82,0x60,0x80,0xa4,0x02,0x1e,0xf0,0x41,0x28,0x60,
- 0x6c,0x30,0x62,0x90,0x00,0x20,0x08,0x06,0x88,0x2a,0xe4,0x41,0x1f,0x88,0x42,0x1d,
- 0xb4,0xc1,0x88,0x41,0x02,0x80,0x20,0x18,0x20,0xab,0xa0,0x07,0x7e,0x30,0x0a,0x77,
- 0xe0,0x06,0x23,0x06,0x09,0x00,0x82,0x60,0x60,0xb4,0xc2,0x1e,0xf4,0x01,0x29,0xe4,
- 0xc1,0x1b,0x8c,0x18,0x24,0x00,0x08,0x82,0x81,0xe1,0x0a,0x7c,0xe0,0x07,0xa5,0xc0,
- 0xc1,0xc1,0x88,0x41,0x02,0x80,0x20,0x18,0x18,0xaf,0xd0,0x07,0xa7,0x60,0x0a,0x7b,
- 0x10,0x07,0x23,0x06,0x09,0x00,0x82,0x60,0x60,0xc0,0x82,0x1f,0xa0,0xc2,0x29,0x78,
- 0x72,0x30,0x62,0x90,0x00,0x20,0x08,0x06,0x46,0x2c,0xfc,0x41,0x2a,0xa0,0xc2,0x1e,
- 0xcc,0xc1,0x88,0x41,0x02,0x80,0x20,0x18,0x18,0xb2,0x00,0x0a,0xa9,0x90,0x0a,0x7e,
- 0x40,0x07,0x23,0x06,0x09,0x00,0x82,0x60,0x60,0xcc,0x42,0x28,0xa8,0x82,0x2a,0x84,
- 0x41,0x1d,0x8c,0x18,0x24,0x00,0x08,0x82,0x81,0x41,0x0b,0xa2,0xb0,0x0a,0xab,0xe0,
- 0x07,0x76,0x50,0x4c,0x29,0xdc,0x88,0xc1,0x01,0x80,0x20,0x18,0x4c,0xb1,0x90,0x07,
- 0x62,0x10,0x8c,0x26,0x04,0xc0,0x68,0x82,0x10,0x8c,0x26,0x0c,0xc2,0x68,0x02,0x31,
- 0x94,0x31,0x0b,0x3b,0x62,0x70,0x00,0x20,0x08,0x06,0xd3,0x2d,0xfc,0x01,0x1a,0x04,
- 0xa3,0x09,0x01,0x30,0x9a,0x20,0x04,0xa3,0x09,0x83,0x30,0x9a,0x40,0x0c,0x66,0xe4,
- 0x02,0x08,0x46,0x0c,0x0e,0x00,0x04,0xc1,0x60,0xea,0x85,0x52,0x70,0x83,0x60,0x34,
- 0x21,0x00,0x46,0x13,0x84,0x60,0x34,0x61,0x10,0x46,0x13,0x88,0xa1,0x24,0x52,0xd8,
- 0x11,0x83,0x03,0x00,0x41,0x30,0x98,0xc6,0x61,0x15,0xe8,0x20,0x18,0x4d,0x08,0x80,
- 0xd1,0x04,0x21,0x18,0x4d,0x18,0x84,0xd1,0x04,0x62,0x30,0x6b,0x93,0xcf,0x88,0x01,
- 0x02,0x80,0x20,0x18,0x54,0xe8,0x20,0x0b,0xd1,0x16,0x8c,0x18,0x20,0x00,0x08,0x82,
- 0x41,0x95,0x0e,0xb3,0xc0,0x6c,0x81,0x05,0x07,0x74,0x2c,0xfb,0xe4,0x33,0x62,0x80,
- 0x00,0x20,0x08,0x06,0x15,0x3b,0xd8,0x02,0xf5,0x05,0x23,0x06,0x08,0x00,0x82,0x60,
- 0x50,0xb5,0xc3,0x2d,0x3c,0x5f,0x60,0x81,0x02,0x1d,0xe3,0xc6,0x40,0x3e,0x23,0x06,
- 0x08,0x00,0x82,0x60,0x50,0xc1,0x83,0x2e,0x5c,0x63,0x10,0x8c,0x18,0x20,0x00,0x08,
- 0x82,0x41,0x15,0x0f,0xbb,0x20,0x8d,0x41,0x60,0x41,0x03,0x1d,0xfb,0xce,0x40,0x3e,
- 0x23,0x06,0x08,0x00,0x82,0x60,0x50,0xd1,0x83,0x2f,0x68,0x67,0x10,0x8c,0x18,0x20,
- 0x00,0x08,0x82,0x41,0x55,0x0f,0xbf,0x50,0x9d,0x41,0x60,0x01,0x04,0x1d,0x6b,0xf0,
- 0x40,0x3e,0xa6,0xe4,0x81,0x7c,0xec,0xd0,0x03,0xf9,0x18,0xb1,0x07,0xf2,0xa9,0x3b,
- 0x88,0x87,0x1b,0x31,0x38,0x00,0x10,0x04,0x83,0xa9,0x1f,0xca,0xc1,0x15,0x82,0xd1,
- 0x84,0x00,0x18,0x4d,0x10,0x82,0xd1,0x84,0x41,0x18,0x4d,0x20,0x86,0x32,0xfe,0x61,
- 0x47,0x0c,0x0e,0x00,0x04,0xc1,0x60,0x1a,0x89,0x75,0xa0,0x85,0x60,0x34,0x21,0x00,
- 0x46,0x13,0x84,0x60,0x34,0x61,0x10,0x46,0x13,0x88,0xc1,0x8c,0x92,0x00,0xc1,0x88,
- 0xc1,0x01,0x80,0x20,0x18,0x4c,0x29,0x11,0x0f,0xba,0x10,0x8c,0x26,0x04,0xc0,0x68,
- 0x82,0x10,0x8c,0x26,0x0c,0xc2,0x68,0x02,0x31,0x94,0x04,0x0f,0x3b,0x62,0x70,0x00,
- 0x20,0x08,0x06,0xd3,0x4b,0xdc,0x03,0x38,0x04,0xa3,0x09,0x01,0x30,0x9a,0x20,0x04,
- 0xa3,0x09,0x83,0x30,0x9a,0x40,0x0c,0x66,0x9d,0x82,0x7c,0x46,0x0c,0x10,0x00,0x04,
- 0xc1,0xa0,0xa2,0x09,0x7f,0x88,0x4e,0x21,0x18,0x31,0x40,0x00,0x10,0x04,0x83,0xaa,
- 0x26,0xfe,0x81,0x39,0x85,0xc0,0x82,0x03,0x3a,0x96,0xad,0x82,0x7c,0x46,0x0c,0x10,
- 0x00,0x04,0xc1,0xa0,0xc2,0x09,0x91,0xa0,0x56,0x21,0x18,0x31,0x40,0x00,0x10,0x04,
- 0x83,0x2a,0x27,0x46,0xe2,0x59,0x85,0xc0,0x02,0x05,0x3a,0xc6,0xbd,0x82,0x7c,0x46,
- 0x0c,0x10,0x00,0x04,0xc1,0xa0,0xe2,0x09,0x93,0xb8,0x5e,0x21,0x18,0x31,0x40,0x00,
- 0x10,0x04,0x83,0xaa,0x27,0x4e,0x42,0x7a,0x85,0xc0,0x82,0x06,0x3a,0xf6,0xcd,0x82,
- 0x7c,0x46,0x0c,0x10,0x00,0x04,0xc1,0xa0,0x02,0x0b,0x95,0xd0,0x66,0x21,0x18,0x31,
- 0x40,0x00,0x10,0x04,0x83,0x2a,0x2c,0x56,0xa2,0x9a,0x85,0xc0,0x02,0x08,0x3a,0xd6,
- 0x8c,0x83,0x7c,0x4c,0x21,0x07,0xf9,0xd8,0x51,0x0e,0xf2,0x31,0xc2,0x1c,0xe4,0x63,
- 0x04,0x1c,0xc0,0xc7,0x08,0x38,0x80,0x8f,0x11,0x70,0x00,0x1f,0x23,0xe0,0x00,0x3e,
- 0x65,0x0e,0x61,0x71,0x23,0x06,0x07,0x00,0x82,0x60,0x30,0xb5,0x45,0x4d,0xf8,0x43,
- 0x30,0x9a,0x10,0x00,0xa3,0x09,0x42,0x30,0x9a,0x30,0x08,0xa3,0x09,0xc4,0x50,0xc6,
- 0x5b,0xec,0x88,0xc1,0x01,0x80,0x20,0x18,0x4c,0x73,0xb1,0x13,0x24,0x11,0x8c,0x26,
- 0x04,0xc0,0x68,0x82,0x10,0x8c,0x26,0x0c,0xc2,0x68,0x02,0x31,0x98,0x51,0x17,0x20,
- 0x18,0x31,0x38,0x00,0x10,0x04,0x83,0x29,0x2f,0xc2,0x42,0x25,0x82,0xd1,0x84,0x00,
- 0x18,0x4d,0x10,0x82,0xd1,0x84,0x41,0x18,0x4d,0x20,0x86,0x92,0xc0,0x62,0x47,0x0c,
- 0x0e,0x00,0x04,0xc1,0x60,0xfa,0x8b,0xb3,0x80,0x89,0x60,0x34,0x21,0x00,0x46,0x13,
- 0x84,0x60,0x34,0x61,0x10,0x46,0x13,0x88,0xc1,0xac,0x7b,0x90,0xcf,0x88,0x01,0x02,
- 0x80,0x20,0x18,0x54,0xa4,0xe1,0x16,0xd1,0x3d,0x04,0x23,0x06,0x08,0x00,0x82,0x60,
- 0x50,0x95,0xc6,0x5b,0x30,0xf7,0x10,0x58,0x70,0x40,0xc7,0xb2,0x7d,0x90,0xcf,0x88,
- 0x01,0x02,0x80,0x20,0x18,0x54,0xa8,0x21,0x17,0xd4,0x3e,0x04,0x23,0x06,0x08,0x00,
- 0x82,0x60,0x50,0xa5,0xc6,0x5c,0x3c,0xfb,0x10,0x58,0xa0,0x40,0xc7,0xb8,0x7f,0x90,
- 0xcf,0x88,0x01,0x02,0x80,0x20,0x18,0x54,0xac,0x61,0x17,0xd7,0x3f,0x04,0x23,0x06,
- 0x08,0x00,0x82,0x60,0x50,0xb5,0xc6,0x5d,0x48,0xff,0x10,0x58,0xd0,0x40,0xc7,0xbe,
- 0x91,0x90,0xcf,0x88,0x01,0x02,0x80,0x20,0x18,0x54,0xb0,0xa1,0x17,0xda,0x48,0x04,
- 0x23,0x06,0x08,0x00,0x82,0x60,0x50,0xc5,0xc6,0x5e,0x54,0x23,0x11,0x58,0x00,0x41,
- 0xc7,0x1a,0x99,0x90,0x8f,0x29,0x33,0x21,0x1f,0x3b,0x68,0x42,0x3e,0x46,0xd4,0x84,
- 0x7c,0x0c,0x0e,0x08,0xf8,0x18,0x1c,0x10,0xf0,0x31,0x38,0x20,0xe0,0x63,0x70,0x40,
- 0xc0,0xa7,0x6a,0x22,0x36,0x6e,0xc4,0xe0,0x00,0x40,0x10,0x0c,0xa6,0xde,0x28,0x0d,
- 0xb7,0x08,0x46,0x13,0x02,0x60,0x34,0x41,0x08,0x46,0x13,0x06,0x61,0x34,0x81,0x18,
- 0xca,0xf8,0x8d,0x1d,0x31,0x38,0x00,0x10,0x04,0x83,0x69,0x3c,0x56,0x83,0x2e,0x82,
- 0xd1,0x84,0x00,0x18,0x4d,0x10,0x82,0xd1,0x84,0x41,0x18,0x4d,0x20,0x06,0x33,0xca,
- 0x03,0x04,0x23,0x06,0x07,0x00,0x82,0x60,0x30,0xa5,0x47,0x6c,0xe8,0x45,0x30,0x9a,
- 0x10,0x00,0xa3,0x09,0x42,0x30,0x9a,0x30,0x08,0xa3,0x09,0xc4,0x50,0x12,0x6c,0xec,
- 0x88,0xc1,0x01,0x80,0x20,0x18,0x4c,0xef,0x71,0x1b,0xa0,0x11,0x8c,0x26,0x04,0xc0,
- 0x68,0x82,0x10,0x8c,0x26,0x0c,0xc2,0x68,0x02,0x31,0x98,0x75,0x16,0xf2,0x19,0x31,
- 0x40,0x00,0x10,0x04,0x83,0x8a,0x3e,0x7c,0x23,0x3a,0x8b,0x60,0xc4,0x00,0x01,0x40,
- 0x10,0x0c,0xaa,0xfa,0xf8,0x0d,0xe6,0x2c,0x02,0x0b,0x0e,0xe8,0x58,0xb6,0x16,0xf2,
- 0x19,0x31,0x40,0x00,0x10,0x04,0x83,0x0a,0x3f,0xc4,0x83,0x5a,0x8b,0x60,0xc4,0x00,
- 0x01,0x40,0x10,0x0c,0xaa,0xfc,0x18,0x8f,0x67,0x2d,0x02,0x0b,0x14,0xe8,0x18,0xf7,
- 0x16,0xf2,0x19,0x31,0x40,0x00,0x10,0x04,0x83,0x8a,0x3f,0xcc,0xe3,0x7a,0x8b,0x60,
- 0xc4,0x00,0x01,0x40,0x10,0x0c,0xaa,0xfe,0x38,0x0f,0xe9,0x2d,0x02,0x0b,0x1a,0xe8,
- 0xd8,0x37,0x17,0xf2,0x19,0x31,0x40,0x00,0x10,0x04,0x83,0x0a,0x44,0xd4,0x43,0x9b,
- 0x8b,0x60,0xc4,0x00,0x01,0x40,0x10,0x0c,0xaa,0x10,0x59,0x8f,0x6a,0x2e,0x02,0x0b,
- 0x20,0xe8,0x58,0x13,0x1a,0xf2,0x31,0x45,0x34,0xe4,0x63,0xc7,0x68,0xc8,0xc7,0x08,
- 0xd2,0x90,0x8f,0xc1,0x01,0x01,0x1f,0x83,0x03,0x02,0x3e,0x06,0x07,0x04,0x7c,0x0c,
- 0x0e,0x08,0xf8,0xec,0x71,0xd8,0x0d,0x14,0x41,0x91,0x61,0x03,0x22,0xd8,0x8b,0x01,
- 0xd8,0xe3,0xc0,0x1b,0x29,0xa2,0x22,0xc3,0x06,0x44,0xb0,0x17,0x03,0xb0,0xc7,0xa1,
- 0x37,0x54,0x64,0x44,0x86,0x0d,0x88,0x60,0x2f,0x06,0x60,0x8f,0x83,0x6f,0xac,0x88,
- 0x89,0x0c,0x1b,0x10,0xc1,0x5e,0x0c,0xc0,0x1e,0x87,0xdf,0x60,0x11,0xfa,0xa0,0x60,
- 0x18,0xc3,0x06,0x84,0xa1,0x17,0x03,0x30,0x6c,0x40,0x14,0x79,0x31,0x00,0xc3,0x06,
- 0x04,0x81,0x17,0x03,0x30,0x6c,0x40,0x0c,0x77,0x31,0x00,0x24,0x0c,0x63,0xd8,0x80,
- 0x38,0xea,0x62,0x00,0x86,0x0d,0x08,0x83,0x2e,0x06,0x60,0xd8,0x80,0x28,0xe6,0x62,
- 0x00,0x86,0x0d,0x08,0x42,0x2e,0x06,0x80,0x86,0x61,0xec,0x71,0x10,0x0f,0x18,0x81,
- 0x91,0x61,0x03,0x22,0x18,0x8d,0x01,0xd8,0xe3,0x30,0x1e,0x31,0x22,0x23,0xc3,0x06,
- 0x44,0x30,0x1a,0x03,0xb0,0xc7,0x81,0x3c,0x64,0x64,0x45,0x86,0x0d,0x88,0x60,0x34,
- 0x06,0x60,0x8f,0x43,0x79,0xcc,0x88,0x8b,0x0c,0x1b,0x10,0xc1,0x68,0x0c,0xc0,0x1e,
- 0x07,0xf3,0xa0,0x91,0xfe,0xa0,0x60,0x18,0xc3,0x06,0x84,0x21,0x1a,0x03,0x30,0x6c,
- 0x40,0x14,0xa1,0x31,0x00,0xc3,0x06,0x04,0x01,0x1a,0x03,0x30,0x6c,0x40,0x0c,0x7f,
- 0x31,0x00,0x24,0x0c,0x63,0xd8,0x80,0x38,0xfa,0x62,0x00,0x86,0x0d,0x08,0x83,0x2f,
- 0x06,0x60,0xd8,0x80,0x28,0xf6,0x62,0x00,0x86,0x0d,0x08,0x42,0x2f,0x06,0x80,0x86,
- 0x61,0xec,0x71,0x48,0x0f,0x1c,0xc1,0x91,0x61,0x03,0x22,0x58,0x8d,0x01,0xd8,0xe3,
- 0xa0,0x1e,0x39,0xa2,0x23,0xc3,0x06,0x44,0xb0,0x1a,0x03,0xb0,0xc7,0x61,0x3d,0x74,
- 0x64,0x46,0x86,0x0d,0x88,0x60,0x35,0x06,0x60,0x8f,0x03,0x7b,0xec,0x88,0x8d,0x0c,
- 0x1b,0x10,0xc1,0x6a,0x0c,0xc0,0x1e,0x87,0xf6,0xe0,0x91,0x11,0xa1,0x60,0x18,0xc3,
- 0x06,0x84,0xa1,0x1a,0x03,0x30,0x6c,0x40,0x14,0xa9,0x31,0x00,0xc3,0x06,0x04,0x81,
- 0x1a,0x03,0x30,0x6c,0x40,0x0c,0xa7,0x31,0x00,0x24,0x0c,0x63,0xd8,0x80,0x38,0x4a,
- 0x63,0x00,0x86,0x0d,0x08,0x83,0x34,0x06,0x60,0xd8,0x80,0x28,0x46,0x63,0x00,0x86,
- 0x0d,0x08,0x42,0x34,0x06,0x80,0x86,0x61,0xd8,0xa4,0x1b,0xf2,0x19,0x31,0x40,0x00,
- 0x10,0x04,0x83,0x8a,0x4c,0x5c,0x64,0xd2,0x8d,0x60,0xc4,0x00,0x01,0x40,0x10,0x0c,
- 0xaa,0x32,0x79,0x91,0x49,0x37,0x02,0x73,0x7a,0x43,0x3e,0x23,0x06,0x08,0x00,0x82,
- 0x60,0x50,0x9d,0x49,0x8c,0x38,0xbd,0x11,0x8c,0x18,0x20,0x00,0x08,0x82,0x41,0x85,
- 0x26,0x32,0xe2,0xf4,0x46,0x60,0x09,0x78,0xc8,0x67,0xc4,0x00,0x01,0x40,0x10,0x0c,
- 0x2a,0x35,0xa1,0x91,0x04,0x3c,0x82,0x11,0x03,0x04,0x00,0x41,0x30,0xa8,0xd6,0xa4,
- 0x46,0x12,0xf0,0x08,0xec,0x68,0x0f,0xf9,0x58,0xe1,0x1e,0xf2,0xb1,0xe1,0x3d,0xe4,
- 0xb3,0xc7,0x81,0x3f,0xd8,0x84,0x4d,0x86,0x0d,0x88,0x60,0x2e,0x06,0x60,0x8f,0x43,
- 0x7f,0xb4,0x89,0x9b,0x0c,0x1b,0x10,0xc1,0x5c,0x0c,0xc0,0x1e,0x07,0xff,0x70,0x93,
- 0x33,0x19,0x36,0x20,0x82,0xb9,0x18,0x80,0x3d,0x0e,0xff,0xf1,0x26,0x6a,0x32,0x6c,
- 0x40,0x04,0x73,0x31,0x00,0x7b,0x1c,0x40,0x04,0x4e,0x70,0x84,0x82,0x61,0x0c,0x1b,
- 0x10,0x86,0x5c,0x0c,0xc0,0xb0,0x01,0x51,0xc4,0xc5,0x00,0x0c,0x1b,0x10,0x04,0x5c,
- 0x0c,0xc0,0xb0,0x01,0x31,0xbc,0xc5,0x00,0x90,0x30,0x8c,0x61,0x03,0xe2,0x68,0x8b,
- 0x01,0x18,0x36,0x20,0x0c,0xb6,0x18,0x80,0x61,0x03,0xa2,0x58,0x8b,0x01,0x18,0x36,
- 0x20,0x08,0xb5,0x18,0x00,0x1a,0x86,0xb1,0xc7,0x61,0x44,0xe8,0x84,0x4e,0x86,0x0d,
- 0x88,0x60,0x2f,0x06,0x60,0x8f,0x03,0x89,0xd4,0x89,0x9d,0x0c,0x1b,0x10,0xc1,0x5e,
- 0x0c,0xc0,0x1e,0x87,0x12,0xb1,0x93,0x37,0x19,0x36,0x20,0x82,0xbd,0x18,0x80,0x3d,
- 0x0e,0x26,0x72,0x27,0x72,0x32,0x6c,0x40,0x04,0x7b,0x31,0x00,0x7b,0x1c,0x4e,0x04,
- 0x4f,0xc2,0x84,0x82,0x61,0x0c,0x1b,0x10,0x86,0x5e,0x0c,0xc0,0xb0,0x01,0x51,0xe4,
- 0xc5,0x00,0x0c,0x1b,0x10,0x04,0x5e,0x0c,0xc0,0xb0,0x01,0x31,0xdc,0xc5,0x00,0x90,
- 0x30,0x8c,0x61,0x03,0xe2,0xa8,0x8b,0x01,0x18,0x36,0x20,0x0c,0xba,0x18,0x80,0x61,
- 0x03,0xa2,0x98,0x8b,0x01,0x18,0x36,0x20,0x08,0xb9,0x18,0x00,0x1a,0x86,0xb1,0xc7,
- 0x41,0x45,0xf8,0x84,0x4f,0x86,0x0d,0x88,0x60,0x34,0x06,0x60,0x8f,0xc3,0x8a,0xf4,
- 0x89,0x9f,0x0c,0x1b,0x10,0xc1,0x68,0x0c,0xc0,0x1e,0x07,0x16,0xf1,0x93,0x3b,0x19,
- 0x36,0x20,0x82,0xd1,0x18,0x80,0x3d,0x0e,0x2d,0xf2,0x27,0x7a,0x32,0x6c,0x40,0x04,
- 0xa3,0x31,0x00,0x7b,0x1c,0x5c,0x04,0x54,0xce,0x84,0x82,0x61,0x0c,0x1b,0x10,0x86,
- 0x68,0x0c,0xc0,0xb0,0x01,0x51,0x84,0xc6,0x00,0x0c,0x1b,0x10,0x04,0x68,0x0c,0xc0,
- 0xb0,0x01,0x31,0xfc,0xc5,0x00,0x90,0x30,0x8c,0x61,0x03,0xe2,0xe8,0x8b,0x01,0x18,
- 0x36,0x20,0x0c,0xbe,0x18,0x80,0x61,0x03,0xa2,0xd8,0x8b,0x01,0x18,0x36,0x20,0x08,
- 0xbd,0x18,0x00,0x1a,0x86,0x61,0x93,0x7f,0xc8,0x67,0xc4,0x00,0x01,0x40,0x10,0x0c,
- 0x2a,0x54,0x91,0x93,0xc9,0x3f,0x82,0x11,0x03,0x04,0x00,0x41,0x30,0xa8,0x52,0x65,
- 0x4e,0x26,0xff,0x08,0xcc,0x09,0x11,0xf9,0x8c,0x18,0x20,0x00,0x08,0x82,0x41,0xb5,
- 0x2a,0x75,0xe2,0x84,0x48,0x30,0x62,0x80,0x00,0x20,0x08,0x06,0x15,0xab,0xd8,0x89,
- 0x13,0x22,0x81,0x25,0x24,0x22,0x9f,0x11,0x03,0x04,0x00,0x41,0x30,0xa8,0x5c,0x05,
- 0x4f,0x12,0x12,0x09,0x46,0x0c,0x10,0x00,0x04,0xc1,0xa0,0x7a,0x95,0x3c,0x49,0x48,
- 0x24,0xb0,0x03,0x46,0xe4,0x63,0x45,0x8c,0xc8,0xc7,0x06,0x19,0x91,0x8f,0x0d,0x67,
- 0x00,0x1f,0x1b,0xce,0x00,0x3e,0x36,0x9c,0x01,0x7c,0xf6,0x38,0x80,0xc9,0xac,0xcc,
- 0xca,0xb0,0x01,0x11,0xa8,0xc5,0x00,0xec,0x71,0x08,0x13,0x5a,0xa9,0x95,0x61,0x03,
- 0x22,0x50,0x8b,0x01,0xd8,0xe3,0x20,0x26,0xb5,0xe2,0x2a,0xc3,0x06,0x44,0xa0,0x16,
- 0x03,0xb0,0xc7,0x61,0x4c,0x6c,0x25,0x56,0x86,0x0d,0x88,0x40,0x2d,0x06,0x60,0x8f,
- 0x03,0x99,0xdc,0xca,0x9f,0x50,0x30,0x8c,0x61,0x03,0xc2,0x48,0x8b,0x01,0x18,0x36,
- 0x20,0x0a,0xb4,0x18,0x80,0x61,0x03,0x82,0x38,0x8b,0x01,0x18,0x36,0x20,0x06,0xb3,
- 0x18,0x00,0x12,0x86,0x31,0x6c,0x40,0x1c,0x64,0x31,0x00,0xc3,0x06,0x84,0x31,0x16,
- 0x03,0x30,0x6c,0x40,0x14,0x62,0x31,0x00,0xc3,0x06,0x04,0x11,0x16,0x03,0x40,0xc3,
- 0x30,0xf6,0x38,0x9c,0xc9,0xae,0xec,0xca,0xb0,0x01,0x11,0xc8,0xc5,0x00,0xec,0x71,
- 0x40,0x13,0x5e,0xe9,0x95,0x61,0x03,0x22,0x90,0x8b,0x01,0xd8,0xe3,0x90,0x26,0xbd,
- 0x62,0x2b,0xc3,0x06,0x44,0x20,0x17,0x03,0xb0,0xc7,0x41,0x4d,0x7c,0x25,0x57,0x86,
- 0x0d,0x88,0x40,0x2e,0x06,0x60,0x8f,0xc3,0x9a,0xfc,0x0a,0xaa,0x50,0x30,0x8c,0x61,
- 0x03,0xc2,0x88,0x8b,0x01,0x18,0x36,0x20,0x0a,0xb8,0x18,0x80,0x61,0x03,0x82,0x78,
- 0x8b,0x01,0x18,0x36,0x20,0x06,0xb7,0x18,0x00,0x12,0x86,0x31,0x6c,0x40,0x1c,0x6c,
- 0x31,0x00,0xc3,0x06,0x84,0xb1,0x16,0x03,0x30,0x6c,0x40,0x14,0x6a,0x31,0x00,0xc3,
- 0x06,0x04,0x91,0x16,0x03,0x40,0xc3,0x30,0xf6,0x38,0xb8,0xc9,0xb8,0x8c,0xcb,0xb0,
- 0x01,0x11,0xe8,0xc5,0x00,0xec,0x71,0x78,0x13,0x72,0x29,0x97,0x61,0x03,0x22,0xd0,
- 0x8b,0x01,0xd8,0xe3,0x00,0x27,0xe5,0xe2,0x2b,0xc3,0x06,0x44,0xa0,0x17,0x03,0xb0,
- 0xc7,0x21,0x4e,0xcc,0x25,0x5c,0x86,0x0d,0x88,0x40,0x2f,0x06,0x60,0x8f,0x83,0x9c,
- 0x9c,0x8b,0xab,0x50,0x30,0x8c,0x61,0x03,0xc2,0xc8,0x8b,0x01,0x18,0x36,0x20,0x0a,
- 0xbc,0x18,0x80,0x61,0x03,0x82,0xb8,0x8b,0x01,0x18,0x36,0x20,0x06,0xbb,0x18,0x00,
- 0x12,0x86,0x31,0x6c,0x40,0x1c,0x74,0x31,0x00,0xc3,0x06,0x84,0x31,0x17,0x03,0x30,
- 0x6c,0x40,0x14,0x72,0x31,0x00,0xc3,0x06,0x04,0x11,0x17,0x03,0x40,0xc3,0x30,0x6c,
- 0x2a,0x13,0xf9,0x8c,0x18,0x20,0x00,0x08,0x82,0x41,0xf5,0x2e,0xb9,0x32,0x95,0x49,
- 0x30,0x62,0x80,0x00,0x20,0x08,0x06,0x15,0xbc,0xe8,0xca,0x54,0x26,0x81,0x39,0x68,
- 0x22,0x9f,0x11,0x03,0x04,0x00,0x41,0x30,0xa8,0xe4,0x85,0x57,0x1c,0x34,0x09,0x46,
- 0x0c,0x10,0x00,0x04,0xc1,0xa0,0x9a,0x97,0x5e,0x71,0xd0,0x24,0xb0,0x64,0x4d,0xe4,
- 0x33,0x62,0x80,0x00,0x20,0x08,0x06,0x55,0xbd,0xfc,0x4a,0xb2,0x26,0xc1,0x88,0x01,
- 0x02,0x80,0x20,0x18,0x54,0xf6,0x02,0x2e,0xc9,0x9a,0x04,0x76,0xd8,0x89,0x7c,0xac,
- 0xb8,0x13,0xf9,0xd8,0x80,0x27,0xf2,0xb1,0x33,0x18,0xe0,0x63,0x67,0x30,0xc0,0xc7,
- 0xce,0x60,0x80,0xcf,0x1e,0x07,0x52,0xd1,0x17,0x7d,0x19,0x36,0x20,0x82,0xb0,0x18,
- 0x80,0x3d,0x0e,0xa5,0xb2,0x2f,0xfc,0x32,0x6c,0x40,0x04,0x61,0x31,0x00,0x7b,0x1c,
- 0x4c,0x85,0x5f,0xea,0x65,0xd8,0x80,0x08,0xc2,0x62,0x00,0xf6,0x38,0x9c,0x4a,0xbf,
- 0xe0,0xcb,0xb0,0x01,0x11,0x84,0xc5,0x00,0xec,0x71,0x40,0x15,0x7f,0x31,0x17,0x0a,
- 0x86,0x31,0x6c,0x40,0x18,0x60,0x31,0x00,0xc3,0x06,0x44,0xf1,0x13,0x03,0x30,0x6c,
- 0x40,0x10,0x3e,0x31,0x00,0xc3,0x06,0xc4,0xd0,0x13,0x03,0x40,0xc2,0x30,0x86,0x0d,
- 0x88,0x63,0x27,0x06,0x60,0xd8,0x80,0x30,0x74,0x62,0x00,0x86,0x0d,0x88,0x22,0x27,
- 0x06,0x60,0xd8,0x80,0x20,0x70,0x62,0x00,0x68,0x18,0xc6,0x1e,0x87,0x55,0x11,0x19,
- 0x91,0x19,0x36,0x20,0x82,0xb4,0x18,0x80,0x3d,0x0e,0xac,0x32,0x32,0x24,0x33,0x6c,
- 0x40,0x04,0x69,0x31,0x00,0x7b,0x1c,0x5a,0x85,0x64,0xfa,0x65,0xd8,0x80,0x08,0xd2,
- 0x62,0x00,0xf6,0x38,0xb8,0x4a,0xc9,0x80,0xcc,0xb0,0x01,0x11,0xa4,0xc5,0x00,0xec,
- 0x71,0x78,0x15,0x93,0x79,0x17,0x0a,0x86,0x31,0x6c,0x40,0x18,0x68,0x31,0x00,0xc3,
- 0x06,0x44,0x71,0x16,0x03,0x30,0x6c,0x40,0x10,0x66,0x31,0x00,0xc3,0x06,0xc4,0x50,
- 0x16,0x03,0x40,0xc2,0x30,0x86,0x0d,0x88,0x63,0x2c,0x06,0x60,0xd8,0x80,0x30,0xc4,
- 0x62,0x00,0x86,0x0d,0x88,0x22,0x2c,0x06,0x60,0xd8,0x80,0x20,0xc0,0x62,0x00,0x68,
- 0x18,0xc6,0x1e,0x07,0x59,0x51,0x19,0x95,0x19,0x36,0x20,0x82,0xb8,0x18,0x80,0x3d,
- 0x0e,0xb3,0xb2,0x32,0x2c,0x33,0x6c,0x40,0x04,0x71,0x31,0x00,0x7b,0x1c,0x68,0x85,
- 0x65,0x4a,0x66,0xd8,0x80,0x08,0xe2,0x62,0x00,0xf6,0x38,0xd4,0x4a,0xcb,0xa0,0xcc,
- 0xb0,0x01,0x11,0xc4,0xc5,0x00,0xec,0x71,0xb0,0x15,0x97,0xa9,0x17,0x0a,0x86,0x31,
- 0x6c,0x40,0x18,0x70,0x31,0x00,0xc3,0x06,0x44,0xf1,0x16,0x03,0x30,0x6c,0x40,0x10,
- 0x6e,0x31,0x00,0xc3,0x06,0xc4,0xd0,0x16,0x03,0x40,0xc2,0x30,0x86,0x0d,0x88,0x63,
- 0x2d,0x06,0x60,0xd8,0x80,0x30,0xd4,0x62,0x00,0x86,0x0d,0x88,0x22,0x2d,0x06,0x60,
- 0xd8,0x80,0x20,0xd0,0x62,0x00,0x68,0x18,0x86,0x4d,0xac,0x22,0x9f,0x11,0x03,0x04,
- 0x00,0x41,0x30,0xa8,0x6c,0x06,0x64,0x26,0x56,0x09,0x46,0x0c,0x10,0x00,0x04,0xc1,
- 0xa0,0xba,0x99,0x90,0x99,0x58,0x25,0x30,0xe7,0x55,0xe4,0x33,0x62,0x80,0x00,0x20,
- 0x08,0x06,0x55,0xce,0x8c,0x8c,0xf3,0x2a,0xc1,0x88,0x01,0x02,0x80,0x20,0x18,0x54,
- 0x3a,0x43,0x32,0xce,0xab,0x04,0x96,0xc8,0x8a,0x7c,0x46,0x0c,0x10,0x00,0x04,0xc1,
- 0xa0,0xe2,0x19,0x93,0x49,0x64,0x25,0x18,0x31,0x40,0x00,0x10,0x04,0x83,0xaa,0x67,
- 0x4e,0x26,0x91,0x95,0xc0,0x0e,0x5e,0x91,0x8f,0x15,0xbd,0x22,0x1f,0x1b,0x7c,0x45,
- 0x3e,0x76,0x06,0x03,0x7c,0xec,0x0c,0x06,0xf8,0xd8,0x19,0x0c,0xf0,0x19,0x31,0x38,
- 0x00,0x10,0x04,0x83,0xa9,0x6c,0x5a,0xa6,0x5e,0x4a,0x66,0x34,0x21,0x00,0x46,0x13,
- 0x84,0x60,0x34,0x61,0x10,0x46,0x13,0x88,0x61,0x8f,0x43,0xbb,0x98,0x8d,0xd9,0x0c,
- 0x1b,0x10,0x41,0x31,0x00,0x7b,0x1c,0xdc,0xe5,0x6c,0xd0,0x66,0xd8,0x80,0x08,0x8a,
- 0x01,0xd8,0xe3,0xf0,0x2e,0x68,0x13,0x36,0xc3,0x06,0x44,0x50,0x0c,0xc0,0x1e,0x07,
- 0x78,0x49,0x1b,0xb2,0x19,0x36,0x20,0x82,0x62,0x00,0xf6,0x38,0xc4,0x8b,0xda,0xc8,
- 0x0c,0x05,0xc3,0x18,0x31,0x38,0x00,0x10,0x04,0x83,0x09,0x6e,0x70,0x06,0x64,0x5e,
- 0x66,0x34,0x21,0x00,0x46,0x13,0x84,0x60,0x34,0x61,0x10,0x46,0x13,0x88,0x61,0xd8,
- 0x80,0x58,0x88,0x01,0x18,0x36,0x20,0x94,0x61,0x00,0x86,0x0d,0x88,0x44,0x18,0x80,
- 0x61,0x03,0x02,0x09,0x06,0x80,0x8e,0x61,0x8c,0x18,0x1c,0x00,0x08,0x82,0xc1,0x64,
- 0x37,0x3e,0x63,0x32,0x2e,0x33,0x9a,0x10,0x00,0xa3,0x09,0x42,0x30,0x9a,0x30,0x08,
- 0xa3,0x09,0xc4,0x30,0x6c,0x40,0x44,0xc4,0x00,0x0c,0x1b,0x10,0xd0,0x30,0x00,0xc3,
- 0x06,0xc4,0x23,0x0c,0xc0,0xb0,0x01,0xe1,0x04,0x03,0x40,0xcd,0x30,0xf6,0x38,0xf8,
- 0x0b,0xde,0xe0,0xcd,0xb0,0x01,0x11,0x5c,0x03,0xb0,0xc7,0xe1,0x5f,0xf2,0x46,0x6f,
- 0x86,0x0d,0x88,0xe0,0x1a,0x80,0x3d,0x0e,0x20,0xa3,0x37,0x73,0x33,0x6c,0x40,0x04,
- 0xd7,0x00,0xec,0x71,0x08,0x99,0xbd,0xb1,0x9b,0x61,0x03,0x22,0xb8,0x06,0x60,0x8f,
- 0x83,0xc8,0xf0,0x4d,0xd9,0x50,0x30,0x8c,0x61,0x03,0xc2,0x88,0x06,0x60,0xd8,0x80,
- 0x28,0xa0,0x01,0x18,0x36,0x20,0x88,0x67,0x00,0x86,0x0d,0x88,0xc1,0x19,0x00,0x12,
- 0x86,0x31,0x6c,0x40,0x1c,0xcc,0x00,0x0c,0x1b,0x10,0xc6,0x32,0x00,0xc3,0x06,0x44,
- 0xa1,0x0c,0xc0,0xb0,0x01,0x41,0x24,0x03,0x40,0xc3,0x30,0xf6,0x38,0x94,0x0c,0xe8,
- 0x80,0xce,0xb0,0x01,0x11,0x7c,0x03,0xb0,0xc7,0xc1,0x64,0x42,0x47,0x74,0x86,0x0d,
- 0x88,0xe0,0x1b,0x80,0x3d,0x0e,0x27,0x23,0x3a,0x7b,0x33,0x6c,0x40,0x04,0xdf,0x00,
- 0xec,0x71,0x40,0x99,0xd1,0xf1,0x9b,0x61,0x03,0x22,0xf8,0x06,0x60,0x8f,0x43,0xca,
- 0x90,0xce,0xda,0x50,0x30,0x8c,0x61,0x03,0xc2,0xc8,0x06,0x60,0xd8,0x80,0x28,0xb0,
- 0x01,0x18,0x36,0x20,0x88,0x6b,0x00,0x86,0x0d,0x88,0xc1,0x1a,0x00,0x12,0x86,0x31,
- 0x6c,0x40,0x1c,0xd4,0x00,0x0c,0x1b,0x10,0xc6,0x34,0x00,0xc3,0x06,0x44,0x21,0x0d,
- 0xc0,0xb0,0x01,0x41,0x44,0x03,0x40,0xc3,0x30,0xac,0x53,0x03,0xf9,0x8c,0x18,0x20,
- 0x00,0x08,0x82,0x41,0xc5,0x3a,0x76,0x83,0xa9,0x41,0x30,0x62,0x80,0x00,0x20,0x08,
- 0x06,0x55,0xeb,0xdc,0xcd,0xa4,0x06,0x81,0x39,0x6d,0x20,0x9f,0x11,0x03,0x04,0x00,
- 0x41,0x30,0xa8,0x5e,0x27,0x6f,0x9c,0x36,0x08,0x46,0x0c,0x10,0x00,0x04,0xc1,0xa0,
- 0x82,0x1d,0xbd,0x71,0xda,0x20,0xb0,0x04,0x0e,0xe4,0x33,0x62,0x80,0x00,0x20,0x08,
- 0x06,0x95,0xec,0xf0,0x4d,0x02,0x07,0xc1,0x88,0x01,0x02,0x80,0x20,0x18,0x54,0xb3,
- 0xd3,0x37,0x09,0x1c,0x04,0x23,0x06,0x0b,0x00,0x82,0x60,0xc0,0xdc,0x0e,0xdb,0x1c,
- 0x44,0x70,0x10,0xc1,0x88,0x81,0x01,0x80,0x20,0x18,0x38,0xb7,0xc3,0x36,0x81,0x05,
- 0x89,0x7c,0x4c,0x38,0xe4,0x63,0x43,0x21,0x9f,0x11,0x83,0x03,0x00,0x41,0x30,0x98,
- 0x74,0x47,0x74,0xd4,0xc6,0x76,0x46,0x13,0x02,0x60,0x34,0x41,0x08,0x46,0x13,0x06,
- 0x61,0x34,0x81,0x18,0x46,0x0c,0x0e,0x00,0x04,0xc1,0x60,0xfa,0x9d,0xd3,0x79,0x1b,
- 0xd2,0x19,0x4d,0x08,0x80,0xd1,0x04,0x21,0x18,0x4d,0x18,0x84,0xd1,0x04,0x62,0x18,
- 0x31,0x38,0x00,0x10,0x04,0x83,0x89,0x7c,0x58,0x87,0x6e,0x44,0x67,0x34,0x21,0x00,
- 0x46,0x13,0x84,0x60,0x34,0x61,0x10,0x46,0x13,0x88,0x61,0xc4,0xe0,0x00,0x40,0x10,
- 0x0c,0xa6,0xf4,0x89,0x9d,0xbc,0xf1,0x9b,0xd1,0x84,0x00,0x18,0x4d,0x10,0x82,0xd1,
- 0x84,0x41,0x18,0x4d,0x20,0x06,0x9b,0xcc,0x43,0x3e,0x23,0x06,0x08,0x00,0x82,0x60,
- 0x50,0xb9,0x0f,0xee,0x3c,0xe6,0x11,0x8c,0x18,0x20,0x00,0x08,0x82,0x41,0xf5,0x3e,
- 0xb9,0xb3,0x98,0x47,0x30,0x62,0x80,0x00,0x20,0x08,0x06,0x15,0xfc,0xe8,0xce,0x61,
- 0x1e,0x81,0x59,0xea,0x21,0x9f,0x11,0x03,0x04,0x00,0x41,0x30,0xa8,0xe4,0x87,0x77,
- 0x24,0xf5,0x08,0x46,0x0c,0x10,0x00,0x04,0xc1,0xa0,0x9a,0x9f,0xde,0x71,0xd4,0x23,
- 0x18,0x31,0x40,0x00,0x10,0x04,0x83,0x8a,0x7e,0x7c,0x47,0x51,0x8f,0xc0,0x32,0xf7,
- 0x90,0xcf,0x88,0x01,0x02,0x80,0x20,0x18,0x54,0xf6,0x03,0x3e,0x95,0x7b,0x04,0x23,
- 0x06,0x08,0x00,0x82,0x60,0x50,0xdd,0x4f,0xf8,0x44,0xee,0x11,0x8c,0x18,0x20,0x00,
- 0x08,0x82,0x41,0x85,0x3f,0xe2,0xd3,0xb8,0x47,0x60,0x9c,0x7c,0xc8,0x67,0xc4,0x00,
- 0x01,0x40,0x10,0x0c,0x2a,0xfd,0x21,0x1f,0x4c,0x3e,0x82,0x11,0x03,0x04,0x00,0x41,
- 0x30,0xa8,0xf6,0xa7,0x7c,0x28,0xf9,0x08,0x46,0x0c,0x10,0x00,0x04,0xc1,0xa0,0xe2,
- 0x1f,0xf3,0x81,0xe4,0x23,0x18,0x31,0x38,0x00,0x10,0x04,0x83,0xc9,0x7f,0xcc,0xc7,
- 0x75,0x76,0x67,0x34,0x21,0x00,0x46,0x13,0x84,0x60,0x34,0x61,0x10,0x46,0x0c,0x0e,
- 0x00,0x04,0xc1,0x60,0x12,0x21,0xf5,0x91,0x1d,0xdf,0x19,0x4d,0x08,0x80,0xd1,0x04,
- 0x21,0x18,0x4d,0x18,0x84,0x11,0x83,0x03,0x00,0x41,0x30,0x98,0x4c,0xc8,0x7d,0x6c,
- 0x27,0x7c,0x46,0x13,0x02,0x60,0x34,0x41,0x08,0x46,0x13,0x06,0x61,0xc4,0xe0,0x00,
- 0x40,0x10,0x0c,0x26,0x15,0x92,0x1f,0xdd,0xf1,0x9d,0xd1,0x84,0x00,0x18,0x4d,0x10,
- 0x82,0xd1,0x84,0x41,0xb0,0xc7,0x44,0xe4,0x33,0x62,0x80,0x00,0x20,0x08,0x06,0x95,
- 0x0b,0xe1,0x0f,0x63,0x22,0xc1,0x88,0x01,0x02,0x80,0x20,0x18,0x54,0x2f,0x94,0x3f,
- 0x89,0x89,0x04,0x23,0x06,0x08,0x00,0x82,0x60,0x50,0xc1,0x90,0xfe,0x18,0x26,0x12,
- 0x98,0xa4,0x22,0xf2,0x19,0x31,0x40,0x00,0x10,0x04,0x83,0x4a,0x86,0xf8,0xe7,0x51,
- 0x91,0x60,0xc4,0x00,0x01,0x40,0x10,0x0c,0xaa,0x19,0xea,0x1f,0x46,0x45,0x82,0x11,
- 0x03,0x04,0x00,0x41,0x30,0xa8,0x68,0xc8,0x7f,0x12,0x15,0x09,0xac,0x72,0x11,0xf9,
- 0x8c,0x18,0x20,0x00,0x08,0x82,0x41,0x65,0x43,0x20,0x24,0xb9,0x48,0x30,0x62,0x80,
- 0x00,0x20,0x08,0x06,0xd5,0x0d,0x85,0xd0,0xe3,0x22,0xc1,0x88,0x01,0x02,0x80,0x20,
- 0x18,0x54,0x38,0x24,0x42,0x8c,0x8b,0x04,0x23,0x06,0x09,0x00,0x82,0x60,0xa0,0xf4,
- 0x10,0x08,0xd9,0x90,0x0d,0xad,0x50,0x32,0x62,0x90,0x00,0x20,0x08,0x06,0x4a,0x0f,
- 0x81,0x90,0x0d,0xd9,0x50,0xfb,0x14,0x23,0x06,0x09,0x00,0x82,0x60,0xa0,0xf4,0x10,
- 0x08,0xd9,0x90,0x0d,0xa5,0x50,0x30,0x62,0x90,0x00,0x20,0x08,0x06,0x4a,0x0f,0x81,
- 0xd0,0x0d,0xd9,0xd0,0x0a,0x8d,0xc2,0x88,0x41,0x02,0x80,0x20,0x18,0x28,0x3d,0x04,
- 0x42,0x37,0x64,0x43,0xed,0x23,0x0a,0x23,0x06,0x09,0x00,0x82,0x60,0xa0,0xf4,0x10,
- 0x08,0xdd,0x90,0x0d,0xa5,0x50,0x28,0x8c,0x18,0x24,0x00,0x08,0x82,0x81,0xd2,0x43,
- 0x20,0xf4,0x42,0x36,0xb4,0x42,0xb2,0x33,0x62,0x90,0x00,0x20,0x08,0x06,0x4a,0x0f,
- 0x81,0xd0,0x0b,0xd9,0x50,0xfb,0xc4,0xce,0x88,0x41,0x02,0x80,0x20,0x18,0x28,0x3d,
- 0x04,0x42,0x31,0x64,0x43,0x2b,0x94,0x06,0x23,0x06,0x09,0x00,0x82,0x60,0xa0,0xf4,
- 0x10,0x08,0xc5,0x90,0x0d,0xb5,0x4f,0x19,0x8c,0x18,0x24,0x00,0x08,0x82,0x81,0xd2,
- 0x43,0x20,0x14,0x43,0x36,0x94,0x42,0x61,0x30,0x62,0x90,0x00,0x20,0x08,0x06,0x4a,
- 0x0f,0x81,0x50,0x0c,0xd9,0x90,0x0a,0x75,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-};
-
-static const unsigned char _vertexSkinnedMSL[] = {
- 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,
- 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,
- 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,
- 0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,
- 0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,
- 0x79,0x70,0x65,0x5f,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,0x34,0x20,
- 0x6d,0x6f,0x64,0x65,0x6c,0x56,0x69,0x65,0x77,0x50,0x72,0x6f,0x6a,0x65,0x63,0x74,
- 0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,
- 0x34,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x78,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,
- 0x69,0x78,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,
- 0x79,0x70,0x65,0x5f,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,0x34,0x20,
- 0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x31,0x32,0x38,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,
- 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x4c,0x69,0x67,0x68,0x74,0x0a,0x7b,0x0a,
- 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x6f,0x73,0x69,0x74,
- 0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x52,0x61,0x6e,
- 0x67,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,
- 0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,
- 0x20,0x63,0x6f,0x6e,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,
- 0x74,0x20,0x74,0x79,0x70,0x65,0x5f,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,
- 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x34,0x20,0x63,0x61,0x6d,0x65,0x72,0x61,0x50,0x6f,0x73,0x69,0x74,
- 0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,
- 0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x20,0x62,0x61,0x73,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x65,0x6d,0x69,0x73,0x73,0x69,
- 0x76,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x6d,
- 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x20,0x63,0x6f,0x75,0x6e,0x74,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x50,0x61,0x72,
- 0x61,0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,
- 0x34,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x38,
- 0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x68,
- 0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x38,0x5d,0x3b,0x0a,0x20,0x20,0x20,
- 0x20,0x4c,0x69,0x67,0x68,0x74,0x20,0x6c,0x69,0x67,0x68,0x74,0x73,0x5b,0x38,0x5d,
- 0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x76,0x65,0x72,
- 0x74,0x65,0x78,0x53,0x6b,0x69,0x6e,0x6e,0x65,0x64,0x5f,0x6f,0x75,0x74,0x0a,0x7b,
- 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6f,0x75,0x74,0x5f,
- 0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x20,0x5b,0x5b,
- 0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6f,0x75,0x74,0x5f,0x76,0x61,
- 0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x20,0x5b,0x5b,0x75,0x73,
- 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,
- 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x6f,0x75,0x74,0x5f,0x76,0x61,0x72,0x5f,
- 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x32,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,
- 0x28,0x6c,0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,
- 0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,
- 0x6e,0x20,0x5b,0x5b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x3b,0x0a,
- 0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x76,0x65,0x72,0x74,0x65,
- 0x78,0x53,0x6b,0x69,0x6e,0x6e,0x65,0x64,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,
- 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,
- 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,
- 0x69,0x62,0x75,0x74,0x65,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,
- 0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,
- 0x75,0x74,0x65,0x28,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x32,0x20,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x32,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,
- 0x65,0x28,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x69,0x6e,0x74,
- 0x34,0x20,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,
- 0x44,0x33,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x33,
- 0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,
- 0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x34,
- 0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x34,0x29,0x5d,
- 0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x65,0x72,0x74,0x65,0x78,0x20,0x76,0x65,
- 0x72,0x74,0x65,0x78,0x53,0x6b,0x69,0x6e,0x6e,0x65,0x64,0x5f,0x6f,0x75,0x74,0x20,
- 0x76,0x65,0x72,0x74,0x65,0x78,0x53,0x6b,0x69,0x6e,0x6e,0x65,0x64,0x28,0x76,0x65,
- 0x72,0x74,0x65,0x78,0x53,0x6b,0x69,0x6e,0x6e,0x65,0x64,0x5f,0x69,0x6e,0x20,0x69,
- 0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,
- 0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x79,0x70,0x65,0x5f,0x44,0x72,
- 0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26,0x20,0x44,0x72,0x61,0x77,
- 0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,
- 0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,
- 0x20,0x74,0x79,0x70,0x65,0x5f,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,
- 0x6d,0x73,0x26,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x29,0x0a,
- 0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x74,0x65,0x78,0x53,0x6b,0x69,0x6e,
- 0x6e,0x65,0x64,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,
- 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x31,
- 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x69,0x6e,0x2e,0x69,0x6e,0x5f,
- 0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x2c,0x20,0x31,
- 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,
- 0x5f,0x31,0x30,0x36,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x53,0x6b,0x69,0x6e,0x55,
- 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,
- 0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,
- 0x44,0x33,0x2e,0x78,0x5d,0x20,0x2a,0x20,0x5f,0x37,0x31,0x29,0x20,0x2a,0x20,0x69,
- 0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,
- 0x44,0x34,0x2e,0x78,0x29,0x20,0x2b,0x20,0x28,0x28,0x53,0x6b,0x69,0x6e,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,
- 0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x33,0x2e,0x79,0x5d,0x20,0x2a,0x20,0x5f,0x37,0x31,0x29,0x20,0x2a,0x20,0x69,0x6e,
- 0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x34,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x53,0x6b,0x69,0x6e,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,
- 0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x33,0x2e,0x7a,0x5d,0x20,0x2a,0x20,0x5f,0x37,0x31,0x29,0x20,0x2a,0x20,0x69,0x6e,
- 0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x34,0x2e,0x7a,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x53,0x6b,0x69,0x6e,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,
- 0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x33,0x2e,0x77,0x5d,0x20,0x2a,0x20,0x5f,0x37,0x31,0x29,0x20,0x2a,0x20,0x69,0x6e,
- 0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x34,0x2e,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,
- 0x20,0x5f,0x31,0x36,0x33,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,
- 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x28,0x28,0x28,0x28,0x28,0x69,0x6e,0x2e,
- 0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,
- 0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x78,0x33,0x28,0x66,0x6c,0x6f,0x61,
- 0x74,0x34,0x28,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,
- 0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,
- 0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x78,0x5d,0x5b,0x30,0x5d,
- 0x5b,0x30,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,
- 0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x78,0x5d,0x5b,
- 0x31,0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,
- 0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,
- 0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x78,
- 0x5d,0x5b,0x32,0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,
- 0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,
- 0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,
- 0x2e,0x78,0x5d,0x5b,0x33,0x5d,0x5b,0x30,0x5d,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,
- 0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,
- 0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x78,
- 0x5d,0x5b,0x30,0x5d,0x5b,0x31,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,
- 0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,
- 0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,
- 0x2e,0x78,0x5d,0x5b,0x31,0x5d,0x5b,0x31,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,
- 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,
- 0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,
- 0x44,0x33,0x2e,0x78,0x5d,0x5b,0x32,0x5d,0x5b,0x31,0x5d,0x2c,0x20,0x53,0x6b,0x69,
- 0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,
- 0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,
- 0x4f,0x52,0x44,0x33,0x2e,0x78,0x5d,0x5b,0x33,0x5d,0x5b,0x31,0x5d,0x29,0x2e,0x78,
- 0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x53,0x6b,0x69,0x6e,0x55,
- 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,
- 0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,
- 0x44,0x33,0x2e,0x78,0x5d,0x5b,0x30,0x5d,0x5b,0x32,0x5d,0x2c,0x20,0x53,0x6b,0x69,
- 0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,
- 0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,
- 0x4f,0x52,0x44,0x33,0x2e,0x78,0x5d,0x5b,0x31,0x5d,0x5b,0x32,0x5d,0x2c,0x20,0x53,
- 0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,
- 0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,
- 0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x78,0x5d,0x5b,0x32,0x5d,0x5b,0x32,0x5d,0x2c,
- 0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,
- 0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,
- 0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x78,0x5d,0x5b,0x33,0x5d,0x5b,0x32,
- 0x5d,0x29,0x2e,0x78,0x79,0x7a,0x29,0x29,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x69,0x6e,
- 0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x34,0x2e,0x78,
- 0x29,0x20,0x2b,0x20,0x28,0x28,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,
- 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,
- 0x74,0x33,0x78,0x33,0x28,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x53,0x6b,0x69,0x6e,
- 0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,
- 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,
- 0x52,0x44,0x33,0x2e,0x79,0x5d,0x5b,0x30,0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x53,0x6b,
- 0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,
- 0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x33,0x2e,0x79,0x5d,0x5b,0x31,0x5d,0x5b,0x30,0x5d,0x2c,0x20,
- 0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,
- 0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,
- 0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x79,0x5d,0x5b,0x32,0x5d,0x5b,0x30,0x5d,
- 0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,
- 0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,
- 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x79,0x5d,0x5b,0x33,0x5d,0x5b,
- 0x30,0x5d,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,
- 0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,
- 0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,
- 0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x79,0x5d,0x5b,0x30,0x5d,0x5b,0x31,0x5d,
- 0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,
- 0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,
- 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x79,0x5d,0x5b,0x31,0x5d,0x5b,
- 0x31,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,
- 0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x79,0x5d,0x5b,0x32,
- 0x5d,0x5b,0x31,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,
- 0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,
- 0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x79,0x5d,
- 0x5b,0x33,0x5d,0x5b,0x31,0x5d,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x28,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,
- 0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x79,0x5d,0x5b,0x30,
- 0x5d,0x5b,0x32,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,
- 0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,
- 0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x79,0x5d,
- 0x5b,0x31,0x5d,0x5b,0x32,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,
- 0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,
- 0x79,0x5d,0x5b,0x32,0x5d,0x5b,0x32,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,
- 0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x33,0x2e,0x79,0x5d,0x5b,0x33,0x5d,0x5b,0x32,0x5d,0x29,0x2e,0x78,0x79,0x7a,0x29,
- 0x29,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,
- 0x58,0x43,0x4f,0x4f,0x52,0x44,0x34,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,
- 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,
- 0x52,0x44,0x31,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x78,0x33,0x28,0x66,
- 0x6c,0x6f,0x61,0x74,0x34,0x28,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,
- 0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,
- 0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x7a,0x5d,
- 0x5b,0x30,0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,
- 0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,
- 0x7a,0x5d,0x5b,0x31,0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,
- 0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x33,0x2e,0x7a,0x5d,0x5b,0x32,0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,
- 0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,
- 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,
- 0x52,0x44,0x33,0x2e,0x7a,0x5d,0x5b,0x33,0x5d,0x5b,0x30,0x5d,0x29,0x2e,0x78,0x79,
- 0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x53,0x6b,0x69,0x6e,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,
- 0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x33,0x2e,0x7a,0x5d,0x5b,0x30,0x5d,0x5b,0x31,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,
- 0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,
- 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,
- 0x52,0x44,0x33,0x2e,0x7a,0x5d,0x5b,0x31,0x5d,0x5b,0x31,0x5d,0x2c,0x20,0x53,0x6b,
- 0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,
- 0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x33,0x2e,0x7a,0x5d,0x5b,0x32,0x5d,0x5b,0x31,0x5d,0x2c,0x20,
- 0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,
- 0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,
- 0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x7a,0x5d,0x5b,0x33,0x5d,0x5b,0x31,0x5d,
- 0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x53,0x6b,
- 0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,
- 0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x33,0x2e,0x7a,0x5d,0x5b,0x30,0x5d,0x5b,0x32,0x5d,0x2c,0x20,
- 0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,
- 0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,
- 0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x7a,0x5d,0x5b,0x31,0x5d,0x5b,0x32,0x5d,
- 0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,
- 0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,
- 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x7a,0x5d,0x5b,0x32,0x5d,0x5b,
- 0x32,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,
- 0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x7a,0x5d,0x5b,0x33,
- 0x5d,0x5b,0x32,0x5d,0x29,0x2e,0x78,0x79,0x7a,0x29,0x29,0x20,0x2a,0x20,0x69,0x6e,
- 0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x34,0x2e,0x7a,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x69,0x6e,0x2e,0x69,0x6e,0x5f,
- 0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x20,0x2a,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x33,0x78,0x33,0x28,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,
- 0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,
- 0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,
- 0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x77,0x5d,0x5b,0x30,0x5d,0x5b,0x30,0x5d,
- 0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,
- 0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,
- 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x77,0x5d,0x5b,0x31,0x5d,0x5b,
- 0x30,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,
- 0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x77,0x5d,0x5b,0x32,
- 0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,
- 0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,
- 0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x77,0x5d,
- 0x5b,0x33,0x5d,0x5b,0x30,0x5d,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x28,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,
- 0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x77,0x5d,0x5b,0x30,
- 0x5d,0x5b,0x31,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,
- 0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,
- 0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,0x77,0x5d,
- 0x5b,0x31,0x5d,0x5b,0x31,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,
- 0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,
- 0x77,0x5d,0x5b,0x32,0x5d,0x5b,0x31,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,
- 0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x33,0x2e,0x77,0x5d,0x5b,0x33,0x5d,0x5b,0x31,0x5d,0x29,0x2e,0x78,0x79,0x7a,0x2c,
- 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,0x2e,0x69,
- 0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x2e,
- 0x77,0x5d,0x5b,0x30,0x5d,0x5b,0x32,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x69,0x6e,
- 0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,
- 0x33,0x2e,0x77,0x5d,0x5b,0x31,0x5d,0x5b,0x32,0x5d,0x2c,0x20,0x53,0x6b,0x69,0x6e,
- 0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,
- 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,
- 0x52,0x44,0x33,0x2e,0x77,0x5d,0x5b,0x32,0x5d,0x5b,0x32,0x5d,0x2c,0x20,0x53,0x6b,
- 0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x74,
- 0x73,0x5b,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x33,0x2e,0x77,0x5d,0x5b,0x33,0x5d,0x5b,0x32,0x5d,0x29,0x2e,
- 0x78,0x79,0x7a,0x29,0x29,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,
- 0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x34,0x2e,0x77,0x29,0x29,0x20,
- 0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x78,0x33,0x28,0x66,0x6c,0x6f,0x61,0x74,
- 0x34,0x28,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6e,
- 0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x30,0x5d,0x5b,0x30,
- 0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,
- 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x31,0x5d,0x5b,
- 0x30,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x32,0x5d,
- 0x5b,0x30,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x33,
- 0x5d,0x5b,0x30,0x5d,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,
- 0x34,0x28,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6e,
- 0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x30,0x5d,0x5b,0x31,
- 0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,
- 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x31,0x5d,0x5b,
- 0x31,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x32,0x5d,
- 0x5b,0x31,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x33,
- 0x5d,0x5b,0x31,0x5d,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,
- 0x34,0x28,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6e,
- 0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x30,0x5d,0x5b,0x32,
- 0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,
- 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x31,0x5d,0x5b,
- 0x32,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x32,0x5d,
- 0x5b,0x32,0x5d,0x2c,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x33,
- 0x5d,0x5b,0x32,0x5d,0x29,0x2e,0x78,0x79,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,
- 0x20,0x6f,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,
- 0x20,0x3d,0x20,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,
- 0x6d,0x6f,0x64,0x65,0x6c,0x56,0x69,0x65,0x77,0x50,0x72,0x6f,0x6a,0x65,0x63,0x74,
- 0x69,0x6f,0x6e,0x20,0x2a,0x20,0x5f,0x31,0x30,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x6f,0x75,0x74,0x2e,0x6f,0x75,0x74,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x30,0x20,0x3d,0x20,0x28,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,
- 0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x2a,0x20,0x5f,0x31,
- 0x30,0x36,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,
- 0x2e,0x6f,0x75,0x74,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,
- 0x44,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,
- 0x75,0x74,0x2e,0x6f,0x75,0x74,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,
- 0x4f,0x52,0x44,0x32,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,
- 0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,
-};
-
-static const SceneShaderT sceneShaderVertexSkinned = { "vertexSkinned", _vertexSkinnedSPIRV, sizeof(_vertexSkinnedSPIRV), _vertexSkinnedDXIL, sizeof(_vertexSkinnedDXIL), _vertexSkinnedMSL, sizeof(_vertexSkinnedMSL) };
-
-static const unsigned char _fragmentMainSPIRV[] = {
- 0x03,0x02,0x23,0x07,0x00,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x31,0x02,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x0b,0x00,0x06,0x00,
- 0x01,0x00,0x00,0x00,0x47,0x4c,0x53,0x4c,0x2e,0x73,0x74,0x64,0x2e,0x34,0x35,0x30,
- 0x00,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x0f,0x00,0x0b,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x66,0x72,0x61,0x67,
- 0x6d,0x65,0x6e,0x74,0x4d,0x61,0x69,0x6e,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x10,0x00,0x03,0x00,
- 0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x05,0x00,0x00,0x00,
- 0x58,0x02,0x00,0x00,0x05,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x74,0x79,0x70,0x65,
- 0x2e,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,
- 0x06,0x00,0x08,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6d,0x6f,0x64,0x65,
- 0x6c,0x56,0x69,0x65,0x77,0x50,0x72,0x6f,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x00,
- 0x06,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6d,0x6f,0x64,0x65,
- 0x6c,0x00,0x00,0x00,0x06,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x06,0x00,0x08,0x00,0x00,0x00,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x09,0x00,0x00,0x00,
- 0x74,0x79,0x70,0x65,0x2e,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x00,0x00,0x00,0x06,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x6a,0x6f,0x69,0x6e,0x74,0x73,0x00,0x00,0x05,0x00,0x06,0x00,0x0a,0x00,0x00,0x00,
- 0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x08,0x00,0x0b,0x00,0x00,0x00,0x74,0x79,0x70,0x65,0x2e,0x46,0x72,0x61,
- 0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,
- 0x06,0x00,0x07,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x61,0x6d,0x65,
- 0x72,0x61,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x00,0x00,0x06,0x00,0x05,0x00,
- 0x0b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x00,
- 0x06,0x00,0x06,0x00,0x0b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x62,0x61,0x73,0x65,
- 0x43,0x6f,0x6c,0x6f,0x72,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x0b,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x00,0x00,0x00,0x00,
- 0x06,0x00,0x06,0x00,0x0b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6d,0x61,0x74,0x65,
- 0x72,0x69,0x61,0x6c,0x00,0x00,0x00,0x00,0x06,0x00,0x05,0x00,0x0b,0x00,0x00,0x00,
- 0x05,0x00,0x00,0x00,0x63,0x6f,0x75,0x6e,0x74,0x73,0x00,0x00,0x06,0x00,0x07,0x00,
- 0x0b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x73,0x68,0x61,0x64,0x6f,0x77,0x50,0x61,
- 0x72,0x61,0x6d,0x73,0x00,0x00,0x00,0x00,0x06,0x00,0x07,0x00,0x0b,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x74,0x72,0x69,0x78,
- 0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x0b,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x73,0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x00,0x00,0x06,0x00,0x05,0x00,
- 0x0b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x6c,0x69,0x67,0x68,0x74,0x73,0x00,0x00,
- 0x05,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x4c,0x69,0x67,0x68,0x74,0x00,0x00,0x00,
- 0x06,0x00,0x07,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x6f,0x73,0x69,
- 0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x06,0x00,0x07,0x00,
- 0x0c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,
- 0x6e,0x52,0x61,0x6e,0x67,0x65,0x00,0x00,0x06,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x00,0x00,0x06,0x00,0x05,0x00,
- 0x0c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x63,0x6f,0x6e,0x65,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x07,0x00,0x0d,0x00,0x00,0x00,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,
- 0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x00,0x05,0x00,0x06,0x00,
- 0x0e,0x00,0x00,0x00,0x74,0x79,0x70,0x65,0x2e,0x32,0x64,0x2e,0x69,0x6d,0x61,0x67,
- 0x65,0x00,0x00,0x00,0x05,0x00,0x05,0x00,0x0f,0x00,0x00,0x00,0x62,0x61,0x73,0x65,
- 0x54,0x65,0x78,0x74,0x75,0x72,0x65,0x00,0x05,0x00,0x06,0x00,0x10,0x00,0x00,0x00,
- 0x74,0x79,0x70,0x65,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x05,0x00,0x11,0x00,0x00,0x00,0x62,0x61,0x73,0x65,0x53,0x61,0x6d,0x70,
- 0x6c,0x65,0x72,0x00,0x05,0x00,0x07,0x00,0x12,0x00,0x00,0x00,0x74,0x79,0x70,0x65,
- 0x2e,0x32,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x2e,0x61,0x72,0x72,0x61,0x79,0x00,
- 0x05,0x00,0x05,0x00,0x13,0x00,0x00,0x00,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,
- 0x70,0x73,0x00,0x00,0x05,0x00,0x06,0x00,0x14,0x00,0x00,0x00,0x73,0x68,0x61,0x64,
- 0x6f,0x77,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x00,0x00,0x00,0x05,0x00,0x07,0x00,
- 0x03,0x00,0x00,0x00,0x69,0x6e,0x2e,0x76,0x61,0x72,0x2e,0x54,0x45,0x58,0x43,0x4f,
- 0x4f,0x52,0x44,0x30,0x00,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x04,0x00,0x00,0x00,
- 0x69,0x6e,0x2e,0x76,0x61,0x72,0x2e,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,
- 0x00,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x05,0x00,0x00,0x00,0x69,0x6e,0x2e,0x76,
- 0x61,0x72,0x2e,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x32,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x6f,0x75,0x74,0x2e,0x76,0x61,0x72,0x2e,
- 0x53,0x56,0x5f,0x54,0x61,0x72,0x67,0x65,0x74,0x00,0x00,0x00,0x05,0x00,0x06,0x00,
- 0x02,0x00,0x00,0x00,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x4d,0x61,0x69,0x6e,
- 0x00,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x15,0x00,0x00,0x00,0x74,0x79,0x70,0x65,
- 0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x00,0x00,
- 0x05,0x00,0x07,0x00,0x16,0x00,0x00,0x00,0x74,0x79,0x70,0x65,0x2e,0x73,0x61,0x6d,
- 0x70,0x6c,0x65,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x03,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x04,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x05,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x06,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x08,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x08,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0a,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0a,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0d,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0d,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0f,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x0f,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x11,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x11,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x13,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x13,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x14,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x14,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x07,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
- 0x07,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x07,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x07,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x47,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x09,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x03,0x00,0x09,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x40,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x19,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x0c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x30,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x40,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0b,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x0b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x0b,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x30,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0b,0x00,0x00,0x00,
- 0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x0b,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x60,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x0b,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x70,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0b,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x0b,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x0b,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x70,0x02,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x0b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0xf0,0x02,0x00,0x00,
- 0x47,0x00,0x03,0x00,0x0b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
- 0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
- 0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
- 0x1b,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
- 0x1b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
- 0x1b,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
- 0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x16,0x00,0x03,0x00,
- 0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
- 0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x00,0x00,0x80,0x3f,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
- 0x24,0x00,0x00,0x00,0x9a,0x99,0x19,0x3f,0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
- 0x25,0x00,0x00,0x00,0x0a,0xd7,0x23,0x3d,0x17,0x00,0x04,0x00,0x26,0x00,0x00,0x00,
- 0x21,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x2c,0x00,0x06,0x00,0x26,0x00,0x00,0x00,
- 0x27,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,
- 0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x40,
- 0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x00,0x00,0x80,0x43,
- 0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x00,0x00,0x80,0x40,
- 0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
- 0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
- 0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x17,0xb7,0xd1,0x38,
- 0x2b,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x2b,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x41,
- 0x14,0x00,0x02,0x00,0x32,0x00,0x00,0x00,0x2a,0x00,0x03,0x00,0x32,0x00,0x00,0x00,
- 0x33,0x00,0x00,0x00,0x2c,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
- 0x2e,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
- 0x21,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x2b,0x00,0x04,0x00,
- 0x21,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x00,0x00,0xa0,0x40,0x2b,0x00,0x04,0x00,
- 0x1b,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x29,0x00,0x03,0x00,
- 0x32,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x17,0x00,0x04,0x00,0x39,0x00,0x00,0x00,
- 0x21,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x04,0x00,0x3a,0x00,0x00,0x00,
- 0x39,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x1e,0x00,0x05,0x00,0x07,0x00,0x00,0x00,
- 0x3a,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
- 0x3b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x15,0x00,0x04,0x00,
- 0x3c,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
- 0x3c,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,
- 0x17,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,
- 0x09,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x3e,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x3c,0x00,0x00,0x00,
- 0x3f,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
- 0x3a,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x19,0x00,0x00,0x00,
- 0x39,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x1e,0x00,0x06,0x00,0x0c,0x00,0x00,0x00,
- 0x39,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x39,0x00,0x00,0x00,
- 0x1c,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,
- 0x1e,0x00,0x0c,0x00,0x0b,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x39,0x00,0x00,0x00,
- 0x39,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x39,0x00,0x00,0x00,
- 0x39,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,
- 0x19,0x00,0x09,0x00,0x0e,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x0e,0x00,0x00,0x00,0x1a,0x00,0x02,0x00,0x10,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
- 0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x19,0x00,0x09,0x00,
- 0x12,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x26,0x00,0x00,0x00,
- 0x17,0x00,0x04,0x00,0x45,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x45,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x47,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x39,0x00,0x00,0x00,
- 0x13,0x00,0x02,0x00,0x48,0x00,0x00,0x00,0x21,0x00,0x03,0x00,0x49,0x00,0x00,0x00,
- 0x48,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x4a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x39,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x4b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x21,0x00,0x00,0x00,0x1b,0x00,0x03,0x00,0x15,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
- 0x1b,0x00,0x03,0x00,0x16,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
- 0x4c,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x3b,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x3e,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x40,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x41,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x42,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x43,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x42,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x44,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x44,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x46,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x47,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
- 0x3c,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,
- 0x21,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x00,0x00,0x80,0xbf,0x2b,0x00,0x04,0x00,
- 0x21,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x39,0x8e,0xe3,0x3d,0x2b,0x00,0x04,0x00,
- 0x21,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0xcd,0xcc,0x4c,0x3e,0x36,0x00,0x05,0x00,
- 0x48,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x00,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0x51,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x26,0x00,0x00,0x00,
- 0x52,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x26,0x00,0x00,0x00,
- 0x53,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x45,0x00,0x00,0x00,
- 0x54,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x55,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00,0x4d,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0x56,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x4a,0x00,0x00,0x00,
- 0x57,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x39,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
- 0x4b,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,
- 0x1e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,
- 0x59,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x4b,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,
- 0x0d,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x21,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x41,0x00,0x06,0x00,
- 0x4b,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,
- 0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,
- 0x5d,0x00,0x00,0x00,0xba,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,
- 0x5e,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x60,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x5f,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
- 0x60,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x61,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x0e,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x10,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x56,0x00,0x05,0x00,
- 0x15,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,
- 0x57,0x00,0x06,0x00,0x39,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
- 0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x39,0x00,0x00,0x00,
- 0x66,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
- 0x60,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x60,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
- 0x39,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x56,0x00,0x00,0x00,
- 0x66,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x4b,0x00,0x00,0x00,
- 0x68,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
- 0xba,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x69,0x00,0x00,0x00,
- 0x22,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x6b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xfa,0x00,0x04,0x00,0x6a,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0x6c,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x55,0x00,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0x6b,0x00,0x00,0x00,0x0c,0x00,0x06,0x00,0x26,0x00,0x00,0x00,
- 0x6d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x53,0x00,0x00,0x00,
- 0x41,0x00,0x05,0x00,0x4a,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
- 0x1e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,
- 0x6e,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x26,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
- 0x6f,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x83,0x00,0x05,0x00,0x26,0x00,0x00,0x00,0x71,0x00,0x00,0x00,
- 0x70,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x0c,0x00,0x06,0x00,0x26,0x00,0x00,0x00,
- 0x72,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x71,0x00,0x00,0x00,
- 0x4f,0x00,0x08,0x00,0x26,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x67,0x00,0x00,0x00,
- 0x67,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
- 0x5a,0x00,0x00,0x00,0x83,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x75,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x8e,0x00,0x05,0x00,0x26,0x00,0x00,0x00,
- 0x76,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x26,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,
- 0x5a,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x26,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x73,0x00,0x00,0x00,
- 0x77,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x79,0x00,0x00,0x00,
- 0x28,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x7a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x8e,0x00,0x05,0x00,
- 0x26,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,
- 0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,
- 0x5c,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x21,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,
- 0x7c,0x00,0x00,0x00,0x41,0x00,0x05,0x00,0x4a,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
- 0x0d,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x39,0x00,0x00,0x00,
- 0x7f,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x26,0x00,0x00,0x00,
- 0x80,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x26,0x00,0x00,0x00,
- 0x81,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x8e,0x00,0x05,0x00,
- 0x26,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,
- 0x41,0x00,0x05,0x00,0x4a,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
- 0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x84,0x00,0x00,0x00,
- 0x83,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x26,0x00,0x00,0x00,0x85,0x00,0x00,0x00,
- 0x84,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x26,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
- 0x82,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x4b,0x00,0x00,0x00,
- 0x87,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x87,0x00,0x00,0x00,
- 0x6e,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x88,0x00,0x00,0x00,
- 0xf9,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x8a,0x00,0x00,0x00,
- 0xf5,0x00,0x07,0x00,0x26,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x86,0x00,0x00,0x00,
- 0x6b,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
- 0x1b,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,
- 0x8f,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0xb1,0x00,0x05,0x00,0x32,0x00,0x00,0x00,
- 0x90,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0xf6,0x00,0x04,0x00,
- 0x91,0x00,0x00,0x00,0x8d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
- 0x90,0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
- 0x92,0x00,0x00,0x00,0xaf,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0x93,0x00,0x00,0x00,
- 0x8e,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x94,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x93,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
- 0x94,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x95,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
- 0x8d,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x94,0x00,0x00,0x00,0x41,0x00,0x08,0x00,
- 0x4b,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,
- 0x8e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x21,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0xb4,0x00,0x05,0x00,
- 0x32,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0xf7,0x00,0x03,0x00,0x99,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
- 0x98,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
- 0x9a,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x4a,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
- 0x0d,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,
- 0x4f,0x00,0x08,0x00,0x26,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,
- 0x9d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x7f,0x00,0x04,0x00,0x26,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,
- 0x0c,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x45,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x99,0x00,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0x9b,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x4a,0x00,0x00,0x00,
- 0xa1,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
- 0x1e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,
- 0xa1,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x26,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,
- 0xa2,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x83,0x00,0x05,0x00,0x26,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
- 0xa3,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x0c,0x00,0x06,0x00,0x21,0x00,0x00,0x00,
- 0xa5,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,
- 0x0c,0x00,0x07,0x00,0x21,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x50,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x26,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,
- 0xa6,0x00,0x00,0x00,0x88,0x00,0x05,0x00,0x26,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,
- 0xa4,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0xa9,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,
- 0x88,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0xaa,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x4b,0x00,0x00,0x00,0xac,0x00,0x00,0x00,
- 0x0d,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
- 0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
- 0xac,0x00,0x00,0x00,0xba,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0xae,0x00,0x00,0x00,
- 0xad,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xaf,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xae,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,
- 0xaf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xb0,0x00,0x00,0x00,0x88,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xa5,0x00,0x00,0x00,0xad,0x00,0x00,0x00,
- 0x0c,0x00,0x07,0x00,0x21,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x1a,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x83,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,
- 0x0c,0x00,0x08,0x00,0x21,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x2b,0x00,0x00,0x00,0xb3,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xab,0x00,0x00,0x00,
- 0xb4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xaf,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
- 0xaf,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x21,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,
- 0xab,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,
- 0xb4,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x97,0x00,0x00,0x00,
- 0x28,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xfa,0x00,0x04,0x00,0xb7,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0xb9,0x00,0x00,0x00,0x7f,0x00,0x04,0x00,0x26,0x00,0x00,0x00,
- 0xba,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x4a,0x00,0x00,0x00,
- 0xbb,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
- 0x1f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,
- 0xbb,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x26,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,
- 0xbc,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x0c,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x94,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,
- 0x41,0x00,0x08,0x00,0x4b,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
- 0x2d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
- 0x41,0x00,0x08,0x00,0x4b,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
- 0x2d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,
- 0x0c,0x00,0x08,0x00,0x21,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x31,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,
- 0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,
- 0xc4,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xb8,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
- 0xb8,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x21,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,
- 0xb6,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,
- 0xf9,0x00,0x02,0x00,0x99,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x99,0x00,0x00,0x00,
- 0xf5,0x00,0x07,0x00,0x21,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x9a,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
- 0x26,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x9a,0x00,0x00,0x00,
- 0xa8,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x41,0x00,0x08,0x00,0x4b,0x00,0x00,0x00,
- 0xc9,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
- 0x20,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
- 0xca,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xba,0x00,0x05,0x00,0x32,0x00,0x00,0x00,
- 0xcb,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
- 0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xcb,0x00,0x00,0x00,
- 0xcd,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xcd,0x00,0x00,0x00,
- 0x6e,0x00,0x04,0x00,0x1b,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xca,0x00,0x00,0x00,
- 0x82,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0xce,0x00,0x00,0x00,
- 0x1f,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x4b,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
- 0x0d,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,
- 0xb4,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,
- 0x28,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xfa,0x00,0x04,0x00,0xd2,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0xd4,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x4a,0x00,0x00,0x00,
- 0xd6,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,
- 0x1e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,
- 0xd6,0x00,0x00,0x00,0x4f,0x00,0x08,0x00,0x26,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,
- 0xd7,0x00,0x00,0x00,0xd7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xd9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xfb,0x00,0x03,0x00,0x4d,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
- 0xda,0x00,0x00,0x00,0x41,0x00,0x07,0x00,0x4b,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
- 0x0d,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,
- 0x41,0x00,0x07,0x00,0x4b,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
- 0x2c,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x21,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x41,0x00,0x07,0x00,
- 0x4b,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,
- 0xcf,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
- 0xe0,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x4b,0x00,0x00,0x00,
- 0xe1,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,
- 0x8e,0x00,0x05,0x00,0x26,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,
- 0xe2,0x00,0x00,0x00,0x8e,0x00,0x05,0x00,0x26,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,
- 0xe3,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x26,0x00,0x00,0x00,
- 0xe5,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x83,0x00,0x05,0x00,
- 0x26,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,
- 0x0c,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x41,0x00,0x06,0x00,0x4b,0x00,0x00,0x00,
- 0xe8,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,
- 0xe7,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,0x32,0x00,0x00,0x00,
- 0xec,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
- 0xed,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0xec,0x00,0x00,0x00,
- 0xee,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xee,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
- 0xea,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xed,0x00,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0xed,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x32,0x00,0x00,0x00,
- 0xf1,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
- 0xee,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0xf2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xfa,0x00,0x04,0x00,0xf1,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0xf3,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0xf5,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xba,0x00,0x05,0x00,
- 0x32,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,
- 0x2e,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,
- 0xf8,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,
- 0x50,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
- 0x2e,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0xf2,0x00,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0xf4,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0xfa,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,
- 0x32,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
- 0xf7,0x00,0x03,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
- 0xfb,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
- 0xfd,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
- 0xe6,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xba,0x00,0x05,0x00,0x32,0x00,0x00,0x00,
- 0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,
- 0x21,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x28,0x00,0x00,0x00,
- 0x35,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
- 0x00,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x26,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x02,0x01,0x00,0x00,
- 0x2e,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
- 0x00,0x01,0x00,0x00,0x4e,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x26,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0x04,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xfc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
- 0xfe,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x06,0x01,0x00,0x00,
- 0xe6,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xba,0x00,0x05,0x00,0x32,0x00,0x00,0x00,
- 0x07,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,
- 0x21,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x07,0x01,0x00,0x00,0x2a,0x00,0x00,0x00,
- 0x36,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,0x09,0x01,0x00,0x00,
- 0x07,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x26,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0x09,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xfc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,
- 0xfc,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x21,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,
- 0x01,0x01,0x00,0x00,0xfd,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,
- 0xf5,0x00,0x07,0x00,0x26,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x05,0x01,0x00,0x00,
- 0xfd,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
- 0x26,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0xfd,0x00,0x00,0x00,
- 0x0a,0x01,0x00,0x00,0xfe,0x00,0x00,0x00,0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,
- 0x0e,0x01,0x00,0x00,0xfb,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,
- 0xf9,0x00,0x02,0x00,0xf2,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xf2,0x00,0x00,0x00,
- 0xf5,0x00,0x07,0x00,0x21,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0xf7,0x00,0x00,0x00,
- 0xf3,0x00,0x00,0x00,0x0b,0x01,0x00,0x00,0xfc,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
- 0x21,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0xea,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,
- 0x0e,0x01,0x00,0x00,0xfc,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x26,0x00,0x00,0x00,
- 0x11,0x01,0x00,0x00,0x34,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,
- 0xfc,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x26,0x00,0x00,0x00,0x12,0x01,0x00,0x00,
- 0xf9,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x0d,0x01,0x00,0x00,0xfc,0x00,0x00,0x00,
- 0x0c,0x00,0x07,0x00,0x26,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x44,0x00,0x00,0x00,0x12,0x01,0x00,0x00,0x11,0x01,0x00,0x00,0x94,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x14,0x01,0x00,0x00,0xe6,0x00,0x00,0x00,0x13,0x01,0x00,0x00,
- 0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x15,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x14,0x01,0x00,0x00,0x88,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x16,0x01,0x00,0x00,
- 0x15,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x17,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x94,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0xe6,0x00,0x00,0x00,0x11,0x01,0x00,0x00,
- 0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x19,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x18,0x01,0x00,0x00,0x88,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,
- 0x19,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x1b,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x1a,0x01,0x00,0x00,0x50,0x00,0x05,0x00,
- 0x45,0x00,0x00,0x00,0x1c,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
- 0x83,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0xe0,0x00,0x00,0x00,
- 0xde,0x00,0x00,0x00,0x88,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x1e,0x01,0x00,0x00,
- 0xe0,0x00,0x00,0x00,0x1d,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x1f,0x01,0x00,0x00,0xde,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x85,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x20,0x01,0x00,0x00,0x1d,0x01,0x00,0x00,0x10,0x01,0x00,0x00,
- 0x88,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x21,0x01,0x00,0x00,0x1f,0x01,0x00,0x00,
- 0x20,0x01,0x00,0x00,0x83,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x22,0x01,0x00,0x00,
- 0x1e,0x01,0x00,0x00,0x21,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x23,0x01,0x00,0x00,0xe2,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x83,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x24,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x23,0x01,0x00,0x00,
- 0xba,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0x25,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
- 0x23,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x26,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xfa,0x00,0x04,0x00,0x25,0x01,0x00,0x00,0x27,0x01,0x00,0x00,0x26,0x01,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0x27,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0xd9,0x00,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0x26,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x12,0x00,0x00,0x00,
- 0x28,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x10,0x00,0x00,0x00,
- 0x29,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x2a,0x01,0x00,0x00,0xdc,0x00,0x00,0x00,0x0f,0x01,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x26,0x00,0x00,0x00,0x2b,0x01,0x00,0x00,0x17,0x01,0x00,0x00,0x1b,0x01,0x00,0x00,
- 0x2a,0x01,0x00,0x00,0x56,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,
- 0x28,0x01,0x00,0x00,0x29,0x01,0x00,0x00,0x57,0x00,0x06,0x00,0x39,0x00,0x00,0x00,
- 0x2d,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x2e,0x01,0x00,0x00,0x2d,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0x2f,0x01,0x00,0x00,
- 0x2e,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,
- 0x30,0x01,0x00,0x00,0x2f,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0x31,0x01,0x00,0x00,0x13,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x14,0x00,0x00,0x00,
- 0x50,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0x33,0x01,0x00,0x00,0xe9,0x00,0x00,0x00,
- 0x2e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0x34,0x01,0x00,0x00,
- 0x1c,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x35,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x36,0x01,0x00,0x00,0x34,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x50,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0x37,0x01,0x00,0x00,0x35,0x01,0x00,0x00,
- 0x36,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x56,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
- 0x38,0x01,0x00,0x00,0x31,0x01,0x00,0x00,0x32,0x01,0x00,0x00,0x57,0x00,0x06,0x00,
- 0x39,0x00,0x00,0x00,0x39,0x01,0x00,0x00,0x38,0x01,0x00,0x00,0x37,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x3a,0x01,0x00,0x00,
- 0x39,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,0x32,0x00,0x00,0x00,
- 0x3b,0x01,0x00,0x00,0x3a,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0xa9,0x00,0x06,0x00,
- 0x21,0x00,0x00,0x00,0x3c,0x01,0x00,0x00,0x3b,0x01,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x2e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x3d,0x01,0x00,0x00,
- 0x30,0x01,0x00,0x00,0x3c,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x12,0x00,0x00,0x00,
- 0x3e,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x10,0x00,0x00,0x00,
- 0x3f,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0x83,0x00,0x05,0x00,0x45,0x00,0x00,0x00,
- 0x40,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,0x33,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x41,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x42,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x50,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0x43,0x01,0x00,0x00,
- 0x41,0x01,0x00,0x00,0x42,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x56,0x00,0x05,0x00,
- 0x16,0x00,0x00,0x00,0x44,0x01,0x00,0x00,0x3e,0x01,0x00,0x00,0x3f,0x01,0x00,0x00,
- 0x57,0x00,0x06,0x00,0x39,0x00,0x00,0x00,0x45,0x01,0x00,0x00,0x44,0x01,0x00,0x00,
- 0x43,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x46,0x01,0x00,0x00,0x45,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,
- 0x32,0x00,0x00,0x00,0x47,0x01,0x00,0x00,0x46,0x01,0x00,0x00,0x24,0x01,0x00,0x00,
- 0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,0x48,0x01,0x00,0x00,0x47,0x01,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x49,0x01,0x00,0x00,0x3d,0x01,0x00,0x00,0x48,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x12,0x00,0x00,0x00,0x4a,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x10,0x00,0x00,0x00,0x4b,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0x50,0x00,0x05,0x00,
- 0x45,0x00,0x00,0x00,0x4c,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,
- 0x81,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0x4d,0x01,0x00,0x00,0x1c,0x01,0x00,0x00,
- 0x4c,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x4e,0x01,0x00,0x00,
- 0x4d,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x4f,0x01,0x00,0x00,0x4d,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x26,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x4e,0x01,0x00,0x00,0x4f,0x01,0x00,0x00,
- 0x2a,0x01,0x00,0x00,0x56,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x51,0x01,0x00,0x00,
- 0x4a,0x01,0x00,0x00,0x4b,0x01,0x00,0x00,0x57,0x00,0x06,0x00,0x39,0x00,0x00,0x00,
- 0x52,0x01,0x00,0x00,0x51,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x53,0x01,0x00,0x00,0x52,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0x54,0x01,0x00,0x00,
- 0x53,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,
- 0x55,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x56,0x01,0x00,0x00,0x49,0x01,0x00,0x00,
- 0x55,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0x57,0x01,0x00,0x00,
- 0x13,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x58,0x01,0x00,0x00,
- 0x14,0x00,0x00,0x00,0x83,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0x59,0x01,0x00,0x00,
- 0x1c,0x01,0x00,0x00,0x4c,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x5a,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x5b,0x01,0x00,0x00,0x59,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x50,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0x5c,0x01,0x00,0x00,0x5a,0x01,0x00,0x00,
- 0x5b,0x01,0x00,0x00,0x2a,0x01,0x00,0x00,0x56,0x00,0x05,0x00,0x16,0x00,0x00,0x00,
- 0x5d,0x01,0x00,0x00,0x57,0x01,0x00,0x00,0x58,0x01,0x00,0x00,0x57,0x00,0x06,0x00,
- 0x39,0x00,0x00,0x00,0x5e,0x01,0x00,0x00,0x5d,0x01,0x00,0x00,0x5c,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x5f,0x01,0x00,0x00,
- 0x5e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,0x32,0x00,0x00,0x00,
- 0x60,0x01,0x00,0x00,0x5f,0x01,0x00,0x00,0x24,0x01,0x00,0x00,0xa9,0x00,0x06,0x00,
- 0x21,0x00,0x00,0x00,0x61,0x01,0x00,0x00,0x60,0x01,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x2e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x62,0x01,0x00,0x00,
- 0x56,0x01,0x00,0x00,0x61,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x63,0x01,0x00,0x00,0x62,0x01,0x00,0x00,0x50,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
- 0xd9,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd9,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
- 0x21,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x27,0x01,0x00,0x00,
- 0x63,0x01,0x00,0x00,0x26,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x65,0x01,0x00,0x00,0xc7,0x00,0x00,0x00,0x64,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
- 0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd5,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,
- 0x66,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0x00,0x03,0x00,0x4d,0x00,0x00,0x00,
- 0x67,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x67,0x01,0x00,0x00,0x41,0x00,0x06,0x00,
- 0x4c,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x0d,0x00,0x00,0x00,0x37,0x00,0x00,0x00,
- 0xcf,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x3a,0x00,0x00,0x00,0x69,0x01,0x00,0x00,
- 0x68,0x01,0x00,0x00,0x41,0x00,0x06,0x00,0x4b,0x00,0x00,0x00,0x6a,0x01,0x00,0x00,
- 0x0d,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x21,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,0x6a,0x01,0x00,0x00,0x8e,0x00,0x05,0x00,
- 0x26,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0x6b,0x01,0x00,0x00,
- 0x8e,0x00,0x05,0x00,0x26,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x6c,0x01,0x00,0x00,
- 0x31,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x26,0x00,0x00,0x00,0x6e,0x01,0x00,0x00,
- 0x52,0x00,0x00,0x00,0x6d,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x6f,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x71,0x01,0x00,0x00,0x6e,0x01,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x50,0x00,0x07,0x00,0x39,0x00,0x00,0x00,0x72,0x01,0x00,0x00,
- 0x6f,0x01,0x00,0x00,0x70,0x01,0x00,0x00,0x71,0x01,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x90,0x00,0x05,0x00,0x39,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x72,0x01,0x00,0x00,
- 0x69,0x01,0x00,0x00,0x41,0x00,0x07,0x00,0x4b,0x00,0x00,0x00,0x74,0x01,0x00,0x00,
- 0x0d,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,0x75,0x01,0x00,0x00,0x74,0x01,0x00,0x00,
- 0x41,0x00,0x06,0x00,0x4b,0x00,0x00,0x00,0x76,0x01,0x00,0x00,0x0d,0x00,0x00,0x00,
- 0x30,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
- 0x77,0x01,0x00,0x00,0x76,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x78,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x26,0x00,0x00,0x00,0x79,0x01,0x00,0x00,0x78,0x01,0x00,0x00,0x78,0x01,0x00,0x00,
- 0x78,0x01,0x00,0x00,0x4f,0x00,0x08,0x00,0x26,0x00,0x00,0x00,0x7a,0x01,0x00,0x00,
- 0x73,0x01,0x00,0x00,0x73,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x88,0x00,0x05,0x00,0x26,0x00,0x00,0x00,0x7b,0x01,0x00,0x00,
- 0x7a,0x01,0x00,0x00,0x79,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x7c,0x01,0x00,0x00,0x7b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x7d,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x7e,0x01,0x00,0x00,0x7d,0x01,0x00,0x00,
- 0x22,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x7f,0x01,0x00,0x00,
- 0x7b,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x80,0x01,0x00,0x00,0x7f,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x83,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x81,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x80,0x01,0x00,0x00,
- 0x50,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0x82,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
- 0x81,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x83,0x01,0x00,0x00,
- 0x7b,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x94,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x84,0x01,0x00,0x00,0x6d,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,
- 0x21,0x00,0x00,0x00,0x85,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
- 0x84,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x83,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x86,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x85,0x01,0x00,0x00,
- 0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x28,0x00,0x00,0x00,
- 0x86,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x88,0x01,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x87,0x01,0x00,0x00,0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x89,0x01,0x00,0x00,0x6b,0x01,0x00,0x00,0x88,0x01,0x00,0x00,0x83,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x8a,0x01,0x00,0x00,0x83,0x01,0x00,0x00,0x89,0x01,0x00,0x00,
- 0xbf,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0x8b,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,
- 0x2e,0x00,0x00,0x00,0xf7,0x00,0x03,0x00,0x8c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xfa,0x00,0x04,0x00,0x8b,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0x8c,0x01,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0x8d,0x01,0x00,0x00,0xba,0x00,0x05,0x00,0x32,0x00,0x00,0x00,
- 0x8e,0x01,0x00,0x00,0x7e,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
- 0x8c,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x8c,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,
- 0x32,0x00,0x00,0x00,0x8f,0x01,0x00,0x00,0x38,0x00,0x00,0x00,0x67,0x01,0x00,0x00,
- 0x8e,0x01,0x00,0x00,0x8d,0x01,0x00,0x00,0xa8,0x00,0x04,0x00,0x32,0x00,0x00,0x00,
- 0x90,0x01,0x00,0x00,0x8f,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x91,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x90,0x01,0x00,0x00,0x92,0x01,0x00,0x00,
- 0x91,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x92,0x01,0x00,0x00,0xb8,0x00,0x05,0x00,
- 0x32,0x00,0x00,0x00,0x93,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0xf9,0x00,0x02,0x00,0x91,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x91,0x01,0x00,0x00,
- 0xf5,0x00,0x07,0x00,0x32,0x00,0x00,0x00,0x94,0x01,0x00,0x00,0x38,0x00,0x00,0x00,
- 0x8c,0x01,0x00,0x00,0x93,0x01,0x00,0x00,0x92,0x01,0x00,0x00,0xa8,0x00,0x04,0x00,
- 0x32,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x94,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,
- 0x96,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,0x95,0x01,0x00,0x00,
- 0x97,0x01,0x00,0x00,0x96,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x97,0x01,0x00,0x00,
- 0xba,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0x98,0x01,0x00,0x00,0x81,0x01,0x00,0x00,
- 0x23,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x96,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
- 0x96,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x32,0x00,0x00,0x00,0x99,0x01,0x00,0x00,
- 0x38,0x00,0x00,0x00,0x91,0x01,0x00,0x00,0x98,0x01,0x00,0x00,0x97,0x01,0x00,0x00,
- 0xa8,0x00,0x04,0x00,0x32,0x00,0x00,0x00,0x9a,0x01,0x00,0x00,0x99,0x01,0x00,0x00,
- 0xf7,0x00,0x03,0x00,0x9b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x04,0x00,
- 0x9a,0x01,0x00,0x00,0x9c,0x01,0x00,0x00,0x9b,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,
- 0x9c,0x01,0x00,0x00,0xba,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0x9d,0x01,0x00,0x00,
- 0x8a,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0x9b,0x01,0x00,0x00,0xf5,0x00,0x07,0x00,0x32,0x00,0x00,0x00,
- 0x9e,0x01,0x00,0x00,0x38,0x00,0x00,0x00,0x96,0x01,0x00,0x00,0x9d,0x01,0x00,0x00,
- 0x9c,0x01,0x00,0x00,0xf7,0x00,0x03,0x00,0x9f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xfa,0x00,0x04,0x00,0x9e,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x9f,0x01,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0xa0,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,0x66,0x01,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0x9f,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x12,0x00,0x00,0x00,
- 0xa1,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x10,0x00,0x00,0x00,
- 0xa2,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0x7f,0x00,0x04,0x00,0x21,0x00,0x00,0x00,
- 0xa3,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x50,0x00,0x05,0x00,0x45,0x00,0x00,0x00,
- 0xa4,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x81,0x00,0x05,0x00,
- 0x45,0x00,0x00,0x00,0xa5,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0xa4,0x01,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0xa5,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xa7,0x01,0x00,0x00,
- 0xa5,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x06,0x00,0x26,0x00,0x00,0x00,
- 0xa8,0x01,0x00,0x00,0xa6,0x01,0x00,0x00,0xa7,0x01,0x00,0x00,0x75,0x01,0x00,0x00,
- 0x56,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xa9,0x01,0x00,0x00,0xa1,0x01,0x00,0x00,
- 0xa2,0x01,0x00,0x00,0x57,0x00,0x06,0x00,0x39,0x00,0x00,0x00,0xaa,0x01,0x00,0x00,
- 0xa9,0x01,0x00,0x00,0xa8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0xab,0x01,0x00,0x00,0xaa,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xbe,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0xac,0x01,0x00,0x00,0xab,0x01,0x00,0x00,
- 0x8a,0x01,0x00,0x00,0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,0xad,0x01,0x00,0x00,
- 0xac,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x12,0x00,0x00,0x00,0xae,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x10,0x00,0x00,0x00,0xaf,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0x50,0x00,0x05,0x00,
- 0x45,0x00,0x00,0x00,0xb0,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0xa3,0x01,0x00,0x00,
- 0x81,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0xb1,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
- 0xb0,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xb2,0x01,0x00,0x00,
- 0xb1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0xb3,0x01,0x00,0x00,0xb1,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x26,0x00,0x00,0x00,0xb4,0x01,0x00,0x00,0xb2,0x01,0x00,0x00,0xb3,0x01,0x00,0x00,
- 0x75,0x01,0x00,0x00,0x56,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xb5,0x01,0x00,0x00,
- 0xae,0x01,0x00,0x00,0xaf,0x01,0x00,0x00,0x57,0x00,0x06,0x00,0x39,0x00,0x00,0x00,
- 0xb6,0x01,0x00,0x00,0xb5,0x01,0x00,0x00,0xb4,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xb7,0x01,0x00,0x00,0xb6,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0xb8,0x01,0x00,0x00,
- 0xb7,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,
- 0xb9,0x01,0x00,0x00,0xb8,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xba,0x01,0x00,0x00,0xad,0x01,0x00,0x00,
- 0xb9,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0xbb,0x01,0x00,0x00,
- 0x13,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0xbc,0x01,0x00,0x00,
- 0x14,0x00,0x00,0x00,0x50,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0xbd,0x01,0x00,0x00,
- 0x77,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0x45,0x00,0x00,0x00,
- 0xbe,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0xbd,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0xbf,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xbe,0x01,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x50,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0xc1,0x01,0x00,0x00,
- 0xbf,0x01,0x00,0x00,0xc0,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x56,0x00,0x05,0x00,
- 0x16,0x00,0x00,0x00,0xc2,0x01,0x00,0x00,0xbb,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,
- 0x57,0x00,0x06,0x00,0x39,0x00,0x00,0x00,0xc3,0x01,0x00,0x00,0xc2,0x01,0x00,0x00,
- 0xc1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0xc4,0x01,0x00,0x00,0xc3,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,
- 0x32,0x00,0x00,0x00,0xc5,0x01,0x00,0x00,0xc4,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,
- 0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,0xc6,0x01,0x00,0x00,0xc5,0x01,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0xc7,0x01,0x00,0x00,0xba,0x01,0x00,0x00,0xc6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x12,0x00,0x00,0x00,0xc8,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x10,0x00,0x00,0x00,0xc9,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0x50,0x00,0x05,0x00,
- 0x45,0x00,0x00,0x00,0xca,0x01,0x00,0x00,0xa3,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0x81,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0xcb,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
- 0xca,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xcc,0x01,0x00,0x00,
- 0xcb,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0xcd,0x01,0x00,0x00,0xcb,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x26,0x00,0x00,0x00,0xce,0x01,0x00,0x00,0xcc,0x01,0x00,0x00,0xcd,0x01,0x00,0x00,
- 0x75,0x01,0x00,0x00,0x56,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xcf,0x01,0x00,0x00,
- 0xc8,0x01,0x00,0x00,0xc9,0x01,0x00,0x00,0x57,0x00,0x06,0x00,0x39,0x00,0x00,0x00,
- 0xd0,0x01,0x00,0x00,0xcf,0x01,0x00,0x00,0xce,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xd1,0x01,0x00,0x00,0xd0,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0xd2,0x01,0x00,0x00,
- 0xd1,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,
- 0xd3,0x01,0x00,0x00,0xd2,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xd4,0x01,0x00,0x00,0xc7,0x01,0x00,0x00,
- 0xd3,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0xd5,0x01,0x00,0x00,
- 0x13,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0xd6,0x01,0x00,0x00,
- 0x14,0x00,0x00,0x00,0x50,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0xd7,0x01,0x00,0x00,
- 0x7e,0x01,0x00,0x00,0x81,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x56,0x00,0x05,0x00,
- 0x16,0x00,0x00,0x00,0xd8,0x01,0x00,0x00,0xd5,0x01,0x00,0x00,0xd6,0x01,0x00,0x00,
- 0x57,0x00,0x06,0x00,0x39,0x00,0x00,0x00,0xd9,0x01,0x00,0x00,0xd8,0x01,0x00,0x00,
- 0xd7,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0xda,0x01,0x00,0x00,0xd9,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,
- 0x32,0x00,0x00,0x00,0xdb,0x01,0x00,0x00,0xda,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,
- 0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0xdb,0x01,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0xdd,0x01,0x00,0x00,0xd4,0x01,0x00,0x00,0xdc,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x12,0x00,0x00,0x00,0xde,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x10,0x00,0x00,0x00,0xdf,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0x50,0x00,0x05,0x00,
- 0x45,0x00,0x00,0x00,0xe0,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0x81,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0xe1,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
- 0xe0,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xe2,0x01,0x00,0x00,
- 0xe1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0xe3,0x01,0x00,0x00,0xe1,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x26,0x00,0x00,0x00,0xe4,0x01,0x00,0x00,0xe2,0x01,0x00,0x00,0xe3,0x01,0x00,0x00,
- 0x75,0x01,0x00,0x00,0x56,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xe5,0x01,0x00,0x00,
- 0xde,0x01,0x00,0x00,0xdf,0x01,0x00,0x00,0x57,0x00,0x06,0x00,0x39,0x00,0x00,0x00,
- 0xe6,0x01,0x00,0x00,0xe5,0x01,0x00,0x00,0xe4,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xe7,0x01,0x00,0x00,0xe6,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0xe8,0x01,0x00,0x00,
- 0xe7,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,
- 0xe9,0x01,0x00,0x00,0xe8,0x01,0x00,0x00,0x23,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xea,0x01,0x00,0x00,0xdd,0x01,0x00,0x00,
- 0xe9,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0xeb,0x01,0x00,0x00,
- 0x13,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0xec,0x01,0x00,0x00,
- 0x14,0x00,0x00,0x00,0x50,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0xed,0x01,0x00,0x00,
- 0xa3,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0x45,0x00,0x00,0x00,
- 0xee,0x01,0x00,0x00,0x82,0x01,0x00,0x00,0xed,0x01,0x00,0x00,0x51,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0xef,0x01,0x00,0x00,0xee,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0xee,0x01,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x50,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0xf1,0x01,0x00,0x00,
- 0xef,0x01,0x00,0x00,0xf0,0x01,0x00,0x00,0x75,0x01,0x00,0x00,0x56,0x00,0x05,0x00,
- 0x16,0x00,0x00,0x00,0xf2,0x01,0x00,0x00,0xeb,0x01,0x00,0x00,0xec,0x01,0x00,0x00,
- 0x57,0x00,0x06,0x00,0x39,0x00,0x00,0x00,0xf3,0x01,0x00,0x00,0xf2,0x01,0x00,0x00,
- 0xf1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0xf4,0x01,0x00,0x00,0xf3,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,
- 0x32,0x00,0x00,0x00,0xf5,0x01,0x00,0x00,0xf4,0x01,0x00,0x00,0x8a,0x01,0x00,0x00,
- 0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,0xf6,0x01,0x00,0x00,0xf5,0x01,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0xf7,0x01,0x00,0x00,0xea,0x01,0x00,0x00,0xf6,0x01,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x12,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,0x13,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,
- 0x10,0x00,0x00,0x00,0xf9,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0x50,0x00,0x05,0x00,
- 0x45,0x00,0x00,0x00,0xfa,0x01,0x00,0x00,0x2e,0x00,0x00,0x00,0x77,0x01,0x00,0x00,
- 0x81,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0xfb,0x01,0x00,0x00,0x82,0x01,0x00,0x00,
- 0xfa,0x01,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,
- 0xfb,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0xfd,0x01,0x00,0x00,0xfb,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x06,0x00,
- 0x26,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,0xfd,0x01,0x00,0x00,
- 0x75,0x01,0x00,0x00,0x56,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
- 0xf8,0x01,0x00,0x00,0xf9,0x01,0x00,0x00,0x57,0x00,0x06,0x00,0x39,0x00,0x00,0x00,
- 0x00,0x02,0x00,0x00,0xff,0x01,0x00,0x00,0xfe,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x02,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,0x32,0x00,0x00,0x00,0x02,0x02,0x00,0x00,
- 0x01,0x02,0x00,0x00,0x8a,0x01,0x00,0x00,0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,
- 0x03,0x02,0x00,0x00,0x02,0x02,0x00,0x00,0x23,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,
- 0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0xf7,0x01,0x00,0x00,
- 0x03,0x02,0x00,0x00,0x3d,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0x05,0x02,0x00,0x00,
- 0x13,0x00,0x00,0x00,0x3d,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x06,0x02,0x00,0x00,
- 0x14,0x00,0x00,0x00,0x50,0x00,0x05,0x00,0x45,0x00,0x00,0x00,0x07,0x02,0x00,0x00,
- 0x77,0x01,0x00,0x00,0x77,0x01,0x00,0x00,0x81,0x00,0x05,0x00,0x45,0x00,0x00,0x00,
- 0x08,0x02,0x00,0x00,0x82,0x01,0x00,0x00,0x07,0x02,0x00,0x00,0x51,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x08,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x08,0x02,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x50,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,
- 0x09,0x02,0x00,0x00,0x0a,0x02,0x00,0x00,0x75,0x01,0x00,0x00,0x56,0x00,0x05,0x00,
- 0x16,0x00,0x00,0x00,0x0c,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0x06,0x02,0x00,0x00,
- 0x57,0x00,0x06,0x00,0x39,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,0x0c,0x02,0x00,0x00,
- 0x0b,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x0e,0x02,0x00,0x00,0x0d,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xbe,0x00,0x05,0x00,
- 0x32,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x0e,0x02,0x00,0x00,0x8a,0x01,0x00,0x00,
- 0xa9,0x00,0x06,0x00,0x21,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x0f,0x02,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x81,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x11,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x10,0x02,0x00,0x00,0x85,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x11,0x02,0x00,0x00,0x4f,0x00,0x00,0x00,
- 0xf9,0x00,0x02,0x00,0x66,0x01,0x00,0x00,0xf8,0x00,0x02,0x00,0x66,0x01,0x00,0x00,
- 0xf5,0x00,0x07,0x00,0x21,0x00,0x00,0x00,0x13,0x02,0x00,0x00,0x23,0x00,0x00,0x00,
- 0xa0,0x01,0x00,0x00,0x12,0x02,0x00,0x00,0x9f,0x01,0x00,0x00,0x85,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0xc7,0x00,0x00,0x00,0x13,0x02,0x00,0x00,
- 0xf9,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xd3,0x00,0x00,0x00,
- 0xf5,0x00,0x07,0x00,0x21,0x00,0x00,0x00,0x15,0x02,0x00,0x00,0x65,0x01,0x00,0x00,
- 0xd9,0x00,0x00,0x00,0x14,0x02,0x00,0x00,0x66,0x01,0x00,0x00,0xf9,0x00,0x02,0x00,
- 0xcc,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0xcc,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
- 0x21,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0xc7,0x00,0x00,0x00,0x99,0x00,0x00,0x00,
- 0x15,0x02,0x00,0x00,0xd3,0x00,0x00,0x00,0x94,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x17,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,
- 0x21,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
- 0x17,0x02,0x00,0x00,0x2e,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x81,0x00,0x05,0x00,
- 0x26,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0xc8,0x00,0x00,0x00,0x72,0x00,0x00,0x00,
- 0x0c,0x00,0x06,0x00,0x26,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x45,0x00,0x00,0x00,0x19,0x02,0x00,0x00,0x94,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x1b,0x02,0x00,0x00,0x6d,0x00,0x00,0x00,0x1a,0x02,0x00,0x00,0x0c,0x00,0x08,0x00,
- 0x21,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,
- 0x1b,0x02,0x00,0x00,0x2e,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x0c,0x00,0x07,0x00,
- 0x21,0x00,0x00,0x00,0x1d,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,
- 0x1c,0x02,0x00,0x00,0x7d,0x00,0x00,0x00,0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x1e,0x02,0x00,0x00,0x5c,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x83,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x1f,0x02,0x00,0x00,0x23,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,
- 0x85,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x1d,0x02,0x00,0x00,
- 0x1f,0x02,0x00,0x00,0x8e,0x00,0x05,0x00,0x26,0x00,0x00,0x00,0x21,0x02,0x00,0x00,
- 0x76,0x00,0x00,0x00,0x18,0x02,0x00,0x00,0x8e,0x00,0x05,0x00,0x26,0x00,0x00,0x00,
- 0x22,0x02,0x00,0x00,0x7b,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x8e,0x00,0x05,0x00,
- 0x26,0x00,0x00,0x00,0x23,0x02,0x00,0x00,0x22,0x02,0x00,0x00,0x18,0x02,0x00,0x00,
- 0x81,0x00,0x05,0x00,0x26,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x21,0x02,0x00,0x00,
- 0x23,0x02,0x00,0x00,0x41,0x00,0x07,0x00,0x4a,0x00,0x00,0x00,0x25,0x02,0x00,0x00,
- 0x0d,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,
- 0x3d,0x00,0x04,0x00,0x39,0x00,0x00,0x00,0x26,0x02,0x00,0x00,0x25,0x02,0x00,0x00,
- 0x4f,0x00,0x08,0x00,0x26,0x00,0x00,0x00,0x27,0x02,0x00,0x00,0x26,0x02,0x00,0x00,
- 0x26,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x85,0x00,0x05,0x00,0x26,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x24,0x02,0x00,0x00,
- 0x27,0x02,0x00,0x00,0x8e,0x00,0x05,0x00,0x26,0x00,0x00,0x00,0x29,0x02,0x00,0x00,
- 0x28,0x02,0x00,0x00,0x16,0x02,0x00,0x00,0x81,0x00,0x05,0x00,0x26,0x00,0x00,0x00,
- 0x2a,0x02,0x00,0x00,0x8b,0x00,0x00,0x00,0x29,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,
- 0x8d,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x8d,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,
- 0x26,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x95,0x00,0x00,0x00,
- 0x2a,0x02,0x00,0x00,0xcc,0x00,0x00,0x00,0x80,0x00,0x05,0x00,0x1b,0x00,0x00,0x00,
- 0x8f,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0xf9,0x00,0x02,0x00,
- 0x8a,0x00,0x00,0x00,0xf8,0x00,0x02,0x00,0x91,0x00,0x00,0x00,0x51,0x00,0x05,0x00,
- 0x21,0x00,0x00,0x00,0x2b,0x02,0x00,0x00,0x67,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x2c,0x02,0x00,0x00,0x8b,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,0x2d,0x02,0x00,0x00,
- 0x8b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x05,0x00,0x21,0x00,0x00,0x00,
- 0x2e,0x02,0x00,0x00,0x8b,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x50,0x00,0x07,0x00,
- 0x39,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,0x2c,0x02,0x00,0x00,0x2d,0x02,0x00,0x00,
- 0x2e,0x02,0x00,0x00,0x2b,0x02,0x00,0x00,0xf9,0x00,0x02,0x00,0x55,0x00,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0x55,0x00,0x00,0x00,0xf5,0x00,0x07,0x00,0x39,0x00,0x00,0x00,
- 0x30,0x02,0x00,0x00,0x67,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x2f,0x02,0x00,0x00,
- 0x91,0x00,0x00,0x00,0x3e,0x00,0x03,0x00,0x06,0x00,0x00,0x00,0x30,0x02,0x00,0x00,
- 0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
-};
-
-static const unsigned char _fragmentMainDXIL[] = {
- 0x44,0x58,0x42,0x43,0x76,0x14,0xe9,0x03,0x2c,0x49,0xf4,0x24,0xed,0x17,0xb2,0xda,
- 0xdc,0xbc,0x6e,0x13,0x01,0x00,0x00,0x00,0x98,0x22,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x3c,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x04,0x01,0x00,0x00,
- 0x78,0x02,0x00,0x00,0xa0,0x0d,0x00,0x00,0xbc,0x0d,0x00,0x00,0x53,0x46,0x49,0x30,
- 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x53,0x47,0x31,
- 0x74,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x68,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x68,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x45,0x58,0x43,
- 0x4f,0x4f,0x52,0x44,0x00,0x00,0x00,0x00,0x4f,0x53,0x47,0x31,0x34,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x53,0x56,0x5f,0x54,0x61,0x72,0x67,0x65,
- 0x74,0x00,0x00,0x00,0x50,0x53,0x56,0x30,0x6c,0x01,0x00,0x00,0x34,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x03,0x01,0x00,0x03,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x1c,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x00,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,
- 0x44,0x00,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x00,0x54,0x45,0x58,0x43,0x4f,
- 0x4f,0x52,0x44,0x00,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x4d,0x61,0x69,0x6e,
- 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x43,0x00,0x03,0x02,0x00,0x00,0x0a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x01,0x01,0x43,0x00,0x03,0x02,0x00,0x00,0x13,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x01,0x02,0x42,0x00,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x44,0x10,0x03,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x53,0x54,0x41,0x54,0x20,0x0b,0x00,0x00,
- 0x60,0x00,0x00,0x00,0xc8,0x02,0x00,0x00,0x44,0x58,0x49,0x4c,0x00,0x01,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x08,0x0b,0x00,0x00,0x42,0x43,0xc0,0xde,0x21,0x0c,0x00,0x00,
- 0xbf,0x02,0x00,0x00,0x0b,0x82,0x20,0x00,0x02,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
- 0x07,0x81,0x23,0x91,0x41,0xc8,0x04,0x49,0x06,0x10,0x32,0x39,0x92,0x01,0x84,0x0c,
- 0x25,0x05,0x08,0x19,0x1e,0x04,0x8b,0x62,0x80,0x18,0x45,0x02,0x42,0x92,0x0b,0x42,
- 0xc4,0x10,0x32,0x14,0x38,0x08,0x18,0x4b,0x0a,0x32,0x62,0x88,0x48,0x90,0x14,0x20,
- 0x43,0x46,0x88,0xa5,0x00,0x19,0x32,0x42,0xe4,0x48,0x0e,0x90,0x11,0x23,0xc4,0x50,
- 0x41,0x51,0x81,0x8c,0xe1,0x83,0xe5,0x8a,0x04,0x31,0x46,0x06,0x51,0x18,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x1b,0x8c,0xe0,0xff,0xff,0xff,0xff,0x07,0x40,0x02,0xa8,0x0d,
- 0x84,0xf0,0xff,0xff,0xff,0xff,0x03,0x20,0x6d,0x30,0x86,0xff,0xff,0xff,0xff,0x1f,
- 0x00,0x09,0xa8,0x00,0x49,0x18,0x00,0x00,0x03,0x00,0x00,0x00,0x13,0x82,0x60,0x42,
- 0x20,0x4c,0x08,0x06,0x00,0x00,0x00,0x00,0x89,0x20,0x00,0x00,0x85,0x00,0x00,0x00,
- 0x32,0x22,0x88,0x09,0x20,0x64,0x85,0x04,0x13,0x23,0xa4,0x84,0x04,0x13,0x23,0xe3,
- 0x84,0xa1,0x90,0x14,0x12,0x4c,0x8c,0x8c,0x0b,0x84,0xc4,0x4c,0x10,0xbc,0xc1,0x08,
- 0x40,0x09,0x00,0x0a,0x66,0x00,0xe6,0x08,0xc0,0x60,0x8e,0x00,0x29,0xc6,0x40,0x10,
- 0x44,0x41,0x90,0x51,0x0c,0x80,0x20,0x88,0x62,0x20,0xe4,0xa6,0xe1,0xf2,0x27,0xec,
- 0x21,0x24,0x7f,0x25,0xa4,0x95,0x98,0xfc,0xe2,0xb6,0x51,0x31,0x0c,0xc3,0x40,0x50,
- 0x71,0xcf,0x70,0xf9,0x13,0xf6,0x10,0x92,0x1f,0x02,0xcd,0xb0,0x10,0x28,0x58,0x0a,
- 0xa3,0x10,0x0c,0x33,0x0c,0xc3,0x40,0x10,0xc4,0x40,0x4d,0x41,0x06,0x62,0x18,0x86,
- 0x61,0x18,0xe8,0x29,0xc3,0x40,0x0c,0x14,0x15,0x62,0x20,0x86,0x81,0xa6,0xa3,0x86,
- 0xcb,0x9f,0xb0,0x87,0x90,0x7c,0x6e,0xa3,0x8a,0x95,0x98,0xfc,0xe2,0xb6,0x11,0x31,
- 0x0c,0xc3,0x50,0x88,0x8a,0x60,0x08,0xb2,0x4a,0x31,0x10,0xc3,0x30,0x10,0x36,0x47,
- 0x10,0x14,0x83,0x21,0x0a,0x82,0xd0,0x68,0x1b,0x08,0x18,0x46,0x20,0x86,0x99,0xda,
- 0x60,0x1c,0xd8,0x21,0x1c,0xe6,0x61,0x1e,0xdc,0x80,0x16,0xca,0x01,0x1f,0xe8,0xa1,
- 0x1e,0xe4,0xa1,0x1c,0xe4,0x80,0x14,0xf8,0xc0,0x1e,0xca,0x61,0x1c,0xe8,0xe1,0x1d,
- 0xe4,0x81,0x0f,0xcc,0x81,0x1d,0xde,0x21,0x1c,0xe8,0x81,0x0d,0xc0,0x80,0x0e,0xfc,
- 0x00,0x0c,0xfc,0x40,0x0f,0xf4,0xa0,0x1d,0xd2,0x01,0x1e,0xe6,0xe1,0x17,0xe8,0x21,
- 0x1f,0xe0,0xa1,0x1c,0x50,0x40,0xcc,0x24,0x06,0xe3,0xc0,0x0e,0xe1,0x30,0x0f,0xf3,
- 0xe0,0x06,0xb4,0x50,0x0e,0xf8,0x40,0x0f,0xf5,0x20,0x0f,0xe5,0x20,0x07,0xa4,0xc0,
- 0x07,0xf6,0x50,0x0e,0xe3,0x40,0x0f,0xef,0x20,0x0f,0x7c,0x60,0x0e,0xec,0xf0,0x0e,
- 0xe1,0x40,0x0f,0x6c,0x00,0x06,0x74,0xe0,0x07,0x60,0xe0,0x07,0x48,0xf0,0x3e,0x02,
- 0x67,0x92,0x83,0x71,0x60,0x87,0x70,0x98,0x87,0x79,0x70,0x03,0x5a,0x28,0x07,0x7c,
- 0xa0,0x87,0x7a,0x90,0x87,0x72,0x90,0x03,0x52,0x08,0x05,0x79,0x90,0x87,0x70,0xc8,
- 0x07,0x3e,0xb0,0x87,0x72,0x18,0x07,0x7a,0x78,0x07,0x79,0xe0,0x03,0x73,0x60,0x87,
- 0x77,0x08,0x07,0x7a,0x60,0x03,0x30,0xa0,0x03,0x3f,0x00,0x03,0x3f,0xd0,0x03,0x3d,
- 0x68,0x87,0x74,0x80,0x87,0x79,0xf8,0x05,0x7a,0xc8,0x07,0x78,0x28,0x07,0x14,0x10,
- 0x33,0x9d,0xc1,0x38,0xb0,0x43,0x38,0xcc,0xc3,0x3c,0xb8,0x01,0x2d,0x94,0x03,0x3e,
- 0xd0,0x43,0x3d,0xc8,0x43,0x39,0xc8,0x01,0x29,0x84,0x82,0x3c,0xc8,0x43,0x38,0xe4,
- 0x03,0x1f,0xd8,0x43,0x39,0x8c,0x03,0x3d,0xbc,0x83,0x3c,0xf0,0x81,0x39,0xb0,0xc3,
- 0x3b,0x84,0x03,0x3d,0xb0,0x01,0x18,0xd0,0x81,0x1f,0x80,0x81,0x1f,0x20,0xc1,0x13,
- 0x69,0x4c,0x02,0x2f,0x11,0xca,0x44,0xf0,0x8e,0x91,0xa6,0x88,0x12,0x26,0xbf,0x44,
- 0x8c,0x63,0x42,0x84,0xe7,0x79,0x5e,0x22,0xa0,0x07,0x06,0x87,0x23,0x4d,0x0b,0x80,
- 0x39,0xd4,0xe4,0x4f,0xd8,0x43,0xfc,0x5f,0x04,0x18,0x0c,0xd1,0x4c,0x6e,0x83,0x14,
- 0x4e,0xc4,0x48,0x48,0xf1,0x3c,0xcf,0xf3,0x3c,0xcf,0x3c,0x53,0x52,0x6f,0x92,0xa6,
- 0x88,0x12,0x26,0x9f,0x05,0x98,0x67,0x21,0x22,0x76,0x02,0x26,0x02,0x05,0x04,0xb1,
- 0xc9,0x40,0x00,0x00,0x13,0x14,0x72,0xc0,0x87,0x74,0x60,0x87,0x36,0x68,0x87,0x79,
- 0x68,0x03,0x72,0xc0,0x87,0x0d,0xaf,0x50,0x0e,0x6d,0xd0,0x0e,0x7a,0x50,0x0e,0x6d,
- 0x00,0x0f,0x7a,0x30,0x07,0x72,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x71,0xa0,
- 0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x78,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,
- 0x71,0x60,0x07,0x7a,0x30,0x07,0x72,0xd0,0x06,0xe9,0x30,0x07,0x72,0xa0,0x07,0x73,
- 0x20,0x07,0x6d,0x90,0x0e,0x76,0x40,0x07,0x7a,0x60,0x07,0x74,0xd0,0x06,0xe6,0x10,
- 0x07,0x76,0xa0,0x07,0x73,0x20,0x07,0x6d,0x60,0x0e,0x73,0x20,0x07,0x7a,0x30,0x07,
- 0x72,0xd0,0x06,0xe6,0x60,0x07,0x74,0xa0,0x07,0x76,0x40,0x07,0x6d,0xe0,0x0e,0x78,
- 0xa0,0x07,0x71,0x60,0x07,0x7a,0x30,0x07,0x72,0xa0,0x07,0x76,0x40,0x07,0x43,0x9e,
- 0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,0x3c,0x06,0x10,0x00,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x79,0x10,0x20,0x00,0x04,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x18,0xf2,0x34,0x40,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x30,0xe4,0x79,0x80,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,
- 0xc8,0x13,0x01,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x90,0x67,0x02,
- 0x02,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x21,0x8f,0x05,0x04,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43,0x1e,0x0c,0x08,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x86,0x3c,0x1b,0x10,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x64,0x81,0x00,0x1b,0x00,0x00,0x00,0x32,0x1e,0x98,0x18,0x19,0x11,0x4c,0x90,
- 0x8c,0x09,0x26,0x47,0xc6,0x04,0x43,0x22,0x4a,0x60,0x04,0xa0,0x18,0x8a,0xa0,0x24,
- 0xca,0xa1,0x0c,0x0a,0x7c,0xa2,0x00,0x03,0x4a,0xa3,0x10,0x0a,0xa4,0x80,0x0a,0xac,
- 0x40,0x03,0x0a,0x38,0xa0,0xc0,0x03,0x0a,0x3c,0xa1,0xc0,0x17,0xca,0xa3,0x28,0x09,
- 0xca,0xfb,0xa0,0x38,0x0a,0x82,0x8a,0x92,0x18,0x01,0x28,0x82,0x32,0x28,0x90,0x42,
- 0x20,0xad,0x06,0x28,0x9c,0x01,0x20,0x72,0x06,0x80,0xd0,0x19,0x00,0x52,0x67,0x00,
- 0x68,0x9d,0x01,0xa0,0x76,0x06,0x80,0xdc,0xb1,0x18,0x85,0x38,0x8e,0x03,0x38,0x8e,
- 0x03,0x78,0x1e,0x00,0x79,0x18,0x00,0x00,0x34,0x01,0x00,0x00,0x1a,0x03,0x4c,0x90,
- 0x46,0x02,0x13,0xc4,0x8f,0x0c,0x6f,0x0c,0x05,0x4e,0x2e,0xcd,0x2e,0x8c,0xae,0x2c,
- 0x05,0x24,0xc6,0x25,0xc7,0x05,0xc6,0x25,0x06,0x04,0x45,0x66,0x0c,0x87,0x26,0x2c,
- 0x66,0xac,0x26,0x65,0x43,0x10,0x4c,0x10,0x08,0x65,0x82,0x40,0x2c,0x1b,0x84,0x81,
- 0xd8,0x20,0x10,0x04,0x05,0xb8,0xb9,0x09,0x02,0xc1,0x6c,0x18,0x0e,0x84,0x98,0x20,
- 0x84,0x41,0x1a,0x70,0x11,0x0b,0x9b,0x2b,0xa3,0x2a,0xc3,0xa3,0xab,0x93,0x2b,0x9b,
- 0x20,0x10,0xcd,0x04,0x81,0x70,0x36,0x08,0x44,0xb3,0x21,0x21,0x94,0x85,0x21,0x06,
- 0x86,0x70,0x26,0x08,0x64,0xa0,0x06,0x54,0xe6,0xd0,0xc2,0xc8,0xde,0xee,0x9a,0xc2,
- 0xe0,0xe6,0x26,0x08,0xc4,0xb3,0x21,0x19,0xa0,0x88,0x19,0x06,0x89,0x70,0x36,0x08,
- 0xcf,0x34,0x41,0x58,0x83,0x36,0x60,0x45,0x97,0x07,0x57,0xf6,0x65,0x24,0x17,0x76,
- 0xd6,0x56,0xe6,0x46,0x57,0xe5,0x96,0x66,0xf6,0x26,0xd7,0x36,0x37,0x41,0x20,0xa0,
- 0x09,0x02,0x11,0x6d,0x40,0x88,0xca,0xba,0x88,0x01,0x03,0x36,0x04,0xd9,0x04,0xa1,
- 0x0d,0xdc,0x80,0x8b,0x58,0xd8,0x5c,0xd9,0x54,0x58,0x1b,0x1c,0x5b,0x99,0xdc,0x06,
- 0x84,0xd8,0x38,0x86,0x18,0x08,0x80,0xcd,0x1c,0x5a,0x18,0xd9,0xdb,0xdd,0x54,0x58,
- 0x1b,0x1c,0x5b,0x99,0xdc,0x06,0x64,0xd8,0x3c,0x66,0x18,0x08,0x60,0x83,0xd0,0x7d,
- 0x1b,0x08,0x0a,0xd0,0xc0,0x60,0x82,0x80,0x06,0x6b,0x30,0x41,0x20,0x24,0x32,0x70,
- 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x13,0x04,0x62,0x9a,0x20,
- 0x10,0xd4,0x06,0x04,0x21,0x83,0x8b,0x90,0x9a,0x32,0x30,0x03,0x3a,0x64,0x69,0x72,
- 0x65,0x63,0x74,0x69,0x6f,0x6e,0x52,0x61,0x6e,0x67,0x65,0x13,0x04,0xa2,0xda,0x80,
- 0x20,0x68,0x70,0xa5,0x81,0xd4,0x94,0x81,0x19,0xb0,0x18,0x7b,0x63,0x7b,0x93,0x9b,
- 0x20,0x10,0xd6,0x06,0x04,0x59,0x83,0x8b,0x0d,0xa4,0xa6,0x0c,0xcc,0x80,0xc4,0xd8,
- 0x9b,0x5b,0xd9,0x04,0x81,0xb8,0x36,0x20,0x88,0x1b,0x5c,0x6f,0x20,0x35,0x65,0x60,
- 0x06,0x1b,0x8a,0x31,0x38,0x03,0x35,0x68,0x03,0x38,0x98,0x20,0xa8,0x01,0x1b,0xf0,
- 0x33,0x92,0x0b,0x3b,0x6b,0x2b,0x73,0xa3,0xab,0x72,0x4b,0x33,0x7b,0x93,0x6b,0x9b,
- 0xfb,0x1a,0x0b,0x6b,0x2b,0x93,0x0b,0x83,0x7a,0x9b,0x4b,0xa3,0x4b,0x7b,0x73,0x9b,
- 0x20,0x68,0x68,0xb0,0x41,0x41,0xe6,0xe0,0x22,0xa4,0xa6,0xa1,0x83,0x32,0x30,0x03,
- 0x62,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x5f,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x1b,0x10,0xc4,0x0e,0xae,0x34,0x90,
- 0x9a,0x32,0x30,0x03,0x6a,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,
- 0x66,0x6f,0x72,0x6d,0x73,0x5f,0x62,0x61,0x73,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x1b,
- 0x10,0x04,0x0f,0x2e,0x36,0x90,0x9a,0x32,0x30,0x03,0x66,0x46,0x72,0x61,0x67,0x6d,
- 0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x5f,0x65,0x6d,0x69,0x73,
- 0x73,0x69,0x76,0x65,0x1b,0x10,0x44,0x0f,0xae,0x37,0x90,0x9a,0x32,0x30,0x03,0x66,
- 0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x1b,0x10,0x84,0x0f,0xae,0x31,0x90,
- 0x9a,0x32,0x30,0x03,0x5e,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,
- 0x66,0x6f,0x72,0x6d,0x73,0x5f,0x63,0x6f,0x75,0x6e,0x74,0x73,0x13,0x04,0x02,0xdb,
- 0x80,0x20,0x7e,0x70,0xfd,0x81,0xd4,0x94,0x81,0x19,0xb0,0x33,0x92,0x0b,0x3b,0x6b,
- 0x2b,0x73,0xa3,0xab,0x72,0x4b,0x33,0x7b,0x93,0x6b,0x9b,0xfb,0x9a,0x43,0x0b,0x23,
- 0x7b,0xbb,0x83,0x0a,0x93,0x0b,0x6b,0x9b,0x9b,0x20,0x10,0xd9,0x06,0x04,0x09,0x85,
- 0x4b,0x14,0xa4,0xa6,0x0c,0xcc,0x80,0x9d,0x91,0x5c,0xd8,0x59,0x5b,0x99,0x1b,0x5d,
- 0x95,0x5b,0x9a,0xd9,0x9b,0x5c,0xdb,0xdc,0xd7,0x1c,0x5a,0x18,0xd9,0xdb,0x5d,0x53,
- 0x18,0x9d,0x5c,0x1a,0xde,0x86,0xc1,0x0c,0xcc,0x80,0x99,0x20,0x10,0xda,0x06,0x04,
- 0x21,0x05,0xa6,0x14,0x2e,0x53,0x90,0x1a,0x6e,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,
- 0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,
- 0x49,0x6e,0x66,0x6f,0x13,0x04,0x62,0xdb,0x80,0x20,0xa8,0x70,0xa5,0x82,0xd4,0x94,
- 0x81,0x19,0xf0,0x32,0x92,0x0b,0x3b,0x6b,0x2b,0x73,0xa3,0xab,0x72,0x4b,0x33,0x7b,
- 0x93,0x6b,0x9b,0xfb,0x62,0x4b,0x3b,0x43,0xa3,0x9b,0x9b,0x20,0x10,0xdc,0x06,0x02,
- 0x59,0x85,0x8b,0x15,0x36,0x2c,0x58,0x1d,0xdc,0x41,0x1e,0xec,0x41,0x1f,0x80,0xc2,
- 0x28,0x9c,0x82,0x2a,0xb4,0xc2,0x86,0x82,0x10,0x83,0x38,0x90,0x03,0x57,0x98,0x20,
- 0x08,0xc0,0x06,0x60,0xc3,0x40,0xc4,0x42,0x2c,0x6c,0x08,0x64,0x61,0xc3,0x30,0xc0,
- 0xc2,0x2c,0x4c,0x10,0xdc,0xe0,0x0d,0x36,0x04,0xb5,0x40,0xc6,0x4c,0x2e,0xec,0xac,
- 0xad,0xcc,0x8d,0xae,0x29,0x2c,0xcd,0x8d,0x08,0x55,0x11,0xd6,0xd0,0xd3,0x93,0x14,
- 0xd1,0x04,0xa1,0x10,0x83,0x09,0x42,0x31,0x06,0x1b,0x02,0x62,0x82,0x50,0x90,0xc1,
- 0x04,0xa1,0x28,0x83,0x0d,0xc2,0x25,0x6d,0x58,0x08,0x5c,0xc8,0x05,0x5d,0xd8,0x05,
- 0x5e,0x18,0x7a,0x81,0xd0,0x05,0x5f,0xd8,0x10,0x0c,0x1b,0x96,0x01,0x17,0x72,0x41,
- 0x17,0xc0,0x81,0x17,0x86,0x5e,0x18,0x74,0xc1,0x17,0x36,0x04,0xcc,0x06,0xe1,0xba,
- 0x36,0x2c,0x0c,0x2e,0xe4,0x82,0x2e,0x88,0x03,0x2f,0x0c,0xbc,0xc0,0xe8,0xc2,0x38,
- 0x6c,0x18,0x7e,0x21,0x1c,0xc8,0x81,0xc9,0x94,0xd5,0x17,0x55,0x98,0xdc,0x59,0x19,
- 0xdd,0x04,0xa1,0x30,0x83,0x09,0x42,0x71,0x06,0x13,0x04,0xa2,0xdb,0x20,0x5c,0xe9,
- 0xb0,0x61,0x21,0xcc,0x21,0x17,0xce,0x61,0x17,0x74,0x61,0x40,0x07,0x42,0x17,0xd4,
- 0x61,0x43,0xb0,0x0e,0x1b,0x86,0x72,0x60,0x07,0x60,0x43,0x01,0x0b,0xb7,0xd0,0x0e,
- 0x61,0x00,0x10,0x11,0x93,0x0b,0x73,0x1b,0x43,0x2b,0x9b,0xa3,0x61,0xc6,0xf6,0x16,
- 0x46,0x37,0x37,0x41,0x20,0x3c,0x16,0x69,0x6e,0x73,0x74,0x73,0x13,0x04,0xe2,0x23,
- 0x91,0xe6,0x46,0x37,0x37,0x41,0x20,0xc0,0x80,0xc6,0x5c,0xda,0xd9,0x17,0x1b,0xd9,
- 0x04,0x81,0x08,0x03,0x1a,0x73,0x69,0x67,0x5f,0x73,0x74,0x44,0xe8,0xca,0xf0,0xbe,
- 0xdc,0xde,0xe4,0xda,0x58,0xd4,0xa5,0xb9,0xd1,0xcd,0x6d,0x80,0xde,0xa1,0x0c,0xe0,
- 0x21,0x1e,0xe4,0x61,0x1e,0xe8,0xa1,0x1e,0xec,0xe1,0x1e,0xf0,0xc1,0x0c,0xf2,0x21,
- 0x1d,0xf4,0x41,0xaa,0xc2,0xc6,0x66,0xd7,0xe6,0x92,0x46,0x56,0xe6,0x46,0x37,0x25,
- 0x08,0xaa,0x90,0xe1,0xb9,0xd8,0x95,0xc9,0xcd,0xa5,0xbd,0xb9,0x4d,0x09,0x88,0x26,
- 0x64,0x78,0x2e,0x76,0x61,0x6c,0x76,0x65,0x72,0x53,0x82,0xa2,0x0e,0x19,0x9e,0xcb,
- 0x1c,0x5a,0x18,0x59,0x99,0x5c,0xd3,0x1b,0x59,0x19,0xdb,0x94,0x00,0x29,0x43,0x86,
- 0xe7,0x22,0x57,0x36,0xf7,0x56,0x27,0x37,0x56,0x36,0x37,0x25,0x00,0x83,0x4a,0x64,
- 0x78,0x2e,0x74,0x79,0x70,0x65,0x41,0x6e,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,
- 0x73,0x53,0x04,0x57,0x98,0x85,0x3a,0x64,0x78,0x2e,0x76,0x69,0x65,0x77,0x49,0x64,
- 0x53,0x74,0x61,0x74,0x65,0x53,0x82,0x5a,0xa8,0x43,0x86,0xe7,0x52,0xe6,0x46,0x27,
- 0x97,0x07,0xf5,0x96,0xe6,0x46,0x37,0x37,0x25,0x68,0x87,0x2e,0x64,0x78,0x2e,0x63,
- 0x6f,0x75,0x6e,0x74,0x65,0x72,0x73,0x53,0x02,0x7d,0x00,0x00,0x79,0x18,0x00,0x00,
- 0x51,0x00,0x00,0x00,0x33,0x08,0x80,0x1c,0xc4,0xe1,0x1c,0x66,0x14,0x01,0x3d,0x88,
- 0x43,0x38,0x84,0xc3,0x8c,0x42,0x80,0x07,0x79,0x78,0x07,0x73,0x98,0x71,0x0c,0xe6,
- 0x00,0x0f,0xed,0x10,0x0e,0xf4,0x80,0x0e,0x33,0x0c,0x42,0x1e,0xc2,0xc1,0x1d,0xce,
- 0xa1,0x1c,0x66,0x30,0x05,0x3d,0x88,0x43,0x38,0x84,0x83,0x1b,0xcc,0x03,0x3d,0xc8,
- 0x43,0x3d,0x8c,0x03,0x3d,0xcc,0x78,0x8c,0x74,0x70,0x07,0x7b,0x08,0x07,0x79,0x48,
- 0x87,0x70,0x70,0x07,0x7a,0x70,0x03,0x76,0x78,0x87,0x70,0x20,0x87,0x19,0xcc,0x11,
- 0x0e,0xec,0x90,0x0e,0xe1,0x30,0x0f,0x6e,0x30,0x0f,0xe3,0xf0,0x0e,0xf0,0x50,0x0e,
- 0x33,0x10,0xc4,0x1d,0xde,0x21,0x1c,0xd8,0x21,0x1d,0xc2,0x61,0x1e,0x66,0x30,0x89,
- 0x3b,0xbc,0x83,0x3b,0xd0,0x43,0x39,0xb4,0x03,0x3c,0xbc,0x83,0x3c,0x84,0x03,0x3b,
- 0xcc,0xf0,0x14,0x76,0x60,0x07,0x7b,0x68,0x07,0x37,0x68,0x87,0x72,0x68,0x07,0x37,
- 0x80,0x87,0x70,0x90,0x87,0x70,0x60,0x07,0x76,0x28,0x07,0x76,0xf8,0x05,0x76,0x78,
- 0x87,0x77,0x80,0x87,0x5f,0x08,0x87,0x71,0x18,0x87,0x72,0x98,0x87,0x79,0x98,0x81,
- 0x2c,0xee,0xf0,0x0e,0xee,0xe0,0x0e,0xf5,0xc0,0x0e,0xec,0x30,0x03,0x62,0xc8,0xa1,
- 0x1c,0xe4,0xa1,0x1c,0xcc,0xa1,0x1c,0xe4,0xa1,0x1c,0xdc,0x61,0x1c,0xca,0x21,0x1c,
- 0xc4,0x81,0x1d,0xca,0x61,0x06,0xd6,0x90,0x43,0x39,0xc8,0x43,0x39,0x98,0x43,0x39,
- 0xc8,0x43,0x39,0xb8,0xc3,0x38,0x94,0x43,0x38,0x88,0x03,0x3b,0x94,0xc3,0x2f,0xbc,
- 0x83,0x3c,0xfc,0x82,0x3b,0xd4,0x03,0x3b,0xb0,0xc3,0x8c,0xc8,0x21,0x07,0x7c,0x70,
- 0x03,0x72,0x10,0x87,0x73,0x70,0x03,0x7b,0x08,0x07,0x79,0x60,0x87,0x70,0xc8,0x87,
- 0x77,0xa8,0x07,0x7a,0x98,0x81,0x3c,0xe4,0x80,0x0f,0x6e,0x40,0x0f,0xe5,0xd0,0x0e,
- 0xf0,0x30,0x83,0x81,0xc8,0x01,0x1f,0xdc,0x40,0x1c,0xe4,0xa1,0x1c,0xc2,0x61,0x1d,
- 0xdc,0x40,0x1c,0xe4,0x01,0x00,0x00,0x00,0x71,0x20,0x00,0x00,0x27,0x00,0x00,0x00,
- 0x66,0x00,0x0d,0x97,0xef,0x3c,0x7e,0x80,0x34,0x40,0x84,0xf9,0xc5,0x6d,0xdb,0xc1,
- 0x36,0x5c,0xbe,0xf3,0xf8,0x42,0x40,0x15,0x05,0x11,0x95,0x0e,0x30,0x94,0x84,0x01,
- 0x08,0x98,0x5f,0xdc,0xb6,0x25,0x48,0xc3,0xe5,0x3b,0x8f,0x2f,0x44,0x04,0x30,0x11,
- 0x21,0xd0,0x0c,0x0b,0x61,0x04,0xce,0x70,0xf9,0xce,0xe3,0x0f,0xce,0x74,0xfb,0xc5,
- 0x6d,0x5b,0xc0,0x34,0x5c,0xbe,0xf3,0xf8,0x8b,0x03,0x0c,0x62,0xf3,0x50,0x93,0x5f,
- 0xdc,0xb6,0x0d,0x40,0xc3,0xe5,0x3b,0x8f,0x2f,0x01,0xcc,0xb3,0x10,0x7e,0x71,0xdb,
- 0x26,0x50,0x0d,0x97,0xef,0x3c,0xbe,0x34,0x39,0x11,0x81,0x52,0xd3,0x43,0x4d,0x7e,
- 0x71,0xdb,0x86,0x20,0x0d,0x97,0xef,0x3c,0xfe,0x44,0x44,0x13,0x02,0x44,0x98,0x5f,
- 0xdc,0xb6,0x15,0x3c,0xc3,0xe5,0x3b,0x8f,0x4f,0x35,0x40,0x84,0xf9,0xc5,0x6d,0x1b,
- 0x00,0x53,0x44,0x80,0xc1,0x10,0xcd,0x64,0x02,0x48,0x03,0x00,0x00,0x00,0x00,0x00,
- 0x48,0x41,0x53,0x48,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0xa1,0x0b,0x24,
- 0x89,0x0b,0x11,0x71,0x2e,0x64,0x7a,0x94,0xc7,0x0c,0x7c,0x84,0x44,0x58,0x49,0x4c,
- 0xd4,0x14,0x00,0x00,0x60,0x00,0x00,0x00,0x35,0x05,0x00,0x00,0x44,0x58,0x49,0x4c,
- 0x00,0x01,0x00,0x00,0x10,0x00,0x00,0x00,0xbc,0x14,0x00,0x00,0x42,0x43,0xc0,0xde,
- 0x21,0x0c,0x00,0x00,0x2c,0x05,0x00,0x00,0x0b,0x82,0x20,0x00,0x02,0x00,0x00,0x00,
- 0x13,0x00,0x00,0x00,0x07,0x81,0x23,0x91,0x41,0xc8,0x04,0x49,0x06,0x10,0x32,0x39,
- 0x92,0x01,0x84,0x0c,0x25,0x05,0x08,0x19,0x1e,0x04,0x8b,0x62,0x80,0x18,0x45,0x02,
- 0x42,0x92,0x0b,0x42,0xc4,0x10,0x32,0x14,0x38,0x08,0x18,0x4b,0x0a,0x32,0x62,0x88,
- 0x48,0x90,0x14,0x20,0x43,0x46,0x88,0xa5,0x00,0x19,0x32,0x42,0xe4,0x48,0x0e,0x90,
- 0x11,0x23,0xc4,0x50,0x41,0x51,0x81,0x8c,0xe1,0x83,0xe5,0x8a,0x04,0x31,0x46,0x06,
- 0x51,0x18,0x00,0x00,0x08,0x00,0x00,0x00,0x1b,0x8c,0xe0,0xff,0xff,0xff,0xff,0x07,
- 0x40,0x02,0xa8,0x0d,0x84,0xf0,0xff,0xff,0xff,0xff,0x03,0x20,0x6d,0x30,0x86,0xff,
- 0xff,0xff,0xff,0x1f,0x00,0x09,0xa8,0x00,0x49,0x18,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x13,0x82,0x60,0x42,0x20,0x4c,0x08,0x06,0x00,0x00,0x00,0x00,0x89,0x20,0x00,0x00,
- 0x86,0x00,0x00,0x00,0x32,0x22,0x88,0x09,0x20,0x64,0x85,0x04,0x13,0x23,0xa4,0x84,
- 0x04,0x13,0x23,0xe3,0x84,0xa1,0x90,0x14,0x12,0x4c,0x8c,0x8c,0x0b,0x84,0xc4,0x4c,
- 0x10,0xc0,0xc1,0x08,0x40,0x09,0x00,0x0a,0x66,0x00,0xe6,0x08,0xc0,0x60,0x8e,0x00,
- 0x29,0xc6,0x40,0x10,0x44,0x41,0x90,0x51,0x0c,0x80,0x20,0x88,0x62,0x20,0xe4,0xa6,
- 0xe1,0xf2,0x27,0xec,0x21,0x24,0x7f,0x25,0xa4,0x95,0x98,0xfc,0xe2,0xb6,0x51,0x31,
- 0x0c,0xc3,0x40,0x50,0x71,0xcf,0x70,0xf9,0x13,0xf6,0x10,0x92,0x1f,0x02,0xcd,0xb0,
- 0x10,0x28,0x58,0x0a,0xa3,0x10,0x0c,0x33,0x0c,0xc3,0x40,0x10,0xc4,0x40,0x4d,0x41,
- 0x06,0x62,0x18,0x86,0x61,0x18,0xe8,0x29,0xc3,0x40,0x0c,0x14,0x15,0x62,0x20,0x86,
- 0x81,0xa6,0xa3,0x86,0xcb,0x9f,0xb0,0x87,0x90,0x7c,0x6e,0xa3,0x8a,0x95,0x98,0xfc,
- 0xe2,0xb6,0x11,0x31,0x0c,0xc3,0x50,0x88,0x8a,0x60,0x08,0xb2,0x4a,0x31,0x10,0xc3,
- 0x30,0x10,0x36,0x47,0x10,0x14,0x83,0x21,0x0a,0x82,0xd0,0x68,0x1b,0x08,0x18,0x46,
- 0x20,0x86,0x99,0xda,0x60,0x1c,0xd8,0x21,0x1c,0xe6,0x61,0x1e,0xdc,0x80,0x16,0xca,
- 0x01,0x1f,0xe8,0xa1,0x1e,0xe4,0xa1,0x1c,0xe4,0x80,0x14,0xf8,0xc0,0x1e,0xca,0x61,
- 0x1c,0xe8,0xe1,0x1d,0xe4,0x81,0x0f,0xcc,0x81,0x1d,0xde,0x21,0x1c,0xe8,0x81,0x0d,
- 0xc0,0x80,0x0e,0xfc,0x00,0x0c,0xfc,0x40,0x0f,0xf4,0xa0,0x1d,0xd2,0x01,0x1e,0xe6,
- 0xe1,0x17,0xe8,0x21,0x1f,0xe0,0xa1,0x1c,0x50,0x40,0xcc,0x24,0x06,0xe3,0xc0,0x0e,
- 0xe1,0x30,0x0f,0xf3,0xe0,0x06,0xb4,0x50,0x0e,0xf8,0x40,0x0f,0xf5,0x20,0x0f,0xe5,
- 0x20,0x07,0xa4,0xc0,0x07,0xf6,0x50,0x0e,0xe3,0x40,0x0f,0xef,0x20,0x0f,0x7c,0x60,
- 0x0e,0xec,0xf0,0x0e,0xe1,0x40,0x0f,0x6c,0x00,0x06,0x74,0xe0,0x07,0x60,0xe0,0x07,
- 0x48,0xf0,0x3e,0x02,0x67,0x92,0x83,0x71,0x60,0x87,0x70,0x98,0x87,0x79,0x70,0x03,
- 0x5a,0x28,0x07,0x7c,0xa0,0x87,0x7a,0x90,0x87,0x72,0x90,0x03,0x52,0x08,0x05,0x79,
- 0x90,0x87,0x70,0xc8,0x07,0x3e,0xb0,0x87,0x72,0x18,0x07,0x7a,0x78,0x07,0x79,0xe0,
- 0x03,0x73,0x60,0x87,0x77,0x08,0x07,0x7a,0x60,0x03,0x30,0xa0,0x03,0x3f,0x00,0x03,
- 0x3f,0xd0,0x03,0x3d,0x68,0x87,0x74,0x80,0x87,0x79,0xf8,0x05,0x7a,0xc8,0x07,0x78,
- 0x28,0x07,0x14,0x10,0x33,0x9d,0xc1,0x38,0xb0,0x43,0x38,0xcc,0xc3,0x3c,0xb8,0x01,
- 0x2d,0x94,0x03,0x3e,0xd0,0x43,0x3d,0xc8,0x43,0x39,0xc8,0x01,0x29,0x84,0x82,0x3c,
- 0xc8,0x43,0x38,0xe4,0x03,0x1f,0xd8,0x43,0x39,0x8c,0x03,0x3d,0xbc,0x83,0x3c,0xf0,
- 0x81,0x39,0xb0,0xc3,0x3b,0x84,0x03,0x3d,0xb0,0x01,0x18,0xd0,0x81,0x1f,0x80,0x81,
- 0x1f,0x20,0xc1,0x13,0x69,0x4c,0x02,0x2f,0x11,0xca,0x44,0xf0,0x8e,0x91,0xa6,0x88,
- 0x12,0x26,0xbf,0x44,0x8c,0x63,0x42,0x84,0xe7,0x79,0x5e,0x22,0xa0,0x07,0x06,0x87,
- 0x23,0x4d,0x0b,0x80,0x39,0xd4,0xe4,0x4f,0xd8,0x43,0xfc,0x5f,0x04,0x18,0x0c,0xd1,
- 0x4c,0x6e,0x83,0x14,0x4e,0xc4,0x48,0x48,0xf1,0x3c,0xcf,0xf3,0x3c,0xcf,0x3c,0x53,
- 0x52,0x6f,0x92,0xa6,0x88,0x12,0x26,0x9f,0x05,0x98,0x67,0x21,0x22,0x76,0x02,0x26,
- 0x02,0x05,0x04,0xb1,0xc9,0x40,0x4c,0x01,0x00,0x00,0x00,0x00,0x13,0x14,0x72,0xc0,
- 0x87,0x74,0x60,0x87,0x36,0x68,0x87,0x79,0x68,0x03,0x72,0xc0,0x87,0x0d,0xaf,0x50,
- 0x0e,0x6d,0xd0,0x0e,0x7a,0x50,0x0e,0x6d,0x00,0x0f,0x7a,0x30,0x07,0x72,0xa0,0x07,
- 0x73,0x20,0x07,0x6d,0x90,0x0e,0x71,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x78,
- 0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x71,0x60,0x07,0x7a,0x30,0x07,0x72,0xd0,
- 0x06,0xe9,0x30,0x07,0x72,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x76,0x40,0x07,
- 0x7a,0x60,0x07,0x74,0xd0,0x06,0xe6,0x10,0x07,0x76,0xa0,0x07,0x73,0x20,0x07,0x6d,
- 0x60,0x0e,0x73,0x20,0x07,0x7a,0x30,0x07,0x72,0xd0,0x06,0xe6,0x60,0x07,0x74,0xa0,
- 0x07,0x76,0x40,0x07,0x6d,0xe0,0x0e,0x78,0xa0,0x07,0x71,0x60,0x07,0x7a,0x30,0x07,
- 0x72,0xa0,0x07,0x76,0x40,0x07,0x43,0x9e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x86,0x3c,0x06,0x10,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x0c,0x79,0x10,0x20,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xf2,0x34,
- 0x40,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xe4,0x79,0x80,0x00,0x08,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xc8,0x13,0x01,0x01,0x10,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0x90,0x67,0x02,0x02,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x80,0x21,0x8f,0x05,0x04,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43,
- 0x1e,0x0c,0x08,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,0x3c,0x1b,0x10,
- 0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x81,0x00,0x11,0x00,0x00,0x00,
- 0x32,0x1e,0x98,0x14,0x19,0x11,0x4c,0x90,0x8c,0x09,0x26,0x47,0xc6,0x04,0x43,0x22,
- 0x4a,0x60,0x04,0xa0,0x24,0x8a,0xa1,0x08,0xca,0xa1,0x0c,0x0a,0x7c,0xa2,0x3c,0xa8,
- 0x28,0x89,0x11,0x80,0x22,0x28,0x83,0x02,0x29,0x04,0x0a,0x67,0x00,0x88,0x9c,0x01,
- 0xa0,0x75,0x06,0x80,0xda,0x19,0x00,0x72,0xc7,0x62,0x14,0xe2,0x38,0x0e,0xe0,0x38,
- 0x0e,0xe0,0x79,0x00,0x79,0x18,0x00,0x00,0x6f,0x00,0x00,0x00,0x1a,0x03,0x4c,0x90,
- 0x46,0x02,0x13,0xc4,0x8f,0x0c,0x6f,0x0c,0x05,0x4e,0x2e,0xcd,0x2e,0x8c,0xae,0x2c,
- 0x05,0x24,0xc6,0x25,0xc7,0x05,0xc6,0x25,0x06,0x04,0x45,0x66,0x0c,0x87,0x26,0x2c,
- 0x66,0xac,0x26,0x65,0x43,0x10,0x4c,0x10,0x08,0x65,0x82,0x40,0x2c,0x1b,0x84,0x81,
- 0x98,0x20,0x10,0xcc,0x06,0x61,0x30,0x28,0xc0,0xcd,0x4d,0x10,0x88,0x66,0xc3,0x80,
- 0x24,0xc4,0x04,0x21,0x0c,0x32,0x02,0x13,0x04,0xc2,0xd9,0x20,0x10,0xc6,0x86,0x84,
- 0x58,0x98,0x86,0x18,0x1a,0xc2,0x99,0x20,0x90,0x81,0x36,0x41,0x20,0x9e,0x0d,0xc9,
- 0x00,0x31,0xcd,0x30,0x44,0x84,0xb3,0x41,0x78,0xa4,0x09,0xc2,0x1a,0x6c,0x13,0x04,
- 0x02,0x9a,0x20,0x10,0xd1,0x06,0x84,0xa0,0x98,0x8a,0x18,0x2c,0x60,0x43,0x70,0x4d,
- 0x10,0xda,0x80,0xdb,0x80,0x10,0x19,0xd3,0x10,0x03,0x01,0x6c,0x40,0x86,0x8c,0x69,
- 0x86,0x81,0x00,0x36,0x08,0xda,0xb6,0x81,0x98,0x00,0x8c,0x9b,0x20,0xb8,0x41,0xb7,
- 0x21,0xf0,0x26,0x08,0x02,0x40,0xc6,0x4c,0x2e,0xec,0xac,0xad,0xcc,0x8d,0xae,0x29,
- 0x2c,0xcd,0x8d,0x08,0x55,0x11,0xd6,0xd0,0xd3,0x93,0x14,0xd1,0x04,0xa1,0x98,0x26,
- 0x08,0x05,0xb5,0x21,0x20,0x26,0x08,0x45,0x35,0x41,0x28,0xac,0x0d,0x42,0x15,0x6d,
- 0x58,0x08,0x31,0x18,0x03,0x32,0x28,0x03,0x33,0x18,0xce,0x80,0x20,0x03,0x34,0xd8,
- 0x10,0x0c,0x1b,0x96,0x41,0x0c,0xc6,0x80,0x0c,0xd4,0xc0,0x0c,0x86,0x33,0x18,0xc8,
- 0x00,0x0d,0x36,0x04,0xcd,0x06,0xa1,0xaa,0x36,0x2c,0x8d,0x18,0x8c,0x01,0x19,0xb0,
- 0x81,0x19,0x0c,0x66,0xd0,0x90,0x41,0x1b,0x6c,0x18,0xd2,0x60,0x0d,0xdc,0x80,0xc9,
- 0x94,0xd5,0x17,0x55,0x98,0xdc,0x59,0x19,0xdd,0x04,0xa1,0xb8,0x26,0x08,0x05,0x36,
- 0x41,0x20,0xa4,0x0d,0x42,0x35,0x07,0x1b,0x16,0x02,0x0e,0xc6,0x20,0x0e,0xca,0x80,
- 0x0c,0x06,0x39,0x20,0xc8,0x80,0x0e,0x36,0x04,0x75,0xb0,0x61,0x78,0x03,0x3b,0x00,
- 0x36,0x14,0x60,0x10,0x06,0x77,0xd0,0x01,0x55,0xd8,0xd8,0xec,0xda,0x5c,0xd2,0xc8,
- 0xca,0xdc,0xe8,0xa6,0x04,0x41,0x15,0x32,0x3c,0x17,0xbb,0x32,0xb9,0xb9,0xb4,0x37,
- 0xb7,0x29,0x01,0xd1,0x84,0x0c,0xcf,0xc5,0x2e,0x8c,0xcd,0xae,0x4c,0x6e,0x4a,0x60,
- 0xd4,0x21,0xc3,0x73,0x99,0x43,0x0b,0x23,0x2b,0x93,0x6b,0x7a,0x23,0x2b,0x63,0x9b,
- 0x12,0x24,0x65,0xc8,0xf0,0x5c,0xe4,0xca,0xe6,0xde,0xea,0xe4,0xc6,0xca,0xe6,0xa6,
- 0x04,0x5c,0x1d,0x32,0x3c,0x17,0xbb,0xb4,0xb2,0xbb,0x24,0xb2,0x29,0xba,0x30,0xba,
- 0xb2,0x29,0x81,0x57,0x87,0x0c,0xcf,0xa5,0xcc,0x8d,0x4e,0x2e,0x0f,0xea,0x2d,0xcd,
- 0x8d,0x6e,0x6e,0x4a,0x70,0x07,0x00,0x00,0x79,0x18,0x00,0x00,0x51,0x00,0x00,0x00,
- 0x33,0x08,0x80,0x1c,0xc4,0xe1,0x1c,0x66,0x14,0x01,0x3d,0x88,0x43,0x38,0x84,0xc3,
- 0x8c,0x42,0x80,0x07,0x79,0x78,0x07,0x73,0x98,0x71,0x0c,0xe6,0x00,0x0f,0xed,0x10,
- 0x0e,0xf4,0x80,0x0e,0x33,0x0c,0x42,0x1e,0xc2,0xc1,0x1d,0xce,0xa1,0x1c,0x66,0x30,
- 0x05,0x3d,0x88,0x43,0x38,0x84,0x83,0x1b,0xcc,0x03,0x3d,0xc8,0x43,0x3d,0x8c,0x03,
- 0x3d,0xcc,0x78,0x8c,0x74,0x70,0x07,0x7b,0x08,0x07,0x79,0x48,0x87,0x70,0x70,0x07,
- 0x7a,0x70,0x03,0x76,0x78,0x87,0x70,0x20,0x87,0x19,0xcc,0x11,0x0e,0xec,0x90,0x0e,
- 0xe1,0x30,0x0f,0x6e,0x30,0x0f,0xe3,0xf0,0x0e,0xf0,0x50,0x0e,0x33,0x10,0xc4,0x1d,
- 0xde,0x21,0x1c,0xd8,0x21,0x1d,0xc2,0x61,0x1e,0x66,0x30,0x89,0x3b,0xbc,0x83,0x3b,
- 0xd0,0x43,0x39,0xb4,0x03,0x3c,0xbc,0x83,0x3c,0x84,0x03,0x3b,0xcc,0xf0,0x14,0x76,
- 0x60,0x07,0x7b,0x68,0x07,0x37,0x68,0x87,0x72,0x68,0x07,0x37,0x80,0x87,0x70,0x90,
- 0x87,0x70,0x60,0x07,0x76,0x28,0x07,0x76,0xf8,0x05,0x76,0x78,0x87,0x77,0x80,0x87,
- 0x5f,0x08,0x87,0x71,0x18,0x87,0x72,0x98,0x87,0x79,0x98,0x81,0x2c,0xee,0xf0,0x0e,
- 0xee,0xe0,0x0e,0xf5,0xc0,0x0e,0xec,0x30,0x03,0x62,0xc8,0xa1,0x1c,0xe4,0xa1,0x1c,
- 0xcc,0xa1,0x1c,0xe4,0xa1,0x1c,0xdc,0x61,0x1c,0xca,0x21,0x1c,0xc4,0x81,0x1d,0xca,
- 0x61,0x06,0xd6,0x90,0x43,0x39,0xc8,0x43,0x39,0x98,0x43,0x39,0xc8,0x43,0x39,0xb8,
- 0xc3,0x38,0x94,0x43,0x38,0x88,0x03,0x3b,0x94,0xc3,0x2f,0xbc,0x83,0x3c,0xfc,0x82,
- 0x3b,0xd4,0x03,0x3b,0xb0,0xc3,0x8c,0xc8,0x21,0x07,0x7c,0x70,0x03,0x72,0x10,0x87,
- 0x73,0x70,0x03,0x7b,0x08,0x07,0x79,0x60,0x87,0x70,0xc8,0x87,0x77,0xa8,0x07,0x7a,
- 0x98,0x81,0x3c,0xe4,0x80,0x0f,0x6e,0x40,0x0f,0xe5,0xd0,0x0e,0xf0,0x30,0x83,0x81,
- 0xc8,0x01,0x1f,0xdc,0x40,0x1c,0xe4,0xa1,0x1c,0xc2,0x61,0x1d,0xdc,0x40,0x1c,0xe4,
- 0x01,0x00,0x00,0x00,0x71,0x20,0x00,0x00,0x27,0x00,0x00,0x00,0x66,0x00,0x0d,0x97,
- 0xef,0x3c,0x7e,0x80,0x34,0x40,0x84,0xf9,0xc5,0x6d,0xdb,0xc1,0x36,0x5c,0xbe,0xf3,
- 0xf8,0x42,0x40,0x15,0x05,0x11,0x95,0x0e,0x30,0x94,0x84,0x01,0x08,0x98,0x5f,0xdc,
- 0xb6,0x25,0x48,0xc3,0xe5,0x3b,0x8f,0x2f,0x44,0x04,0x30,0x11,0x21,0xd0,0x0c,0x0b,
- 0x61,0x04,0xce,0x70,0xf9,0xce,0xe3,0x0f,0xce,0x74,0xfb,0xc5,0x6d,0x5b,0xc0,0x34,
- 0x5c,0xbe,0xf3,0xf8,0x8b,0x03,0x0c,0x62,0xf3,0x50,0x93,0x5f,0xdc,0xb6,0x0d,0x40,
- 0xc3,0xe5,0x3b,0x8f,0x2f,0x01,0xcc,0xb3,0x10,0x7e,0x71,0xdb,0x26,0x50,0x0d,0x97,
- 0xef,0x3c,0xbe,0x34,0x39,0x11,0x81,0x52,0xd3,0x43,0x4d,0x7e,0x71,0xdb,0x86,0x20,
- 0x0d,0x97,0xef,0x3c,0xfe,0x44,0x44,0x13,0x02,0x44,0x98,0x5f,0xdc,0xb6,0x15,0x3c,
- 0xc3,0xe5,0x3b,0x8f,0x4f,0x35,0x40,0x84,0xf9,0xc5,0x6d,0x1b,0x00,0x53,0x44,0x80,
- 0xc1,0x10,0xcd,0x64,0x02,0x48,0x03,0x00,0x61,0x20,0x00,0x00,0x39,0x03,0x00,0x00,
- 0x13,0x04,0x5c,0x2c,0x10,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0xa4,0x8d,0x00,0x50,
- 0x51,0x02,0x44,0x14,0xc4,0x28,0x03,0xb0,0x07,0xce,0x28,0x03,0xe0,0x06,0xca,0x28,
- 0x03,0xb0,0x34,0xa3,0x0c,0x40,0x28,0x94,0xc1,0x28,0x03,0xb0,0x98,0x41,0x39,0x15,
- 0xcc,0x28,0x03,0xb0,0x07,0x4a,0x79,0x8d,0x32,0x00,0x0b,0x34,0xca,0x00,0x2c,0xca,
- 0x28,0x03,0xb0,0xe4,0xc1,0x28,0x03,0xb0,0x38,0xa3,0x0c,0xc0,0x1b,0x28,0xa3,0x0c,
- 0x00,0x1c,0x28,0xa3,0x0c,0xc0,0xf2,0xcc,0x00,0x94,0x5d,0xe1,0x95,0x5b,0x21,0x14,
- 0x57,0xc9,0x95,0x4c,0x29,0x94,0xd1,0x28,0x03,0xb0,0xa4,0x41,0x21,0x8d,0x32,0x00,
- 0x4b,0x1d,0x94,0x4b,0xa9,0x8c,0x32,0x00,0x7b,0x00,0x8d,0x32,0x04,0x8b,0x42,0xc3,
- 0x18,0x41,0x1e,0x8f,0xa7,0xef,0x8d,0x11,0xb4,0xe6,0x9c,0x93,0xdf,0x18,0x01,0x08,
- 0x82,0xa0,0x0a,0x06,0x63,0x04,0x20,0x08,0x82,0x30,0x18,0x8c,0x11,0xdc,0x78,0x3b,
- 0xb6,0xdc,0x28,0x43,0xb0,0x0a,0xaa,0x30,0x46,0xa0,0xb3,0xe6,0x1c,0x7f,0x63,0x04,
- 0x20,0x08,0x82,0x24,0x18,0x8c,0x11,0x80,0x20,0x08,0xe2,0x61,0x30,0x46,0x00,0x82,
- 0x20,0x88,0x82,0xc1,0x28,0x43,0x00,0x0b,0xae,0x30,0xca,0x10,0xc0,0xc2,0x2c,0x8c,
- 0x11,0xa8,0x78,0x7d,0xca,0xde,0x18,0x01,0x08,0x82,0x20,0x08,0x06,0x63,0x04,0x20,
- 0x08,0x82,0x20,0x28,0x8c,0x11,0x80,0x20,0x08,0xc2,0xdf,0x08,0xc0,0x18,0x01,0x08,
- 0x82,0x20,0xfe,0xcd,0x00,0x00,0x00,0x00,0x23,0x06,0x09,0x00,0x82,0x60,0xb0,0xb1,
- 0x82,0x17,0x0a,0xab,0xb0,0x0a,0x77,0x30,0x62,0x90,0x00,0x20,0x08,0x06,0x5b,0x2b,
- 0x7c,0xa2,0xb0,0x0a,0xab,0x80,0x07,0x23,0x06,0x09,0x00,0x82,0x60,0xb0,0xb9,0x02,
- 0x18,0x84,0x42,0x2b,0xb4,0x42,0x1e,0x8c,0x18,0x24,0x00,0x08,0x82,0xc1,0xf6,0x0a,
- 0x61,0x20,0x0a,0xad,0xd0,0x0a,0x7a,0x30,0x62,0x90,0x00,0x20,0x08,0x06,0x1b,0x2c,
- 0x88,0x01,0x29,0xb8,0x82,0x2b,0xec,0xc1,0x88,0x41,0x02,0x80,0x20,0x18,0x18,0xb9,
- 0x50,0x06,0xac,0xf0,0x0a,0xa6,0x90,0x06,0x23,0x06,0x09,0x00,0x82,0x60,0x60,0xe8,
- 0x82,0x19,0xb4,0x02,0x2c,0xf0,0x81,0x1a,0x8c,0x18,0x24,0x00,0x08,0x82,0x81,0xb1,
- 0x0b,0x67,0x20,0x0b,0xb1,0x80,0x0a,0x6b,0x30,0x62,0x90,0x00,0x20,0x08,0x06,0x06,
- 0x2f,0xa0,0xc1,0x2c,0xc8,0x82,0x1f,0xb0,0xc1,0x88,0x41,0x02,0x80,0x20,0x18,0x18,
- 0xbd,0x90,0x06,0xb4,0x30,0x0b,0xa9,0xd0,0x06,0x23,0x06,0x09,0x00,0x82,0x60,0x60,
- 0xf8,0x82,0x1a,0xd0,0x02,0x2d,0xac,0x82,0x1b,0x8c,0x18,0x24,0x00,0x08,0x82,0x81,
- 0xf1,0x0b,0x6b,0x50,0x0b,0xb5,0x10,0x0a,0x6f,0x30,0x62,0x90,0x00,0x20,0x08,0x06,
- 0x06,0x38,0xb0,0x81,0x2d,0xd8,0x02,0x2b,0xc0,0xc1,0x88,0xc1,0x01,0x80,0x20,0x18,
- 0x58,0xbb,0x00,0x07,0x49,0x19,0x8c,0x26,0x04,0xc3,0x70,0x44,0x30,0x09,0xdf,0x88,
- 0xc1,0x01,0x80,0x20,0x18,0x58,0xbe,0x30,0x07,0x0c,0x1e,0x8c,0x26,0x04,0xc0,0x68,
- 0x82,0x10,0x8c,0x26,0x0c,0xc2,0x68,0x02,0x31,0xcc,0x32,0x04,0x82,0x31,0x62,0xf0,
- 0x00,0x20,0x08,0x06,0xcd,0x39,0xdc,0x01,0x25,0x41,0x8f,0x65,0xfd,0xc2,0x2f,0xe4,
- 0x81,0x35,0x9a,0x10,0x00,0xa3,0x09,0x42,0x30,0x9a,0x30,0x08,0xa3,0x09,0xc4,0x60,
- 0x44,0x22,0x1f,0x23,0x12,0xf9,0x18,0x91,0xc8,0xc7,0x88,0x44,0x3e,0xb3,0x04,0xc2,
- 0x40,0xc5,0x80,0x04,0x1a,0x30,0x50,0x31,0x20,0x81,0x06,0x0c,0x54,0x0c,0x48,0xa0,
- 0x01,0x03,0x15,0x03,0x12,0x68,0xc0,0x68,0x42,0x25,0x0c,0x47,0x04,0x67,0x20,0x7c,
- 0xb3,0x0c,0xdb,0x10,0x8c,0x18,0x2c,0x00,0x08,0x82,0xc1,0x53,0x0f,0xa5,0xd0,0x71,
- 0x5b,0xc7,0x6d,0x23,0x06,0x06,0x00,0x82,0x60,0x10,0xd5,0x83,0x28,0x04,0x16,0x7c,
- 0xf2,0x31,0xe1,0x93,0x8f,0x0d,0x9f,0x7c,0x46,0x0c,0x0e,0x00,0x04,0xc1,0xc0,0xba,
- 0x07,0x56,0x28,0x83,0x79,0x18,0x4d,0x08,0x80,0xd1,0x04,0x21,0x18,0x4d,0x18,0x04,
- 0x1b,0xc6,0x20,0x3e,0x36,0x8c,0x41,0x7c,0x6c,0x18,0x83,0xf8,0x8c,0x18,0x2c,0x00,
- 0x08,0x82,0xc1,0x13,0x12,0xb1,0x30,0x08,0xc1,0x20,0x04,0x23,0x06,0x06,0x00,0x82,
- 0x60,0x10,0x85,0x84,0x2b,0x04,0x56,0x04,0xf2,0xb1,0x42,0x90,0x8f,0x15,0x83,0x7c,
- 0x46,0x13,0xd0,0x00,0xb0,0x60,0x14,0xe4,0x63,0x79,0x10,0xc4,0xc7,0xb4,0x40,0x3e,
- 0xa6,0x09,0xf2,0x31,0x6d,0x90,0x8f,0x19,0xa1,0x20,0x1f,0x0b,0xfc,0x00,0x3e,0xf6,
- 0x99,0x02,0x7c,0xec,0x3b,0x05,0xf8,0xd8,0x87,0x0a,0xf0,0xb1,0x61,0x91,0x8f,0x0d,
- 0x8c,0x7c,0x6c,0x68,0xe4,0x63,0x83,0x2a,0xc0,0xc7,0x86,0x55,0x80,0x8f,0x0d,0xac,
- 0x00,0x9f,0xd1,0x84,0x3c,0x08,0x2c,0x08,0xe4,0x63,0x81,0x2d,0xc8,0xc7,0x02,0x5a,
- 0x80,0xcf,0x88,0xc1,0x01,0x80,0x20,0x18,0x58,0x38,0xd1,0x0e,0xa6,0x30,0x0f,0xa3,
- 0x09,0x01,0x70,0x01,0x41,0x23,0x06,0x07,0x00,0x82,0x60,0x60,0xed,0x04,0x3c,0xa4,
- 0xc2,0x3d,0x8c,0x26,0x04,0xc0,0x68,0x82,0x10,0x8c,0x26,0x0c,0x82,0xcd,0x41,0x25,
- 0x1f,0x0b,0x08,0xf9,0x18,0x1d,0x5c,0xf2,0xb1,0xa0,0x90,0x8f,0xd5,0x41,0x26,0x1f,
- 0x0b,0x0c,0xf9,0x8c,0x18,0x1c,0x00,0x08,0x82,0x81,0x55,0x16,0xfa,0x30,0x0b,0x22,
- 0x31,0x9a,0x10,0x00,0xa3,0x09,0x42,0x30,0x9a,0x30,0x08,0x96,0x0c,0xf0,0x31,0x64,
- 0x80,0x8f,0x1d,0x03,0x7c,0x66,0x09,0x88,0x81,0x0a,0x02,0x56,0x86,0xdc,0xca,0x06,
- 0x2a,0x06,0x64,0x88,0xad,0x6c,0xa0,0x62,0x40,0x86,0xd8,0xca,0x06,0x2a,0x06,0x64,
- 0x88,0xad,0x6c,0xb8,0x81,0xb0,0xd0,0x60,0x96,0xa1,0xc8,0x82,0x2a,0xd4,0xe2,0x2c,
- 0xf0,0x07,0x18,0x8c,0x18,0x1c,0x00,0x08,0x82,0x81,0x35,0x17,0x28,0x11,0x0e,0xc1,
- 0x68,0x42,0x30,0x0c,0x47,0x04,0xea,0x10,0x7c,0x56,0xd4,0x04,0x0c,0x46,0x0c,0x0e,
- 0x00,0x04,0xc1,0xc0,0xba,0x0b,0x96,0x28,0x87,0x60,0x96,0xc1,0x38,0x86,0xd1,0x84,
- 0x00,0x18,0x4d,0x10,0x82,0xd1,0x84,0x41,0x30,0x79,0x18,0xe2,0x63,0xf3,0x30,0xc4,
- 0xc7,0xe8,0x61,0x88,0xcf,0x88,0xc1,0x02,0x80,0x20,0x18,0x3c,0xa1,0x11,0x13,0x83,
- 0x10,0x0c,0x42,0x30,0x62,0x60,0x00,0x20,0x08,0x06,0x51,0x68,0xb8,0x44,0x60,0x41,
- 0x21,0x1f,0x13,0x0a,0xf9,0xd8,0x50,0xc8,0x67,0x96,0x60,0x19,0x4d,0x80,0x80,0xd1,
- 0x84,0x28,0x18,0x4d,0x90,0x04,0x1b,0xdc,0x21,0x3e,0x36,0xb8,0x43,0x7c,0x6c,0x70,
- 0x87,0xf8,0xd8,0x30,0xc8,0xc7,0x86,0x41,0x3e,0x26,0x04,0xf0,0x31,0x82,0x90,0x8f,
- 0x09,0x01,0x7c,0x46,0x0c,0x0c,0x00,0x04,0xc1,0x20,0x82,0x0d,0xb7,0x08,0x46,0x0c,
- 0x0e,0x00,0x04,0xc1,0x60,0x82,0x0d,0x9e,0x08,0x60,0xc2,0x94,0x80,0x3e,0xa6,0x08,
- 0xf4,0x31,0x65,0xa0,0x8f,0x15,0x85,0x7c,0x2c,0x40,0x09,0xf8,0x58,0x4a,0x04,0xf4,
- 0x19,0x4d,0xf8,0x86,0xe1,0x88,0x80,0x25,0x84,0x6f,0x96,0x01,0x49,0x02,0x53,0x04,
- 0xfa,0x8c,0x18,0x18,0x00,0x08,0x82,0x41,0xb4,0x1b,0x62,0x11,0x58,0x60,0x13,0xf2,
- 0x19,0x31,0x30,0x00,0x10,0x04,0x83,0xa8,0x37,0xc6,0x22,0x30,0x98,0x08,0xe2,0x33,
- 0x62,0x70,0x00,0x20,0x08,0x06,0x93,0x6f,0xa8,0x45,0x20,0x13,0x23,0x06,0x07,0x00,
- 0x82,0x60,0x30,0xfd,0x46,0x5a,0x04,0x32,0x61,0x81,0x22,0x9f,0x59,0x82,0x64,0xa0,
- 0x62,0x10,0x10,0xeb,0x18,0x8e,0x68,0x83,0x9c,0x08,0xbe,0x59,0x06,0x65,0x09,0x46,
- 0x13,0xd6,0x00,0x18,0x4d,0x60,0x83,0x60,0x34,0xa1,0x0d,0x84,0x11,0x83,0x05,0x00,
- 0x41,0x30,0x78,0xd0,0x03,0x2f,0x06,0x21,0x18,0x84,0x60,0xc4,0xc0,0x00,0x40,0x10,
- 0x0c,0x22,0xf4,0xa8,0x8b,0xc0,0x82,0x42,0x3e,0x26,0x14,0xf2,0xb1,0xa1,0x90,0x8f,
- 0x85,0x85,0x16,0x1f,0x13,0x0b,0x2d,0x3e,0x36,0x16,0x5a,0x7c,0x46,0x0c,0x16,0x00,
- 0x04,0xc1,0xe0,0x81,0x0f,0xd0,0x18,0x84,0xc0,0x28,0x08,0xeb,0x83,0xba,0x80,0xc1,
- 0x88,0xc1,0x01,0x80,0x20,0x18,0x58,0xef,0x41,0x1a,0x3d,0x11,0x8c,0x26,0x04,0xc0,
- 0x68,0x82,0x10,0x98,0x10,0xc4,0xc7,0x0c,0x21,0x3e,0x16,0x08,0xf4,0x19,0x31,0x30,
- 0x00,0x10,0x04,0x83,0xe8,0x3e,0xda,0x23,0xb0,0xc0,0x2d,0xe4,0x63,0x75,0x11,0xc4,
- 0xc7,0x86,0x41,0x3e,0x16,0x64,0xf2,0xb1,0x60,0x90,0xcf,0x2c,0xc1,0x32,0xd0,0x31,
- 0xd8,0x83,0x61,0x0b,0x89,0x2d,0x28,0x03,0x1d,0x83,0x3d,0x18,0xb6,0x90,0xd8,0x82,
- 0x32,0xd0,0x31,0xd8,0x83,0x61,0x0b,0x89,0x2d,0x28,0x03,0x1d,0x03,0xb9,0x18,0x7c,
- 0x90,0x20,0x8a,0xb9,0x82,0x69,0xc0,0x60,0xc4,0xe0,0x00,0x40,0x10,0x0c,0x2c,0x10,
- 0xa9,0x0d,0xb7,0x08,0x46,0x13,0x02,0x61,0x38,0x22,0xc0,0x0b,0xe1,0x9b,0x65,0x60,
- 0xb0,0xe0,0x04,0x82,0x2a,0x38,0x0f,0x18,0x31,0x38,0x00,0x10,0x04,0x03,0xab,0x44,
- 0x74,0x63,0x2e,0x82,0xd1,0x84,0x00,0x18,0x8e,0x08,0xfe,0x22,0xf8,0x46,0x0c,0x0e,
- 0x00,0x04,0xc1,0xc0,0x42,0x91,0xde,0xb0,0x0b,0xf6,0x18,0x4d,0x08,0x00,0x0b,0x58,
- 0x43,0x3e,0x16,0xdc,0x84,0x7c,0x4c,0xb8,0x09,0xf9,0xd8,0x70,0x13,0xf2,0x99,0x65,
- 0x68,0xaa,0x63,0x34,0x61,0x17,0x80,0xd1,0x04,0x5e,0x08,0x46,0x13,0x7a,0x41,0xb0,
- 0xbc,0x18,0xe2,0x63,0x47,0x00,0x1f,0xd3,0x0b,0x22,0x3e,0x86,0x04,0xf0,0xb1,0xbd,
- 0x28,0xe2,0x63,0x49,0x00,0x9f,0x11,0x03,0x03,0x00,0x41,0x30,0x88,0x72,0x24,0x46,
- 0x8a,0x11,0x03,0x03,0x00,0x41,0x30,0x88,0x74,0x44,0x46,0x88,0x11,0x03,0x03,0x00,
- 0x41,0x30,0x88,0x76,0x64,0x46,0x86,0xe1,0x88,0x41,0x18,0xbe,0xe1,0x08,0x42,0x18,
- 0xbe,0x12,0x02,0x9d,0x65,0x70,0x9e,0x60,0x38,0x62,0x91,0x0d,0xe1,0x9b,0x6e,0x98,
- 0x0d,0xd9,0x08,0xa6,0x1b,0x66,0x23,0x37,0x84,0x59,0x82,0x69,0x38,0x02,0x39,0x86,
- 0x6f,0x96,0x01,0x8a,0x82,0xe1,0x88,0xc6,0x36,0x84,0x6f,0xba,0x41,0x37,0xc0,0x23,
- 0x98,0x6e,0xe8,0x8d,0xdb,0x10,0xa6,0x1b,0x70,0xc3,0x37,0x86,0x59,0x02,0x69,0x38,
- 0xe2,0xd1,0x0d,0xe1,0x9b,0x6e,0x10,0x8f,0xf4,0x08,0xa6,0x1b,0x76,0x23,0x3c,0x84,
- 0x59,0x02,0x69,0xa0,0x62,0x60,0x20,0x22,0x1a,0xa8,0x18,0xf8,0x06,0xd2,0x9b,0x68,
- 0xa0,0x62,0x70,0x20,0xbf,0x89,0x06,0x2a,0x06,0x07,0x02,0x9d,0x68,0xa0,0x62,0x10,
- 0x1d,0x48,0x89,0xa6,0x1b,0x2a,0xaa,0x99,0x25,0x98,0x06,0x2a,0x06,0x30,0x70,0x18,
- 0x69,0xa0,0x62,0x80,0x03,0x87,0x90,0x06,0x2a,0x06,0xd4,0x71,0x1c,0x69,0xa0,0x62,
- 0x60,0x1d,0xc7,0x91,0x06,0x2a,0x06,0x33,0x70,0x5c,0x47,0x1a,0xa8,0x18,0x60,0xc7,
- 0x81,0xa4,0x81,0x8a,0x41,0x76,0x1c,0x48,0x32,0x81,0x90,0x8f,0x09,0x86,0x7c,0x4c,
- 0x08,0xe2,0x63,0x87,0x21,0x1f,0x83,0x8f,0x20,0x3e,0x86,0x28,0xf2,0x19,0x31,0x58,
- 0x00,0x10,0x04,0x83,0xc7,0x4f,0x5c,0x24,0x0d,0xce,0xa0,0x0c,0x08,0x21,0xb0,0x40,
- 0x3e,0xe4,0x63,0x81,0x43,0x1f,0x0b,0xe8,0x03,0x3e,0x23,0x06,0x0b,0x00,0x82,0x60,
- 0xf0,0x88,0x8a,0x8c,0xb4,0xc1,0x1a,0xa4,0x01,0x7d,0x3c,0x8e,0x05,0xf6,0x21,0x1f,
- 0x0b,0x24,0xfa,0x18,0x7e,0x04,0xf1,0x19,0x4d,0xf0,0x83,0x61,0x34,0xe1,0x0f,0x04,
- 0x13,0x82,0xf8,0xd8,0x10,0xd0,0xc7,0x88,0x41,0x3e,0x96,0x0d,0xf2,0x31,0x21,0xa0,
- 0x8f,0x11,0x41,0x7c,0x4c,0x14,0x46,0x44,0x3e,0x26,0x04,0xf1,0x19,0x8e,0x08,0x42,
- 0x44,0xf8,0x66,0x19,0x2e,0x2a,0x18,0x4d,0x48,0x85,0xc0,0xc2,0x20,0x80,0xcf,0x68,
- 0x02,0x2a,0x04,0x23,0x06,0x0f,0x00,0x82,0x60,0xd0,0xd4,0x4a,0x99,0x8c,0x48,0x88,
- 0x4c,0x8f,0x40,0x22,0xad,0xd2,0x2a,0x67,0x42,0x22,0xa3,0x09,0x01,0x30,0x1c,0x11,
- 0x1c,0xc3,0x77,0xc1,0x50,0x76,0x15,0xf0,0x19,0x31,0x78,0x00,0x10,0x04,0x83,0x46,
- 0x57,0xd4,0x04,0x45,0x4c,0x24,0xa0,0x8e,0x14,0x91,0x15,0x59,0x61,0x93,0x14,0x19,
- 0x4d,0x08,0x80,0xe1,0x88,0x80,0x19,0xbe,0x0b,0x86,0xb2,0xc0,0x80,0x8f,0x75,0x4b,
- 0x7c,0x46,0x0c,0x1e,0x00,0x04,0xc1,0xa0,0x01,0x17,0x38,0x71,0x11,0x16,0x09,0xb4,
- 0xe6,0x45,0x70,0x05,0x57,0xe4,0xe4,0x45,0x46,0x13,0x02,0x60,0x38,0x22,0x90,0x86,
- 0xef,0x82,0xa1,0xcc,0x08,0xe0,0x63,0x5f,0x04,0x9f,0x11,0x83,0x07,0x00,0x41,0x30,
- 0x68,0xcc,0xc5,0x4e,0x68,0x44,0x46,0xc8,0x20,0x98,0x6a,0xc4,0x57,0x7c,0x05,0x4f,
- 0x6a,0x64,0x34,0x21,0x00,0x86,0x23,0x02,0x6c,0xf8,0x2e,0x18,0xca,0x8c,0x00,0x3e,
- 0x56,0x06,0x57,0x7c,0x46,0x0c,0x1e,0x00,0x04,0xc1,0xa0,0x61,0x17,0x3e,0xd1,0x11,
- 0x1c,0x51,0x83,0x20,0xdb,0x11,0x72,0x21,0x17,0x3f,0xd9,0x91,0xd1,0x84,0x00,0x18,
- 0x8e,0x08,0xbc,0xe1,0xbb,0x60,0x28,0x33,0x02,0xf8,0x58,0x10,0x27,0xf2,0x99,0x25,
- 0xb8,0x6c,0x1d,0xe8,0x04,0x04,0x46,0x0e,0x37,0x02,0x1f,0x23,0x87,0x1b,0x81,0x8f,
- 0x91,0xc3,0x8d,0xc0,0xa7,0x88,0x75,0xb9,0x0a,0x54,0x05,0x46,0x0c,0x0e,0x00,0x04,
- 0xc1,0xc0,0xa2,0x97,0x54,0x11,0x93,0x60,0x34,0x21,0x00,0x46,0x13,0x84,0x60,0x34,
- 0x61,0x10,0x46,0x13,0x88,0xa1,0x8e,0x58,0x81,0x11,0x83,0x03,0x00,0x41,0x30,0xb0,
- 0xf4,0xe5,0x55,0xd0,0x24,0x18,0x4d,0x08,0x80,0xd1,0x04,0x21,0x18,0x4d,0x18,0x84,
- 0xd1,0x04,0x62,0xa8,0x06,0x57,0x60,0xc4,0xe0,0x00,0x40,0x10,0x0c,0x2c,0x90,0xa9,
- 0x15,0x37,0x09,0x46,0x13,0x02,0x60,0x34,0x41,0x08,0x46,0x13,0x06,0x61,0x34,0x81,
- 0x18,0x6a,0x52,0x17,0x18,0x31,0x38,0x00,0x10,0x04,0x03,0xcb,0x64,0x76,0x85,0x4e,
- 0x82,0xd1,0x84,0x00,0x18,0x4d,0x10,0x82,0xd1,0x84,0x41,0x18,0x4d,0x20,0x06,0xb3,
- 0x38,0xf9,0x8c,0x18,0x20,0x00,0x08,0x82,0x01,0xb6,0x32,0xbd,0x12,0x71,0xc1,0x88,
- 0x01,0x02,0x80,0x20,0x18,0x60,0x2c,0xe3,0x2b,0x0c,0x17,0x58,0x70,0x40,0xc7,0x32,
- 0x30,0x90,0xcf,0x88,0x01,0x02,0x80,0x20,0x18,0x60,0x2f,0x13,0x2e,0x14,0x18,0x04,
- 0x23,0x06,0x08,0x00,0x82,0x60,0x80,0xc1,0x8c,0xb8,0x3c,0x60,0x10,0x58,0xa0,0x40,
- 0xc7,0x38,0x32,0x90,0xcf,0x88,0x01,0x02,0x80,0x20,0x18,0x60,0x33,0x53,0x2e,0x17,
- 0x19,0x04,0x23,0x06,0x08,0x00,0x82,0x60,0x80,0xd1,0x8c,0xb9,0x48,0x64,0x10,0x58,
- 0xd0,0x40,0xc7,0x3e,0x34,0x90,0xcf,0x88,0x01,0x02,0x80,0x20,0x18,0x60,0x37,0x93,
- 0x2e,0x1a,0x1a,0x04,0x23,0x06,0x08,0x00,0x82,0x60,0x80,0xe1,0x8c,0xba,0x54,0x68,
- 0x10,0x58,0x00,0x41,0xc7,0x9a,0x80,0x3e,0xa6,0x08,0xf4,0xb1,0x63,0xa0,0x8f,0x0d,
- 0xb4,0x22,0x1f,0x0b,0x6a,0x05,0x3e,0x46,0xd8,0x8a,0x7c,0xec,0x56,0x82,0xf8,0x8c,
- 0x18,0x2c,0x00,0x08,0x82,0xc1,0x53,0x36,0xf5,0xe2,0x26,0x6d,0xc2,0x26,0x67,0x61,
- 0x16,0x65,0x31,0x62,0x70,0x00,0x20,0x08,0x06,0x13,0xd9,0xc0,0x4b,0x80,0x2b,0x23,
- 0x06,0x07,0x00,0x82,0x60,0x30,0x95,0xcd,0xbb,0x04,0xb8,0x62,0xb9,0x12,0xc4,0xc7,
- 0x02,0x5f,0x91,0x8f,0x05,0xbb,0x02,0x1f,0x0b,0x7e,0x42,0x3e,0xc6,0x04,0xf1,0x19,
- 0x8e,0x58,0x7e,0x85,0xf8,0x86,0x23,0x98,0x5f,0x11,0xbe,0x12,0x82,0x1d,0x8e,0x60,
- 0xc4,0x85,0xf8,0x4a,0x08,0x76,0x38,0xc2,0x19,0x17,0xe1,0xab,0x40,0xd8,0xe1,0x08,
- 0xa4,0x5c,0x84,0xaf,0x84,0x60,0x67,0x19,0x2e,0x2b,0x18,0x4d,0x58,0x8b,0xc0,0xaa,
- 0x20,0x3e,0x46,0x09,0xf1,0x19,0x4d,0x88,0x8b,0x60,0xc4,0xe0,0x01,0x40,0x10,0x0c,
- 0x9a,0xbd,0x59,0x99,0x74,0x39,0x97,0x41,0x08,0xd4,0x65,0x6e,0xe6,0xa6,0x65,0xd4,
- 0x65,0x34,0x21,0x00,0x86,0x23,0x02,0x68,0xf8,0x2e,0x18,0x6a,0xc4,0xe0,0x01,0x40,
- 0x10,0x0c,0x9a,0xbf,0x79,0x99,0x76,0x59,0x17,0xce,0x28,0xdc,0xe5,0x6e,0xee,0x26,
- 0x66,0xdc,0x65,0x34,0x21,0x00,0x86,0x23,0x02,0x6a,0xf8,0x2e,0x18,0xca,0x82,0x02,
- 0x3e,0x16,0x06,0x0d,0x7c,0x46,0x0c,0x1e,0x00,0x04,0xc1,0xa0,0x29,0x9d,0x9a,0x99,
- 0x97,0x78,0x09,0x98,0x85,0x5e,0xfa,0xa6,0x6f,0x6e,0x86,0x5e,0x46,0x13,0x02,0x60,
- 0x38,0x22,0xd0,0x86,0xef,0x82,0xa1,0xcc,0x08,0xe0,0x33,0x62,0xf0,0x00,0x20,0x08,
- 0x06,0x8d,0xea,0xe8,0x0c,0xbe,0xd8,0x8b,0x54,0x06,0x50,0xbe,0x88,0x8e,0xe8,0xf0,
- 0x4c,0xbe,0x8c,0x26,0x04,0xc0,0x70,0x44,0xf0,0x0d,0xdf,0x05,0x43,0x59,0x11,0xc0,
- 0x67,0xc4,0xe0,0x01,0x40,0x10,0x0c,0x9a,0xd7,0xf9,0x99,0x7e,0xd9,0x17,0x36,0x50,
- 0x83,0xca,0x5f,0x4e,0xe7,0x74,0xc2,0xc6,0x5f,0x46,0x13,0x02,0x60,0x38,0x22,0x20,
- 0x83,0xe1,0xbb,0x60,0x28,0x2b,0x02,0xf8,0x8c,0x18,0x3c,0x00,0x08,0x82,0x41,0x43,
- 0x3b,0x64,0x23,0x32,0x20,0x03,0xbd,0x81,0x36,0x32,0xac,0xc3,0x3a,0x66,0x33,0x32,
- 0xa3,0x09,0x01,0x30,0x1c,0x11,0xa4,0xc1,0xf0,0x5d,0x30,0x94,0x15,0x01,0x7c,0x8c,
- 0x0e,0xc4,0x00,0x3e,0x23,0x06,0x0f,0x00,0x82,0x60,0xd0,0xe8,0x8e,0xda,0xa0,0x8c,
- 0xc9,0x88,0x41,0x00,0x06,0x29,0x23,0x3b,0xb2,0xc3,0x36,0x29,0x33,0x9a,0x10,0x00,
- 0xc3,0x11,0xc1,0x1b,0x0c,0xdf,0x05,0x43,0x99,0x11,0xc0,0x67,0xc4,0xe0,0x01,0x40,
- 0x10,0x0c,0x9a,0xdf,0x79,0x9b,0x96,0x59,0x19,0x3e,0x30,0xca,0xc0,0x65,0x6e,0xe7,
- 0x76,0xe2,0xc6,0x65,0x46,0x13,0x02,0x60,0x38,0x22,0xa0,0x83,0xe1,0xbb,0x60,0x28,
- 0x2b,0x02,0xf8,0x8c,0x18,0x3c,0x00,0x08,0x82,0x41,0x43,0x3e,0x74,0x23,0x33,0x30,
- 0x03,0x06,0x8b,0x1a,0xcc,0x0c,0xef,0xf0,0x8e,0xdd,0xcc,0xcc,0x68,0x42,0x00,0x0c,
- 0x47,0x04,0x79,0x30,0x7c,0x17,0x0c,0x65,0x45,0x00,0x1f,0x0b,0xd4,0x46,0x3e,0xb3,
- 0x04,0xd7,0x40,0xc9,0x20,0x58,0x74,0x56,0xc9,0x07,0x45,0x67,0x93,0x05,0xe9,0x21,
- 0x9f,0x59,0x02,0x6c,0xa0,0x62,0x10,0x2e,0xda,0x59,0x46,0x0c,0x16,0x00,0x04,0xc1,
- 0xe0,0x61,0x1f,0xbe,0xa9,0x17,0x7a,0x99,0x17,0xf7,0x68,0x0f,0xf6,0x18,0x31,0x38,
- 0x00,0x10,0x04,0x83,0x69,0x7d,0xee,0x26,0xf8,0x99,0x11,0x83,0x03,0x00,0x41,0x30,
- 0x98,0xd8,0xc7,0x6e,0x82,0x9f,0xb1,0xf8,0x60,0x17,0xf8,0x58,0x7c,0xb0,0x0b,0x7c,
- 0x2c,0x3e,0xd8,0x05,0x3e,0x23,0x06,0x0b,0x00,0x82,0x60,0xf0,0xc8,0x8f,0xe8,0x0c,
- 0x42,0x30,0x08,0xc1,0x88,0x81,0x01,0x80,0x20,0x18,0x44,0xf2,0xf3,0x37,0x81,0x05,
- 0x85,0x7c,0x4c,0x28,0xe4,0x63,0x43,0x21,0x9f,0x11,0x83,0x05,0x00,0x41,0x30,0x78,
- 0xee,0xe7,0x74,0x40,0xe6,0x5f,0xfc,0x65,0x10,0x82,0x11,0x83,0x03,0x00,0x41,0x30,
- 0x98,0xec,0x47,0x74,0x02,0xb5,0x19,0x31,0x38,0x00,0x10,0x04,0x83,0xe9,0x7e,0x42,
- 0x27,0x50,0x9b,0x11,0x03,0x03,0x00,0x41,0x30,0x88,0xf2,0x07,0x74,0x02,0x0b,0xc2,
- 0x45,0x3e,0x23,0x06,0x06,0x00,0x82,0x60,0x10,0xed,0x4f,0xe8,0x04,0x23,0x06,0x07,
- 0x00,0x82,0x60,0x60,0xe9,0xcf,0xeb,0xa0,0x0d,0xe9,0x8c,0x26,0x04,0x81,0x05,0x72,
- 0x23,0x1f,0x8b,0x9b,0x20,0x3e,0x56,0xd0,0x8b,0x7c,0x2c,0x10,0xe4,0x63,0xc1,0xbb,
- 0xc8,0xc7,0x84,0x77,0x91,0x8f,0x0d,0xef,0x22,0x1f,0x1b,0xfa,0x05,0x3e,0x36,0xf4,
- 0x0b,0x7c,0x6c,0xe8,0x17,0xf8,0x58,0xad,0xb0,0x0f,0x0c,0x46,0x0c,0x0e,0x00,0x04,
- 0xc1,0xc0,0x3a,0x21,0xde,0xa9,0x9b,0x60,0x34,0x21,0x00,0x46,0x13,0x84,0x60,0x34,
- 0x61,0x10,0x0c,0x0c,0xc6,0x40,0x3e,0x46,0x04,0xf2,0xb1,0x40,0x91,0x8f,0x15,0x83,
- 0x7c,0x2c,0x58,0xe4,0x63,0x46,0x21,0x1f,0x0b,0x18,0xf9,0x58,0x51,0x2e,0xf0,0x31,
- 0xa2,0x5c,0xe0,0x63,0x43,0xb9,0xc0,0x67,0x96,0x20,0x1b,0xa8,0x18,0x0c,0x0c,0xb6,
- 0x88,0x81,0x8a,0xc1,0xc0,0x60,0x8b,0x18,0xa8,0x18,0x0c,0x0c,0xb6,0x08,0x63,0x97,
- 0x1a,0x82,0xc1,0x70,0x43,0x00,0x42,0x60,0x30,0xcb,0xa0,0x11,0xc1,0x2c,0xc1,0x36,
- 0x50,0x31,0xf0,0x9a,0xa0,0x68,0x03,0x15,0x03,0xaf,0x09,0x8a,0x36,0x50,0x31,0xf0,
- 0x9a,0xa0,0x68,0x23,0x06,0x09,0x00,0x82,0x60,0x80,0x88,0xd1,0xfa,0xe4,0x50,0x0e,
- 0xc1,0xd0,0x30,0x62,0x90,0x00,0x20,0x08,0x06,0x88,0x18,0xad,0x4f,0x0e,0xe5,0x50,
- 0x09,0x09,0x23,0x06,0x09,0x00,0x82,0x60,0x80,0x88,0xd1,0xfa,0xe4,0x50,0x0e,0xbd,
- 0x50,0x30,0x62,0x90,0x00,0x20,0x08,0x06,0x88,0x18,0xad,0x4f,0x0e,0xe5,0x90,0x0b,
- 0xb9,0x0d,0x02,0x00,0x00,0x00,0x00,0x00,
-};
-
-static const unsigned char _fragmentMainMSL[] = {
- 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,
- 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,
- 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,
- 0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,
- 0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,
- 0x79,0x70,0x65,0x5f,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,0x34,0x20,
- 0x6d,0x6f,0x64,0x65,0x6c,0x56,0x69,0x65,0x77,0x50,0x72,0x6f,0x6a,0x65,0x63,0x74,
- 0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,
- 0x34,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x78,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,
- 0x69,0x78,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,
- 0x79,0x70,0x65,0x5f,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,0x34,0x20,
- 0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x31,0x32,0x38,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,
- 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x4c,0x69,0x67,0x68,0x74,0x0a,0x7b,0x0a,
- 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x6f,0x73,0x69,0x74,
- 0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x52,0x61,0x6e,
- 0x67,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,
- 0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,
- 0x20,0x63,0x6f,0x6e,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,
- 0x74,0x20,0x74,0x79,0x70,0x65,0x5f,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,
- 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x34,0x20,0x63,0x61,0x6d,0x65,0x72,0x61,0x50,0x6f,0x73,0x69,0x74,
- 0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,
- 0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x20,0x62,0x61,0x73,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x65,0x6d,0x69,0x73,0x73,0x69,
- 0x76,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x6d,
- 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x20,0x63,0x6f,0x75,0x6e,0x74,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x50,0x61,0x72,
- 0x61,0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,
- 0x34,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x38,
- 0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x68,
- 0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x38,0x5d,0x3b,0x0a,0x20,0x20,0x20,
- 0x20,0x4c,0x69,0x67,0x68,0x74,0x20,0x6c,0x69,0x67,0x68,0x74,0x73,0x5b,0x38,0x5d,
- 0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x66,0x72,0x61,
- 0x67,0x6d,0x65,0x6e,0x74,0x4d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,
- 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x6f,0x75,0x74,0x5f,0x76,
- 0x61,0x72,0x5f,0x53,0x56,0x5f,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x5b,0x5b,0x63,
- 0x6f,0x6c,0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,
- 0x74,0x72,0x75,0x63,0x74,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x4d,0x61,
- 0x69,0x6e,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,
- 0x74,0x33,0x20,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,
- 0x52,0x44,0x30,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,
- 0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,
- 0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,
- 0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,
- 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x69,0x6e,0x5f,
- 0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x32,0x20,0x5b,0x5b,
- 0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,
- 0x3b,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x66,0x72,0x61,0x67,
- 0x6d,0x65,0x6e,0x74,0x4d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x66,0x72,0x61,
- 0x67,0x6d,0x65,0x6e,0x74,0x4d,0x61,0x69,0x6e,0x28,0x66,0x72,0x61,0x67,0x6d,0x65,
- 0x6e,0x74,0x4d,0x61,0x69,0x6e,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,
- 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,
- 0x61,0x6e,0x74,0x20,0x74,0x79,0x70,0x65,0x5f,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,
- 0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26,0x20,0x46,0x72,0x61,0x67,0x6d,
- 0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x20,0x5b,0x5b,0x62,0x75,
- 0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,
- 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x62,0x61,0x73,0x65,
- 0x54,0x65,0x78,0x74,0x75,0x72,0x65,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,
- 0x65,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,
- 0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73,
- 0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x70,0x73,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,
- 0x75,0x72,0x65,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,
- 0x72,0x20,0x62,0x61,0x73,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x5b,0x5b,
- 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,
- 0x6d,0x70,0x6c,0x65,0x72,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x53,0x61,0x6d,0x70,
- 0x6c,0x65,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x31,0x29,
- 0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,
- 0x6e,0x74,0x4d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,
- 0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,
- 0x5f,0x35,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x0a,0x20,0x20,0x20,
- 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,
- 0x34,0x20,0x5f,0x31,0x30,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x69,0x66,0x20,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x2e,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x77,0x20,
- 0x3e,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,
- 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30,
- 0x33,0x20,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x2e,0x62,0x61,0x73,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,
- 0x20,0x62,0x61,0x73,0x65,0x54,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x73,0x61,0x6d,
- 0x70,0x6c,0x65,0x28,0x62,0x61,0x73,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,
- 0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,
- 0x4f,0x52,0x44,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,
- 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x33,0x20,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,
- 0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x62,0x61,0x73,0x65,
- 0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,
- 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x46,0x72,0x61,
- 0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6d,0x61,
- 0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e,0x35,0x29,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,0x36,0x30,0x20,0x3d,0x20,0x5f,0x31,0x30,
- 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,
- 0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,
- 0x31,0x30,0x39,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,
- 0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,
- 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x31,0x34,0x20,
- 0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,
- 0x65,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,
- 0x6d,0x73,0x2e,0x63,0x61,0x6d,0x65,0x72,0x61,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,
- 0x6e,0x2e,0x78,0x79,0x7a,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,
- 0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x29,0x3b,0x0a,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x31,
- 0x38,0x20,0x3d,0x20,0x5f,0x31,0x30,0x33,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,
- 0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,
- 0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,
- 0x20,0x2a,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,
- 0x72,0x6d,0x73,0x2e,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x29,0x29,
- 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,
- 0x5f,0x31,0x32,0x32,0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,0x2b,0x20,0x28,0x32,0x2e,
- 0x30,0x20,0x2a,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x2e,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x29,
- 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,
- 0x20,0x5f,0x31,0x32,0x33,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,
- 0x74,0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,
- 0x35,0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,
- 0x29,0x2c,0x20,0x5f,0x31,0x30,0x33,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x33,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x2e,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x29,
- 0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x32,0x35,0x20,0x3d,0x20,0x6d,
- 0x69,0x78,0x28,0x32,0x35,0x36,0x2e,0x30,0x2c,0x20,0x34,0x2e,0x30,0x2c,0x20,0x46,
- 0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,
- 0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x79,0x20,0x2a,0x20,0x46,0x72,0x61,
- 0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6d,0x61,
- 0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x37,0x20,0x3d,0x20,0x69,0x6e,
- 0x74,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,
- 0x6d,0x73,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x73,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x33,
- 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x39,0x20,
- 0x3d,0x20,0x28,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,
- 0x6f,0x72,0x6d,0x73,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x2e,0x78,0x79,0x7a,
- 0x20,0x2a,0x20,0x5f,0x31,0x30,0x33,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,
- 0x31,0x32,0x32,0x29,0x20,0x2b,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,
- 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,
- 0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x5f,0x31,0x34,0x32,
- 0x20,0x3d,0x20,0x30,0x3b,0x20,0x5f,0x31,0x34,0x32,0x20,0x3c,0x20,0x38,0x3b,0x20,
- 0x5f,0x31,0x33,0x39,0x20,0x3d,0x20,0x5f,0x31,0x34,0x30,0x2c,0x20,0x5f,0x31,0x34,
- 0x32,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,
- 0x31,0x34,0x32,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x37,0x29,0x0a,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30,0x20,
- 0x3d,0x20,0x5f,0x31,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,
- 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,
- 0x74,0x20,0x5f,0x31,0x39,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x30,0x30,0x3b,
- 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,
- 0x28,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x2e,0x6c,0x69,0x67,0x68,0x74,0x73,0x5b,0x5f,0x31,0x34,0x32,0x5d,0x2e,0x70,
- 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x2e,0x77,0x20,0x3d,0x3d,
- 0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x39,0x20,0x3d,0x20,0x31,0x2e,0x30,0x3b,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x5f,0x32,0x30,0x30,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,
- 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x2d,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,
- 0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6c,0x69,0x67,0x68,0x74,0x73,0x5b,
- 0x5f,0x31,0x34,0x32,0x5d,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x52,
- 0x61,0x6e,0x67,0x65,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,
- 0x31,0x36,0x34,0x20,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6c,0x69,0x67,0x68,0x74,0x73,0x5b,0x5f,0x31,
- 0x34,0x32,0x5d,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,
- 0x2e,0x78,0x79,0x7a,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,
- 0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,
- 0x74,0x20,0x5f,0x31,0x36,0x35,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,
- 0x5f,0x31,0x36,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,
- 0x36,0x38,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,
- 0x74,0x33,0x28,0x70,0x72,0x65,0x63,0x69,0x73,0x65,0x3a,0x3a,0x6d,0x61,0x78,0x28,
- 0x5f,0x31,0x36,0x35,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,
- 0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,
- 0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,
- 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x37,0x31,0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,
- 0x2f,0x20,0x28,0x31,0x2e,0x30,0x20,0x2b,0x20,0x28,0x5f,0x31,0x36,0x35,0x20,0x2a,
- 0x20,0x5f,0x31,0x36,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,
- 0x31,0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,
- 0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6c,0x69,0x67,0x68,0x74,0x73,
- 0x5b,0x5f,0x31,0x34,0x32,0x5d,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,
- 0x52,0x61,0x6e,0x67,0x65,0x2e,0x77,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,
- 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x38,0x32,0x20,0x3d,0x20,0x5f,0x31,0x37,0x31,
- 0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,
- 0x2e,0x30,0x20,0x2d,0x20,0x70,0x6f,0x77,0x72,0x28,0x5f,0x31,0x36,0x35,0x20,0x2f,
- 0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x2e,0x6c,0x69,0x67,0x68,0x74,0x73,0x5b,0x5f,0x31,0x34,0x32,0x5d,0x2e,0x64,
- 0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x52,0x61,0x6e,0x67,0x65,0x2e,0x77,0x2c,
- 0x20,0x34,0x2e,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,
- 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,
- 0x31,0x38,0x32,0x20,0x3d,0x20,0x5f,0x31,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x20,0x5f,0x31,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x46,0x72,
- 0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6c,
- 0x69,0x67,0x68,0x74,0x73,0x5b,0x5f,0x31,0x34,0x32,0x5d,0x2e,0x70,0x6f,0x73,0x69,
- 0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x32,0x2e,
- 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x38,0x20,0x3d,0x20,
- 0x5f,0x31,0x38,0x32,0x20,0x2a,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,
- 0x70,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,
- 0x6d,0x73,0x2e,0x6c,0x69,0x67,0x68,0x74,0x73,0x5b,0x5f,0x31,0x34,0x32,0x5d,0x2e,
- 0x63,0x6f,0x6e,0x65,0x2e,0x79,0x2c,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,
- 0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6c,0x69,0x67,0x68,0x74,0x73,0x5b,
- 0x5f,0x31,0x34,0x32,0x5d,0x2e,0x63,0x6f,0x6e,0x65,0x2e,0x78,0x2c,0x20,0x64,0x6f,
- 0x74,0x28,0x2d,0x5f,0x31,0x36,0x38,0x2c,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,
- 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,
- 0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6c,0x69,0x67,0x68,0x74,0x73,
- 0x5b,0x5f,0x31,0x34,0x32,0x5d,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,
- 0x52,0x61,0x6e,0x67,0x65,0x2e,0x78,0x79,0x7a,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x38,0x20,
- 0x3d,0x20,0x5f,0x31,0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x39,0x20,0x3d,
- 0x20,0x5f,0x31,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x30,0x20,0x3d,0x20,0x5f,0x31,
- 0x36,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x20,0x5f,0x35,0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,
- 0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6c,0x69,0x67,0x68,0x74,
- 0x73,0x5b,0x5f,0x31,0x34,0x32,0x5d,0x2e,0x63,0x6f,0x6e,0x65,0x2e,0x7a,0x20,0x3e,
- 0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x32,0x30,0x37,0x20,0x3d,0x20,0x69,
- 0x6e,0x74,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,
- 0x72,0x6d,0x73,0x2e,0x6c,0x69,0x67,0x68,0x74,0x73,0x5b,0x5f,0x31,0x34,0x32,0x5d,
- 0x2e,0x63,0x6f,0x6e,0x65,0x2e,0x7a,0x29,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x20,0x5f,0x35,0x33,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x46,0x72,
- 0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,
- 0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,0x32,0x30,0x37,0x5d,0x2e,
- 0x78,0x20,0x3d,0x3d,0x20,0x32,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x64,0x6f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x33,0x30,0x20,0x3d,0x20,0x28,
- 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,
- 0x52,0x44,0x30,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x30,0x39,0x20,0x2a,0x20,0x46,
- 0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,
- 0x73,0x68,0x61,0x64,0x6f,0x77,0x50,0x61,0x72,0x61,0x6d,0x73,0x2e,0x78,0x29,0x20,
- 0x2a,0x20,0x38,0x2e,0x30,0x29,0x29,0x20,0x2d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,
- 0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6c,0x69,0x67,0x68,0x74,
- 0x73,0x5b,0x5f,0x31,0x34,0x32,0x5d,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,
- 0x54,0x79,0x70,0x65,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x33,0x31,0x20,0x3d,0x20,
- 0x61,0x62,0x73,0x28,0x5f,0x32,0x33,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x34,0x20,0x3d,0x20,
- 0x5f,0x32,0x33,0x31,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x35,0x20,0x3d,0x20,0x5f,0x32,0x33,
- 0x31,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,
- 0x6c,0x20,0x5f,0x32,0x34,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x69,0x66,0x20,0x28,0x5f,0x32,0x33,0x34,0x20,0x3e,0x3d,0x20,0x5f,0x32,0x33,0x35,
- 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x34,0x31,0x20,0x3d,0x20,0x5f,
- 0x32,0x33,0x34,0x20,0x3e,0x3d,0x20,0x5f,0x32,0x33,0x31,0x2e,0x7a,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x34,0x31,
- 0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,
- 0x74,0x20,0x5f,0x32,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x37,0x33,0x3b,
- 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,
- 0x5f,0x32,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,
- 0x20,0x28,0x5f,0x32,0x34,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,
- 0x6f,0x6c,0x20,0x5f,0x32,0x34,0x36,0x20,0x3d,0x20,0x5f,0x32,0x33,0x30,0x2e,0x78,
- 0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x5f,0x32,0x37,0x31,0x20,0x3d,0x20,0x5f,0x32,0x34,0x36,0x20,
- 0x3f,0x20,0x30,0x2e,0x30,0x20,0x3a,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x37,0x32,0x20,0x3d,0x20,
- 0x5f,0x32,0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x5f,0x32,0x37,0x33,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,
- 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x37,0x34,
- 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x34,0x36,0x20,0x3f,
- 0x20,0x31,0x2e,0x30,0x20,0x3a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x2c,0x20,0x30,
- 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,
- 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x35,
- 0x30,0x20,0x3d,0x20,0x5f,0x32,0x33,0x31,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x32,0x35,
- 0x31,0x20,0x3d,0x20,0x5f,0x32,0x33,0x35,0x20,0x3e,0x3d,0x20,0x5f,0x32,0x35,0x30,
- 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x36,
- 0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,
- 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x35,0x31,
- 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x32,0x35,0x36,0x20,0x3d,0x20,0x5f,0x32,0x33,0x30,
- 0x2e,0x79,0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x36,0x37,0x20,0x3d,
- 0x20,0x5f,0x32,0x35,0x36,0x20,0x3f,0x20,0x32,0x2e,0x30,0x20,0x3a,0x20,0x33,0x2e,
- 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x5f,0x32,0x36,0x38,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,
- 0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x35,0x36,0x20,
- 0x3f,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x20,0x3a,0x20,0x31,0x2e,0x30,0x29,0x3b,
- 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x5f,0x32,0x36,0x39,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,
- 0x2e,0x30,0x2c,0x20,0x5f,0x32,0x35,0x36,0x20,0x3f,0x20,0x31,0x2e,0x30,0x20,0x3a,
- 0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,
- 0x20,0x5f,0x32,0x36,0x33,0x20,0x3d,0x20,0x5f,0x32,0x33,0x30,0x2e,0x7a,0x20,0x3e,
- 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x36,0x37,0x20,0x3d,0x20,0x5f,0x32,0x36,
- 0x33,0x20,0x3f,0x20,0x34,0x2e,0x30,0x20,0x3a,0x20,0x35,0x2e,0x30,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,
- 0x32,0x36,0x38,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,
- 0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x36,
- 0x39,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,
- 0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x36,0x33,0x20,0x3f,0x20,0x31,0x2e,0x30,0x20,
- 0x3a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x37,0x31,0x20,0x3d,0x20,0x5f,0x32,0x36,0x37,
- 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,
- 0x37,0x32,0x20,0x3d,0x20,0x5f,0x32,0x35,0x31,0x20,0x3f,0x20,0x5f,0x32,0x33,0x35,
- 0x20,0x3a,0x20,0x5f,0x32,0x35,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x37,0x33,0x20,0x3d,0x20,0x5f,0x32,0x36,0x38,
- 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,
- 0x37,0x34,0x20,0x3d,0x20,0x5f,0x32,0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x20,0x5f,0x32,0x37,0x39,0x20,0x3d,0x20,0x30,0x2e,0x35,0x20,0x2b,0x20,
- 0x28,0x28,0x30,0x2e,0x35,0x20,0x2a,0x20,0x64,0x6f,0x74,0x28,0x5f,0x32,0x33,0x30,
- 0x2c,0x20,0x63,0x72,0x6f,0x73,0x73,0x28,0x5f,0x32,0x37,0x34,0x2c,0x20,0x5f,0x32,
- 0x37,0x33,0x29,0x29,0x29,0x20,0x2f,0x20,0x5f,0x32,0x37,0x32,0x29,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x38,
- 0x33,0x20,0x3d,0x20,0x30,0x2e,0x35,0x20,0x2d,0x20,0x28,0x28,0x30,0x2e,0x35,0x20,
- 0x2a,0x20,0x64,0x6f,0x74,0x28,0x5f,0x32,0x33,0x30,0x2c,0x20,0x5f,0x32,0x37,0x33,
- 0x29,0x29,0x20,0x2f,0x20,0x5f,0x32,0x37,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x32,0x38,0x34,0x20,
- 0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x32,0x37,0x39,0x2c,0x20,0x5f,
- 0x32,0x38,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x20,0x5f,0x32,0x38,0x35,0x20,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,
- 0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,
- 0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,0x32,0x30,0x37,0x5d,0x2e,0x77,0x20,0x2d,
- 0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,0x32,0x30,
- 0x37,0x5d,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x20,0x5f,0x32,0x39,0x32,0x20,0x3d,0x20,0x28,0x28,0x46,0x72,0x61,
- 0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,
- 0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,0x32,0x30,0x37,0x5d,0x2e,0x77,
- 0x20,0x2f,0x20,0x5f,0x32,0x38,0x35,0x29,0x20,0x2d,0x20,0x28,0x28,0x46,0x72,0x61,
- 0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,
- 0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,0x32,0x30,0x37,0x5d,0x2e,0x7a,
- 0x20,0x2a,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,
- 0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,
- 0x32,0x30,0x37,0x5d,0x2e,0x77,0x29,0x20,0x2f,0x20,0x28,0x5f,0x32,0x38,0x35,0x20,
- 0x2a,0x20,0x5f,0x32,0x37,0x32,0x29,0x29,0x29,0x20,0x2d,0x20,0x28,0x46,0x72,0x61,
- 0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,
- 0x61,0x64,0x6f,0x77,0x50,0x61,0x72,0x61,0x6d,0x73,0x2e,0x78,0x20,0x2a,0x20,0x32,
- 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,
- 0x28,0x5f,0x32,0x39,0x32,0x20,0x3e,0x20,0x31,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x5f,0x33,0x35,0x36,0x20,0x3d,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,
- 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x39,0x38,0x20,0x3d,
- 0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,0x32,0x30,
- 0x37,0x5d,0x2e,0x79,0x20,0x2b,0x20,0x5f,0x32,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x39,0x39,
- 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x39,0x2c,0x20,
- 0x5f,0x32,0x38,0x33,0x2c,0x20,0x5f,0x32,0x39,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x33,0x30,0x37,
- 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,
- 0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,
- 0x77,0x50,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,
- 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,
- 0x5f,0x33,0x31,0x31,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,
- 0x38,0x34,0x20,0x2b,0x20,0x5f,0x33,0x30,0x37,0x2c,0x20,0x5f,0x32,0x39,0x38,0x29,
- 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,
- 0x20,0x5f,0x33,0x32,0x33,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,
- 0x32,0x38,0x34,0x20,0x2d,0x20,0x5f,0x33,0x30,0x37,0x2c,0x20,0x5f,0x32,0x39,0x38,
- 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,
- 0x32,0x20,0x5f,0x33,0x33,0x32,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,
- 0x30,0x2e,0x30,0x2c,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,
- 0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x50,0x61,0x72,0x61,
- 0x6d,0x73,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,
- 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x33,0x33,0x36,0x20,0x3d,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x33,0x28,0x5f,0x32,0x38,0x34,0x20,0x2b,0x20,0x5f,0x33,0x33,0x32,0x2c,
- 0x20,0x5f,0x32,0x39,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x33,0x34,0x38,0x20,0x3d,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x38,0x34,0x20,0x2d,0x20,0x5f,0x33,0x33,0x32,
- 0x2c,0x20,0x5f,0x32,0x39,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x5f,0x33,0x35,0x36,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,
- 0x74,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x70,0x73,0x2e,0x73,0x61,0x6d,
- 0x70,0x6c,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x53,0x61,0x6d,0x70,0x6c,0x65,
- 0x72,0x2c,0x20,0x5f,0x32,0x39,0x39,0x2e,0x78,0x79,0x2c,0x20,0x75,0x69,0x6e,0x74,
- 0x28,0x72,0x69,0x6e,0x74,0x28,0x5f,0x32,0x39,0x39,0x2e,0x7a,0x29,0x29,0x29,0x2e,
- 0x78,0x20,0x3e,0x3d,0x20,0x5f,0x32,0x39,0x32,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x70,0x73,0x2e,0x73,0x61,
- 0x6d,0x70,0x6c,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x53,0x61,0x6d,0x70,0x6c,
- 0x65,0x72,0x2c,0x20,0x5f,0x33,0x31,0x31,0x2e,0x78,0x79,0x2c,0x20,0x75,0x69,0x6e,
- 0x74,0x28,0x72,0x69,0x6e,0x74,0x28,0x5f,0x33,0x31,0x31,0x2e,0x7a,0x29,0x29,0x29,
- 0x2e,0x78,0x20,0x3e,0x3d,0x20,0x5f,0x32,0x39,0x32,0x29,0x29,0x20,0x2b,0x20,0x66,
- 0x6c,0x6f,0x61,0x74,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x70,0x73,0x2e,
- 0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x53,0x61,0x6d,
- 0x70,0x6c,0x65,0x72,0x2c,0x20,0x5f,0x33,0x32,0x33,0x2e,0x78,0x79,0x2c,0x20,0x75,
- 0x69,0x6e,0x74,0x28,0x72,0x69,0x6e,0x74,0x28,0x5f,0x33,0x32,0x33,0x2e,0x7a,0x29,
- 0x29,0x29,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x5f,0x32,0x39,0x32,0x29,0x29,0x20,0x2b,
- 0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x70,
- 0x73,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x53,
- 0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x5f,0x33,0x33,0x36,0x2e,0x78,0x79,0x2c,
- 0x20,0x75,0x69,0x6e,0x74,0x28,0x72,0x69,0x6e,0x74,0x28,0x5f,0x33,0x33,0x36,0x2e,
- 0x7a,0x29,0x29,0x29,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x5f,0x32,0x39,0x32,0x29,0x29,
- 0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,
- 0x61,0x70,0x73,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,
- 0x77,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x5f,0x33,0x34,0x38,0x2e,0x78,
- 0x79,0x2c,0x20,0x75,0x69,0x6e,0x74,0x28,0x72,0x69,0x6e,0x74,0x28,0x5f,0x33,0x34,
- 0x38,0x2e,0x7a,0x29,0x29,0x29,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x5f,0x32,0x39,0x32,
- 0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,
- 0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,
- 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,
- 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x77,0x68,0x69,0x6c,0x65,0x28,0x66,0x61,
- 0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,0x33,0x33,0x20,0x3d,
- 0x20,0x5f,0x31,0x39,0x39,0x20,0x2a,0x20,0x5f,0x33,0x35,0x36,0x3b,0x0a,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,
- 0x20,0x5f,0x35,0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x0a,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,
- 0x74,0x34,0x20,0x5f,0x33,0x37,0x31,0x20,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,
- 0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,
- 0x77,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x5f,0x32,0x30,0x37,0x5d,0x20,0x2a,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x76,0x61,0x72,
- 0x5f,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x20,0x2b,0x20,0x28,0x28,0x5f,
- 0x31,0x30,0x39,0x20,0x2a,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x50,0x61,0x72,
- 0x61,0x6d,0x73,0x2e,0x78,0x29,0x20,0x2a,0x20,0x38,0x2e,0x30,0x29,0x2c,0x20,0x31,
- 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x33,0x20,0x5f,0x33,0x37,0x39,0x20,0x3d,0x20,0x5f,0x33,0x37,0x31,0x2e,
- 0x78,0x79,0x7a,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x33,0x37,
- 0x31,0x2e,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x20,0x5f,0x33,0x38,0x32,0x20,0x3d,0x20,0x28,0x5f,0x33,0x37,0x39,
- 0x2e,0x78,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x3b,
- 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,
- 0x33,0x38,0x35,0x20,0x3d,0x20,0x30,0x2e,0x35,0x20,0x2d,0x20,0x28,0x5f,0x33,0x37,
- 0x39,0x2e,0x79,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x33,0x38,0x36,0x20,
- 0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x33,0x38,0x32,0x2c,0x20,0x5f,
- 0x33,0x38,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x34,0x20,0x3d,0x20,0x5f,0x33,0x37,0x39,0x2e,
- 0x7a,0x20,0x2d,0x20,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,
- 0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x50,0x61,0x72,0x61,
- 0x6d,0x73,0x2e,0x78,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2b,0x20,0x28,0x32,
- 0x2e,0x30,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x66,0x61,0x73,0x74,
- 0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x30,0x39,
- 0x2c,0x20,0x5f,0x32,0x30,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,
- 0x30,0x29,0x29,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x33,0x39,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x73,0x75,0x6e,0x6f,0x72,0x64,0x65,
- 0x72,0x65,0x64,0x28,0x5f,0x33,0x38,0x32,0x2c,0x20,0x30,0x2e,0x30,0x29,0x20,0x7c,
- 0x7c,0x20,0x5f,0x33,0x38,0x32,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x29,0x29,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x33,0x39,0x39,0x20,0x3d,0x20,0x5f,0x33,0x38,
- 0x32,0x20,0x3e,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x33,0x39,0x39,0x20,0x3d,0x20,0x74,0x72,0x75,
- 0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x30,0x34,0x3b,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x33,0x39,
- 0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x30,0x34,0x20,0x3d,0x20,
- 0x5f,0x33,0x38,0x35,0x20,0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,
- 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x30,0x34,0x20,0x3d,0x20,
- 0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x30,
- 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,
- 0x5f,0x34,0x30,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x30,0x39,
- 0x20,0x3d,0x20,0x5f,0x33,0x38,0x35,0x20,0x3e,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x30,0x39,
- 0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,
- 0x5f,0x34,0x31,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,
- 0x20,0x28,0x21,0x5f,0x34,0x30,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,
- 0x34,0x31,0x34,0x20,0x3d,0x20,0x5f,0x33,0x39,0x34,0x20,0x3e,0x20,0x31,0x2e,0x30,
- 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,
- 0x34,0x31,0x34,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,
- 0x20,0x28,0x5f,0x34,0x31,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,
- 0x33,0x31,0x20,0x3d,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,
- 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x31,0x39,0x20,0x3d,0x20,0x2d,0x46,0x72,0x61,
- 0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,
- 0x61,0x64,0x6f,0x77,0x50,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79,0x3b,0x0a,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x34,0x32,
- 0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x33,0x38,0x36,0x20,
- 0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x34,0x31,0x39,0x29,0x2c,0x20,
- 0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,0x32,0x30,0x37,
- 0x5d,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x33,0x20,0x5f,0x34,0x33,0x36,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,
- 0x74,0x33,0x28,0x5f,0x33,0x38,0x36,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,
- 0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x34,0x31,0x39,0x29,0x2c,0x20,0x46,0x72,0x61,
- 0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,
- 0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,0x32,0x30,0x37,0x5d,0x2e,0x79,
- 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,
- 0x33,0x20,0x5f,0x34,0x34,0x39,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,
- 0x5f,0x33,0x38,0x36,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x46,0x72,
- 0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,
- 0x68,0x61,0x64,0x6f,0x77,0x50,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79,0x2c,0x20,0x5f,
- 0x34,0x31,0x39,0x29,0x2c,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,
- 0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,
- 0x6f,0x5b,0x5f,0x32,0x30,0x37,0x5d,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x34,0x36,0x32,0x20,
- 0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x33,0x38,0x36,0x20,0x2b,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x34,0x31,0x39,0x2c,0x20,0x30,0x2e,0x30,
- 0x29,0x2c,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,
- 0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,
- 0x32,0x30,0x37,0x5d,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x34,0x37,0x31,0x20,0x3d,0x20,0x66,
- 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x33,0x38,0x32,0x2c,0x20,0x5f,0x33,0x38,0x35,
- 0x2c,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,
- 0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,0x32,
- 0x30,0x37,0x5d,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x34,0x38,0x34,0x20,0x3d,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x33,0x28,0x5f,0x33,0x38,0x36,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,
- 0x74,0x32,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,
- 0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x50,0x61,0x72,0x61,0x6d,0x73,
- 0x2e,0x79,0x2c,0x20,0x30,0x2e,0x30,0x29,0x2c,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,
- 0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,
- 0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,0x32,0x30,0x37,0x5d,0x2e,0x79,0x29,0x3b,0x0a,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,
- 0x34,0x39,0x37,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x33,0x38,
- 0x36,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x34,0x31,0x39,0x2c,
- 0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x50,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79,
- 0x29,0x2c,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,
- 0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,
- 0x32,0x30,0x37,0x5d,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x35,0x31,0x30,0x20,0x3d,0x20,0x66,
- 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x33,0x38,0x36,0x20,0x2b,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x32,0x28,0x30,0x2e,0x30,0x2c,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,
- 0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,
- 0x50,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79,0x29,0x2c,0x20,0x46,0x72,0x61,0x67,0x6d,
- 0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,0x64,
- 0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,0x32,0x30,0x37,0x5d,0x2e,0x79,0x29,0x3b,
- 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,
- 0x5f,0x35,0x32,0x33,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x33,
- 0x38,0x36,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x46,0x72,0x61,0x67,
- 0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,0x68,0x61,
- 0x64,0x6f,0x77,0x50,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79,0x29,0x2c,0x20,0x46,0x72,
- 0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x73,
- 0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x5f,0x32,0x30,0x37,0x5d,0x2e,
- 0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,0x33,0x31,
- 0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,
- 0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x70,0x73,0x2e,0x73,0x61,0x6d,0x70,
- 0x6c,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,
- 0x2c,0x20,0x5f,0x34,0x32,0x34,0x2e,0x78,0x79,0x2c,0x20,0x75,0x69,0x6e,0x74,0x28,
- 0x72,0x69,0x6e,0x74,0x28,0x5f,0x34,0x32,0x34,0x2e,0x7a,0x29,0x29,0x29,0x2e,0x78,
- 0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x34,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,
- 0x74,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x70,0x73,0x2e,0x73,0x61,0x6d,
- 0x70,0x6c,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x53,0x61,0x6d,0x70,0x6c,0x65,
- 0x72,0x2c,0x20,0x5f,0x34,0x33,0x36,0x2e,0x78,0x79,0x2c,0x20,0x75,0x69,0x6e,0x74,
- 0x28,0x72,0x69,0x6e,0x74,0x28,0x5f,0x34,0x33,0x36,0x2e,0x7a,0x29,0x29,0x29,0x2e,
- 0x78,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x34,0x29,0x29,0x20,0x2b,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x70,0x73,0x2e,0x73,
- 0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x53,0x61,0x6d,0x70,
- 0x6c,0x65,0x72,0x2c,0x20,0x5f,0x34,0x34,0x39,0x2e,0x78,0x79,0x2c,0x20,0x75,0x69,
- 0x6e,0x74,0x28,0x72,0x69,0x6e,0x74,0x28,0x5f,0x34,0x34,0x39,0x2e,0x7a,0x29,0x29,
- 0x29,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x34,0x29,0x29,0x20,0x2b,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x70,0x73,
- 0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x53,0x61,
- 0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x5f,0x34,0x36,0x32,0x2e,0x78,0x79,0x2c,0x20,
- 0x75,0x69,0x6e,0x74,0x28,0x72,0x69,0x6e,0x74,0x28,0x5f,0x34,0x36,0x32,0x2e,0x7a,
- 0x29,0x29,0x29,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x34,0x29,0x29,0x20,
- 0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,
- 0x70,0x73,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,
- 0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x5f,0x34,0x37,0x31,0x2e,0x78,0x79,
- 0x2c,0x20,0x75,0x69,0x6e,0x74,0x28,0x72,0x69,0x6e,0x74,0x28,0x5f,0x34,0x37,0x31,
- 0x2e,0x7a,0x29,0x29,0x29,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x34,0x29,
- 0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,
- 0x4d,0x61,0x70,0x73,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x68,0x61,0x64,
- 0x6f,0x77,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x5f,0x34,0x38,0x34,0x2e,
- 0x78,0x79,0x2c,0x20,0x75,0x69,0x6e,0x74,0x28,0x72,0x69,0x6e,0x74,0x28,0x5f,0x34,
- 0x38,0x34,0x2e,0x7a,0x29,0x29,0x29,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,
- 0x34,0x29,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x73,0x68,0x61,0x64,
- 0x6f,0x77,0x4d,0x61,0x70,0x73,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x68,
- 0x61,0x64,0x6f,0x77,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x5f,0x34,0x39,
- 0x37,0x2e,0x78,0x79,0x2c,0x20,0x75,0x69,0x6e,0x74,0x28,0x72,0x69,0x6e,0x74,0x28,
- 0x5f,0x34,0x39,0x37,0x2e,0x7a,0x29,0x29,0x29,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x5f,
- 0x33,0x39,0x34,0x29,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x73,0x68,
- 0x61,0x64,0x6f,0x77,0x4d,0x61,0x70,0x73,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,
- 0x73,0x68,0x61,0x64,0x6f,0x77,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x5f,
- 0x35,0x31,0x30,0x2e,0x78,0x79,0x2c,0x20,0x75,0x69,0x6e,0x74,0x28,0x72,0x69,0x6e,
- 0x74,0x28,0x5f,0x35,0x31,0x30,0x2e,0x7a,0x29,0x29,0x29,0x2e,0x78,0x20,0x3e,0x3d,
- 0x20,0x5f,0x33,0x39,0x34,0x29,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,
- 0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x70,0x73,0x2e,0x73,0x61,0x6d,0x70,0x6c,
- 0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,
- 0x20,0x5f,0x35,0x32,0x33,0x2e,0x78,0x79,0x2c,0x20,0x75,0x69,0x6e,0x74,0x28,0x72,
- 0x69,0x6e,0x74,0x28,0x5f,0x35,0x32,0x33,0x2e,0x7a,0x29,0x29,0x29,0x2e,0x78,0x20,
- 0x3e,0x3d,0x20,0x5f,0x33,0x39,0x34,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x31,
- 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x39,0x33,0x38,0x39,0x35,0x33,0x33,0x39,0x39,
- 0x36,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,
- 0x77,0x68,0x69,0x6c,0x65,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x5f,0x35,0x33,0x33,0x20,0x3d,0x20,0x5f,0x31,0x39,0x39,0x20,0x2a,0x20,
- 0x5f,0x35,0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,0x33,0x34,0x20,0x3d,0x20,0x5f,
- 0x35,0x33,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,
- 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x5f,0x35,0x33,0x34,0x20,0x3d,0x20,0x5f,0x31,0x39,0x39,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,
- 0x35,0x33,0x36,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,
- 0x70,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x30,0x39,0x2c,0x20,0x5f,0x32,0x30,0x30,
- 0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30,0x20,0x3d,
- 0x20,0x5f,0x31,0x33,0x39,0x20,0x2b,0x20,0x28,0x28,0x28,0x28,0x5f,0x31,0x31,0x38,
- 0x20,0x2a,0x20,0x5f,0x35,0x33,0x36,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x32,
- 0x33,0x20,0x2a,0x20,0x28,0x70,0x6f,0x77,0x72,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,
- 0x63,0x6c,0x61,0x6d,0x70,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x30,0x39,0x2c,0x20,
- 0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,
- 0x5f,0x32,0x30,0x30,0x20,0x2b,0x20,0x5f,0x31,0x31,0x34,0x29,0x29,0x2c,0x20,0x30,
- 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x5f,0x31,0x32,0x35,0x29,0x20,
- 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,
- 0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6d,0x61,0x74,0x65,0x72,
- 0x69,0x61,0x6c,0x2e,0x79,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x29,0x29,0x29,0x20,
- 0x2a,0x20,0x5f,0x35,0x33,0x36,0x29,0x29,0x20,0x2a,0x20,0x46,0x72,0x61,0x67,0x6d,
- 0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6c,0x69,0x67,0x68,
- 0x74,0x73,0x5b,0x5f,0x31,0x34,0x32,0x5d,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,
- 0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x35,0x33,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,
- 0x35,0x36,0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x5f,0x31,0x33,
- 0x39,0x2c,0x20,0x5f,0x31,0x30,0x33,0x2e,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,
- 0x20,0x77,0x68,0x69,0x6c,0x65,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x6f,0x75,0x74,0x5f,0x76,0x61,0x72,0x5f,0x53,
- 0x56,0x5f,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x5f,0x35,0x36,0x30,0x3b,
- 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,
- 0x0a,0x7d,0x0a,0x0a,
-};
-
-static const SceneShaderT sceneShaderFragmentMain = { "fragmentMain", _fragmentMainSPIRV, sizeof(_fragmentMainSPIRV), _fragmentMainDXIL, sizeof(_fragmentMainDXIL), _fragmentMainMSL, sizeof(_fragmentMainMSL) };
-
-static const unsigned char _depthMainSPIRV[] = {
- 0x03,0x02,0x23,0x07,0x00,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x23,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x11,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x03,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x06,0x00,0x04,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x64,0x65,0x70,0x74,0x68,0x4d,0x61,0x69,0x6e,0x00,0x00,0x00,
- 0x10,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x03,0x00,0x03,0x00,
- 0x05,0x00,0x00,0x00,0x58,0x02,0x00,0x00,0x05,0x00,0x07,0x00,0x02,0x00,0x00,0x00,
- 0x74,0x79,0x70,0x65,0x2e,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x00,0x00,0x00,0x06,0x00,0x08,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x6d,0x6f,0x64,0x65,0x6c,0x56,0x69,0x65,0x77,0x50,0x72,0x6f,0x6a,0x65,0x63,0x74,
- 0x69,0x6f,0x6e,0x00,0x06,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x6d,0x6f,0x64,0x65,0x6c,0x00,0x00,0x00,0x06,0x00,0x07,0x00,0x02,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,
- 0x00,0x00,0x00,0x00,0x05,0x00,0x06,0x00,0x03,0x00,0x00,0x00,0x44,0x72,0x61,0x77,
- 0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x00,0x05,0x00,0x07,0x00,
- 0x04,0x00,0x00,0x00,0x74,0x79,0x70,0x65,0x2e,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,
- 0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x06,0x00,0x05,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x6a,0x6f,0x69,0x6e,0x74,0x73,0x00,0x00,0x05,0x00,0x06,0x00,
- 0x05,0x00,0x00,0x00,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x00,0x00,0x00,0x00,0x05,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0x74,0x79,0x70,0x65,
- 0x2e,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,
- 0x73,0x00,0x00,0x00,0x06,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x63,0x61,0x6d,0x65,0x72,0x61,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x00,0x00,
- 0x06,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x6d,0x62,0x69,
- 0x65,0x6e,0x74,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x62,0x61,0x73,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x00,0x00,0x00,0x06,0x00,0x06,0x00,
- 0x06,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,
- 0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x00,0x00,0x00,0x00,0x06,0x00,0x05,0x00,
- 0x06,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x63,0x6f,0x75,0x6e,0x74,0x73,0x00,0x00,
- 0x06,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x73,0x68,0x61,0x64,
- 0x6f,0x77,0x50,0x61,0x72,0x61,0x6d,0x73,0x00,0x00,0x00,0x00,0x06,0x00,0x07,0x00,
- 0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,
- 0x74,0x72,0x69,0x78,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x73,0x68,0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x00,0x00,
- 0x06,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x6c,0x69,0x67,0x68,
- 0x74,0x73,0x00,0x00,0x05,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x4c,0x69,0x67,0x68,
- 0x74,0x00,0x00,0x00,0x06,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x00,0x00,0x00,0x00,
- 0x06,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x64,0x69,0x72,0x65,
- 0x63,0x74,0x69,0x6f,0x6e,0x52,0x61,0x6e,0x67,0x65,0x00,0x00,0x06,0x00,0x05,0x00,
- 0x07,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x00,0x00,
- 0x06,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x63,0x6f,0x6e,0x65,
- 0x00,0x00,0x00,0x00,0x05,0x00,0x07,0x00,0x08,0x00,0x00,0x00,0x46,0x72,0x61,0x67,
- 0x6d,0x65,0x6e,0x74,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x00,0x00,0x00,0x00,
- 0x05,0x00,0x06,0x00,0x09,0x00,0x00,0x00,0x74,0x79,0x70,0x65,0x2e,0x32,0x64,0x2e,
- 0x69,0x6d,0x61,0x67,0x65,0x00,0x00,0x00,0x05,0x00,0x05,0x00,0x0a,0x00,0x00,0x00,
- 0x62,0x61,0x73,0x65,0x54,0x65,0x78,0x74,0x75,0x72,0x65,0x00,0x05,0x00,0x06,0x00,
- 0x0b,0x00,0x00,0x00,0x74,0x79,0x70,0x65,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,
- 0x00,0x00,0x00,0x00,0x05,0x00,0x05,0x00,0x0c,0x00,0x00,0x00,0x62,0x61,0x73,0x65,
- 0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x00,0x05,0x00,0x07,0x00,0x0d,0x00,0x00,0x00,
- 0x74,0x79,0x70,0x65,0x2e,0x32,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x2e,0x61,0x72,
- 0x72,0x61,0x79,0x00,0x05,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x73,0x68,0x61,0x64,
- 0x6f,0x77,0x4d,0x61,0x70,0x73,0x00,0x00,0x05,0x00,0x06,0x00,0x0f,0x00,0x00,0x00,
- 0x73,0x68,0x61,0x64,0x6f,0x77,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x00,0x00,0x00,
- 0x05,0x00,0x05,0x00,0x01,0x00,0x00,0x00,0x64,0x65,0x70,0x74,0x68,0x4d,0x61,0x69,
- 0x6e,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x03,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x03,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x05,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x05,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0a,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0c,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0e,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x22,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x0f,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
- 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x02,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x04,0x00,
- 0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x47,0x00,0x03,0x00,
- 0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,0x10,0x00,0x00,0x00,
- 0x06,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
- 0x48,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x47,0x00,0x03,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x11,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x12,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x07,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x47,0x00,0x04,0x00,
- 0x13,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x50,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x48,0x00,0x05,0x00,0x06,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x48,0x00,0x05,0x00,
- 0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
- 0x48,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x48,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x23,0x00,0x00,0x00,
- 0x70,0x02,0x00,0x00,0x48,0x00,0x05,0x00,0x06,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
- 0x23,0x00,0x00,0x00,0xf0,0x02,0x00,0x00,0x47,0x00,0x03,0x00,0x06,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x16,0x00,0x03,0x00,0x14,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
- 0x17,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x18,0x00,0x04,0x00,0x16,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x1e,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
- 0x16,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x17,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x15,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x2b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x19,0x00,0x00,0x00,
- 0x80,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
- 0x19,0x00,0x00,0x00,0x1e,0x00,0x03,0x00,0x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
- 0x20,0x00,0x04,0x00,0x1a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
- 0x2b,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
- 0x1c,0x00,0x04,0x00,0x11,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
- 0x1c,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,
- 0x1e,0x00,0x06,0x00,0x07,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
- 0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x1c,0x00,0x04,0x00,0x13,0x00,0x00,0x00,
- 0x07,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1e,0x00,0x0c,0x00,0x06,0x00,0x00,0x00,
- 0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
- 0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
- 0x12,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1c,0x00,0x00,0x00,
- 0x02,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x19,0x00,0x09,0x00,0x09,0x00,0x00,0x00,
- 0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,
- 0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x1a,0x00,0x02,0x00,
- 0x0b,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x0b,0x00,0x00,0x00,0x19,0x00,0x09,0x00,0x0d,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x04,0x00,0x1f,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x20,0x00,0x00,0x00,
- 0x21,0x00,0x03,0x00,0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x17,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x1a,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x1c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x1d,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x1e,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x1f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x00,0x04,0x00,
- 0x1e,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x05,0x00,
- 0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
- 0xf8,0x00,0x02,0x00,0x22,0x00,0x00,0x00,0xfd,0x00,0x01,0x00,0x38,0x00,0x01,0x00,
-};
-
-static const unsigned char _depthMainDXIL[] = {
- 0x44,0x58,0x42,0x43,0x7a,0xf9,0xeb,0x17,0x80,0x8a,0x06,0xd1,0x88,0x87,0x8c,0x1f,
- 0xba,0x06,0xbc,0x20,0x01,0x00,0x00,0x00,0x04,0x08,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x3c,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,
- 0xc4,0x00,0x00,0x00,0x6c,0x04,0x00,0x00,0x88,0x04,0x00,0x00,0x53,0x46,0x49,0x30,
- 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x53,0x47,0x31,
- 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x4f,0x53,0x47,0x31,
- 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x50,0x53,0x56,0x30,
- 0x50,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x0c,0x00,0x00,0x00,0x00,0x64,0x65,0x70,0x74,0x68,0x4d,0x61,0x69,0x6e,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x53,0x54,0x41,0x54,0xa0,0x03,0x00,0x00,0x60,0x00,0x00,0x00,
- 0xe8,0x00,0x00,0x00,0x44,0x58,0x49,0x4c,0x00,0x01,0x00,0x00,0x10,0x00,0x00,0x00,
- 0x88,0x03,0x00,0x00,0x42,0x43,0xc0,0xde,0x21,0x0c,0x00,0x00,0xdf,0x00,0x00,0x00,
- 0x0b,0x82,0x20,0x00,0x02,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x07,0x81,0x23,0x91,
- 0x41,0xc8,0x04,0x49,0x06,0x10,0x32,0x39,0x92,0x01,0x84,0x0c,0x25,0x05,0x08,0x19,
- 0x1e,0x04,0x8b,0x62,0x80,0x0c,0x45,0x02,0x42,0x92,0x0b,0x42,0x64,0x10,0x32,0x14,
- 0x38,0x08,0x18,0x4b,0x0a,0x32,0x32,0x88,0x48,0x90,0x14,0x20,0x43,0x46,0x88,0xa5,
- 0x00,0x19,0x32,0x42,0xe4,0x48,0x0e,0x90,0x91,0x21,0xc4,0x50,0x41,0x51,0x81,0x8c,
- 0xe1,0x83,0xe5,0x8a,0x04,0x19,0x46,0x06,0x89,0x20,0x00,0x00,0x0b,0x00,0x00,0x00,
- 0x32,0x22,0xc8,0x08,0x20,0x64,0x85,0x04,0x93,0x21,0xa4,0x84,0x04,0x93,0x21,0xe3,
- 0x84,0xa1,0x90,0x14,0x12,0x4c,0x86,0x8c,0x0b,0x84,0x64,0x4c,0x10,0x14,0x23,0x00,
- 0x25,0x00,0x65,0x20,0x60,0x8e,0x00,0x0c,0x00,0x00,0x00,0x00,0x13,0x14,0x72,0xc0,
- 0x87,0x74,0x60,0x87,0x36,0x68,0x87,0x79,0x68,0x03,0x72,0xc0,0x87,0x0d,0xaf,0x50,
- 0x0e,0x6d,0xd0,0x0e,0x7a,0x50,0x0e,0x6d,0x00,0x0f,0x7a,0x30,0x07,0x72,0xa0,0x07,
- 0x73,0x20,0x07,0x6d,0x90,0x0e,0x71,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x78,
- 0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x71,0x60,0x07,0x7a,0x30,0x07,0x72,0xd0,
- 0x06,0xe9,0x30,0x07,0x72,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x76,0x40,0x07,
- 0x7a,0x60,0x07,0x74,0xd0,0x06,0xe6,0x10,0x07,0x76,0xa0,0x07,0x73,0x20,0x07,0x6d,
- 0x60,0x0e,0x73,0x20,0x07,0x7a,0x30,0x07,0x72,0xd0,0x06,0xe6,0x60,0x07,0x74,0xa0,
- 0x07,0x76,0x40,0x07,0x6d,0xe0,0x0e,0x78,0xa0,0x07,0x71,0x60,0x07,0x7a,0x30,0x07,
- 0x72,0xa0,0x07,0x76,0x40,0x07,0x43,0x9e,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xb2,0x40,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x32,0x1e,0x98,0x0c,
- 0x19,0x11,0x4c,0x90,0x8c,0x09,0x26,0x47,0xc6,0x04,0x43,0x62,0x09,0x8c,0x00,0x14,
- 0x03,0x00,0x00,0x00,0x79,0x18,0x00,0x00,0x38,0x00,0x00,0x00,0x1a,0x03,0x4c,0x90,
- 0x46,0x02,0x13,0xc4,0x8f,0x0c,0x6f,0x0c,0x05,0x4e,0x2e,0xcd,0x2e,0x8c,0xae,0x2c,
- 0x05,0x24,0xc6,0x25,0xc7,0x05,0xc6,0x25,0x06,0x04,0x45,0x66,0x0c,0x87,0x26,0x2c,
- 0x66,0xac,0x26,0x65,0x43,0x10,0x4c,0x10,0x88,0x60,0x82,0x40,0x08,0x1b,0x84,0x81,
- 0xd8,0x20,0x10,0x04,0x05,0xb8,0xb9,0x09,0x02,0x31,0x6c,0x18,0x0e,0x84,0x98,0x20,
- 0x08,0xc0,0x06,0x60,0xc3,0x30,0x2c,0xcb,0x86,0x80,0xd9,0x30,0x0c,0x4a,0xc3,0x84,
- 0xac,0x0c,0x8e,0x0e,0xad,0x29,0x2c,0xcd,0x6d,0x43,0xa1,0x3c,0x00,0x00,0xb0,0x48,
- 0x73,0x9b,0xa3,0x9b,0xdb,0x20,0x44,0x43,0x15,0x36,0x36,0xbb,0x36,0x97,0x34,0xb2,
- 0x32,0x37,0xba,0x29,0x41,0x50,0x85,0x0c,0xcf,0xc5,0xae,0x4c,0x6e,0x2e,0xed,0xcd,
- 0x6d,0x4a,0x40,0x34,0x21,0xc3,0x73,0xb1,0x0b,0x63,0xb3,0x2b,0x93,0x9b,0x12,0x14,
- 0x75,0xc8,0xf0,0x5c,0xe6,0xd0,0xc2,0xc8,0xca,0xe4,0x9a,0xde,0xc8,0xca,0xd8,0xa6,
- 0x04,0x48,0x25,0x32,0x3c,0x17,0xba,0x3c,0xb8,0xb2,0x20,0x37,0xb7,0x37,0xba,0x30,
- 0xba,0xb4,0x37,0xb7,0xb9,0x29,0x41,0x53,0x87,0x0c,0xcf,0xa5,0xcc,0x8d,0x4e,0x2e,
- 0x0f,0xea,0x2d,0xcd,0x8d,0x6e,0x6e,0x4a,0xf0,0x74,0x21,0xc3,0x73,0x19,0x7b,0xab,
- 0x73,0xa3,0x2b,0x93,0x9b,0x9b,0x12,0x44,0x00,0x00,0x00,0x00,0x79,0x18,0x00,0x00,
- 0x4c,0x00,0x00,0x00,0x33,0x08,0x80,0x1c,0xc4,0xe1,0x1c,0x66,0x14,0x01,0x3d,0x88,
- 0x43,0x38,0x84,0xc3,0x8c,0x42,0x80,0x07,0x79,0x78,0x07,0x73,0x98,0x71,0x0c,0xe6,
- 0x00,0x0f,0xed,0x10,0x0e,0xf4,0x80,0x0e,0x33,0x0c,0x42,0x1e,0xc2,0xc1,0x1d,0xce,
- 0xa1,0x1c,0x66,0x30,0x05,0x3d,0x88,0x43,0x38,0x84,0x83,0x1b,0xcc,0x03,0x3d,0xc8,
- 0x43,0x3d,0x8c,0x03,0x3d,0xcc,0x78,0x8c,0x74,0x70,0x07,0x7b,0x08,0x07,0x79,0x48,
- 0x87,0x70,0x70,0x07,0x7a,0x70,0x03,0x76,0x78,0x87,0x70,0x20,0x87,0x19,0xcc,0x11,
- 0x0e,0xec,0x90,0x0e,0xe1,0x30,0x0f,0x6e,0x30,0x0f,0xe3,0xf0,0x0e,0xf0,0x50,0x0e,
- 0x33,0x10,0xc4,0x1d,0xde,0x21,0x1c,0xd8,0x21,0x1d,0xc2,0x61,0x1e,0x66,0x30,0x89,
- 0x3b,0xbc,0x83,0x3b,0xd0,0x43,0x39,0xb4,0x03,0x3c,0xbc,0x83,0x3c,0x84,0x03,0x3b,
- 0xcc,0xf0,0x14,0x76,0x60,0x07,0x7b,0x68,0x07,0x37,0x68,0x87,0x72,0x68,0x07,0x37,
- 0x80,0x87,0x70,0x90,0x87,0x70,0x60,0x07,0x76,0x28,0x07,0x76,0xf8,0x05,0x76,0x78,
- 0x87,0x77,0x80,0x87,0x5f,0x08,0x87,0x71,0x18,0x87,0x72,0x98,0x87,0x79,0x98,0x81,
- 0x2c,0xee,0xf0,0x0e,0xee,0xe0,0x0e,0xf5,0xc0,0x0e,0xec,0x30,0x03,0x62,0xc8,0xa1,
- 0x1c,0xe4,0xa1,0x1c,0xcc,0xa1,0x1c,0xe4,0xa1,0x1c,0xdc,0x61,0x1c,0xca,0x21,0x1c,
- 0xc4,0x81,0x1d,0xca,0x61,0x06,0xd6,0x90,0x43,0x39,0xc8,0x43,0x39,0x98,0x43,0x39,
- 0xc8,0x43,0x39,0xb8,0xc3,0x38,0x94,0x43,0x38,0x88,0x03,0x3b,0x94,0xc3,0x2f,0xbc,
- 0x83,0x3c,0xfc,0x82,0x3b,0xd4,0x03,0x3b,0xb0,0xc3,0x8c,0xc8,0x21,0x07,0x7c,0x70,
- 0x03,0x72,0x10,0x87,0x73,0x70,0x03,0x7b,0x08,0x07,0x79,0x60,0x87,0x70,0xc8,0x87,
- 0x77,0xa8,0x07,0x7a,0x98,0x81,0x3c,0xe4,0x80,0x0f,0x6e,0x40,0x0f,0xe5,0xd0,0x0e,
- 0xf0,0x00,0x00,0x00,0x71,0x20,0x00,0x00,0x03,0x00,0x00,0x00,0x06,0x90,0x0c,0xc4,
- 0x33,0x1d,0x26,0x80,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x41,0x53,0x48,
- 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0xbe,0xe4,0xc3,0xef,0x9d,0x69,0x4d,
- 0xb2,0xed,0x21,0xd0,0xd8,0x30,0xaf,0x24,0x44,0x58,0x49,0x4c,0x74,0x03,0x00,0x00,
- 0x60,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x44,0x58,0x49,0x4c,0x00,0x01,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x5c,0x03,0x00,0x00,0x42,0x43,0xc0,0xde,0x21,0x0c,0x00,0x00,
- 0xd4,0x00,0x00,0x00,0x0b,0x82,0x20,0x00,0x02,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
- 0x07,0x81,0x23,0x91,0x41,0xc8,0x04,0x49,0x06,0x10,0x32,0x39,0x92,0x01,0x84,0x0c,
- 0x25,0x05,0x08,0x19,0x1e,0x04,0x8b,0x62,0x80,0x0c,0x45,0x02,0x42,0x92,0x0b,0x42,
- 0x64,0x10,0x32,0x14,0x38,0x08,0x18,0x4b,0x0a,0x32,0x32,0x88,0x48,0x90,0x14,0x20,
- 0x43,0x46,0x88,0xa5,0x00,0x19,0x32,0x42,0xe4,0x48,0x0e,0x90,0x91,0x21,0xc4,0x50,
- 0x41,0x51,0x81,0x8c,0xe1,0x83,0xe5,0x8a,0x04,0x19,0x46,0x06,0x89,0x20,0x00,0x00,
- 0x0b,0x00,0x00,0x00,0x32,0x22,0xc8,0x08,0x20,0x64,0x85,0x04,0x93,0x21,0xa4,0x84,
- 0x04,0x93,0x21,0xe3,0x84,0xa1,0x90,0x14,0x12,0x4c,0x86,0x8c,0x0b,0x84,0x64,0x4c,
- 0x10,0x14,0x23,0x00,0x25,0x00,0x65,0x20,0x60,0x8e,0x00,0x0c,0x00,0x00,0x00,0x00,
- 0x13,0x14,0x72,0xc0,0x87,0x74,0x60,0x87,0x36,0x68,0x87,0x79,0x68,0x03,0x72,0xc0,
- 0x87,0x0d,0xaf,0x50,0x0e,0x6d,0xd0,0x0e,0x7a,0x50,0x0e,0x6d,0x00,0x0f,0x7a,0x30,
- 0x07,0x72,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x71,0xa0,0x07,0x73,0x20,0x07,
- 0x6d,0x90,0x0e,0x78,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,0x0e,0x71,0x60,0x07,0x7a,
- 0x30,0x07,0x72,0xd0,0x06,0xe9,0x30,0x07,0x72,0xa0,0x07,0x73,0x20,0x07,0x6d,0x90,
- 0x0e,0x76,0x40,0x07,0x7a,0x60,0x07,0x74,0xd0,0x06,0xe6,0x10,0x07,0x76,0xa0,0x07,
- 0x73,0x20,0x07,0x6d,0x60,0x0e,0x73,0x20,0x07,0x7a,0x30,0x07,0x72,0xd0,0x06,0xe6,
- 0x60,0x07,0x74,0xa0,0x07,0x76,0x40,0x07,0x6d,0xe0,0x0e,0x78,0xa0,0x07,0x71,0x60,
- 0x07,0x7a,0x30,0x07,0x72,0xa0,0x07,0x76,0x40,0x07,0x43,0x9e,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb2,0x40,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
- 0x32,0x1e,0x98,0x0c,0x19,0x11,0x4c,0x90,0x8c,0x09,0x26,0x47,0xc6,0x04,0x43,0x62,
- 0x09,0x8c,0x00,0x94,0x44,0x31,0x00,0x00,0x79,0x18,0x00,0x00,0x2a,0x00,0x00,0x00,
- 0x1a,0x03,0x4c,0x90,0x46,0x02,0x13,0xc4,0x8f,0x0c,0x6f,0x0c,0x05,0x4e,0x2e,0xcd,
- 0x2e,0x8c,0xae,0x2c,0x05,0x24,0xc6,0x25,0xc7,0x05,0xc6,0x25,0x06,0x04,0x45,0x66,
- 0x0c,0x87,0x26,0x2c,0x66,0xac,0x26,0x65,0x43,0x10,0x4c,0x10,0x88,0x60,0x82,0x40,
- 0x08,0x1b,0x84,0x81,0x98,0x20,0x10,0xc3,0x06,0x61,0x30,0x28,0xc0,0xcd,0x4d,0x10,
- 0x08,0x62,0xc3,0x80,0x24,0xc4,0x04,0x41,0x00,0x98,0x90,0x95,0xc1,0xd1,0xa1,0x35,
- 0x85,0xa5,0xb9,0x6d,0x28,0x16,0x06,0x00,0x80,0x2a,0x6c,0x6c,0x76,0x6d,0x2e,0x69,
- 0x64,0x65,0x6e,0x74,0x53,0x82,0xa0,0x0a,0x19,0x9e,0x8b,0x5d,0x99,0xdc,0x5c,0xda,
- 0x9b,0xdb,0x94,0x80,0x68,0x42,0x86,0xe7,0x62,0x17,0xc6,0x66,0x57,0x26,0x37,0x25,
- 0x30,0xea,0x90,0xe1,0xb9,0xcc,0xa1,0x85,0x91,0x95,0xc9,0x35,0xbd,0x91,0x95,0xb1,
- 0x4d,0x09,0x92,0x3a,0x64,0x78,0x2e,0x65,0x6e,0x74,0x72,0x79,0x50,0x6f,0x69,0x6e,
- 0x74,0x73,0x53,0x02,0x06,0x00,0x00,0x00,0x79,0x18,0x00,0x00,0x4c,0x00,0x00,0x00,
- 0x33,0x08,0x80,0x1c,0xc4,0xe1,0x1c,0x66,0x14,0x01,0x3d,0x88,0x43,0x38,0x84,0xc3,
- 0x8c,0x42,0x80,0x07,0x79,0x78,0x07,0x73,0x98,0x71,0x0c,0xe6,0x00,0x0f,0xed,0x10,
- 0x0e,0xf4,0x80,0x0e,0x33,0x0c,0x42,0x1e,0xc2,0xc1,0x1d,0xce,0xa1,0x1c,0x66,0x30,
- 0x05,0x3d,0x88,0x43,0x38,0x84,0x83,0x1b,0xcc,0x03,0x3d,0xc8,0x43,0x3d,0x8c,0x03,
- 0x3d,0xcc,0x78,0x8c,0x74,0x70,0x07,0x7b,0x08,0x07,0x79,0x48,0x87,0x70,0x70,0x07,
- 0x7a,0x70,0x03,0x76,0x78,0x87,0x70,0x20,0x87,0x19,0xcc,0x11,0x0e,0xec,0x90,0x0e,
- 0xe1,0x30,0x0f,0x6e,0x30,0x0f,0xe3,0xf0,0x0e,0xf0,0x50,0x0e,0x33,0x10,0xc4,0x1d,
- 0xde,0x21,0x1c,0xd8,0x21,0x1d,0xc2,0x61,0x1e,0x66,0x30,0x89,0x3b,0xbc,0x83,0x3b,
- 0xd0,0x43,0x39,0xb4,0x03,0x3c,0xbc,0x83,0x3c,0x84,0x03,0x3b,0xcc,0xf0,0x14,0x76,
- 0x60,0x07,0x7b,0x68,0x07,0x37,0x68,0x87,0x72,0x68,0x07,0x37,0x80,0x87,0x70,0x90,
- 0x87,0x70,0x60,0x07,0x76,0x28,0x07,0x76,0xf8,0x05,0x76,0x78,0x87,0x77,0x80,0x87,
- 0x5f,0x08,0x87,0x71,0x18,0x87,0x72,0x98,0x87,0x79,0x98,0x81,0x2c,0xee,0xf0,0x0e,
- 0xee,0xe0,0x0e,0xf5,0xc0,0x0e,0xec,0x30,0x03,0x62,0xc8,0xa1,0x1c,0xe4,0xa1,0x1c,
- 0xcc,0xa1,0x1c,0xe4,0xa1,0x1c,0xdc,0x61,0x1c,0xca,0x21,0x1c,0xc4,0x81,0x1d,0xca,
- 0x61,0x06,0xd6,0x90,0x43,0x39,0xc8,0x43,0x39,0x98,0x43,0x39,0xc8,0x43,0x39,0xb8,
- 0xc3,0x38,0x94,0x43,0x38,0x88,0x03,0x3b,0x94,0xc3,0x2f,0xbc,0x83,0x3c,0xfc,0x82,
- 0x3b,0xd4,0x03,0x3b,0xb0,0xc3,0x8c,0xc8,0x21,0x07,0x7c,0x70,0x03,0x72,0x10,0x87,
- 0x73,0x70,0x03,0x7b,0x08,0x07,0x79,0x60,0x87,0x70,0xc8,0x87,0x77,0xa8,0x07,0x7a,
- 0x98,0x81,0x3c,0xe4,0x80,0x0f,0x6e,0x40,0x0f,0xe5,0xd0,0x0e,0xf0,0x00,0x00,0x00,
- 0x71,0x20,0x00,0x00,0x03,0x00,0x00,0x00,0x06,0x90,0x0c,0xc4,0x33,0x1d,0x26,0x80,
- 0x34,0x00,0x00,0x00,0x61,0x20,0x00,0x00,0x01,0x00,0x00,0x00,0x13,0x04,0x01,0x02,
- 0x00,0x00,0x00,0x00,
-};
-
-static const unsigned char _depthMainMSL[] = {
- 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,
- 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,
- 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,
- 0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,
- 0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,
- 0x79,0x70,0x65,0x5f,0x44,0x72,0x61,0x77,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,0x34,0x20,
- 0x6d,0x6f,0x64,0x65,0x6c,0x56,0x69,0x65,0x77,0x50,0x72,0x6f,0x6a,0x65,0x63,0x74,
- 0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,
- 0x34,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x78,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x4d,0x61,0x74,0x72,
- 0x69,0x78,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,
- 0x79,0x70,0x65,0x5f,0x53,0x6b,0x69,0x6e,0x55,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,
- 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,0x34,0x20,
- 0x6a,0x6f,0x69,0x6e,0x74,0x73,0x5b,0x31,0x32,0x38,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,
- 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x4c,0x69,0x67,0x68,0x74,0x0a,0x7b,0x0a,
- 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x6f,0x73,0x69,0x74,
- 0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x52,0x61,0x6e,
- 0x67,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,
- 0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,
- 0x20,0x63,0x6f,0x6e,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,
- 0x74,0x20,0x74,0x79,0x70,0x65,0x5f,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x55,
- 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,
- 0x6f,0x61,0x74,0x34,0x20,0x63,0x61,0x6d,0x65,0x72,0x61,0x50,0x6f,0x73,0x69,0x74,
- 0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,
- 0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x20,0x62,0x61,0x73,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,
- 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x65,0x6d,0x69,0x73,0x73,0x69,
- 0x76,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x6d,
- 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
- 0x61,0x74,0x34,0x20,0x63,0x6f,0x75,0x6e,0x74,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,
- 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x50,0x61,0x72,
- 0x61,0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,
- 0x34,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x4d,0x61,0x74,0x72,0x69,0x78,0x5b,0x38,
- 0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x68,
- 0x61,0x64,0x6f,0x77,0x49,0x6e,0x66,0x6f,0x5b,0x38,0x5d,0x3b,0x0a,0x20,0x20,0x20,
- 0x20,0x4c,0x69,0x67,0x68,0x74,0x20,0x6c,0x69,0x67,0x68,0x74,0x73,0x5b,0x38,0x5d,
- 0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x76,
- 0x6f,0x69,0x64,0x20,0x64,0x65,0x70,0x74,0x68,0x4d,0x61,0x69,0x6e,0x28,0x29,0x0a,
- 0x7b,0x0a,0x7d,0x0a,0x0a,
-};
-
-static const SceneShaderT sceneShaderDepthMain = { "depthMain", _depthMainSPIRV, sizeof(_depthMainSPIRV), _depthMainDXIL, sizeof(_depthMainDXIL), _depthMainMSL, sizeof(_depthMainMSL) };
-
-#endif
diff --git a/src/singe.c b/src/singe.c
index 15e32f0e4..40052b8bf 100644
--- a/src/singe.c
+++ b/src/singe.c
@@ -440,6 +440,7 @@ static FontT *_argFont(lua_State *L, const char *method, int32_t index);
static int32_t _argInteger(lua_State *L, const char *method, int32_t index);
static int32_t _argBody(lua_State *L, const char *method, int32_t index);
static int32_t _argMaterial(lua_State *L, const char *method, int32_t index);
+static int32_t _argMorph(lua_State *L, const char *method, int32_t node, int32_t index);
static int32_t _argMesh(lua_State *L, const char *method, int32_t index);
static int32_t _argNode(lua_State *L, const char *method, int32_t index);
static int64_t _argInteger64(lua_State *L, const char *method, int32_t index);
@@ -627,6 +628,8 @@ static int32_t apiMouseSetMode(lua_State *L);
static int32_t apiNodeDelete(lua_State *L);
static int32_t apiNodeFind(lua_State *L);
static int32_t apiNodeGetChildren(lua_State *L);
+static int32_t apiNodeGetMorph(lua_State *L);
+static int32_t apiNodeGetMorphs(lua_State *L);
static int32_t apiNodeGetName(lua_State *L);
static int32_t apiNodeGetParent(lua_State *L);
static int32_t apiNodeGetPosition(lua_State *L);
@@ -639,6 +642,7 @@ static int32_t apiNodeMove(lua_State *L);
static int32_t apiNodeNew(lua_State *L);
static int32_t apiNodeRotate(lua_State *L);
static int32_t apiNodeSetMesh(lua_State *L);
+static int32_t apiNodeSetMorph(lua_State *L);
static int32_t apiNodeSetName(lua_State *L);
static int32_t apiNodeSetParent(lua_State *L);
static int32_t apiNodeSetPosition(lua_State *L);
@@ -658,6 +662,7 @@ static int32_t apiOverlayPlot(lua_State *L);
static int32_t apiOverlayPrint(lua_State *L);
static int32_t apiOverlaySetResolution(lua_State *L);
static int32_t apiPhysicsRaycast(lua_State *L);
+static int32_t apiPhysicsSet2D(lua_State *L);
static int32_t apiPhysicsSetEnabled(lua_State *L);
static int32_t apiPhysicsSetGravity(lua_State *L);
static int32_t apiSceneEnable(lua_State *L);
@@ -826,6 +831,25 @@ static int32_t _argInteger(lua_State *L, const char *method, int32_t index) {
}
+// A morph target of a node's mesh, by name or by number from 1, checked.
+static int32_t _argMorph(lua_State *L, const char *method, int32_t node, int32_t index) {
+ int32_t target;
+
+ if (lua_type(L, index) == LUA_TSTRING) {
+ target = meshFindMorph(nodeGetMesh(node), lua_tostring(L, index));
+ if (target < 0) {
+ _luaDie(L, method, "Node %d has no morph target named %s.", node, lua_tostring(L, index));
+ }
+ return target;
+ }
+ target = _argInteger(L, method, index) - 1;
+ if ((target < 0) || (target >= nodeGetMorphCount(node))) {
+ _luaDie(L, method, "Node %d has no morph target %d.", node, target + 1);
+ }
+ return target;
+}
+
+
// A node that carries a physics body, checked.
static int32_t _argBody(lua_State *L, const char *method, int32_t index) {
int32_t node = _argNode(L, method, index);
@@ -3679,7 +3703,7 @@ static int32_t apiLightNew(lua_State *L) {
}
node = lightNew((LightTypeE)type, parent);
if (node < 0) {
- _luaDie(L, "lightNew", "3D is not available on this machine.");
+ _luaDie(L, "lightNew", "Unable to create the node.");
}
_luaTrace(L, "lightNew", "%d type %d under %d", node, type, parent);
lua_pushinteger(L, node);
@@ -4242,6 +4266,37 @@ static int32_t apiNodeGetChildren(lua_State *L) {
}
+// weight = nodeGetMorph(node, nameOrIndex)
+static int32_t apiNodeGetMorph(lua_State *L) {
+ int32_t node;
+ int32_t target;
+
+ _argCheck(L, "nodeGetMorph", 2, 2);
+ node = _argNode(L, "nodeGetMorph", 1);
+ target = _argMorph(L, "nodeGetMorph", node, 2);
+ lua_pushnumber(L, nodeGetMorphWeight(node, target));
+ return 1;
+}
+
+
+// names = nodeGetMorphs(node): the mesh's morph target names, in order (empty strings when unnamed)
+static int32_t apiNodeGetMorphs(lua_State *L) {
+ int32_t node;
+ int32_t count;
+ int32_t x;
+
+ _argCheck(L, "nodeGetMorphs", 1, 1);
+ node = _argNode(L, "nodeGetMorphs", 1);
+ count = nodeGetMorphCount(node);
+ lua_createtable(L, count, 0);
+ for (x = 0; x < count; x++) {
+ lua_pushstring(L, meshGetMorphName(nodeGetMesh(node), x));
+ lua_rawseti(L, -2, x + 1);
+ }
+ return 1;
+}
+
+
// name = nodeGetName(node)
static int32_t apiNodeGetName(lua_State *L) {
_argCheck(L, "nodeGetName", 1, 1);
@@ -4342,7 +4397,7 @@ static int32_t apiNodeNew(lua_State *L) {
}
node = nodeNew(parent);
if (node < 0) {
- _luaDie(L, "nodeNew", "3D is not available on this machine.");
+ _luaDie(L, "nodeNew", "Unable to create the node.");
}
_luaTrace(L, "nodeNew", "%d under %d", node, parent);
lua_pushinteger(L, node);
@@ -4375,6 +4430,19 @@ static int32_t apiNodeSetMesh(lua_State *L) {
}
+// nodeSetMorph(node, nameOrIndex, weight): how much of a morph target shows, usually 0 to 1
+static int32_t apiNodeSetMorph(lua_State *L) {
+ int32_t node;
+ int32_t target;
+
+ _argCheck(L, "nodeSetMorph", 3, 3);
+ node = _argNode(L, "nodeSetMorph", 1);
+ target = _argMorph(L, "nodeSetMorph", node, 2);
+ nodeSetMorphWeight(node, target, (float)_argNumber(L, "nodeSetMorph", 3));
+ return 0;
+}
+
+
// nodeSetName(node, name)
static int32_t apiNodeSetName(lua_State *L) {
_argCheck(L, "nodeSetName", 2, 2);
@@ -4788,6 +4856,14 @@ static int32_t apiPhysicsRaycast(lua_State *L) {
}
+// physicsSet2D(bool): bodies made from now on stay in the XY plane (2D games)
+static int32_t apiPhysicsSet2D(lua_State *L) {
+ _argCheck(L, "physicsSet2D", 1, 1);
+ physicsSet2D(_argBoolean(L, "physicsSet2D", 1));
+ return 0;
+}
+
+
// physicsSetEnabled(bool): pauses the simulation without losing it
static int32_t apiPhysicsSetEnabled(lua_State *L) {
_argCheck(L, "physicsSetEnabled", 1, 1);
@@ -6427,6 +6503,8 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, SDL_GPUDevice *device, Co
lua_register(_global.luaContext, "nodeDelete", apiNodeDelete); // 3.00
lua_register(_global.luaContext, "nodeFind", apiNodeFind); // 3.00
lua_register(_global.luaContext, "nodeGetChildren", apiNodeGetChildren); // 3.00
+ lua_register(_global.luaContext, "nodeGetMorph", apiNodeGetMorph); // 3.00
+ lua_register(_global.luaContext, "nodeGetMorphs", apiNodeGetMorphs); // 3.00
lua_register(_global.luaContext, "nodeGetName", apiNodeGetName); // 3.00
lua_register(_global.luaContext, "nodeGetParent", apiNodeGetParent); // 3.00
lua_register(_global.luaContext, "nodeGetPosition", apiNodeGetPosition); // 3.00
@@ -6439,6 +6517,7 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, SDL_GPUDevice *device, Co
lua_register(_global.luaContext, "nodeNew", apiNodeNew); // 3.00
lua_register(_global.luaContext, "nodeRotate", apiNodeRotate); // 3.00
lua_register(_global.luaContext, "nodeSetMesh", apiNodeSetMesh); // 3.00
+ lua_register(_global.luaContext, "nodeSetMorph", apiNodeSetMorph); // 3.00
lua_register(_global.luaContext, "nodeSetName", apiNodeSetName); // 3.00
lua_register(_global.luaContext, "nodeSetParent", apiNodeSetParent); // 3.00
lua_register(_global.luaContext, "nodeSetPosition", apiNodeSetPosition); // 3.00
@@ -6458,6 +6537,7 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, SDL_GPUDevice *device, Co
lua_register(_global.luaContext, "overlaySetResolution", apiOverlaySetResolution); // 2.00
lua_register(_global.luaContext, "physicsRaycast", apiPhysicsRaycast); // 3.00
+ lua_register(_global.luaContext, "physicsSet2D", apiPhysicsSet2D); // 3.00
lua_register(_global.luaContext, "physicsSetEnabled", apiPhysicsSetEnabled); // 3.00
lua_register(_global.luaContext, "physicsSetGravity", apiPhysicsSetGravity); // 3.00
lua_register(_global.luaContext, "sceneEnable", apiSceneEnable); // 3.00
diff --git a/testScripts/Models/AnimatedMorphCube.glb b/testScripts/Models/AnimatedMorphCube.glb
new file mode 100644
index 000000000..6acf17403
--- /dev/null
+++ b/testScripts/Models/AnimatedMorphCube.glb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:214ee56160a50dbf22543a1d66dbf860986e87f0efac3d89feac1359d0e6aeab
+size 6752
diff --git a/testScripts/Models/DragonModel.glb b/testScripts/Models/DragonModel.glb
new file mode 100644
index 000000000..e51ddc35b
--- /dev/null
+++ b/testScripts/Models/DragonModel.glb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:459dfa78f2dacba3bea8d82352d97b3648847bccf936a9e85732e818a3759971
+size 131440
diff --git a/testScripts/Models/SingeText.glb b/testScripts/Models/SingeText.glb
new file mode 100644
index 000000000..9446c38f2
--- /dev/null
+++ b/testScripts/Models/SingeText.glb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:979ec317a81c7d47978e106cf29f59cfaa9855d11741ac3bc200fb1b92e6fbb6
+size 62136
diff --git a/testScripts/README.md b/testScripts/README.md
index 405ac4b8c..37f0e6ee4 100644
--- a/testScripts/README.md
+++ b/testScripts/README.md
@@ -2,13 +2,15 @@
The Lua scripts used to verify the 3D scene and physics work, one per stage
of PLAN.md sections 18 and 19, with everything they load: the Khronos
-Duck, Fox and BoxAnimated sample models under Models/, and Box.png. The
+Duck, Fox, BoxAnimated and AnimatedMorphCube sample models under Models/, Box.png and crate.png. The
disc and the font are the engine's own, addressed as
Singe/menuBackground.mkv and Singe/FreeSansBold.ttf like any engine
asset. This directory is a complete Singe game directory. Run one from the singe directory with
.builddir/Singe-v3.00-Linux-x86_64 -w -d data -v Singe/menuBackground.mkv testScripts/scene6.singe
+(scene12 has no disc: give it -C 720x480 instead of -v)
+
or pack it (singe --pack testScripts testScripts.game) and run an entry
with --entry N (the numbers follow games.dat). Every script takes a
screenshot or two and quits by itself; the results are in screenshots/.
@@ -26,3 +28,8 @@ screenshot or two and quits by itself; the results are in screenshots/.
| scene9.singe | 9 | 19.2 | Physics: a crate stack, a ball, a kinematic paddle |
| scene10.singe | 10 | 19.3 | Physics: a trigger volume, collision callbacks, a raycast pick |
| scene11.singe | 11 | 19.4 | Physics: a hull down a ramp, a mesh torus, hinge, ball and slider joints |
+| scene12.singe | 12 | 19.6 | 2D physics drawn with sprites; runs with no GPU (SDL_GPU_DRIVER=nothing) |
+| scene13.singe | 13 | 18.8 | Morph targets: the AnimatedMorphCube, animated and driven from script |
+| scene14.singe | 14 | - | The solid tangram dragon (Models/DragonModel.glb, a copy of assets/DragonModel.glb) turning under a sun with shadows |
+| scene15.singe | 15 | - | The Singe logotype as solid letters (Models/SingeText.glb, a copy of assets/SingeText.glb) turning under a sun with shadows |
+| scene16.singe | 16 | - | The dragon perched on the logotype, both models under one parent node, turning together |
diff --git a/testScripts/crate.png b/testScripts/crate.png
new file mode 100644
index 000000000..8ae5aefa8
--- /dev/null
+++ b/testScripts/crate.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:853924469942946176165eab399d7257a29ec139a9b08a624f39017e5375b3b0
+size 627
diff --git a/testScripts/games.dat b/testScripts/games.dat
index 24efbaadd..e97a95ba2 100644
--- a/testScripts/games.dat
+++ b/testScripts/games.dat
@@ -120,4 +120,58 @@ GAMES = {
DEVELOPER = "Test",
PUBLISHER = "Test",
},
+ {
+ TITLE = "Physics2D",
+ SCRIPT = "testScripts/scene12.singe",
+ DESCRIPTION = "2D physics drawn with sprites, no 3D or GPU needed.",
+ YEAR = 2026,
+ GENRE = "Test",
+ PLATFORM = "Singe",
+ DEVELOPER = "Test",
+ PUBLISHER = "Test",
+ },
+ {
+ TITLE = "Morphs",
+ SCRIPT = "testScripts/scene13.singe",
+ VIDEO = "Singe/menuBackground.mkv",
+ DESCRIPTION = "Morph targets: the AnimatedMorphCube, animated and scripted.",
+ YEAR = 2026,
+ GENRE = "Test",
+ PLATFORM = "Singe",
+ DEVELOPER = "Test",
+ PUBLISHER = "Test",
+ },
+ {
+ TITLE = "Dragon",
+ SCRIPT = "testScripts/scene14.singe",
+ VIDEO = "Singe/menuBackground.mkv",
+ DESCRIPTION = "The solid tangram dragon model (assets/DragonModel.glb) turning under a sun with shadows.",
+ YEAR = 2026,
+ GENRE = "Test",
+ PLATFORM = "Singe",
+ DEVELOPER = "Test",
+ PUBLISHER = "Test",
+ },
+ {
+ TITLE = "Logo",
+ SCRIPT = "testScripts/scene15.singe",
+ VIDEO = "Singe/menuBackground.mkv",
+ DESCRIPTION = "The Singe logotype as solid letters (assets/SingeText.glb) turning under a sun with shadows.",
+ YEAR = 2026,
+ GENRE = "Test",
+ PLATFORM = "Singe",
+ DEVELOPER = "Test",
+ PUBLISHER = "Test",
+ },
+ {
+ TITLE = "DragonOnLogo",
+ SCRIPT = "testScripts/scene16.singe",
+ VIDEO = "Singe/menuBackground.mkv",
+ DESCRIPTION = "The dragon perched on the Singe logotype, turning together under a sun with shadows.",
+ YEAR = 2026,
+ GENRE = "Test",
+ PLATFORM = "Singe",
+ DEVELOPER = "Test",
+ PUBLISHER = "Test",
+ },
}
diff --git a/testScripts/scene12.singe b/testScripts/scene12.singe
new file mode 100644
index 000000000..00e8182d1
--- /dev/null
+++ b/testScripts/scene12.singe
@@ -0,0 +1,70 @@
+-- 2D physics with no 3D at all: crates drawn as sprites fall and pile up in overlay coordinates.
+-- Runs on any machine, GPU or not (try it with SDL_GPU_DRIVER=nothing).
+local font = fontLoad("Singe/FreeSansBold.ttf", 24)
+local box = spriteLoad("testScripts/crate.png")
+local frames = 0
+local width, height = overlayGetWidth(), overlayGetHeight()
+
+fontSelect(font)
+physicsSet2D(true)
+physicsSetGravity(0, 900, 0) -- Pixels per second squared; overlay Y runs down.
+
+-- The floor and walls, static, sized in pixels.
+local floor = nodeNew()
+nodeSetPosition(floor, width / 2, height - 10, 0)
+bodyNew(floor, BODY_STATIC, SHAPE_BOX, width, 20, 50)
+local leftWall = nodeNew()
+nodeSetPosition(leftWall, -10, height / 2, 0)
+bodyNew(leftWall, BODY_STATIC, SHAPE_BOX, 20, height, 50)
+local rightWall = nodeNew()
+nodeSetPosition(rightWall, width + 10, height / 2, 0)
+bodyNew(rightWall, BODY_STATIC, SHAPE_BOX, 20, height, 50)
+
+-- A slope the crates tumble off.
+local slope = nodeNew()
+nodeSetPosition(slope, width * 0.3, height * 0.55, 0)
+nodeSetRotation(slope, 0, 0, 20)
+bodyNew(slope, BODY_STATIC, SHAPE_BOX, width * 0.45, 12, 50)
+
+local size = spriteGetWidth(box)
+local crates = {}
+local function drop(i)
+ local crate = nodeNew()
+ nodeSetPosition(crate, width * 0.15 + (i % 5) * size * 0.6, -size * (1 + i * 0.5), 0)
+ nodeSetRotation(crate, 0, 0, i * 13)
+ bodyNew(crate, BODY_DYNAMIC, SHAPE_BOX, size, size, 50)
+ bodySetMass(crate, 1)
+ bodySetFriction(crate, 0.6)
+ bodySetBounce(crate, 0.2)
+ crates[#crates + 1] = crate
+end
+for i = 1, 14 do
+ drop(i)
+end
+
+local resting = 0
+function onCollision(a, b, x, y, z, speed)
+end
+
+function onOverlayUpdate()
+ frames = frames + 1
+ overlayClear()
+ resting = 0
+ for _, crate in ipairs(crates) do
+ local x, y = nodeGetPosition(crate)
+ local _, _, angle = nodeGetRotation(crate)
+ spriteRotate(box, angle)
+ spriteDraw(box, x, y, true)
+ if bodyIsResting(crate) then
+ resting = resting + 1
+ end
+ end
+ fontPrint(10, 8, string.format("2D physics, frame %d, %d of %d resting", frames, resting, #crates))
+ if frames == 40 or frames == 100 or frames == 220 then
+ singeScreenshot()
+ end
+ if frames == 240 then
+ singeQuit()
+ end
+ return OVERLAY_UPDATED
+end
diff --git a/testScripts/scene13.singe b/testScripts/scene13.singe
new file mode 100644
index 000000000..6c10415a3
--- /dev/null
+++ b/testScripts/scene13.singe
@@ -0,0 +1,52 @@
+-- Morph targets: the Khronos AnimatedMorphCube. Left, its own animation blending the two
+-- targets; right, the same model with weights set from the script.
+local font = fontLoad("Singe/FreeSansBold.ttf", 28)
+local frames = 0
+
+fontSelect(font)
+discPlay()
+sceneEnable(true)
+sceneSetBackground(18, 18, 30, 255)
+sceneSetAmbient(70, 70, 85)
+
+local cubeModel = modelLoad("testScripts/Models/AnimatedMorphCube.glb")
+
+local animated = modelInstance(cubeModel)
+nodeSetPosition(animated, -1.6, 0, 0)
+nodeSetScale(animated, 0.9)
+animationPlay(animated, 1, true)
+
+local scripted = modelInstance(cubeModel)
+nodeSetPosition(scripted, 1.6, 0, 0)
+nodeSetScale(scripted, 0.9)
+local meshNode = nodeGetChildren(scripted)[1]
+local names = nodeGetMorphs(meshNode)
+debugPrint("morph targets: " .. #names)
+
+local sun = lightNew(LIGHT_DIRECTIONAL)
+nodeSetPosition(sun, -3, 5, 4)
+nodeLookAt(sun, 0, 0, 0)
+lightSetIntensity(sun, 1.3)
+
+local camera = nodeNew()
+nodeSetPosition(camera, 0, 2.2, 6)
+nodeLookAt(camera, 0, 0, 0)
+cameraSet(camera)
+
+function onOverlayUpdate()
+ frames = frames + 1
+ -- The scripted cube sweeps target 1 up while target 2 comes down.
+ local t = (frames % 120) / 120
+ nodeSetMorph(meshNode, 1, t)
+ nodeSetMorph(meshNode, 2, 1 - t)
+ nodeRotate(animated, 0, 0.8, 0)
+ nodeRotate(scripted, 0, -0.8, 0)
+ overlayClear()
+ fontPrint(20, 20, string.format("Morph targets, frame %d scripted: %.2f / %.2f", frames, nodeGetMorph(meshNode, 1), nodeGetMorph(meshNode, 2)))
+ if frames == 20 or frames == 80 or frames == 140 then
+ singeScreenshot()
+ end
+ if frames == 150 then
+ singeQuit()
+ end
+end
diff --git a/testScripts/scene14.singe b/testScripts/scene14.singe
new file mode 100644
index 000000000..673c6e278
--- /dev/null
+++ b/testScripts/scene14.singe
@@ -0,0 +1,48 @@
+-- Dragon model test: the solid tangram dragon built by util/dragonModel.py and converted to glTF
+-- by util/objToGlb.py, turning slowly under a sun with shadows, over the disc.
+local font = fontLoad("Singe/FreeSansBold.ttf", 28)
+local frames = 0
+
+fontSelect(font)
+discPlay()
+sceneEnable(true)
+sceneSetBackground(0, 0, 0, 0)
+sceneSetAmbient(70, 70, 80)
+
+local dragonModel = modelLoad("testScripts/Models/DragonModel.glb")
+local dragon = modelInstance(dragonModel)
+nodeSetPosition(dragon, 0, -3.5, 0)
+nodeSetRotation(dragon, 0, 35, 0)
+
+local stone = materialNew()
+materialSetColor(stone, 120, 120, 130)
+materialSetRoughness(stone, 0.9)
+local floor = nodeNew()
+nodeSetMesh(floor, meshBox(14, 0.2, 10), stone)
+nodeSetPosition(floor, 0, -3.6, 0)
+
+local sun = lightNew(LIGHT_DIRECTIONAL)
+nodeSetPosition(sun, -4, 8, 6)
+nodeLookAt(sun, 0, 0, 0)
+lightSetIntensity(sun, 1.6)
+lightSetShadow(sun, true)
+
+local camera = nodeNew()
+nodeSetPosition(camera, 0, 1.5, 12)
+nodeLookAt(camera, 0, 0, 0)
+cameraSet(camera)
+
+debugPrint("dragon parts " .. #nodeGetChildren(dragon))
+
+function onOverlayUpdate()
+ frames = frames + 1
+ nodeRotate(dragon, 0, 0.75, 0)
+ overlayClear()
+ fontPrint(20, 20, "Dragon model, frame " .. frames)
+ if frames == 30 or frames == 100 or frames == 170 then
+ singeScreenshot()
+ end
+ if frames == 180 then
+ singeQuit()
+ end
+end
diff --git a/testScripts/scene15.singe b/testScripts/scene15.singe
new file mode 100644
index 000000000..49a20de08
--- /dev/null
+++ b/testScripts/scene15.singe
@@ -0,0 +1,48 @@
+-- Logo model test: the Singe logotype built by util/textModel.py and converted to glTF by
+-- util/objToGlb.py, turning under a sun with shadows, over the disc.
+local font = fontLoad("Singe/FreeSansBold.ttf", 28)
+local frames = 0
+
+fontSelect(font)
+discPlay()
+sceneEnable(true)
+sceneSetBackground(0, 0, 0, 0)
+sceneSetAmbient(70, 70, 80)
+
+local logoModel = modelLoad("testScripts/Models/SingeText.glb")
+local logo = modelInstance(logoModel)
+nodeSetPosition(logo, 0, -2.5, 0)
+nodeSetRotation(logo, 0, -30, 0)
+
+local stone = materialNew()
+materialSetColor(stone, 120, 120, 130)
+materialSetRoughness(stone, 0.9)
+local floor = nodeNew()
+nodeSetMesh(floor, meshBox(16, 0.2, 10), stone)
+nodeSetPosition(floor, 0, -2.6, 0)
+
+local sun = lightNew(LIGHT_DIRECTIONAL)
+nodeSetPosition(sun, -4, 8, 6)
+nodeLookAt(sun, 0, 0, 0)
+lightSetIntensity(sun, 1.6)
+lightSetShadow(sun, true)
+
+local camera = nodeNew()
+nodeSetPosition(camera, 0, 2, 13)
+nodeLookAt(camera, 0, 0, 0)
+cameraSet(camera)
+
+debugPrint("logo letters " .. #nodeGetChildren(nodeGetChildren(logo)[1]))
+
+function onOverlayUpdate()
+ frames = frames + 1
+ nodeRotate(logo, 0, 0.5, 0)
+ overlayClear()
+ fontPrint(20, 20, "Logo model, frame " .. frames)
+ if frames == 30 or frames == 100 or frames == 170 then
+ singeScreenshot()
+ end
+ if frames == 180 then
+ singeQuit()
+ end
+end
diff --git a/testScripts/scene16.singe b/testScripts/scene16.singe
new file mode 100644
index 000000000..08fe3270c
--- /dev/null
+++ b/testScripts/scene16.singe
@@ -0,0 +1,54 @@
+-- Dragon and logo together: the solid tangram dragon perched on top of the Singe logotype, the pair
+-- turning as one under a sun with shadows, over the disc.
+local font = fontLoad("Singe/FreeSansBold.ttf", 28)
+local frames = 0
+
+fontSelect(font)
+discPlay()
+sceneEnable(true)
+sceneSetBackground(0, 0, 0, 0)
+sceneSetAmbient(70, 70, 80)
+
+-- Both models rest on Y = 0 and are centred on X; the logo is 5 units tall at the top of the S.
+local group = nodeNew()
+nodeSetPosition(group, 0, -6, 0)
+nodeSetRotation(group, 0, -25, 0)
+
+local logo = modelInstance(modelLoad("testScripts/Models/SingeText.glb"))
+nodeSetParent(logo, group)
+
+local dragon = modelInstance(modelLoad("testScripts/Models/DragonModel.glb"))
+nodeSetParent(dragon, group)
+nodeSetPosition(dragon, 0, 4.85, 0)
+nodeSetScale(dragon, 0.9)
+
+local stone = materialNew()
+materialSetColor(stone, 120, 120, 130)
+materialSetRoughness(stone, 0.9)
+local floor = nodeNew()
+nodeSetMesh(floor, meshBox(18, 0.2, 12), stone)
+nodeSetPosition(floor, 0, -6.1, 0)
+
+local sun = lightNew(LIGHT_DIRECTIONAL)
+nodeSetPosition(sun, -5, 10, 7)
+nodeLookAt(sun, 0, 0, 0)
+lightSetIntensity(sun, 1.6)
+lightSetShadow(sun, true)
+
+local camera = nodeNew()
+nodeSetPosition(camera, 0, 3, 15.5)
+nodeLookAt(camera, 0, 0, 0)
+cameraSet(camera)
+
+function onOverlayUpdate()
+ frames = frames + 1
+ nodeRotate(group, 0, 0.4, 0)
+ overlayClear()
+ fontPrint(20, 20, "Dragon on logo, frame " .. frames)
+ if frames == 30 or frames == 100 or frames == 170 then
+ singeScreenshot()
+ end
+ if frames == 180 then
+ singeQuit()
+ end
+end
diff --git a/thirdparty/SDL_shadercross/CMakeLists.txt b/thirdparty/SDL_shadercross/CMakeLists.txt
new file mode 100644
index 000000000..9d754034b
--- /dev/null
+++ b/thirdparty/SDL_shadercross/CMakeLists.txt
@@ -0,0 +1,549 @@
+# CMake Project for SDL3_shadercross - Simple DirectMedia Layer Shader Cross Compiler
+# Written by @thatcosmonaut
+cmake_minimum_required(VERSION 3.22...4.0)
+
+# Version
+set(MAJOR_VERSION 3)
+set(MINOR_VERSION 0)
+set(MICRO_VERSION 0)
+set(SDL_REQUIRED_VERSION "3.1.3")
+
+# option() honors normal variables.
+set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
+
+project(SDL3_shadercross LANGUAGES C VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}")
+
+set(SHADERCROSS_MAINPROJECT ${SDL3_shadercross_IS_TOP_LEVEL})
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+include(CMakeDependentOption)
+include("${CMAKE_CURRENT_LIST_DIR}/cmake/GetGitRevisionDescription.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/cmake/PrivateSdlFunctions.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/cmake/sdlcpu.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/cmake/sdlplatform.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/cmake/sdlmanpages.cmake")
+
+if(NOT (TARGET SDL3::Headers AND TARGET SDL3::SDL3 AND (TARGET SDL3::SDL3-static OR TARGET SDL3::SDL3-shared)))
+ find_package(SDL3 ${SDL_REQUIRED_VERSION})
+endif()
+
+if(TARGET SDL3::SDL3-shared)
+ set(SDLSHADERCROSS_SHARED_DEFAULT ON)
+ set(SDLSHADERCROSS_STATIC_DEFAULT OFF)
+else()
+ set(SDLSHADERCROSS_SHARED_DEFAULT OFF)
+ set(SDLSHADERCROSS_STATIC_DEFAULT ON)
+endif()
+
+# Options
+option(SDLSHADERCROSS_DXC "Enable HLSL compilation via DXC" ON)
+option(SDLSHADERCROSS_SHARED "Build shared SDL_shadercross library" ${SDLSHADERCROSS_SHARED_DEFAULT})
+option(SDLSHADERCROSS_STATIC "Build static SDL_shadercross library" ${SDLSHADERCROSS_STATIC_DEFAULT})
+option(SDLSHADERCROSS_SPIRVCROSS_SHARED "Link to shared library variants of dependencies" ON)
+option(SDLSHADERCROSS_VENDORED "Use vendored dependencies" OFF)
+option(SDLSHADERCROSS_CLI "Build command line executable" ON)
+cmake_dependent_option(SDLSHADERCROSS_CLI_STATIC "Link CLI with static libraries" OFF "SDLSHADERCROSS_CLI;SDLSHADERCROSS_STATIC;TARGET SDL3::SDL3-static" OFF)
+cmake_dependent_option(SDLSHADERCROSS_CLI_LEAKCHECK "Check shadercross for memory leaks" OFF "SDLSHADERCROSS_CLI;TARGET SDL3::SDL3_test" OFF)
+option(SDLSHADERCROSS_WERROR "Enable Werror" OFF)
+option(SDLSHADERCROSS_INSTALL "Enable installation" ${SHADERCROSS_MAINPROJECT})
+cmake_dependent_option(SDLSHADERCROSS_INSTALL_CPACK "Enable CPack installation" ${SHADERCROSS_MAINPROJECT} "SDLSHADERCROSS_INSTALL" OFF)
+cmake_dependent_option(SDLSHADERCROSS_INSTALL_MAN "Install man pages for SDL3_shadercross" OFF "SDLSHADERCROSS_INSTALL" OFF)
+cmake_dependent_option(SDLSHADERCROSS_INSTALL_RUNTIME "Download, build and install runtime dependencies" OFF "SDLSHADERCROSS_INSTALL" OFF)
+
+option(SDLSHADERCROSS_TESTS "Build unit tests?" OFF)
+cmake_dependent_option(SDLSHADERCROSS_TESTS_TRACKMEM "Enable memory tracking in tests" OFF SDLSHADERCROSS_TESTS OFF)
+
+sdl_calculate_derived_version_variables(${MAJOR_VERSION} ${MINOR_VERSION} ${MICRO_VERSION})
+SDL_DetectTargetCPUArchitectures(SDL_CPU_NAMES)
+SDL_DetectCMakePlatform()
+
+if(SDLSHADERCROSS_INSTALL)
+ include(GNUInstallDirs)
+endif()
+
+if(NOT SDLSHADERCROSS_SHARED AND NOT SDLSHADERCROSS_STATIC)
+ message(FATAL_ERROR "SDLSHADERCROSS_SHARED and SDLSHADERCROSS_STATIC cannot be both disabled")
+endif()
+
+# Platform Flags
+if(APPLE)
+ set(CMAKE_MACOSX_RPATH ON)
+ set(CMAKE_OSX_DEPLOYMENT_TARGET 11.0)
+endif()
+
+if(NOT MSVC)
+ add_compile_options(-pedantic) # -Wno-strict-aliasing
+endif()
+
+set(spirv_static_targets spirv-cross-c spirv-cross-glsl spirv-cross-hlsl spirv-cross-msl spirv-cross-cpp spirv-cross-reflect spirv-cross-core)
+
+set(pc_requires )
+set(vendored_targets )
+if(SDLSHADERCROSS_VENDORED)
+ set(SPIRV_CROSS_SKIP_INSTALL ON)
+ set(SPIRV_CROSS_CLI OFF)
+ set(SPIRV_CROSS_ENABLE_TESTS OFF)
+ if(SDLSHADERCROSS_SPIRVCROSS_SHARED)
+ set(SPIRV_CROSS_SHARED ON)
+ set(SPIRV_CROSS_STATIC OFF)
+ else()
+ set(SPIRV_CROSS_SHARED OFF)
+ set(SPIRV_CROSS_STATIC ON)
+ endif()
+
+ sdl_check_project_in_subfolder(external/SPIRV-Cross SPIRV-Cross SDLSHADERCROSS_VENDORED)
+ set(SPIRV_CROSS_ENABLE_TESTS ON)
+ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+ add_subdirectory(external/SPIRV-Cross EXCLUDE_FROM_ALL)
+
+ if(SDLSHADERCROSS_SPIRVCROSS_SHARED)
+ list(APPEND vendored_targets spirv-cross-c-shared)
+ list(APPEND pc_requires "spirv-cross-c-shared")
+ else()
+ enable_language(CXX)
+ if(SDLSHADERCROSS_STATIC)
+ foreach(extra IN LISTS spirv_static_targets)
+ if(TARGET ${extra})
+ list(APPEND vendored_targets ${extra})
+ list(APPEND pc_requires "${extra}")
+ endif()
+ endforeach()
+ endif()
+ endif()
+
+ sdl_check_project_in_subfolder(external/SPIRV-Headers SPIRV-Headers SDLSHADERCROSS_VENDORED)
+ add_subdirectory(external/SPIRV-Headers EXCLUDE_FROM_ALL)
+ sdl_check_project_in_subfolder(external/SPIRV-Tools SPIRV-Tools SDLSHADERCROSS_VENDORED)
+ add_subdirectory(external/SPIRV-Tools EXCLUDE_FROM_ALL)
+
+ sdl_check_project_in_subfolder(external/DirectXShaderCompiler DirectXShaderCompiler SDLSHADERCROSS_VENDORED)
+ if(MINGW)
+ set(CMAKE_C_COMPILER_ARCHITECTURE_ID "${SDL_CPU_NAMES}")
+ endif()
+
+ if(SDLSHADERCROSS_DXC)
+ # LLVM dependencies of dxc does not support building as a shared library
+ set(BUILD_SHARED_LIBS OFF)
+ # Enabling HLSL_ENABLE_DEBUG_ITERATORS blocks DirectXShaderCompiler from adding /D_ITERATOR_DEBUG_LEVEL=0
+ set(HLSL_ENABLE_DEBUG_ITERATORS ON)
+ set(DXC_COVERAGE OFF)
+ set(HLSL_INCLUDE_TESTS OFF)
+ set(LLVM_INCLUDE_TESTS OFF)
+ set(HLSL_DISABLE_SOURCE_GENERATION TRUE)
+ set(SPIRV_BUILD_TESTS FALSE)
+ include(external/DirectXShaderCompiler/cmake/caches/PredefinedParams.cmake)
+ add_subdirectory(external/DirectXShaderCompiler EXCLUDE_FROM_ALL)
+ add_library(DirectXShaderCompiler::dxcompiler ALIAS dxcompiler)
+ add_library(DirectXShaderCompiler::dxil ALIAS dxildll)
+ list(APPEND vendored_targets dxcompiler dxildll)
+ add_dependencies(dxcompiler dxildll)
+ endif()
+
+ export(TARGETS ${vendored_targets} NAMESPACE "SDL3_shadercross::" FILE "SDL3_shadercross-vendored-targets.cmake")
+else()
+ if(SDLSHADERCROSS_SPIRVCROSS_SHARED)
+ if(NOT TARGET spirv_cross_c_shared)
+ find_package(spirv_cross_c_shared REQUIRED)
+ endif()
+ else()
+ enable_language(CXX)
+ if(NOT TARGET spirv_cross_c)
+ find_package(spirv_cross_core QUIET)
+ find_package(spirv_cross_glsl QUIET)
+ find_package(spirv_cross_hlsl QUIET)
+ find_package(spirv_cross_msl QUIET)
+ find_package(spirv_cross_cpp QUIET)
+ find_package(spirv_cross_reflect QUIET)
+ find_package(spirv_cross_c REQUIRED)
+ endif()
+ endif()
+
+ if(SDLSHADERCROSS_DXC)
+ set(DirectXShaderCompiler_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/external/DirectXShaderCompiler-binaries")
+ find_package(DirectXShaderCompiler REQUIRED)
+ endif()
+endif()
+
+# Source lists
+set(SOURCE_FILES
+ # Public Headers
+ include/SDL3_shadercross/SDL_shadercross.h
+ # Source Files
+ src/SDL_shadercross.c
+)
+
+set(SDL3_shadercross_targets)
+if(SDLSHADERCROSS_SHARED)
+ list(APPEND SDL3_shadercross_targets SDL3_shadercross-shared)
+ if(NOT TARGET SDL3::SDL3-shared)
+ find_package(SDL3 ${SDL_REQUIRED_VERSION} REQUIRED COMPONENTS SDL3-shared)
+ endif()
+
+ add_library(SDL3_shadercross-shared SHARED ${SOURCE_FILES})
+ add_library(SDL3_shadercross::SDL3_shadercross ALIAS SDL3_shadercross-shared)
+
+ set_property(TARGET SDL3_shadercross-shared PROPERTY DEFINE_SYMBOL DLL_EXPORT)
+ sdl_target_link_option_version_file(SDL3_shadercross-shared "${CMAKE_CURRENT_SOURCE_DIR}/src/SDL_shadercross.sym")
+ sdl_target_link_options_no_undefined(SDL3_shadercross-shared)
+
+ # Build flags
+ if(WIN32)
+ target_sources(SDL3_shadercross-shared PRIVATE "src/version.rc")
+ set_property(TARGET SDL3_shadercross-shared PROPERTY PREFIX "")
+ endif()
+
+ # SDL3_shadercross folders as includes, for other targets to consume
+ target_include_directories(SDL3_shadercross-shared PUBLIC "$")
+ target_include_directories(SDL3_shadercross-shared PUBLIC "$")
+
+ # Soname
+ set_target_properties(SDL3_shadercross-shared PROPERTIES
+ OUTPUT_NAME "SDL3_shadercross"
+ SOVERSION "${SO_VERSION_MAJOR}"
+ VERSION "${SO_VERSION}"
+ )
+
+ target_link_libraries(SDL3_shadercross-shared PRIVATE
+ SDL3::SDL3-shared
+ )
+ export(TARGETS SDL3_shadercross-shared NAMESPACE "SDL3_shadercross::" FILE "SDL3_shadercross-shared-targets.cmake")
+endif()
+
+
+if(SDLSHADERCROSS_STATIC)
+ list(APPEND SDL3_shadercross_targets SDL3_shadercross-static)
+ if(NOT TARGET SDL3::Headers)
+ find_package(SDL3 ${SDL_REQUIRED_VERSION} REQUIRED COMPONENTS Headers)
+ endif()
+
+ add_library(SDL3_shadercross-static STATIC ${SOURCE_FILES})
+ add_library(SDL3_shadercross::SDL3_shadercross-static ALIAS SDL3_shadercross-static)
+
+ if(NOT MSVC)
+ set_property(TARGET SDL3_shadercross-static PROPERTY OUTPUT_NAME "SDL3_shadercross")
+ endif()
+
+ # SDL3_shadercross folders as includes, for other targets to consume
+ target_include_directories(SDL3_shadercross-static PUBLIC "$")
+ target_include_directories(SDL3_shadercross-static PUBLIC "$")
+
+ target_link_libraries(SDL3_shadercross-static PUBLIC
+ SDL3::Headers
+ )
+ export(TARGETS SDL3_shadercross-static NAMESPACE "SDL3_shadercross::" FILE "SDL3_shadercross-static-targets.cmake")
+endif()
+
+# Copy dependencies of SDL3_shadercross-config.cmake to build directory.
+# This allows usage of the package without installation.
+file(COPY
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/sdlcpu.cmake"
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindDirectXShaderCompiler.cmake"
+ DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
+
+foreach(target IN LISTS SDL3_shadercross_targets)
+ sdl_add_warning_options(${target} WARNING_AS_ERROR ${SDLSHADERCROSS_WERROR})
+ target_compile_features(${target} PRIVATE c_std_99)
+
+ if(SDLSHADERCROSS_DXC)
+ add_compile_definitions(SDL_SHADERCROSS_DXC)
+ endif()
+
+ if(SDLSHADERCROSS_SPIRVCROSS_SHARED)
+ target_link_libraries(${target} PRIVATE spirv-cross-c-shared)
+ else()
+ target_link_libraries(${target} PRIVATE spirv-cross-c)
+ endif()
+ if(SDLSHADERCROSS_DXC)
+ target_link_libraries(${target} PRIVATE DirectXShaderCompiler::dxcompiler)
+ endif()
+ if(NOT SDLSHADERCROSS_SPIRVCROSS_SHARED)
+ # spirv-cross uses C++
+ set_property(TARGET ${target} PROPERTY LINKER_LANGUAGE CXX)
+ endif()
+endforeach()
+
+if(NOT TARGET SDL3_shadercross::SDL3_shadercross)
+ if(TARGET SDL3_shadercross-shared)
+ add_library(SDL3_shadercross::SDL3_shadercross ALIAS SDL3_shadercross-shared)
+ else()
+ add_library(SDL3_shadercross::SDL3_shadercross ALIAS SDL3_shadercross-static)
+ endif()
+endif()
+
+if(SDLSHADERCROSS_CLI)
+ add_executable(shadercross src/cli.c)
+ sdl_add_warning_options(shadercross WARNING_AS_ERROR ${SDLSHADERCROSS_WERROR})
+ sdl_target_link_options_no_undefined(shadercross)
+
+ if(SDLSHADERCROSS_CLI_LEAKCHECK)
+ target_link_libraries(shadercross PRIVATE SDL3::SDL3_test)
+ target_compile_definitions(shadercross PRIVATE LEAKCHECK)
+ endif()
+ if(SDLSHADERCROSS_CLI_STATIC)
+ target_link_libraries(shadercross PRIVATE SDL3_shadercross::SDL3_shadercross-static)
+ target_link_libraries(shadercross PRIVATE SDL3::SDL3-static)
+ else()
+ if(NOT TARGET SDL3::SDL3)
+ find_package(SDL3 ${SDL_REQUIRED_VERSION} REQUIRED CONFIG COMPONENTS SDL3)
+ endif()
+ target_link_libraries(shadercross PRIVATE SDL3_shadercross::SDL3_shadercross)
+ target_link_libraries(shadercross PRIVATE SDL3::SDL3)
+ endif()
+endif()
+
+if(SDLSHADERCROSS_INSTALL)
+ if(WIN32 AND NOT MINGW)
+ set(INSTALL_CMAKEDIR_ROOT_DEFAULT "cmake")
+ else()
+ set(INSTALL_CMAKEDIR_ROOT_DEFAULT "${CMAKE_INSTALL_LIBDIR}/cmake")
+ endif()
+ set(SDLSHADERCROSS_INSTALL_CMAKEDIR_ROOT "${INSTALL_CMAKEDIR_ROOT_DEFAULT}" CACHE STRING "Root folder where to install SDL3_shadercross cmake related files (SDL3_shadercross subfolder for MSVC projects)")
+ set(SDLSHADERCROSS_PKGCONFIG_INSTALLDIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
+
+ if(WIN32 AND NOT MINGW)
+ set(SDLSHADERCROSS_INSTALL_CMAKEDIR "${SDLSHADERCROSS_INSTALL_CMAKEDIR_ROOT}")
+ else()
+ set(SDLSHADERCROSS_INSTALL_CMAKEDIR "${SDLSHADERCROSS_INSTALL_CMAKEDIR_ROOT}/SDL3_shadercross")
+ endif()
+
+ if(TARGET SDL3_shadercross-shared)
+ install(TARGETS SDL3_shadercross-shared EXPORT SDL3_shadercross-shared-export
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT devel
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT library
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT library
+ )
+ install(EXPORT SDL3_shadercross-shared-export
+ FILE SDL3_shadercross-shared-targets.cmake
+ NAMESPACE SDL3_shadercross::
+ DESTINATION "${SDLSHADERCROSS_INSTALL_CMAKEDIR}"
+ COMPONENT devel
+ )
+ endif()
+ if(TARGET SDL3_shadercross-static)
+ install(TARGETS SDL3_shadercross-static EXPORT SDL3_shadercross-static-export
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT devel
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT library
+ )
+ install(EXPORT SDL3_shadercross-static-export
+ FILE SDL3_shadercross-static-targets.cmake
+ NAMESPACE SDL3_shadercross::
+ DESTINATION "${SDLSHADERCROSS_INSTALL_CMAKEDIR}"
+ COMPONENT devel
+ )
+ endif()
+ if(vendored_targets)
+ install(TARGETS ${vendored_targets} EXPORT SDL3_shadercross-vendored
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT devel
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT library
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT library
+ )
+ install(EXPORT SDL3_shadercross-vendored
+ FILE SDL3_shadercross-vendored-targets.cmake
+ NAMESPACE SDL3_shadercross::vendored::
+ DESTINATION "${SDLSHADERCROSS_INSTALL_CMAKEDIR}"
+ COMPONENT devel
+ )
+ endif()
+ install(
+ FILES "${CMAKE_CURRENT_SOURCE_DIR}/include/SDL3_shadercross/SDL_shadercross.h"
+ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/SDL3_shadercross" COMPONENT DEVEL
+ )
+ if(SDLSHADERCROSS_CLI)
+ install(TARGETS shadercross RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+ endif()
+
+ include(CMakePackageConfigHelpers)
+ configure_package_config_file(cmake/SDL3_shadercrossConfig.cmake.in SDL3_shadercrossConfig.cmake
+ NO_SET_AND_CHECK_MACRO
+ INSTALL_DESTINATION "${SDLSHADERCROSS_INSTALL_CMAKEDIR}"
+ )
+ write_basic_package_version_file("${PROJECT_BINARY_DIR}/SDL3_shadercrossConfigVersion.cmake"
+ COMPATIBILITY AnyNewerVersion
+ )
+ install(
+ FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/SDL3_shadercrossConfig.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/SDL3_shadercrossConfigVersion.cmake"
+ DESTINATION "${SDLSHADERCROSS_INSTALL_CMAKEDIR}"
+ COMPONENT devel
+ )
+ if(NOT SDLSHADERCROSS_VENDORED)
+ install(
+ FILES
+ "cmake/sdlcpu.cmake"
+ "cmake/FindDirectXShaderCompiler.cmake"
+ DESTINATION "${SDLSHADERCROSS_INSTALL_CMAKEDIR}"
+ COMPONENT devel
+ )
+ endif()
+
+ if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
+ set(INCLUDEDIR_FOR_PKG_CONFIG "${CMAKE_INSTALL_INCLUDEDIR}")
+ else()
+ set(INCLUDEDIR_FOR_PKG_CONFIG "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
+ endif()
+ if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
+ set(LIBDIR_FOR_PKG_CONFIG "${CMAKE_INSTALL_LIBDIR}")
+ else()
+ set(LIBDIR_FOR_PKG_CONFIG "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
+ endif()
+
+ file(RELATIVE_PATH SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG "${CMAKE_INSTALL_PREFIX}/${SDLSHADERCROSS_PKGCONFIG_INSTALLDIR}" "${CMAKE_INSTALL_PREFIX}")
+ string(REGEX REPLACE "[/]+$" "" SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG "${SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG}")
+ set(SDL_PKGCONFIG_PREFIX "\${pcfiledir}/${SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG}")
+ if(NOT SDLSHADERCROSS_VENDORED)
+ if(SDLSHADERCROSS_SPIRVCROSS_SHARED)
+ set(PC_REQUIRES "spirv-cross-c-shared")
+ else()
+ set(PC_REQUIRES "spirv-cross-c")
+ endif()
+ endif()
+ set(PC_LIBS "-ldxcompiler")
+ configure_file(cmake/sdl3-shadercross.pc.in sdl3-shadercross.pc @ONLY)
+
+ # Always install sdl3-shadercross.pc file: libraries might be different between config modes
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sdl3-shadercross.pc"
+ DESTINATION "${SDLSHADERCROSS_PKGCONFIG_INSTALLDIR}" COMPONENT devel)
+
+ install(FILES "LICENSE.txt"
+ DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/licenses/${PROJECT_NAME}"
+ COMPONENT library
+ )
+ if(SDLSHADERCROSS_INSTALL_CPACK)
+ if(MSVC)
+ set(CPACK_GENERATOR "ZIP")
+ else()
+ set(CPACK_GENERATOR "TGZ")
+ endif()
+ configure_file(cmake/CPackProjectConfig.cmake.in CPackProjectConfig.cmake @ONLY)
+ set(CPACK_PROJECT_CONFIG_FILE "${PROJECT_BINARY_DIR}/CPackProjectConfig.cmake")
+ # CPACK_SOURCE_PACKAGE_FILE_NAME must end with "-src" (so we can block creating a source archive)
+ set(CPACK_SOURCE_PACKAGE_FILE_NAME "SDL3_shadercross-${PROJECT_VERSION}-src")
+ set(CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR}/dist")
+ include(CPack)
+ endif()
+endif()
+
+if(SDLSHADERCROSS_INSTALL_MAN)
+ sdl_get_git_revision_hash(SDLSHADERCROSS_REVISION)
+ SDL_generate_manpages(
+ HEADERS_DIR "${PROJECT_SOURCE_DIR}/include/SDL3_shadercross"
+ SYMBOL "SDL_ShaderCross_Init"
+ WIKIHEADERS_PL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/build-scripts/wikiheaders.pl"
+ REVISION "${SDLSHADERCROSS_REVISION}"
+ )
+endif()
+
+if(SDLSHADERCROSS_TESTS)
+ enable_testing()
+ add_subdirectory(test)
+endif()
+
+if(SDLSHADERCROSS_INSTALL_RUNTIME)
+ set(chmod_0755 OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ if(APPLE)
+ set(rpath_origin "@executable_path")
+ else()
+ set(rpath_origin "\$ORIGIN")
+ endif()
+
+ if(NOT SDLSHADERCROSS_VENDORED)
+ if(SDLSHADERCROSS_DXC)
+ install(IMPORTED_RUNTIME_ARTIFACTS DirectXShaderCompiler::dxcompiler DirectXShaderCompiler::dxil RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+ endif()
+ if(SDLSHADERCROSS_SPIRVCROSS_SHARED)
+ install(IMPORTED_RUNTIME_ARTIFACTS spirv-cross-c-shared RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+ if(WIN32)
+ install(CODE "
+ set(CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM \"windows+pe\")
+ set(CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL \"$,dumpbin,objdump>\")
+ set(CMAKE_GET_RUNTIME_DEPENDENCIES_COMMAND \"${CMAKE_OBJDUMP}\")
+ file(GET_RUNTIME_DEPENDENCIES
+ RESOLVED_DEPENDENCIES_VAR resolved
+ UNRESOLVED_DEPENDENCIES_VAR unresolved
+ DIRECTORIES \"$\" \"${CMAKE_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR}\"
+ LIBRARIES \"$\"
+ POST_EXCLUDE_REGEXES \".*[sS][yY][sS][tT][eE][mM]32.*\" \".*[aA][pP][iI]-[mM][sS].*\" \".*[aA][pP][iI]-[eE][xX][tT].*\"
+ )
+ file(INSTALL DESTINATION \"\${CMAKE_INSTALL_PREFIX}/bin\" TYPE SHARED_LIBRARY FILES \${resolved})
+ ")
+ endif()
+ endif()
+ endif()
+
+ if(TARGET shadercross)
+ file(RELATIVE_PATH bin_to_lib "${CMAKE_INSTALL_FULL_BINDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}")
+ set_property(TARGET shadercross PROPERTY INSTALL_RPATH "${rpath_origin}/${bin_to_lib}")
+ endif()
+
+ # Install SDL3
+ if(SDLSHADERCROSS_CLI AND NOT SDLSHADERCROSS_CLI_STATIC)
+ install(IMPORTED_RUNTIME_ARTIFACTS SDL3::SDL3-shared RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+ endif()
+ include(ExternalProject)
+
+ if(NOT WIN32)
+ set(configure_CFLAGS "${CMAKE_C_FLAGS}")
+ if(APPLE)
+ foreach(osx_arch IN LISTS CMAKE_OSX_ARCHITECTURES)
+ string(APPEND configure_CFLAGS " -arch ${osx_arch}")
+ endforeach()
+ endif()
+ string(REPLACE ";" "$" genex_CMAKE_OSX_ARCHITECTURES "${CMAKE_OSX_ARCHITECTURES}")
+
+ ExternalProject_Add(spirv_headers
+ GIT_REPOSITORY "https://github.com/KhronosGroup/SPIRV-Headers.git"
+ GIT_TAG "main"
+ CMAKE_ARGS "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_INSTALL_BINDIR=bin" "-DCMAKE_INSTALL_PREFIX=" "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "-DCMAKE_OSX_ARCHITECTURES=${genex_CMAKE_OSX_ARCHITECTURES}" "-DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}"
+ BUILD_COMMAND "${CMAKE_COMMAND}" "--build" "" --config "Release"
+ INSTALL_COMMAND "${CMAKE_COMMAND}" "--install" "" --config "Release"
+ )
+ ExternalProject_Get_property(spirv_headers INSTALL_DIR)
+ set(spirv_headers_install_dir "${INSTALL_DIR}")
+
+ ExternalProject_Add(vulkan_headers
+ GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Headers"
+ GIT_TAG "main"
+ CMAKE_ARGS "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_INSTALL_BINDIR=bin" "-DCMAKE_INSTALL_PREFIX=" "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "-DCMAKE_OSX_ARCHITECTURES=${genex_CMAKE_OSX_ARCHITECTURES}" "-DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}"
+ BUILD_COMMAND "${CMAKE_COMMAND}" "--build" "" --config "Release"
+ INSTALL_COMMAND "${CMAKE_COMMAND}" "--install" "" --config "Release"
+ )
+ ExternalProject_Get_property(vulkan_headers INSTALL_DIR)
+ set(vulkan_headers_install_dir "${INSTALL_DIR}")
+
+ ExternalProject_Add(vulkan_loader
+ DEPENDS spirv_headers vulkan_headers
+ GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Loader.git"
+ GIT_TAG "main"
+ CMAKE_ARGS "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_INSTALL_BINDIR=bin" "-DCMAKE_INSTALL_PREFIX=" "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "-DCMAKE_OSX_ARCHITECTURES=${genex_CMAKE_OSX_ARCHITECTURES}" "-DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}" "-DCMAKE_PREFIX_PATH=${vulkan_headers_install_dir}"
+ BUILD_COMMAND "${CMAKE_COMMAND}" "--build" "" --config "Release"
+ INSTALL_COMMAND "${CMAKE_COMMAND}" "--install" "" --config "Release"
+ )
+ ExternalProject_Get_property(vulkan_loader INSTALL_DIR)
+ set(vulkan_loader_install_dir "${INSTALL_DIR}")
+
+ find_package(BISON REQUIRED)
+ ExternalProject_Add(vkd3d
+ DEPENDS spirv_headers vulkan_headers vulkan_loader
+ URL "https://dl.winehq.org/vkd3d/source/vkd3d-2.0.tar.xz"
+ URL_HASH "SHA256=9ad29bb236808186a47ec66e853b21e6fca59b9dc62a9474b05d5e3eda2710ef"
+ DOWNLOAD_EXTRACT_TIMESTAMP "1"
+ CONFIGURE_COMMAND "sh" "/configure" "--prefix=" "--enable-tests=no" "--enable-demos=no" "--disable-doxygen-doc" "CFLAGS=-I${spirv_headers_install_dir}/include -I${vulkan_headers_install_dir}/include -I${vulkan_loader_install_dir}/include ${configure_CFLAGS}" "LDFLAGS=-L${vulkan_loader_install_dir}/lib" "BISON=${BISON_EXECUTABLE}"
+ BUILD_COMMAND "make"
+ INSTALL_COMMAND "make" "install"
+ )
+ ExternalProject_Get_property(vkd3d SOURCE_DIR)
+ ExternalProject_Get_property(vkd3d INSTALL_DIR)
+ install(DIRECTORY "${INSTALL_DIR}/lib/" DESTINATION "${CMAKE_INSTALL_LIBDIR}" FILES_MATCHING PATTERN "*.so*" PERMISSIONS ${chmod_0755})
+ install(DIRECTORY "${INSTALL_DIR}/lib/" DESTINATION "${CMAKE_INSTALL_LIBDIR}" FILES_MATCHING PATTERN "*.dylib*" PERMISSIONS ${chmod_0755})
+ install(FILES "${SOURCE_DIR}/COPYING" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/licenses/vkd3d")
+ endif()
+ if(LINUX)
+ find_program(PATCHELF_BIN NAMES "patchelf" REQUIRED)
+ install(CODE "file(GLOB so_paths \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/*so*\")\n foreach(so_path \${so_paths})\n if(NOT IS_SYMLINK \${so_path})\n message(STATUS \"Adding \\\"\$ORIGIN\\\" to RPATH of \${so_path}\")\n execute_process(COMMAND ${PATCHELF_BIN} \"\${so_path}\" --add-rpath \"\$ORIGIN\")\n endif()\n endforeach()")
+ elseif(APPLE)
+ find_program(INT_BIN NAMES "install_name_tool" REQUIRED)
+ install(CODE "file(GLOB so_paths \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/*dylib*\")\n foreach(so_path \${so_paths})\n if(NOT IS_SYMLINK \${so_path})\n message(STATUS \"Adding \\\"\@loader_path\\\" to RPATH of \${so_path}\")\n execute_process(COMMAND ${INT_BIN} \"\${so_path}\" -add_rpath \"\@loader_path\")\n endif()\n endforeach()")
+ endif()
+endif()
diff --git a/thirdparty/SDL_shadercross/LICENSE.txt b/thirdparty/SDL_shadercross/LICENSE.txt
new file mode 100644
index 000000000..b12e9a977
--- /dev/null
+++ b/thirdparty/SDL_shadercross/LICENSE.txt
@@ -0,0 +1,18 @@
+Copyright (C) 2024 Sam Lantinga
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
diff --git a/thirdparty/SDL_shadercross/cmake/CPackProjectConfig.cmake.in b/thirdparty/SDL_shadercross/cmake/CPackProjectConfig.cmake.in
new file mode 100644
index 000000000..4c7ce7d56
--- /dev/null
+++ b/thirdparty/SDL_shadercross/cmake/CPackProjectConfig.cmake.in
@@ -0,0 +1,37 @@
+if(CPACK_PACKAGE_FILE_NAME MATCHES ".*-src$")
+ message(FATAL_ERROR "Creating source archives is not supported.")
+endif()
+
+set(PROJECT_NAME "@PROJECT_NAME@")
+set(PROJECT_VERSION "@PROJECT_VERSION@")
+set(PROJECT_SOURCE_DIR "@PROJECT_SOURCE_DIR@")
+set(SDL_CMAKE_PLATFORM "@SDL_CMAKE_PLATFORM@")
+set(SDL_CPU_NAMES "@SDL_CPU_NAMES@")
+list(SORT SDL_CPU_NAMES)
+
+string(TOLOWER "${SDL_CMAKE_PLATFORM}" SDL_CMAKE_PLATFORM)
+string(TOLOWER "${SDL_CPU_NAMES}" SDL_CPU_NAMES)
+if(lower_sdl_cmake_platform STREQUAL lower_sdl_cpu_names)
+ set(SDL_CPU_NAMES_WITH_DASHES)
+endif()
+
+string(REPLACE ";" "-" SDL_CPU_NAMES_WITH_DASHES "${SDL_CPU_NAMES}")
+if(SDL_CPU_NAMES_WITH_DASHES)
+ set(SDL_CPU_NAMES_WITH_DASHES "-${SDL_CPU_NAMES_WITH_DASHES}")
+endif()
+
+set(MSVC @MSVC@)
+set(MINGW @MINGW@)
+if(MSVC)
+ set(SDL_CMAKE_PLATFORM "${SDL_CMAKE_PLATFORM}-VC")
+elseif(MINGW)
+ set(SDL_CMAKE_PLATFORM "${SDL_CMAKE_PLATFORM}-mingw")
+endif()
+
+set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}-${SDL_CMAKE_PLATFORM}${SDL_CPU_NAMES_WITH_DASHES}")
+
+if(CPACK_GENERATOR STREQUAL "DragNDrop")
+ set(CPACK_DMG_VOLUME_NAME "@PROJECT_NAME@ @PROJECT_VERSION@")
+ # FIXME: use pre-built/create .DS_Store through AppleScript (CPACK_DMG_DS_STORE/CPACK_DMG_DS_STORE_SETUP_SCRIPT)
+ set(CPACK_DMG_DS_STORE "${PROJECT_SOURCE_DIR}/Xcode/SDL/pkg-support/resources/SDL_DS_Store")
+endif()
diff --git a/thirdparty/SDL_shadercross/cmake/FindDirectXShaderCompiler.cmake b/thirdparty/SDL_shadercross/cmake/FindDirectXShaderCompiler.cmake
new file mode 100644
index 000000000..55a8c6173
--- /dev/null
+++ b/thirdparty/SDL_shadercross/cmake/FindDirectXShaderCompiler.cmake
@@ -0,0 +1,60 @@
+set(required_vars)
+
+if(WIN32)
+ find_path(DirectXShaderCompiler_INCLUDE_PATH NAMES "dxcapi.h" PATH_SUFFIXES "inc" "windows/inc" HINTS ${DirectXShaderCompiler_ROOT})
+ if(SDL_CPU_ARM64)
+ set(extra_bin_suffix "bin/arm64" "windows/bin/arm64")
+ set(extra_lib_suffix "lib/arm64" "windows/lib/arm64")
+ elseif(SDL_CPU_X86)
+ set(extra_bin_suffix "bin/x86" "windows/bin/x86")
+ set(extra_lib_suffix "lib/x86" "windows/lib/x86")
+ elseif(SDL_CPU_X64)
+ set(extra_bin_suffix "bin/x64" "windows/bin/x64")
+ set(extra_lib_suffix "lib/x64" "windows/lib/x64")
+ endif()
+ find_file(DirectXShaderCompiler_dxcompiler_BINARY NAMES "dxcompiler.dll" PATH_SUFFIXES "bin" ${extra_bin_suffix} HINTS ${DirectXShaderCompiler_ROOT})
+ find_library(DirectXShaderCompiler_dxcompiler_LIBRARY NAMES "dxcompiler" "dxcompiler.lib" PATH_SUFFIXES "lib" ${extra_lib_suffix} HINTS ${DirectXShaderCompiler_ROOT})
+ find_file(DirectXShaderCompiler_dxil_BINARY NAMES "dxil.dll" PATH_SUFFIXES "bin" ${extra_bin_suffix} HINTS ${DirectXShaderCompiler_ROOT})
+ set(required_vars
+ DirectXShaderCompiler_INCLUDE_PATH
+ DirectXShaderCompiler_dxcompiler_BINARY
+ DirectXShaderCompiler_dxcompiler_LIBRARY
+ DirectXShaderCompiler_dxil_BINARY
+ )
+else()
+ find_path(DirectXShaderCompiler_INCLUDE_PATH NAMES "dxcapi.h" PATH_SUFFIXES "include" "include/dxc" "linux/include" "linux/include/dxc" HINTS ${DirectXShaderCompiler_ROOT})
+ find_library(DirectXShaderCompiler_dxcompiler_LIBRARY NAMES "dxcompiler" PATH_SUFFIXES "lib" "linux/lib" HINTS ${DirectXShaderCompiler_ROOT})
+ find_library(DirectXShaderCompiler_dxil_LIBRARY NAMES "dxil" PATH_SUFFIXES "lib" "linux/lib" HINTS ${DirectXShaderCompiler_ROOT})
+ set(required_vars
+ DirectXShaderCompiler_INCLUDE_PATH
+ DirectXShaderCompiler_dxcompiler_LIBRARY
+ DirectXShaderCompiler_dxil_LIBRARY
+ )
+endif()
+
+include(FindPackageHandleStandardArgs)
+
+find_package_handle_standard_args(DirectXShaderCompiler
+ REQUIRED_VARS ${required_vars}
+)
+
+if(DirectXShaderCompiler_FOUND)
+ if(NOT TARGET DirectXShaderCompiler::dxcompiler)
+ add_library(DirectXShaderCompiler::dxcompiler IMPORTED SHARED)
+ set_property(TARGET DirectXShaderCompiler::dxcompiler PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${DirectXShaderCompiler_INCLUDE_PATH}")
+ if(WIN32)
+ set_property(TARGET DirectXShaderCompiler::dxcompiler PROPERTY IMPORTED_LOCATION "${DirectXShaderCompiler_dxcompiler_BINARY}")
+ set_property(TARGET DirectXShaderCompiler::dxcompiler PROPERTY IMPORTED_IMPLIB "${DirectXShaderCompiler_dxcompiler_LIBRARY}")
+ else()
+ set_property(TARGET DirectXShaderCompiler::dxcompiler PROPERTY IMPORTED_LOCATION "${DirectXShaderCompiler_dxcompiler_LIBRARY}")
+ endif()
+ endif()
+ if(NOT TARGET DirectXShaderCompiler::dxil)
+ add_library(DirectXShaderCompiler::dxil IMPORTED SHARED)
+ if(WIN32)
+ set_property(TARGET DirectXShaderCompiler::dxil PROPERTY IMPORTED_LOCATION "${DirectXShaderCompiler_dxil_BINARY}")
+ else()
+ set_property(TARGET DirectXShaderCompiler::dxil PROPERTY IMPORTED_LOCATION "${DirectXShaderCompiler_dxil_LIBRARY}")
+ endif()
+ endif()
+endif()
diff --git a/thirdparty/SDL_shadercross/cmake/GetGitRevisionDescription.cmake b/thirdparty/SDL_shadercross/cmake/GetGitRevisionDescription.cmake
new file mode 100644
index 000000000..a08895c64
--- /dev/null
+++ b/thirdparty/SDL_shadercross/cmake/GetGitRevisionDescription.cmake
@@ -0,0 +1,284 @@
+# - Returns a version string from Git
+#
+# These functions force a re-configure on each git commit so that you can
+# trust the values of the variables in your build system.
+#
+# get_git_head_revision( [ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR])
+#
+# Returns the refspec and sha hash of the current head revision
+#
+# git_describe( [ ...])
+#
+# Returns the results of git describe on the source tree, and adjusting
+# the output so that it tests false if an error occurs.
+#
+# git_describe_working_tree( [ ...])
+#
+# Returns the results of git describe on the working tree (--dirty option),
+# and adjusting the output so that it tests false if an error occurs.
+#
+# git_get_exact_tag( [ ...])
+#
+# Returns the results of git describe --exact-match on the source tree,
+# and adjusting the output so that it tests false if there was no exact
+# matching tag.
+#
+# git_local_changes()
+#
+# Returns either "CLEAN" or "DIRTY" with respect to uncommitted changes.
+# Uses the return code of "git diff-index --quiet HEAD --".
+# Does not regard untracked files.
+#
+# Requires CMake 2.6 or newer (uses the 'function' command)
+#
+# Original Author:
+# 2009-2020 Ryan Pavlik
+# http://academic.cleardefinition.com
+#
+# Copyright 2009-2013, Iowa State University.
+# Copyright 2013-2020, Ryan Pavlik
+# Copyright 2013-2020, Contributors
+# SPDX-License-Identifier: BSL-1.0
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+if(__get_git_revision_description)
+ return()
+endif()
+set(__get_git_revision_description YES)
+
+# We must run the following at "include" time, not at function call time,
+# to find the path to this module rather than the path to a calling list file
+get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH)
+
+# Function _git_find_closest_git_dir finds the next closest .git directory
+# that is part of any directory in the path defined by _start_dir.
+# The result is returned in the parent scope variable whose name is passed
+# as variable _git_dir_var. If no .git directory can be found, the
+# function returns an empty string via _git_dir_var.
+#
+# Example: Given a path C:/bla/foo/bar and assuming C:/bla/.git exists and
+# neither foo nor bar contain a file/directory .git. This will return
+# C:/bla/.git
+#
+function(_git_find_closest_git_dir _start_dir _git_dir_var)
+ set(cur_dir "${_start_dir}")
+ set(git_dir "${_start_dir}/.git")
+ while(NOT EXISTS "${git_dir}")
+ # .git dir not found, search parent directories
+ set(git_previous_parent "${cur_dir}")
+ get_filename_component(cur_dir "${cur_dir}" DIRECTORY)
+ if(cur_dir STREQUAL git_previous_parent)
+ # We have reached the root directory, we are not in git
+ set(${_git_dir_var}
+ ""
+ PARENT_SCOPE)
+ return()
+ endif()
+ set(git_dir "${cur_dir}/.git")
+ endwhile()
+ set(${_git_dir_var}
+ "${git_dir}"
+ PARENT_SCOPE)
+endfunction()
+
+function(get_git_head_revision _refspecvar _hashvar)
+ _git_find_closest_git_dir("${CMAKE_CURRENT_SOURCE_DIR}" GIT_DIR)
+
+ if("${ARGN}" STREQUAL "ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR")
+ set(ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR TRUE)
+ else()
+ set(ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR FALSE)
+ endif()
+ if(NOT "${GIT_DIR}" STREQUAL "")
+ file(RELATIVE_PATH _relative_to_source_dir "${CMAKE_SOURCE_DIR}"
+ "${GIT_DIR}")
+ if("${_relative_to_source_dir}" MATCHES "[.][.]" AND NOT ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR)
+ # We've gone above the CMake root dir.
+ set(GIT_DIR "")
+ endif()
+ endif()
+ if("${GIT_DIR}" STREQUAL "")
+ set(${_refspecvar}
+ "GITDIR-NOTFOUND"
+ PARENT_SCOPE)
+ set(${_hashvar}
+ "GITDIR-NOTFOUND"
+ PARENT_SCOPE)
+ return()
+ endif()
+
+ # Check if the current source dir is a git submodule or a worktree.
+ # In both cases .git is a file instead of a directory.
+ #
+ if(NOT IS_DIRECTORY ${GIT_DIR})
+ # The following git command will return a non empty string that
+ # points to the super project working tree if the current
+ # source dir is inside a git submodule.
+ # Otherwise the command will return an empty string.
+ #
+ execute_process(
+ COMMAND "${GIT_EXECUTABLE}" rev-parse
+ --show-superproject-working-tree
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ OUTPUT_VARIABLE out
+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT "${out}" STREQUAL "")
+ # If out is empty, GIT_DIR/CMAKE_CURRENT_SOURCE_DIR is in a submodule
+ file(READ ${GIT_DIR} submodule)
+ string(REGEX REPLACE "gitdir: (.*)$" "\\1" GIT_DIR_RELATIVE
+ ${submodule})
+ string(STRIP ${GIT_DIR_RELATIVE} GIT_DIR_RELATIVE)
+ get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH)
+ get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE}
+ ABSOLUTE)
+ set(HEAD_SOURCE_FILE "${GIT_DIR}/HEAD")
+ else()
+ # GIT_DIR/CMAKE_CURRENT_SOURCE_DIR is in a worktree
+ file(READ ${GIT_DIR} worktree_ref)
+ # The .git directory contains a path to the worktree information directory
+ # inside the parent git repo of the worktree.
+ #
+ string(REGEX REPLACE "gitdir: (.*)$" "\\1" git_worktree_dir
+ ${worktree_ref})
+ string(STRIP ${git_worktree_dir} git_worktree_dir)
+ _git_find_closest_git_dir("${git_worktree_dir}" GIT_DIR)
+ set(HEAD_SOURCE_FILE "${git_worktree_dir}/HEAD")
+ endif()
+ else()
+ set(HEAD_SOURCE_FILE "${GIT_DIR}/HEAD")
+ endif()
+ set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data")
+ if(NOT EXISTS "${GIT_DATA}")
+ file(MAKE_DIRECTORY "${GIT_DATA}")
+ endif()
+
+ if(NOT EXISTS "${HEAD_SOURCE_FILE}")
+ return()
+ endif()
+ set(HEAD_FILE "${GIT_DATA}/HEAD")
+ configure_file("${HEAD_SOURCE_FILE}" "${HEAD_FILE}" COPYONLY)
+
+ configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in"
+ "${GIT_DATA}/grabRef.cmake" @ONLY)
+ include("${GIT_DATA}/grabRef.cmake")
+
+ set(${_refspecvar}
+ "${HEAD_REF}"
+ PARENT_SCOPE)
+ set(${_hashvar}
+ "${HEAD_HASH}"
+ PARENT_SCOPE)
+endfunction()
+
+function(git_describe _var)
+ if(NOT GIT_FOUND)
+ find_package(Git QUIET)
+ endif()
+ get_git_head_revision(refspec hash)
+ if(NOT GIT_FOUND)
+ set(${_var}
+ "GIT-NOTFOUND"
+ PARENT_SCOPE)
+ return()
+ endif()
+ if(NOT hash)
+ set(${_var}
+ "HEAD-HASH-NOTFOUND"
+ PARENT_SCOPE)
+ return()
+ endif()
+
+ # TODO sanitize
+ #if((${ARGN}" MATCHES "&&") OR
+ # (ARGN MATCHES "||") OR
+ # (ARGN MATCHES "\\;"))
+ # message("Please report the following error to the project!")
+ # message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}")
+ #endif()
+
+ #message(STATUS "Arguments to execute_process: ${ARGN}")
+
+ execute_process(
+ COMMAND "${GIT_EXECUTABLE}" describe --tags --always ${hash} ${ARGN}
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ RESULT_VARIABLE res
+ OUTPUT_VARIABLE out
+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT res EQUAL 0)
+ set(out "${out}-${res}-NOTFOUND")
+ endif()
+
+ set(${_var}
+ "${out}"
+ PARENT_SCOPE)
+endfunction()
+
+function(git_describe_working_tree _var)
+ if(NOT GIT_FOUND)
+ find_package(Git QUIET)
+ endif()
+ if(NOT GIT_FOUND)
+ set(${_var}
+ "GIT-NOTFOUND"
+ PARENT_SCOPE)
+ return()
+ endif()
+
+ execute_process(
+ COMMAND "${GIT_EXECUTABLE}" describe --dirty ${ARGN}
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ RESULT_VARIABLE res
+ OUTPUT_VARIABLE out
+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT res EQUAL 0)
+ set(out "${out}-${res}-NOTFOUND")
+ endif()
+
+ set(${_var}
+ "${out}"
+ PARENT_SCOPE)
+endfunction()
+
+function(git_get_exact_tag _var)
+ git_describe(out --exact-match ${ARGN})
+ set(${_var}
+ "${out}"
+ PARENT_SCOPE)
+endfunction()
+
+function(git_local_changes _var)
+ if(NOT GIT_FOUND)
+ find_package(Git QUIET)
+ endif()
+ get_git_head_revision(refspec hash)
+ if(NOT GIT_FOUND)
+ set(${_var}
+ "GIT-NOTFOUND"
+ PARENT_SCOPE)
+ return()
+ endif()
+ if(NOT hash)
+ set(${_var}
+ "HEAD-HASH-NOTFOUND"
+ PARENT_SCOPE)
+ return()
+ endif()
+
+ execute_process(
+ COMMAND "${GIT_EXECUTABLE}" diff-index --quiet HEAD --
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ RESULT_VARIABLE res
+ OUTPUT_VARIABLE out
+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(res EQUAL 0)
+ set(${_var}
+ "CLEAN"
+ PARENT_SCOPE)
+ else()
+ set(${_var}
+ "DIRTY"
+ PARENT_SCOPE)
+ endif()
+endfunction()
diff --git a/thirdparty/SDL_shadercross/cmake/GetGitRevisionDescription.cmake.in b/thirdparty/SDL_shadercross/cmake/GetGitRevisionDescription.cmake.in
new file mode 100644
index 000000000..116efc4e4
--- /dev/null
+++ b/thirdparty/SDL_shadercross/cmake/GetGitRevisionDescription.cmake.in
@@ -0,0 +1,43 @@
+#
+# Internal file for GetGitRevisionDescription.cmake
+#
+# Requires CMake 2.6 or newer (uses the 'function' command)
+#
+# Original Author:
+# 2009-2010 Ryan Pavlik
+# http://academic.cleardefinition.com
+# Iowa State University HCI Graduate Program/VRAC
+#
+# Copyright 2009-2012, Iowa State University
+# Copyright 2011-2015, Contributors
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+# SPDX-License-Identifier: BSL-1.0
+
+set(HEAD_HASH)
+
+file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024)
+
+string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS)
+if(HEAD_CONTENTS MATCHES "ref")
+ # named branch
+ string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}")
+ if(EXISTS "@GIT_DIR@/${HEAD_REF}")
+ configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
+ else()
+ configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY)
+ file(READ "@GIT_DATA@/packed-refs" PACKED_REFS)
+ if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}")
+ set(HEAD_HASH "${CMAKE_MATCH_1}")
+ endif()
+ endif()
+else()
+ # detached HEAD
+ configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY)
+endif()
+
+if(NOT HEAD_HASH)
+ file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024)
+ string(STRIP "${HEAD_HASH}" HEAD_HASH)
+endif()
diff --git a/thirdparty/SDL_shadercross/cmake/PrivateSdlFunctions.cmake b/thirdparty/SDL_shadercross/cmake/PrivateSdlFunctions.cmake
new file mode 100644
index 000000000..8d71ede07
--- /dev/null
+++ b/thirdparty/SDL_shadercross/cmake/PrivateSdlFunctions.cmake
@@ -0,0 +1,363 @@
+# This file is shared amongst SDL_image/SDL_mixer/SDL_ttf
+
+include(CheckCCompilerFlag)
+include(CheckCSourceCompiles)
+include(CMakePushCheckState)
+
+macro(sdl_calculate_derived_version_variables MAJOR MINOR MICRO)
+ set(SO_VERSION_MAJOR "0")
+ set(SO_VERSION_MINOR "${MINOR_VERSION}")
+ set(SO_VERSION_MICRO "${MICRO_VERSION}")
+ set(SO_VERSION "${SO_VERSION_MAJOR}.${SO_VERSION_MINOR}.${SO_VERSION_MICRO}")
+
+ if(MINOR MATCHES "[02468]$")
+ math(EXPR DYLIB_COMPAT_VERSION_MAJOR "100 * ${MINOR} + 1")
+ set(DYLIB_COMPAT_VERSION_MINOR "0")
+ math(EXPR DYLIB_CURRENT_VERSION_MAJOR "${DYLIB_COMPAT_VERSION_MAJOR}")
+ set(DYLIB_CURRENT_VERSION_MINOR "${MICRO}")
+ else()
+ math(EXPR DYLIB_COMPAT_VERSION_MAJOR "100 * ${MINOR} + ${MICRO} + 1")
+ set(DYLIB_COMPAT_VERSION_MINOR "0")
+ math(EXPR DYLIB_CURRENT_VERSION_MAJOR "${DYLIB_COMPAT_VERSION_MAJOR}")
+ set(DYLIB_CURRENT_VERSION_MINOR "0")
+ endif()
+ set(DYLIB_COMPAT_VERSION_MICRO "0")
+ set(DYLIB_CURRENT_VERSION_MICRO "0")
+
+ set(DYLIB_CURRENT_VERSION "${DYLIB_CURRENT_VERSION_MAJOR}.${DYLIB_CURRENT_VERSION_MINOR}.${DYLIB_CURRENT_VERSION_MICRO}")
+ set(DYLIB_COMPAT_VERSION "${DYLIB_COMPAT_VERSION_MAJOR}.${DYLIB_COMPAT_VERSION_MINOR}.${DYLIB_COMPAT_VERSION_MICRO}")
+endmacro()
+
+function(read_absolute_symlink DEST PATH)
+ file(READ_SYMLINK "${PATH}" p)
+ if(NOT IS_ABSOLUTE "${p}")
+ get_filename_component(pdir "${PATH}" DIRECTORY)
+ set(p "${pdir}/${p}")
+ endif()
+ get_filename_component(p "${p}" ABSOLUTE)
+ set("${DEST}" "${p}" PARENT_SCOPE)
+endfunction()
+
+function(win32_implib_identify_dll DEST IMPLIB)
+ cmake_parse_arguments(ARGS "NOTFATAL" "" "" ${ARGN})
+ if(CMAKE_DLLTOOL)
+ execute_process(
+ COMMAND "${CMAKE_DLLTOOL}" --identify "${IMPLIB}"
+ RESULT_VARIABLE retcode
+ OUTPUT_VARIABLE stdout
+ ERROR_VARIABLE stderr)
+ if(NOT retcode EQUAL 0)
+ if(NOT ARGS_NOTFATAL)
+ message(FATAL_ERROR "${CMAKE_DLLTOOL} failed.")
+ else()
+ set("${DEST}" "${DEST}-NOTFOUND" PARENT_SCOPE)
+ return()
+ endif()
+ endif()
+ string(STRIP "${stdout}" result)
+ set(${DEST} "${result}" PARENT_SCOPE)
+ elseif(MSVC)
+ get_filename_component(CMAKE_C_COMPILER_DIRECTORY "${CMAKE_C_COMPILER}" DIRECTORY CACHE)
+ find_program(CMAKE_DUMPBIN NAMES dumpbin PATHS "${CMAKE_C_COMPILER_DIRECTORY}")
+ if(CMAKE_DUMPBIN)
+ execute_process(
+ COMMAND "${CMAKE_DUMPBIN}" "-headers" "${IMPLIB}"
+ RESULT_VARIABLE retcode
+ OUTPUT_VARIABLE stdout
+ ERROR_VARIABLE stderr)
+ if(NOT retcode EQUAL 0)
+ if(NOT ARGS_NOTFATAL)
+ message(FATAL_ERROR "dumpbin failed.")
+ else()
+ set(${DEST} "${DEST}-NOTFOUND" PARENT_SCOPE)
+ return()
+ endif()
+ endif()
+ string(REGEX MATCH "DLL name[ ]+:[ ]+([^\n]+)\n" match "${stdout}")
+ if(NOT match)
+ if(NOT ARGS_NOTFATAL)
+ message(FATAL_ERROR "dumpbin did not find any associated dll for ${IMPLIB}.")
+ else()
+ set(${DEST} "${DEST}-NOTFOUND" PARENT_SCOPE)
+ return()
+ endif()
+ endif()
+ set(result "${CMAKE_MATCH_1}")
+ set(${DEST} "${result}" PARENT_SCOPE)
+ else()
+ message(FATAL_ERROR "Cannot find dumpbin, please set CMAKE_DUMPBIN cmake variable")
+ endif()
+ else()
+ if(NOT ARGS_NOTFATAL)
+ message(FATAL_ERROR "Don't know how to identify dll from import library. Set CMAKE_DLLTOOL (for mingw) or CMAKE_DUMPBIN (for MSVC)")
+ else()
+ set(${DEST} "${DEST}-NOTFOUND")
+ endif()
+ endif()
+endfunction()
+
+function(get_actual_target)
+ set(dst "${ARGV0}")
+ set(target "${${dst}}")
+ set(input "${target}")
+ get_target_property(alias "${target}" ALIASED_TARGET)
+ while(alias)
+ set(target "${alias}")
+ get_target_property(alias "${target}" ALIASED_TARGET)
+ endwhile()
+ message(DEBUG "get_actual_target(\"${input}\") -> \"${target}\"")
+ set("${dst}" "${target}" PARENT_SCOPE)
+endfunction()
+
+function(target_get_dynamic_library DEST TARGET)
+ set(result)
+ if(DEFINED ${DEST})
+ if(NOT EXISTS "${${DEST}}")
+ message(FATAL_ERROR "${DEST}=${${DEST}} does not exist")
+ endif()
+ get_filename_component(filename ${${DEST}} NAME)
+ set(${DEST} ${filename} PARENT_SCOPE)
+ else()
+ get_actual_target(TARGET)
+ if(WIN32)
+ # Use the target dll of the import library
+ set(props_to_check IMPORTED_IMPLIB)
+ if(CMAKE_BUILD_TYPE)
+ list(APPEND props_to_check IMPORTED_IMPLIB_${CMAKE_BUILD_TYPE})
+ endif()
+ list(APPEND props_to_check IMPORTED_LOCATION)
+ if(CMAKE_BUILD_TYPE)
+ list(APPEND props_to_check IMPORTED_LOCATION_${CMAKE_BUILD_TYPE})
+ endif()
+ foreach (config_type ${CMAKE_CONFIGURATION_TYPES} RELEASE DEBUG RELWITHDEBINFO MINSIZEREL)
+ list(APPEND props_to_check IMPORTED_IMPLIB_${config_type})
+ list(APPEND props_to_check IMPORTED_LOCATION_${config_type})
+ endforeach()
+
+ foreach(prop_to_check ${props_to_check})
+ if(NOT result)
+ get_target_property(propvalue "${TARGET}" ${prop_to_check})
+ if(propvalue AND EXISTS "${propvalue}")
+ win32_implib_identify_dll(result "${propvalue}" NOTFATAL)
+ endif()
+ endif()
+ endforeach()
+ else()
+ # 1. find the target library a file might be symbolic linking to
+ # 2. find all other files in the same folder that symolic link to it
+ # 3. sort all these files, and select the 1st item on Linux, and last on Macos
+ set(location_properties IMPORTED_LOCATION)
+ if(CMAKE_BUILD_TYPE)
+ list(APPEND location_properties IMPORTED_LOCATION_${CMAKE_BUILD_TYPE})
+ endif()
+ foreach (config_type ${CMAKE_CONFIGURATION_TYPES} RELEASE DEBUG RELWITHDEBINFO MINSIZEREL)
+ list(APPEND location_properties IMPORTED_LOCATION_${config_type})
+ endforeach()
+ if(APPLE)
+ set(valid_shared_library_regex "\\.[0-9]+\\.dylib$")
+ else()
+ set(valid_shared_library_regex "\\.so\\.([0-9.]+)?[0-9]")
+ endif()
+ foreach(location_property ${location_properties})
+ if(NOT result)
+ get_target_property(library_path "${TARGET}" ${location_property})
+ message(DEBUG "get_target_property(${TARGET} ${location_propert}) -> ${library_path}")
+ if(EXISTS "${library_path}")
+ get_filename_component(library_path "${library_path}" ABSOLUTE)
+ while (IS_SYMLINK "${library_path}")
+ read_absolute_symlink(library_path "${library_path}")
+ endwhile()
+ message(DEBUG "${TARGET} -> ${library_path}")
+ get_filename_component(libdir "${library_path}" DIRECTORY)
+ file(GLOB subfiles "${libdir}/*")
+ set(similar_files "${library_path}")
+ foreach(subfile ${subfiles})
+ if(IS_SYMLINK "${subfile}")
+ read_absolute_symlink(subfile_target "${subfile}")
+ while(IS_SYMLINK "${subfile_target}")
+ read_absolute_symlink(subfile_target "${subfile_target}")
+ endwhile()
+ get_filename_component(subfile_target "${subfile_target}" ABSOLUTE)
+ if(subfile_target STREQUAL library_path AND subfile MATCHES "${valid_shared_library_regex}")
+ list(APPEND similar_files "${subfile}")
+ endif()
+ endif()
+ endforeach()
+ list(SORT similar_files)
+ message(DEBUG "files that are similar to \"${library_path}\"=${similar_files}")
+ if(APPLE)
+ list(REVERSE similar_files)
+ endif()
+ list(GET similar_files 0 item)
+ get_filename_component(result "${item}" NAME)
+ endif()
+ endif()
+ endforeach()
+ endif()
+ if(result)
+ string(TOLOWER "${result}" result_lower)
+ if(WIN32 OR OS2)
+ if(NOT result_lower MATCHES ".*dll")
+ message(FATAL_ERROR "\"${result}\" is not a .dll library")
+ endif()
+ elseif(APPLE)
+ if(NOT result_lower MATCHES ".*dylib.*")
+ message(FATAL_ERROR "\"${result}\" is not a .dylib shared library")
+ endif()
+ else()
+ if(NOT result_lower MATCHES ".*so.*")
+ message(FATAL_ERROR "\"${result}\" is not a .so shared library")
+ endif()
+ endif()
+ else()
+ get_target_property(target_type ${TARGET} TYPE)
+ if(target_type MATCHES "SHARED_LIBRARY|MODULE_LIBRARY")
+ # OK
+ elseif(target_type MATCHES "STATIC_LIBRARY|OBJECT_LIBRARY|INTERFACE_LIBRARY|EXECUTABLE")
+ message(SEND_ERROR "${TARGET} is not a shared library, but has type=${target_type}")
+ else()
+ message(WARNING "Unable to extract dynamic library from target=${TARGET}, type=${target_type}.")
+ endif()
+ # TARGET_SONAME_FILE is not allowed for DLL target platforms.
+ if(WIN32)
+ set(result "$")
+ else()
+ set(result "$")
+ endif()
+ endif()
+ set(${DEST} ${result} PARENT_SCOPE)
+ endif()
+endfunction()
+
+function(sdl_check_project_in_subfolder relative_subfolder name vendored_option)
+ cmake_parse_arguments(ARG "" "FILE" "" ${ARGN})
+ if(NOT ARG_FILE)
+ set(ARG_FILE "CMakeLists.txt")
+ endif()
+ if(NOT EXISTS "${PROJECT_SOURCE_DIR}/${relative_subfolder}/${ARG_FILE}")
+ message(FATAL_ERROR "Could not find ${ARG_FILE} for ${name} in ${relative_subfolder}.\n"
+ "Run the download script in the external folder, or re-configure with -D${vendored_option}=OFF to use system packages.")
+ endif()
+endfunction()
+
+macro(sdl_check_linker_flag flag var)
+ # FIXME: Use CheckLinkerFlag module once cmake minimum version >= 3.18
+ cmake_push_check_state(RESET)
+ set(CMAKE_REQUIRED_LINK_OPTIONS "${flag}")
+ check_c_source_compiles("int main() { return 0; }" ${var} FAIL_REGEX "(unsupported|syntax error|unrecognized option)")
+ cmake_pop_check_state()
+endmacro()
+
+function(SDL_detect_linker)
+ if(CMAKE_VERSION VERSION_LESS 3.29)
+ if(NOT DEFINED SDL_CMAKE_C_COMPILER_LINKER_ID)
+ execute_process(COMMAND ${CMAKE_LINKER} -v OUTPUT_VARIABLE LINKER_OUTPUT ERROR_VARIABLE LINKER_OUTPUT)
+ string(REGEX REPLACE "[\r\n]" " " LINKER_OUTPUT "${LINKER_OUTPUT}")
+ if(LINKER_OUTPUT MATCHES ".*Microsoft.*")
+ set(linker MSVC)
+ else()
+ set(linker GNUlike)
+ endif()
+ message(STATUS "Linker identification: ${linker}")
+ set(SDL_CMAKE_C_COMPILER_LINKER_ID "${linker}" CACHE STRING "Linker identification")
+ mark_as_advanced(SDL_CMAKE_C_COMPILER_LINKER_ID)
+ endif()
+ set(CMAKE_C_COMPILER_LINKER_ID "${SDL_CMAKE_C_COMPILER_LINKER_ID}" PARENT_SCOPE)
+ endif()
+endfunction()
+
+function(check_linker_support_version_script VAR)
+ SDL_detect_linker()
+ if(CMAKE_C_COMPILER_LINKER_ID MATCHES "^(MSVC)$")
+ set(LINKER_SUPPORTS_VERSION_SCRIPT FALSE)
+ else()
+ cmake_push_check_state(RESET)
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/dummy.sym" "n_0 {\n global:\n func;\n local: *;\n};\n")
+ list(APPEND CMAKE_REQUIRED_LINK_OPTIONS "-Wl,--version-script=${CMAKE_CURRENT_BINARY_DIR}/dummy.sym")
+ check_c_source_compiles("int func(void) {return 0;} int main(int argc,char*argv[]){(void)argc;(void)argv;return func();}" LINKER_SUPPORTS_VERSION_SCRIPT FAIL_REGEX "(unsupported|syntax error|unrecognized option)")
+ cmake_pop_check_state()
+ endif()
+ set(${VAR} "${LINKER_SUPPORTS_VERSION_SCRIPT}" PARENT_SCOPE)
+endfunction()
+
+function(sdl_target_link_options_no_undefined TARGET)
+ if(NOT MSVC AND NOT CMAKE_SYSTEM_NAME MATCHES ".*OpenBSD.*")
+ if(CMAKE_C_COMPILER_ID MATCHES "AppleClang")
+ target_link_options(${TARGET} PRIVATE "-Wl,-undefined,error")
+ else()
+ sdl_check_linker_flag("-Wl,--no-undefined" HAVE_WL_NO_UNDEFINED)
+ if(HAVE_WL_NO_UNDEFINED AND NOT ((CMAKE_C_COMPILER_ID MATCHES "Clang") AND WIN32))
+ target_link_options(${TARGET} PRIVATE "-Wl,--no-undefined")
+ endif()
+ endif()
+ endif()
+endfunction()
+
+function(sdl_target_link_option_version_file TARGET VERSION_SCRIPT)
+ check_linker_support_version_script(HAVE_WL_VERSION_SCRIPT)
+ if(HAVE_WL_VERSION_SCRIPT)
+ target_link_options(${TARGET} PRIVATE "-Wl,--version-script=${VERSION_SCRIPT}")
+ set_property(TARGET ${TARGET} APPEND PROPERTY LINK_DEPENDS "${VERSION_SCRIPT}")
+ else()
+ if(LINUX OR ANDROID)
+ message(FATAL_ERROR "Linker does not support '-Wl,--version-script=xxx.sym'. This is required on the current host platform.")
+ endif()
+ endif()
+endfunction()
+
+function(sdl_add_warning_options TARGET)
+ cmake_parse_arguments(ARGS "" "WARNING_AS_ERROR" "" ${ARGN})
+ if(MSVC)
+ target_compile_options(${TARGET} PRIVATE /W2)
+ else()
+ target_compile_options(${TARGET} PRIVATE -Wall -Wextra -Wno-unused-parameter)
+ endif()
+ if(ARGS_WARNING_AS_ERROR)
+ if(MSVC)
+ target_compile_options(${TARGET} PRIVATE /WX)
+ else()
+ target_compile_options(${TARGET} PRIVATE -Werror)
+ endif()
+ endif()
+endfunction()
+
+function(sdl_no_deprecated_errors TARGET)
+ check_c_compiler_flag(-Wno-error=deprecated-declarations HAVE_WNO_ERROR_DEPRECATED_DECLARATIONS)
+ if(HAVE_WNO_ERROR_DEPRECATED_DECLARATIONS)
+ target_compile_options(${TARGET} PRIVATE "-Wno-error=deprecated-declarations")
+ endif()
+endfunction()
+
+function(sdl_get_git_revision_hash VARNAME)
+ set("${VARNAME}" "" CACHE STRING "${PROJECT_NAME} revision")
+ set(revision "${${VARNAME}}")
+ if(NOT revision)
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt")
+ # If VERSION.txt exists, it contains the SDL version
+ file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt" revision_version)
+ string(STRIP "${revision_version}" revision_version)
+ else()
+ # If VERSION.txt does not exist, use git to calculate a version
+ git_describe(revision_version)
+ if(NOT revision_version)
+ set(revision_version "${PROJECT_VERSION}-no-vcs")
+ endif()
+ endif()
+ set(revision "${revision_version}")
+ endif()
+ set("${VARNAME}" "${revision}" PARENT_SCOPE)
+endfunction()
+
+function(SDL_install_pdb TARGET DIRECTORY)
+ get_property(type TARGET ${TARGET} PROPERTY TYPE)
+ if(type MATCHES "^(SHARED_LIBRARY|EXECUTABLE)$")
+ install(FILES $ DESTINATION "${DIRECTORY}" OPTIONAL)
+ elseif(type STREQUAL "STATIC_LIBRARY")
+ # FIXME: Use $= @SDL_REQUIRED_VERSION@
+Libs: -L${libdir} -lSDL3_shadercross
+Requires.private: @PC_REQUIRES@
+Libs.private: @PC_LIBS@
+Cflags: -I${includedir}
diff --git a/thirdparty/SDL_shadercross/cmake/sdlcpu.cmake b/thirdparty/SDL_shadercross/cmake/sdlcpu.cmake
new file mode 100644
index 000000000..a27e7329c
--- /dev/null
+++ b/thirdparty/SDL_shadercross/cmake/sdlcpu.cmake
@@ -0,0 +1,158 @@
+function(SDL_DetectTargetCPUArchitectures DETECTED_ARCHS)
+
+ set(known_archs EMSCRIPTEN ARM32 ARM64 ARM64EC LOONGARCH64 POWERPC32 POWERPC64 RISCV32 RISCV64 X86 X64)
+
+ if(APPLE AND CMAKE_OSX_ARCHITECTURES)
+ foreach(known_arch IN LISTS known_archs)
+ set(SDL_CPU_${known_arch} "0" PARENT_SCOPE)
+ endforeach()
+ set(detected_archs)
+ foreach(osx_arch IN LISTS CMAKE_OSX_ARCHITECTURES)
+ if(osx_arch STREQUAL "x86_64")
+ set(SDL_CPU_X64 "1" PARENT_SCOPE)
+ list(APPEND detected_archs "X64")
+ elseif(osx_arch STREQUAL "arm64")
+ set(SDL_CPU_ARM64 "1" PARENT_SCOPE)
+ list(APPEND detected_archs "ARM64")
+ endif()
+ endforeach()
+ set("${DETECTED_ARCHS}" "${detected_archs}" PARENT_SCOPE)
+ return()
+ endif()
+
+ set(detected_archs)
+ foreach(known_arch IN LISTS known_archs)
+ if(SDL_CPU_${known_arch})
+ list(APPEND detected_archs "${known_arch}")
+ endif()
+ endforeach()
+
+ if(detected_archs)
+ set("${DETECTED_ARCHS}" "${detected_archs}" PARENT_SCOPE)
+ return()
+ endif()
+
+ set(arch_check_ARM32 "defined(__arm__) || defined(_M_ARM)")
+ set(arch_check_ARM64 "defined(__aarch64__) || defined(_M_ARM64)")
+ set(arch_check_ARM64EC "defined(_M_ARM64EC)")
+ set(arch_check_EMSCRIPTEN "defined(__EMSCRIPTEN__)")
+ set(arch_check_LOONGARCH64 "defined(__loongarch64)")
+ set(arch_check_POWERPC32 "(defined(__PPC__) || defined(__powerpc__)) && !defined(__powerpc64__)")
+ set(arch_check_POWERPC64 "defined(__PPC64__) || defined(__powerpc64__)")
+ set(arch_check_RISCV32 "defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 32")
+ set(arch_check_RISCV64 "defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64")
+ set(arch_check_X86 "defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) ||defined( __i386) || defined(_M_IX86)")
+ set(arch_check_X64 "(defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64)) && !defined(_M_ARM64EC)")
+
+ set(src_vars "")
+ set(src_main "")
+ foreach(known_arch IN LISTS known_archs)
+ set(detected_${known_arch} "0")
+
+ string(APPEND src_vars "
+#if ${arch_check_${known_arch}}
+#define ARCH_${known_arch} \"1\"
+#else
+#define ARCH_${known_arch} \"0\"
+#endif
+const char *arch_${known_arch} = \"INFO<${known_arch}=\" ARCH_${known_arch} \">\";
+")
+ string(APPEND src_main "
+ result += arch_${known_arch}[argc];")
+ endforeach()
+
+ set(src_arch_detect "${src_vars}
+int main(int argc, char *argv[]) {
+ int result = 0;
+ (void)argv;
+${src_main}
+ return result;
+}")
+
+ if(CMAKE_C_COMPILER)
+ set(ext ".c")
+ elseif(CMAKE_CXX_COMPILER)
+ set(ext ".cpp")
+ else()
+ enable_language(C)
+ set(ext ".c")
+ endif()
+ set(path_src_arch_detect "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/CMakeTmp/SDL_detect_arch${ext}")
+ file(WRITE "${path_src_arch_detect}" "${src_arch_detect}")
+ set(path_dir_arch_detect "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/CMakeTmp/SDL_detect_arch")
+ set(path_bin_arch_detect "${path_dir_arch_detect}/bin")
+
+ set(detected_archs)
+
+ set(msg "Detecting Target CPU Architecture")
+ message(STATUS "${msg}")
+
+ include(CMakePushCheckState)
+
+ set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
+
+ cmake_push_check_state(RESET)
+ try_compile(SDL_CPU_CHECK_ALL
+ "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/CMakeTmp/SDL_detect_arch"
+ SOURCES "${path_src_arch_detect}"
+ COPY_FILE "${path_bin_arch_detect}"
+ )
+ cmake_pop_check_state()
+ if(NOT SDL_CPU_CHECK_ALL)
+ message(STATUS "${msg} - ")
+ message(WARNING "Failed to compile source detecting the target CPU architecture")
+ else()
+ set(re "INFO<([A-Z0-9]+)=([01])>")
+ file(STRINGS "${path_bin_arch_detect}" infos REGEX "${re}")
+
+ foreach(info_arch_01 IN LISTS infos)
+ string(REGEX MATCH "${re}" A "${info_arch_01}")
+ if(NOT "${CMAKE_MATCH_1}" IN_LIST known_archs)
+ message(WARNING "Unknown architecture: \"${CMAKE_MATCH_1}\"")
+ continue()
+ endif()
+ set(arch "${CMAKE_MATCH_1}")
+ set(arch_01 "${CMAKE_MATCH_2}")
+ set(detected_${arch} "${arch_01}")
+ endforeach()
+
+ foreach(known_arch IN LISTS known_archs)
+ if(detected_${known_arch})
+ list(APPEND detected_archs ${known_arch})
+ endif()
+ endforeach()
+ endif()
+
+ if(detected_archs)
+ foreach(known_arch IN LISTS known_archs)
+ set("SDL_CPU_${known_arch}" "${detected_${known_arch}}" CACHE BOOL "Detected architecture ${known_arch}")
+ endforeach()
+ message(STATUS "${msg} - ${detected_archs}")
+ else()
+ include(CheckCSourceCompiles)
+ cmake_push_check_state(RESET)
+ foreach(known_arch IN LISTS known_archs)
+ if(NOT detected_archs)
+ set(cache_variable "SDL_CPU_${known_arch}")
+ set(test_src "
+ int main(int argc, char *argv[]) {
+ #if ${arch_check_${known_arch}}
+ return 0;
+ #else
+ choke
+ #endif
+ }
+ ")
+ check_c_source_compiles("${test_src}" "${cache_variable}")
+ if(${cache_variable})
+ set(SDL_CPU_${known_arch} "1" CACHE BOOL "Detected architecture ${known_arch}")
+ set(detected_archs ${known_arch})
+ else()
+ set(SDL_CPU_${known_arch} "0" CACHE BOOL "Detected architecture ${known_arch}")
+ endif()
+ endif()
+ endforeach()
+ cmake_pop_check_state()
+ endif()
+ set("${DETECTED_ARCHS}" "${detected_archs}" PARENT_SCOPE)
+endfunction()
diff --git a/thirdparty/SDL_shadercross/cmake/sdlmanpages.cmake b/thirdparty/SDL_shadercross/cmake/sdlmanpages.cmake
new file mode 100644
index 000000000..dc3ebb6bb
--- /dev/null
+++ b/thirdparty/SDL_shadercross/cmake/sdlmanpages.cmake
@@ -0,0 +1,68 @@
+include(CMakeParseArguments)
+include(GNUInstallDirs)
+
+function(SDL_generate_manpages)
+ cmake_parse_arguments(ARG "" "RESULT_VARIABLE;NAME;BUILD_DOCDIR;HEADERS_DIR;SOURCE_DIR;SYMBOL;OPTION_FILE;WIKIHEADERS_PL_PATH;REVISION" "" ${ARGN})
+
+ set(wikiheaders_extra_args)
+
+ if(NOT ARG_NAME)
+ set(ARG_NAME "${PROJECT_NAME}")
+ endif()
+
+ if(NOT ARG_SOURCE_DIR)
+ set(ARG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
+ endif()
+
+ if(NOT ARG_OPTION_FILE)
+ set(ARG_OPTION_FILE "${PROJECT_SOURCE_DIR}/.wikiheaders-options")
+ endif()
+
+ if(NOT ARG_HEADERS_DIR)
+ message(FATAL_ERROR "Missing required HEADERS_DIR argument")
+ endif()
+
+ # FIXME: get rid of SYMBOL and let the perl script figure out the dependencies
+ if(NOT ARG_SYMBOL)
+ message(FATAL_ERROR "Missing required SYMBOL argument")
+ endif()
+
+ if(ARG_REVISION)
+ list(APPEND wikiheaders_extra_args "--rev=${ARG_REVISION}")
+ endif()
+
+ if(NOT ARG_BUILD_DOCDIR)
+ set(ARG_BUILD_DOCDIR "${CMAKE_CURRENT_BINARY_DIR}/docs")
+ endif()
+ set(BUILD_WIKIDIR "${ARG_BUILD_DOCDIR}/wiki")
+ set(BUILD_MANDIR "${ARG_BUILD_DOCDIR}/man")
+
+ find_package(Perl)
+ file(GLOB HEADER_FILES "${ARG_HEADERS_DIR}/*.h")
+
+ set(result FALSE)
+
+ if(PERL_FOUND AND EXISTS "${ARG_WIKIHEADERS_PL_PATH}")
+ add_custom_command(
+ OUTPUT "${BUILD_WIKIDIR}/${ARG_SYMBOL}.md"
+ COMMAND "${CMAKE_COMMAND}" -E make_directory "${BUILD_WIKIDIR}"
+ COMMAND "${PERL_EXECUTABLE}" "${ARG_WIKIHEADERS_PL_PATH}" "${ARG_SOURCE_DIR}" "${BUILD_WIKIDIR}" "--options=${ARG_OPTION_FILE}" --copy-to-wiki ${wikiheaders_extra_args}
+ DEPENDS ${HEADER_FILES} "${ARG_WIKIHEADERS_PL_PATH}" "${ARG_OPTION_FILE}"
+ COMMENT "Generating ${ARG_NAME} wiki markdown files"
+ )
+ add_custom_command(
+ OUTPUT "${BUILD_MANDIR}/man3/${ARG_SYMBOL}.3"
+ COMMAND "${PERL_EXECUTABLE}" "${ARG_WIKIHEADERS_PL_PATH}" "${ARG_SOURCE_DIR}" "${BUILD_WIKIDIR}" "--options=${ARG_OPTION_FILE}" "--manpath=${BUILD_MANDIR}" --copy-to-manpages ${wikiheaders_extra_args}
+ DEPENDS "${BUILD_WIKIDIR}/${ARG_SYMBOL}.md" "${ARG_WIKIHEADERS_PL_PATH}" "${ARG_OPTION_FILE}"
+ COMMENT "Generating ${ARG_NAME} man pages"
+ )
+ add_custom_target(${ARG_NAME}-docs ALL DEPENDS "${BUILD_MANDIR}/man3/${ARG_SYMBOL}.3")
+
+ install(DIRECTORY "${BUILD_MANDIR}/" DESTINATION "${CMAKE_INSTALL_MANDIR}")
+ set(result TRUE)
+ endif()
+
+ if(ARG_RESULT_VARIABLE)
+ set(${ARG_RESULT_VARIABLE} ${result} PARENT_SCOPE)
+ endif()
+endfunction()
diff --git a/thirdparty/SDL_shadercross/cmake/sdlplatform.cmake b/thirdparty/SDL_shadercross/cmake/sdlplatform.cmake
new file mode 100644
index 000000000..ebb2077fb
--- /dev/null
+++ b/thirdparty/SDL_shadercross/cmake/sdlplatform.cmake
@@ -0,0 +1,106 @@
+macro(SDL_DetectCMakePlatform)
+ set(SDL_CMAKE_PLATFORM )
+ # Get the platform
+ if(WIN32)
+ set(SDL_CMAKE_PLATFORM Windows)
+ elseif(PSP)
+ set(SDL_CMAKE_PLATFORM psp)
+ elseif(APPLE)
+ if(CMAKE_SYSTEM_NAME MATCHES ".*Darwin.*")
+ set(SDL_CMAKE_PLATFORM Darwin)
+ elseif(CMAKE_SYSTEM_NAME MATCHES ".*MacOS.*")
+ set(SDL_CMAKE_PLATFORM MacosX)
+ elseif(CMAKE_SYSTEM_NAME MATCHES ".*tvOS.*")
+ set(SDL_CMAKE_PLATFORM tvOS)
+ elseif(CMAKE_SYSTEM_NAME MATCHES ".*iOS.*")
+ set(SDL_CMAKE_PLATFORM iOS)
+ endif()
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Haiku.*")
+ set(SDL_CMAKE_PLATFORM Haiku)
+ elseif(NINTENDO_3DS)
+ set(SDL_CMAKE_PLATFORM n3ds)
+ elseif(PS2)
+ set(SDL_CMAKE_PLATFORM ps2)
+ elseif(VITA)
+ set(SDL_CMAKE_PLATFORM Vita)
+ elseif(CMAKE_SYSTEM_NAME MATCHES ".*Linux")
+ set(SDL_CMAKE_PLATFORM Linux)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "kFreeBSD.*")
+ set(SDL_CMAKE_PLATFORM FreeBSD)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "kNetBSD.*|NetBSD.*")
+ set(SDL_CMAKE_PLATFORM NetBSD)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "kOpenBSD.*|OpenBSD.*")
+ set(SDL_CMAKE_PLATFORM OpenBSD)
+ elseif(CMAKE_SYSTEM_NAME MATCHES ".*GNU.*")
+ set(SDL_CMAKE_PLATFORM GNU)
+ elseif(CMAKE_SYSTEM_NAME MATCHES ".*BSDI.*")
+ set(SDL_CMAKE_PLATFORM BSDi)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "DragonFly.*|FreeBSD")
+ set(SDL_CMAKE_PLATFORM FreeBSD)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "SYSV5.*")
+ set(SDL_CMAKE_PLATFORM SYSV5)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Solaris.*|SunOS.*")
+ set(SDL_CMAKE_PLATFORM Solaris)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX.*")
+ set(SDL_CMAKE_PLATFORM HPUX)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "AIX.*")
+ set(SDL_CMAKE_PLATFORM AIX)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Minix.*")
+ set(SDL_CMAKE_PLATFORM Minix)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Android.*")
+ set(SDL_CMAKE_PLATFORM Android)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Emscripten.*")
+ set(SDL_CMAKE_PLATFORM Emscripten)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "QNX.*")
+ set(SDL_CMAKE_PLATFORM QNX)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "BeOS.*")
+ message(FATAL_ERROR "BeOS support has been removed as of SDL 2.0.2.")
+ endif()
+
+ if(SDL_CMAKE_PLATFORM)
+ string(TOUPPER "${SDL_CMAKE_PLATFORM}" _upper_platform)
+ set(${_upper_platform} TRUE)
+ else()
+ set(SDL_CMAKE_PLATFORM} "unknown")
+ endif()
+endmacro()
+
+function(SDL_DetectCPUArchitecture)
+ set(sdl_cpu_names)
+ if(APPLE AND CMAKE_OSX_ARCHITECTURES)
+ foreach(osx_arch ${CMAKE_OSX_ARCHITECTURES})
+ if(osx_arch STREQUAL "x86_64")
+ list(APPEND sdl_cpu_names "x64")
+ elseif(osx_arch STREQUAL "arm64")
+ list(APPEND sdl_cpu_names "arm64")
+ endif()
+ endforeach()
+ endif()
+
+ set(sdl_known_archs x64 x86 arm64 arm32 emscripten powerpc64 powerpc32 loongarch64)
+ if(NOT sdl_cpu_names)
+ set(found FALSE)
+ foreach(sdl_known_arch ${sdl_known_archs})
+ if(NOT found)
+ string(TOUPPER "${sdl_known_arch}" sdl_known_arch_upper)
+ set(var_name "SDL_CPU_${sdl_known_arch_upper}")
+ check_cpu_architecture(${sdl_known_arch} ${var_name})
+ if(${var_name})
+ list(APPEND sdl_cpu_names ${sdl_known_arch})
+ set(found TRUE)
+ endif()
+ endif()
+ endforeach()
+ endif()
+
+ foreach(sdl_known_arch ${sdl_known_archs})
+ string(TOUPPER "${sdl_known_arch}" sdl_known_arch_upper)
+ set(var_name "SDL_CPU_${sdl_known_arch_upper}")
+ if(sdl_cpu_names MATCHES "(^|;)${sdl_known_arch}($|;)") # FIXME: use if(IN_LIST)
+ set(${var_name} 1 PARENT_SCOPE)
+ else()
+ set(${var_name} 0 PARENT_SCOPE)
+ endif()
+ endforeach()
+ set(SDL_CPU_NAMES ${sdl_cpu_names} PARENT_SCOPE)
+endfunction()
diff --git a/thirdparty/SDL_shadercross/include/SDL3_shadercross/SDL_shadercross.h b/thirdparty/SDL_shadercross/include/SDL3_shadercross/SDL_shadercross.h
new file mode 100644
index 000000000..f3ea5c65c
--- /dev/null
+++ b/thirdparty/SDL_shadercross/include/SDL3_shadercross/SDL_shadercross.h
@@ -0,0 +1,356 @@
+/*
+ Simple DirectMedia Layer Shader Cross Compiler
+ Copyright (C) 2024 Sam Lantinga
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_SHADERCROSS_H
+#define SDL_SHADERCROSS_H
+
+#include
+#include
+#include
+
+/* Set up for C function definitions, even when using C++ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Printable format: "%d.%d.%d", MAJOR, MINOR, MICRO
+ */
+#define SDL_SHADERCROSS_MAJOR_VERSION 3
+#define SDL_SHADERCROSS_MINOR_VERSION 0
+#define SDL_SHADERCROSS_MICRO_VERSION 0
+
+typedef enum SDL_ShaderCross_IOVarType {
+ SDL_SHADERCROSS_IOVAR_TYPE_UNKNOWN,
+ SDL_SHADERCROSS_IOVAR_TYPE_INT8,
+ SDL_SHADERCROSS_IOVAR_TYPE_UINT8,
+ SDL_SHADERCROSS_IOVAR_TYPE_INT16,
+ SDL_SHADERCROSS_IOVAR_TYPE_UINT16,
+ SDL_SHADERCROSS_IOVAR_TYPE_INT32,
+ SDL_SHADERCROSS_IOVAR_TYPE_UINT32,
+ SDL_SHADERCROSS_IOVAR_TYPE_INT64,
+ SDL_SHADERCROSS_IOVAR_TYPE_UINT64,
+ SDL_SHADERCROSS_IOVAR_TYPE_FLOAT16,
+ SDL_SHADERCROSS_IOVAR_TYPE_FLOAT32,
+ SDL_SHADERCROSS_IOVAR_TYPE_FLOAT64
+} SDL_ShaderCross_IOVarType;
+
+typedef enum SDL_ShaderCross_ShaderStage
+{
+ SDL_SHADERCROSS_SHADERSTAGE_VERTEX,
+ SDL_SHADERCROSS_SHADERSTAGE_FRAGMENT,
+ SDL_SHADERCROSS_SHADERSTAGE_COMPUTE
+} SDL_ShaderCross_ShaderStage;
+
+typedef struct SDL_ShaderCross_IOVarMetadata {
+ char *name; /**< The UTF-8 name of the variable. */
+ Uint32 location; /**< The location of the variable. */
+ SDL_ShaderCross_IOVarType vector_type; /**< The vector type of the variable. */
+ Uint32 vector_size; /**< The number of components in the vector type of the variable. */
+} SDL_ShaderCross_IOVarMetadata;
+
+typedef struct SDL_ShaderCross_GraphicsShaderResourceInfo
+{
+ Uint32 num_samplers; /**< The number of samplers defined in the shader. */
+ Uint32 num_storage_textures; /**< The number of storage textures defined in the shader. */
+ Uint32 num_storage_buffers; /**< The number of storage buffers defined in the shader. */
+ Uint32 num_uniform_buffers; /**< The number of uniform buffers defined in the shader. */
+} SDL_ShaderCross_GraphicsShaderResourceInfo;
+
+typedef struct SDL_ShaderCross_GraphicsShaderMetadata
+{
+ SDL_ShaderCross_GraphicsShaderResourceInfo resource_info; /**< Sub-struct containing the resource info of the shader. */
+ Uint32 num_inputs; /**< The number of inputs defined in the shader. */
+ SDL_ShaderCross_IOVarMetadata *inputs; /**< The inputs defined in the shader. */
+ Uint32 num_outputs; /**< The number of outputs defined in the shader. */
+ SDL_ShaderCross_IOVarMetadata *outputs; /**< The outputs defined in the shader. */
+} SDL_ShaderCross_GraphicsShaderMetadata;
+
+typedef struct SDL_ShaderCross_ComputePipelineMetadata
+{
+ Uint32 num_samplers; /**< The number of samplers defined in the shader. */
+ Uint32 num_readonly_storage_textures; /**< The number of readonly storage textures defined in the shader. */
+ Uint32 num_readonly_storage_buffers; /**< The number of readonly storage buffers defined in the shader. */
+ Uint32 num_readwrite_storage_textures; /**< The number of read-write storage textures defined in the shader. */
+ Uint32 num_readwrite_storage_buffers; /**< The number of read-write storage buffers defined in the shader. */
+ Uint32 num_uniform_buffers; /**< The number of uniform buffers defined in the shader. */
+ Uint32 threadcount_x; /**< The number of threads in the X dimension. */
+ Uint32 threadcount_y; /**< The number of threads in the Y dimension. */
+ Uint32 threadcount_z; /**< The number of threads in the Z dimension. */
+} SDL_ShaderCross_ComputePipelineMetadata;
+
+typedef struct SDL_ShaderCross_SPIRV_Info
+{
+ const Uint8 *bytecode; /**< The SPIRV bytecode. */
+ size_t bytecode_size; /**< The length of the SPIRV bytecode. */
+ const char *entrypoint; /**< The entry point function name for the shader in UTF-8. */
+ SDL_ShaderCross_ShaderStage shader_stage; /**< The shader stage to transpile the shader with. */
+
+ SDL_PropertiesID props; /**< A properties ID for extensions. Should be 0 if no extensions are needed. */
+} SDL_ShaderCross_SPIRV_Info;
+
+#define SDL_SHADERCROSS_PROP_SHADER_DEBUG_ENABLE_BOOLEAN "SDL_shadercross.spirv.debug.enable"
+#define SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING "SDL_shadercross.spirv.debug.name"
+#define SDL_SHADERCROSS_PROP_SHADER_CULL_UNUSED_BINDINGS_BOOLEAN "SDL_shadercross.spirv.cull_unused_bindings"
+
+#define SDL_SHADERCROSS_PROP_SPIRV_PSSL_COMPATIBILITY_BOOLEAN "SDL_shadercross.spirv.pssl.compatibility"
+#define SDL_SHADERCROSS_PROP_SPIRV_MSL_VERSION_STRING "SDL_shadercross.spirv.msl.version"
+#define SDL_SHADERCROSS_PROP_HLSL_SKIP_SPIRV_ROUNDTRIP_BOOLEAN "SDL_shadercross.hlsl.skip_spirv_roundtrip"
+
+typedef struct SDL_ShaderCross_HLSL_Define
+{
+ char *name; /**< The define name. */
+ char *value; /**< An optional value for the define. Can be NULL. */
+} SDL_ShaderCross_HLSL_Define;
+
+typedef struct SDL_ShaderCross_HLSL_Info
+{
+ const char *source; /**< The HLSL source code for the shader. */
+ const char *entrypoint; /**< The entry point function name for the shader in UTF-8. */
+ const char *include_dir; /**< The include directory for shader code. Optional, can be NULL. */
+ SDL_ShaderCross_HLSL_Define *defines; /**< An array of defines. Optional, can be NULL. If not NULL, must be terminated with a fully NULL define struct. */
+ SDL_ShaderCross_ShaderStage shader_stage; /**< The shader stage to compile the shader with. */
+
+ SDL_PropertiesID props; /**< A properties ID for extensions. Should be 0 if no extensions are needed. */
+} SDL_ShaderCross_HLSL_Info;
+
+/**
+ * Initializes SDL_shadercross
+ *
+ * \threadsafety This should only be called once, from a single thread.
+ * \returns true on success, false otherwise.
+ */
+extern SDL_DECLSPEC bool SDLCALL SDL_ShaderCross_Init(void);
+/**
+ * De-initializes SDL_shadercross
+ *
+ * \threadsafety This should only be called once, from a single thread.
+ */
+extern SDL_DECLSPEC void SDLCALL SDL_ShaderCross_Quit(void);
+
+/**
+ * Get the supported shader formats that SPIRV cross-compilation can output
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ * \returns GPU shader formats supported by SPIRV cross-compilation.
+ */
+extern SDL_DECLSPEC SDL_GPUShaderFormat SDLCALL SDL_ShaderCross_GetSPIRVShaderFormats(void);
+
+/**
+ * Transpile to MSL code from SPIRV code.
+ *
+ * You must SDL_free the returned string once you are done with it.
+ *
+ * These are the optional properties that can be used:
+ *
+ * - `SDL_SHADERCROSS_PROP_SPIRV_MSL_VERSION_STRING`: specifies the MSL version that should be emitted. Defaults to 1.2.0.
+ *
+ * \param info a struct describing the shader to transpile.
+ * \returns an SDL_malloc'd string containing MSL code.
+ */
+extern SDL_DECLSPEC void * SDLCALL SDL_ShaderCross_TranspileMSLFromSPIRV(
+ const SDL_ShaderCross_SPIRV_Info *info);
+
+/**
+ * Transpile to HLSL code from SPIRV code.
+ *
+ * You must SDL_free the returned string once you are done with it.
+ *
+ * These are the optional properties that can be used:
+ *
+ * - `SDL_SHADERCROSS_PROP_SPIRV_PSSL_COMPATIBILITY_BOOLEAN`: generates PSSL-compatible shader.
+ *
+ * \param info a struct describing the shader to transpile.
+ * \returns an SDL_malloc'd string containing HLSL code.
+ */
+extern SDL_DECLSPEC void * SDLCALL SDL_ShaderCross_TranspileHLSLFromSPIRV(
+ const SDL_ShaderCross_SPIRV_Info *info);
+
+/**
+ * Compile DXBC bytecode from SPIRV code.
+ *
+ * You must SDL_free the returned buffer once you are done with it.
+ *
+ * \param info a struct describing the shader to transpile.
+ * \param size filled in with the bytecode buffer size.
+ * \returns an SDL_malloc'd buffer containing DXBC bytecode.
+ */
+extern SDL_DECLSPEC void * SDLCALL SDL_ShaderCross_CompileDXBCFromSPIRV(
+ const SDL_ShaderCross_SPIRV_Info *info,
+ size_t *size);
+
+/**
+ * Compile DXIL bytecode from SPIRV code.
+ *
+ * You must SDL_free the returned buffer once you are done with it.
+ *
+ * \param info a struct describing the shader to transpile.
+ * \param size filled in with the bytecode buffer size.
+ * \returns an SDL_malloc'd buffer containing DXIL bytecode.
+ */
+extern SDL_DECLSPEC void * SDLCALL SDL_ShaderCross_CompileDXILFromSPIRV(
+ const SDL_ShaderCross_SPIRV_Info *info,
+ size_t *size);
+
+/**
+ * Compile an SDL GPU shader from SPIRV code. If your shader source is HLSL, you should obtain SPIR-V bytecode from SDL_ShaderCross_CompileSPIRVFromHLSL().
+ *
+ * \param device the SDL GPU device.
+ * \param info a struct describing the shader to transpile.
+ * \param resource_info a struct describing resource info of the shader. Can be obtained from SDL_ShaderCross_ReflectGraphicsSPIRV().
+ * \param props a properties object filled in with extra shader metadata.
+ * \returns a compiled SDL_GPUShader.
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ */
+extern SDL_DECLSPEC SDL_GPUShader * SDLCALL SDL_ShaderCross_CompileGraphicsShaderFromSPIRV(
+ SDL_GPUDevice *device,
+ const SDL_ShaderCross_SPIRV_Info *info,
+ const SDL_ShaderCross_GraphicsShaderResourceInfo *resource_info,
+ SDL_PropertiesID props);
+
+/**
+ * Compile an SDL GPU compute pipeline from SPIRV code. If your shader source is HLSL, you should obtain SPIR-V bytecode from SDL_ShaderCross_CompileSPIRVFromHLSL().
+ *
+ * \param device the SDL GPU device.
+ * \param info a struct describing the shader to transpile.
+ * \param metadata a struct describing shader metadata. Can be obtained from SDL_ShaderCross_ReflectComputeSPIRV().
+ * \param props a properties object filled in with extra shader metadata.
+ * \returns a compiled SDL_GPUComputePipeline.
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ */
+extern SDL_DECLSPEC SDL_GPUComputePipeline * SDLCALL SDL_ShaderCross_CompileComputePipelineFromSPIRV(
+ SDL_GPUDevice *device,
+ const SDL_ShaderCross_SPIRV_Info *info,
+ const SDL_ShaderCross_ComputePipelineMetadata *metadata,
+ SDL_PropertiesID props);
+
+/**
+ * Reflect graphics shader info from SPIRV code. If your shader source is HLSL, you should obtain SPIR-V bytecode from SDL_ShaderCross_CompileSPIRVFromHLSL(). This must be freed with SDL_free() when you are done with the metadata.
+ *
+ * \param bytecode the SPIRV bytecode.
+ * \param bytecode_size the length of the SPIRV bytecode.
+ * \param props a properties object filled in with extra shader metadata, provided by the user.
+ * \returns A metadata struct on success, NULL otherwise. The struct must be free'd when it is no longer needed.
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ */
+extern SDL_DECLSPEC SDL_ShaderCross_GraphicsShaderMetadata * SDLCALL SDL_ShaderCross_ReflectGraphicsSPIRV(
+ const Uint8 *bytecode,
+ size_t bytecode_size,
+ SDL_PropertiesID props);
+
+/**
+ * Reflect compute pipeline info from SPIRV code. If your shader source is HLSL, you should obtain SPIR-V bytecode from SDL_ShaderCross_CompileSPIRVFromHLSL(). This must be freed with SDL_free() when you are done with the metadata.
+ *
+ * \param bytecode the SPIRV bytecode.
+ * \param bytecode_size the length of the SPIRV bytecode.
+ * \param props a properties object filled in with extra shader metadata, provided by the user.
+ * \returns A metadata struct on success, NULL otherwise.
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ */
+extern SDL_DECLSPEC SDL_ShaderCross_ComputePipelineMetadata * SDLCALL SDL_ShaderCross_ReflectComputeSPIRV(
+ const Uint8 *bytecode,
+ size_t bytecode_size,
+ SDL_PropertiesID props);
+
+/**
+ * Get the supported shader formats that HLSL cross-compilation can output
+ *
+ * \returns GPU shader formats supported by HLSL cross-compilation.
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ */
+extern SDL_DECLSPEC SDL_GPUShaderFormat SDLCALL SDL_ShaderCross_GetHLSLShaderFormats(void);
+
+/**
+ * Compile to DXBC bytecode from HLSL code via a SPIRV-Cross round trip.
+ *
+ * You must SDL_free the returned buffer once you are done with it.
+ *
+ * These are the optional properties that can be used:
+ *
+ * - `SDL_SHADERCROSS_PROP_SHADER_DEBUG_ENABLE_BOOLEAN`: allows debug info to be emitted when relevant. Should only be used with debugging tools like Renderdoc.
+ * - `SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING`: a UTF-8 name to be used with the shader. Relevant for use with debugging tools like Renderdoc.
+ * - `SDL_SHADERCROSS_PROP_SHADER_CULL_UNUSED_BINDINGS_BOOLEAN`: When true, indicates that the compiler should cull unused shader resources. This behavior is disabled by default.
+ * - `SDL_SHADERCROSS_PROP_HLSL_SKIP_SPIRV_ROUNDTRIP_BOOLEAN`: When true, the SPIRV roundtrip is skipped. This behavior is disabled by default. Do not use this property if your shader uses Structured Buffers.
+ *
+ * \param info a struct describing the shader to transpile.
+ * \param size filled in with the bytecode buffer size.
+ * \returns an SDL_malloc'd buffer containing DXBC bytecode.
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ */
+extern SDL_DECLSPEC void * SDLCALL SDL_ShaderCross_CompileDXBCFromHLSL(
+ const SDL_ShaderCross_HLSL_Info *info,
+ size_t *size);
+
+/**
+ * Compile to DXIL bytecode from HLSL code via a SPIRV-Cross round trip.
+ *
+ * You must SDL_free the returned buffer once you are done with it.
+ *
+ * These are the optional properties that can be used:
+ *
+ * - `SDL_SHADERCROSS_PROP_SHADER_DEBUG_ENABLE_BOOLEAN`: allows debug info to be emitted when relevant. Should only be used with debugging tools like Renderdoc.
+ * - `SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING`: a UTF-8 name to be used with the shader. Relevant for use with debugging tools like Renderdoc.
+ * - `SDL_SHADERCROSS_PROP_SHADER_CULL_UNUSED_BINDINGS_BOOLEAN`: when true, indicates that the compiler should cull unused shader resources. This behavior is disabled by default.
+ * - `SDL_SHADERCROSS_PROP_HLSL_SKIP_SPIRV_ROUNDTRIP_BOOLEAN`: when true, the SPIRV roundtrip is skipped. This behavior is disabled by default. Do not use this property if your shader uses Structured Buffers.
+ *
+ * \param info a struct describing the shader to transpile.
+ * \param size filled in with the bytecode buffer size.
+ * \returns an SDL_malloc'd buffer containing DXIL bytecode.
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ */
+extern SDL_DECLSPEC void * SDLCALL SDL_ShaderCross_CompileDXILFromHLSL(
+ const SDL_ShaderCross_HLSL_Info *info,
+ size_t *size);
+
+/**
+ * Compile to SPIRV bytecode from HLSL code.
+ *
+ * You must SDL_free the returned buffer once you are done with it.
+ *
+ * These are the optional properties that can be used:
+ *
+ * - `SDL_SHADERCROSS_PROP_SHADER_DEBUG_ENABLE_BOOLEAN`: allows debug info to be emitted when relevant. Should only be used with debugging tools like Renderdoc.
+ * - `SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING`: a UTF-8 name to be used with the shader. Relevant for use with debugging tools like Renderdoc.
+ * - `SDL_SHADERCROSS_PROP_SHADER_CULL_UNUSED_BINDINGS_BOOLEAN`: when true, indicates that the compiler should cull unused shader resources. This behavior is disabled by default.
+ *
+ * \param info a struct describing the shader to transpile.
+ * \param size filled in with the bytecode buffer size.
+ * \returns an SDL_malloc'd buffer containing SPIRV bytecode.
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ */
+extern SDL_DECLSPEC void * SDLCALL SDL_ShaderCross_CompileSPIRVFromHLSL(
+ const SDL_ShaderCross_HLSL_Info *info,
+ size_t *size);
+
+#ifdef __cplusplus
+}
+#endif
+#include
+
+#endif /* SDL_SHADERCROSS_H */
diff --git a/thirdparty/SDL_shadercross/src/SDL_shadercross.c b/thirdparty/SDL_shadercross/src/SDL_shadercross.c
new file mode 100644
index 000000000..a4b2e70b9
--- /dev/null
+++ b/thirdparty/SDL_shadercross/src/SDL_shadercross.c
@@ -0,0 +1,2699 @@
+/*
+ Simple DirectMedia Layer Shader Cross Compiler
+ Copyright (C) 2024 Sam Lantinga
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+*/
+
+#include
+#include
+#include
+
+/* Constants */
+#define MAX_DEFINES 64
+#define MAX_DEFINE_STRING_LENGTH 256
+
+/* Upper round X to multiple of V. V must be power of 2. */
+#define SDL_upper_multiple_power2(X, V) (((X) + (V) - 1) & ~((V) - 1))
+
+/* Win32 Type Definitions */
+
+typedef int HRESULT;
+typedef const void *LPCVOID;
+typedef size_t SIZE_T;
+typedef const char *LPCSTR;
+typedef unsigned int UINT;
+typedef unsigned long ULONG;
+typedef void *LPVOID;
+typedef void *REFIID;
+
+/* DXIL via DXC */
+#ifdef SDL_SHADERCROSS_DXC
+
+/* dxcompiler Type Definitions */
+typedef int BOOL;
+typedef void *REFCLSID;
+typedef wchar_t *LPCWSTR;
+typedef void IDxcBlobEncoding; /* hack, unused */
+typedef void IDxcBlobWide; /* hack, unused */
+typedef void IDxcIncludeHandler; /* hack, unused */
+
+/* Unlike vkd3d-utils, libdxcompiler.so does not use msabi */
+#if !defined(_WIN32)
+#define __stdcall
+#endif
+
+/* Compiler Interface, _technically_ unofficial but it's MS C++, come on */
+typedef enum DXC_OUT_KIND
+{
+ DXC_OUT_NONE = 0,
+ DXC_OUT_OBJECT = 1,
+ DXC_OUT_ERRORS = 2,
+ DXC_OUT_PDB = 3,
+ DXC_OUT_SHADER_HASH = 4,
+ DXC_OUT_DISASSEMBLY = 5,
+ DXC_OUT_HLSL = 6,
+ DXC_OUT_TEXT = 7,
+ DXC_OUT_REFLECTION = 8,
+ DXC_OUT_ROOT_SIGNATURE = 9,
+ DXC_OUT_EXTRA_OUTPUTS = 10,
+ DXC_OUT_REMARKS = 11,
+ DXC_OUT_TIME_REPORT = 12,
+ DXC_OUT_TIME_TRACE = 13,
+ DXC_OUT_LAST = DXC_OUT_TIME_TRACE,
+ DXC_OUT_NUM_ENUMS,
+ // DXC_OUT_FORCE_DWORD = 0xFFFFFFFF
+} DXC_OUT_KIND;
+
+#define DXC_CP_UTF8 65001
+#define DXC_CP_UTF16 1200
+#define DXC_CP_UTF32 12000
+/* This is for binary, ANSI-text, or to tell the compiler to try autodetecting UTF using the BOM */
+#define DXC_CP_ACP 0
+
+typedef struct DxcBuffer
+{
+ LPCVOID Ptr;
+ SIZE_T Size;
+ UINT Encoding;
+} DxcBuffer;
+
+/* *INDENT-OFF* */ // clang-format off
+
+static Uint8 IID_IDxcBlob[] = {
+ 0x08, 0xFB, 0xA5, 0x8B,
+ 0x95, 0x51,
+ 0xE2, 0x40,
+ 0xAC,
+ 0x58,
+ 0x0D,
+ 0x98,
+ 0x9C,
+ 0x3A,
+ 0x01,
+ 0x02
+};
+typedef struct IDxcBlob IDxcBlob;
+typedef struct IDxcBlobVtbl
+{
+ HRESULT(__stdcall *QueryInterface)(IDxcBlob *This, REFIID riid, void **ppvObject);
+ ULONG(__stdcall *AddRef)(IDxcBlob *This);
+ ULONG(__stdcall *Release)(IDxcBlob *This);
+
+ LPVOID(__stdcall *GetBufferPointer)(IDxcBlob *This);
+ SIZE_T(__stdcall *GetBufferSize)(IDxcBlob *This);
+} IDxcBlobVtbl;
+struct IDxcBlob
+{
+ IDxcBlobVtbl *lpVtbl;
+};
+
+static Uint8 IID_IDxcBlobUtf8[] = {
+ 0xC9, 0x36, 0xA6, 0x3D,
+ 0x71, 0xBA,
+ 0x24, 0x40,
+ 0xA3,
+ 0x01,
+ 0x30,
+ 0xCB,
+ 0xF1,
+ 0x25,
+ 0x30,
+ 0x5B
+};
+typedef struct IDxcBlobUtf8 IDxcBlobUtf8;
+typedef struct IDxcBlobUtf8Vtbl
+{
+ HRESULT(__stdcall *QueryInterface)(IDxcBlobUtf8 *This, REFIID riid, void **ppvObject);
+ ULONG(__stdcall *AddRef)(IDxcBlobUtf8 *This);
+ ULONG(__stdcall *Release)(IDxcBlobUtf8 *This);
+
+ LPVOID(__stdcall *GetBufferPointer)(IDxcBlobUtf8 *This);
+ SIZE_T(__stdcall *GetBufferSize)(IDxcBlobUtf8 *This);
+
+ HRESULT(__stdcall *GetEncoding)(IDxcBlobUtf8 *This, BOOL *pKnown, Uint32 *pCodePage);
+
+ LPCSTR(__stdcall *GetStringPointer)(IDxcBlobUtf8 *This);
+ SIZE_T(__stdcall *GetStringLength)(IDxcBlobUtf8 *This);
+} IDxcBlobUtf8Vtbl;
+struct IDxcBlobUtf8
+{
+ IDxcBlobUtf8Vtbl *lpVtbl;
+};
+
+static Uint8 IID_IDxcResult[] = {
+ 0xDA, 0x6C, 0x34, 0x58,
+ 0xE7, 0xDD,
+ 0x97, 0x44,
+ 0x94,
+ 0x61,
+ 0x6F,
+ 0x87,
+ 0xAF,
+ 0x5E,
+ 0x06,
+ 0x59
+};
+typedef struct IDxcResult IDxcResult;
+typedef struct IDxcResultVtbl
+{
+ HRESULT(__stdcall *QueryInterface)(IDxcResult *This, REFIID riid, void **ppvObject);
+ ULONG(__stdcall *AddRef)(IDxcResult *This);
+ ULONG(__stdcall *Release)(IDxcResult *This);
+
+ HRESULT(__stdcall *GetStatus)(IDxcResult *This, HRESULT *pStatus);
+ HRESULT(__stdcall *GetResult)(IDxcResult *This, IDxcBlob **ppResult);
+ HRESULT(__stdcall *GetErrorBuffer)(IDxcResult *This, IDxcBlobEncoding **ppErrors);
+
+ BOOL(__stdcall *HasOutput)(IDxcResult *This, DXC_OUT_KIND dxcOutKind);
+ HRESULT(__stdcall *GetOutput)(
+ IDxcResult *This,
+ DXC_OUT_KIND dxcOutKind,
+ REFIID iid,
+ void **ppvObject,
+ IDxcBlobWide **ppOutputName
+ );
+ Uint32(__stdcall *GetNumOutputs)(IDxcResult *This);
+ DXC_OUT_KIND(__stdcall *GetOutputByIndex)(IDxcResult *This, Uint32 Index);
+ DXC_OUT_KIND(__stdcall *PrimaryOutput)(IDxcResult *This);
+} IDxcResultVtbl;
+struct IDxcResult
+{
+ IDxcResultVtbl *lpVtbl;
+};
+
+static struct
+{
+ Uint32 Data1;
+ Uint16 Data2;
+ Uint16 Data3;
+ Uint8 Data4[8];
+} CLSID_DxcCompiler = {
+ .Data1 = 0x73e22d93,
+ .Data2 = 0xe6ce,
+ .Data3 = 0x47f3,
+ .Data4 = { 0xb5, 0xbf, 0xf0, 0x66, 0x4f, 0x39, 0xc1, 0xb0 }
+};
+static Uint8 IID_IDxcCompiler3[] = {
+ 0x87, 0x46, 0x8B, 0x22,
+ 0x6A, 0x5A,
+ 0x30, 0x47,
+ 0x90,
+ 0x0C,
+ 0x97,
+ 0x02,
+ 0xB2,
+ 0x20,
+ 0x3F,
+ 0x54
+};
+typedef struct IDxcCompiler3 IDxcCompiler3;
+typedef struct IDxcCompiler3Vtbl
+{
+ HRESULT(__stdcall *QueryInterface)(IDxcCompiler3 *This, REFIID riid, void **ppvObject);
+ ULONG(__stdcall *AddRef)(IDxcCompiler3 *This);
+ ULONG(__stdcall *Release)(IDxcCompiler3 *This);
+
+ HRESULT(__stdcall *Compile)(
+ IDxcCompiler3 *This,
+ const DxcBuffer *pSource,
+ LPCWSTR *pArguments,
+ Uint32 argCount,
+ IDxcIncludeHandler *pIncludeHandler,
+ REFIID riid,
+ LPVOID *ppResult
+ );
+
+ HRESULT(__stdcall *Disassemble)(
+ IDxcCompiler3 *This,
+ const DxcBuffer *pObject,
+ REFIID riid,
+ LPVOID *ppResult
+ );
+} IDxcCompiler3Vtbl;
+struct IDxcCompiler3
+{
+ const IDxcCompiler3Vtbl *lpVtbl;
+};
+
+// We need all this DxcUtils garbage for DXC include dir support. Thanks Microsoft!
+typedef struct IMalloc IMalloc;
+typedef struct IStream IStream;
+typedef struct DxcDefine DxcDefine;
+typedef struct IDxcCompilerArgs IDxcCompilerArgs;
+
+static struct
+{
+ Uint32 Data1;
+ Uint16 Data2;
+ Uint16 Data3;
+ Uint8 Data4[8];
+} CLSID_DxcUtils = {
+ .Data1 = 0x6245d6af,
+ .Data2 = 0x66e0,
+ .Data3 = 0x48fd,
+ .Data4 = {0x80, 0xb4, 0x4d, 0x27, 0x17, 0x96, 0x74, 0x8c}};
+static Uint8 IID_IDxcUtils[] = {
+ 0xcb, 0xc4, 0x05, 0x46,
+ 0x19, 0x20,
+ 0x2a, 0x49,
+ 0xad,
+ 0xa4,
+ 0x65,
+ 0xf2,
+ 0x0b,
+ 0xb7,
+ 0xd6,
+ 0x7f
+};
+typedef struct IDxcUtilsVtbl
+{
+ HRESULT (__stdcall *QueryInterface)(void *pSelf, REFIID riid, void **ppvObject);
+ ULONG (__stdcall *AddRef)(void *pSelf);
+ ULONG (__stdcall *Release)(void *pSelf);
+
+ HRESULT (__stdcall *CreateBlobFromBlob)(void *pSelf, IDxcBlob *pBlob, UINT offset, UINT length, IDxcBlob **ppResult);
+ HRESULT (__stdcall *CreateBlobFromPinned)(void *pSelf, LPCVOID pData, UINT size, UINT codePage, IDxcBlobEncoding **pBlobEncoding);
+ HRESULT (__stdcall *MoveToBlob)(void *pSelf, LPCVOID pData, IMalloc *pIMalloc, UINT size, UINT codePage, IDxcBlobEncoding **pBlobEncoding);
+ HRESULT (__stdcall *CreateBlob)(void *pSelf, LPCVOID pData, UINT size, UINT codePage, IDxcBlobEncoding **pBlobEncoding);
+ HRESULT (__stdcall *LoadFile)(void *pSelf, LPCWSTR pFileName, UINT *pCodePage, IDxcBlobEncoding **pBlobEncoding);
+ HRESULT (__stdcall *CreateReadOnlyStreamFromBlob)(void *pSelf, IDxcBlob *pBlob, IStream **ppStream);
+ HRESULT (__stdcall *CreateDefaultIncludeHandler)(void *pSelf, IDxcIncludeHandler **ppResult);
+ HRESULT (__stdcall *GetBlobAsUtf8)(void *pSelf, IDxcBlob *pBlob, IDxcBlobUtf8 **pBlobEncoding);
+ HRESULT (__stdcall *GetBlobAsWide)(void *pSelf, IDxcBlob *pBlob, IDxcBlobWide **pBlobEncoding);
+ HRESULT (__stdcall *GetDxilContainerPart)(void *pSelf, const DxcBuffer *pShader, UINT DxcPart, void **ppPartData, UINT *pPartSizeInBytes);
+ HRESULT (__stdcall *CreateReflection)(void *pSelf, const DxcBuffer *pData, REFIID iid, void **ppvReflection);
+ HRESULT (__stdcall *BuildArguments)(void *pSelf, LPCWSTR pSourceName, LPCWSTR pEntryPoint, LPCWSTR pTargetProfile, LPCWSTR *pArguments, UINT argCount, const DxcDefine *pDefines, UINT defineCount, IDxcCompilerArgs **ppArgs);
+ HRESULT (__stdcall *GetPDBContents)(void *pSelf, IDxcBlob *pPDBBlob, IDxcBlob **ppHash, IDxcBlob **ppContainer);
+} IDxcUtilsVtbl;
+
+typedef struct IDxcUtils IDxcUtils;
+struct IDxcUtils
+{
+ const IDxcUtilsVtbl *lpVtbl;
+};
+
+/* *INDENT-ON* */ // clang-format on
+
+/* DXCompiler */
+#if defined(SDL_PLATFORM_XBOXONE) || defined(SDL_PLATFORM_XBOXSERIES) || defined(SDL_PLATFORM_WINDOWS)
+extern HRESULT __stdcall DxcCreateInstance(REFCLSID rclsid, REFIID riid, LPVOID* ppv);
+#else
+extern HRESULT DxcCreateInstance(REFCLSID rclsid, REFIID riid, LPVOID *ppv);
+#endif
+
+#endif /* SDL_SHADERCROSS_DXC */
+
+static void *SDL_ShaderCross_INTERNAL_CompileUsingDXC(
+ const SDL_ShaderCross_HLSL_Info *info,
+ bool spirv,
+ size_t *size) // filled in with number of bytes of returned buffer
+{
+#ifdef SDL_SHADERCROSS_DXC
+ DxcBuffer source;
+ IDxcResult *dxcResult;
+ IDxcBlob *blob;
+ IDxcBlobUtf8 *errors;
+ size_t entryPointLength = SDL_utf8strlen(info->entrypoint) + 1;
+ wchar_t *entryPointUtf16 = NULL;
+ size_t includeDirLength = 0;
+ wchar_t *includeDirUtf16 = NULL;
+ wchar_t *nameUtf16 = NULL;
+ wchar_t **defineStringsUtf16 = NULL;
+ size_t numDefineStrings = 0;
+ HRESULT ret;
+
+ /* Non-static DxcInstance, since the functions we call on it are not thread-safe */
+ IDxcCompiler3 *dxcInstance = NULL;
+ IDxcUtils *utils = NULL;
+ IDxcIncludeHandler *includeHandler = NULL;
+
+ DxcCreateInstance(
+ &CLSID_DxcCompiler,
+ IID_IDxcCompiler3,
+ (void **)&dxcInstance);
+
+ DxcCreateInstance(
+ &CLSID_DxcUtils,
+ &IID_IDxcUtils,
+ (void **)(&utils));
+
+ if (dxcInstance == NULL) {
+ SDL_SetError("%s", "Could not create DXC instance!");
+ return NULL;
+ }
+
+ if (utils == NULL) {
+ SDL_SetError("%s", "Could not create DXC utils instance!");
+ dxcInstance->lpVtbl->Release(dxcInstance);
+ return NULL;
+ }
+
+ utils->lpVtbl->CreateDefaultIncludeHandler(utils, &includeHandler);
+ if (includeHandler == NULL) {
+ SDL_SetError("%s", "Failed to create a default include handler!");
+ dxcInstance->lpVtbl->Release(dxcInstance);
+ utils->lpVtbl->Release(utils);
+ return NULL;
+ }
+
+ entryPointUtf16 = (wchar_t *)SDL_iconv_string("WCHAR_T", "UTF-8", info->entrypoint, entryPointLength);
+ if (entryPointUtf16 == NULL) {
+ SDL_SetError("%s", "Failed to convert entrypoint to WCHAR_T!");
+ dxcInstance->lpVtbl->Release(dxcInstance);
+ utils->lpVtbl->Release(utils);
+ return NULL;
+ }
+
+ if (info->defines != NULL) {
+ for (Uint32 i = 0; i < MAX_DEFINES; i += 1) {
+ if (info->defines[i].name == NULL) {
+ break;
+ }
+ numDefineStrings += 1;
+ }
+ }
+
+ char defineString[MAX_DEFINE_STRING_LENGTH];
+ defineStringsUtf16 = SDL_malloc(sizeof(LPCWSTR) * numDefineStrings);
+ for (Uint32 i = 0; i < numDefineStrings; i += 1) {
+ if (info->defines[i].value == NULL) {
+ SDL_snprintf(defineString, MAX_DEFINE_STRING_LENGTH, "-D%s=%s", info->defines[i].name, "1");
+ } else {
+ SDL_snprintf(defineString, MAX_DEFINE_STRING_LENGTH, "-D%s=%s", info->defines[i].name, info->defines[i].value);
+ }
+
+ defineStringsUtf16[i] = (wchar_t *)SDL_iconv_string("WCHAR_T", "UTF-8", defineString, MAX_DEFINE_STRING_LENGTH);
+ }
+
+ LPCWSTR *args = SDL_malloc(sizeof(LPCWSTR) * (numDefineStrings + 13));
+ Uint32 argCount = 0;
+
+ for (Uint32 i = 0; i < numDefineStrings; i += 1) {
+ args[argCount++] = defineStringsUtf16[i];
+ }
+
+ args[argCount++] = (LPCWSTR)L"-E";
+ args[argCount++] = (LPCWSTR)entryPointUtf16;
+
+ if (info->include_dir != NULL) {
+ includeDirLength = SDL_utf8strlen(info->include_dir) + 1;
+ includeDirUtf16 = (wchar_t *)SDL_iconv_string("WCHAR_T", "UTF-8", info->include_dir, includeDirLength);
+
+ if (includeDirUtf16 == NULL) {
+ SDL_SetError("%s", "Failed to convert include dir to WCHAR_T!");
+ dxcInstance->lpVtbl->Release(dxcInstance);
+ utils->lpVtbl->Release(utils);
+ SDL_free(entryPointUtf16);
+ for (Uint32 i = 0; i < numDefineStrings; i += 1) {
+ SDL_free(defineStringsUtf16[i]);
+ }
+ return NULL;
+ }
+ args[argCount++] = (LPCWSTR)L"-I";
+ args[argCount++] = includeDirUtf16;
+ }
+
+ source.Ptr = info->source;
+ source.Size = SDL_strlen(info->source) + 1;
+ source.Encoding = DXC_CP_ACP;
+
+ if (info->shader_stage == SDL_SHADERCROSS_SHADERSTAGE_VERTEX) {
+ args[argCount++] = (LPCWSTR)L"-T";
+ args[argCount++] = (LPCWSTR)L"vs_6_0";
+ } else if (info->shader_stage == SDL_SHADERCROSS_SHADERSTAGE_FRAGMENT) {
+ args[argCount++] = (LPCWSTR)L"-T";
+ args[argCount++] = (LPCWSTR)L"ps_6_0";
+ } else { // compute
+ args[argCount++] = (LPCWSTR)L"-T";
+ args[argCount++] = (LPCWSTR)L"cs_6_0";
+ }
+
+ if (spirv) {
+ args[argCount++] = (LPCWSTR)L"-spirv";
+ args[argCount++] = (LPCWSTR)L"-fspv-flatten-resource-arrays";
+
+ if (!SDL_GetBooleanProperty(info->props, SDL_SHADERCROSS_PROP_SHADER_CULL_UNUSED_BINDINGS_BOOLEAN, false))
+ {
+ args[argCount++] = (LPCWSTR)L"-fspv-preserve-bindings";
+ }
+
+ args[argCount++] = (LPCWSTR)L"-fspv-preserve-interface";
+ }
+
+ if (SDL_GetBooleanProperty(info->props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_ENABLE_BOOLEAN, false)) {
+ if (spirv) {
+ // https://github.com/microsoft/DirectXShaderCompiler/blob/main/docs/SPIR-V.rst#debugging
+ args[argCount++] = (LPCWSTR)L"-fspv-debug=vulkan-with-source";
+ } else {
+ // https://github.com/microsoft/DirectXShaderCompiler/blob/main/docs/SourceLevelDebuggingHLSL.rst#command-line-options
+ args[argCount++] = (LPCWSTR)L"-Zi";
+ }
+ }
+
+ if (SDL_HasProperty(info->props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING)) {
+ const char *debugName = SDL_GetStringProperty(info->props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING, NULL);
+ nameUtf16 = (wchar_t *)SDL_iconv_string("WCHAR_T", "UTF-8", debugName, SDL_utf8strlen(debugName) + 1);
+ if (nameUtf16 != NULL) {
+ args[argCount++] = nameUtf16; // a bare string inserted into the arguments is treated as the source file name
+ }
+ }
+
+#if defined(SDL_PLATFORM_XBOXONE) || defined(SDL_PLATFORM_XBOXSERIES)
+ args[argCount++] = L"-D__XBOX_DISABLE_PRECOMPILE=1";
+#endif
+
+ ret = dxcInstance->lpVtbl->Compile(
+ dxcInstance,
+ &source,
+ args,
+ argCount,
+ includeHandler,
+ IID_IDxcResult,
+ (void **)&dxcResult);
+
+ SDL_free(args);
+ SDL_free(entryPointUtf16);
+ for (Uint32 i = 0; i < numDefineStrings; i += 1) {
+ SDL_free(defineStringsUtf16[i]);
+ }
+ SDL_free(defineStringsUtf16);
+ if (includeDirUtf16 != NULL) {
+ SDL_free(includeDirUtf16);
+ }
+ if (nameUtf16 != NULL) {
+ SDL_free(nameUtf16);
+ }
+
+ if (ret < 0) {
+ SDL_SetError("IDxcShaderCompiler3::Compile failed: %X", ret);
+ dxcInstance->lpVtbl->Release(dxcInstance);
+ utils->lpVtbl->Release(utils);
+ return NULL;
+ } else if (dxcResult == NULL) {
+ SDL_SetError("%s", "HLSL compilation failed with no IDxcResult");
+ dxcInstance->lpVtbl->Release(dxcInstance);
+ utils->lpVtbl->Release(utils);
+ return NULL;
+ }
+
+ ret = dxcResult->lpVtbl->GetOutput(dxcResult,
+ DXC_OUT_OBJECT,
+ IID_IDxcBlob,
+ (void **)&blob,
+ NULL);
+
+ HRESULT retStatus;
+ if (ret < 0 || dxcResult->lpVtbl->GetStatus(dxcResult, &retStatus) < 0 || retStatus < 0 ) {
+ // Compilation failed, display errors
+ dxcResult->lpVtbl->GetOutput(
+ dxcResult,
+ DXC_OUT_ERRORS,
+ IID_IDxcBlobUtf8,
+ (void **)&errors,
+ NULL);
+
+ if (errors != NULL && errors->lpVtbl->GetBufferSize(errors) != 0) {
+ SDL_SetError(
+ "HLSL compilation failed: %s",
+ (char *)errors->lpVtbl->GetBufferPointer(errors));
+ } else {
+ SDL_SetError("%s", "Compilation failed with unknown error");
+ }
+
+ // teardown
+ dxcResult->lpVtbl->Release(dxcResult);
+ dxcInstance->lpVtbl->Release(dxcInstance);
+ utils->lpVtbl->Release(utils);
+ return NULL;
+ }
+
+ // If compilation succeeded, but there are errors, those are warnings
+ dxcResult->lpVtbl->GetOutput(
+ dxcResult,
+ DXC_OUT_ERRORS,
+ IID_IDxcBlobUtf8,
+ (void **)&errors,
+ NULL);
+
+ if (errors != NULL && errors->lpVtbl->GetBufferSize(errors) != 0) {
+ SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION, "HLSL compiled with warnings: %s",
+ (char *)errors->lpVtbl->GetBufferPointer(errors));
+ }
+
+ *size = blob->lpVtbl->GetBufferSize(blob);
+ void *buffer = SDL_malloc(*size);
+ SDL_memcpy(buffer, blob->lpVtbl->GetBufferPointer(blob), *size);
+
+ blob->lpVtbl->Release(blob);
+ dxcResult->lpVtbl->Release(dxcResult);
+ dxcInstance->lpVtbl->Release(dxcInstance);
+ utils->lpVtbl->Release(utils);
+
+ return buffer;
+#else
+ SDL_SetError("%s", "Shadercross was not built with DXC support, cannot compile using DXC!");
+ return NULL;
+#endif /* SDL_SHADERCROSS_DXC */
+}
+
+void *SDL_ShaderCross_CompileDXILFromHLSL(
+ const SDL_ShaderCross_HLSL_Info *info,
+ size_t *size)
+{
+ if (info == NULL) {
+ SDL_InvalidParamError("info");
+ return NULL;
+ }
+
+#if SDL_PLATFORM_GDK
+ return SDL_ShaderCross_INTERNAL_CompileUsingDXC(info, false, size);
+#else
+
+ if (SDL_GetBooleanProperty(info->props, SDL_SHADERCROSS_PROP_HLSL_SKIP_SPIRV_ROUNDTRIP_BOOLEAN, false)) {
+ return SDL_ShaderCross_INTERNAL_CompileUsingDXC(info, false, size);
+ }
+
+ // Roundtrip to SPIR-V to support things like Structured Buffers.
+ size_t spirvSize;
+ void *spirv = SDL_ShaderCross_CompileSPIRVFromHLSL(
+ info,
+ &spirvSize);
+
+ if (spirv == NULL) {
+ return NULL;
+ }
+
+ SDL_ShaderCross_SPIRV_Info spirvInfo;
+ spirvInfo.bytecode = spirv;
+ spirvInfo.bytecode_size = spirvSize;
+ spirvInfo.entrypoint = info->entrypoint;
+ spirvInfo.shader_stage = info->shader_stage;
+ spirvInfo.props = info->props;
+
+ void *translatedSource = SDL_ShaderCross_TranspileHLSLFromSPIRV(
+ &spirvInfo);
+
+ SDL_free(spirv);
+ if (translatedSource == NULL) {
+ return NULL;
+ }
+
+ SDL_ShaderCross_HLSL_Info translatedHlslInfo;
+ SDL_memcpy(&translatedHlslInfo, info, sizeof(SDL_ShaderCross_HLSL_Info));
+ translatedHlslInfo.source = translatedSource;
+
+ void *result = SDL_ShaderCross_INTERNAL_CompileUsingDXC(
+ &translatedHlslInfo,
+ false,
+ size);
+ SDL_free(translatedSource);
+ return result;
+#endif
+}
+
+void *SDL_ShaderCross_CompileSPIRVFromHLSL(
+ const SDL_ShaderCross_HLSL_Info *info,
+ size_t *size)
+{
+ if (info == NULL) {
+ SDL_InvalidParamError("info");
+ return NULL;
+ }
+
+ return SDL_ShaderCross_INTERNAL_CompileUsingDXC(
+ info,
+ true,
+ size);
+}
+
+/* DXBC via FXC */
+
+/* d3dcompiler Type Definitions */
+typedef void D3D_SHADER_MACRO; /* hack, unused */
+typedef void ID3DInclude; /* hack, unused */
+
+/* Dynamic Library / Linking */
+#ifdef D3DCOMPILER_DLL
+#undef D3DCOMPILER_DLL
+#endif
+#if defined(_WIN32)
+#define D3DCOMPILER_DLL "d3dcompiler_47.dll"
+#elif defined(__APPLE__)
+#define D3DCOMPILER_DLL "libvkd3d-utils.1.dylib"
+#else
+#define D3DCOMPILER_DLL "libvkd3d-utils.so.1"
+#endif
+
+#ifdef SDL_ELF_NOTE_DLOPEN
+SDL_ELF_NOTE_DLOPEN(
+ "dxbc",
+ "Create DXBC shaders from HLSL",
+ SDL_ELF_NOTE_DLOPEN_PRIORITY_SUGGESTED,
+ D3DCOMPILER_DLL
+)
+#endif
+
+/* __stdcall declaration, largely taken from vkd3d_windows.h */
+#ifndef _WIN32
+#ifdef __stdcall
+#undef __stdcall
+#endif
+#if defined(__x86_64__) || defined(__arm64__)
+#define __stdcall __attribute__((ms_abi))
+#else
+#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) || defined(__APPLE__)
+#define __stdcall __attribute__((__stdcall__)) __attribute__((__force_align_arg_pointer__))
+#else
+#define __stdcall __attribute__((__stdcall__))
+#endif
+#endif
+#endif
+
+/* ID3DBlob definition, used by both D3DCompiler and DXCompiler */
+typedef struct ID3DBlob ID3DBlob;
+typedef struct ID3DBlobVtbl
+{
+ HRESULT(__stdcall *QueryInterface)
+ (ID3DBlob *This, REFIID riid, void **ppvObject);
+ ULONG(__stdcall *AddRef)
+ (ID3DBlob *This);
+ ULONG(__stdcall *Release)
+ (ID3DBlob *This);
+ LPVOID(__stdcall *GetBufferPointer)
+ (ID3DBlob *This);
+ SIZE_T(__stdcall *GetBufferSize)
+ (ID3DBlob *This);
+} ID3DBlobVtbl;
+struct ID3DBlob
+{
+ const ID3DBlobVtbl *lpVtbl;
+};
+#define ID3D10Blob ID3DBlob
+
+/* D3DCompiler */
+static SDL_SharedObject *d3dcompiler_dll = NULL;
+
+typedef HRESULT(__stdcall *pfn_D3DCompile)(
+ LPCVOID pSrcData,
+ SIZE_T SrcDataSize,
+ LPCSTR pSourceName,
+ const D3D_SHADER_MACRO *pDefines,
+ ID3DInclude *pInclude,
+ LPCSTR pEntrypoint,
+ LPCSTR pTarget,
+ UINT Flags1,
+ UINT Flags2,
+ ID3DBlob **ppCode,
+ ID3DBlob **ppErrorMsgs);
+
+static pfn_D3DCompile SDL_D3DCompile = NULL;
+
+// FIXME: includes and defines
+static ID3DBlob *SDL_ShaderCross_INTERNAL_CompileDXBC(
+ const char *hlslSource,
+ const char *entrypoint,
+ const char *shaderProfile,
+ bool enableDebug)
+{
+ ID3DBlob *blob;
+ ID3DBlob *errorBlob;
+ HRESULT ret;
+
+ if (SDL_D3DCompile == NULL) {
+ SDL_SetError("%s", "Could not load D3DCompile!");
+ return NULL;
+ }
+
+ ret = SDL_D3DCompile(
+ hlslSource,
+ SDL_strlen(hlslSource),
+ NULL,
+ NULL,
+ NULL,
+ entrypoint,
+ shaderProfile,
+ enableDebug ? 1 : 0, // D3DCOMPILE_DEBUG = 1
+ 0,
+ &blob,
+ &errorBlob);
+
+ if (ret < 0) {
+ if (errorBlob != NULL) {
+ SDL_SetError(
+ "HLSL compilation failed: %s",
+ (char *)errorBlob->lpVtbl->GetBufferPointer(errorBlob));
+ } else {
+ SDL_SetError("HLSL compilation failed for an unknown reason.");
+ }
+ return NULL;
+ }
+
+ return blob;
+}
+
+void *SDL_ShaderCross_INTERNAL_CompileDXBCFromHLSL(
+ const SDL_ShaderCross_HLSL_Info *info,
+ bool enableRoundtrip,
+ size_t *size) // filled in with number of bytes of returned buffer
+{
+ char *transpiledSource = NULL;
+
+ if (enableRoundtrip) {
+ // Need to roundtrip to SM 5.1
+ size_t spirv_size;
+ void *spirv = SDL_ShaderCross_CompileSPIRVFromHLSL(
+ info,
+ &spirv_size);
+
+ if (spirv == NULL) {
+ return NULL;
+ }
+
+ SDL_ShaderCross_SPIRV_Info spirvInfo;
+ spirvInfo.bytecode = spirv;
+ spirvInfo.bytecode_size = spirv_size;
+ spirvInfo.entrypoint = info->entrypoint;
+ spirvInfo.shader_stage = info->shader_stage;
+ spirvInfo.props = info->props;
+
+ transpiledSource = SDL_ShaderCross_TranspileHLSLFromSPIRV(
+ &spirvInfo);
+ SDL_free(spirv);
+
+ if (transpiledSource == NULL) {
+ return NULL;
+ }
+ }
+
+ const char *shaderProfile;
+ if (info->shader_stage == SDL_SHADERCROSS_SHADERSTAGE_VERTEX) {
+ shaderProfile = "vs_5_1";
+ } else if (info->shader_stage == SDL_SHADERCROSS_SHADERSTAGE_FRAGMENT) {
+ shaderProfile = "ps_5_1";
+ } else { // compute
+ shaderProfile = "cs_5_1";
+ }
+
+ ID3DBlob *blob = SDL_ShaderCross_INTERNAL_CompileDXBC(
+ transpiledSource != NULL ? transpiledSource : info->source,
+ info->entrypoint,
+ shaderProfile,
+ SDL_GetBooleanProperty(info->props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_ENABLE_BOOLEAN, false));
+
+ if (blob == NULL) {
+ SDL_free(transpiledSource);
+ *size = 0;
+ return NULL;
+ }
+
+ *size = blob->lpVtbl->GetBufferSize(blob);
+ void *buffer = SDL_malloc(*size);
+ SDL_memcpy(buffer, blob->lpVtbl->GetBufferPointer(blob), *size);
+ blob->lpVtbl->Release(blob);
+
+ if (transpiledSource != NULL) {
+ SDL_free(transpiledSource);
+ }
+
+ return buffer;
+}
+
+// Returns raw byte buffer
+void *SDL_ShaderCross_CompileDXBCFromHLSL(
+ const SDL_ShaderCross_HLSL_Info *info,
+ size_t *size) // filled in with number of bytes of returned buffer
+{
+ if (info == NULL) {
+ SDL_InvalidParamError("info");
+ return NULL;
+ }
+
+ return SDL_ShaderCross_INTERNAL_CompileDXBCFromHLSL(
+ info,
+ !SDL_GetBooleanProperty(info->props, SDL_SHADERCROSS_PROP_HLSL_SKIP_SPIRV_ROUNDTRIP_BOOLEAN, false),
+ size);
+}
+
+#include
+
+#define SPVC_ERROR(func) \
+ SDL_SetError(#func " failed: %s", spvc_context_get_last_error_string(context))
+
+static int parse_version_number(const char* str)
+{
+ unsigned major, minor, patch;
+ if (SDL_sscanf(str, "%u.%u.%u", &major, &minor, &patch) == 3) {
+ return (major * 10000) + (minor) * 100 + patch;
+ }
+ return -1;
+}
+
+typedef struct SPIRVTranspileContext {
+ spvc_context context;
+ const char *translated_source;
+ const char *cleansed_entrypoint;
+} SPIRVTranspileContext;
+
+static void SDL_ShaderCross_INTERNAL_DestroyTranspileContext(
+ SPIRVTranspileContext *context)
+{
+ spvc_context_destroy(context->context);
+ SDL_free(context);
+}
+
+static SPIRVTranspileContext *SDL_ShaderCross_INTERNAL_TranspileFromSPIRV(
+ spvc_backend backend,
+ unsigned shadermodel, // only used for HLSL
+ SDL_ShaderCross_ShaderStage shaderStage, // only used for MSL
+ const Uint8 *code,
+ size_t codeSize,
+ const char *entrypoint,
+ SDL_PropertiesID props
+) {
+ spvc_result result;
+ spvc_context context = NULL;
+ spvc_parsed_ir ir = NULL;
+ spvc_compiler compiler = NULL;
+ spvc_compiler_options options = NULL;
+ SPIRVTranspileContext *transpileContext = NULL;
+ const char *translated_source;
+ const char *cleansed_entrypoint;
+
+ /* Create the SPIRV-Cross context */
+ result = spvc_context_create(&context);
+ if (result < 0) {
+ SDL_SetError("spvc_context_create failed: %X", result);
+ return NULL;
+ }
+
+ /* Parse the SPIR-V into IR */
+ result = spvc_context_parse_spirv(context, (const SpvId *)code, codeSize / sizeof(SpvId), &ir);
+ if (result < 0) {
+ SPVC_ERROR(spvc_context_parse_spirv);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ /* Create the cross-compiler */
+ result = spvc_context_create_compiler(context, backend, ir, SPVC_CAPTURE_MODE_TAKE_OWNERSHIP, &compiler);
+ if (result < 0) {
+ SPVC_ERROR(spvc_context_create_compiler);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ /* Set up the cross-compiler options */
+ result = spvc_compiler_create_compiler_options(compiler, &options);
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_create_compiler_options);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ if (backend == SPVC_BACKEND_HLSL) {
+ spvc_compiler_options_set_uint(options, SPVC_COMPILER_OPTION_HLSL_SHADER_MODEL, shadermodel);
+ spvc_compiler_options_set_uint(options, SPVC_COMPILER_OPTION_HLSL_NONWRITABLE_UAV_TEXTURE_AS_SRV, 1);
+ spvc_compiler_options_set_uint(options, SPVC_COMPILER_OPTION_HLSL_FLATTEN_MATRIX_VERTEX_INPUT_SEMANTICS, 1);
+ spvc_compiler_options_set_bool(options, SPVC_COMPILER_OPTION_HLSL_USE_ENTRY_POINT_NAME, !SDL_GetBooleanProperty(props, SDL_SHADERCROSS_PROP_SPIRV_PSSL_COMPATIBILITY_BOOLEAN, false));
+ spvc_compiler_options_set_bool(options, SPVC_COMPILER_OPTION_HLSL_POINT_SIZE_COMPAT, true);
+ }
+
+ SpvExecutionModel executionModel;
+ if (shaderStage == SDL_SHADERCROSS_SHADERSTAGE_VERTEX) {
+ executionModel = SpvExecutionModelVertex;
+ } else if (shaderStage == SDL_SHADERCROSS_SHADERSTAGE_FRAGMENT) {
+ executionModel = SpvExecutionModelFragment;
+ } else { // compute
+ if (backend == SPVC_BACKEND_HLSL) {
+ executionModel = SpvExecutionModelKernel;
+ } else {
+ executionModel = SpvExecutionModelGLCompute;
+ }
+ }
+
+ if (backend == SPVC_BACKEND_MSL) {
+ const char *_mslVersion = SDL_GetStringProperty(props, SDL_SHADERCROSS_PROP_SPIRV_MSL_VERSION_STRING, "1.2.0");
+ int mslVersion = parse_version_number(_mslVersion);
+ if (mslVersion == - 1) {
+ SDL_SetError("failed to parse MSL version string \"%s\"", _mslVersion);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+ spvc_compiler_options_set_uint(options, SPVC_COMPILER_OPTION_MSL_VERSION, mslVersion);
+ }
+
+ // MSL doesn't have descriptor sets, so we have to set up index remapping
+ if (backend == SPVC_BACKEND_MSL && shaderStage != SDL_SHADERCROSS_SHADERSTAGE_COMPUTE) {
+ spvc_resources resources;
+ spvc_reflected_resource *reflected_resources;
+ size_t num_texture_samplers;
+ size_t num_storage_textures;
+ size_t num_storage_buffers;
+ size_t num_uniform_buffers;
+ size_t num_separate_samplers = 0;
+ size_t num_separate_images = 0;
+
+ spvc_msl_resource_binding_2 bufferBindings[32];
+ SDL_zeroa(bufferBindings);
+ Uint32 numBufferBindings = 0;
+
+ spvc_msl_resource_binding_2 textureBindings[32];
+ SDL_zeroa(textureBindings);
+ Uint32 numTextureBindings = 0;
+
+ spvc_set active_variables;
+ result = spvc_compiler_get_active_interface_variables(compiler, &active_variables);
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_get_active_interface_variables);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ result = spvc_compiler_create_shader_resources_for_active_variables(compiler, &resources, active_variables);
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_create_shader_resources_for_active_variables);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // Combined texture-samplers
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_SAMPLED_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_texture_samplers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // If source is HLSL, we might have separate images and samplers
+ if (num_texture_samplers == 0) {
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_SEPARATE_SAMPLERS,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_separate_samplers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+ num_texture_samplers = num_separate_samplers;
+ }
+
+ for (size_t i = 0; i < num_texture_samplers; i += 1) {
+ if (!spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet) || !spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding)) {
+ SDL_SetError("%s", "Shader resources must have descriptor set and binding index!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+ if (!(descriptor_set_index == 0 || descriptor_set_index == 2)) {
+ SDL_SetError("%s", "Descriptor set index for graphics texture-sampler must be 0 or 2!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int binding_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding);
+
+ textureBindings[numTextureBindings].stage = executionModel;
+ textureBindings[numTextureBindings].desc_set = descriptor_set_index;
+ textureBindings[numTextureBindings].binding = binding_index;
+ textureBindings[numTextureBindings].count = 1;
+ // assign binding index after we have collected all resources
+
+ numTextureBindings += 1;
+ }
+
+ // Storage textures
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_STORAGE_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_storage_textures);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ for (size_t i = 0; i < num_storage_textures; i += 1) {
+ if (!spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet) || !spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding)) {
+ SDL_SetError("%s", "Shader resources must have descriptor set and binding index!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+ if (!(descriptor_set_index == 0 || descriptor_set_index == 2)) {
+ SDL_SetError("%s", "Descriptor set index for graphics storage texture must be 0 or 2!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int binding_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding);
+
+ textureBindings[numTextureBindings].stage = executionModel;
+ textureBindings[numTextureBindings].desc_set = descriptor_set_index;
+ textureBindings[numTextureBindings].binding = binding_index;
+ textureBindings[numTextureBindings].count = 1;
+ // assign binding index after we have collected all resources
+
+ numTextureBindings += 1;
+ }
+
+ // If source is HLSL, storage images might be marked as separate images
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_SEPARATE_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_separate_images);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // We only want to iterate the images that don't have an associated sampler
+ for (size_t i = num_separate_samplers; i < num_separate_images; i += 1) {
+ if (!spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet) || !spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding)) {
+ SDL_SetError("%s", "Shader resources must have descriptor set and binding index!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+ if (!(descriptor_set_index == 0 || descriptor_set_index == 2)) {
+ SDL_SetError("%s", "Descriptor set index for graphics storage texture must be 0 or 2!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int binding_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding);
+
+ textureBindings[numTextureBindings].stage = executionModel;
+ textureBindings[numTextureBindings].desc_set = descriptor_set_index;
+ textureBindings[numTextureBindings].binding = binding_index;
+ textureBindings[numTextureBindings].count = 1;
+ // assign binding index after we have collected all resources
+
+ numTextureBindings += 1;
+ }
+
+ // Uniform buffers
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_UNIFORM_BUFFER,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_uniform_buffers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ for (size_t i = 0; i < num_uniform_buffers; i += 1) {
+ if (!spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet) || !spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding)) {
+ SDL_SetError("%s", "Shader resources must have descriptor set and binding index!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+ if (!(descriptor_set_index == 1 || descriptor_set_index == 3)) {
+ SDL_SetError("%s", "Descriptor set index for graphics uniform buffer must be 1 or 3!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int binding_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding);
+
+ bufferBindings[numBufferBindings].stage = executionModel;
+ bufferBindings[numBufferBindings].desc_set = descriptor_set_index;
+ bufferBindings[numBufferBindings].binding = binding_index;
+ bufferBindings[numBufferBindings].count = 1;
+ // assign binding index after we have collected all resources
+
+ numBufferBindings += 1;
+ }
+
+ // Storage buffers
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_STORAGE_BUFFER,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_storage_buffers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ for (size_t i = 0; i < num_storage_buffers; i += 1) {
+ if (!spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet) || !spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding)) {
+ SDL_SetError("%s", "Shader resources must have descriptor set and binding index!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+ if (!(descriptor_set_index == 0 || descriptor_set_index == 2)) {
+ SDL_SetError("%s", "Descriptor set index for graphics storage buffer must be 0 or 2!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int binding_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding);
+
+ bufferBindings[numBufferBindings].stage = executionModel;
+ bufferBindings[numBufferBindings].desc_set = descriptor_set_index;
+ bufferBindings[numBufferBindings].binding = binding_index;
+ bufferBindings[numBufferBindings].count = 1;
+ // assign binding index after we have collected all resources
+
+ numBufferBindings += 1;
+ }
+
+ // Textures come first so we can just use the binding slot
+ for (Uint32 i = 0; i < numTextureBindings; i += 1) {
+ textureBindings[i].msl_texture = textureBindings[i].binding;
+ textureBindings[i].msl_sampler = textureBindings[i].binding;
+ result = spvc_compiler_msl_add_resource_binding_2(compiler, &textureBindings[i]);
+ }
+
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_msl_add_resource_binding_2);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // Calculate number of uniform buffers
+ Uint32 uniformBufferCount = 0;
+
+ for (Uint32 i = 0; i < numBufferBindings; i += 1) {
+ if (bufferBindings[i].desc_set == 1 || bufferBindings[i].desc_set == 3) {
+ uniformBufferCount += 1;
+ }
+ }
+
+ // Calculate resource indices
+ for (Uint32 i = 0; i < numBufferBindings; i += 1) {
+ if (bufferBindings[i].desc_set == 1 || bufferBindings[i].desc_set == 3) {
+ // Uniform buffers are alone in the descriptor set
+ bufferBindings[i].msl_buffer = bufferBindings[i].binding;
+ } else {
+ // Subtract by the texture count because the textures precede the storage buffers in the descriptor set
+ bufferBindings[i].msl_buffer = uniformBufferCount + (bufferBindings[i].binding - numTextureBindings);
+ }
+
+ result = spvc_compiler_msl_add_resource_binding_2(compiler, &bufferBindings[i]);
+
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_msl_add_resource_binding_2);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+ }
+ }
+
+ if (backend == SPVC_BACKEND_MSL && shaderStage == SDL_SHADERCROSS_SHADERSTAGE_COMPUTE) {
+ spvc_resources resources;
+ spvc_reflected_resource *reflected_resources;
+ size_t num_texture_samplers;
+ size_t num_storage_textures; // total storage textures
+ size_t num_storage_buffers; // total storage buffers
+ size_t num_uniform_buffers;
+ size_t num_separate_samplers = 0;
+ size_t num_separate_images = 0;
+
+ spvc_msl_resource_binding_2 bufferBindings[32];
+ Uint32 numBufferBindings = 0;
+
+ spvc_msl_resource_binding_2 textureBindings[32];
+ Uint32 numTextureBindings = 0;
+
+ spvc_set active_variables;
+ result = spvc_compiler_get_active_interface_variables(compiler, &active_variables);
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_get_active_interface_variables);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ result = spvc_compiler_create_shader_resources_for_active_variables(compiler, &resources, active_variables);
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_create_shader_resources_for_active_variables);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // Combined texture-samplers
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_SAMPLED_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_texture_samplers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // If source is HLSL, we might have separate images and samplers
+ if (num_texture_samplers == 0) {
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_SEPARATE_SAMPLERS,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_separate_samplers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+ num_texture_samplers = num_separate_samplers;
+ }
+
+ for (size_t i = 0; i < num_texture_samplers; i += 1) {
+ if (!spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet) || !spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding)) {
+ SDL_SetError("%s", "Shader resources must have descriptor set and binding index!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+ if (descriptor_set_index != 0) {
+ SDL_SetError("%s", "Descriptor set index for compute texture-sampler must be 0!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int binding_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding);
+
+ textureBindings[numTextureBindings].stage = executionModel;
+ textureBindings[numTextureBindings].desc_set = descriptor_set_index;
+ textureBindings[numTextureBindings].binding = binding_index;
+ textureBindings[numTextureBindings].count = 1;
+ // assign binding index after we have collected all resources
+
+ numTextureBindings += 1;
+ }
+
+ // Readonly storage textures
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_STORAGE_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_storage_textures);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ for (size_t i = 0; i < num_storage_textures; i += 1) {
+ if (!spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet) || !spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding)) {
+ SDL_SetError("%s", "Shader resources must have descriptor set and binding index!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+ if (!(descriptor_set_index == 0 || descriptor_set_index == 1)) {
+ SDL_SetError("%s", "Descriptor set index for compute storage texture must be 0 or 1!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // Skip readwrite textures
+ if (descriptor_set_index != 0) { continue; }
+
+ unsigned int binding_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding);
+
+ textureBindings[numTextureBindings].stage = executionModel;
+ textureBindings[numTextureBindings].desc_set = descriptor_set_index;
+ textureBindings[numTextureBindings].binding = binding_index;
+ textureBindings[numTextureBindings].count = 1;
+ // assign binding index after we have collected all resources
+
+ numTextureBindings += 1;
+ }
+
+ // If source is HLSL, storage images might be marked as separate images
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_SEPARATE_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_separate_images);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // We only want to iterate the images that don't have an associated sampler
+ for (size_t i = num_separate_samplers; i < num_separate_images; i += 1) {
+ if (!spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet) || !spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding)) {
+ SDL_SetError("%s", "Shader resources must have descriptor set and binding index!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+ if (!(descriptor_set_index == 0 || descriptor_set_index == 1)) {
+ SDL_SetError("%s", "Descriptor set index for compute storage texture must be 0 or 1!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // Skip readwrite textures
+ if (descriptor_set_index != 0) { continue; }
+
+ unsigned int binding_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding);
+
+ textureBindings[numTextureBindings].stage = executionModel;
+ textureBindings[numTextureBindings].desc_set = descriptor_set_index;
+ textureBindings[numTextureBindings].binding = binding_index;
+ textureBindings[numTextureBindings].count = 1;
+ // assign binding index after we have collected all resources
+
+ numTextureBindings += 1;
+ }
+
+ // Readwrite storage textures
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_STORAGE_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_storage_textures);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ for (size_t i = 0; i < num_storage_textures; i += 1) {
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+
+ // Skip readonly textures
+ if (descriptor_set_index != 1) { continue; }
+
+ unsigned int binding_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding);
+
+ textureBindings[numTextureBindings].stage = executionModel;
+ textureBindings[numTextureBindings].desc_set = descriptor_set_index;
+ textureBindings[numTextureBindings].binding = binding_index;
+ textureBindings[numTextureBindings].count = 1;
+ // assign binding index after we have collected all resources
+
+ numTextureBindings += 1;
+ }
+
+ // If source is HLSL, storage images might be marked as separate images
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_SEPARATE_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_separate_images);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // We only want to iterate the images that don't have an associated sampler
+ for (size_t i = num_separate_samplers; i < num_separate_images; i += 1) {
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+
+ // Skip readonly textures
+ if (descriptor_set_index != 1) { continue; }
+
+ unsigned int binding_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding);
+
+ textureBindings[numTextureBindings].stage = executionModel;
+ textureBindings[numTextureBindings].desc_set = descriptor_set_index;
+ textureBindings[numTextureBindings].binding = binding_index;
+ textureBindings[numTextureBindings].count = 1;
+ // assign binding index after we have collected all resources
+
+ numTextureBindings += 1;
+ }
+
+ // Uniform buffers
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_UNIFORM_BUFFER,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_uniform_buffers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ for (size_t i = 0; i < num_uniform_buffers; i += 1) {
+ if (!spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet) || !spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding)) {
+ SDL_SetError("%s", "Shader resources must have descriptor set and binding index!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+ if (descriptor_set_index != 2) {
+ SDL_SetError("%s", "Descriptor set index for compute uniform buffer must be 2!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int binding_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding);
+
+ bufferBindings[numBufferBindings].stage = executionModel;
+ bufferBindings[numBufferBindings].desc_set = descriptor_set_index;
+ bufferBindings[numBufferBindings].binding = binding_index;
+ bufferBindings[numBufferBindings].count = 1;
+ // assign binding index after we have collected all resources
+
+ numBufferBindings += 1;
+ }
+
+ // Storage buffers
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_STORAGE_BUFFER,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_storage_buffers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // Readonly storage buffers
+ for (size_t i = 0; i < num_storage_buffers; i += 1) {
+ if (!spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet) || !spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding)) {
+ SDL_SetError("%s", "Shader resources must have descriptor set and binding index!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+ if (!(descriptor_set_index == 0|| descriptor_set_index == 1)) {
+ SDL_SetError("%s", "Descriptor set index for compute storage buffer must be 0 or 1!");
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // Skip readwrite buffers
+ if (descriptor_set_index != 0) { continue; }
+
+ unsigned int binding_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding);
+
+ bufferBindings[numBufferBindings].stage = executionModel;
+ bufferBindings[numBufferBindings].desc_set = descriptor_set_index;
+ bufferBindings[numBufferBindings].binding = binding_index;
+ bufferBindings[numBufferBindings].count = 1;
+ // assign binding index after we have collected all resources
+
+ numBufferBindings += 1;
+ }
+
+ // Readwrite storage buffers
+ for (size_t i = 0; i < num_storage_buffers; i += 1) {
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+
+ // Skip readonly buffers
+ if (descriptor_set_index != 1) { continue; }
+
+ unsigned int binding_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding);
+
+ bufferBindings[numBufferBindings].stage = executionModel;
+ bufferBindings[numBufferBindings].desc_set = descriptor_set_index;
+ bufferBindings[numBufferBindings].binding = binding_index;
+ bufferBindings[numBufferBindings].count = 1;
+ // assign binding index after we have collected all resources
+
+ numBufferBindings += 1;
+ }
+
+ // Calculate binding offsets
+
+ Uint32 readonlyTextureCount = 0;
+ Uint32 readwriteTextureCount = 0;
+
+ for (Uint32 i = 0; i < numTextureBindings; i += 1) {
+ if (textureBindings[i].desc_set == 0) {
+ readonlyTextureCount += 1;
+ } else if (textureBindings[i].desc_set == 1) {
+ readwriteTextureCount += 1;
+ }
+ }
+
+ Uint32 uniformBufferCount = 0;
+ Uint32 readonlyBufferCount = 0;
+
+ for (Uint32 i = 0; i < numBufferBindings; i += 1) {
+ if (bufferBindings[i].desc_set == 0) {
+ readonlyBufferCount += 1;
+ } else if (bufferBindings[i].desc_set == 2) {
+ uniformBufferCount += 1;
+ }
+ }
+
+ // Calculate resource indices
+
+ for (Uint32 i = 0; i < numTextureBindings; i += 1) {
+ if (textureBindings[i].desc_set == 0) {
+ // readonly textures
+ textureBindings[i].msl_texture = textureBindings[i].binding;
+ textureBindings[i].msl_sampler = textureBindings[i].binding;
+ } else {
+ // readwrite textures
+ textureBindings[i].msl_texture = readonlyTextureCount + textureBindings[i].binding;
+ textureBindings[i].msl_sampler = readonlyTextureCount + textureBindings[i].binding;
+ }
+ result = spvc_compiler_msl_add_resource_binding_2(compiler, &textureBindings[i]);
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_msl_add_resource_binding_2);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+ }
+
+ for (Uint32 i = 0; i < numBufferBindings; i += 1) {
+ if (bufferBindings[i].desc_set == 0) {
+ // Subtract by the readonly texture count because they precede readonly buffers in the descriptor set
+ bufferBindings[i].msl_buffer = uniformBufferCount + (bufferBindings[i].binding - readonlyTextureCount);
+ } else if (bufferBindings[i].desc_set == 1) {
+ // Subtract by the readwrite texture count because they precede readwrite buffers in the descriptor set
+ bufferBindings[i].msl_buffer = uniformBufferCount + readonlyBufferCount + (bufferBindings[i].binding - readwriteTextureCount);
+ } else {
+ // Uniform buffers are alone in the descriptor set
+ bufferBindings[i].msl_buffer = bufferBindings[i].binding;
+ }
+ result = spvc_compiler_msl_add_resource_binding_2(compiler, &bufferBindings[i]);
+
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_msl_add_resource_binding_2);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+ }
+ }
+
+ result = spvc_compiler_install_compiler_options(compiler, options);
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_install_compiler_options);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ /* Compile to the target shader language */
+ result = spvc_compiler_compile(compiler, &translated_source);
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_compile);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ if (backend == SPVC_BACKEND_MSL) {
+ // Metal doesn't allow a "main" entrypoint, so determine the "cleansed" entrypoint name (e.g. main -> main0 on MSL)
+ cleansed_entrypoint = spvc_compiler_get_cleansed_entry_point_name(
+ compiler,
+ entrypoint,
+ spvc_compiler_get_execution_model(compiler));
+ } else {
+ cleansed_entrypoint = entrypoint;
+ }
+
+ transpileContext = SDL_malloc(sizeof(SPIRVTranspileContext));
+ transpileContext->context = context;
+ transpileContext->cleansed_entrypoint = cleansed_entrypoint;
+ transpileContext->translated_source = translated_source;
+ return transpileContext;
+}
+
+size_t SDL_ShaderCross_INTERNAL_GetIOVarsStringLength(
+ spvc_reflected_resource* reflected_resources,
+ size_t num_vars)
+{
+ size_t total_string_size = 0;
+ for (size_t i = 0; i < num_vars; i++) {
+ spvc_reflected_resource* resource = &reflected_resources[i];
+ total_string_size += SDL_strlen(resource->name) + 1;
+ }
+ return total_string_size;
+}
+
+void SDL_ShaderCross_INTERNAL_GetIOVars(
+ spvc_compiler compiler,
+ spvc_reflected_resource* reflected_resources,
+ size_t num_vars,
+ SDL_ShaderCross_IOVarMetadata* vars,
+ char *name_buffer
+) {
+ size_t name_buffer_offset = 0;
+ for (size_t i = 0; i < num_vars; i++) {
+ SDL_ShaderCross_IOVarMetadata* var = &vars[i];
+ spvc_reflected_resource* resource = &reflected_resources[i];
+ spvc_type type = spvc_compiler_get_type_handle(compiler, resource->base_type_id);
+
+ switch (spvc_type_get_basetype(type)) {
+ case SPVC_BASETYPE_INT8:
+ var->vector_type = SDL_SHADERCROSS_IOVAR_TYPE_INT8;
+ break;
+ case SPVC_BASETYPE_UINT8:
+ var->vector_type = SDL_SHADERCROSS_IOVAR_TYPE_UINT8;
+ break;
+ case SPVC_BASETYPE_INT16:
+ var->vector_type = SDL_SHADERCROSS_IOVAR_TYPE_INT16;
+ break;
+ case SPVC_BASETYPE_UINT16:
+ var->vector_type = SDL_SHADERCROSS_IOVAR_TYPE_UINT16;
+ break;
+ case SPVC_BASETYPE_INT32:
+ var->vector_type = SDL_SHADERCROSS_IOVAR_TYPE_INT32;
+ break;
+ case SPVC_BASETYPE_UINT32:
+ var->vector_type = SDL_SHADERCROSS_IOVAR_TYPE_UINT32;
+ break;
+ case SPVC_BASETYPE_INT64:
+ var->vector_type = SDL_SHADERCROSS_IOVAR_TYPE_INT64;
+ break;
+ case SPVC_BASETYPE_UINT64:
+ var->vector_type = SDL_SHADERCROSS_IOVAR_TYPE_UINT64;
+ break;
+ case SPVC_BASETYPE_FP16:
+ var->vector_type = SDL_SHADERCROSS_IOVAR_TYPE_FLOAT16;
+ break;
+ case SPVC_BASETYPE_FP32:
+ var->vector_type = SDL_SHADERCROSS_IOVAR_TYPE_FLOAT32;
+ break;
+ case SPVC_BASETYPE_FP64:
+ var->vector_type = SDL_SHADERCROSS_IOVAR_TYPE_FLOAT64;
+ break;
+ default:
+ var->vector_type = SDL_SHADERCROSS_IOVAR_TYPE_UNKNOWN;
+ break;
+ }
+
+ Uint32 vector_size = spvc_type_get_vector_size(type);
+ var->vector_size = vector_size;
+
+ var->name = name_buffer + name_buffer_offset;
+ size_t length_name = SDL_strlen(resource->name) + 1;
+ SDL_memcpy(var->name, resource->name, length_name);
+ name_buffer_offset += length_name;
+ var->location = spvc_compiler_get_decoration(compiler, resource->id, SpvDecorationLocation);
+ }
+}
+
+// Acquire metadata from SPIRV bytecode.
+// TODO: validate descriptor sets
+SDL_ShaderCross_GraphicsShaderMetadata * SDL_ShaderCross_ReflectGraphicsSPIRV(
+ const Uint8 *code,
+ size_t codeSize,
+ SDL_PropertiesID metadataProps
+) {
+ spvc_result result;
+ spvc_context context = NULL;
+ spvc_parsed_ir ir = NULL;
+ spvc_compiler compiler = NULL;
+ size_t num_texture_samplers = 0;
+ size_t num_storage_textures = 0;
+ size_t num_storage_buffers = 0;
+ size_t num_uniform_buffers = 0;
+ size_t string_length_input;
+ size_t num_inputs = 0;
+ size_t string_length_output;
+ size_t num_outputs = 0;
+ size_t num_separate_samplers = 0; // HLSL edge case
+ size_t num_separate_images = 0; // HLSL edge case
+ (void) metadataProps;
+
+ if (code == NULL) {
+ SDL_InvalidParamError("code");
+ return NULL;
+ }
+
+ /* Create the SPIRV-Cross context */
+ result = spvc_context_create(&context);
+ if (result < 0) {
+ SDL_SetError("spvc_context_create failed: %X", result);
+ return NULL;
+ }
+
+ /* Parse the SPIR-V into IR */
+ result = spvc_context_parse_spirv(context, (const SpvId *)code, codeSize / sizeof(SpvId), &ir);
+ if (result < 0) {
+ SPVC_ERROR(spvc_context_parse_spirv);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ /* Create a reflection-only compiler */
+ result = spvc_context_create_compiler(context, SPVC_BACKEND_NONE, ir, SPVC_CAPTURE_MODE_TAKE_OWNERSHIP, &compiler);
+ if (result < 0) {
+ SPVC_ERROR(spvc_context_create_compiler);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ spvc_resources resources;
+ spvc_reflected_resource *reflected_resources;
+
+ spvc_set active_variables;
+ result = spvc_compiler_get_active_interface_variables(compiler, &active_variables);
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_get_active_interface_variables);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ result = spvc_compiler_create_shader_resources_for_active_variables(compiler, &resources, active_variables);
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_create_shader_resources_for_active_variables);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // Combined texture-samplers
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_SAMPLED_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_texture_samplers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // If source is HLSL, we might have separate images and samplers
+ if (num_texture_samplers == 0) {
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_SEPARATE_SAMPLERS,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_separate_samplers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+ num_texture_samplers = num_separate_samplers;
+ }
+
+ // Storage textures
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_STORAGE_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_storage_textures);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // If source is HLSL, storage images might be marked as separate images
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_SEPARATE_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_separate_images);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+ // The number of storage textures is the number of separate images minus the number of samplers.
+ num_storage_textures += (num_separate_images - num_separate_samplers);
+
+ // Storage buffers
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_STORAGE_BUFFER,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_storage_buffers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // Uniform buffers
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_UNIFORM_BUFFER,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_uniform_buffers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ // Inputs (stage 1: count number of inputs, and name lengths)
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_STAGE_INPUT,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_inputs);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+ string_length_input = SDL_ShaderCross_INTERNAL_GetIOVarsStringLength(reflected_resources, num_inputs);
+
+ // Outputs (stage 1: count number of outputs, and name lengths)
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_STAGE_OUTPUT,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_outputs);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return NULL;
+ }
+ string_length_output = SDL_ShaderCross_INTERNAL_GetIOVarsStringLength(reflected_resources, num_outputs);
+
+ size_t offset_inputs = SDL_upper_multiple_power2(sizeof(SDL_ShaderCross_GraphicsShaderMetadata), sizeof(size_t));
+ size_t offset_outputs = offset_inputs + num_inputs * sizeof(SDL_ShaderCross_IOVarMetadata);
+ size_t offset_inputnames = offset_outputs + num_outputs * sizeof(SDL_ShaderCross_IOVarMetadata);
+ size_t offset_outputnames = offset_inputnames + string_length_input;
+
+ char *allocMemory = SDL_malloc(offset_outputnames + string_length_output);
+ if (!allocMemory) {
+ spvc_context_destroy(context);
+ return NULL;
+ }
+
+ SDL_ShaderCross_GraphicsShaderMetadata *allocMetadata = (SDL_ShaderCross_GraphicsShaderMetadata *)allocMemory;
+ allocMetadata->inputs = (SDL_ShaderCross_IOVarMetadata *)(allocMemory + offset_inputs);
+ allocMetadata->outputs = (SDL_ShaderCross_IOVarMetadata *)(allocMemory + offset_outputs);
+
+ // Inputs (stage 2: fill in inputs)
+ size_t num_inputs_run2 = 0;
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_STAGE_INPUT,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_inputs_run2);
+ if (result < 0 || num_inputs != num_inputs_run2) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ SDL_free(allocMemory);
+ return false;
+ }
+ SDL_ShaderCross_INTERNAL_GetIOVars(compiler, reflected_resources, num_inputs, allocMetadata->inputs, allocMemory + offset_inputnames);
+
+ // Inputs (stage 2: fill in outputs)
+ size_t num_outputs_run2 = 0;
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_STAGE_OUTPUT,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_outputs_run2);
+ if (result < 0 || num_outputs != num_outputs_run2) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ SDL_free(allocMemory);
+ return false;
+ }
+ SDL_ShaderCross_INTERNAL_GetIOVars(compiler, reflected_resources, num_outputs, allocMetadata->outputs, allocMemory + offset_outputnames);
+ spvc_context_destroy(context);
+
+ allocMetadata->resource_info.num_samplers = num_texture_samplers;
+ allocMetadata->resource_info.num_storage_textures = num_storage_textures;
+ allocMetadata->resource_info.num_storage_buffers = num_storage_buffers;
+ allocMetadata->resource_info.num_uniform_buffers = num_uniform_buffers;
+ allocMetadata->num_inputs = num_inputs;
+ allocMetadata->num_outputs = num_outputs;
+
+ return allocMetadata;
+}
+
+SDL_ShaderCross_ComputePipelineMetadata * SDL_ShaderCross_ReflectComputeSPIRV(
+ const Uint8 *bytecode,
+ size_t bytecodeSize,
+ SDL_PropertiesID metadataProps
+) {
+ spvc_result result;
+ spvc_context context = NULL;
+ spvc_parsed_ir ir = NULL;
+ spvc_compiler compiler = NULL;
+ size_t num_texture_samplers = 0;
+ size_t num_readonly_storage_textures = 0;
+ size_t num_readonly_storage_buffers = 0;
+ size_t num_readwrite_storage_textures = 0;
+ size_t num_readwrite_storage_buffers = 0;
+ size_t num_uniform_buffers = 0;
+
+ size_t num_storage_textures = 0;
+ size_t num_storage_buffers = 0;
+ size_t num_separate_samplers = 0; // HLSL edge case
+ size_t num_separate_images = 0; // HLSL edge case
+
+ (void) metadataProps;
+
+ if (bytecode == NULL) {
+ SDL_InvalidParamError("bytecode");
+ return NULL;
+ }
+
+ /* Create the SPIRV-Cross context */
+ result = spvc_context_create(&context);
+ if (result < 0) {
+ SDL_SetError("spvc_context_create failed: %X", result);
+ return false;
+ }
+
+ /* Parse the SPIR-V into IR */
+ result = spvc_context_parse_spirv(context, (const SpvId *)bytecode, bytecodeSize / sizeof(SpvId), &ir);
+ if (result < 0) {
+ SPVC_ERROR(spvc_context_parse_spirv);
+ spvc_context_destroy(context);
+ return false;
+ }
+
+ /* Create a reflection-only compiler */
+ result = spvc_context_create_compiler(context, SPVC_BACKEND_NONE, ir, SPVC_CAPTURE_MODE_TAKE_OWNERSHIP, &compiler);
+ if (result < 0) {
+ SPVC_ERROR(spvc_context_create_compiler);
+ spvc_context_destroy(context);
+ return false;
+ }
+
+ spvc_resources resources;
+ spvc_reflected_resource *reflected_resources;
+
+ spvc_set active_variables;
+ result = spvc_compiler_get_active_interface_variables(compiler, &active_variables);
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_get_active_interface_variables);
+ spvc_context_destroy(context);
+ return false;
+ }
+
+ result = spvc_compiler_create_shader_resources_for_active_variables(compiler, &resources, active_variables);
+ if (result < 0) {
+ SPVC_ERROR(spvc_compiler_create_shader_resources_for_active_variables);
+ spvc_context_destroy(context);
+ return false;
+ }
+
+ // Combined texture-samplers
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_SAMPLED_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_texture_samplers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return false;
+ }
+
+ // If source is HLSL, we might have separate images and samplers
+ if (num_texture_samplers == 0) {
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_SEPARATE_SAMPLERS,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_separate_samplers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return false;
+ }
+ num_texture_samplers = num_separate_samplers;
+ }
+
+ // Storage textures
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_STORAGE_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_storage_textures);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return false;
+ }
+
+ for (size_t i = 0; i < num_storage_textures; i += 1) {
+ if (!spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet) || !spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding)) {
+ SDL_SetError("%s", "Shader resources must have descriptor set and binding index!");
+ spvc_context_destroy(context);
+ return false;
+ }
+
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+
+ if (descriptor_set_index == 0) {
+ num_readonly_storage_textures += 1;
+ } else if (descriptor_set_index == 1) {
+ num_readwrite_storage_textures += 1;
+ } else {
+ SDL_SetError("%s", "Descriptor set index for compute storage texture must be 0 or 1!");
+ spvc_context_destroy(context);
+ return false;
+ }
+ }
+
+ // If source is HLSL, readonly storage images might be marked as separate images
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_SEPARATE_IMAGE,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_separate_images);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return false;
+ }
+
+ // The number of storage textures is the number of separate images minus the number of samplers.
+ num_storage_textures += (num_separate_images - num_separate_samplers);
+
+ for (size_t i = num_separate_samplers; i < num_separate_images; i += 1) {
+ if (!spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet) || !spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding)) {
+ SDL_SetError("%s", "Shader resources must have descriptor set and binding index!");
+ spvc_context_destroy(context);
+ return false;
+ }
+
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+
+ if (descriptor_set_index == 0) {
+ num_readonly_storage_textures += 1;
+ } else if (descriptor_set_index == 1) {
+ num_readwrite_storage_textures += 1;
+ } else {
+ SDL_SetError("%s", "Descriptor set index for compute storage texture must be 0 or 1!");
+ spvc_context_destroy(context);
+ return false;
+ }
+ }
+
+ // Storage buffers
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_STORAGE_BUFFER,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_storage_buffers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return false;
+ }
+
+ // Readonly storage buffers
+ for (size_t i = 0; i < num_storage_buffers; i += 1) {
+ if (!spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet) || !spvc_compiler_has_decoration(compiler, reflected_resources[i].id, SpvDecorationBinding)) {
+ SDL_SetError("%s", "Shader resources must have descriptor set and binding index!");
+ spvc_context_destroy(context);
+ return false;
+ }
+
+ unsigned int descriptor_set_index = spvc_compiler_get_decoration(compiler, reflected_resources[i].id, SpvDecorationDescriptorSet);
+ if (!(descriptor_set_index == 0 || descriptor_set_index == 1)) {
+ SDL_SetError("%s", "Descriptor set index for compute storage buffer must be 0 or 1!");
+ spvc_context_destroy(context);
+ return false;
+ }
+
+ if (descriptor_set_index == 0) {
+ num_readonly_storage_buffers += 1;
+ } else if (descriptor_set_index == 1) {
+ num_readwrite_storage_buffers += 1;
+ } else {
+ SDL_SetError("%s", "Descriptor set index for compute storage buffer must be 0 or 1!");
+ spvc_context_destroy(context);
+ return false;
+ }
+ }
+
+ // Uniform buffers
+ result = spvc_resources_get_resource_list_for_type(
+ resources,
+ SPVC_RESOURCE_TYPE_UNIFORM_BUFFER,
+ (const spvc_reflected_resource **)&reflected_resources,
+ &num_uniform_buffers);
+ if (result < 0) {
+ SPVC_ERROR(spvc_resources_get_resource_list_for_type);
+ spvc_context_destroy(context);
+ return false;
+ }
+
+ // Threadcount
+ SDL_ShaderCross_ComputePipelineMetadata *metadata = SDL_malloc(sizeof(SDL_ShaderCross_ComputePipelineMetadata));
+ if (!metadata) {
+ return NULL;
+ }
+ metadata->threadcount_x = spvc_compiler_get_execution_mode_argument_by_index(compiler, SpvExecutionModeLocalSize, 0);
+ metadata->threadcount_y = spvc_compiler_get_execution_mode_argument_by_index(compiler, SpvExecutionModeLocalSize, 1);
+ metadata->threadcount_z = spvc_compiler_get_execution_mode_argument_by_index(compiler, SpvExecutionModeLocalSize, 2);
+
+ spvc_context_destroy(context);
+
+ metadata->num_samplers = num_texture_samplers;
+ metadata->num_readonly_storage_textures = num_readonly_storage_textures;
+ metadata->num_readonly_storage_buffers = num_readonly_storage_buffers;
+ metadata->num_readwrite_storage_textures = num_readwrite_storage_textures;
+ metadata->num_readwrite_storage_buffers = num_readwrite_storage_buffers;
+ metadata->num_uniform_buffers = num_uniform_buffers;
+ return metadata;
+}
+
+static void *SDL_ShaderCross_INTERNAL_CompileFromSPIRV(
+ SDL_GPUDevice *device,
+ const SDL_ShaderCross_SPIRV_Info *info,
+ SDL_GPUShaderFormat targetFormat,
+ SDL_PropertiesID metadataProps
+) {
+ spvc_backend backend;
+ unsigned shadermodel = 0;
+
+ if (targetFormat == SDL_GPU_SHADERFORMAT_DXBC) {
+ backend = SPVC_BACKEND_HLSL;
+ shadermodel = 51;
+ } else if (targetFormat == SDL_GPU_SHADERFORMAT_DXIL) {
+ backend = SPVC_BACKEND_HLSL;
+ shadermodel = 60;
+ } else if (targetFormat == SDL_GPU_SHADERFORMAT_MSL) {
+ backend = SPVC_BACKEND_MSL;
+ } else {
+ SDL_SetError("SDL_ShaderCross_INTERNAL_CompileFromSPIRV: Unexpected SDL_GPUBackend");
+ return NULL;
+ }
+
+ SPIRVTranspileContext *transpileContext = SDL_ShaderCross_INTERNAL_TranspileFromSPIRV(
+ backend,
+ shadermodel,
+ info->shader_stage,
+ info->bytecode,
+ info->bytecode_size,
+ info->entrypoint,
+ info->props);
+
+ if (transpileContext == NULL) {
+ return NULL;
+ }
+
+ void *shaderObject = NULL;
+
+ if (info->shader_stage == SDL_SHADERCROSS_SHADERSTAGE_COMPUTE) {
+ SDL_ShaderCross_ComputePipelineMetadata *pipelineInfo = SDL_ShaderCross_ReflectComputeSPIRV(
+ info->bytecode,
+ info->bytecode_size,
+ metadataProps);
+ SDL_GPUComputePipelineCreateInfo createInfo;
+
+ createInfo.entrypoint = transpileContext->cleansed_entrypoint;
+ createInfo.format = targetFormat;
+ createInfo.num_samplers = pipelineInfo->num_samplers;
+ createInfo.num_readonly_storage_textures = pipelineInfo->num_readonly_storage_textures;
+ createInfo.num_readonly_storage_buffers = pipelineInfo->num_readonly_storage_buffers;
+ createInfo.num_readwrite_storage_textures = pipelineInfo->num_readwrite_storage_textures;
+ createInfo.num_readwrite_storage_buffers = pipelineInfo->num_readwrite_storage_buffers;
+ createInfo.num_uniform_buffers = pipelineInfo->num_uniform_buffers;
+ createInfo.threadcount_x = pipelineInfo->threadcount_x;
+ createInfo.threadcount_y = pipelineInfo->threadcount_y;
+ createInfo.threadcount_z = pipelineInfo->threadcount_z;
+
+ createInfo.props = 0;
+
+ const char *debugName = SDL_GetStringProperty(info->props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING, NULL);
+ if (debugName) {
+ createInfo.props = SDL_CreateProperties();
+ SDL_SetStringProperty(createInfo.props, SDL_PROP_GPU_COMPUTEPIPELINE_CREATE_NAME_STRING, debugName);
+ }
+
+ SDL_ShaderCross_HLSL_Info hlslInfo;
+ hlslInfo.source = transpileContext->translated_source;
+ hlslInfo.entrypoint = transpileContext->cleansed_entrypoint;
+ hlslInfo.include_dir = NULL;
+ hlslInfo.defines = NULL;
+ hlslInfo.shader_stage = SDL_SHADERCROSS_SHADERSTAGE_COMPUTE;
+ hlslInfo.props = info->props;
+
+ if (targetFormat == SDL_GPU_SHADERFORMAT_DXBC) {
+ createInfo.code = SDL_ShaderCross_INTERNAL_CompileDXBCFromHLSL(
+ &hlslInfo,
+ false,
+ &createInfo.code_size);
+ } else if (targetFormat == SDL_GPU_SHADERFORMAT_DXIL) {
+ createInfo.code = SDL_ShaderCross_CompileDXILFromHLSL(
+ &hlslInfo,
+ &createInfo.code_size);
+ } else { // MSL
+ createInfo.code = (const Uint8 *)transpileContext->translated_source;
+ createInfo.code_size = SDL_strlen(transpileContext->translated_source) + 1;
+ }
+
+ shaderObject = SDL_CreateGPUComputePipeline(device, &createInfo);
+
+ if (createInfo.props != 0) {
+ SDL_DestroyProperties(createInfo.props);
+ }
+ SDL_free(pipelineInfo);
+ } else {
+ SDL_GPUShaderCreateInfo createInfo;
+ SDL_ShaderCross_GraphicsShaderMetadata *shaderInfo =
+ SDL_ShaderCross_ReflectGraphicsSPIRV(
+ info->bytecode,
+ info->bytecode_size,
+ metadataProps);
+
+ if (shaderInfo == NULL) {
+ SDL_ShaderCross_INTERNAL_DestroyTranspileContext(transpileContext);
+ return NULL;
+ }
+ createInfo.entrypoint = transpileContext->cleansed_entrypoint;
+ createInfo.format = targetFormat;
+ createInfo.stage = (SDL_GPUShaderStage)info->shader_stage;
+ createInfo.num_samplers = shaderInfo->resource_info.num_samplers;
+ createInfo.num_storage_textures = shaderInfo->resource_info.num_storage_textures;
+ createInfo.num_storage_buffers = shaderInfo->resource_info.num_storage_buffers;
+ createInfo.num_uniform_buffers = shaderInfo->resource_info.num_uniform_buffers;
+
+ createInfo.props = 0;
+
+ const char *debugName = SDL_GetStringProperty(info->props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING, NULL);
+ if (debugName) {
+ createInfo.props = SDL_CreateProperties();
+ SDL_SetStringProperty(createInfo.props, SDL_PROP_GPU_SHADER_CREATE_NAME_STRING, debugName);
+ }
+
+ SDL_ShaderCross_HLSL_Info hlslInfo;
+ hlslInfo.source = transpileContext->translated_source;
+ hlslInfo.entrypoint = transpileContext->cleansed_entrypoint;
+ hlslInfo.include_dir = NULL;
+ hlslInfo.defines = NULL;
+ hlslInfo.shader_stage = info->shader_stage;
+ hlslInfo.props = info->props;
+
+ if (targetFormat == SDL_GPU_SHADERFORMAT_DXBC) {
+ createInfo.code = SDL_ShaderCross_INTERNAL_CompileDXBCFromHLSL(
+ &hlslInfo,
+ false,
+ &createInfo.code_size);
+ } else if (targetFormat == SDL_GPU_SHADERFORMAT_DXIL) {
+ createInfo.code = SDL_ShaderCross_CompileDXILFromHLSL(
+ &hlslInfo,
+ &createInfo.code_size);
+ } else { // MSL
+ createInfo.code = (const Uint8 *)transpileContext->translated_source;
+ createInfo.code_size = SDL_strlen(transpileContext->translated_source) + 1;
+ }
+
+ shaderObject = SDL_CreateGPUShader(device, &createInfo);
+
+ if (createInfo.props != 0) {
+ SDL_DestroyProperties(createInfo.props);
+ }
+
+ SDL_free(shaderInfo);
+ }
+
+ SDL_ShaderCross_INTERNAL_DestroyTranspileContext(transpileContext);
+ return shaderObject;
+}
+
+void *SDL_ShaderCross_TranspileMSLFromSPIRV(
+ const SDL_ShaderCross_SPIRV_Info *info)
+{
+ if (info == NULL) {
+ SDL_InvalidParamError("info");
+ return NULL;
+ }
+
+ SPIRVTranspileContext *context = SDL_ShaderCross_INTERNAL_TranspileFromSPIRV(
+ SPVC_BACKEND_MSL,
+ 0,
+ info->shader_stage,
+ info->bytecode,
+ info->bytecode_size,
+ info->entrypoint,
+ info->props
+ );
+
+ if (context == NULL) {
+ return NULL;
+ }
+
+ size_t length = SDL_strlen(context->translated_source) + 1;
+ char *result = SDL_malloc(length);
+ SDL_strlcpy(result, context->translated_source, length);
+
+ SDL_ShaderCross_INTERNAL_DestroyTranspileContext(context);
+ return result;
+}
+
+void *SDL_ShaderCross_TranspileHLSLFromSPIRV(
+ const SDL_ShaderCross_SPIRV_Info *info)
+{
+ if (info == NULL) {
+ SDL_InvalidParamError("info");
+ return NULL;
+ }
+
+ SPIRVTranspileContext *context = SDL_ShaderCross_INTERNAL_TranspileFromSPIRV(
+ SPVC_BACKEND_HLSL,
+ SDL_GetBooleanProperty(info->props, SDL_SHADERCROSS_PROP_SPIRV_PSSL_COMPATIBILITY_BOOLEAN, false) ? 50 : 60,
+ info->shader_stage,
+ info->bytecode,
+ info->bytecode_size,
+ info->entrypoint,
+ info->props
+ );
+
+ if (context == NULL) {
+ return NULL;
+ }
+
+ size_t length = SDL_strlen(context->translated_source) + 1;
+ char *result = SDL_malloc(length);
+ SDL_strlcpy(result, context->translated_source, length);
+
+ SDL_ShaderCross_INTERNAL_DestroyTranspileContext(context);
+ return result;
+}
+
+void *SDL_ShaderCross_CompileDXBCFromSPIRV(
+ const SDL_ShaderCross_SPIRV_Info *info,
+ size_t *size)
+{
+ if (info == NULL) {
+ SDL_InvalidParamError("info");
+ return NULL;
+ }
+
+ SPIRVTranspileContext *context = SDL_ShaderCross_INTERNAL_TranspileFromSPIRV(
+ SPVC_BACKEND_HLSL,
+ 51,
+ info->shader_stage,
+ info->bytecode,
+ info->bytecode_size,
+ info->entrypoint,
+ info->props);
+
+ if (context == NULL) {
+ return NULL;
+ }
+
+ SDL_ShaderCross_HLSL_Info hlslInfo;
+ hlslInfo.source = context->translated_source;
+ hlslInfo.entrypoint = context->cleansed_entrypoint;
+ hlslInfo.include_dir = NULL;
+ hlslInfo.defines = NULL;
+ hlslInfo.shader_stage = info->shader_stage;
+ hlslInfo.props = info->props;
+
+ void *result = SDL_ShaderCross_INTERNAL_CompileDXBCFromHLSL(
+ &hlslInfo,
+ false,
+ size);
+
+ SDL_ShaderCross_INTERNAL_DestroyTranspileContext(context);
+ return result;
+}
+
+void *SDL_ShaderCross_CompileDXILFromSPIRV(
+ const SDL_ShaderCross_SPIRV_Info *info,
+ size_t *size)
+{
+#ifndef SDL_SHADERCROSS_DXC
+ SDL_SetError("%s", "Shadercross was not compiled with DXC support, cannot compile to SPIR-V!");
+ return NULL;
+#endif
+
+ if (info == NULL) {
+ SDL_InvalidParamError("info");
+ return NULL;
+ }
+
+ SPIRVTranspileContext *context = SDL_ShaderCross_INTERNAL_TranspileFromSPIRV(
+ SPVC_BACKEND_HLSL,
+ 60,
+ info->shader_stage,
+ info->bytecode,
+ info->bytecode_size,
+ info->entrypoint,
+ info->props);
+
+ if (context == NULL) {
+ return NULL;
+ }
+
+ SDL_ShaderCross_HLSL_Info hlslInfo;
+ hlslInfo.source = context->translated_source;
+ hlslInfo.entrypoint = context->cleansed_entrypoint;
+ hlslInfo.include_dir = NULL;
+ hlslInfo.defines = NULL;
+ hlslInfo.shader_stage = info->shader_stage;
+ hlslInfo.props = info->props;
+
+ void *result = SDL_ShaderCross_INTERNAL_CompileUsingDXC(
+ &hlslInfo,
+ false,
+ size);
+
+ SDL_ShaderCross_INTERNAL_DestroyTranspileContext(context);
+ return result;
+}
+
+static void *SDL_ShaderCross_INTERNAL_CreateShaderFromSPIRV(
+ SDL_GPUDevice *device,
+ const SDL_ShaderCross_SPIRV_Info *info,
+ const void *metadata,
+ SDL_PropertiesID metadataProps)
+{
+ SDL_GPUShaderFormat format;
+
+ SDL_GPUShaderFormat shader_formats = SDL_GetGPUShaderFormats(device);
+
+ if (shader_formats & SDL_GPU_SHADERFORMAT_SPIRV) {
+ if (info->shader_stage == SDL_SHADERCROSS_SHADERSTAGE_COMPUTE) {
+ SDL_GPUComputePipelineCreateInfo createInfo;
+ SDL_ShaderCross_ComputePipelineMetadata *pipelineMetadata = (SDL_ShaderCross_ComputePipelineMetadata *)metadata;
+ createInfo.code = info->bytecode;
+ createInfo.code_size = info->bytecode_size;
+ createInfo.entrypoint = info->entrypoint;
+ createInfo.format = SDL_GPU_SHADERFORMAT_SPIRV;
+ createInfo.num_samplers = pipelineMetadata->num_samplers;
+ createInfo.num_readonly_storage_textures = pipelineMetadata->num_readonly_storage_textures;
+ createInfo.num_readonly_storage_buffers = pipelineMetadata->num_readonly_storage_buffers;
+ createInfo.num_readwrite_storage_textures = pipelineMetadata->num_readwrite_storage_textures;
+ createInfo.num_readwrite_storage_buffers = pipelineMetadata->num_readwrite_storage_buffers;
+ createInfo.num_uniform_buffers = pipelineMetadata->num_uniform_buffers;
+ createInfo.threadcount_x = pipelineMetadata->threadcount_x;
+ createInfo.threadcount_y = pipelineMetadata->threadcount_y;
+ createInfo.threadcount_z = pipelineMetadata->threadcount_z;
+
+ createInfo.props = 0;
+
+ const char *debugName = SDL_GetStringProperty(info->props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING, NULL);
+ if (debugName) {
+ createInfo.props = SDL_CreateProperties();
+ SDL_SetStringProperty(createInfo.props, SDL_PROP_GPU_COMPUTEPIPELINE_CREATE_NAME_STRING, debugName);
+ }
+
+ SDL_GPUComputePipeline *result = SDL_CreateGPUComputePipeline(device, &createInfo);
+
+ if (createInfo.props != 0) {
+ SDL_DestroyProperties(createInfo.props);
+ }
+
+ return result;
+ } else {
+ SDL_GPUShaderCreateInfo createInfo;
+ SDL_ShaderCross_GraphicsShaderResourceInfo *resourceInfo = (SDL_ShaderCross_GraphicsShaderResourceInfo *)metadata;
+
+ createInfo.code = info->bytecode;
+ createInfo.code_size = info->bytecode_size;
+ createInfo.entrypoint = info->entrypoint;
+ createInfo.format = SDL_GPU_SHADERFORMAT_SPIRV;
+ createInfo.stage = (SDL_GPUShaderStage)info->shader_stage;
+ createInfo.num_samplers = resourceInfo->num_samplers;
+ createInfo.num_storage_textures = resourceInfo->num_storage_textures;
+ createInfo.num_storage_buffers = resourceInfo->num_storage_buffers;
+ createInfo.num_uniform_buffers = resourceInfo->num_uniform_buffers;
+
+ createInfo.props = 0;
+
+ const char *debugName = SDL_GetStringProperty(info->props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING, NULL);
+ if (debugName) {
+ createInfo.props = SDL_CreateProperties();
+ SDL_SetStringProperty(createInfo.props, SDL_PROP_GPU_SHADER_CREATE_NAME_STRING, debugName);
+ }
+
+ SDL_GPUShader *result = SDL_CreateGPUShader(device, &createInfo);
+
+ if (createInfo.props != 0) {
+ SDL_DestroyProperties(createInfo.props);
+ }
+
+ return result;
+ }
+ } else if (shader_formats & SDL_GPU_SHADERFORMAT_MSL) {
+ format = SDL_GPU_SHADERFORMAT_MSL;
+ } else {
+ if ((shader_formats & SDL_GPU_SHADERFORMAT_DXBC) && SDL_D3DCompile != NULL) {
+ format = SDL_GPU_SHADERFORMAT_DXBC;
+ }
+#ifdef SDL_SHADERCROSS_DXC
+ else if (shader_formats & SDL_GPU_SHADERFORMAT_DXIL) {
+ format = SDL_GPU_SHADERFORMAT_DXIL;
+ }
+#endif
+ else {
+ SDL_SetError("SDL_ShaderCross_INTERNAL_CreateShaderFromSPIRV: Unexpected SDL_GPUBackend");
+ return NULL;
+ }
+ }
+
+ return SDL_ShaderCross_INTERNAL_CompileFromSPIRV(
+ device,
+ info,
+ format,
+ metadataProps);
+}
+
+SDL_GPUShader *SDL_ShaderCross_CompileGraphicsShaderFromSPIRV(
+ SDL_GPUDevice *device,
+ const SDL_ShaderCross_SPIRV_Info *info,
+ const SDL_ShaderCross_GraphicsShaderResourceInfo *resourceInfo,
+ SDL_PropertiesID props)
+{
+ if (device == NULL) {
+ SDL_InvalidParamError("device");
+ return NULL;
+ }
+
+ if (info == NULL) {
+ SDL_InvalidParamError("info");
+ return NULL;
+ }
+
+ if (resourceInfo == NULL) {
+ SDL_InvalidParamError("metadata");
+ return NULL;
+ }
+
+ return (SDL_GPUShader *)SDL_ShaderCross_INTERNAL_CreateShaderFromSPIRV(
+ device,
+ info,
+ (void*) resourceInfo,
+ props);
+}
+
+SDL_GPUComputePipeline *SDL_ShaderCross_CompileComputePipelineFromSPIRV(
+ SDL_GPUDevice *device,
+ const SDL_ShaderCross_SPIRV_Info *info,
+ const SDL_ShaderCross_ComputePipelineMetadata *metadata,
+ SDL_PropertiesID props)
+{
+ if (device == NULL) {
+ SDL_InvalidParamError("device");
+ return NULL;
+ }
+
+ if (info == NULL) {
+ SDL_InvalidParamError("info");
+ return NULL;
+ }
+
+ if (metadata == NULL) {
+ SDL_InvalidParamError("metadata");
+ return NULL;
+ }
+
+ return (SDL_GPUComputePipeline *)SDL_ShaderCross_INTERNAL_CreateShaderFromSPIRV(
+ device,
+ info,
+ (void*) metadata,
+ props);
+}
+
+bool SDL_ShaderCross_Init(void)
+{
+ d3dcompiler_dll = SDL_LoadObject(D3DCOMPILER_DLL);
+
+ if (d3dcompiler_dll != NULL) {
+ SDL_D3DCompile = (pfn_D3DCompile)SDL_LoadFunction(d3dcompiler_dll, "D3DCompile");
+
+ if (SDL_D3DCompile == NULL) {
+ SDL_UnloadObject(d3dcompiler_dll);
+ d3dcompiler_dll = NULL;
+ }
+ }
+
+ return true;
+}
+
+void SDL_ShaderCross_Quit(void)
+{
+ if (d3dcompiler_dll != NULL) {
+ SDL_UnloadObject(d3dcompiler_dll);
+ d3dcompiler_dll = NULL;
+
+ SDL_D3DCompile = NULL;
+ }
+}
+
+SDL_GPUShaderFormat SDL_ShaderCross_GetSPIRVShaderFormats(void)
+{
+ /* SPIRV and MSL can always be output as-is with no preprocessing since we require SPIRV-Cross */
+ SDL_GPUShaderFormat supportedFormats = SDL_GPU_SHADERFORMAT_SPIRV | SDL_GPU_SHADERFORMAT_MSL;
+
+ /* SPIRV-Cross + DXC allows us to cross-compile to HLSL, then compile to DXIL */
+#ifdef SDL_SHADERCROSS_DXC
+ supportedFormats |= SDL_GPU_SHADERFORMAT_DXIL;
+#endif
+
+ /* SPIRV-Cross + FXC allows us to cross-compile to HLSL, then compile to DXBC */
+ if (d3dcompiler_dll != NULL) {
+ supportedFormats |= SDL_GPU_SHADERFORMAT_DXBC;
+ }
+
+ return supportedFormats;
+}
+
+SDL_GPUShaderFormat SDL_ShaderCross_GetHLSLShaderFormats(void)
+{
+ SDL_GPUShaderFormat supportedFormats = 0;
+
+ /* DXC allows compilation from HLSL to SPIRV */
+#ifdef SDL_SHADERCROSS_DXC
+ supportedFormats |= SDL_ShaderCross_GetSPIRVShaderFormats();
+#endif
+
+ /* FXC allows compilation of HLSL to DXBC */
+ if (d3dcompiler_dll != NULL) {
+ supportedFormats |= SDL_GPU_SHADERFORMAT_DXBC;
+ }
+
+ return supportedFormats;
+}
diff --git a/thirdparty/SDL_shadercross/src/SDL_shadercross.sym b/thirdparty/SDL_shadercross/src/SDL_shadercross.sym
new file mode 100644
index 000000000..9b0cec561
--- /dev/null
+++ b/thirdparty/SDL_shadercross/src/SDL_shadercross.sym
@@ -0,0 +1,19 @@
+SDL3_shadercross_0.0.0 {
+ global:
+ SDL_ShaderCross_Init;
+ SDL_ShaderCross_Quit;
+ SDL_ShaderCross_GetSPIRVShaderFormats;
+ SDL_ShaderCross_TranspileMSLFromSPIRV;
+ SDL_ShaderCross_TranspileHLSLFromSPIRV;
+ SDL_ShaderCross_CompileDXBCFromSPIRV;
+ SDL_ShaderCross_CompileDXILFromSPIRV;
+ SDL_ShaderCross_CompileGraphicsShaderFromSPIRV;
+ SDL_ShaderCross_CompileComputePipelineFromSPIRV;
+ SDL_ShaderCross_GetHLSLShaderFormats;
+ SDL_ShaderCross_CompileDXBCFromHLSL;
+ SDL_ShaderCross_CompileDXILFromHLSL;
+ SDL_ShaderCross_CompileSPIRVFromHLSL;
+ SDL_ShaderCross_ReflectGraphicsSPIRV;
+ SDL_ShaderCross_ReflectComputeSPIRV;
+ local: *;
+};
diff --git a/thirdparty/SDL_shadercross/src/cli.c b/thirdparty/SDL_shadercross/src/cli.c
new file mode 100644
index 000000000..a141cc562
--- /dev/null
+++ b/thirdparty/SDL_shadercross/src/cli.c
@@ -0,0 +1,824 @@
+/*
+ Simple DirectMedia Layer Shader Cross Compiler
+ Copyright (C) 2024 Sam Lantinga
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+*/
+
+#include
+#include
+#include
+#ifdef LEAKCHECK
+#include
+#endif
+
+// We can emit HLSL and JSON as a destination, so let's redefine the shader format enum.
+typedef enum ShaderCross_DestinationFormat {
+ SHADERFORMAT_INVALID,
+ SHADERFORMAT_SPIRV,
+ SHADERFORMAT_DXBC,
+ SHADERFORMAT_DXIL,
+ SHADERFORMAT_MSL,
+ SHADERFORMAT_HLSL,
+ SHADERFORMAT_JSON
+} ShaderCross_ShaderFormat;
+
+void print_help(void)
+{
+ int column_width = 32;
+ SDL_Log("Usage: shadercross [options]");
+ SDL_Log("Required options:\n");
+ SDL_Log(" %-*s %s", column_width, "-s | --source ", "Source language format. May be inferred from the filename. Values: [SPIRV, HLSL]");
+ SDL_Log(" %-*s %s", column_width, "-d | --dest ", "Destination format. May be inferred from the filename. Values: [DXBC, DXIL, MSL, SPIRV, HLSL, JSON]");
+ SDL_Log(" %-*s %s", column_width, "-t | --stage ", "Shader stage. May be inferred from the filename. Values: [vertex, fragment, compute]");
+ SDL_Log(" %-*s %s", column_width, "-e | --entrypoint ", "Entrypoint function name. Default: \"main\".");
+ SDL_Log(" %-*s %s", column_width, "-o | --output ", "Output file.");
+ SDL_Log("\n");
+ SDL_Log("Optional options:\n");
+ SDL_Log(" %-*s %s", column_width, "-I | --include ", "HLSL include directory. Only used with HLSL source.");
+ SDL_Log(" %-*s %s", column_width, "-D[=]", "HLSL define. Only used with HLSL source. Can be repeated.");
+ SDL_Log(" %-*s %s", column_width, "", "If = is omitted the define will be treated as equal to 1.");
+ SDL_Log(" %-*s %s", column_width, "--msl-version ", "Target MSL version. Only used when transpiling to MSL. The default is 1.2.0.");
+ SDL_Log(" %-*s %s", column_width, "-c | --cull", "Allow the compiler to cull unused resource bindings. This may lead to surprising binding behavior so be careful when enabling this!");
+ SDL_Log(" %-*s %s", column_width, "-g | --debug", "Generate debug information when possible. Shaders are valid only when graphics debuggers are attached.");
+ SDL_Log(" %-*s %s", column_width, "-p | --pssl", "Generate PSSL-compatible shader. Destination format should be HLSL.");
+}
+
+static const char* io_var_type_to_string(SDL_ShaderCross_IOVarType io_var_type, Uint32 vector_size)
+{
+ switch (io_var_type) {
+ case SDL_SHADERCROSS_IOVAR_TYPE_INT8:
+ switch (vector_size) {
+ case 1: return "byte";
+ case 2: return "byte2";
+ case 3: return "byte3";
+ case 4: return "byte4";
+ default: break;
+ }
+ break;
+ case SDL_SHADERCROSS_IOVAR_TYPE_UINT8:
+ switch (vector_size) {
+ case 1: return "ubyte";
+ case 2: return "ubyte2";
+ case 3: return "ubyte3";
+ case 4: return "ubyte4";
+ default: break;
+ }
+ break;
+ case SDL_SHADERCROSS_IOVAR_TYPE_INT16:
+ switch (vector_size) {
+ case 1: return "short";
+ case 2: return "short2";
+ case 3: return "short3";
+ case 4: return "short4";
+ default: break;
+ }
+ break;
+ case SDL_SHADERCROSS_IOVAR_TYPE_UINT16:
+ switch (vector_size) {
+ case 1: return "ushort";
+ case 2: return "ushort2";
+ case 3: return "ushort3";
+ case 4: return "ushort4";
+ default: break;
+ }
+ break;
+ case SDL_SHADERCROSS_IOVAR_TYPE_INT32:
+ switch (vector_size) {
+ case 1: return "int";
+ case 2: return "int2";
+ case 3: return "int3";
+ case 4: return "int4";
+ default: break;
+ }
+ break;
+ case SDL_SHADERCROSS_IOVAR_TYPE_UINT32:
+ switch (vector_size) {
+ case 1: return "uint";
+ case 2: return "uint2";
+ case 3: return "uint3";
+ case 4: return "uint4";
+ default: break;
+ }
+ break;
+ case SDL_SHADERCROSS_IOVAR_TYPE_INT64:
+ switch (vector_size) {
+ case 1: return "long";
+ case 2: return "long2";
+ case 3: return "long3";
+ case 4: return "long4";
+ default: break;
+ }
+ break;
+ case SDL_SHADERCROSS_IOVAR_TYPE_UINT64:
+ switch (vector_size) {
+ case 1: return "ulong";
+ case 2: return "ulong2";
+ case 3: return "ulong3";
+ case 4: return "ulong4";
+ default: break;
+ }
+ break;
+ case SDL_SHADERCROSS_IOVAR_TYPE_FLOAT16:
+ switch (vector_size) {
+ case 1: return "half";
+ case 2: return "half2";
+ case 3: return "half3";
+ case 4: return "half4";
+ default: break;
+ }
+ break;
+ case SDL_SHADERCROSS_IOVAR_TYPE_FLOAT32:
+ switch (vector_size) {
+ case 1: return "float";
+ case 2: return "float2";
+ case 3: return "float3";
+ case 4: return "float4";
+ default: break;
+ }
+ break;
+ case SDL_SHADERCROSS_IOVAR_TYPE_FLOAT64:
+ switch (vector_size) {
+ case 1: return "double";
+ case 2: return "double2";
+ case 3: return "double3";
+ case 4: return "double4";
+ default: break;
+ }
+ break;
+ case SDL_SHADERCROSS_IOVAR_TYPE_UNKNOWN:
+ default: break;
+ }
+
+ SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION, "Unknown IO variable type: vector_type=%u vector_size=%u", io_var_type, vector_size);
+ return "unknown";
+}
+
+void write_graphics_reflect_json(SDL_IOStream *outputIO, SDL_ShaderCross_GraphicsShaderMetadata *info)
+{
+ SDL_IOprintf(
+ outputIO,
+ "{ \"samplers\": %u, \"storage_textures\": %u, \"storage_buffers\": %u, \"uniform_buffers\": %u, ",
+ info->resource_info.num_samplers,
+ info->resource_info.num_storage_textures,
+ info->resource_info.num_storage_buffers,
+ info->resource_info.num_uniform_buffers
+ );
+
+ SDL_IOprintf(outputIO, "\"inputs\": [");
+ for (Uint32 i = 0; i < info->num_inputs; i++) {
+ const SDL_ShaderCross_IOVarMetadata* input = &info->inputs[i];
+ SDL_IOprintf(outputIO, "{ \"name\": \"%s\", \"type\": \"%s\", \"location\": %u }%s",
+ input->name,
+ io_var_type_to_string(input->vector_type, input->vector_size),
+ input->location,
+ i + 1 < info->num_inputs ? ", " : ""
+ );
+ }
+ SDL_IOprintf(outputIO, "], ");
+
+ SDL_IOprintf(outputIO, "\"outputs\": [");
+ for (Uint32 i = 0; i < info->num_outputs; i++) {
+ const SDL_ShaderCross_IOVarMetadata* output = &info->outputs[i];
+ SDL_IOprintf(outputIO, "{ \"name\": \"%s\", \"type\": \"%s\", \"location\": %u }%s",
+ output->name,
+ io_var_type_to_string(output->vector_type, output->vector_size),
+ output->location,
+ i + 1 < info->num_outputs ? ", " : ""
+ );
+ }
+ SDL_IOprintf(outputIO, "] }\n");
+}
+
+void write_compute_reflect_json(SDL_IOStream *outputIO, SDL_ShaderCross_ComputePipelineMetadata *info)
+{
+ SDL_IOprintf(
+ outputIO,
+ "{ \"samplers\": %u, \"readonly_storage_textures\": %u, \"readonly_storage_buffers\": %u, \"readwrite_storage_textures\": %u, \"readwrite_storage_buffers\": %u, \"uniform_buffers\": %u, \"threadcount_x\": %u, \"threadcount_y\": %u, \"threadcount_z\": %u }\n",
+ info->num_samplers,
+ info->num_readonly_storage_textures,
+ info->num_readonly_storage_buffers,
+ info->num_readwrite_storage_textures,
+ info->num_readwrite_storage_buffers,
+ info->num_uniform_buffers,
+ info->threadcount_x,
+ info->threadcount_y,
+ info->threadcount_z
+ );
+}
+
+int main(int argc, char *argv[])
+{
+ bool sourceValid = false;
+ bool destinationValid = false;
+ bool stageValid = false;
+
+ bool spirvSource = false;
+ ShaderCross_ShaderFormat destinationFormat = SHADERFORMAT_INVALID;
+ SDL_ShaderCross_ShaderStage shaderStage = SDL_SHADERCROSS_SHADERSTAGE_VERTEX;
+ char *outputFilename = NULL;
+ char *entrypointName = "main";
+ char *includeDir = NULL;
+
+ char *filename = NULL;
+ size_t fileSize = 0;
+ void *fileData = NULL;
+ bool accept_optionals = true;
+
+ SDL_ShaderCross_HLSL_Define *defines = NULL;
+ size_t numDefines = 0;
+
+ bool cullUnusedBindings = false;
+ bool enableDebug = false;
+ char *mslVersion = NULL;
+
+ bool psslCompat = false;
+
+#ifdef LEAKCHECK
+ SDLTest_TrackAllocations();
+#endif
+
+ for (int i = 1; i < argc; i += 1) {
+ char *arg = argv[i];
+
+ if (accept_optionals && arg[0] == '-') {
+ if (SDL_strcmp(arg, "-h") == 0 || SDL_strcmp(arg, "--help") == 0) {
+ print_help();
+ return 0;
+ } else if (SDL_strcmp(arg, "-s") == 0 || SDL_strcmp(arg, "--source") == 0) {
+ if (i + 1 >= argc) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s requires an argument", arg);
+ print_help();
+ return 1;
+ }
+ i += 1;
+ if (SDL_strcasecmp(argv[i], "spirv") == 0) {
+ spirvSource = true;
+ sourceValid = true;
+ } else if (SDL_strcasecmp(argv[i], "hlsl") == 0) {
+ spirvSource = false;
+ sourceValid = true;
+ } else {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Unrecognized source input %s, source must be SPIRV or HLSL!", argv[i]);
+ print_help();
+ return 1;
+ }
+ } else if (SDL_strcmp(arg, "-d") == 0 || SDL_strcmp(arg, "--dest") == 0) {
+ if (i + 1 >= argc) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s requires an argument", arg);
+ print_help();
+ return 1;
+ }
+ i += 1;
+ if (SDL_strcasecmp(argv[i], "DXBC") == 0) {
+ destinationFormat = SHADERFORMAT_DXBC;
+ destinationValid = true;
+ } else if (SDL_strcasecmp(argv[i], "DXIL") == 0) {
+ destinationFormat = SHADERFORMAT_DXIL;
+ destinationValid = true;
+ } else if (SDL_strcasecmp(argv[i], "MSL") == 0) {
+ destinationFormat = SHADERFORMAT_MSL;
+ destinationValid = true;
+ } else if (SDL_strcasecmp(argv[i], "SPIRV") == 0) {
+ destinationFormat = SHADERFORMAT_SPIRV;
+ destinationValid = true;
+ } else if (SDL_strcasecmp(argv[i], "HLSL") == 0) {
+ destinationFormat = SHADERFORMAT_HLSL;
+ destinationValid = true;
+ } else if (SDL_strcasecmp(argv[i], "JSON") == 0) {
+ destinationFormat = SHADERFORMAT_JSON;
+ destinationValid = true;
+ } else {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Unrecognized destination input %s, destination must be DXBC, DXIL, MSL or SPIRV!", argv[i]);
+ print_help();
+ return 1;
+ }
+ } else if (SDL_strcmp(arg, "-t") == 0 || SDL_strcmp(arg, "--stage") == 0) {
+ if (i + 1 >= argc) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s requires an argument", arg);
+ print_help();
+ return 1;
+ }
+ i += 1;
+ if (SDL_strcasecmp(argv[i], "vertex") == 0) {
+ shaderStage = SDL_SHADERCROSS_SHADERSTAGE_VERTEX;
+ stageValid = true;
+ } else if (SDL_strcasecmp(argv[i], "fragment") == 0) {
+ shaderStage = SDL_SHADERCROSS_SHADERSTAGE_FRAGMENT;
+ stageValid = true;
+ } else if (SDL_strcasecmp(argv[i], "compute") == 0) {
+ shaderStage = SDL_SHADERCROSS_SHADERSTAGE_COMPUTE;
+ stageValid = true;
+ } else {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Unrecognized shader stage input %s, must be vertex, fragment, or compute.", argv[i]);
+ print_help();
+ return 1;
+ }
+ } else if (SDL_strcmp(arg, "-e") == 0 || SDL_strcmp(arg, "--entrypoint") == 0) {
+ if (i + 1 >= argc) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s requires an argument", arg);
+ print_help();
+ return 1;
+ }
+ i += 1;
+ entrypointName = argv[i];
+ } else if (SDL_strcmp(arg, "-I") == 0 || SDL_strcmp(arg, "--include") == 0) {
+ if (includeDir) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "'%s' can only be used once", arg);
+ print_help();
+ return 1;
+ }
+ if (i + 1 >= argc) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s requires an argument", arg);
+ print_help();
+ return 1;
+ }
+ i += 1;
+ includeDir = argv[i];
+ } else if (SDL_strcmp(arg, "-o") == 0 || SDL_strcmp(arg, "--output") == 0) {
+ if (i + 1 >= argc) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s requires an argument", arg);
+ print_help();
+ return 1;
+ }
+ i += 1;
+ outputFilename = argv[i];
+ } else if (SDL_strncmp(argv[i], "-D", SDL_strlen("-D")) == 0) {
+ numDefines += 1;
+ defines = SDL_realloc(defines, sizeof(SDL_ShaderCross_HLSL_Define) * numDefines);
+ char *equalSign = SDL_strchr(argv[i], '=');
+ if (equalSign != NULL) {
+ defines[numDefines - 1].value = equalSign + 1;
+ size_t len = defines[numDefines - 1].value - argv[i] - 2;
+ defines[numDefines - 1].name = SDL_malloc(len);
+ SDL_utf8strlcpy(defines[numDefines - 1].name, (const char *)argv[i] + 2, len);
+ } else { // no '=' was found
+ defines[numDefines - 1].value = NULL;
+ size_t len = SDL_utf8strlen(argv[i]) + 1 - 2;
+ defines[numDefines - 1].name = SDL_malloc(len);
+ SDL_utf8strlcpy(defines[numDefines - 1].name, (const char *)argv[i] + 2, len);
+ }
+ } else if (SDL_strcmp(arg, "--msl-version") == 0) {
+ if (i + 1 >= argc) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s requires an argument", arg);
+ print_help();
+ return 1;
+ }
+ i += 1;
+ mslVersion = argv[i];
+ } else if (SDL_strcmp(arg, "-c") == 0 || SDL_strcmp(arg, "--cull") == 0) {
+ cullUnusedBindings = true;
+ } else if (SDL_strcmp(arg, "-g") == 0 || SDL_strcmp(arg, "--debug") == 0) {
+ enableDebug = true;
+ } else if (SDL_strcmp(arg, "-p") == 0 || SDL_strcmp(arg, "--pssl") == 0) {
+ psslCompat = true;
+ } else if (SDL_strcmp(arg, "--") == 0) {
+ accept_optionals = false;
+ } else {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s: Unknown argument: %s", argv[0], arg);
+ print_help();
+ return 1;
+ }
+ } else if (!filename) {
+ filename = arg;
+ } else {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s: Unknown argument: %s", argv[0], arg);
+ print_help();
+ return 1;
+ }
+ }
+ if (!filename) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s: missing input path", argv[0]);
+ print_help();
+ return 1;
+ }
+ if (!outputFilename) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s: missing output path", argv[0]);
+ print_help();
+ return 1;
+ }
+ fileData = SDL_LoadFile(filename, &fileSize);
+ if (fileData == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Invalid file (%s)", SDL_GetError());
+ return 1;
+ }
+
+ if (!SDL_ShaderCross_Init())
+ {
+ SDL_LogError(SDL_LOG_CATEGORY_GPU, "%s", "Failed to initialize shadercross!");
+ return 1;
+ }
+
+ if (!sourceValid) {
+ if (SDL_strstr(filename, ".spv")) {
+ spirvSource = true;
+ } else if (SDL_strstr(filename, ".hlsl")) {
+ spirvSource = false;
+ } else {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s", "Could not infer source format!");
+ print_help();
+ return 1;
+ }
+ }
+
+ if (!destinationValid) {
+ if (SDL_strstr(outputFilename, ".dxbc")) {
+ destinationFormat = SHADERFORMAT_DXBC;
+ } else if (SDL_strstr(outputFilename, ".dxil")) {
+ destinationFormat = SHADERFORMAT_DXIL;
+ } else if (SDL_strstr(outputFilename, ".msl")) {
+ destinationFormat = SHADERFORMAT_MSL;
+ } else if (SDL_strstr(outputFilename, ".spv")) {
+ destinationFormat = SHADERFORMAT_SPIRV;
+ } else if (SDL_strstr(outputFilename, ".hlsl")) {
+ destinationFormat = SHADERFORMAT_HLSL;
+ } else if (SDL_strstr(outputFilename, ".json")) {
+ destinationFormat = SHADERFORMAT_JSON;
+ } else {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s", "Could not infer destination format!");
+ print_help();
+ return 1;
+ }
+ }
+
+ if (!stageValid) {
+ if (SDL_strcasestr(filename, ".vert")) {
+ shaderStage = SDL_SHADERCROSS_SHADERSTAGE_VERTEX;
+ } else if (SDL_strcasestr(filename, ".frag")) {
+ shaderStage = SDL_SHADERCROSS_SHADERSTAGE_FRAGMENT;
+ } else if (SDL_strcasestr(filename, ".comp")) {
+ shaderStage = SDL_SHADERCROSS_SHADERSTAGE_COMPUTE;
+ } else {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Could not infer shader stage from filename!");
+ print_help();
+ return 1;
+ }
+ }
+
+ SDL_IOStream *outputIO = SDL_IOFromFile(outputFilename, "w");
+
+ if (outputIO == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s", SDL_GetError());
+ return 1;
+ }
+
+ size_t bytecodeSize;
+ int result = 0;
+
+ // null-terminate the defines array
+ if (defines != NULL) {
+ defines = SDL_realloc(defines, sizeof(SDL_ShaderCross_HLSL_Define) * (numDefines + 1));
+ defines[numDefines].name = NULL;
+ defines[numDefines].value = NULL;
+ }
+
+ if (spirvSource) {
+ SDL_ShaderCross_SPIRV_Info spirvInfo;
+ spirvInfo.bytecode = fileData;
+ spirvInfo.bytecode_size = fileSize;
+ spirvInfo.entrypoint = entrypointName;
+ spirvInfo.shader_stage = shaderStage;
+ spirvInfo.props = SDL_CreateProperties();
+ if (enableDebug) {
+ SDL_SetBooleanProperty(spirvInfo.props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_ENABLE_BOOLEAN, true);
+ SDL_SetBooleanProperty(spirvInfo.props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING, filename);
+ }
+ if (cullUnusedBindings) {
+ SDL_SetBooleanProperty(spirvInfo.props, SDL_SHADERCROSS_PROP_SHADER_CULL_UNUSED_BINDINGS_BOOLEAN, true);
+ }
+ if (mslVersion) {
+ SDL_SetStringProperty(spirvInfo.props, SDL_SHADERCROSS_PROP_SPIRV_MSL_VERSION_STRING, mslVersion);
+ }
+ if (psslCompat) {
+ SDL_SetBooleanProperty(spirvInfo.props, SDL_SHADERCROSS_PROP_SPIRV_PSSL_COMPATIBILITY_BOOLEAN, true);
+ }
+
+ switch (destinationFormat) {
+ case SHADERFORMAT_DXBC: {
+ Uint8 *buffer = SDL_ShaderCross_CompileDXBCFromSPIRV(
+ &spirvInfo,
+ &bytecodeSize);
+ if (buffer == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to compile DXBC from SPIR-V: %s", SDL_GetError());
+ result = 1;
+ } else {
+ SDL_WriteIO(outputIO, buffer, bytecodeSize);
+ SDL_free(buffer);
+ }
+ break;
+ }
+
+ case SHADERFORMAT_DXIL: {
+ Uint8 *buffer = SDL_ShaderCross_CompileDXILFromSPIRV(
+ &spirvInfo,
+ &bytecodeSize);
+ if (buffer == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to compile DXIL from SPIR-V: %s", SDL_GetError());
+ result = 1;
+ } else {
+ SDL_WriteIO(outputIO, buffer, bytecodeSize);
+ SDL_free(buffer);
+ }
+ break;
+ }
+
+ case SHADERFORMAT_MSL: {
+ char *buffer = SDL_ShaderCross_TranspileMSLFromSPIRV(
+ &spirvInfo);
+ if (buffer == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to transpile MSL from SPIR-V: %s", SDL_GetError());
+ result = 1;
+ } else {
+ SDL_IOprintf(outputIO, "%s", buffer);
+ SDL_free(buffer);
+ }
+ break;
+ }
+
+ case SHADERFORMAT_HLSL: {
+ char *buffer = SDL_ShaderCross_TranspileHLSLFromSPIRV(
+ &spirvInfo);
+ if (buffer == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to transpile HLSL from SPIRV: %s", SDL_GetError());
+ result = 1;
+ } else {
+ SDL_IOprintf(outputIO, "%s", buffer);
+ SDL_free(buffer);
+ }
+ break;
+ }
+
+ case SHADERFORMAT_SPIRV: {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Input and output are both SPIRV. Did you mean to do that?");
+ result = 1;
+ break;
+ }
+
+ case SHADERFORMAT_JSON: {
+ if (shaderStage == SDL_SHADERCROSS_SHADERSTAGE_COMPUTE) {
+ SDL_ShaderCross_ComputePipelineMetadata *info = SDL_ShaderCross_ReflectComputeSPIRV(
+ fileData,
+ fileSize,
+ 0);
+ if (info) {
+ write_compute_reflect_json(outputIO, info);
+ SDL_free(info);
+ } else {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to reflect SPIRV: %s", SDL_GetError());
+ result = 1;
+ }
+ } else {
+ SDL_ShaderCross_GraphicsShaderMetadata *info = SDL_ShaderCross_ReflectGraphicsSPIRV(
+ fileData,
+ fileSize,
+ 0);
+ if (info) {
+ write_graphics_reflect_json(outputIO, info);
+ SDL_free(info);
+ } else {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to reflect SPIRV: %s", SDL_GetError());
+ result = 1;
+ }
+ }
+ break;
+ }
+
+ case SHADERFORMAT_INVALID: {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Destination format not provided!");
+ result = 1;
+ break;
+ }
+ }
+
+ SDL_DestroyProperties(spirvInfo.props);
+ } else {
+ SDL_ShaderCross_HLSL_Info hlslInfo;
+ hlslInfo.source = fileData;
+ hlslInfo.entrypoint = entrypointName;
+ hlslInfo.include_dir = includeDir;
+ hlslInfo.defines = defines;
+ hlslInfo.shader_stage = shaderStage;
+ hlslInfo.props = SDL_CreateProperties();
+
+ if (enableDebug) {
+ SDL_SetBooleanProperty(hlslInfo.props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_ENABLE_BOOLEAN, true);
+ SDL_SetStringProperty(hlslInfo.props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING, filename);
+ }
+
+ if (cullUnusedBindings) {
+ SDL_SetBooleanProperty(hlslInfo.props, SDL_SHADERCROSS_PROP_SHADER_CULL_UNUSED_BINDINGS_BOOLEAN, true);
+ }
+
+ switch (destinationFormat) {
+ case SHADERFORMAT_DXBC: {
+ Uint8 *buffer = SDL_ShaderCross_CompileDXBCFromHLSL(
+ &hlslInfo,
+ &bytecodeSize);
+ if (buffer == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to compile DXBC from HLSL: %s", SDL_GetError());
+ result = 1;
+ } else {
+ SDL_WriteIO(outputIO, buffer, bytecodeSize);
+ SDL_free(buffer);
+ }
+ break;
+ }
+
+ case SHADERFORMAT_DXIL: {
+ Uint8 *buffer = SDL_ShaderCross_CompileDXILFromHLSL(
+ &hlslInfo,
+ &bytecodeSize);
+ if (buffer == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to compile DXIL from HLSL: %s", SDL_GetError());
+ result = 1;
+ } else {
+ SDL_WriteIO(outputIO, buffer, bytecodeSize);
+ SDL_free(buffer);
+ }
+ break;
+ }
+
+ // TODO: Should we have TranspileMSLFromHLSL?
+ case SHADERFORMAT_MSL: {
+ void *spirv = SDL_ShaderCross_CompileSPIRVFromHLSL(
+ &hlslInfo,
+ &bytecodeSize);
+ if (spirv == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to transpile MSL from HLSL: %s", SDL_GetError());
+ result = 1;
+ } else {
+ SDL_ShaderCross_SPIRV_Info spirvInfo;
+ spirvInfo.bytecode = spirv;
+ spirvInfo.bytecode_size = bytecodeSize;
+ spirvInfo.entrypoint = entrypointName;
+ spirvInfo.shader_stage = shaderStage;
+ spirvInfo.props = SDL_CreateProperties();
+
+ if (enableDebug) {
+ SDL_SetBooleanProperty(spirvInfo.props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_ENABLE_BOOLEAN, true);
+ SDL_SetStringProperty(spirvInfo.props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING, filename);
+ }
+ if (cullUnusedBindings) {
+ SDL_SetBooleanProperty(spirvInfo.props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_ENABLE_BOOLEAN, true);
+ }
+ if (mslVersion) {
+ SDL_SetStringProperty(spirvInfo.props, SDL_SHADERCROSS_PROP_SPIRV_MSL_VERSION_STRING, mslVersion);
+ }
+
+ char *buffer = SDL_ShaderCross_TranspileMSLFromSPIRV(
+ &spirvInfo);
+ if (buffer == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to transpile MSL from HLSL: %s", SDL_GetError());
+ result = 1;
+ } else {
+ SDL_IOprintf(outputIO, "%s", buffer);
+ SDL_free(spirv);
+ SDL_free(buffer);
+ }
+ SDL_DestroyProperties(spirvInfo.props);
+ }
+ break;
+ }
+
+ case SHADERFORMAT_SPIRV: {
+ Uint8 *buffer = SDL_ShaderCross_CompileSPIRVFromHLSL(
+ &hlslInfo,
+ &bytecodeSize);
+ if (buffer == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to compile SPIR-V From HLSL: %s", SDL_GetError());
+ result = 1;
+ } else {
+ SDL_WriteIO(outputIO, buffer, bytecodeSize);
+ SDL_free(buffer);
+ }
+ break;
+ }
+
+ case SHADERFORMAT_HLSL: {
+ void *spirv = SDL_ShaderCross_CompileSPIRVFromHLSL(
+ &hlslInfo,
+ &bytecodeSize);
+
+ if (spirv == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to compile HLSL to SPIRV: %s", SDL_GetError());
+ result = 1;
+ break;
+ }
+
+ SDL_ShaderCross_SPIRV_Info spirvInfo;
+ spirvInfo.bytecode = spirv;
+ spirvInfo.bytecode_size = bytecodeSize;
+ spirvInfo.entrypoint = entrypointName;
+ spirvInfo.shader_stage = shaderStage;
+ spirvInfo.props = SDL_CreateProperties();
+
+ if (enableDebug) {
+ SDL_SetBooleanProperty(spirvInfo.props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_ENABLE_BOOLEAN, true);
+ SDL_SetStringProperty(spirvInfo.props, SDL_SHADERCROSS_PROP_SHADER_DEBUG_NAME_STRING, filename);
+ }
+ if (cullUnusedBindings) {
+ SDL_SetBooleanProperty(spirvInfo.props, SDL_SHADERCROSS_PROP_SHADER_CULL_UNUSED_BINDINGS_BOOLEAN, true);
+ }
+ if (psslCompat) {
+ SDL_SetBooleanProperty(spirvInfo.props, SDL_SHADERCROSS_PROP_SPIRV_PSSL_COMPATIBILITY_BOOLEAN, true);
+ }
+
+ char *buffer = SDL_ShaderCross_TranspileHLSLFromSPIRV(
+ &spirvInfo);
+
+ if (buffer == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to transpile HLSL from SPIRV: %s", SDL_GetError());
+ result = 1;
+ break;
+ }
+
+ SDL_IOprintf(outputIO, "%s", buffer);
+ SDL_free(spirv);
+ SDL_free(buffer);
+ SDL_DestroyProperties(spirvInfo.props);
+ break;
+ }
+
+ case SHADERFORMAT_JSON: {
+ void *spirv = SDL_ShaderCross_CompileSPIRVFromHLSL(
+ &hlslInfo,
+ &bytecodeSize);
+
+ if (spirv == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to compile HLSL to SPIRV: %s", SDL_GetError());
+ result = 1;
+ break;
+ }
+
+ if (shaderStage == SDL_SHADERCROSS_SHADERSTAGE_COMPUTE) {
+ SDL_ShaderCross_ComputePipelineMetadata *info = SDL_ShaderCross_ReflectComputeSPIRV(
+ spirv,
+ bytecodeSize,
+ 0);
+ SDL_free(spirv);
+
+ if (info) {
+ write_compute_reflect_json(outputIO, info);
+ SDL_free(info);
+ } else {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to reflect SPIRV: %s", SDL_GetError());
+ result = 1;
+ }
+ } else {
+ SDL_ShaderCross_GraphicsShaderMetadata *info = SDL_ShaderCross_ReflectGraphicsSPIRV(
+ spirv,
+ bytecodeSize,
+ 0);
+ SDL_free(spirv);
+
+ if (info) {
+ write_graphics_reflect_json(outputIO, info);
+ SDL_free(info);
+ } else {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to reflect SPIRV: %s", SDL_GetError());
+ result = 1;
+ }
+ }
+
+ break;
+ }
+
+ case SHADERFORMAT_INVALID: {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Destination format not provided!");
+ result = 1;
+ break;
+ }
+ }
+
+ SDL_DestroyProperties(hlslInfo.props);
+ }
+
+ SDL_CloseIO(outputIO);
+ SDL_free(fileData);
+ for (Uint32 i = 0; i < numDefines; i += 1) {
+ SDL_free(defines[i].name);
+ }
+ SDL_free(defines);
+ SDL_ShaderCross_Quit();
+ SDL_Quit();
+
+#ifdef LEAKCHECK
+ SDLTest_LogAllocations();
+#endif
+
+ return result;
+}
diff --git a/thirdparty/SDL_shadercross/src/version.rc b/thirdparty/SDL_shadercross/src/version.rc
new file mode 100644
index 000000000..50c4dcebf
--- /dev/null
+++ b/thirdparty/SDL_shadercross/src/version.rc
@@ -0,0 +1,38 @@
+
+#include "winresrc.h"
+
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 3,0,0,0
+ PRODUCTVERSION 3,0,0,0
+ FILEFLAGSMASK 0x3fL
+ FILEFLAGS 0x0L
+ FILEOS 0x40004L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "\0"
+ VALUE "FileDescription", "SDL_shadercross\0"
+ VALUE "FileVersion", "3, 0, 0, 0\0"
+ VALUE "InternalName", "SDL_shadercross\0"
+ VALUE "LegalCopyright", "Copyright (C) 2024 Sam Lantinga\0"
+ VALUE "OriginalFilename", "SDL3_shadercross.dll\0"
+ VALUE "ProductName", "Simple DirectMedia Layer\0"
+ VALUE "ProductVersion", "3, 0, 0, 0\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
diff --git a/thirdparty/SPIRV-Cross/CMakeLists.txt b/thirdparty/SPIRV-Cross/CMakeLists.txt
new file mode 100644
index 000000000..8e5129c8b
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/CMakeLists.txt
@@ -0,0 +1,659 @@
+# Copyright 2016-2021 Google Inc.
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# At your option, you may choose to accept this material under either:
+# 1. The Apache License, Version 2.0, found at , or
+# 2. The MIT License, found at .
+#
+
+cmake_minimum_required(VERSION 3.10)
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_EXTENSIONS OFF)
+
+# Avoid a warning if parent project sets VERSION in project().
+if (${CMAKE_VERSION} VERSION_GREATER "3.0.1")
+ cmake_policy(SET CMP0048 NEW)
+endif()
+
+# Avoid error on Android NDK 27+'s CMake files
+cmake_policy(SET CMP0057 NEW)
+
+project(SPIRV-Cross LANGUAGES CXX C)
+enable_testing()
+
+include(GNUInstallDirs)
+
+option(SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS "Instead of throwing exceptions assert" OFF)
+option(SPIRV_CROSS_SHARED "Build the C API as a single shared library." OFF)
+option(SPIRV_CROSS_STATIC "Build the C and C++ API as static libraries." ON)
+option(SPIRV_CROSS_CLI "Build the CLI binary. Requires SPIRV_CROSS_STATIC." ON)
+option(SPIRV_CROSS_ENABLE_TESTS "Enable SPIRV-Cross tests." ON)
+
+option(SPIRV_CROSS_ENABLE_GLSL "Enable GLSL support." ON)
+option(SPIRV_CROSS_ENABLE_HLSL "Enable HLSL target support." ON)
+option(SPIRV_CROSS_ENABLE_MSL "Enable MSL target support." ON)
+option(SPIRV_CROSS_ENABLE_CPP "Enable C++ target support." ON)
+option(SPIRV_CROSS_ENABLE_REFLECT "Enable JSON reflection target support." ON)
+option(SPIRV_CROSS_ENABLE_C_API "Enable C API wrapper support in static library." ON)
+option(SPIRV_CROSS_ENABLE_UTIL "Enable util module support." ON)
+
+option(SPIRV_CROSS_SANITIZE_ADDRESS "Sanitize address" OFF)
+option(SPIRV_CROSS_SANITIZE_MEMORY "Sanitize memory" OFF)
+option(SPIRV_CROSS_SANITIZE_THREADS "Sanitize threads" OFF)
+option(SPIRV_CROSS_SANITIZE_UNDEFINED "Sanitize undefined" OFF)
+
+option(SPIRV_CROSS_NAMESPACE_OVERRIDE "" "Override the namespace used in the C++ API.")
+option(SPIRV_CROSS_SPV_HEADER_NAMESPACE_OVERRIDE "" "Override the namespace used by spirv.hpp (to workaround conflicts).")
+option(SPIRV_CROSS_FORCE_STL_TYPES "Force use of STL types instead of STL replacements in certain places. Might reduce performance." OFF)
+
+option(SPIRV_CROSS_SKIP_INSTALL "Skips installation targets." OFF)
+
+option(SPIRV_CROSS_WERROR "Fail build on warnings." OFF)
+option(SPIRV_CROSS_MISC_WARNINGS "Misc warnings useful for Travis runs." OFF)
+
+option(SPIRV_CROSS_FORCE_PIC "Force position-independent code for all targets." OFF)
+
+if(${CMAKE_GENERATOR} MATCHES "Makefile")
+ if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
+ message(FATAL_ERROR "Build out of tree to avoid overwriting Makefile")
+ endif()
+endif()
+
+set(spirv-compiler-options "")
+set(spirv-compiler-defines "")
+set(spirv-cross-link-flags "")
+
+message(STATUS "SPIRV-Cross: Finding Git version for SPIRV-Cross.")
+set(spirv-cross-build-version "unknown")
+find_package(Git)
+if (GIT_FOUND)
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} describe --always --tags --dirty=+
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ OUTPUT_VARIABLE spirv-cross-build-version
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ message(STATUS "SPIRV-Cross: Git hash: ${spirv-cross-build-version}")
+else()
+ message(STATUS "SPIRV-Cross: Git not found, using unknown build version.")
+endif()
+
+string(TIMESTAMP spirv-cross-timestamp)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/gitversion.in.h ${CMAKE_CURRENT_BINARY_DIR}/gitversion.h @ONLY)
+
+if (SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS)
+ set(spirv-compiler-defines ${spirv-compiler-defines} SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS)
+ if (NOT MSVC)
+ set(spirv-compiler-options ${spirv-compiler-options} -fno-exceptions)
+ endif()
+endif()
+
+if (SPIRV_CROSS_FORCE_STL_TYPES)
+ set(spirv-compiler-defines ${spirv-compiler-defines} SPIRV_CROSS_FORCE_STL_TYPES)
+endif()
+
+if (WIN32)
+ set(CMAKE_DEBUG_POSTFIX "d")
+endif()
+
+if (CMAKE_COMPILER_IS_GNUCXX OR ((${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") AND NOT MSVC))
+ set(spirv-compiler-options ${spirv-compiler-options} -Wall -Wextra -Wshadow -Wno-deprecated-declarations)
+ if (SPIRV_CROSS_MISC_WARNINGS)
+ if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
+ set(spirv-compiler-options ${spirv-compiler-options} -Wshorten-64-to-32)
+ endif()
+ endif()
+ if (SPIRV_CROSS_WERROR)
+ set(spirv-compiler-options ${spirv-compiler-options} -Werror)
+ endif()
+
+ if (SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS)
+ set(spirv-compiler-options ${spirv-compiler-options} -fno-exceptions)
+ endif()
+
+ if (SPIRV_CROSS_SANITIZE_ADDRESS)
+ set(spirv-compiler-options ${spirv-compiler-options} -fsanitize=address)
+ set(spirv-cross-link-flags "${spirv-cross-link-flags} -fsanitize=address")
+ endif()
+
+ if (SPIRV_CROSS_SANITIZE_UNDEFINED)
+ set(spirv-compiler-options ${spirv-compiler-options} -fsanitize=undefined)
+ set(spirv-cross-link-flags "${spirv-cross-link-flags} -fsanitize=undefined")
+ endif()
+
+ if (SPIRV_CROSS_SANITIZE_MEMORY)
+ set(spirv-compiler-options ${spirv-compiler-options} -fsanitize=memory)
+ set(spirv-cross-link-flags "${spirv-cross-link-flags} -fsanitize=memory")
+ endif()
+
+ if (SPIRV_CROSS_SANITIZE_THREADS)
+ set(spirv-compiler-options ${spirv-compiler-options} -fsanitize=thread)
+ set(spirv-cross-link-flags "${spirv-cross-link-flags} -fsanitize=thread")
+ endif()
+elseif (MSVC)
+ # AppVeyor spuriously fails in debug build on older MSVC without /bigobj.
+ set(spirv-compiler-options ${spirv-compiler-options} /wd4267 /wd4996 $<$:/bigobj>)
+endif()
+
+macro(extract_headers out_abs file_list)
+ set(${out_abs}) # absolute paths
+ foreach(_a ${file_list})
+ # get_filename_component only returns the longest extension, so use a regex
+ string(REGEX REPLACE ".*\\.(h|hpp)" "\\1" ext ${_a})
+
+ # For shared library, we are only interested in the C header.
+ if (SPIRV_CROSS_STATIC)
+ if(("${ext}" STREQUAL "h") OR ("${ext}" STREQUAL "hpp"))
+ list(APPEND ${out_abs} "${_a}")
+ endif()
+ else()
+ if("${ext}" STREQUAL "h")
+ list(APPEND ${out_abs} "${_a}")
+ endif()
+ endif()
+ endforeach()
+endmacro()
+
+macro(spirv_cross_add_library name config_name library_type)
+ add_library(${name} ${library_type} ${ARGN})
+ extract_headers(hdrs "${ARGN}")
+ target_include_directories(${name} PUBLIC
+ $
+ $)
+ set_target_properties(${name} PROPERTIES
+ PUBLIC_HEADERS "${hdrs}")
+ if (SPIRV_CROSS_FORCE_PIC)
+ set_target_properties(${name} PROPERTIES POSITION_INDEPENDENT_CODE ON)
+ endif()
+ target_compile_options(${name} PRIVATE ${spirv-compiler-options})
+ target_compile_definitions(${name} PRIVATE ${spirv-compiler-defines})
+ if (SPIRV_CROSS_NAMESPACE_OVERRIDE)
+ if (${library_type} MATCHES "STATIC")
+ target_compile_definitions(${name} PUBLIC SPIRV_CROSS_NAMESPACE_OVERRIDE=${SPIRV_CROSS_NAMESPACE_OVERRIDE})
+ else()
+ target_compile_definitions(${name} PRIVATE SPIRV_CROSS_NAMESPACE_OVERRIDE=${SPIRV_CROSS_NAMESPACE_OVERRIDE})
+ endif()
+ endif()
+
+ if (SPIRV_CROSS_SPV_HEADER_NAMESPACE_OVERRIDE)
+ if (${library_type} MATCHES "STATIC")
+ target_compile_definitions(${name} PUBLIC SPIRV_CROSS_SPV_HEADER_NAMESPACE_OVERRIDE=${SPIRV_CROSS_SPV_HEADER_NAMESPACE_OVERRIDE})
+ else()
+ target_compile_definitions(${name} PRIVATE SPIRV_CROSS_SPV_HEADER_NAMESPACE_OVERRIDE=${SPIRV_CROSS_SPV_HEADER_NAMESPACE_OVERRIDE})
+ endif()
+ endif()
+
+ if (NOT SPIRV_CROSS_SKIP_INSTALL)
+ install(TARGETS ${name}
+ EXPORT ${config_name}Config
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/spirv_cross)
+ install(FILES ${hdrs} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/spirv_cross)
+ install(EXPORT ${config_name}Config DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${config_name}/cmake)
+ export(TARGETS ${name} FILE ${config_name}Config.cmake)
+ endif()
+endmacro()
+
+set(spirv-cross-core-sources
+ ${CMAKE_CURRENT_SOURCE_DIR}/GLSL.std.450.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_common.hpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cross_containers.hpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cross_error_handling.hpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv.hpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cross.hpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cross.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_parser.hpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_parser.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cross_parsed_ir.hpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cross_parsed_ir.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cfg.hpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cfg.cpp)
+
+set(spirv-cross-c-sources
+ spirv.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cross_c.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cross_c.h)
+
+set(spirv-cross-glsl-sources
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_glsl.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_glsl.hpp)
+
+set(spirv-cross-cpp-sources
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cpp.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cpp.hpp)
+
+set(spirv-cross-msl-sources
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_msl.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_msl.hpp)
+
+set(spirv-cross-hlsl-sources
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_hlsl.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_hlsl.hpp)
+
+set(spirv-cross-reflect-sources
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_reflect.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_reflect.hpp)
+
+set(spirv-cross-util-sources
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cross_util.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_cross_util.hpp)
+
+set(spirv-cross-abi-major 0)
+set(spirv-cross-abi-minor 68)
+set(spirv-cross-abi-patch 0)
+set(SPIRV_CROSS_VERSION ${spirv-cross-abi-major}.${spirv-cross-abi-minor}.${spirv-cross-abi-patch})
+
+if (SPIRV_CROSS_STATIC)
+ if (NOT SPIRV_CROSS_SKIP_INSTALL)
+ configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/pkg-config/spirv-cross-c.pc.in
+ ${CMAKE_CURRENT_BINARY_DIR}/spirv-cross-c.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/spirv-cross-c.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ endif()
+
+ spirv_cross_add_library(spirv-cross-core spirv_cross_core STATIC
+ ${spirv-cross-core-sources})
+
+ if (SPIRV_CROSS_ENABLE_GLSL)
+ spirv_cross_add_library(spirv-cross-glsl spirv_cross_glsl STATIC
+ ${spirv-cross-glsl-sources})
+ target_link_libraries(spirv-cross-glsl PRIVATE spirv-cross-core)
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_CPP)
+ spirv_cross_add_library(spirv-cross-cpp spirv_cross_cpp STATIC
+ ${spirv-cross-cpp-sources})
+
+ if (SPIRV_CROSS_ENABLE_GLSL)
+ target_link_libraries(spirv-cross-cpp PRIVATE spirv-cross-glsl)
+ else()
+ message(FATAL_ERROR "Must enable GLSL support to enable C++ support.")
+ endif()
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_REFLECT)
+ if (SPIRV_CROSS_ENABLE_GLSL)
+ spirv_cross_add_library(spirv-cross-reflect spirv_cross_reflect STATIC
+ ${spirv-cross-reflect-sources})
+ else()
+ message(FATAL_ERROR "Must enable GLSL support to enable JSON reflection support.")
+ endif()
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_MSL)
+ spirv_cross_add_library(spirv-cross-msl spirv_cross_msl STATIC
+ ${spirv-cross-msl-sources})
+ if (SPIRV_CROSS_ENABLE_GLSL)
+ target_link_libraries(spirv-cross-msl PRIVATE spirv-cross-glsl)
+ else()
+ message(FATAL_ERROR "Must enable GLSL support to enable MSL support.")
+ endif()
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_HLSL)
+ spirv_cross_add_library(spirv-cross-hlsl spirv_cross_hlsl STATIC
+ ${spirv-cross-hlsl-sources})
+ if (SPIRV_CROSS_ENABLE_GLSL)
+ target_link_libraries(spirv-cross-hlsl PRIVATE spirv-cross-glsl)
+ else()
+ message(FATAL_ERROR "Must enable GLSL support to enable HLSL support.")
+ endif()
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_UTIL)
+ spirv_cross_add_library(spirv-cross-util spirv_cross_util STATIC
+ ${spirv-cross-util-sources})
+ target_link_libraries(spirv-cross-util PRIVATE spirv-cross-core)
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_C_API)
+ spirv_cross_add_library(spirv-cross-c spirv_cross_c STATIC
+ ${spirv-cross-c-sources})
+ target_include_directories(spirv-cross-c PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+ target_compile_definitions(spirv-cross-c PRIVATE HAVE_SPIRV_CROSS_GIT_VERSION)
+
+ if (SPIRV_CROSS_ENABLE_GLSL)
+ target_link_libraries(spirv-cross-c PRIVATE spirv-cross-glsl)
+ target_compile_definitions(spirv-cross-c PRIVATE SPIRV_CROSS_C_API_GLSL=1)
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_HLSL)
+ target_link_libraries(spirv-cross-c PRIVATE spirv-cross-hlsl)
+ target_compile_definitions(spirv-cross-c PRIVATE SPIRV_CROSS_C_API_HLSL=1)
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_MSL)
+ target_link_libraries(spirv-cross-c PRIVATE spirv-cross-msl)
+ target_compile_definitions(spirv-cross-c PRIVATE SPIRV_CROSS_C_API_MSL=1)
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_CPP)
+ target_link_libraries(spirv-cross-c PRIVATE spirv-cross-cpp)
+ target_compile_definitions(spirv-cross-c PRIVATE SPIRV_CROSS_C_API_CPP=1)
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_REFLECT)
+ target_link_libraries(spirv-cross-c PRIVATE spirv-cross-reflect)
+ target_compile_definitions(spirv-cross-c PRIVATE SPIRV_CROSS_C_API_REFLECT=1)
+ endif()
+ endif()
+endif()
+
+if (SPIRV_CROSS_SHARED)
+ if (NOT SPIRV_CROSS_SKIP_INSTALL)
+ configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/pkg-config/spirv-cross-c-shared.pc.in
+ ${CMAKE_CURRENT_BINARY_DIR}/spirv-cross-c-shared.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/spirv-cross-c-shared.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ endif()
+
+ spirv_cross_add_library(spirv-cross-c-shared spirv_cross_c_shared SHARED
+ ${spirv-cross-core-sources}
+ ${spirv-cross-c-sources})
+
+ target_include_directories(spirv-cross-c-shared PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+ target_compile_definitions(spirv-cross-c-shared PRIVATE HAVE_SPIRV_CROSS_GIT_VERSION)
+
+ if (SPIRV_CROSS_ENABLE_GLSL)
+ target_sources(spirv-cross-c-shared PRIVATE ${spirv-cross-glsl-sources})
+ target_compile_definitions(spirv-cross-c-shared PRIVATE SPIRV_CROSS_C_API_GLSL=1)
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_HLSL)
+ if (SPIRV_CROSS_ENABLE_GLSL)
+ target_sources(spirv-cross-c-shared PRIVATE ${spirv-cross-hlsl-sources})
+ else()
+ message(FATAL_ERROR "Must enable GLSL support to enable HLSL support.")
+ endif()
+ target_compile_definitions(spirv-cross-c-shared PRIVATE SPIRV_CROSS_C_API_HLSL=1)
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_MSL)
+ if (SPIRV_CROSS_ENABLE_GLSL)
+ target_sources(spirv-cross-c-shared PRIVATE ${spirv-cross-msl-sources})
+ else()
+ message(FATAL_ERROR "Must enable GLSL support to enable MSL support.")
+ endif()
+ target_compile_definitions(spirv-cross-c-shared PRIVATE SPIRV_CROSS_C_API_MSL=1)
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_CPP)
+ if (SPIRV_CROSS_ENABLE_GLSL)
+ target_sources(spirv-cross-c-shared PRIVATE ${spirv-cross-cpp-sources})
+ else()
+ message(FATAL_ERROR "Must enable GLSL support to enable C++ support.")
+ endif()
+ target_compile_definitions(spirv-cross-c-shared PRIVATE SPIRV_CROSS_C_API_CPP=1)
+ endif()
+
+ if (SPIRV_CROSS_ENABLE_REFLECT)
+ if (SPIRV_CROSS_ENABLE_GLSL)
+ target_sources(spirv-cross-c-shared PRIVATE ${spirv-cross-reflect-sources})
+ else()
+ message(FATAL_ERROR "Must enable GLSL support to enable JSON reflection support.")
+ endif()
+ target_compile_definitions(spirv-cross-c-shared PRIVATE SPIRV_CROSS_C_API_REFLECT=1)
+ endif()
+
+ if (CMAKE_COMPILER_IS_GNUCXX OR (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang"))
+ # Only export the C API.
+ target_compile_options(spirv-cross-c-shared PRIVATE -fvisibility=hidden)
+ if (NOT APPLE)
+ set_target_properties(spirv-cross-c-shared PROPERTIES LINK_FLAGS "${spirv-cross-link-flags}")
+ endif()
+ endif()
+
+ target_compile_definitions(spirv-cross-c-shared PRIVATE SPVC_EXPORT_SYMBOLS)
+
+ set_target_properties(spirv-cross-c-shared PROPERTIES
+ VERSION ${SPIRV_CROSS_VERSION}
+ SOVERSION ${spirv-cross-abi-major})
+endif()
+
+if (SPIRV_CROSS_CLI)
+ if (NOT SPIRV_CROSS_ENABLE_GLSL)
+ message(FATAL_ERROR "Must enable GLSL if building CLI.")
+ endif()
+
+ if (NOT SPIRV_CROSS_ENABLE_HLSL)
+ message(FATAL_ERROR "Must enable HLSL if building CLI.")
+ endif()
+
+ if (NOT SPIRV_CROSS_ENABLE_MSL)
+ message(FATAL_ERROR "Must enable MSL if building CLI.")
+ endif()
+
+ if (NOT SPIRV_CROSS_ENABLE_CPP)
+ message(FATAL_ERROR "Must enable C++ if building CLI.")
+ endif()
+
+ if (NOT SPIRV_CROSS_ENABLE_REFLECT)
+ message(FATAL_ERROR "Must enable reflection if building CLI.")
+ endif()
+
+ if (NOT SPIRV_CROSS_ENABLE_UTIL)
+ message(FATAL_ERROR "Must enable utils if building CLI.")
+ endif()
+
+ if (NOT SPIRV_CROSS_STATIC)
+ message(FATAL_ERROR "Must build static libraries if building CLI.")
+ endif()
+ add_executable(spirv-cross main.cpp)
+ target_compile_options(spirv-cross PRIVATE ${spirv-compiler-options})
+ target_include_directories(spirv-cross PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+ target_compile_definitions(spirv-cross PRIVATE ${spirv-compiler-defines} HAVE_SPIRV_CROSS_GIT_VERSION)
+ set_target_properties(spirv-cross PROPERTIES LINK_FLAGS "${spirv-cross-link-flags}")
+ if (NOT SPIRV_CROSS_SKIP_INSTALL)
+ install(TARGETS spirv-cross DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+ target_link_libraries(spirv-cross PRIVATE
+ spirv-cross-glsl
+ spirv-cross-hlsl
+ spirv-cross-cpp
+ spirv-cross-reflect
+ spirv-cross-msl
+ spirv-cross-util
+ spirv-cross-core)
+
+ if (SPIRV_CROSS_ENABLE_TESTS)
+ # Set up tests, using only the simplest modes of the test_shaders
+ # script. You have to invoke the script manually to:
+ # - Update the reference files
+ # - Get cycle counts from malisc
+ # - Keep failing outputs
+ if (${CMAKE_VERSION} VERSION_GREATER "3.12")
+ find_package(Python3)
+ if (${PYTHON3_FOUND})
+ set(PYTHONINTERP_FOUND ON)
+ set(PYTHON_VERSION_MAJOR 3)
+ set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
+ else()
+ set(PYTHONINTERP_FOUND OFF)
+ endif()
+ else()
+ find_package(PythonInterp)
+ endif()
+
+ find_program(spirv-cross-glslang NAMES glslangValidator
+ PATHS ${CMAKE_CURRENT_SOURCE_DIR}/external/glslang-build/output/bin
+ NO_DEFAULT_PATH)
+ find_program(spirv-cross-spirv-as NAMES spirv-as
+ PATHS ${CMAKE_CURRENT_SOURCE_DIR}/external/spirv-tools-build/output/bin
+ NO_DEFAULT_PATH)
+ find_program(spirv-cross-spirv-val NAMES spirv-val
+ PATHS ${CMAKE_CURRENT_SOURCE_DIR}/external/spirv-tools-build/output/bin
+ NO_DEFAULT_PATH)
+ find_program(spirv-cross-spirv-opt NAMES spirv-opt
+ PATHS ${CMAKE_CURRENT_SOURCE_DIR}/external/spirv-tools-build/output/bin
+ NO_DEFAULT_PATH)
+
+ if ((${spirv-cross-glslang} MATCHES "NOTFOUND") OR (${spirv-cross-spirv-as} MATCHES "NOTFOUND") OR (${spirv-cross-spirv-val} MATCHES "NOTFOUND") OR (${spirv-cross-spirv-opt} MATCHES "NOTFOUND"))
+ set(SPIRV_CROSS_ENABLE_TESTS OFF)
+ message("SPIRV-Cross: Testing will be disabled for SPIRV-Cross. Could not find glslang or SPIRV-Tools build under external/. To enable testing, run ./checkout_glslang_spirv_tools.sh and ./build_glslang_spirv_tools.sh first.")
+ else()
+ set(SPIRV_CROSS_ENABLE_TESTS ON)
+ message("SPIRV-Cross: Found glslang and SPIRV-Tools. Enabling test suite.")
+ message("SPIRV-Cross: Found glslangValidator in: ${spirv-cross-glslang}.")
+ message("SPIRV-Cross: Found spirv-as in: ${spirv-cross-spirv-as}.")
+ message("SPIRV-Cross: Found spirv-val in: ${spirv-cross-spirv-val}.")
+ message("SPIRV-Cross: Found spirv-opt in: ${spirv-cross-spirv-opt}.")
+ endif()
+
+ set(spirv-cross-externals
+ --glslang "${spirv-cross-glslang}"
+ --spirv-as "${spirv-cross-spirv-as}"
+ --spirv-opt "${spirv-cross-spirv-opt}"
+ --spirv-val "${spirv-cross-spirv-val}")
+
+ if (${PYTHONINTERP_FOUND} AND SPIRV_CROSS_ENABLE_TESTS)
+ if (${PYTHON_VERSION_MAJOR} GREATER 2)
+ add_executable(spirv-cross-c-api-test tests-other/c_api_test.c)
+ target_link_libraries(spirv-cross-c-api-test spirv-cross-c)
+ set_target_properties(spirv-cross-c-api-test PROPERTIES LINK_FLAGS "${spirv-cross-link-flags}")
+
+ add_executable(spirv-cross-small-vector-test tests-other/small_vector.cpp)
+ target_link_libraries(spirv-cross-small-vector-test spirv-cross-core)
+ set_target_properties(spirv-cross-small-vector-test PROPERTIES LINK_FLAGS "${spirv-cross-link-flags}")
+
+ add_executable(spirv-cross-msl-constexpr-test tests-other/msl_constexpr_test.cpp)
+ target_link_libraries(spirv-cross-msl-constexpr-test spirv-cross-c)
+ set_target_properties(spirv-cross-msl-constexpr-test PROPERTIES LINK_FLAGS "${spirv-cross-link-flags}")
+
+ add_executable(spirv-cross-msl-resource-binding-test tests-other/msl_resource_bindings.cpp)
+ target_link_libraries(spirv-cross-msl-resource-binding-test spirv-cross-c)
+ set_target_properties(spirv-cross-msl-resource-binding-test PROPERTIES LINK_FLAGS "${spirv-cross-link-flags}")
+
+ add_executable(spirv-cross-hlsl-resource-binding-test tests-other/hlsl_resource_bindings.cpp)
+ target_link_libraries(spirv-cross-hlsl-resource-binding-test spirv-cross-c)
+ set_target_properties(spirv-cross-hlsl-resource-binding-test PROPERTIES LINK_FLAGS "${spirv-cross-link-flags}")
+
+ add_executable(spirv-cross-msl-ycbcr-conversion-test tests-other/msl_ycbcr_conversion_test.cpp)
+ target_link_libraries(spirv-cross-msl-ycbcr-conversion-test spirv-cross-c)
+ set_target_properties(spirv-cross-msl-ycbcr-conversion-test PROPERTIES LINK_FLAGS "${spirv-cross-link-flags}")
+
+ add_executable(spirv-cross-typed-id-test tests-other/typed_id_test.cpp)
+ target_link_libraries(spirv-cross-typed-id-test spirv-cross-core)
+ set_target_properties(spirv-cross-typed-id-test PROPERTIES LINK_FLAGS "${spirv-cross-link-flags}")
+
+ add_executable(spirv-cross-debug-lines-test tests-other/debug-lines.cpp)
+ target_link_libraries(spirv-cross-debug-lines-test spirv-cross-core)
+ set_target_properties(spirv-cross-debug-lines-test PROPERTIES LINK_FLAGS "${spirv-cross-link-flags}")
+
+ add_executable(spirv-cross-debug-info-test tests-other/debug-info.cpp)
+ target_link_libraries(spirv-cross-debug-info-test spirv-cross-core)
+ set_target_properties(spirv-cross-debug-info-test PROPERTIES LINK_FLAGS "${spirv-cross-link-flags}")
+
+ if (CMAKE_COMPILER_IS_GNUCXX OR (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang"))
+ target_compile_options(spirv-cross-c-api-test PRIVATE -std=c89 -Wall -Wextra)
+ endif()
+ add_test(NAME spirv-cross-c-api-test
+ COMMAND $ ${CMAKE_CURRENT_SOURCE_DIR}/tests-other/c_api_test.spv
+ ${spirv-cross-abi-major}
+ ${spirv-cross-abi-minor}
+ ${spirv-cross-abi-patch})
+ add_test(NAME spirv-cross-small-vector-test
+ COMMAND $)
+ add_test(NAME spirv-cross-msl-constexpr-test
+ COMMAND $ ${CMAKE_CURRENT_SOURCE_DIR}/tests-other/msl_constexpr_test.spv)
+ add_test(NAME spirv-cross-msl-resource-binding-test
+ COMMAND $ ${CMAKE_CURRENT_SOURCE_DIR}/tests-other/msl_resource_binding.spv)
+ add_test(NAME spirv-cross-hlsl-resource-binding-test
+ COMMAND $ ${CMAKE_CURRENT_SOURCE_DIR}/tests-other/hlsl_resource_binding.spv)
+ add_test(NAME spirv-cross-msl-ycbcr-conversion-test
+ COMMAND $ ${CMAKE_CURRENT_SOURCE_DIR}/tests-other/msl_ycbcr_conversion_test.spv)
+ add_test(NAME spirv-cross-msl-ycbcr-conversion-test-2
+ COMMAND $ ${CMAKE_CURRENT_SOURCE_DIR}/tests-other/msl_ycbcr_conversion_test_2.spv)
+ add_test(NAME spirv-cross-typed-id-test
+ COMMAND $)
+ add_test(NAME spirv-cross-debug-lines-test
+ COMMAND $ ${CMAKE_CURRENT_SOURCE_DIR}/tests-other/debug-lines.spv)
+ add_test(NAME spirv-cross-debug-info-test
+ COMMAND $ ${CMAKE_CURRENT_SOURCE_DIR}/tests-other/debug-info.spv)
+ add_test(NAME spirv-cross-test
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --parallel
+ ${spirv-cross-externals}
+ ${CMAKE_CURRENT_SOURCE_DIR}/shaders
+ WORKING_DIRECTORY $)
+ add_test(NAME spirv-cross-test-no-opt
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --parallel
+ ${spirv-cross-externals}
+ ${CMAKE_CURRENT_SOURCE_DIR}/shaders-no-opt
+ WORKING_DIRECTORY $)
+ add_test(NAME spirv-cross-test-metal
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --metal --parallel
+ ${spirv-cross-externals}
+ ${CMAKE_CURRENT_SOURCE_DIR}/shaders-msl
+ WORKING_DIRECTORY $)
+ add_test(NAME spirv-cross-test-metal-no-opt
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --metal --parallel
+ ${spirv-cross-externals}
+ ${CMAKE_CURRENT_SOURCE_DIR}/shaders-msl-no-opt
+ WORKING_DIRECTORY $)
+ add_test(NAME spirv-cross-test-hlsl
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --hlsl --parallel
+ ${spirv-cross-externals}
+ ${CMAKE_CURRENT_SOURCE_DIR}/shaders-hlsl
+ WORKING_DIRECTORY $)
+ add_test(NAME spirv-cross-test-hlsl-no-opt
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --hlsl --parallel
+ ${spirv-cross-externals}
+ ${CMAKE_CURRENT_SOURCE_DIR}/shaders-hlsl-no-opt
+ WORKING_DIRECTORY $)
+ add_test(NAME spirv-cross-test-opt
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --opt --parallel
+ ${spirv-cross-externals}
+ ${CMAKE_CURRENT_SOURCE_DIR}/shaders
+ WORKING_DIRECTORY $)
+ add_test(NAME spirv-cross-test-metal-opt
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --metal --opt --parallel
+ ${spirv-cross-externals}
+ ${CMAKE_CURRENT_SOURCE_DIR}/shaders-msl
+ WORKING_DIRECTORY $)
+ add_test(NAME spirv-cross-test-hlsl-opt
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --hlsl --opt --parallel
+ ${spirv-cross-externals}
+ ${CMAKE_CURRENT_SOURCE_DIR}/shaders-hlsl
+ WORKING_DIRECTORY $)
+ add_test(NAME spirv-cross-test-reflection
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --reflect --parallel
+ ${spirv-cross-externals}
+ ${CMAKE_CURRENT_SOURCE_DIR}/shaders-reflection
+ WORKING_DIRECTORY $)
+ add_test(NAME spirv-cross-test-ue4
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --msl --parallel
+ ${spirv-cross-externals}
+ ${CMAKE_CURRENT_SOURCE_DIR}/shaders-ue4
+ WORKING_DIRECTORY $)
+ add_test(NAME spirv-cross-test-ue4-opt
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --msl --opt --parallel
+ ${spirv-cross-externals}
+ ${CMAKE_CURRENT_SOURCE_DIR}/shaders-ue4
+ WORKING_DIRECTORY $)
+ add_test(NAME spirv-cross-test-ue4-no-opt
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --msl --parallel
+ ${spirv-cross-externals}
+ ${CMAKE_CURRENT_SOURCE_DIR}/shaders-ue4-no-opt
+ WORKING_DIRECTORY $)
+ endif()
+ elseif(NOT ${PYTHONINTERP_FOUND})
+ message(WARNING "SPIRV-Cross: Testing disabled. Could not find python3. If you have python3 installed try running "
+ "cmake with -DPYTHON_EXECUTABLE:FILEPATH=/path/to/python3 to help it find the executable")
+ endif()
+ endif()
+endif()
diff --git a/thirdparty/SPIRV-Cross/GLSL.std.450.h b/thirdparty/SPIRV-Cross/GLSL.std.450.h
new file mode 100644
index 000000000..2686fc4ea
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/GLSL.std.450.h
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2014-2016,2021 The Khronos Group, Inc.
+ * SPDX-License-Identifier: MIT
+ *
+ * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+ * STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+ * HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+*/
+
+#ifndef GLSLstd450_H
+#define GLSLstd450_H
+
+static const int GLSLstd450Version = 100;
+static const int GLSLstd450Revision = 3;
+
+enum GLSLstd450 {
+ GLSLstd450Bad = 0, // Don't use
+
+ GLSLstd450Round = 1,
+ GLSLstd450RoundEven = 2,
+ GLSLstd450Trunc = 3,
+ GLSLstd450FAbs = 4,
+ GLSLstd450SAbs = 5,
+ GLSLstd450FSign = 6,
+ GLSLstd450SSign = 7,
+ GLSLstd450Floor = 8,
+ GLSLstd450Ceil = 9,
+ GLSLstd450Fract = 10,
+
+ GLSLstd450Radians = 11,
+ GLSLstd450Degrees = 12,
+ GLSLstd450Sin = 13,
+ GLSLstd450Cos = 14,
+ GLSLstd450Tan = 15,
+ GLSLstd450Asin = 16,
+ GLSLstd450Acos = 17,
+ GLSLstd450Atan = 18,
+ GLSLstd450Sinh = 19,
+ GLSLstd450Cosh = 20,
+ GLSLstd450Tanh = 21,
+ GLSLstd450Asinh = 22,
+ GLSLstd450Acosh = 23,
+ GLSLstd450Atanh = 24,
+ GLSLstd450Atan2 = 25,
+
+ GLSLstd450Pow = 26,
+ GLSLstd450Exp = 27,
+ GLSLstd450Log = 28,
+ GLSLstd450Exp2 = 29,
+ GLSLstd450Log2 = 30,
+ GLSLstd450Sqrt = 31,
+ GLSLstd450InverseSqrt = 32,
+
+ GLSLstd450Determinant = 33,
+ GLSLstd450MatrixInverse = 34,
+
+ GLSLstd450Modf = 35, // second operand needs an OpVariable to write to
+ GLSLstd450ModfStruct = 36, // no OpVariable operand
+ GLSLstd450FMin = 37,
+ GLSLstd450UMin = 38,
+ GLSLstd450SMin = 39,
+ GLSLstd450FMax = 40,
+ GLSLstd450UMax = 41,
+ GLSLstd450SMax = 42,
+ GLSLstd450FClamp = 43,
+ GLSLstd450UClamp = 44,
+ GLSLstd450SClamp = 45,
+ GLSLstd450FMix = 46,
+ GLSLstd450IMix = 47, // Reserved
+ GLSLstd450Step = 48,
+ GLSLstd450SmoothStep = 49,
+
+ GLSLstd450Fma = 50,
+ GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to
+ GLSLstd450FrexpStruct = 52, // no OpVariable operand
+ GLSLstd450Ldexp = 53,
+
+ GLSLstd450PackSnorm4x8 = 54,
+ GLSLstd450PackUnorm4x8 = 55,
+ GLSLstd450PackSnorm2x16 = 56,
+ GLSLstd450PackUnorm2x16 = 57,
+ GLSLstd450PackHalf2x16 = 58,
+ GLSLstd450PackDouble2x32 = 59,
+ GLSLstd450UnpackSnorm2x16 = 60,
+ GLSLstd450UnpackUnorm2x16 = 61,
+ GLSLstd450UnpackHalf2x16 = 62,
+ GLSLstd450UnpackSnorm4x8 = 63,
+ GLSLstd450UnpackUnorm4x8 = 64,
+ GLSLstd450UnpackDouble2x32 = 65,
+
+ GLSLstd450Length = 66,
+ GLSLstd450Distance = 67,
+ GLSLstd450Cross = 68,
+ GLSLstd450Normalize = 69,
+ GLSLstd450FaceForward = 70,
+ GLSLstd450Reflect = 71,
+ GLSLstd450Refract = 72,
+
+ GLSLstd450FindILsb = 73,
+ GLSLstd450FindSMsb = 74,
+ GLSLstd450FindUMsb = 75,
+
+ GLSLstd450InterpolateAtCentroid = 76,
+ GLSLstd450InterpolateAtSample = 77,
+ GLSLstd450InterpolateAtOffset = 78,
+
+ GLSLstd450NMin = 79,
+ GLSLstd450NMax = 80,
+ GLSLstd450NClamp = 81,
+
+ GLSLstd450Count
+};
+
+#endif // #ifndef GLSLstd450_H
diff --git a/thirdparty/SPIRV-Cross/LICENSE b/thirdparty/SPIRV-Cross/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/thirdparty/SPIRV-Cross/LICENSES/Apache-2.0.txt b/thirdparty/SPIRV-Cross/LICENSES/Apache-2.0.txt
new file mode 100644
index 000000000..4ed90b952
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/LICENSES/Apache-2.0.txt
@@ -0,0 +1,208 @@
+Apache License
+
+Version 2.0, January 2004
+
+http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION,
+AND DISTRIBUTION
+
+ 1. Definitions.
+
+
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution
+as defined by Sections 1 through 9 of this document.
+
+
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright
+owner that is granting the License.
+
+
+
+"Legal Entity" shall mean the union of the acting entity and all other entities
+that control, are controlled by, or are under common control with that entity.
+For the purposes of this definition, "control" means (i) the power, direct
+or indirect, to cause the direction or management of such entity, whether
+by contract or otherwise, or (ii) ownership of fifty percent (50%) or more
+of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions
+granted by this License.
+
+
+
+"Source" form shall mean the preferred form for making modifications, including
+but not limited to software source code, documentation source, and configuration
+files.
+
+
+
+"Object" form shall mean any form resulting from mechanical transformation
+or translation of a Source form, including but not limited to compiled object
+code, generated documentation, and conversions to other media types.
+
+
+
+"Work" shall mean the work of authorship, whether in Source or Object form,
+made available under the License, as indicated by a copyright notice that
+is included in or attached to the work (an example is provided in the Appendix
+below).
+
+
+
+"Derivative Works" shall mean any work, whether in Source or Object form,
+that is based on (or derived from) the Work and for which the editorial revisions,
+annotations, elaborations, or other modifications represent, as a whole, an
+original work of authorship. For the purposes of this License, Derivative
+Works shall not include works that remain separable from, or merely link (or
+bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+
+
+"Contribution" shall mean any work of authorship, including the original version
+of the Work and any modifications or additions to that Work or Derivative
+Works thereof, that is intentionally submitted to Licensor for inclusion in
+the Work by the copyright owner or by an individual or Legal Entity authorized
+to submit on behalf of the copyright owner. For the purposes of this definition,
+"submitted" means any form of electronic, verbal, or written communication
+sent to the Licensor or its representatives, including but not limited to
+communication on electronic mailing lists, source code control systems, and
+issue tracking systems that are managed by, or on behalf of, the Licensor
+for the purpose of discussing and improving the Work, but excluding communication
+that is conspicuously marked or otherwise designated in writing by the copyright
+owner as "Not a Contribution."
+
+
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
+of whom a Contribution has been received by Licensor and subsequently incorporated
+within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of this
+License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable copyright license to reproduce, prepare
+Derivative Works of, publicly display, publicly perform, sublicense, and distribute
+the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of this License,
+each Contributor hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section) patent
+license to make, have made, use, offer to sell, sell, import, and otherwise
+transfer the Work, where such license applies only to those patent claims
+licensable by such Contributor that are necessarily infringed by their Contribution(s)
+alone or by combination of their Contribution(s) with the Work to which such
+Contribution(s) was submitted. If You institute patent litigation against
+any entity (including a cross-claim or counterclaim in a lawsuit) alleging
+that the Work or a Contribution incorporated within the Work constitutes direct
+or contributory patent infringement, then any patent licenses granted to You
+under this License for that Work shall terminate as of the date such litigation
+is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the Work or
+Derivative Works thereof in any medium, with or without modifications, and
+in Source or Object form, provided that You meet the following conditions:
+
+(a) You must give any other recipients of the Work or Derivative Works a copy
+of this License; and
+
+(b) You must cause any modified files to carry prominent notices stating that
+You changed the files; and
+
+(c) You must retain, in the Source form of any Derivative Works that You distribute,
+all copyright, patent, trademark, and attribution notices from the Source
+form of the Work, excluding those notices that do not pertain to any part
+of the Derivative Works; and
+
+(d) If the Work includes a "NOTICE" text file as part of its distribution,
+then any Derivative Works that You distribute must include a readable copy
+of the attribution notices contained within such NOTICE file, excluding those
+notices that do not pertain to any part of the Derivative Works, in at least
+one of the following places: within a NOTICE text file distributed as part
+of the Derivative Works; within the Source form or documentation, if provided
+along with the Derivative Works; or, within a display generated by the Derivative
+Works, if and wherever such third-party notices normally appear. The contents
+of the NOTICE file are for informational purposes only and do not modify the
+License. You may add Your own attribution notices within Derivative Works
+that You distribute, alongside or as an addendum to the NOTICE text from the
+Work, provided that such additional attribution notices cannot be construed
+as modifying the License.
+
+You may add Your own copyright statement to Your modifications and may provide
+additional or different license terms and conditions for use, reproduction,
+or distribution of Your modifications, or for any such Derivative Works as
+a whole, provided Your use, reproduction, and distribution of the Work otherwise
+complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise, any
+Contribution intentionally submitted for inclusion in the Work by You to the
+Licensor shall be under the terms and conditions of this License, without
+any additional terms or conditions. Notwithstanding the above, nothing herein
+shall supersede or modify the terms of any separate license agreement you
+may have executed with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade names,
+trademarks, service marks, or product names of the Licensor, except as required
+for reasonable and customary use in describing the origin of the Work and
+reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or agreed to
+in writing, Licensor provides the Work (and each Contributor provides its
+Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied, including, without limitation, any warranties
+or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR
+A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness
+of using or redistributing the Work and assume any risks associated with Your
+exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory, whether
+in tort (including negligence), contract, or otherwise, unless required by
+applicable law (such as deliberate and grossly negligent acts) or agreed to
+in writing, shall any Contributor be liable to You for damages, including
+any direct, indirect, special, incidental, or consequential damages of any
+character arising as a result of this License or out of the use or inability
+to use the Work (including but not limited to damages for loss of goodwill,
+work stoppage, computer failure or malfunction, or any and all other commercial
+damages or losses), even if such Contributor has been advised of the possibility
+of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing the Work
+or Derivative Works thereof, You may choose to offer, and charge a fee for,
+acceptance of support, warranty, indemnity, or other liability obligations
+and/or rights consistent with this License. However, in accepting such obligations,
+You may act only on Your own behalf and on Your sole responsibility, not on
+behalf of any other Contributor, and only if You agree to indemnify, defend,
+and hold each Contributor harmless for any liability incurred by, or claims
+asserted against, such Contributor by reason of your accepting any such warranty
+or additional liability. END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+To apply the Apache License to your work, attach the following boilerplate
+notice, with the fields enclosed by brackets "[]" replaced with your own identifying
+information. (Don't include the brackets!) The text should be enclosed in
+the appropriate comment syntax for the file format. We also recommend that
+a file or class name and description of purpose be included on the same "printed
+page" as the copyright notice for easier identification within third-party
+archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+
+you may not use this file except in compliance with the License.
+
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+
+distributed under the License is distributed on an "AS IS" BASIS,
+
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
+See the License for the specific language governing permissions and
+
+limitations under the License.
diff --git a/thirdparty/SPIRV-Cross/LICENSES/CC-BY-4.0.txt b/thirdparty/SPIRV-Cross/LICENSES/CC-BY-4.0.txt
new file mode 100644
index 000000000..3f92dfc5f
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/LICENSES/CC-BY-4.0.txt
@@ -0,0 +1,324 @@
+Creative Commons Attribution 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
+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
+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. 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.
+
+d. 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.
+
+e. 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.
+
+f. Licensed Material means the artistic or literary work, database, or other
+material to which the Licensor applied this Public License.
+
+g. 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.
+
+h. Licensor means the individual(s) or entity(ies) granting rights under this
+Public License.
+
+i. 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.
+
+j. 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.
+
+k. 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. 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.
+
+4. If You Share Adapted Material You produce, the Adapter's License You apply
+must not prevent recipients of the Adapted Material from complying with this
+Public License.
+
+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; 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.
+
+c. 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.
+
+d. 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.
+
+ e. 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/thirdparty/SPIRV-Cross/LICENSES/LicenseRef-KhronosFreeUse.txt b/thirdparty/SPIRV-Cross/LICENSES/LicenseRef-KhronosFreeUse.txt
new file mode 100644
index 000000000..430863bc9
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/LICENSES/LicenseRef-KhronosFreeUse.txt
@@ -0,0 +1,23 @@
+Copyright (c) 2014-2020 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and/or associated documentation files (the "Materials"),
+to deal in the Materials without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Materials, and to permit persons to whom the
+Materials are furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Materials.
+
+MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+IN THE MATERIALS.
diff --git a/thirdparty/SPIRV-Cross/LICENSES/MIT.txt b/thirdparty/SPIRV-Cross/LICENSES/MIT.txt
new file mode 100644
index 000000000..204b93da4
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/LICENSES/MIT.txt
@@ -0,0 +1,19 @@
+MIT License Copyright (c)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
+OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/thirdparty/SPIRV-Cross/NonSemanticShaderDebugInfo100.h b/thirdparty/SPIRV-Cross/NonSemanticShaderDebugInfo100.h
new file mode 100644
index 000000000..b276b560c
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/NonSemanticShaderDebugInfo100.h
@@ -0,0 +1,171 @@
+// Copyright (c) 2018-2024 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+#ifndef SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_
+#define SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ NonSemanticShaderDebugInfo100Version = 100,
+ NonSemanticShaderDebugInfo100Version_BitWidthPadding = 0x7fffffff
+};
+enum {
+ NonSemanticShaderDebugInfo100Revision = 6,
+ NonSemanticShaderDebugInfo100Revision_BitWidthPadding = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100Instructions {
+ NonSemanticShaderDebugInfo100DebugInfoNone = 0,
+ NonSemanticShaderDebugInfo100DebugCompilationUnit = 1,
+ NonSemanticShaderDebugInfo100DebugTypeBasic = 2,
+ NonSemanticShaderDebugInfo100DebugTypePointer = 3,
+ NonSemanticShaderDebugInfo100DebugTypeQualifier = 4,
+ NonSemanticShaderDebugInfo100DebugTypeArray = 5,
+ NonSemanticShaderDebugInfo100DebugTypeVector = 6,
+ NonSemanticShaderDebugInfo100DebugTypedef = 7,
+ NonSemanticShaderDebugInfo100DebugTypeFunction = 8,
+ NonSemanticShaderDebugInfo100DebugTypeEnum = 9,
+ NonSemanticShaderDebugInfo100DebugTypeComposite = 10,
+ NonSemanticShaderDebugInfo100DebugTypeMember = 11,
+ NonSemanticShaderDebugInfo100DebugTypeInheritance = 12,
+ NonSemanticShaderDebugInfo100DebugTypePtrToMember = 13,
+ NonSemanticShaderDebugInfo100DebugTypeTemplate = 14,
+ NonSemanticShaderDebugInfo100DebugTypeTemplateParameter = 15,
+ NonSemanticShaderDebugInfo100DebugTypeTemplateTemplateParameter = 16,
+ NonSemanticShaderDebugInfo100DebugTypeTemplateParameterPack = 17,
+ NonSemanticShaderDebugInfo100DebugGlobalVariable = 18,
+ NonSemanticShaderDebugInfo100DebugFunctionDeclaration = 19,
+ NonSemanticShaderDebugInfo100DebugFunction = 20,
+ NonSemanticShaderDebugInfo100DebugLexicalBlock = 21,
+ NonSemanticShaderDebugInfo100DebugLexicalBlockDiscriminator = 22,
+ NonSemanticShaderDebugInfo100DebugScope = 23,
+ NonSemanticShaderDebugInfo100DebugNoScope = 24,
+ NonSemanticShaderDebugInfo100DebugInlinedAt = 25,
+ NonSemanticShaderDebugInfo100DebugLocalVariable = 26,
+ NonSemanticShaderDebugInfo100DebugInlinedVariable = 27,
+ NonSemanticShaderDebugInfo100DebugDeclare = 28,
+ NonSemanticShaderDebugInfo100DebugValue = 29,
+ NonSemanticShaderDebugInfo100DebugOperation = 30,
+ NonSemanticShaderDebugInfo100DebugExpression = 31,
+ NonSemanticShaderDebugInfo100DebugMacroDef = 32,
+ NonSemanticShaderDebugInfo100DebugMacroUndef = 33,
+ NonSemanticShaderDebugInfo100DebugImportedEntity = 34,
+ NonSemanticShaderDebugInfo100DebugSource = 35,
+ NonSemanticShaderDebugInfo100DebugFunctionDefinition = 101,
+ NonSemanticShaderDebugInfo100DebugSourceContinued = 102,
+ NonSemanticShaderDebugInfo100DebugLine = 103,
+ NonSemanticShaderDebugInfo100DebugNoLine = 104,
+ NonSemanticShaderDebugInfo100DebugBuildIdentifier = 105,
+ NonSemanticShaderDebugInfo100DebugStoragePath = 106,
+ NonSemanticShaderDebugInfo100DebugEntryPoint = 107,
+ NonSemanticShaderDebugInfo100DebugTypeMatrix = 108,
+ NonSemanticShaderDebugInfo100InstructionsMax = 0x7fffffff
+};
+
+
+enum NonSemanticShaderDebugInfo100DebugInfoFlags {
+ NonSemanticShaderDebugInfo100None = 0x0000,
+ NonSemanticShaderDebugInfo100FlagIsProtected = 0x01,
+ NonSemanticShaderDebugInfo100FlagIsPrivate = 0x02,
+ NonSemanticShaderDebugInfo100FlagIsPublic = 0x03,
+ NonSemanticShaderDebugInfo100FlagIsLocal = 0x04,
+ NonSemanticShaderDebugInfo100FlagIsDefinition = 0x08,
+ NonSemanticShaderDebugInfo100FlagFwdDecl = 0x10,
+ NonSemanticShaderDebugInfo100FlagArtificial = 0x20,
+ NonSemanticShaderDebugInfo100FlagExplicit = 0x40,
+ NonSemanticShaderDebugInfo100FlagPrototyped = 0x80,
+ NonSemanticShaderDebugInfo100FlagObjectPointer = 0x100,
+ NonSemanticShaderDebugInfo100FlagStaticMember = 0x200,
+ NonSemanticShaderDebugInfo100FlagIndirectVariable = 0x400,
+ NonSemanticShaderDebugInfo100FlagLValueReference = 0x800,
+ NonSemanticShaderDebugInfo100FlagRValueReference = 0x1000,
+ NonSemanticShaderDebugInfo100FlagIsOptimized = 0x2000,
+ NonSemanticShaderDebugInfo100FlagIsEnumClass = 0x4000,
+ NonSemanticShaderDebugInfo100FlagTypePassByValue = 0x8000,
+ NonSemanticShaderDebugInfo100FlagTypePassByReference = 0x10000,
+ NonSemanticShaderDebugInfo100FlagUnknownPhysicalLayout = 0x20000,
+ NonSemanticShaderDebugInfo100DebugInfoFlagsMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100BuildIdentifierFlags {
+ NonSemanticShaderDebugInfo100IdentifierPossibleDuplicates = 0x01,
+ NonSemanticShaderDebugInfo100BuildIdentifierFlagsMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugBaseTypeAttributeEncoding {
+ NonSemanticShaderDebugInfo100Unspecified = 0,
+ NonSemanticShaderDebugInfo100Address = 1,
+ NonSemanticShaderDebugInfo100Boolean = 2,
+ NonSemanticShaderDebugInfo100Float = 3,
+ NonSemanticShaderDebugInfo100Signed = 4,
+ NonSemanticShaderDebugInfo100SignedChar = 5,
+ NonSemanticShaderDebugInfo100Unsigned = 6,
+ NonSemanticShaderDebugInfo100UnsignedChar = 7,
+ NonSemanticShaderDebugInfo100DebugBaseTypeAttributeEncodingMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugCompositeType {
+ NonSemanticShaderDebugInfo100Class = 0,
+ NonSemanticShaderDebugInfo100Structure = 1,
+ NonSemanticShaderDebugInfo100Union = 2,
+ NonSemanticShaderDebugInfo100DebugCompositeTypeMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugTypeQualifier {
+ NonSemanticShaderDebugInfo100ConstType = 0,
+ NonSemanticShaderDebugInfo100VolatileType = 1,
+ NonSemanticShaderDebugInfo100RestrictType = 2,
+ NonSemanticShaderDebugInfo100AtomicType = 3,
+ NonSemanticShaderDebugInfo100DebugTypeQualifierMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugOperation {
+ NonSemanticShaderDebugInfo100Deref = 0,
+ NonSemanticShaderDebugInfo100Plus = 1,
+ NonSemanticShaderDebugInfo100Minus = 2,
+ NonSemanticShaderDebugInfo100PlusUconst = 3,
+ NonSemanticShaderDebugInfo100BitPiece = 4,
+ NonSemanticShaderDebugInfo100Swap = 5,
+ NonSemanticShaderDebugInfo100Xderef = 6,
+ NonSemanticShaderDebugInfo100StackValue = 7,
+ NonSemanticShaderDebugInfo100Constu = 8,
+ NonSemanticShaderDebugInfo100Fragment = 9,
+ NonSemanticShaderDebugInfo100DebugOperationMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugImportedEntity {
+ NonSemanticShaderDebugInfo100ImportedModule = 0,
+ NonSemanticShaderDebugInfo100ImportedDeclaration = 1,
+ NonSemanticShaderDebugInfo100DebugImportedEntityMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_
diff --git a/thirdparty/SPIRV-Cross/README.md b/thirdparty/SPIRV-Cross/README.md
new file mode 100644
index 000000000..a1aa5511d
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/README.md
@@ -0,0 +1,558 @@
+
+
+# SPIRV-Cross
+
+SPIRV-Cross is a tool designed for parsing and converting SPIR-V to other shader languages.
+
+[](https://github.com/KhronosGroup/SPIRV-Cross/actions/workflows/main.yml)
+[](https://ci.appveyor.com/project/HansKristian-Work/SPIRV-Cross)
+
+## Features
+
+ - Convert SPIR-V to readable, usable and efficient GLSL
+ - Convert SPIR-V to readable, usable and efficient Metal Shading Language (MSL)
+ - Convert SPIR-V to readable, usable and efficient HLSL
+ - Convert SPIR-V to a JSON reflection format
+ - Convert SPIR-V to debuggable C++ [DEPRECATED]
+ - Reflection API to simplify the creation of Vulkan pipeline layouts
+ - Reflection API to modify and tweak OpDecorations
+ - Supports "all" of vertex, fragment, tessellation, geometry and compute shaders.
+
+SPIRV-Cross tries hard to emit readable and clean output from the SPIR-V.
+The goal is to emit GLSL or MSL that looks like it was written by a human and not awkward IR/assembly-like code.
+
+NOTE: Individual features are expected to be mostly complete, but it is possible that certain obscure GLSL features are not yet supported.
+However, most missing features are expected to be "trivial" improvements at this stage.
+
+## Building
+
+SPIRV-Cross has been tested on Linux, iOS/OSX, Windows and Android. CMake is the main build system.
+
+### NOTE: main branch rename
+
+On 2023-01-12, `master` was renamed to `main` as per Khronos policy.
+
+### Linux and macOS
+
+Building with CMake is recommended, as it is the only build system which is tested in continuous integration.
+It is also the only build system which has install commands and other useful build system features.
+
+However, you can just run `make` on the command line as a fallback if you only care about the CLI tool.
+
+A non-ancient GCC (4.8+) or Clang (3.x+) compiler is required as SPIRV-Cross uses C++11 extensively.
+
+### Windows
+
+Building with CMake is recommended, which is the only way to target MSVC.
+MinGW-w64 based compilation works with `make` as a fallback.
+
+### Android
+
+SPIRV-Cross is only useful as a library here. Use the CMake build to link SPIRV-Cross to your project.
+
+### C++ exceptions
+
+The make and CMake build flavors offer the option to treat exceptions as assertions. To disable exceptions for make just append `SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS=1` to the command line. For CMake append `-DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS=ON`. By default exceptions are enabled.
+
+### Static, shared and CLI
+
+You can use `-DSPIRV_CROSS_STATIC=ON/OFF` `-DSPIRV_CROSS_SHARED=ON/OFF` `-DSPIRV_CROSS_CLI=ON/OFF` to control which modules are built (and installed).
+
+### Installing SPIRV-Cross (vcpkg)
+
+Alternatively, you can build and install SPIRV-Cross using [vcpkg](https://github.com/Microsoft/vcpkg/) dependency manager:
+
+```
+git clone https://github.com/Microsoft/vcpkg.git
+cd vcpkg
+./bootstrap-vcpkg.sh
+./vcpkg integrate install
+./vcpkg install spirv-cross
+```
+
+The SPIRV-Cross port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository.
+
+## Usage
+
+### Using the C++ API
+
+The C++ API is the main API for SPIRV-Cross. For more in-depth documentation than what's provided in this README,
+please have a look at the [Wiki](https://github.com/KhronosGroup/SPIRV-Cross/wiki).
+**NOTE**: This API is not guaranteed to be ABI-stable, and it is highly recommended to link against this API statically.
+The API is generally quite stable, but it can change over time, see the C API for more stability.
+
+To perform reflection and convert to other shader languages you can use the SPIRV-Cross API.
+For example:
+
+```c++
+#include "spirv_glsl.hpp"
+#include
+#include
+
+extern std::vector load_spirv_file();
+
+int main()
+{
+ // Read SPIR-V from disk or similar.
+ std::vector spirv_binary = load_spirv_file();
+
+ spirv_cross::CompilerGLSL glsl(std::move(spirv_binary));
+
+ // The SPIR-V is now parsed, and we can perform reflection on it.
+ spirv_cross::ShaderResources resources = glsl.get_shader_resources();
+
+ // Get all sampled images in the shader.
+ for (auto &resource : resources.sampled_images)
+ {
+ unsigned set = glsl.get_decoration(resource.id, spv::DecorationDescriptorSet);
+ unsigned binding = glsl.get_decoration(resource.id, spv::DecorationBinding);
+ printf("Image %s at set = %u, binding = %u\n", resource.name.c_str(), set, binding);
+
+ // Modify the decoration to prepare it for GLSL.
+ glsl.unset_decoration(resource.id, spv::DecorationDescriptorSet);
+
+ // Some arbitrary remapping if we want.
+ glsl.set_decoration(resource.id, spv::DecorationBinding, set * 16 + binding);
+ }
+
+ // Set some options.
+ spirv_cross::CompilerGLSL::Options options;
+ options.version = 310;
+ options.es = true;
+ glsl.set_common_options(options);
+
+ // Compile to GLSL, ready to give to GL driver.
+ std::string source = glsl.compile();
+}
+```
+
+### Using the C API wrapper
+
+To facilitate C compatibility and compatibility with foreign programming languages, a C89-compatible API wrapper is provided. Unlike the C++ API,
+the goal of this wrapper is to be fully stable, both API and ABI-wise.
+This is the only interface which is supported when building SPIRV-Cross as a shared library.
+
+An important point of the wrapper is that all memory allocations are contained in the `spvc_context`.
+This simplifies the use of the API greatly. However, you should destroy the context as soon as reasonable,
+or use `spvc_context_release_allocations()` if you intend to reuse the `spvc_context` object again soon.
+
+Most functions return a `spvc_result`, where `SPVC_SUCCESS` is the only success code.
+For brevity, the code below does not do any error checking.
+
+```c
+#include
+
+const SpvId *spirv = get_spirv_data();
+size_t word_count = get_spirv_word_count();
+
+spvc_context context = NULL;
+spvc_parsed_ir ir = NULL;
+spvc_compiler compiler_glsl = NULL;
+spvc_compiler_options options = NULL;
+spvc_resources resources = NULL;
+const spvc_reflected_resource *list = NULL;
+const char *result = NULL;
+size_t count;
+size_t i;
+
+// Create context.
+spvc_context_create(&context);
+
+// Set debug callback.
+spvc_context_set_error_callback(context, error_callback, userdata);
+
+// Parse the SPIR-V.
+spvc_context_parse_spirv(context, spirv, word_count, &ir);
+
+// Hand it off to a compiler instance and give it ownership of the IR.
+spvc_context_create_compiler(context, SPVC_BACKEND_GLSL, ir, SPVC_CAPTURE_MODE_TAKE_OWNERSHIP, &compiler_glsl);
+
+// Do some basic reflection.
+spvc_compiler_create_shader_resources(compiler_glsl, &resources);
+spvc_resources_get_resource_list_for_type(resources, SPVC_RESOURCE_TYPE_UNIFORM_BUFFER, &list, &count);
+
+for (i = 0; i < count; i++)
+{
+ printf("ID: %u, BaseTypeID: %u, TypeID: %u, Name: %s\n", list[i].id, list[i].base_type_id, list[i].type_id,
+ list[i].name);
+ printf(" Set: %u, Binding: %u\n",
+ spvc_compiler_get_decoration(compiler_glsl, list[i].id, SpvDecorationDescriptorSet),
+ spvc_compiler_get_decoration(compiler_glsl, list[i].id, SpvDecorationBinding));
+}
+
+// Modify options.
+spvc_compiler_create_compiler_options(compiler_glsl, &options);
+spvc_compiler_options_set_uint(options, SPVC_COMPILER_OPTION_GLSL_VERSION, 330);
+spvc_compiler_options_set_bool(options, SPVC_COMPILER_OPTION_GLSL_ES, SPVC_FALSE);
+spvc_compiler_install_compiler_options(compiler_glsl, options);
+
+spvc_compiler_compile(compiler_glsl, &result);
+printf("Cross-compiled source: %s\n", result);
+
+// Frees all memory we allocated so far.
+spvc_context_destroy(context);
+```
+
+### Linking
+
+#### CMake add_subdirectory()
+
+This is the recommended way if you are using CMake and want to link against SPIRV-Cross statically.
+
+#### Integrating SPIRV-Cross in a custom build system
+
+To add SPIRV-Cross to your own codebase, just copy the source and header files from root directory
+and build the relevant .cpp files you need. Make sure to build with C++11 support, e.g. `-std=c++11` in GCC and Clang.
+Alternatively, the Makefile generates a libspirv-cross.a static library during build that can be linked in.
+
+#### Linking against SPIRV-Cross as a system library
+
+It is possible to link against SPIRV-Cross when it is installed as a system library,
+which would be mostly relevant for Unix-like platforms.
+
+##### pkg-config
+
+For Unix-based systems, a pkg-config is installed for the C API, e.g.:
+
+```
+$ pkg-config spirv-cross-c-shared --libs --cflags
+-I/usr/local/include/spirv_cross -L/usr/local/lib -lspirv-cross-c-shared
+```
+
+##### CMake
+
+If the project is installed, it can be found with `find_package()`, e.g.:
+
+```
+cmake_minimum_required(VERSION 3.5)
+set(CMAKE_C_STANDARD 99)
+project(Test LANGUAGES C)
+
+find_package(spirv_cross_c_shared)
+if (spirv_cross_c_shared_FOUND)
+ message(STATUS "Found SPIRV-Cross C API! :)")
+else()
+ message(STATUS "Could not find SPIRV-Cross C API! :(")
+endif()
+
+add_executable(test test.c)
+target_link_libraries(test spirv-cross-c-shared)
+```
+
+test.c:
+```c
+#include
+
+int main(void)
+{
+ spvc_context context;
+ spvc_context_create(&context);
+ spvc_context_destroy(context);
+}
+```
+
+### CLI
+
+The CLI is suitable for basic cross-compilation tasks, but it cannot support the full flexibility that the API can.
+Some examples below.
+
+#### Creating a SPIR-V file from GLSL with glslang
+
+```
+glslangValidator -H -V -o test.spv test.frag
+```
+
+NOTE: This assumes Vulkan GLSL input. In general, only modern GLSL (#version 330+ for desktop) can be compiled to SPIR-V.
+Typically when cross compiling GLSL, you start with modern GLSL and cross compile to older targets for compatibility,
+not the other way around.
+
+#### Converting a SPIR-V file to GLSL ES
+
+```
+glslangValidator -H -V -o test.spv shaders/comp/basic.comp
+./spirv-cross --version 310 --es test.spv
+```
+
+#### Converting to desktop GLSL
+
+```
+glslangValidator -H -V -o test.spv shaders/comp/basic.comp
+./spirv-cross --version 330 --no-es test.spv --output test.comp
+```
+
+#### Disable prettifying optimizations
+
+```
+glslangValidator -H -V -o test.spv shaders/comp/basic.comp
+./spirv-cross --version 310 --es test.spv --output test.comp --force-temporary
+```
+
+### Using shaders generated from C++ backend
+
+Please see `samples/cpp` where some GLSL shaders are compiled to SPIR-V, decompiled to C++ and run with test data.
+Reading through the samples should explain how to use the C++ interface.
+A simple Makefile is included to build all shaders in the directory.
+
+### Implementation notes
+
+When using SPIR-V and SPIRV-Cross as an intermediate step for cross-compiling between high level languages there are some considerations to take into account,
+as not all features used by one high-level language are necessarily supported natively by the target shader language.
+SPIRV-Cross aims to provide the tools needed to handle these scenarios in a clean and robust way, but some manual action is required to maintain compatibility.
+
+#### HLSL source to GLSL
+
+##### HLSL entry points
+
+When using SPIR-V shaders compiled from HLSL, there are some extra things you need to take care of.
+First make sure that the entry point is used correctly.
+If you forget to set the entry point correctly in glslangValidator (-e MyFancyEntryPoint),
+you will likely encounter this error message:
+
+```
+Cannot end a function before ending the current block.
+Likely cause: If this SPIR-V was created from glslang HLSL, make sure the entry point is valid.
+```
+
+##### Vertex/Fragment interface linking
+
+HLSL relies on semantics in order to effectively link together shader stages. In the SPIR-V generated by glslang, the transformation from HLSL to GLSL ends up looking like
+
+```c++
+struct VSOutput {
+ // SV_Position is rerouted to gl_Position
+ float4 position : SV_Position;
+ float4 coord : TEXCOORD0;
+};
+
+VSOutput main(...) {}
+```
+
+```c++
+struct VSOutput {
+ float4 coord;
+}
+layout(location = 0) out VSOutput _magicNameGeneratedByGlslang;
+```
+
+While this works, be aware of the type of the struct which is used in the vertex stage and the fragment stage.
+There may be issues if the structure type name differs in vertex stage and fragment stage.
+
+You can make use of the reflection interface to force the name of the struct type.
+
+```
+// Something like this for both vertex outputs and fragment inputs.
+compiler.set_name(varying_resource.base_type_id, "VertexFragmentLinkage");
+```
+
+Some platform may require identical variable name for both vertex outputs and fragment inputs. (for example MacOSX)
+to rename variable base on location, please add
+```
+--rename-interface-variable
+```
+
+#### HLSL source to legacy GLSL/ESSL
+
+HLSL tends to emit varying struct types to pass data between vertex and fragment.
+This is not supported in legacy GL/GLES targets, so to support this, varying structs are flattened.
+This is done automatically, but the API user might need to be aware that this is happening in order to support all cases.
+
+Modern GLES code like this:
+```c++
+struct Output {
+ vec4 a;
+ vec2 b;
+};
+out Output vout;
+```
+
+Is transformed into:
+```c++
+struct Output {
+ vec4 a;
+ vec2 b;
+};
+varying vec4 Output_a;
+varying vec2 Output_b;
+```
+
+Note that now, both the struct name and the member names will participate in the linking interface between vertex and fragment, so
+API users might want to ensure that both the struct names and member names match so that vertex outputs and fragment inputs can link properly.
+
+
+#### Separate image samplers (HLSL/Vulkan) for backends which do not support it (GLSL)
+
+Another thing you need to remember is when using samplers and textures in HLSL these are separable, and not directly compatible with GLSL. If you need to use this with desktop GL/GLES, you need to call `Compiler::build_combined_image_samplers` first before calling `Compiler::compile`, or you will get an exception.
+
+```c++
+// From main.cpp
+// Builds a mapping for all combinations of images and samplers.
+compiler->build_combined_image_samplers();
+
+// Give the remapped combined samplers new names.
+// Here you can also set up decorations if you want (binding = #N).
+for (auto &remap : compiler->get_combined_image_samplers())
+{
+ compiler->set_name(remap.combined_id, join("SPIRV_Cross_Combined", compiler->get_name(remap.image_id),
+ compiler->get_name(remap.sampler_id)));
+}
+```
+
+If your target is Vulkan GLSL, `--vulkan-semantics` will emit separate image samplers as you'd expect.
+The command line client calls `Compiler::build_combined_image_samplers` automatically, but if you're calling the library, you'll need to do this yourself.
+
+#### Descriptor sets (Vulkan GLSL) for backends which do not support them (pre HLSL 5.1 / GLSL)
+
+Descriptor sets are unique to Vulkan, so make sure that descriptor set + binding is remapped to a flat binding scheme (set always 0), so that other APIs can make sense of the bindings.
+This can be done with `Compiler::set_decoration(id, spv::DecorationDescriptorSet)`. For other backends like MSL and HLSL, descriptor sets
+can be used, with some minor caveats, see below.
+
+##### MSL 2.0+
+
+Metal supports indirect argument buffers (--msl-argument-buffers). In this case, descriptor sets become argument buffers,
+and bindings are mapped to [[id(N)]] within the argument buffer. One quirk is that arrays of resources consume multiple ids,
+where Vulkan does not. This can be worked around either from shader authoring stage
+or remapping bindings as needed to avoid the overlap.
+There is also a rich API to declare remapping schemes which is intended to work like
+the pipeline layout in Vulkan. See `CompilerMSL::add_msl_resource_binding`. Remapping combined image samplers for example
+must be split into two bindings in MSL, so it's possible to declare an id for the texture and sampler binding separately.
+
+##### HLSL - SM 5.1+
+
+In SM 5.1+, descriptor set bindings are interpreted as register spaces directly. In HLSL however, arrays of resources consume
+multiple binding slots where Vulkan does not, so there might be overlap if the SPIR-V was not authored with this in mind.
+This can be worked around either from shader authoring stage (don't assign overlapping bindings)
+or remap bindings in SPIRV-Cross as needed to avoid the overlap.
+
+#### Linking by name for targets which do not support explicit locations (legacy GLSL/ESSL)
+
+Modern GLSL and HLSL sources (and SPIR-V) relies on explicit layout(location) qualifiers to guide the linking process between shader stages,
+but older GLSL relies on symbol names to perform the linking. When emitting shaders with older versions, these layout statements will be removed,
+so it is important that the API user ensures that the names of I/O variables are sanitized so that linking will work properly.
+The reflection API can rename variables, struct types and struct members to deal with these scenarios using `Compiler::set_name` and friends.
+
+#### Clip-space conventions
+
+SPIRV-Cross can perform some common clip space conversions on gl_Position/SV_Position by enabling `CompilerGLSL::Options.vertex.fixup_clipspace`.
+While this can be convenient, it is recommended to modify the projection matrices instead as that can achieve the same result.
+
+For GLSL targets, enabling this will convert a shader which assumes `[0, w]` depth range (Vulkan / D3D / Metal) into `[-w, w]` range.
+For MSL and HLSL targets, enabling this will convert a shader in `[-w, w]` depth range (OpenGL) to `[0, w]` depth range.
+
+By default, the CLI will not enable `fixup_clipspace`, but in the API you might want to set an explicit value using `CompilerGLSL::set_options()`.
+
+Y-flipping of gl_Position and similar is also supported.
+The use of this is discouraged, because relying on vertex shader Y-flipping tends to get quite messy.
+To enable this, set `CompilerGLSL::Options.vertex.flip_vert_y` or `--flip-vert-y` in CLI.
+
+#### Reserved identifiers
+
+When cross-compiling, certain identifiers are considered to be reserved by the implementation.
+Code generated by SPIRV-Cross cannot emit these identifiers as they are reserved and used for various internal purposes,
+and such variables will typically show up as `_RESERVED_IDENTIFIER_FIXUP_`
+or some similar name to make it more obvious that an identifier has been renamed.
+
+Reflection output will follow the exact name specified in the SPIR-V module. It might not be a valid identifier in the C sense,
+as it may contain non-alphanumeric/non-underscore characters.
+
+Reserved identifiers currently assumed by the implementation are (in pseudo-regex):
+
+- _$digit+, e.g. `_100`, `_2`
+- _$digit+_.+, e.g. `_100_tmp`, `_2_foobar`. `_2Bar` is **not** reserved.
+- gl_- prefix
+- spv- prefix
+- SPIRV_Cross prefix. This prefix is generally used for interface variables where app needs to provide data for workaround purposes.
+ This identifier will not be rewritten, but be aware of potential collisions.
+- Double underscores (reserved by all target languages).
+
+Members of structs also have a reserved identifier:
+- _m$digit+$END, e.g. `_m20` and `_m40` are reserved, but not `_m40Foobar`.
+
+## Contributing
+
+Contributions to SPIRV-Cross are welcome. See Testing and Licensing sections for details.
+
+### Testing
+
+SPIRV-Cross maintains a test suite of shaders with reference output of how the output looks after going through a roundtrip through
+glslangValidator/spirv-as then back through SPIRV-Cross again.
+The reference files are stored inside the repository in order to be able to track regressions.
+
+All pull requests should ensure that test output does not change unexpectedly. This can be tested with:
+
+```
+./checkout_glslang_spirv_tools.sh # Checks out glslang and SPIRV-Tools at a fixed revision which matches the reference output.
+./build_glslang_spirv_tools.sh # Builds glslang and SPIRV-Tools.
+./test_shaders.sh # Runs over all changes and makes sure that there are no deltas compared to reference files.
+```
+
+`./test_shaders.sh` currently requires a Makefile setup with GCC/Clang to be set up.
+However, on Windows, this can be rather inconvenient if a MinGW environment is not set up.
+To use a spirv-cross binary you built with CMake (or otherwise), you can pass in an environment variable as such:
+
+```
+SPIRV_CROSS_PATH=path/to/custom/spirv-cross ./test_shaders.sh
+```
+
+However, when improving SPIRV-Cross there are of course legitimate cases where reference output should change.
+In these cases, run:
+
+```
+./update_test_shaders.sh # SPIRV_CROSS_PATH also works here.
+```
+
+to update the reference files and include these changes as part of the pull request.
+Always make sure you are running the correct version of glslangValidator as well as SPIRV-Tools when updating reference files.
+See `checkout_glslang_spirv_tools.sh` which revisions are currently expected. The revisions change regularly.
+
+In short, the main branch should always be able to run `./test_shaders.py shaders` and friends without failure.
+SPIRV-Cross uses Travis CI to test all pull requests, so it is not strictly needed to perform testing yourself if you have problems running it locally.
+A pull request which does not pass testing on Travis will not be accepted however.
+
+When adding support for new features to SPIRV-Cross, a new shader and reference file should be added which covers usage of the new shader features in question.
+Travis CI runs the test suite with the CMake, by running `ctest`. This is a more straight-forward alternative to `./test_shaders.sh`.
+
+### Licensing
+
+Contributors of new files should add a copyright header at the top of every new source code file with their copyright
+along with the Apache 2.0 licensing stub.
+
+### Formatting
+
+SPIRV-Cross uses `clang-format` to automatically format code.
+Please use `clang-format` with the style sheet found in `.clang-format` to automatically format code before submitting a pull request.
+
+To make things easy, the `format_all.sh` script can be used to format all
+source files in the library. In this directory, run the following from the
+command line:
+
+ ./format_all.sh
+
+## Regression testing
+
+In shaders/ a collection of shaders are maintained for purposes of regression testing.
+The current reference output is contained in reference/.
+`./test_shaders.py shaders` can be run to perform regression testing.
+
+See `./test_shaders.py --help` for more.
+
+### Metal backend
+
+To test the roundtrip path GLSL -> SPIR-V -> MSL, `--msl` can be added, e.g. `./test_shaders.py --msl shaders-msl`.
+
+### HLSL backend
+
+To test the roundtrip path GLSL -> SPIR-V -> HLSL, `--hlsl` can be added, e.g. `./test_shaders.py --hlsl shaders-hlsl`.
+
+### Updating regression tests
+
+When legitimate changes are found, use `--update` flag to update regression files.
+Otherwise, `./test_shaders.py` will fail with error code.
+
+### Mali Offline Compiler cycle counts
+
+To obtain a CSV of static shader cycle counts before and after going through spirv-cross, add
+`--malisc` flag to `./test_shaders`. This requires the Mali Offline Compiler to be installed in PATH.
+
diff --git a/thirdparty/SPIRV-Cross/cmake/gitversion.in.h b/thirdparty/SPIRV-Cross/cmake/gitversion.in.h
new file mode 100644
index 000000000..bff73e964
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/cmake/gitversion.in.h
@@ -0,0 +1,9 @@
+// Copyright 2016-2021 The Khronos Group Inc.
+// SPDX-License-Identifier: Apache-2.0
+
+#ifndef SPIRV_CROSS_GIT_VERSION_H_
+#define SPIRV_CROSS_GIT_VERSION_H_
+
+#define SPIRV_CROSS_GIT_REVISION "Git commit: @spirv-cross-build-version@ Timestamp: @spirv-cross-timestamp@"
+
+#endif
diff --git a/thirdparty/SPIRV-Cross/include/spirv_cross/barrier.hpp b/thirdparty/SPIRV-Cross/include/spirv_cross/barrier.hpp
new file mode 100644
index 000000000..4ca7f4d77
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/include/spirv_cross/barrier.hpp
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2015-2017 ARM Limited
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SPIRV_CROSS_BARRIER_HPP
+#define SPIRV_CROSS_BARRIER_HPP
+
+#include
+#include
+
+namespace spirv_cross
+{
+class Barrier
+{
+public:
+ Barrier()
+ {
+ count.store(0);
+ iteration.store(0);
+ }
+
+ void set_release_divisor(unsigned divisor)
+ {
+ this->divisor = divisor;
+ }
+
+ static inline void memoryBarrier()
+ {
+ std::atomic_thread_fence(std::memory_order_seq_cst);
+ }
+
+ void reset_counter()
+ {
+ count.store(0);
+ iteration.store(0);
+ }
+
+ void wait()
+ {
+ unsigned target_iteration = iteration.load(std::memory_order_relaxed) + 1;
+ // Overflows cleanly.
+ unsigned target_count = divisor * target_iteration;
+
+ // Barriers don't enforce memory ordering.
+ // Be as relaxed about the barrier as we possibly can!
+ unsigned c = count.fetch_add(1u, std::memory_order_relaxed);
+
+ if (c + 1 == target_count)
+ {
+ iteration.store(target_iteration, std::memory_order_relaxed);
+ }
+ else
+ {
+ // If we have more threads than the CPU, don't hog the CPU for very long periods of time.
+ while (iteration.load(std::memory_order_relaxed) != target_iteration)
+ std::this_thread::yield();
+ }
+ }
+
+private:
+ unsigned divisor = 1;
+ std::atomic count;
+ std::atomic iteration;
+};
+}
+
+#endif
diff --git a/thirdparty/SPIRV-Cross/include/spirv_cross/external_interface.h b/thirdparty/SPIRV-Cross/include/spirv_cross/external_interface.h
new file mode 100644
index 000000000..949654f5b
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/include/spirv_cross/external_interface.h
@@ -0,0 +1,127 @@
+/*
+ * Copyright 2015-2017 ARM Limited
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SPIRV_CROSS_EXTERNAL_INTERFACE_H
+#define SPIRV_CROSS_EXTERNAL_INTERFACE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+
+typedef struct spirv_cross_shader spirv_cross_shader_t;
+
+struct spirv_cross_interface
+{
+ spirv_cross_shader_t *(*construct)(void);
+ void (*destruct)(spirv_cross_shader_t *thiz);
+ void (*invoke)(spirv_cross_shader_t *thiz);
+};
+
+void spirv_cross_set_stage_input(spirv_cross_shader_t *thiz, unsigned location, void *data, size_t size);
+
+void spirv_cross_set_stage_output(spirv_cross_shader_t *thiz, unsigned location, void *data, size_t size);
+
+void spirv_cross_set_push_constant(spirv_cross_shader_t *thiz, void *data, size_t size);
+
+void spirv_cross_set_uniform_constant(spirv_cross_shader_t *thiz, unsigned location, void *data, size_t size);
+
+void spirv_cross_set_resource(spirv_cross_shader_t *thiz, unsigned set, unsigned binding, void **data, size_t size);
+
+const struct spirv_cross_interface *spirv_cross_get_interface(void);
+
+typedef enum spirv_cross_builtin {
+ SPIRV_CROSS_BUILTIN_POSITION = 0,
+ SPIRV_CROSS_BUILTIN_FRAG_COORD = 1,
+ SPIRV_CROSS_BUILTIN_WORK_GROUP_ID = 2,
+ SPIRV_CROSS_BUILTIN_NUM_WORK_GROUPS = 3,
+ SPIRV_CROSS_NUM_BUILTINS
+} spirv_cross_builtin;
+
+void spirv_cross_set_builtin(spirv_cross_shader_t *thiz, spirv_cross_builtin builtin, void *data, size_t size);
+
+#define SPIRV_CROSS_NUM_DESCRIPTOR_SETS 4
+#define SPIRV_CROSS_NUM_DESCRIPTOR_BINDINGS 16
+#define SPIRV_CROSS_NUM_STAGE_INPUTS 16
+#define SPIRV_CROSS_NUM_STAGE_OUTPUTS 16
+#define SPIRV_CROSS_NUM_UNIFORM_CONSTANTS 32
+
+enum spirv_cross_format
+{
+ SPIRV_CROSS_FORMAT_R8_UNORM = 0,
+ SPIRV_CROSS_FORMAT_R8G8_UNORM = 1,
+ SPIRV_CROSS_FORMAT_R8G8B8_UNORM = 2,
+ SPIRV_CROSS_FORMAT_R8G8B8A8_UNORM = 3,
+
+ SPIRV_CROSS_NUM_FORMATS
+};
+
+enum spirv_cross_wrap
+{
+ SPIRV_CROSS_WRAP_CLAMP_TO_EDGE = 0,
+ SPIRV_CROSS_WRAP_REPEAT = 1,
+
+ SPIRV_CROSS_NUM_WRAP
+};
+
+enum spirv_cross_filter
+{
+ SPIRV_CROSS_FILTER_NEAREST = 0,
+ SPIRV_CROSS_FILTER_LINEAR = 1,
+
+ SPIRV_CROSS_NUM_FILTER
+};
+
+enum spirv_cross_mipfilter
+{
+ SPIRV_CROSS_MIPFILTER_BASE = 0,
+ SPIRV_CROSS_MIPFILTER_NEAREST = 1,
+ SPIRV_CROSS_MIPFILTER_LINEAR = 2,
+
+ SPIRV_CROSS_NUM_MIPFILTER
+};
+
+struct spirv_cross_miplevel
+{
+ const void *data;
+ unsigned width, height;
+ size_t stride;
+};
+
+struct spirv_cross_sampler_info
+{
+ const struct spirv_cross_miplevel *mipmaps;
+ unsigned num_mipmaps;
+
+ enum spirv_cross_format format;
+ enum spirv_cross_wrap wrap_s;
+ enum spirv_cross_wrap wrap_t;
+ enum spirv_cross_filter min_filter;
+ enum spirv_cross_filter mag_filter;
+ enum spirv_cross_mipfilter mip_filter;
+};
+
+typedef struct spirv_cross_sampler_2d spirv_cross_sampler_2d_t;
+spirv_cross_sampler_2d_t *spirv_cross_create_sampler_2d(const struct spirv_cross_sampler_info *info);
+void spirv_cross_destroy_sampler_2d(spirv_cross_sampler_2d_t *samp);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/thirdparty/SPIRV-Cross/include/spirv_cross/image.hpp b/thirdparty/SPIRV-Cross/include/spirv_cross/image.hpp
new file mode 100644
index 000000000..a41ccdfbb
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/include/spirv_cross/image.hpp
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2015-2017 ARM Limited
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SPIRV_CROSS_IMAGE_HPP
+#define SPIRV_CROSS_IMAGE_HPP
+
+#ifndef GLM_SWIZZLE
+#define GLM_SWIZZLE
+#endif
+
+#ifndef GLM_FORCE_RADIANS
+#define GLM_FORCE_RADIANS
+#endif
+
+#include
+
+namespace spirv_cross
+{
+template
+struct image2DBase
+{
+ virtual ~image2DBase() = default;
+ inline virtual T load(glm::ivec2 coord) const
+ {
+ return T(0, 0, 0, 1);
+ }
+ inline virtual void store(glm::ivec2 coord, const T &v)
+ {
+ }
+};
+
+typedef image2DBase image2D;
+typedef image2DBase iimage2D;
+typedef image2DBase uimage2D;
+
+template
+inline T imageLoad(const image2DBase &image, glm::ivec2 coord)
+{
+ return image.load(coord);
+}
+
+template
+void imageStore(image2DBase &image, glm::ivec2 coord, const T &value)
+{
+ image.store(coord, value);
+}
+}
+
+#endif
diff --git a/thirdparty/SPIRV-Cross/include/spirv_cross/internal_interface.hpp b/thirdparty/SPIRV-Cross/include/spirv_cross/internal_interface.hpp
new file mode 100644
index 000000000..3ff7f8e25
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/include/spirv_cross/internal_interface.hpp
@@ -0,0 +1,604 @@
+/*
+ * Copyright 2015-2017 ARM Limited
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SPIRV_CROSS_INTERNAL_INTERFACE_HPP
+#define SPIRV_CROSS_INTERNAL_INTERFACE_HPP
+
+// This file must only be included by the shader generated by spirv-cross!
+
+#ifndef GLM_FORCE_SWIZZLE
+#define GLM_FORCE_SWIZZLE
+#endif
+
+#ifndef GLM_FORCE_RADIANS
+#define GLM_FORCE_RADIANS
+#endif
+
+#include
+
+#include "barrier.hpp"
+#include "external_interface.h"
+#include "image.hpp"
+#include "sampler.hpp"
+#include "thread_group.hpp"
+#include
+#include
+
+namespace internal
+{
+// Adaptor helpers to adapt GLSL access chain syntax to C++.
+// Don't bother with arrays of arrays on uniforms ...
+// Would likely need horribly complex variadic template munging.
+
+template
+struct Interface
+{
+ enum
+ {
+ ArraySize = 1,
+ Size = sizeof(T)
+ };
+
+ Interface()
+ : ptr(0)
+ {
+ }
+ T &get()
+ {
+ assert(ptr);
+ return *ptr;
+ }
+
+ T *ptr;
+};
+
+// For array types, return a pointer instead.
+template
+struct Interface
+{
+ enum
+ {
+ ArraySize = U,
+ Size = U * sizeof(T)
+ };
+
+ Interface()
+ : ptr(0)
+ {
+ }
+ T *get()
+ {
+ assert(ptr);
+ return ptr;
+ }
+
+ T *ptr;
+};
+
+// For case when array size is 1, avoid double dereference.
+template
+struct PointerInterface
+{
+ enum
+ {
+ ArraySize = 1,
+ Size = sizeof(T *)
+ };
+ enum
+ {
+ PreDereference = true
+ };
+
+ PointerInterface()
+ : ptr(0)
+ {
+ }
+
+ T &get()
+ {
+ assert(ptr);
+ return *ptr;
+ }
+
+ T *ptr;
+};
+
+// Automatically converts a pointer down to reference to match GLSL syntax.
+template
+struct DereferenceAdaptor
+{
+ DereferenceAdaptor(T **ptr)
+ : ptr(ptr)
+ {
+ }
+ T &operator[](unsigned index) const
+ {
+ return *(ptr[index]);
+ }
+ T **ptr;
+};
+
+// We can't have a linear array of T* since T* can be an abstract type in case of samplers.
+// We also need a list of pointers since we can have run-time length SSBOs.
+template
+struct PointerInterface
+{
+ enum
+ {
+ ArraySize = U,
+ Size = sizeof(T *) * U
+ };
+ enum
+ {
+ PreDereference = false
+ };
+ PointerInterface()
+ : ptr(0)
+ {
+ }
+
+ DereferenceAdaptor get()
+ {
+ assert(ptr);
+ return DereferenceAdaptor(ptr);
+ }
+
+ T **ptr;
+};
+
+// Resources can be more abstract and be unsized,
+// so we need to have an array of pointers for those cases.
+template
+struct Resource : PointerInterface
+{
+};
+
+// POD with no unknown sizes, so we can express these as flat arrays.
+template
+struct UniformConstant : Interface
+{
+};
+template
+struct StageInput : Interface
+{
+};
+template
+struct StageOutput : Interface
+{
+};
+template
+struct PushConstant : Interface
+{
+};
+}
+
+struct spirv_cross_shader
+{
+ struct PPSize
+ {
+ PPSize()
+ : ptr(0)
+ , size(0)
+ {
+ }
+ void **ptr;
+ size_t size;
+ };
+
+ struct PPSizeResource
+ {
+ PPSizeResource()
+ : ptr(0)
+ , size(0)
+ , pre_dereference(false)
+ {
+ }
+ void **ptr;
+ size_t size;
+ bool pre_dereference;
+ };
+
+ PPSizeResource resources[SPIRV_CROSS_NUM_DESCRIPTOR_SETS][SPIRV_CROSS_NUM_DESCRIPTOR_BINDINGS];
+ PPSize stage_inputs[SPIRV_CROSS_NUM_STAGE_INPUTS];
+ PPSize stage_outputs[SPIRV_CROSS_NUM_STAGE_OUTPUTS];
+ PPSize uniform_constants[SPIRV_CROSS_NUM_UNIFORM_CONSTANTS];
+ PPSize push_constant;
+ PPSize builtins[SPIRV_CROSS_NUM_BUILTINS];
+
+ template
+ void register_builtin(spirv_cross_builtin builtin, const U &value)
+ {
+ assert(!builtins[builtin].ptr);
+
+ builtins[builtin].ptr = (void **)&value.ptr;
+ builtins[builtin].size = sizeof(*value.ptr) * U::ArraySize;
+ }
+
+ void set_builtin(spirv_cross_builtin builtin, void *data, size_t size)
+ {
+ assert(builtins[builtin].ptr);
+ assert(size >= builtins[builtin].size);
+
+ *builtins[builtin].ptr = data;
+ }
+
+ template
+ void register_resource(const internal::Resource &value, unsigned set, unsigned binding)
+ {
+ assert(set < SPIRV_CROSS_NUM_DESCRIPTOR_SETS);
+ assert(binding < SPIRV_CROSS_NUM_DESCRIPTOR_BINDINGS);
+ assert(!resources[set][binding].ptr);
+
+ resources[set][binding].ptr = (void **)&value.ptr;
+ resources[set][binding].size = internal::Resource::Size;
+ resources[set][binding].pre_dereference = internal::Resource::PreDereference;
+ }
+
+ template
+ void register_stage_input(const internal::StageInput &value, unsigned location)
+ {
+ assert(location < SPIRV_CROSS_NUM_STAGE_INPUTS);
+ assert(!stage_inputs[location].ptr);
+
+ stage_inputs[location].ptr = (void **)&value.ptr;
+ stage_inputs[location].size = internal::StageInput::Size;
+ }
+
+ template
+ void register_stage_output(const internal::StageOutput &value, unsigned location)
+ {
+ assert(location < SPIRV_CROSS_NUM_STAGE_OUTPUTS);
+ assert(!stage_outputs[location].ptr);
+
+ stage_outputs[location].ptr = (void **)&value.ptr;
+ stage_outputs[location].size = internal::StageOutput::Size;
+ }
+
+ template
+ void register_uniform_constant(const internal::UniformConstant &value, unsigned location)
+ {
+ assert(location < SPIRV_CROSS_NUM_UNIFORM_CONSTANTS);
+ assert(!uniform_constants[location].ptr);
+
+ uniform_constants[location].ptr = (void **)&value.ptr;
+ uniform_constants[location].size = internal::UniformConstant::Size;
+ }
+
+ template
+ void register_push_constant(const internal::PushConstant &value)
+ {
+ assert(!push_constant.ptr);
+
+ push_constant.ptr = (void **)&value.ptr;
+ push_constant.size = internal::PushConstant::Size;
+ }
+
+ void set_stage_input(unsigned location, void *data, size_t size)
+ {
+ assert(location < SPIRV_CROSS_NUM_STAGE_INPUTS);
+ assert(stage_inputs[location].ptr);
+ assert(size >= stage_inputs[location].size);
+
+ *stage_inputs[location].ptr = data;
+ }
+
+ void set_stage_output(unsigned location, void *data, size_t size)
+ {
+ assert(location < SPIRV_CROSS_NUM_STAGE_OUTPUTS);
+ assert(stage_outputs[location].ptr);
+ assert(size >= stage_outputs[location].size);
+
+ *stage_outputs[location].ptr = data;
+ }
+
+ void set_uniform_constant(unsigned location, void *data, size_t size)
+ {
+ assert(location < SPIRV_CROSS_NUM_UNIFORM_CONSTANTS);
+ assert(uniform_constants[location].ptr);
+ assert(size >= uniform_constants[location].size);
+
+ *uniform_constants[location].ptr = data;
+ }
+
+ void set_push_constant(void *data, size_t size)
+ {
+ assert(push_constant.ptr);
+ assert(size >= push_constant.size);
+
+ *push_constant.ptr = data;
+ }
+
+ void set_resource(unsigned set, unsigned binding, void **data, size_t size)
+ {
+ assert(set < SPIRV_CROSS_NUM_DESCRIPTOR_SETS);
+ assert(binding < SPIRV_CROSS_NUM_DESCRIPTOR_BINDINGS);
+ assert(resources[set][binding].ptr);
+ assert(size >= resources[set][binding].size);
+
+ // We're using the regular PointerInterface, dereference ahead of time.
+ if (resources[set][binding].pre_dereference)
+ *resources[set][binding].ptr = *data;
+ else
+ *resources[set][binding].ptr = data;
+ }
+};
+
+namespace spirv_cross
+{
+template
+struct BaseShader : spirv_cross_shader
+{
+ void invoke()
+ {
+ static_cast(this)->main();
+ }
+};
+
+struct FragmentResources
+{
+ internal::StageOutput gl_FragCoord;
+ void init(spirv_cross_shader &s)
+ {
+ s.register_builtin(SPIRV_CROSS_BUILTIN_FRAG_COORD, gl_FragCoord);
+ }
+#define gl_FragCoord __res->gl_FragCoord.get()
+};
+
+template
+struct FragmentShader : BaseShader>
+{
+ inline void main()
+ {
+ impl.main();
+ }
+
+ FragmentShader()
+ {
+ resources.init(*this);
+ impl.__res = &resources;
+ }
+
+ T impl;
+ Res resources;
+};
+
+struct VertexResources
+{
+ internal::StageOutput gl_Position;
+ void init(spirv_cross_shader &s)
+ {
+ s.register_builtin(SPIRV_CROSS_BUILTIN_POSITION, gl_Position);
+ }
+#define gl_Position __res->gl_Position.get()
+};
+
+template
+struct VertexShader : BaseShader>
+{
+ inline void main()
+ {
+ impl.main();
+ }
+
+ VertexShader()
+ {
+ resources.init(*this);
+ impl.__res = &resources;
+ }
+
+ T impl;
+ Res resources;
+};
+
+struct TessEvaluationResources
+{
+ inline void init(spirv_cross_shader &)
+ {
+ }
+};
+
+template
+struct TessEvaluationShader : BaseShader>
+{
+ inline void main()
+ {
+ impl.main();
+ }
+
+ TessEvaluationShader()
+ {
+ resources.init(*this);
+ impl.__res = &resources;
+ }
+
+ T impl;
+ Res resources;
+};
+
+struct TessControlResources
+{
+ inline void init(spirv_cross_shader &)
+ {
+ }
+};
+
+template
+struct TessControlShader : BaseShader>
+{
+ inline void main()
+ {
+ impl.main();
+ }
+
+ TessControlShader()
+ {
+ resources.init(*this);
+ impl.__res = &resources;
+ }
+
+ T impl;
+ Res resources;
+};
+
+struct GeometryResources
+{
+ inline void init(spirv_cross_shader &)
+ {
+ }
+};
+
+template
+struct GeometryShader : BaseShader>
+{
+ inline void main()
+ {
+ impl.main();
+ }
+
+ GeometryShader()
+ {
+ resources.init(*this);
+ impl.__res = &resources;
+ }
+
+ T impl;
+ Res resources;
+};
+
+struct ComputeResources
+{
+ internal::StageInput gl_WorkGroupID__;
+ internal::StageInput gl_NumWorkGroups__;
+ void init(spirv_cross_shader &s)
+ {
+ s.register_builtin(SPIRV_CROSS_BUILTIN_WORK_GROUP_ID, gl_WorkGroupID__);
+ s.register_builtin(SPIRV_CROSS_BUILTIN_NUM_WORK_GROUPS, gl_NumWorkGroups__);
+ }
+#define gl_WorkGroupID __res->gl_WorkGroupID__.get()
+#define gl_NumWorkGroups __res->gl_NumWorkGroups__.get()
+
+ Barrier barrier__;
+#define barrier() __res->barrier__.wait()
+};
+
+struct ComputePrivateResources
+{
+ uint32_t gl_LocalInvocationIndex__;
+#define gl_LocalInvocationIndex __priv_res.gl_LocalInvocationIndex__
+ glm::uvec3 gl_LocalInvocationID__;
+#define gl_LocalInvocationID __priv_res.gl_LocalInvocationID__
+ glm::uvec3 gl_GlobalInvocationID__;
+#define gl_GlobalInvocationID __priv_res.gl_GlobalInvocationID__
+};
+
+template
+struct ComputeShader : BaseShader>
+{
+ inline void main()
+ {
+ resources.barrier__.reset_counter();
+
+ for (unsigned z = 0; z < WorkGroupZ; z++)
+ for (unsigned y = 0; y < WorkGroupY; y++)
+ for (unsigned x = 0; x < WorkGroupX; x++)
+ impl[z][y][x].__priv_res.gl_GlobalInvocationID__ =
+ glm::uvec3(WorkGroupX, WorkGroupY, WorkGroupZ) * resources.gl_WorkGroupID__.get() +
+ glm::uvec3(x, y, z);
+
+ group.run();
+ group.wait();
+ }
+
+ ComputeShader()
+ : group(&impl[0][0][0])
+ {
+ resources.init(*this);
+ resources.barrier__.set_release_divisor(WorkGroupX * WorkGroupY * WorkGroupZ);
+
+ unsigned i = 0;
+ for (unsigned z = 0; z < WorkGroupZ; z++)
+ {
+ for (unsigned y = 0; y < WorkGroupY; y++)
+ {
+ for (unsigned x = 0; x < WorkGroupX; x++)
+ {
+ impl[z][y][x].__priv_res.gl_LocalInvocationID__ = glm::uvec3(x, y, z);
+ impl[z][y][x].__priv_res.gl_LocalInvocationIndex__ = i++;
+ impl[z][y][x].__res = &resources;
+ }
+ }
+ }
+ }
+
+ T impl[WorkGroupZ][WorkGroupY][WorkGroupX];
+ ThreadGroup group;
+ Res resources;
+};
+
+inline void memoryBarrierShared()
+{
+ Barrier::memoryBarrier();
+}
+inline void memoryBarrier()
+{
+ Barrier::memoryBarrier();
+}
+// TODO: Rest of the barriers.
+
+// Atomics
+template
+inline T atomicAdd(T &v, T a)
+{
+ static_assert(sizeof(std::atomic) == sizeof(T), "Cannot cast properly to std::atomic.");
+
+ // We need explicit memory barriers in GLSL to enfore any ordering.
+ // FIXME: Can we really cast this? There is no other way I think ...
+ return std::atomic_fetch_add_explicit(reinterpret_cast *>(&v), a, std::memory_order_relaxed);
+}
+}
+
+void spirv_cross_set_stage_input(spirv_cross_shader_t *shader, unsigned location, void *data, size_t size)
+{
+ shader->set_stage_input(location, data, size);
+}
+
+void spirv_cross_set_stage_output(spirv_cross_shader_t *shader, unsigned location, void *data, size_t size)
+{
+ shader->set_stage_output(location, data, size);
+}
+
+void spirv_cross_set_uniform_constant(spirv_cross_shader_t *shader, unsigned location, void *data, size_t size)
+{
+ shader->set_uniform_constant(location, data, size);
+}
+
+void spirv_cross_set_resource(spirv_cross_shader_t *shader, unsigned set, unsigned binding, void **data, size_t size)
+{
+ shader->set_resource(set, binding, data, size);
+}
+
+void spirv_cross_set_push_constant(spirv_cross_shader_t *shader, void *data, size_t size)
+{
+ shader->set_push_constant(data, size);
+}
+
+void spirv_cross_set_builtin(spirv_cross_shader_t *shader, spirv_cross_builtin builtin, void *data, size_t size)
+{
+ shader->set_builtin(builtin, data, size);
+}
+
+#endif
diff --git a/thirdparty/SPIRV-Cross/include/spirv_cross/sampler.hpp b/thirdparty/SPIRV-Cross/include/spirv_cross/sampler.hpp
new file mode 100644
index 000000000..020848095
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/include/spirv_cross/sampler.hpp
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2015-2017 ARM Limited
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SPIRV_CROSS_SAMPLER_HPP
+#define SPIRV_CROSS_SAMPLER_HPP
+
+#include
+
+namespace spirv_cross
+{
+struct spirv_cross_sampler_2d
+{
+ inline virtual ~spirv_cross_sampler_2d()
+ {
+ }
+};
+
+template
+struct sampler2DBase : spirv_cross_sampler_2d
+{
+ sampler2DBase(const spirv_cross_sampler_info *info)
+ {
+ mips.insert(mips.end(), info->mipmaps, info->mipmaps + info->num_mipmaps);
+ format = info->format;
+ wrap_s = info->wrap_s;
+ wrap_t = info->wrap_t;
+ min_filter = info->min_filter;
+ mag_filter = info->mag_filter;
+ mip_filter = info->mip_filter;
+ }
+
+ inline virtual T sample(glm::vec2 uv, float bias)
+ {
+ return sampleLod(uv, bias);
+ }
+
+ inline virtual T sampleLod(glm::vec2 uv, float lod)
+ {
+ if (mag_filter == SPIRV_CROSS_FILTER_NEAREST)
+ {
+ uv.x = wrap(uv.x, wrap_s, mips[0].width);
+ uv.y = wrap(uv.y, wrap_t, mips[0].height);
+ glm::vec2 uv_full = uv * glm::vec2(mips[0].width, mips[0].height);
+
+ int x = int(uv_full.x);
+ int y = int(uv_full.y);
+ return sample(x, y, 0);
+ }
+ else
+ {
+ return T(0, 0, 0, 1);
+ }
+ }
+
+ inline float wrap(float v, spirv_cross_wrap wrap, unsigned size)
+ {
+ switch (wrap)
+ {
+ case SPIRV_CROSS_WRAP_REPEAT:
+ return v - glm::floor(v);
+ case SPIRV_CROSS_WRAP_CLAMP_TO_EDGE:
+ {
+ float half = 0.5f / size;
+ return glm::clamp(v, half, 1.0f - half);
+ }
+
+ default:
+ return 0.0f;
+ }
+ }
+
+ std::vector mips;
+ spirv_cross_format format;
+ spirv_cross_wrap wrap_s;
+ spirv_cross_wrap wrap_t;
+ spirv_cross_filter min_filter;
+ spirv_cross_filter mag_filter;
+ spirv_cross_mipfilter mip_filter;
+};
+
+typedef sampler2DBase sampler2D;
+typedef sampler2DBase isampler2D;
+typedef sampler2DBase usampler2D;
+
+template
+inline T texture(const sampler2DBase &samp, const glm::vec2 &uv, float bias = 0.0f)
+{
+ return samp.sample(uv, bias);
+}
+}
+
+#endif
diff --git a/thirdparty/SPIRV-Cross/include/spirv_cross/thread_group.hpp b/thirdparty/SPIRV-Cross/include/spirv_cross/thread_group.hpp
new file mode 100644
index 000000000..b21558156
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/include/spirv_cross/thread_group.hpp
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2015-2017 ARM Limited
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SPIRV_CROSS_THREAD_GROUP_HPP
+#define SPIRV_CROSS_THREAD_GROUP_HPP
+
+#include
+#include
+#include
+
+namespace spirv_cross
+{
+template
+class ThreadGroup
+{
+public:
+ ThreadGroup(T *impl)
+ {
+ for (unsigned i = 0; i < Size; i++)
+ workers[i].start(&impl[i]);
+ }
+
+ void run()
+ {
+ for (auto &worker : workers)
+ worker.run();
+ }
+
+ void wait()
+ {
+ for (auto &worker : workers)
+ worker.wait();
+ }
+
+private:
+ struct Thread
+ {
+ enum State
+ {
+ Idle,
+ Running,
+ Dying
+ };
+ State state = Idle;
+
+ void start(T *impl)
+ {
+ worker = std::thread([impl, this] {
+ for (;;)
+ {
+ {
+ std::unique_lock l{ lock };
+ cond.wait(l, [this] { return state != Idle; });
+ if (state == Dying)
+ break;
+ }
+
+ impl->main();
+
+ std::lock_guard l{ lock };
+ state = Idle;
+ cond.notify_one();
+ }
+ });
+ }
+
+ void wait()
+ {
+ std::unique_lock l{ lock };
+ cond.wait(l, [this] { return state == Idle; });
+ }
+
+ void run()
+ {
+ std::lock_guard l{ lock };
+ state = Running;
+ cond.notify_one();
+ }
+
+ ~Thread()
+ {
+ if (worker.joinable())
+ {
+ {
+ std::lock_guard l{ lock };
+ state = Dying;
+ cond.notify_one();
+ }
+ worker.join();
+ }
+ }
+ std::thread worker;
+ std::condition_variable cond;
+ std::mutex lock;
+ };
+ Thread workers[Size];
+};
+}
+
+#endif
diff --git a/thirdparty/SPIRV-Cross/main.cpp b/thirdparty/SPIRV-Cross/main.cpp
new file mode 100644
index 000000000..759d38215
--- /dev/null
+++ b/thirdparty/SPIRV-Cross/main.cpp
@@ -0,0 +1,2099 @@
+/*
+ * Copyright 2015-2021 Arm Limited
+ * SPDX-License-Identifier: Apache-2.0 OR MIT
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * At your option, you may choose to accept this material under either:
+ * 1. The Apache License, Version 2.0, found at , or
+ * 2. The MIT License, found at .
+ */
+
+#include "spirv_cpp.hpp"
+#include "spirv_cross_util.hpp"
+#include "spirv_glsl.hpp"
+#include "spirv_hlsl.hpp"
+#include "spirv_msl.hpp"
+#include "spirv_parser.hpp"
+#include "spirv_reflect.hpp"
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#ifdef _WIN32
+#include
+#include
+#endif
+
+#ifdef HAVE_SPIRV_CROSS_GIT_VERSION
+#include "gitversion.h"
+#endif
+
+using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE;
+using namespace SPIRV_CROSS_NAMESPACE;
+using namespace std;
+
+#ifdef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
+static inline void THROW(const char *str)
+{
+ fprintf(stderr, "SPIRV-Cross will abort: %s\n", str);
+ fflush(stderr);
+ abort();
+}
+#else
+#define THROW(x) throw runtime_error(x)
+#endif
+
+struct CLIParser;
+struct CLICallbacks
+{
+ void add(const char *cli, const function &func)
+ {
+ callbacks[cli] = func;
+ }
+ unordered_map> callbacks;
+ function error_handler;
+ function default_handler;
+};
+
+struct CLIParser
+{
+ CLIParser(CLICallbacks cbs_, int argc_, char *argv_[])
+ : cbs(std::move(cbs_))
+ , argc(argc_)
+ , argv(argv_)
+ {
+ }
+
+ bool parse()
+ {
+#ifndef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
+ try
+#endif
+ {
+ while (argc && !ended_state)
+ {
+ const char *next = *argv++;
+ argc--;
+
+ if (*next != '-' && cbs.default_handler)
+ {
+ cbs.default_handler(next);
+ }
+ else
+ {
+ auto itr = cbs.callbacks.find(next);
+ if (itr == ::end(cbs.callbacks))
+ {
+ THROW("Invalid argument");
+ }
+
+ itr->second(*this);
+ }
+ }
+
+ return true;
+ }
+#ifndef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
+ catch (...)
+ {
+ if (cbs.error_handler)
+ {
+ cbs.error_handler();
+ }
+ return false;
+ }
+#endif
+ }
+
+ void end()
+ {
+ ended_state = true;
+ }
+
+ uint32_t next_uint()
+ {
+ if (!argc)
+ {
+ THROW("Tried to parse uint, but nothing left in arguments");
+ }
+
+ uint64_t val = stoul(*argv);
+ if (val > numeric_limits::max())
+ {
+ THROW("next_uint() out of range");
+ }
+
+ argc--;
+ argv++;
+
+ return uint32_t(val);
+ }
+
+ uint32_t next_hex_uint()
+ {
+ if (!argc)
+ {
+ THROW("Tried to parse uint, but nothing left in arguments");
+ }
+
+ uint64_t val = stoul(*argv, nullptr, 16);
+ if (val > numeric_limits::max())
+ {
+ THROW("next_uint() out of range");
+ }
+
+ argc--;
+ argv++;
+
+ return uint32_t(val);
+ }
+
+ double next_double()
+ {
+ if (!argc)
+ {
+ THROW("Tried to parse double, but nothing left in arguments");
+ }
+
+ double val = stod(*argv);
+
+ argc--;
+ argv++;
+
+ return val;
+ }
+
+ // Return a string only if it's not prefixed with `--`, otherwise return the default value
+ const char *next_value_string(const char *default_value)
+ {
+ if (!argc)
+ {
+ return default_value;
+ }
+
+ if (0 == strncmp("--", *argv, 2))
+ {
+ return default_value;
+ }
+
+ return next_string();
+ }
+
+ const char *next_string()
+ {
+ if (!argc)
+ {
+ THROW("Tried to parse string, but nothing left in arguments");
+ }
+
+ const char *ret = *argv;
+ argc--;
+ argv++;
+ return ret;
+ }
+
+ CLICallbacks cbs;
+ int argc;
+ char **argv;
+ bool ended_state = false;
+};
+
+#if defined(__clang__) || defined(__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#elif defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable : 4996)
+#endif
+
+static vector read_spirv_file_stdin()
+{
+#ifdef _WIN32
+ setmode(fileno(stdin), O_BINARY);
+#endif
+
+ vector buffer;
+ uint32_t tmp[256];
+ size_t ret;
+
+ while ((ret = fread(tmp, sizeof(uint32_t), 256, stdin)))
+ buffer.insert(buffer.end(), tmp, tmp + ret);
+
+ return buffer;
+}
+
+static vector read_spirv_file(const char *path)
+{
+ if (path[0] == '-' && path[1] == '\0')
+ return read_spirv_file_stdin();
+
+ FILE *file = fopen(path, "rb");
+ if (!file)
+ {
+ fprintf(stderr, "Failed to open SPIR-V file: %s\n", path);
+ return {};
+ }
+
+ fseek(file, 0, SEEK_END);
+ long len = ftell(file) / sizeof(uint32_t);
+ rewind(file);
+
+ vector spirv(len);
+ if (fread(spirv.data(), sizeof(uint32_t), len, file) != size_t(len))
+ spirv.clear();
+
+ fclose(file);
+ return spirv;
+}
+
+static bool write_string_to_file(const char *path, const char *string)
+{
+ FILE *file = fopen(path, "w");
+ if (!file)
+ {
+ fprintf(stderr, "Failed to write file: %s\n", path);
+ return false;
+ }
+
+ fprintf(file, "%s", string);
+ fclose(file);
+ return true;
+}
+
+#if defined(__clang__) || defined(__GNUC__)
+#pragma GCC diagnostic pop
+#elif defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+
+static void print_resources(const Compiler &compiler, StorageClass storage,
+ const SmallVector &resources)
+{
+ fprintf(stderr, "%s\n", storage == StorageClassInput ? "builtin inputs" : "builtin outputs");
+ fprintf(stderr, "=============\n\n");
+ for (auto &res : resources)
+ {
+ bool active = compiler.has_active_builtin(res.builtin, storage);
+ const char *basetype = "?";
+ auto &type = compiler.get_type(res.value_type_id);
+ switch (type.basetype)
+ {
+ case SPIRType::Float: basetype = "float"; break;
+ case SPIRType::Int: basetype = "int"; break;
+ case SPIRType::UInt: basetype = "uint"; break;
+ default: break;
+ }
+
+ uint32_t array_size = 0;
+ bool array_size_literal = false;
+ if (!type.array.empty())
+ {
+ array_size = type.array.front();
+ array_size_literal = type.array_size_literal.front();
+ }
+
+ string type_str = basetype;
+ if (type.vecsize > 1)
+ type_str += std::to_string(type.vecsize);
+
+ if (array_size)
+ {
+ if (array_size_literal)
+ type_str += join("[", array_size, "]");
+ else
+ type_str += join("[", array_size, " (spec constant ID)]");
+ }
+
+ string builtin_str;
+ switch (res.builtin)
+ {
+ case BuiltInPosition: builtin_str = "Position"; break;
+ case BuiltInPointSize: builtin_str = "PointSize"; break;
+ case BuiltInCullDistance: builtin_str = "CullDistance"; break;
+ case BuiltInClipDistance: builtin_str = "ClipDistance"; break;
+ case BuiltInTessLevelInner: builtin_str = "TessLevelInner"; break;
+ case BuiltInTessLevelOuter: builtin_str = "TessLevelOuter"; break;
+ default: builtin_str = string("builtin #") + to_string(res.builtin);
+ }
+
+ fprintf(stderr, "Builtin %s (%s) (active: %s).\n", builtin_str.c_str(), type_str.c_str(), active ? "yes" : "no");
+ }
+ fprintf(stderr, "=============\n\n");
+}
+
+static void print_resources(const Compiler &compiler, const char *tag, const SmallVector &resources)
+{
+ fprintf(stderr, "%s\n", tag);
+ fprintf(stderr, "=============\n\n");
+ bool print_ssbo = !strcmp(tag, "ssbos");
+
+ for (auto &res : resources)
+ {
+ auto &type = compiler.get_type(res.type_id);
+
+ if (print_ssbo && compiler.buffer_is_hlsl_counter_buffer(res.id))
+ continue;
+
+ // If we don't have a name, use the fallback for the type instead of the variable
+ // for SSBOs and UBOs since those are the only meaningful names to use externally.
+ // Push constant blocks are still accessed by name and not block name, even though they are technically Blocks.
+ bool is_push_constant = compiler.get_storage_class(res.id) == StorageClassPushConstant;
+ bool is_block = compiler.get_decoration_bitset(type.self).get(DecorationBlock) ||
+ compiler.get_decoration_bitset(type.self).get(DecorationBufferBlock);
+ bool is_sized_block = is_block && (compiler.get_storage_class(res.id) == StorageClassUniform ||
+ compiler.get_storage_class(res.id) == StorageClassUniformConstant);
+ ID fallback_id = !is_push_constant && is_block ? ID(res.base_type_id) : ID(res.id);
+
+ uint32_t block_size = 0;
+ uint32_t runtime_array_stride = 0;
+ if (is_sized_block)
+ {
+ auto &base_type = compiler.get_type(res.base_type_id);
+ block_size = uint32_t(compiler.get_declared_struct_size(base_type));
+ runtime_array_stride = uint32_t(compiler.get_declared_struct_size_runtime_array(base_type, 1) -
+ compiler.get_declared_struct_size_runtime_array(base_type, 0));
+ }
+
+ Bitset mask;
+ if (print_ssbo)
+ mask = compiler.get_buffer_block_flags(res.id);
+ else
+ mask = compiler.get_decoration_bitset(res.id);
+
+ string array;
+ for (auto arr : type.array)
+ array = join("[", arr ? convert_to_string(arr) : "", "]") + array;
+
+ fprintf(stderr, " ID %03u : %s%s", uint32_t(res.id),
+ !res.name.empty() ? res.name.c_str() : compiler.get_fallback_name(fallback_id).c_str(), array.c_str());
+
+ if (mask.get(DecorationLocation))
+ fprintf(stderr, " (Location : %u)", compiler.get_decoration(res.id, DecorationLocation));
+ if (mask.get(DecorationDescriptorSet))
+ fprintf(stderr, " (Set : %u)", compiler.get_decoration(res.id, DecorationDescriptorSet));
+ if (mask.get(DecorationBinding))
+ fprintf(stderr, " (Binding : %u)", compiler.get_decoration(res.id, DecorationBinding));
+ if (static_cast(compiler).variable_is_depth_or_compare(res.id))
+ fprintf(stderr, " (comparison)");
+ if (mask.get(DecorationInputAttachmentIndex))
+ fprintf(stderr, " (Attachment : %u)", compiler.get_decoration(res.id, DecorationInputAttachmentIndex));
+ if (mask.get(DecorationNonReadable))
+ fprintf(stderr, " writeonly");
+ if (mask.get(DecorationNonWritable))
+ fprintf(stderr, " readonly");
+ if (mask.get(DecorationRestrict))
+ fprintf(stderr, " restrict");
+ if (mask.get(DecorationCoherent))
+ fprintf(stderr, " coherent");
+ if (mask.get(DecorationVolatile))
+ fprintf(stderr, " volatile");
+ if (is_sized_block)
+ {
+ fprintf(stderr, " (BlockSize : %u bytes)", block_size);
+ if (runtime_array_stride)
+ fprintf(stderr, " (Unsized array stride: %u bytes)", runtime_array_stride);
+ }
+
+ uint32_t counter_id = 0;
+ if (print_ssbo && compiler.buffer_get_hlsl_counter_buffer(res.id, counter_id))
+ fprintf(stderr, " (HLSL counter buffer ID: %u)", counter_id);
+ fprintf(stderr, "\n");
+ }
+ fprintf(stderr, "=============\n\n");
+}
+
+static const char *execution_model_to_str(ExecutionModel model)
+{
+ switch (model)
+ {
+ case ExecutionModelVertex:
+ return "vertex";
+ case ExecutionModelTessellationControl:
+ return "tessellation control";
+ case ExecutionModelTessellationEvaluation:
+ return "tessellation evaluation";
+ case ExecutionModelGeometry:
+ return "geometry";
+ case ExecutionModelFragment:
+ return "fragment";
+ case ExecutionModelGLCompute:
+ return "compute";
+ case ExecutionModelRayGenerationNV:
+ return "raygenNV";
+ case ExecutionModelIntersectionNV:
+ return "intersectionNV";
+ case ExecutionModelCallableNV:
+ return "callableNV";
+ case ExecutionModelAnyHitNV:
+ return "anyhitNV";
+ case ExecutionModelClosestHitNV:
+ return "closesthitNV";
+ case ExecutionModelMissNV:
+ return "missNV";
+ default:
+ return "???";
+ }
+}
+
+static void print_resources(const Compiler &compiler, const ShaderResources &res)
+{
+ auto &modes = compiler.get_execution_mode_bitset();
+
+ fprintf(stderr, "Entry points:\n");
+ auto entry_points = compiler.get_entry_points_and_stages();
+ for (auto &e : entry_points)
+ fprintf(stderr, " %s (%s)\n", e.name.c_str(), execution_model_to_str(e.execution_model));
+ fprintf(stderr, "\n");
+
+ fprintf(stderr, "Execution modes:\n");
+ modes.for_each_bit([&](uint32_t i) {
+ auto mode = static_cast(i);
+ uint32_t arg0 = compiler.get_execution_mode_argument(mode, 0);
+ uint32_t arg1 = compiler.get_execution_mode_argument(mode, 1);
+ uint32_t arg2 = compiler.get_execution_mode_argument(mode, 2);
+
+ switch (static_cast(i))
+ {
+ case ExecutionModeInvocations:
+ fprintf(stderr, " Invocations: %u\n", arg0);
+ break;
+
+ case ExecutionModeLocalSize:
+ fprintf(stderr, " LocalSize: (%u, %u, %u)\n", arg0, arg1, arg2);
+ break;
+
+ case ExecutionModeOutputVertices:
+ fprintf(stderr, " OutputVertices: %u\n", arg0);
+ break;
+
+#define CHECK_MODE(m) \
+ case ExecutionMode##m: \
+ fprintf(stderr, " %s\n", #m); \
+ break
+ CHECK_MODE(SpacingEqual);
+ CHECK_MODE(SpacingFractionalEven);
+ CHECK_MODE(SpacingFractionalOdd);
+ CHECK_MODE(VertexOrderCw);
+ CHECK_MODE(VertexOrderCcw);
+ CHECK_MODE(PixelCenterInteger);
+ CHECK_MODE(OriginUpperLeft);
+ CHECK_MODE(OriginLowerLeft);
+ CHECK_MODE(EarlyFragmentTests);
+ CHECK_MODE(PointMode);
+ CHECK_MODE(Xfb);
+ CHECK_MODE(DepthReplacing);
+ CHECK_MODE(DepthGreater);
+ CHECK_MODE(DepthLess);
+ CHECK_MODE(DepthUnchanged);
+ CHECK_MODE(LocalSizeHint);
+ CHECK_MODE(InputPoints);
+ CHECK_MODE(InputLines);
+ CHECK_MODE(InputLinesAdjacency);
+ CHECK_MODE(Triangles);
+ CHECK_MODE(InputTrianglesAdjacency);
+ CHECK_MODE(Quads);
+ CHECK_MODE(Isolines);
+ CHECK_MODE(OutputPoints);
+ CHECK_MODE(OutputLineStrip);
+ CHECK_MODE(OutputTriangleStrip);
+ CHECK_MODE(VecTypeHint);
+ CHECK_MODE(ContractionOff);
+
+ default:
+ break;
+ }
+ });
+ fprintf(stderr, "\n");
+
+ print_resources(compiler, "subpass inputs", res.subpass_inputs);
+ print_resources(compiler, "inputs", res.stage_inputs);
+ print_resources(compiler, "outputs", res.stage_outputs);
+ print_resources(compiler, "textures", res.sampled_images);
+ print_resources(compiler, "separate images", res.separate_images);
+ print_resources(compiler, "separate samplers", res.separate_samplers);
+ print_resources(compiler, "images", res.storage_images);
+ print_resources(compiler, "ssbos", res.storage_buffers);
+ print_resources(compiler, "ubos", res.uniform_buffers);
+ print_resources(compiler, "push", res.push_constant_buffers);
+ print_resources(compiler, "counters", res.atomic_counters);
+ print_resources(compiler, "acceleration structures", res.acceleration_structures);
+ print_resources(compiler, "tensors", res.tensors);
+ print_resources(compiler, "record buffers", res.shader_record_buffers);
+ print_resources(compiler, StorageClassInput, res.builtin_inputs);
+ print_resources(compiler, StorageClassOutput, res.builtin_outputs);
+}
+
+static void print_push_constant_resources(const Compiler &compiler, const SmallVector &res)
+{
+ for (auto &block : res)
+ {
+ auto ranges = compiler.get_active_buffer_ranges(block.id);
+ fprintf(stderr, "Active members in buffer: %s\n",
+ !block.name.empty() ? block.name.c_str() : compiler.get_fallback_name(block.id).c_str());
+
+ fprintf(stderr, "==================\n\n");
+ for (auto &range : ranges)
+ {
+ const auto &name = compiler.get_member_name(block.base_type_id, range.index);
+
+ fprintf(stderr, "Member #%3u (%s): Offset: %4u, Range: %4u\n", range.index,
+ !name.empty() ? name.c_str() : compiler.get_fallback_member_name(range.index).c_str(),
+ unsigned(range.offset), unsigned(range.range));
+ }
+ fprintf(stderr, "==================\n\n");
+ }
+}
+
+static void print_spec_constants(const Compiler &compiler)
+{
+ auto spec_constants = compiler.get_specialization_constants();
+ fprintf(stderr, "Specialization constants\n");
+ fprintf(stderr, "==================\n\n");
+ for (auto &c : spec_constants)
+ fprintf(stderr, "ID: %u, Spec ID: %u\n", uint32_t(c.id), c.constant_id);
+ fprintf(stderr, "==================\n\n");
+}
+
+static void print_capabilities_and_extensions(const Compiler &compiler)
+{
+ fprintf(stderr, "Capabilities\n");
+ fprintf(stderr, "============\n");
+ for (auto &capability : compiler.get_declared_capabilities())
+ fprintf(stderr, "Capability: %u\n", static_cast(capability));
+ fprintf(stderr, "============\n\n");
+
+ fprintf(stderr, "Extensions\n");
+ fprintf(stderr, "============\n");
+ for (auto &ext : compiler.get_declared_extensions())
+ fprintf(stderr, "Extension: %s\n", ext.c_str());
+ fprintf(stderr, "============\n\n");
+}
+
+struct PLSArg
+{
+ PlsFormat format;
+ string name;
+};
+
+struct Remap
+{
+ string src_name;
+ string dst_name;
+ unsigned components;
+};
+
+struct VariableTypeRemap
+{
+ string variable_name;
+ string new_variable_type;
+};
+
+struct InterfaceVariableRename
+{
+ StorageClass storageClass;
+ uint32_t location;
+ string variable_name;
+};
+
+struct HLSLVertexAttributeRemapNamed
+{
+ std::string name;
+ std::string semantic;
+};
+
+struct CLIArguments
+{
+ const char *input = nullptr;
+ const char *output = nullptr;
+ const char *cpp_interface_name = nullptr;
+ uint32_t version = 0;
+ uint32_t shader_model = 0;
+ uint32_t msl_version = 0;
+ bool es = false;
+ bool set_version = false;
+ bool set_shader_model = false;
+ bool set_msl_version = false;
+ bool set_es = false;
+ bool dump_resources = false;
+ bool force_temporary = false;
+ bool flatten_ubo = false;
+ bool fixup = false;
+ bool yflip = false;
+ bool sso = false;
+ bool support_nonzero_baseinstance = true;
+ bool msl_capture_output_to_buffer = false;
+ bool msl_swizzle_texture_samples = false;
+ bool msl_ios = false;
+ bool msl_pad_fragment_output = false;
+ bool msl_domain_lower_left = false;
+ bool msl_argument_buffers = false;
+ uint32_t msl_argument_buffers_tier = 0; // Tier 1
+ bool msl_texture_buffer_native = false;
+ bool msl_framebuffer_fetch = false;
+ bool msl_invariant_float_math = false;
+ bool msl_emulate_cube_array = false;
+ bool msl_multiview = false;
+ bool msl_multiview_layered_rendering = true;
+ bool msl_view_index_from_device_index = false;
+ bool msl_dispatch_base = false;
+ bool msl_decoration_binding = false;
+ bool msl_force_active_argument_buffer_resources = false;
+ bool msl_force_native_arrays = false;
+ bool msl_enable_frag_depth_builtin = true;
+ bool msl_enable_frag_stencil_ref_builtin = true;
+ uint32_t msl_enable_frag_output_mask = 0xffffffff;
+ bool msl_enable_clip_distance_user_varying = true;
+ bool msl_raw_buffer_tese_input = false;
+ bool msl_multi_patch_workgroup = false;
+ bool msl_vertex_for_tessellation = false;
+ uint32_t msl_additional_fixed_sample_mask = 0xffffffff;
+ bool msl_arrayed_subpass_input = false;
+ uint32_t msl_r32ui_linear_texture_alignment = 4;
+ uint32_t msl_r32ui_alignment_constant_id = 65535;
+ bool msl_texture_1d_as_2d = false;
+ bool msl_ios_use_simdgroup_functions = false;
+ bool msl_emulate_subgroups = false;
+ uint32_t msl_fixed_subgroup_size = 0;
+ bool msl_force_sample_rate_shading = false;
+ bool msl_manual_helper_invocation_updates = true;
+ bool msl_check_discarded_frag_stores = false;
+ bool msl_force_fragment_with_side_effects_execution = false;
+ bool msl_sample_dref_lod_array_as_grad = false;
+ bool msl_runtime_array_rich_descriptor = false;
+ bool msl_replace_recursive_inputs = false;
+ bool msl_readwrite_texture_fences = true;
+ bool msl_agx_manual_cube_grad_fixup = false;
+ bool msl_input_attachment_is_ds_attachment = false;
+ bool msl_disable_rasterization = false;
+ bool msl_auto_disable_rasterization = false;
+ bool msl_enable_point_size_default = false;
+ float msl_default_point_size = 1.0f;
+ const char *msl_combined_sampler_suffix = nullptr;
+ bool glsl_emit_push_constant_as_ubo = false;
+ bool glsl_emit_ubo_as_plain_uniforms = false;
+ bool glsl_force_flattened_io_blocks = false;
+ uint32_t glsl_ovr_multiview_view_count = 0;
+ SmallVector> glsl_ext_framebuffer_fetch;
+ bool glsl_ext_framebuffer_fetch_noncoherent = false;
+ uint32_t glsl_descriptor_heap_set = UINT32_MAX;
+ uint32_t glsl_descriptor_heap_binding = UINT32_MAX;
+ bool vulkan_glsl_disable_ext_samplerless_texture_functions = false;
+ bool emit_line_directives = false;
+ bool enable_storage_image_qualifier_deduction = true;
+ bool force_zero_initialized_variables = false;
+ bool relax_nan_checks = false;
+ uint32_t force_recompile_max_debug_iterations = 3;
+ SmallVector msl_discrete_descriptor_sets;
+ SmallVector msl_device_argument_buffers;
+ SmallVector> msl_dynamic_buffers;
+ SmallVector> msl_inline_uniform_blocks;
+ SmallVector msl_shader_inputs;
+ SmallVector msl_shader_outputs;
+ SmallVector pls_in;
+ SmallVector