diff --git a/common.mk b/common.mk index caf702e..8bbee2b 100644 --- a/common.mk +++ b/common.mk @@ -2,7 +2,7 @@ MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) DIR := $(dir $(MAKEFILE_PATH)) LIB ?= . -OPT ?= -O1 +OPT ?= -O3 DEBUG ?= -g -gdwarf-4 GENERATED ?= diff --git a/example/cube.cpp b/example/cube.cpp index 05b4b3f..d4c57ff 100644 --- a/example/cube.cpp +++ b/example/cube.cpp @@ -70,12 +70,12 @@ void transform(ta_parameter_writer& parameter, bool end_of_strip = i == strip_length - 1; // world transform - uint32_t vertex_ix = face[i].vertex - 1; + uint32_t vertex_ix = face[i].vertex; auto& vertex = cube::vertices[vertex_ix]; auto point = rotate(vertex, theta); // lighting transform - uint32_t normal_ix = face[i].normal - 1; + uint32_t normal_ix = face[i].normal; auto& normal = cube::normals[normal_ix]; auto n = rotate(normal, theta); @@ -192,7 +192,7 @@ void main() //lights[1].z = sin(theta + half_degree * 90.f) * 10; auto parameter = ta_parameter_writer(ta_parameter_buf); - for (uint32_t i = 0; i < 12; i++) { + for (uint32_t i = 0; i < cube::num_faces; i++) { transform(parameter, i, theta, lights); } parameter.append() = global_end_of_list(); diff --git a/example/example.mk b/example/example.mk index 6231139..93cf759 100644 --- a/example/example.mk +++ b/example/example.mk @@ -107,6 +107,17 @@ CUBE_OBJ = \ example/cube.elf: LDSCRIPT = $(LIB)/alt.lds example/cube.elf: $(START_OBJ) $(CUBE_OBJ) +ICOSPHERE_OBJ = \ + example/icosphere.o \ + vga.o \ + holly/core.o \ + holly/region_array.o \ + holly/background.o \ + holly/ta_fifo_polygon_converter.o + +example/icosphere.elf: LDSCRIPT = $(LIB)/alt.lds +example/icosphere.elf: $(START_OBJ) $(ICOSPHERE_OBJ) + MACAW_CUBE_OBJ = \ example/macaw_cube.o \ vga.o \ diff --git a/example/icosphere.cpp b/example/icosphere.cpp new file mode 100644 index 0000000..a050a59 --- /dev/null +++ b/example/icosphere.cpp @@ -0,0 +1,295 @@ +#include + +#include "align.hpp" + +#include "vga.hpp" +#include "holly.hpp" +#include "holly/core.hpp" +#include "holly/core_bits.hpp" +#include "holly/ta_fifo_polygon_converter.hpp" +#include "holly/ta_parameter.hpp" +#include "holly/ta_bits.hpp" +#include "holly/region_array.hpp" +#include "holly/background.hpp" +#include "holly/texture_memory_alloc.hpp" +#include "memorymap.hpp" +#include "serial.hpp" + +#include "geometry/icosphere.hpp" +#include "geometry/suzanne.hpp" +#include "math/vec4.hpp" + +constexpr float half_degree = 0.01745329f / 2; + +#define MODEL icosphere + +vec3 rotate(const vec3& vertex, float theta) +{ + float x = vertex.x; + float y = vertex.y; + float z = vertex.z; + float t; + + t = y * cos(theta) - z * sin(theta); + z = y * sin(theta) + z * cos(theta); + y = t; + + float theta2 = 3.14 * sin(theta / 2); + + t = x * cos(theta2) - z * sin(theta2); + z = x * sin(theta2) + z * cos(theta2); + x = t; + + return vec3(x, y, z); +} + +void transform(ta_parameter_writer& parameter, + const uint32_t face_ix, + const float theta, + const vec3 lights[3]) +{ + const uint32_t parameter_control_word = para_control::para_type::polygon_or_modifier_volume + | para_control::list_type::opaque + | obj_control::col_type::floating_color + | obj_control::gouraud; + + const uint32_t isp_tsp_instruction_word = isp_tsp_instruction_word::depth_compare_mode::greater + | isp_tsp_instruction_word::culling_mode::cull_if_positive; + + const uint32_t tsp_instruction_word = tsp_instruction_word::src_alpha_instr::one + | tsp_instruction_word::dst_alpha_instr::zero + | tsp_instruction_word::fog_control::no_fog; + + parameter.append() = global_polygon_type_0(parameter_control_word, + isp_tsp_instruction_word, + tsp_instruction_word, + 0); + auto& face = MODEL::faces[face_ix]; + + constexpr uint32_t strip_length = 3; + for (uint32_t i = 0; i < strip_length; i++) { + bool end_of_strip = i == strip_length - 1; + + // world transform + uint32_t vertex_ix = face[i].vertex; + auto& vertex = MODEL::vertices[vertex_ix]; + auto point = rotate(vertex, theta); + + // lighting transform + uint32_t normal_ix = face[i].normal; + auto& normal = MODEL::normals[normal_ix]; + auto n = rotate(normal, theta); + + vec4 color = {0.3, 0.3, 0.3, 1.0}; + + // intensity calculation + { + auto l = lights[0] - point; + auto n_dot_l = dot(n, l); + if (n_dot_l > 0) { + color.x += 0.5 * n_dot_l / (length(n) * length(l)); + } + } + + { + auto l = lights[1] - point; + auto n_dot_l = dot(n, l); + if (n_dot_l > 0) { + color.y += 0.5 * n_dot_l / (length(n) * length(l)); + } + } + + { + auto l = lights[2] - point; + auto n_dot_l = dot(n, l); + if (n_dot_l > 0) { + color.z += 0.5 * n_dot_l / (length(n) * length(l)); + } + } + + float x = point.x; + float y = point.y; + float z = point.z; + + x *= 8; + y *= 8; + z *= 8; + + // camera transform + z += 15; + + // perspective + x = x / z; + y = y / z; + + // screen space transform + x *= 240.f; + y *= 240.f; + x += 320.f; + y += 240.f; + z = 1 / z; + + parameter.append() = + vertex_polygon_type_1(x, y, z, + color.w, // alpha + color.x, // r + color.y, // g + color.z, // b + end_of_strip); + } +} + +void transform2(ta_parameter_writer& parameter, + const vec3& pos, + const vec4& color) +{ + const uint32_t parameter_control_word = para_control::para_type::polygon_or_modifier_volume + | para_control::list_type::opaque + | obj_control::col_type::floating_color + | obj_control::gouraud; + + const uint32_t isp_tsp_instruction_word = isp_tsp_instruction_word::depth_compare_mode::greater + | isp_tsp_instruction_word::culling_mode::no_culling; + + const uint32_t tsp_instruction_word = tsp_instruction_word::src_alpha_instr::one + | tsp_instruction_word::dst_alpha_instr::zero + | tsp_instruction_word::fog_control::no_fog; + + parameter.append() = global_polygon_type_0(parameter_control_word, + isp_tsp_instruction_word, + tsp_instruction_word, + 0); + + constexpr vec3 triangle[] = { + { 0.f, -1.f, 0.f}, + {-1.f, 1.f, 0.f}, + { 1.f, 1.f, 0.f}, + }; + + constexpr uint32_t strip_length = 3; + for (uint32_t i = 0; i < strip_length; i++) { + bool end_of_strip = i == strip_length - 1; + float x = triangle[i].x; + float y = triangle[i].y; + float z = triangle[i].z; + + x *= 0.2; + y *= 0.2; + z *= 0.2; + + x += pos.x; + y += pos.y; + z += pos.z; + + // camera transform + z += 15; + + // perspective + x = x / z; + y = y / z; + + // screen space transform + x *= 240.f; + y *= 240.f; + x += 320.f; + y += 240.f; + z = 1 / z; + + parameter.append() = + vertex_polygon_type_1(x, y, z, + color.w, // alpha + color.x, // r + color.y, // g + color.z, // b + end_of_strip); + } +} + +void init_texture_memory(const struct opb_size& opb_size) +{ + auto mem = reinterpret_cast(texture_memory32); + + background_parameter(mem->background, 0xff220000); + + region_array2(mem->region_array, + (offsetof (struct texture_memory_alloc, object_list)), + 640 / 32, // width + 480 / 32, // height + opb_size + ); +} + +uint32_t _ta_parameter_buf[((32 * (5 * 6 + 1)) + 32) / 4]; + +void main() +{ + vga(); + + // The address of `ta_parameter_buf` must be a multiple of 32 bytes. + // This is mandatory for ch2-dma to the ta fifo polygon converter. + uint32_t * ta_parameter_buf = align_32byte(_ta_parameter_buf); + + constexpr uint32_t ta_alloc = ta_alloc_ctrl::pt_opb::no_list + | ta_alloc_ctrl::tm_opb::no_list + | ta_alloc_ctrl::t_opb::no_list + | ta_alloc_ctrl::om_opb::no_list + | ta_alloc_ctrl::o_opb::_16x4byte; + + constexpr struct opb_size opb_size = { .opaque = 16 * 4 + , .opaque_modifier = 0 + , .translucent = 0 + , .translucent_modifier = 0 + , .punch_through = 0 + }; + + constexpr uint32_t tiles = (640 / 32) * (320 / 32); + + holly.SOFTRESET = softreset::pipeline_soft_reset + | softreset::ta_soft_reset; + holly.SOFTRESET = 0; + + core_init(); + init_texture_memory(opb_size); + + uint32_t frame_ix = 0; + constexpr uint32_t num_frames = 1; + + float theta = 0; + vec3 lights[3] = { + {0.f, 0.f, 0.f}, + {0.f, 0.f, 0.f}, + {0.f, 0.f, 0.f}, + }; + + while (1) { + ta_polygon_converter_init(opb_size.total() * tiles, ta_alloc, + 640, 480); + + lights[0].x = cos(theta) * 10; + lights[0].z = sin(theta) * 10; + + lights[1].x = cos(theta + half_degree * 180.f) * 10; + lights[1].z = sin(theta + half_degree * 180.f) * 10; + + lights[2].x = cos(theta + half_degree * 360.f) * 10; + lights[2].z = sin(theta + half_degree * 360.f) * 10; + + auto parameter = ta_parameter_writer(ta_parameter_buf); + for (uint32_t i = 0; i < MODEL::num_faces; i++) { + transform(parameter, i, theta, lights); + } + transform2(parameter, lights[0], {1.f, 0.f, 0.f, 1.f}); + transform2(parameter, lights[1], {0.f, 1.f, 0.f, 1.f}); + transform2(parameter, lights[2], {0.f, 0.f, 1.f, 1.f}); + + parameter.append() = global_end_of_list(); + ta_polygon_converter_transfer(ta_parameter_buf, parameter.offset); + ta_wait_opaque_list(); + core_start_render(frame_ix, num_frames); + + v_sync_out(); + core_wait_end_of_render_video(frame_ix, num_frames); + theta += half_degree; + frame_ix += 1; + } +} diff --git a/geometry/cube.hpp b/geometry/cube.hpp index adb8c62..b480325 100644 --- a/geometry/cube.hpp +++ b/geometry/cube.hpp @@ -1,54 +1,43 @@ #pragma once -#include - -#include "math/vec3.hpp" - -using vec3 = vec<3, float>; - -struct vertex__normal { - uint8_t vertex; - uint8_t normal; -}; - -using face = vertex__normal[3]; +#include "geometry.hpp" namespace cube { - constexpr vec3 vertices[] = { - { 1.f, 1.f, -1.f}, - { 1.f, -1.f, -1.f}, - { 1.f, 1.f, 1.f}, - { 1.f, -1.f, 1.f}, - {-1.f, 1.f, -1.f}, - {-1.f, -1.f, -1.f}, - {-1.f, 1.f, 1.f}, - {-1.f, -1.f, 1.f}, + { 1.000000f, 1.000000f, -1.000000f }, + { 1.000000f, -1.000000f, -1.000000f }, + { 1.000000f, 1.000000f, 1.000000f }, + { 1.000000f, -1.000000f, 1.000000f }, + { -1.000000f, 1.000000f, -1.000000f }, + { -1.000000f, -1.000000f, -1.000000f }, + { -1.000000f, 1.000000f, 1.000000f }, + { -1.000000f, -1.000000f, 1.000000f }, }; - + constexpr vec3 normals[] = { - {-0.f, 1.f, -0.f}, - {-0.f, -0.f, 1.f}, - {-1.f, -0.f, -0.f}, - {-0.f, -1.f, -0.f}, - { 1.f, -0.f, -0.f}, - {-0.f, -0.f, -1.f}, + { -0.000000f, 1.000000f, -0.000000f }, + { -0.000000f, -0.000000f, 1.000000f }, + { -1.000000f, -0.000000f, -0.000000f }, + { -0.000000f, -1.000000f, -0.000000f }, + { 1.000000f, -0.000000f, -0.000000f }, + { -0.000000f, -0.000000f, -1.000000f }, }; - + constexpr face faces[] = { - {{5, 1}, {3, 1}, {1, 1}}, - {{3, 2}, {8, 2}, {4, 2}}, - {{7, 3}, {6, 3}, {8, 3}}, - {{2, 4}, {8, 4}, {6, 4}}, - {{1, 5}, {4, 5}, {2, 5}}, - {{5, 6}, {2, 6}, {6, 6}}, - {{5, 1}, {7, 1}, {3, 1}}, - {{3, 2}, {7, 2}, {8, 2}}, - {{7, 3}, {5, 3}, {6, 3}}, - {{2, 4}, {4, 4}, {8, 4}}, - {{1, 5}, {3, 5}, {4, 5}}, - {{5, 6}, {1, 6}, {2, 6}}, + {{ 4, 0}, { 2, 0}, { 0, 0}}, + {{ 2, 1}, { 7, 1}, { 3, 1}}, + {{ 6, 2}, { 5, 2}, { 7, 2}}, + {{ 1, 3}, { 7, 3}, { 5, 3}}, + {{ 0, 4}, { 3, 4}, { 1, 4}}, + {{ 4, 5}, { 1, 5}, { 5, 5}}, + {{ 4, 0}, { 6, 0}, { 2, 0}}, + {{ 2, 1}, { 6, 1}, { 7, 1}}, + {{ 6, 2}, { 4, 2}, { 5, 2}}, + {{ 1, 3}, { 3, 3}, { 7, 3}}, + {{ 0, 4}, { 2, 4}, { 3, 4}}, + {{ 4, 5}, { 0, 5}, { 1, 5}}, }; - - constexpr int num_faces = (sizeof (faces)) / (sizeof (face)); + + constexpr uint32_t num_faces = (sizeof (faces)) / (sizeof (face)); + } diff --git a/geometry/cube.obj b/geometry/cube.obj new file mode 100644 index 0000000..f8e3454 --- /dev/null +++ b/geometry/cube.obj @@ -0,0 +1,30 @@ +# Blender 3.3.6 +# www.blender.org +o Cube +v 1.000000 1.000000 -1.000000 +v 1.000000 -1.000000 -1.000000 +v 1.000000 1.000000 1.000000 +v 1.000000 -1.000000 1.000000 +v -1.000000 1.000000 -1.000000 +v -1.000000 -1.000000 -1.000000 +v -1.000000 1.000000 1.000000 +v -1.000000 -1.000000 1.000000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +s 0 +f 5//1 3//1 1//1 +f 3//2 8//2 4//2 +f 7//3 6//3 8//3 +f 2//4 8//4 6//4 +f 1//5 4//5 2//5 +f 5//6 2//6 6//6 +f 5//1 7//1 3//1 +f 3//2 7//2 8//2 +f 7//3 5//3 6//3 +f 2//4 4//4 8//4 +f 1//5 3//5 4//5 +f 5//6 1//6 2//6 diff --git a/geometry/geometry.hpp b/geometry/geometry.hpp new file mode 100644 index 0000000..a720c02 --- /dev/null +++ b/geometry/geometry.hpp @@ -0,0 +1,16 @@ +#pragma once + +#include + +#include "math/vec3.hpp" +#include "math/vec4.hpp" + +using vec3 = vec<3, float>; +using vec4 = vec<4, float>; + +struct vertex__normal { + uint16_t vertex; + uint16_t normal; +}; + +using face = vertex__normal[3]; diff --git a/geometry/icosphere.hpp b/geometry/icosphere.hpp new file mode 100644 index 0000000..4f53e03 --- /dev/null +++ b/geometry/icosphere.hpp @@ -0,0 +1,219 @@ +#pragma once + +#include "geometry.hpp" + +namespace icosphere { + constexpr vec3 vertices[] = { + { 0.000000f, -1.000000f, 0.000000f }, + { 0.723607f, -0.447220f, 0.525725f }, + { -0.276388f, -0.447220f, 0.850649f }, + { -0.894426f, -0.447216f, 0.000000f }, + { -0.276388f, -0.447220f, -0.850649f }, + { 0.723607f, -0.447220f, -0.525725f }, + { 0.276388f, 0.447220f, 0.850649f }, + { -0.723607f, 0.447220f, 0.525725f }, + { -0.723607f, 0.447220f, -0.525725f }, + { 0.276388f, 0.447220f, -0.850649f }, + { 0.894426f, 0.447216f, 0.000000f }, + { 0.000000f, 1.000000f, 0.000000f }, + { -0.162456f, -0.850654f, 0.499995f }, + { 0.425323f, -0.850654f, 0.309011f }, + { 0.262869f, -0.525738f, 0.809012f }, + { 0.850648f, -0.525736f, 0.000000f }, + { 0.425323f, -0.850654f, -0.309011f }, + { -0.525730f, -0.850652f, 0.000000f }, + { -0.688189f, -0.525736f, 0.499997f }, + { -0.162456f, -0.850654f, -0.499995f }, + { -0.688189f, -0.525736f, -0.499997f }, + { 0.262869f, -0.525738f, -0.809012f }, + { 0.951058f, 0.000000f, 0.309013f }, + { 0.951058f, 0.000000f, -0.309013f }, + { 0.000000f, 0.000000f, 1.000000f }, + { 0.587786f, 0.000000f, 0.809017f }, + { -0.951058f, 0.000000f, 0.309013f }, + { -0.587786f, 0.000000f, 0.809017f }, + { -0.587786f, 0.000000f, -0.809017f }, + { -0.951058f, 0.000000f, -0.309013f }, + { 0.587786f, 0.000000f, -0.809017f }, + { 0.000000f, 0.000000f, -1.000000f }, + { 0.688189f, 0.525736f, 0.499997f }, + { -0.262869f, 0.525738f, 0.809012f }, + { -0.850648f, 0.525736f, 0.000000f }, + { -0.262869f, 0.525738f, -0.809012f }, + { 0.688189f, 0.525736f, -0.499997f }, + { 0.162456f, 0.850654f, 0.499995f }, + { 0.525730f, 0.850652f, 0.000000f }, + { -0.425323f, 0.850654f, 0.309011f }, + { -0.425323f, 0.850654f, -0.309011f }, + { 0.162456f, 0.850654f, -0.499995f }, + }; + + constexpr vec3 normals[] = { + { 0.102400f, -0.943500f, 0.315100f }, + { 0.700200f, -0.661700f, 0.268000f }, + { -0.268000f, -0.943500f, 0.194700f }, + { -0.268000f, -0.943500f, -0.194700f }, + { 0.102400f, -0.943500f, -0.315100f }, + { 0.905000f, -0.330400f, 0.268000f }, + { 0.024700f, -0.330400f, 0.943500f }, + { -0.889700f, -0.330400f, 0.315100f }, + { -0.574600f, -0.330400f, -0.748800f }, + { 0.534600f, -0.330400f, -0.777900f }, + { 0.802600f, -0.125600f, 0.583100f }, + { -0.306600f, -0.125600f, 0.943500f }, + { -0.992100f, -0.125600f, -0.000000f }, + { -0.306600f, -0.125600f, -0.943500f }, + { 0.802600f, -0.125600f, -0.583100f }, + { 0.408900f, 0.661700f, 0.628400f }, + { -0.471300f, 0.661700f, 0.583100f }, + { -0.700200f, 0.661700f, -0.268000f }, + { 0.038500f, 0.661700f, -0.748800f }, + { 0.724000f, 0.661700f, -0.194700f }, + { 0.268000f, 0.943500f, -0.194700f }, + { 0.491100f, 0.794700f, -0.356800f }, + { 0.408900f, 0.661700f, -0.628400f }, + { -0.102400f, 0.943500f, -0.315100f }, + { -0.187600f, 0.794700f, -0.577300f }, + { -0.471300f, 0.661700f, -0.583100f }, + { -0.331300f, 0.943500f, -0.000000f }, + { -0.607100f, 0.794700f, -0.000000f }, + { -0.700200f, 0.661700f, 0.268000f }, + { -0.102400f, 0.943500f, 0.315100f }, + { -0.187600f, 0.794700f, 0.577300f }, + { 0.038500f, 0.661700f, 0.748800f }, + { 0.268000f, 0.943500f, 0.194700f }, + { 0.491100f, 0.794700f, 0.356800f }, + { 0.724000f, 0.661700f, 0.194700f }, + { 0.889700f, 0.330400f, -0.315100f }, + { 0.794700f, 0.187600f, -0.577300f }, + { 0.574600f, 0.330400f, -0.748800f }, + { -0.024700f, 0.330400f, -0.943500f }, + { -0.303500f, 0.187600f, -0.934200f }, + { -0.534600f, 0.330400f, -0.777900f }, + { -0.905000f, 0.330400f, -0.268000f }, + { -0.982200f, 0.187600f, -0.000000f }, + { -0.905000f, 0.330400f, 0.268000f }, + { -0.534600f, 0.330400f, 0.777900f }, + { -0.303500f, 0.187600f, 0.934200f }, + { -0.024700f, 0.330400f, 0.943500f }, + { 0.574600f, 0.330400f, 0.748800f }, + { 0.794700f, 0.187600f, 0.577300f }, + { 0.889700f, 0.330400f, 0.315100f }, + { 0.306600f, 0.125600f, -0.943500f }, + { 0.303500f, -0.187600f, -0.934200f }, + { 0.024700f, -0.330400f, -0.943500f }, + { -0.802600f, 0.125600f, -0.583100f }, + { -0.794700f, -0.187600f, -0.577300f }, + { -0.889700f, -0.330400f, -0.315100f }, + { -0.802600f, 0.125600f, 0.583100f }, + { -0.794700f, -0.187600f, 0.577300f }, + { -0.574600f, -0.330400f, 0.748800f }, + { 0.306600f, 0.125600f, 0.943500f }, + { 0.303500f, -0.187600f, 0.934200f }, + { 0.534600f, -0.330400f, 0.777900f }, + { 0.992100f, 0.125600f, -0.000000f }, + { 0.982200f, -0.187600f, -0.000000f }, + { 0.905000f, -0.330400f, -0.268000f }, + { 0.471300f, -0.661700f, -0.583100f }, + { 0.187600f, -0.794700f, -0.577300f }, + { -0.038500f, -0.661700f, -0.748800f }, + { -0.408900f, -0.661700f, -0.628400f }, + { -0.491100f, -0.794700f, -0.356800f }, + { -0.724000f, -0.661700f, -0.194700f }, + { -0.724000f, -0.661700f, 0.194700f }, + { -0.491100f, -0.794700f, 0.356800f }, + { -0.408900f, -0.661700f, 0.628400f }, + { 0.700200f, -0.661700f, -0.268000f }, + { 0.607100f, -0.794700f, -0.000000f }, + { 0.331300f, -0.943500f, -0.000000f }, + { -0.038500f, -0.661700f, 0.748800f }, + { 0.187600f, -0.794700f, 0.577300f }, + { 0.471300f, -0.661700f, 0.583100f }, + }; + + constexpr face faces[] = { + {{ 0, 0}, {13, 0}, {12, 0}}, + {{ 1, 1}, {13, 1}, {15, 1}}, + {{ 0, 2}, {12, 2}, {17, 2}}, + {{ 0, 3}, {17, 3}, {19, 3}}, + {{ 0, 4}, {19, 4}, {16, 4}}, + {{ 1, 5}, {15, 5}, {22, 5}}, + {{ 2, 6}, {14, 6}, {24, 6}}, + {{ 3, 7}, {18, 7}, {26, 7}}, + {{ 4, 8}, {20, 8}, {28, 8}}, + {{ 5, 9}, {21, 9}, {30, 9}}, + {{ 1, 10}, {22, 10}, {25, 10}}, + {{ 2, 11}, {24, 11}, {27, 11}}, + {{ 3, 12}, {26, 12}, {29, 12}}, + {{ 4, 13}, {28, 13}, {31, 13}}, + {{ 5, 14}, {30, 14}, {23, 14}}, + {{ 6, 15}, {32, 15}, {37, 15}}, + {{ 7, 16}, {33, 16}, {39, 16}}, + {{ 8, 17}, {34, 17}, {40, 17}}, + {{ 9, 18}, {35, 18}, {41, 18}}, + {{10, 19}, {36, 19}, {38, 19}}, + {{38, 20}, {41, 20}, {11, 20}}, + {{38, 21}, {36, 21}, {41, 21}}, + {{36, 22}, { 9, 22}, {41, 22}}, + {{41, 23}, {40, 23}, {11, 23}}, + {{41, 24}, {35, 24}, {40, 24}}, + {{35, 25}, { 8, 25}, {40, 25}}, + {{40, 26}, {39, 26}, {11, 26}}, + {{40, 27}, {34, 27}, {39, 27}}, + {{34, 28}, { 7, 28}, {39, 28}}, + {{39, 29}, {37, 29}, {11, 29}}, + {{39, 30}, {33, 30}, {37, 30}}, + {{33, 31}, { 6, 31}, {37, 31}}, + {{37, 32}, {38, 32}, {11, 32}}, + {{37, 33}, {32, 33}, {38, 33}}, + {{32, 34}, {10, 34}, {38, 34}}, + {{23, 35}, {36, 35}, {10, 35}}, + {{23, 36}, {30, 36}, {36, 36}}, + {{30, 37}, { 9, 37}, {36, 37}}, + {{31, 38}, {35, 38}, { 9, 38}}, + {{31, 39}, {28, 39}, {35, 39}}, + {{28, 40}, { 8, 40}, {35, 40}}, + {{29, 41}, {34, 41}, { 8, 41}}, + {{29, 42}, {26, 42}, {34, 42}}, + {{26, 43}, { 7, 43}, {34, 43}}, + {{27, 44}, {33, 44}, { 7, 44}}, + {{27, 45}, {24, 45}, {33, 45}}, + {{24, 46}, { 6, 46}, {33, 46}}, + {{25, 47}, {32, 47}, { 6, 47}}, + {{25, 48}, {22, 48}, {32, 48}}, + {{22, 49}, {10, 49}, {32, 49}}, + {{30, 50}, {31, 50}, { 9, 50}}, + {{30, 51}, {21, 51}, {31, 51}}, + {{21, 52}, { 4, 52}, {31, 52}}, + {{28, 53}, {29, 53}, { 8, 53}}, + {{28, 54}, {20, 54}, {29, 54}}, + {{20, 55}, { 3, 55}, {29, 55}}, + {{26, 56}, {27, 56}, { 7, 56}}, + {{26, 57}, {18, 57}, {27, 57}}, + {{18, 58}, { 2, 58}, {27, 58}}, + {{24, 59}, {25, 59}, { 6, 59}}, + {{24, 60}, {14, 60}, {25, 60}}, + {{14, 61}, { 1, 61}, {25, 61}}, + {{22, 62}, {23, 62}, {10, 62}}, + {{22, 63}, {15, 63}, {23, 63}}, + {{15, 64}, { 5, 64}, {23, 64}}, + {{16, 65}, {21, 65}, { 5, 65}}, + {{16, 66}, {19, 66}, {21, 66}}, + {{19, 67}, { 4, 67}, {21, 67}}, + {{19, 68}, {20, 68}, { 4, 68}}, + {{19, 69}, {17, 69}, {20, 69}}, + {{17, 70}, { 3, 70}, {20, 70}}, + {{17, 71}, {18, 71}, { 3, 71}}, + {{17, 72}, {12, 72}, {18, 72}}, + {{12, 73}, { 2, 73}, {18, 73}}, + {{15, 74}, {16, 74}, { 5, 74}}, + {{15, 75}, {13, 75}, {16, 75}}, + {{13, 76}, { 0, 76}, {16, 76}}, + {{12, 77}, {14, 77}, { 2, 77}}, + {{12, 78}, {13, 78}, {14, 78}}, + {{13, 79}, { 1, 79}, {14, 79}}, + }; + + constexpr uint32_t num_faces = (sizeof (faces)) / (sizeof (face)); + +} diff --git a/geometry/icosphere.obj b/geometry/icosphere.obj new file mode 100644 index 0000000..3ac325c --- /dev/null +++ b/geometry/icosphere.obj @@ -0,0 +1,206 @@ +# Blender 3.3.6 +# www.blender.org +o Icosphere +v 0.000000 -1.000000 0.000000 +v 0.723607 -0.447220 0.525725 +v -0.276388 -0.447220 0.850649 +v -0.894426 -0.447216 0.000000 +v -0.276388 -0.447220 -0.850649 +v 0.723607 -0.447220 -0.525725 +v 0.276388 0.447220 0.850649 +v -0.723607 0.447220 0.525725 +v -0.723607 0.447220 -0.525725 +v 0.276388 0.447220 -0.850649 +v 0.894426 0.447216 0.000000 +v 0.000000 1.000000 0.000000 +v -0.162456 -0.850654 0.499995 +v 0.425323 -0.850654 0.309011 +v 0.262869 -0.525738 0.809012 +v 0.850648 -0.525736 0.000000 +v 0.425323 -0.850654 -0.309011 +v -0.525730 -0.850652 0.000000 +v -0.688189 -0.525736 0.499997 +v -0.162456 -0.850654 -0.499995 +v -0.688189 -0.525736 -0.499997 +v 0.262869 -0.525738 -0.809012 +v 0.951058 0.000000 0.309013 +v 0.951058 0.000000 -0.309013 +v 0.000000 0.000000 1.000000 +v 0.587786 0.000000 0.809017 +v -0.951058 0.000000 0.309013 +v -0.587786 0.000000 0.809017 +v -0.587786 0.000000 -0.809017 +v -0.951058 0.000000 -0.309013 +v 0.587786 0.000000 -0.809017 +v 0.000000 0.000000 -1.000000 +v 0.688189 0.525736 0.499997 +v -0.262869 0.525738 0.809012 +v -0.850648 0.525736 0.000000 +v -0.262869 0.525738 -0.809012 +v 0.688189 0.525736 -0.499997 +v 0.162456 0.850654 0.499995 +v 0.525730 0.850652 0.000000 +v -0.425323 0.850654 0.309011 +v -0.425323 0.850654 -0.309011 +v 0.162456 0.850654 -0.499995 +vn 0.1024 -0.9435 0.3151 +vn 0.7002 -0.6617 0.2680 +vn -0.2680 -0.9435 0.1947 +vn -0.2680 -0.9435 -0.1947 +vn 0.1024 -0.9435 -0.3151 +vn 0.9050 -0.3304 0.2680 +vn 0.0247 -0.3304 0.9435 +vn -0.8897 -0.3304 0.3151 +vn -0.5746 -0.3304 -0.7488 +vn 0.5346 -0.3304 -0.7779 +vn 0.8026 -0.1256 0.5831 +vn -0.3066 -0.1256 0.9435 +vn -0.9921 -0.1256 -0.0000 +vn -0.3066 -0.1256 -0.9435 +vn 0.8026 -0.1256 -0.5831 +vn 0.4089 0.6617 0.6284 +vn -0.4713 0.6617 0.5831 +vn -0.7002 0.6617 -0.2680 +vn 0.0385 0.6617 -0.7488 +vn 0.7240 0.6617 -0.1947 +vn 0.2680 0.9435 -0.1947 +vn 0.4911 0.7947 -0.3568 +vn 0.4089 0.6617 -0.6284 +vn -0.1024 0.9435 -0.3151 +vn -0.1876 0.7947 -0.5773 +vn -0.4713 0.6617 -0.5831 +vn -0.3313 0.9435 -0.0000 +vn -0.6071 0.7947 -0.0000 +vn -0.7002 0.6617 0.2680 +vn -0.1024 0.9435 0.3151 +vn -0.1876 0.7947 0.5773 +vn 0.0385 0.6617 0.7488 +vn 0.2680 0.9435 0.1947 +vn 0.4911 0.7947 0.3568 +vn 0.7240 0.6617 0.1947 +vn 0.8897 0.3304 -0.3151 +vn 0.7947 0.1876 -0.5773 +vn 0.5746 0.3304 -0.7488 +vn -0.0247 0.3304 -0.9435 +vn -0.3035 0.1876 -0.9342 +vn -0.5346 0.3304 -0.7779 +vn -0.9050 0.3304 -0.2680 +vn -0.9822 0.1876 -0.0000 +vn -0.9050 0.3304 0.2680 +vn -0.5346 0.3304 0.7779 +vn -0.3035 0.1876 0.9342 +vn -0.0247 0.3304 0.9435 +vn 0.5746 0.3304 0.7488 +vn 0.7947 0.1876 0.5773 +vn 0.8897 0.3304 0.3151 +vn 0.3066 0.1256 -0.9435 +vn 0.3035 -0.1876 -0.9342 +vn 0.0247 -0.3304 -0.9435 +vn -0.8026 0.1256 -0.5831 +vn -0.7947 -0.1876 -0.5773 +vn -0.8897 -0.3304 -0.3151 +vn -0.8026 0.1256 0.5831 +vn -0.7947 -0.1876 0.5773 +vn -0.5746 -0.3304 0.7488 +vn 0.3066 0.1256 0.9435 +vn 0.3035 -0.1876 0.9342 +vn 0.5346 -0.3304 0.7779 +vn 0.9921 0.1256 -0.0000 +vn 0.9822 -0.1876 -0.0000 +vn 0.9050 -0.3304 -0.2680 +vn 0.4713 -0.6617 -0.5831 +vn 0.1876 -0.7947 -0.5773 +vn -0.0385 -0.6617 -0.7488 +vn -0.4089 -0.6617 -0.6284 +vn -0.4911 -0.7947 -0.3568 +vn -0.7240 -0.6617 -0.1947 +vn -0.7240 -0.6617 0.1947 +vn -0.4911 -0.7947 0.3568 +vn -0.4089 -0.6617 0.6284 +vn 0.7002 -0.6617 -0.2680 +vn 0.6071 -0.7947 -0.0000 +vn 0.3313 -0.9435 -0.0000 +vn -0.0385 -0.6617 0.7488 +vn 0.1876 -0.7947 0.5773 +vn 0.4713 -0.6617 0.5831 +s 0 +f 1//1 14//1 13//1 +f 2//2 14//2 16//2 +f 1//3 13//3 18//3 +f 1//4 18//4 20//4 +f 1//5 20//5 17//5 +f 2//6 16//6 23//6 +f 3//7 15//7 25//7 +f 4//8 19//8 27//8 +f 5//9 21//9 29//9 +f 6//10 22//10 31//10 +f 2//11 23//11 26//11 +f 3//12 25//12 28//12 +f 4//13 27//13 30//13 +f 5//14 29//14 32//14 +f 6//15 31//15 24//15 +f 7//16 33//16 38//16 +f 8//17 34//17 40//17 +f 9//18 35//18 41//18 +f 10//19 36//19 42//19 +f 11//20 37//20 39//20 +f 39//21 42//21 12//21 +f 39//22 37//22 42//22 +f 37//23 10//23 42//23 +f 42//24 41//24 12//24 +f 42//25 36//25 41//25 +f 36//26 9//26 41//26 +f 41//27 40//27 12//27 +f 41//28 35//28 40//28 +f 35//29 8//29 40//29 +f 40//30 38//30 12//30 +f 40//31 34//31 38//31 +f 34//32 7//32 38//32 +f 38//33 39//33 12//33 +f 38//34 33//34 39//34 +f 33//35 11//35 39//35 +f 24//36 37//36 11//36 +f 24//37 31//37 37//37 +f 31//38 10//38 37//38 +f 32//39 36//39 10//39 +f 32//40 29//40 36//40 +f 29//41 9//41 36//41 +f 30//42 35//42 9//42 +f 30//43 27//43 35//43 +f 27//44 8//44 35//44 +f 28//45 34//45 8//45 +f 28//46 25//46 34//46 +f 25//47 7//47 34//47 +f 26//48 33//48 7//48 +f 26//49 23//49 33//49 +f 23//50 11//50 33//50 +f 31//51 32//51 10//51 +f 31//52 22//52 32//52 +f 22//53 5//53 32//53 +f 29//54 30//54 9//54 +f 29//55 21//55 30//55 +f 21//56 4//56 30//56 +f 27//57 28//57 8//57 +f 27//58 19//58 28//58 +f 19//59 3//59 28//59 +f 25//60 26//60 7//60 +f 25//61 15//61 26//61 +f 15//62 2//62 26//62 +f 23//63 24//63 11//63 +f 23//64 16//64 24//64 +f 16//65 6//65 24//65 +f 17//66 22//66 6//66 +f 17//67 20//67 22//67 +f 20//68 5//68 22//68 +f 20//69 21//69 5//69 +f 20//70 18//70 21//70 +f 18//71 4//71 21//71 +f 18//72 19//72 4//72 +f 18//73 13//73 19//73 +f 13//74 3//74 19//74 +f 16//75 17//75 6//75 +f 16//76 14//76 17//76 +f 14//77 1//77 17//77 +f 13//78 15//78 3//78 +f 13//79 14//79 15//79 +f 14//80 2//80 15//80 diff --git a/geometry/suzanne.hpp b/geometry/suzanne.hpp new file mode 100644 index 0000000..f70882b --- /dev/null +++ b/geometry/suzanne.hpp @@ -0,0 +1,2432 @@ +#pragma once + +#include "geometry.hpp" + +namespace suzanne { + constexpr vec3 vertices[] = { + { 0.437500f, -0.164062f, -0.765625f }, + { -0.437500f, -0.164062f, -0.765625f }, + { 0.500000f, -0.093750f, -0.687500f }, + { -0.500000f, -0.093750f, -0.687500f }, + { 0.546875f, -0.054688f, -0.578125f }, + { -0.546875f, -0.054687f, -0.578125f }, + { 0.351562f, 0.023438f, -0.617188f }, + { -0.351563f, 0.023438f, -0.617187f }, + { 0.351562f, -0.031250f, -0.718750f }, + { -0.351563f, -0.031250f, -0.718750f }, + { 0.351562f, -0.132812f, -0.781250f }, + { -0.351563f, -0.132812f, -0.781250f }, + { 0.273437f, -0.164062f, -0.796875f }, + { -0.273438f, -0.164062f, -0.796875f }, + { 0.203125f, -0.093750f, -0.742188f }, + { -0.203125f, -0.093750f, -0.742187f }, + { 0.156250f, -0.054687f, -0.648438f }, + { -0.156250f, -0.054687f, -0.648438f }, + { 0.078125f, -0.242187f, -0.656250f }, + { -0.078125f, -0.242187f, -0.656250f }, + { 0.140625f, -0.242187f, -0.742188f }, + { -0.140625f, -0.242187f, -0.742188f }, + { 0.242187f, -0.242187f, -0.796875f }, + { -0.242188f, -0.242187f, -0.796875f }, + { 0.273437f, -0.328125f, -0.796875f }, + { -0.273438f, -0.328125f, -0.796875f }, + { 0.203125f, -0.390625f, -0.742188f }, + { -0.203125f, -0.390625f, -0.742188f }, + { 0.156250f, -0.437500f, -0.648438f }, + { -0.156250f, -0.437500f, -0.648438f }, + { 0.351562f, -0.515625f, -0.617188f }, + { -0.351563f, -0.515625f, -0.617188f }, + { 0.351562f, -0.453125f, -0.718750f }, + { -0.351563f, -0.453125f, -0.718750f }, + { 0.351562f, -0.359375f, -0.781250f }, + { -0.351563f, -0.359375f, -0.781250f }, + { 0.437500f, -0.328125f, -0.765625f }, + { -0.437500f, -0.328125f, -0.765625f }, + { 0.500000f, -0.390625f, -0.687500f }, + { -0.500000f, -0.390625f, -0.687500f }, + { 0.546875f, -0.437500f, -0.578125f }, + { -0.546875f, -0.437500f, -0.578125f }, + { 0.625000f, -0.242188f, -0.562500f }, + { -0.625000f, -0.242187f, -0.562500f }, + { 0.562500f, -0.242188f, -0.671875f }, + { -0.562500f, -0.242187f, -0.671875f }, + { 0.468750f, -0.242187f, -0.757813f }, + { -0.468750f, -0.242187f, -0.757812f }, + { 0.476562f, -0.242187f, -0.773438f }, + { -0.476563f, -0.242187f, -0.773438f }, + { 0.445312f, -0.335937f, -0.781250f }, + { -0.445313f, -0.335937f, -0.781250f }, + { 0.351562f, -0.375000f, -0.804688f }, + { -0.351563f, -0.375000f, -0.804688f }, + { 0.265625f, -0.335937f, -0.820313f }, + { -0.265625f, -0.335937f, -0.820312f }, + { 0.226562f, -0.242187f, -0.820313f }, + { -0.226563f, -0.242187f, -0.820312f }, + { 0.265625f, -0.156250f, -0.820313f }, + { -0.265625f, -0.156250f, -0.820312f }, + { 0.351562f, -0.242187f, -0.828125f }, + { -0.351563f, -0.242187f, -0.828125f }, + { 0.351562f, -0.117187f, -0.804688f }, + { -0.351563f, -0.117187f, -0.804687f }, + { 0.445312f, -0.156250f, -0.781250f }, + { -0.445313f, -0.156250f, -0.781250f }, + { -0.000000f, -0.429687f, -0.742188f }, + { -0.000000f, -0.351562f, -0.820313f }, + { 0.000000f, 0.679688f, -0.734375f }, + { -0.000000f, 0.320313f, -0.781250f }, + { -0.000000f, 0.187500f, -0.796875f }, + { 0.000000f, 0.773438f, -0.718750f }, + { -0.000000f, -0.406250f, -0.601563f }, + { -0.000000f, -0.570312f, -0.570313f }, + { -0.000000f, -0.898438f, 0.546875f }, + { 0.000000f, -0.562500f, 0.851562f }, + { 0.000000f, -0.070313f, 0.828125f }, + { 0.000000f, 0.382812f, 0.351563f }, + { 0.203125f, 0.187500f, -0.562500f }, + { -0.203125f, 0.187500f, -0.562500f }, + { 0.312500f, 0.437500f, -0.570312f }, + { -0.312500f, 0.437500f, -0.570312f }, + { 0.351563f, 0.695312f, -0.570312f }, + { -0.351562f, 0.695313f, -0.570312f }, + { 0.367188f, 0.890625f, -0.531250f }, + { -0.367187f, 0.890625f, -0.531250f }, + { 0.328125f, 0.945312f, -0.523437f }, + { -0.328125f, 0.945313f, -0.523437f }, + { 0.179688f, 0.968750f, -0.554687f }, + { -0.179687f, 0.968750f, -0.554687f }, + { 0.000000f, 0.984375f, -0.578125f }, + { 0.437500f, 0.140625f, -0.531250f }, + { -0.437500f, 0.140625f, -0.531250f }, + { 0.632812f, 0.039062f, -0.539063f }, + { -0.632813f, 0.039063f, -0.539062f }, + { 0.828125f, -0.148438f, -0.445313f }, + { -0.828125f, -0.148437f, -0.445312f }, + { 0.859375f, -0.429688f, -0.593750f }, + { -0.859375f, -0.429687f, -0.593750f }, + { 0.710937f, -0.484375f, -0.625000f }, + { -0.710938f, -0.484375f, -0.625000f }, + { 0.492187f, -0.601562f, -0.687500f }, + { -0.492188f, -0.601562f, -0.687500f }, + { 0.320312f, -0.757812f, -0.734375f }, + { -0.320313f, -0.757812f, -0.734375f }, + { 0.156250f, -0.718750f, -0.757813f }, + { -0.156250f, -0.718750f, -0.757813f }, + { 0.062500f, -0.492187f, -0.750000f }, + { -0.062500f, -0.492187f, -0.750000f }, + { 0.164062f, -0.414062f, -0.773438f }, + { -0.164063f, -0.414062f, -0.773438f }, + { 0.125000f, -0.304687f, -0.765625f }, + { -0.125000f, -0.304687f, -0.765625f }, + { 0.203125f, -0.093750f, -0.742188f }, + { -0.203125f, -0.093750f, -0.742187f }, + { 0.375000f, -0.015625f, -0.703125f }, + { -0.375000f, -0.015625f, -0.703125f }, + { 0.492187f, -0.062500f, -0.671875f }, + { -0.492188f, -0.062500f, -0.671875f }, + { 0.625000f, -0.187500f, -0.648438f }, + { -0.625000f, -0.187500f, -0.648437f }, + { 0.640625f, -0.296875f, -0.648438f }, + { -0.640625f, -0.296875f, -0.648437f }, + { 0.601562f, -0.375000f, -0.664063f }, + { -0.601563f, -0.375000f, -0.664062f }, + { 0.429687f, -0.437500f, -0.718750f }, + { -0.429688f, -0.437500f, -0.718750f }, + { 0.250000f, -0.468750f, -0.757813f }, + { -0.250000f, -0.468750f, -0.757812f }, + { 0.000000f, 0.765625f, -0.734375f }, + { 0.109375f, 0.718750f, -0.734375f }, + { -0.109375f, 0.718750f, -0.734375f }, + { 0.117188f, 0.835938f, -0.710937f }, + { -0.117187f, 0.835938f, -0.710937f }, + { 0.062500f, 0.882813f, -0.695312f }, + { -0.062500f, 0.882813f, -0.695312f }, + { 0.000000f, 0.890625f, -0.687500f }, + { -0.000000f, 0.195313f, -0.750000f }, + { -0.000000f, 0.140625f, -0.742188f }, + { 0.101562f, 0.148438f, -0.742188f }, + { -0.101563f, 0.148438f, -0.742188f }, + { 0.125000f, 0.226563f, -0.750000f }, + { -0.125000f, 0.226563f, -0.750000f }, + { 0.085937f, 0.289063f, -0.742187f }, + { -0.085938f, 0.289063f, -0.742187f }, + { 0.398437f, 0.046875f, -0.671875f }, + { -0.398438f, 0.046875f, -0.671875f }, + { 0.617187f, -0.054688f, -0.625000f }, + { -0.617188f, -0.054687f, -0.625000f }, + { 0.726562f, -0.203125f, -0.601563f }, + { -0.726563f, -0.203125f, -0.601562f }, + { 0.742187f, -0.375000f, -0.656250f }, + { -0.742188f, -0.375000f, -0.656250f }, + { 0.687500f, -0.414062f, -0.726563f }, + { -0.687500f, -0.414062f, -0.726562f }, + { 0.437500f, -0.546875f, -0.796875f }, + { -0.437500f, -0.546875f, -0.796875f }, + { 0.312500f, -0.640625f, -0.835938f }, + { -0.312500f, -0.640625f, -0.835938f }, + { 0.203125f, -0.617187f, -0.851563f }, + { -0.203125f, -0.617187f, -0.851563f }, + { 0.101562f, -0.429687f, -0.843750f }, + { -0.101563f, -0.429687f, -0.843750f }, + { 0.125000f, 0.101563f, -0.812500f }, + { -0.125000f, 0.101563f, -0.812500f }, + { 0.210937f, 0.445313f, -0.710938f }, + { -0.210938f, 0.445313f, -0.710937f }, + { 0.250000f, 0.703125f, -0.687500f }, + { -0.250000f, 0.703125f, -0.687500f }, + { 0.265625f, 0.820313f, -0.664062f }, + { -0.265625f, 0.820313f, -0.664062f }, + { 0.234375f, 0.914063f, -0.632812f }, + { -0.234375f, 0.914063f, -0.632812f }, + { 0.164063f, 0.929688f, -0.632812f }, + { -0.164062f, 0.929688f, -0.632812f }, + { 0.000000f, 0.945313f, -0.640625f }, + { -0.000000f, -0.046875f, -0.726562f }, + { -0.000000f, -0.210937f, -0.765625f }, + { 0.328125f, -0.476562f, -0.742188f }, + { -0.328125f, -0.476562f, -0.742188f }, + { 0.164062f, -0.140625f, -0.750000f }, + { -0.164063f, -0.140625f, -0.750000f }, + { 0.132812f, -0.210937f, -0.757813f }, + { -0.132813f, -0.210937f, -0.757813f }, + { 0.117188f, 0.687500f, -0.734375f }, + { -0.117187f, 0.687500f, -0.734375f }, + { 0.078125f, 0.445313f, -0.750000f }, + { -0.078125f, 0.445313f, -0.750000f }, + { -0.000000f, 0.445313f, -0.750000f }, + { -0.000000f, 0.328125f, -0.742187f }, + { 0.093750f, 0.273438f, -0.781250f }, + { -0.093750f, 0.273438f, -0.781250f }, + { 0.132812f, 0.226563f, -0.796875f }, + { -0.132813f, 0.226563f, -0.796875f }, + { 0.109375f, 0.132813f, -0.781250f }, + { -0.109375f, 0.132813f, -0.781250f }, + { 0.039062f, 0.125000f, -0.781250f }, + { -0.039063f, 0.125000f, -0.781250f }, + { -0.000000f, 0.203125f, -0.828125f }, + { 0.046875f, 0.148438f, -0.812500f }, + { -0.046875f, 0.148438f, -0.812500f }, + { 0.093750f, 0.156250f, -0.812500f }, + { -0.093750f, 0.156250f, -0.812500f }, + { 0.109375f, 0.226563f, -0.828125f }, + { -0.109375f, 0.226563f, -0.828125f }, + { 0.078125f, 0.250000f, -0.804687f }, + { -0.078125f, 0.250000f, -0.804687f }, + { -0.000000f, 0.289063f, -0.804687f }, + { 0.257812f, 0.312500f, -0.554688f }, + { -0.257813f, 0.312500f, -0.554687f }, + { 0.164062f, 0.242188f, -0.710937f }, + { -0.164063f, 0.242188f, -0.710937f }, + { 0.179687f, 0.312500f, -0.710937f }, + { -0.179688f, 0.312500f, -0.710937f }, + { 0.234375f, 0.250000f, -0.554688f }, + { -0.234375f, 0.250000f, -0.554687f }, + { 0.000000f, 0.875000f, -0.687500f }, + { 0.046875f, 0.867188f, -0.687500f }, + { -0.046875f, 0.867188f, -0.687500f }, + { 0.093750f, 0.820313f, -0.710937f }, + { -0.093750f, 0.820313f, -0.710937f }, + { 0.093750f, 0.742188f, -0.726562f }, + { -0.093750f, 0.742188f, -0.726562f }, + { 0.000000f, 0.781250f, -0.656250f }, + { 0.093750f, 0.750000f, -0.664062f }, + { -0.093750f, 0.750000f, -0.664062f }, + { 0.093750f, 0.812500f, -0.640625f }, + { -0.093750f, 0.812500f, -0.640625f }, + { 0.046875f, 0.851563f, -0.632812f }, + { -0.046875f, 0.851563f, -0.632812f }, + { 0.000000f, 0.859375f, -0.632812f }, + { 0.171875f, -0.218750f, -0.781250f }, + { -0.171875f, -0.218750f, -0.781250f }, + { 0.187500f, -0.156250f, -0.773438f }, + { -0.187500f, -0.156250f, -0.773438f }, + { 0.335937f, -0.429687f, -0.757813f }, + { -0.335938f, -0.429687f, -0.757812f }, + { 0.273437f, -0.421875f, -0.773438f }, + { -0.273438f, -0.421875f, -0.773438f }, + { 0.421875f, -0.398437f, -0.773438f }, + { -0.421875f, -0.398437f, -0.773438f }, + { 0.562500f, -0.351562f, -0.695313f }, + { -0.562500f, -0.351562f, -0.695312f }, + { 0.585937f, -0.289062f, -0.687500f }, + { -0.585938f, -0.289062f, -0.687500f }, + { 0.578125f, -0.195312f, -0.679688f }, + { -0.578125f, -0.195312f, -0.679687f }, + { 0.476562f, -0.101562f, -0.718750f }, + { -0.476563f, -0.101562f, -0.718750f }, + { 0.375000f, -0.062500f, -0.742188f }, + { -0.375000f, -0.062500f, -0.742187f }, + { 0.226562f, -0.109375f, -0.781250f }, + { -0.226563f, -0.109375f, -0.781250f }, + { 0.179687f, -0.296875f, -0.781250f }, + { -0.179688f, -0.296875f, -0.781250f }, + { 0.210937f, -0.375000f, -0.781250f }, + { -0.210938f, -0.375000f, -0.781250f }, + { 0.234375f, -0.359375f, -0.757813f }, + { -0.234375f, -0.359375f, -0.757812f }, + { 0.195312f, -0.296875f, -0.757813f }, + { -0.195313f, -0.296875f, -0.757813f }, + { 0.242187f, -0.125000f, -0.757813f }, + { -0.242188f, -0.125000f, -0.757812f }, + { 0.375000f, -0.085937f, -0.726563f }, + { -0.375000f, -0.085937f, -0.726562f }, + { 0.460937f, -0.117187f, -0.703125f }, + { -0.460938f, -0.117187f, -0.703125f }, + { 0.546875f, -0.210938f, -0.671875f }, + { -0.546875f, -0.210937f, -0.671875f }, + { 0.554687f, -0.281250f, -0.671875f }, + { -0.554688f, -0.281250f, -0.671875f }, + { 0.531250f, -0.335938f, -0.679688f }, + { -0.531250f, -0.335937f, -0.679688f }, + { 0.414062f, -0.390625f, -0.750000f }, + { -0.414063f, -0.390625f, -0.750000f }, + { 0.281250f, -0.398437f, -0.765625f }, + { -0.281250f, -0.398437f, -0.765625f }, + { 0.335937f, -0.406250f, -0.750000f }, + { -0.335938f, -0.406250f, -0.750000f }, + { 0.203125f, -0.171875f, -0.750000f }, + { -0.203125f, -0.171875f, -0.750000f }, + { 0.195312f, -0.226562f, -0.750000f }, + { -0.195313f, -0.226562f, -0.750000f }, + { 0.109375f, -0.460937f, -0.609375f }, + { -0.109375f, -0.460937f, -0.609375f }, + { 0.195312f, -0.664062f, -0.617188f }, + { -0.195313f, -0.664062f, -0.617188f }, + { 0.335937f, -0.687500f, -0.593750f }, + { -0.335938f, -0.687500f, -0.593750f }, + { 0.484375f, -0.554688f, -0.554688f }, + { -0.484375f, -0.554687f, -0.554688f }, + { 0.679687f, -0.453125f, -0.492188f }, + { -0.679688f, -0.453125f, -0.492187f }, + { 0.796875f, -0.406250f, -0.460938f }, + { -0.796875f, -0.406250f, -0.460937f }, + { 0.773437f, -0.164063f, -0.375000f }, + { -0.773438f, -0.164062f, -0.375000f }, + { 0.601562f, -0.000000f, -0.414063f }, + { -0.601563f, 0.000000f, -0.414062f }, + { 0.437500f, 0.093750f, -0.468750f }, + { -0.437500f, 0.093750f, -0.468750f }, + { -0.000000f, -0.898437f, -0.289063f }, + { -0.000000f, -0.984375f, 0.078125f }, + { 0.000000f, 0.195312f, 0.671875f }, + { 0.000000f, 0.460938f, -0.187500f }, + { 0.000000f, 0.976563f, -0.460937f }, + { 0.000000f, 0.804688f, -0.343750f }, + { 0.000000f, 0.570313f, -0.320312f }, + { 0.000000f, 0.484375f, -0.281250f }, + { 0.851562f, -0.234375f, -0.054688f }, + { -0.851563f, -0.234375f, -0.054687f }, + { 0.859375f, -0.320313f, 0.046875f }, + { -0.859375f, -0.320312f, 0.046875f }, + { 0.773438f, -0.265625f, 0.437500f }, + { -0.773438f, -0.265625f, 0.437500f }, + { 0.460938f, -0.437500f, 0.703125f }, + { -0.460937f, -0.437500f, 0.703125f }, + { 0.734375f, 0.046875f, -0.070313f }, + { -0.734375f, 0.046875f, -0.070312f }, + { 0.593750f, 0.125000f, 0.164062f }, + { -0.593750f, 0.125000f, 0.164063f }, + { 0.640625f, 0.007812f, 0.429687f }, + { -0.640625f, 0.007813f, 0.429688f }, + { 0.335938f, -0.054688f, 0.664062f }, + { -0.335937f, -0.054688f, 0.664063f }, + { 0.234375f, 0.351563f, -0.406250f }, + { -0.234375f, 0.351563f, -0.406250f }, + { 0.179688f, 0.414062f, -0.257812f }, + { -0.179687f, 0.414063f, -0.257812f }, + { 0.289063f, 0.710938f, -0.382812f }, + { -0.289062f, 0.710938f, -0.382812f }, + { 0.250000f, 0.500000f, -0.390625f }, + { -0.250000f, 0.500000f, -0.390625f }, + { 0.328125f, 0.914062f, -0.398437f }, + { -0.328125f, 0.914063f, -0.398437f }, + { 0.140625f, 0.757813f, -0.367187f }, + { -0.140625f, 0.757813f, -0.367187f }, + { 0.125000f, 0.539063f, -0.359375f }, + { -0.125000f, 0.539063f, -0.359375f }, + { 0.164063f, 0.945313f, -0.437500f }, + { -0.164062f, 0.945313f, -0.437500f }, + { 0.218750f, 0.281250f, -0.429688f }, + { -0.218750f, 0.281250f, -0.429687f }, + { 0.210937f, 0.226563f, -0.468750f }, + { -0.210938f, 0.226563f, -0.468750f }, + { 0.203125f, 0.171875f, -0.500000f }, + { -0.203125f, 0.171875f, -0.500000f }, + { 0.210938f, 0.390625f, -0.164062f }, + { -0.210937f, 0.390625f, -0.164062f }, + { 0.296875f, 0.312500f, 0.265625f }, + { -0.296875f, 0.312500f, 0.265625f }, + { 0.343750f, 0.148437f, 0.539062f }, + { -0.343750f, 0.148437f, 0.539063f }, + { 0.453125f, -0.867188f, 0.382812f }, + { -0.453125f, -0.867188f, 0.382812f }, + { 0.453125f, -0.929688f, 0.070312f }, + { -0.453125f, -0.929687f, 0.070312f }, + { 0.453125f, -0.851563f, -0.234375f }, + { -0.453125f, -0.851562f, -0.234375f }, + { 0.460937f, -0.523438f, -0.429688f }, + { -0.460938f, -0.523437f, -0.429688f }, + { 0.726562f, -0.406250f, -0.335938f }, + { -0.726563f, -0.406250f, -0.335937f }, + { 0.632812f, -0.453125f, -0.281250f }, + { -0.632813f, -0.453125f, -0.281250f }, + { 0.640625f, -0.703125f, -0.054688f }, + { -0.640625f, -0.703125f, -0.054688f }, + { 0.796875f, -0.562500f, -0.125000f }, + { -0.796875f, -0.562500f, -0.125000f }, + { 0.796875f, -0.617188f, 0.117187f }, + { -0.796875f, -0.617187f, 0.117188f }, + { 0.640625f, -0.750000f, 0.195312f }, + { -0.640625f, -0.750000f, 0.195312f }, + { 0.640625f, -0.679688f, 0.445312f }, + { -0.640625f, -0.679687f, 0.445312f }, + { 0.796875f, -0.539063f, 0.359375f }, + { -0.796875f, -0.539062f, 0.359375f }, + { 0.617188f, -0.328125f, 0.585937f }, + { -0.617188f, -0.328125f, 0.585938f }, + { 0.484375f, -0.023438f, 0.546875f }, + { -0.484375f, -0.023437f, 0.546875f }, + { 0.820312f, -0.328125f, 0.203125f }, + { -0.820312f, -0.328125f, 0.203125f }, + { 0.406250f, 0.171875f, -0.148438f }, + { -0.406250f, 0.171875f, -0.148437f }, + { 0.429688f, 0.195312f, 0.210937f }, + { -0.429687f, 0.195313f, 0.210938f }, + { 0.890625f, -0.406250f, 0.234375f }, + { -0.890625f, -0.406250f, 0.234375f }, + { 0.773438f, 0.140625f, 0.125000f }, + { -0.773438f, 0.140625f, 0.125000f }, + { 1.039062f, 0.101562f, 0.328125f }, + { -1.039062f, 0.101563f, 0.328125f }, + { 1.281250f, -0.054688f, 0.429687f }, + { -1.281250f, -0.054687f, 0.429688f }, + { 1.351563f, -0.320313f, 0.421875f }, + { -1.351562f, -0.320312f, 0.421875f }, + { 1.234375f, -0.507813f, 0.421875f }, + { -1.234375f, -0.507812f, 0.421875f }, + { 1.023437f, -0.476563f, 0.312500f }, + { -1.023438f, -0.476562f, 0.312500f }, + { 1.015625f, -0.414063f, 0.289062f }, + { -1.015625f, -0.414062f, 0.289063f }, + { 1.187500f, -0.437500f, 0.390625f }, + { -1.187500f, -0.437500f, 0.390625f }, + { 1.265625f, -0.289063f, 0.406250f }, + { -1.265625f, -0.289062f, 0.406250f }, + { 1.210938f, -0.078125f, 0.406250f }, + { -1.210937f, -0.078125f, 0.406250f }, + { 1.031250f, 0.039062f, 0.304687f }, + { -1.031250f, 0.039063f, 0.304688f }, + { 0.828125f, 0.070312f, 0.132812f }, + { -0.828125f, 0.070313f, 0.132813f }, + { 0.921875f, -0.359375f, 0.218750f }, + { -0.921875f, -0.359375f, 0.218750f }, + { 0.945312f, -0.304688f, 0.289062f }, + { -0.945312f, -0.304687f, 0.289063f }, + { 0.882813f, 0.023437f, 0.210937f }, + { -0.882812f, 0.023438f, 0.210938f }, + { 1.039062f, -0.000000f, 0.367187f }, + { -1.039062f, 0.000000f, 0.367188f }, + { 1.187500f, -0.093750f, 0.445312f }, + { -1.187500f, -0.093750f, 0.445313f }, + { 1.234375f, -0.250000f, 0.445312f }, + { -1.234375f, -0.250000f, 0.445313f }, + { 1.171875f, -0.359375f, 0.437500f }, + { -1.171875f, -0.359375f, 0.437500f }, + { 1.023437f, -0.343750f, 0.359375f }, + { -1.023438f, -0.343750f, 0.359375f }, + { 0.843750f, -0.289063f, 0.210937f }, + { -0.843750f, -0.289062f, 0.210938f }, + { 0.835938f, -0.171875f, 0.273437f }, + { -0.835938f, -0.171875f, 0.273438f }, + { 0.757813f, -0.093750f, 0.273437f }, + { -0.757812f, -0.093750f, 0.273438f }, + { 0.820313f, -0.085938f, 0.273437f }, + { -0.820312f, -0.085937f, 0.273438f }, + { 0.843750f, -0.015625f, 0.273437f }, + { -0.843750f, -0.015625f, 0.273438f }, + { 0.812500f, 0.015625f, 0.273437f }, + { -0.812500f, 0.015625f, 0.273438f }, + { 0.726562f, -0.000000f, 0.070312f }, + { -0.726562f, 0.000000f, 0.070313f }, + { 0.718750f, 0.023437f, 0.171875f }, + { -0.718750f, 0.023438f, 0.171875f }, + { 0.718750f, -0.039063f, 0.187500f }, + { -0.718750f, -0.039062f, 0.187500f }, + { 0.796875f, -0.203125f, 0.210937f }, + { -0.796875f, -0.203125f, 0.210938f }, + { 0.890625f, -0.242188f, 0.265625f }, + { -0.890625f, -0.242187f, 0.265625f }, + { 0.890625f, -0.234375f, 0.320312f }, + { -0.890625f, -0.234375f, 0.320313f }, + { 0.812500f, 0.015625f, 0.320312f }, + { -0.812500f, 0.015625f, 0.320313f }, + { 0.851563f, -0.015625f, 0.320312f }, + { -0.851562f, -0.015625f, 0.320313f }, + { 0.828125f, -0.078125f, 0.320312f }, + { -0.828125f, -0.078125f, 0.320313f }, + { 0.765625f, -0.093750f, 0.320312f }, + { -0.765625f, -0.093750f, 0.320313f }, + { 0.843750f, -0.171875f, 0.320312f }, + { -0.843750f, -0.171875f, 0.320313f }, + { 1.039063f, -0.328125f, 0.414062f }, + { -1.039062f, -0.328125f, 0.414063f }, + { 1.187500f, -0.343750f, 0.484375f }, + { -1.187500f, -0.343750f, 0.484375f }, + { 1.257813f, -0.242188f, 0.492187f }, + { -1.257812f, -0.242187f, 0.492188f }, + { 1.210938f, -0.085938f, 0.484375f }, + { -1.210937f, -0.085937f, 0.484375f }, + { 1.046875f, -0.000000f, 0.421875f }, + { -1.046875f, 0.000000f, 0.421875f }, + { 0.882813f, 0.015625f, 0.265625f }, + { -0.882812f, 0.015625f, 0.265625f }, + { 0.953125f, -0.289063f, 0.343750f }, + { -0.953125f, -0.289062f, 0.343750f }, + { 0.890625f, -0.109375f, 0.328125f }, + { -0.890625f, -0.109375f, 0.328125f }, + { 0.937500f, -0.062500f, 0.335937f }, + { -0.937500f, -0.062500f, 0.335938f }, + { 1.000000f, -0.125000f, 0.367187f }, + { -1.000000f, -0.125000f, 0.367188f }, + { 0.960938f, -0.171875f, 0.351562f }, + { -0.960938f, -0.171875f, 0.351563f }, + { 1.015625f, -0.234375f, 0.375000f }, + { -1.015625f, -0.234375f, 0.375000f }, + { 1.054688f, -0.187500f, 0.382812f }, + { -1.054688f, -0.187500f, 0.382813f }, + { 1.109375f, -0.210938f, 0.390625f }, + { -1.109375f, -0.210937f, 0.390625f }, + { 1.085938f, -0.273438f, 0.390625f }, + { -1.085938f, -0.273437f, 0.390625f }, + { 1.023438f, -0.437500f, 0.484375f }, + { -1.023438f, -0.437500f, 0.484375f }, + { 1.250000f, -0.468750f, 0.546875f }, + { -1.250000f, -0.468750f, 0.546875f }, + { 1.367188f, -0.296875f, 0.500000f }, + { -1.367187f, -0.296875f, 0.500000f }, + { 1.312500f, -0.054688f, 0.531250f }, + { -1.312500f, -0.054687f, 0.531250f }, + { 1.039063f, 0.085937f, 0.492187f }, + { -1.039062f, 0.085938f, 0.492188f }, + { 0.789063f, 0.125000f, 0.328125f }, + { -0.789062f, 0.125000f, 0.328125f }, + { 0.859375f, -0.382813f, 0.382812f }, + { -0.859375f, -0.382812f, 0.382813f }, + }; + + constexpr vec3 normals[] = { + { 0.661700f, 0.202600f, -0.721900f }, + { -0.661700f, 0.202600f, -0.721900f }, + { 0.826800f, 0.305100f, -0.472500f }, + { -0.826800f, 0.305100f, -0.472500f }, + { 0.407600f, 0.790500f, -0.457000f }, + { -0.407600f, 0.790500f, -0.457000f }, + { 0.379100f, 0.516300f, -0.767900f }, + { -0.379100f, 0.516300f, -0.767900f }, + { -0.085900f, 0.522200f, -0.848500f }, + { 0.085900f, 0.522200f, -0.848500f }, + { -0.266400f, 0.848700f, -0.457000f }, + { 0.266400f, 0.848700f, -0.457000f }, + { -0.782400f, 0.329400f, -0.528500f }, + { 0.760600f, 0.340000f, -0.553100f }, + { -0.476700f, 0.190700f, -0.858100f }, + { 0.464900f, 0.195800f, -0.863400f }, + { -0.464900f, -0.195800f, -0.863400f }, + { 0.464900f, -0.195800f, -0.863400f }, + { -0.765600f, -0.322300f, -0.556800f }, + { 0.768300f, -0.329300f, -0.548800f }, + { -0.256000f, -0.807300f, -0.531700f }, + { 0.248700f, -0.824900f, -0.507600f }, + { -0.082100f, -0.602300f, -0.794000f }, + { 0.101700f, -0.551800f, -0.827700f }, + { 0.332900f, -0.523100f, -0.784600f }, + { -0.386100f, -0.544600f, -0.744500f }, + { 0.424600f, -0.771100f, -0.474500f }, + { -0.405900f, -0.764100f, -0.501400f }, + { 0.825100f, -0.296800f, -0.480800f }, + { -0.829900f, -0.294000f, -0.474200f }, + { 0.688800f, -0.186800f, -0.700500f }, + { -0.661700f, -0.202600f, -0.721900f }, + { 0.840000f, -0.343600f, 0.420000f }, + { -0.781600f, -0.305800f, 0.543700f }, + { 0.207400f, -0.829600f, 0.518500f }, + { -0.203700f, -0.814600f, 0.543100f }, + { -0.405600f, -0.760500f, 0.507000f }, + { 0.438100f, -0.798800f, 0.412300f }, + { -0.864200f, -0.314300f, 0.392800f }, + { 0.786100f, -0.327600f, 0.524100f }, + { -0.778200f, 0.353800f, 0.518800f }, + { 0.778300f, 0.353700f, 0.518800f }, + { -0.438100f, 0.798800f, 0.412300f }, + { 0.438100f, 0.798800f, 0.412300f }, + { 0.203700f, 0.814600f, 0.543100f }, + { -0.203700f, 0.814600f, 0.543100f }, + { 0.768300f, 0.329300f, 0.548800f }, + { -0.768300f, 0.329300f, 0.548800f }, + { 0.400000f, 0.062300f, -0.914400f }, + { -0.400000f, 0.062300f, -0.914400f }, + { 0.306900f, 0.175400f, -0.935400f }, + { -0.306900f, 0.175400f, -0.935400f }, + { 0.094500f, 0.183500f, -0.978500f }, + { -0.094500f, 0.183500f, -0.978500f }, + { -0.062400f, 0.028300f, -0.997700f }, + { 0.062400f, 0.028300f, -0.997700f }, + { -0.062400f, -0.026000f, -0.997700f }, + { 0.062400f, -0.026000f, -0.997700f }, + { 0.099600f, -0.172900f, -0.979900f }, + { -0.099600f, -0.172900f, -0.979900f }, + { 0.303600f, -0.165600f, -0.938300f }, + { -0.303600f, -0.165600f, -0.938300f }, + { 0.400200f, -0.057200f, -0.914700f }, + { -0.400200f, -0.057200f, -0.914700f }, + { 0.136700f, 0.874800f, -0.464800f }, + { -0.105400f, 0.843300f, -0.527000f }, + { 0.230300f, 0.865600f, -0.444700f }, + { -0.191600f, 0.862000f, -0.469300f }, + { 0.578800f, 0.504900f, -0.640400f }, + { -0.578800f, 0.504900f, -0.640400f }, + { 0.776300f, 0.063300f, -0.627200f }, + { -0.776300f, 0.063300f, -0.627200f }, + { 0.747100f, -0.113200f, -0.655000f }, + { -0.747100f, -0.113200f, -0.655000f }, + { 0.374700f, 0.834500f, -0.404000f }, + { -0.374700f, 0.834500f, -0.404000f }, + { 0.355700f, 0.729000f, -0.584800f }, + { -0.417700f, 0.575100f, -0.703400f }, + { 0.694700f, 0.419700f, -0.584100f }, + { -0.694700f, 0.419700f, -0.584100f }, + { 0.702800f, 0.391500f, -0.593900f }, + { -0.553700f, 0.297800f, -0.777700f }, + { 0.312700f, -0.342500f, -0.886000f }, + { -0.822700f, -0.360600f, -0.439500f }, + { 0.509100f, -0.648200f, -0.566300f }, + { -0.504100f, -0.644800f, -0.574500f }, + { 0.597700f, -0.556500f, -0.577100f }, + { -0.597700f, -0.556500f, -0.577100f }, + { -0.048600f, -0.656000f, -0.753200f }, + { 0.037100f, -0.668500f, -0.742800f }, + { -0.710400f, -0.271500f, -0.649400f }, + { 0.738600f, -0.376800f, -0.559000f }, + { -0.601300f, -0.526200f, -0.601300f }, + { 0.577400f, -0.577400f, -0.577400f }, + { 0.507000f, 0.628100f, -0.590300f }, + { -0.536400f, 0.323000f, -0.779700f }, + { 0.222600f, 0.469400f, -0.854500f }, + { -0.222600f, 0.469400f, -0.854500f }, + { -0.034800f, 0.579200f, -0.814400f }, + { 0.107300f, 0.501000f, -0.858800f }, + { -0.089900f, 0.784300f, -0.613800f }, + { 0.077000f, 0.575900f, -0.813900f }, + { 0.054700f, 0.169500f, -0.984000f }, + { -0.027900f, 0.864500f, -0.501900f }, + { 0.426000f, 0.060900f, -0.902700f }, + { -0.168700f, 0.312800f, -0.934700f }, + { 0.335200f, 0.182800f, -0.924300f }, + { -0.435000f, 0.181200f, -0.882000f }, + { 0.357900f, 0.306800f, -0.881900f }, + { -0.322300f, 0.276200f, -0.905400f }, + { -0.000000f, 0.447200f, -0.894400f }, + { -0.159800f, -0.390300f, -0.906700f }, + { 0.159800f, -0.390300f, -0.906700f }, + { 0.681900f, 0.291500f, -0.670900f }, + { -0.185400f, 0.495600f, -0.848500f }, + { 0.058500f, 0.078100f, -0.995200f }, + { -0.058500f, 0.078100f, -0.995200f }, + { -0.006600f, 0.231600f, -0.972800f }, + { -0.058500f, 0.084500f, -0.994700f }, + { 0.100800f, 0.710300f, -0.696600f }, + { -0.100800f, 0.710300f, -0.696600f }, + { 0.132200f, 0.594700f, -0.793000f }, + { -0.132200f, 0.594700f, -0.793000f }, + { 0.312800f, 0.166200f, -0.935200f }, + { -0.314300f, 0.392800f, -0.864200f }, + { 0.328800f, 0.036000f, -0.943700f }, + { -0.328800f, 0.036000f, -0.943700f }, + { 0.323300f, 0.080800f, -0.942900f }, + { -0.323300f, 0.080800f, -0.942900f }, + { -0.023200f, -0.051100f, -0.998400f }, + { -0.000000f, -0.066500f, -0.997800f }, + { -0.004300f, 0.065100f, -0.997900f }, + { -0.000000f, 0.066500f, -0.997800f }, + { -0.000000f, -0.000000f, -1.000000f }, + { 0.844700f, 0.533500f, -0.044500f }, + { -0.844700f, 0.533500f, -0.044500f }, + { 0.925600f, -0.249200f, 0.284800f }, + { -0.963500f, -0.214100f, 0.160600f }, + { 0.069300f, -0.900400f, 0.429400f }, + { -0.101800f, -0.916500f, 0.387000f }, + { -1.000000f, -0.000000f, -0.000000f }, + { 0.690500f, -0.549200f, -0.470800f }, + { 0.407100f, 0.895600f, -0.179100f }, + { -0.431900f, 0.863900f, -0.259200f }, + { 0.287300f, 0.574700f, -0.766300f }, + { -0.287300f, 0.574700f, -0.766300f }, + { -0.632600f, -0.535300f, -0.559600f }, + { 0.632600f, -0.535300f, -0.559600f }, + { 0.086200f, -0.775900f, -0.625000f }, + { -0.086200f, -0.775900f, -0.625000f }, + { 0.753200f, -0.287000f, -0.591800f }, + { -0.763900f, -0.297100f, -0.572900f }, + { 0.341600f, 0.540900f, -0.768600f }, + { -0.341600f, 0.540900f, -0.768600f }, + { 0.050200f, -0.234300f, -0.970900f }, + { -0.037500f, -0.224700f, -0.973700f }, + { -0.130400f, 0.608700f, -0.782600f }, + { 0.130400f, 0.608700f, -0.782600f }, + { -0.505900f, -0.071600f, -0.859600f }, + { 0.505900f, -0.071600f, -0.859600f }, + { -0.577400f, 0.577400f, -0.577400f }, + { 0.577400f, 0.577400f, -0.577400f }, + { 0.546000f, 0.431000f, -0.718400f }, + { -0.331900f, -0.073800f, -0.940400f }, + { 0.323100f, -0.031100f, -0.945900f }, + { -0.281500f, -0.066200f, -0.957300f }, + { 0.735700f, -0.391000f, -0.553100f }, + { -0.875300f, -0.205900f, -0.437600f }, + { 0.848000f, -0.318000f, -0.424000f }, + { -0.897300f, -0.199400f, -0.393800f }, + { 0.850500f, -0.379800f, -0.363800f }, + { -0.850500f, -0.379800f, -0.363800f }, + { 0.178300f, 0.416100f, -0.891700f }, + { -0.252400f, 0.865500f, -0.432700f }, + { -0.129600f, 0.194500f, -0.972300f }, + { 0.129600f, 0.194500f, -0.972300f }, + { -0.447200f, -0.000000f, -0.894400f }, + { 0.447200f, -0.000000f, -0.894400f }, + { -0.158200f, -0.949400f, -0.271300f }, + { 0.158200f, -0.949400f, -0.271300f }, + { -0.646300f, -0.733700f, -0.209600f }, + { 0.646300f, -0.733700f, -0.209600f }, + { 1.000000f, -0.000000f, -0.000000f }, + { 0.305100f, 0.945000f, -0.118100f }, + { -0.305100f, 0.945000f, -0.118100f }, + { 0.021700f, 0.303100f, -0.952700f }, + { -0.021700f, 0.303100f, -0.952700f }, + { 0.135300f, 0.347900f, -0.927700f }, + { -0.135300f, 0.347900f, -0.927700f }, + { -0.468100f, 0.223900f, -0.854800f }, + { 0.468100f, 0.223900f, -0.854800f }, + { -0.271000f, -0.027100f, -0.962200f }, + { 0.271000f, -0.027100f, -0.962200f }, + { -0.171700f, 0.009000f, -0.985100f }, + { 0.259500f, -0.103800f, -0.960100f }, + { -0.433200f, 0.487400f, -0.758100f }, + { 0.668400f, 0.459500f, -0.584900f }, + { -0.159900f, 0.879700f, -0.447800f }, + { 0.159900f, 0.879700f, -0.447800f }, + { 0.390000f, 0.589500f, -0.707400f }, + { -0.390000f, 0.589500f, -0.707400f }, + { 0.654700f, 0.458900f, -0.600700f }, + { -0.654700f, 0.458900f, -0.600700f }, + { 0.537800f, 0.114400f, -0.835300f }, + { -0.537800f, 0.114400f, -0.835300f }, + { 0.565700f, -0.119700f, -0.815900f }, + { -0.577400f, -0.115500f, -0.808300f }, + { 0.408200f, -0.408200f, -0.816500f }, + { -0.521400f, -0.657400f, -0.544100f }, + { 0.179600f, -0.788200f, -0.588600f }, + { -0.179600f, -0.788200f, -0.588600f }, + { 0.188100f, -0.338700f, -0.921900f }, + { -0.188100f, -0.338700f, -0.921900f }, + { -0.087000f, -0.275600f, -0.957300f }, + { 0.087000f, -0.275600f, -0.957300f }, + { 0.082900f, 0.290200f, -0.953400f }, + { -0.082900f, 0.290200f, -0.953400f }, + { 0.301500f, 0.301500f, -0.904500f }, + { -0.301500f, 0.301500f, -0.904500f }, + { -0.376600f, 0.833900f, -0.403500f }, + { 0.063100f, 0.315600f, -0.946800f }, + { 0.082300f, 0.782200f, -0.617500f }, + { 0.201600f, 0.907100f, -0.369600f }, + { -0.370700f, 0.285100f, -0.883900f }, + { 0.370700f, 0.285100f, -0.883900f }, + { -0.269200f, 0.057700f, -0.961400f }, + { 0.456800f, -0.050800f, -0.888100f }, + { -0.279700f, -0.524500f, -0.804200f }, + { 0.279700f, -0.524500f, -0.804200f }, + { -0.021300f, -0.554600f, -0.831900f }, + { 0.048700f, -0.681500f, -0.730200f }, + { 0.377800f, -0.634200f, -0.674600f }, + { -0.337800f, -0.522100f, -0.783100f }, + { 0.498800f, -0.530000f, -0.685800f }, + { -0.498800f, -0.530000f, -0.685800f }, + { 0.542500f, 0.339100f, -0.768600f }, + { -0.542500f, 0.339100f, -0.768600f }, + { 0.830500f, 0.061500f, -0.553600f }, + { -0.830500f, 0.061500f, -0.553600f }, + { 0.781400f, -0.111600f, -0.614000f }, + { -0.781400f, -0.111600f, -0.614000f }, + { -0.433800f, -0.888800f, 0.148100f }, + { 0.433800f, -0.888800f, 0.148100f }, + { -0.851500f, -0.374400f, 0.367000f }, + { 0.851500f, -0.374400f, 0.367000f }, + { -0.266400f, -0.871000f, 0.412700f }, + { 0.219700f, -0.862600f, 0.455700f }, + { 0.593200f, -0.744500f, 0.306300f }, + { -0.591400f, -0.748900f, 0.299100f }, + { 0.371400f, -0.868500f, 0.328400f }, + { -0.365300f, -0.883300f, 0.293800f }, + { 0.290100f, -0.914100f, 0.283300f }, + { -0.290100f, -0.914100f, 0.283300f }, + { 0.887300f, -0.134300f, 0.441200f }, + { -0.796400f, -0.132300f, 0.590100f }, + { 0.510800f, 0.664900f, 0.545000f }, + { -0.510800f, 0.664900f, 0.545000f }, + { 0.369500f, 0.856600f, 0.360100f }, + { -0.369500f, 0.856600f, 0.360100f }, + { 0.361700f, 0.385800f, 0.848700f }, + { -0.164900f, 0.664400f, 0.728900f }, + { 0.195200f, 0.097600f, 0.975900f }, + { -0.301100f, 0.012500f, 0.953500f }, + { -0.010700f, 0.563300f, 0.826200f }, + { -0.256200f, 0.311200f, 0.915200f }, + { 0.153300f, 0.964900f, 0.213400f }, + { -0.153300f, 0.964900f, 0.213400f }, + { 0.126000f, 0.962400f, 0.240600f }, + { -0.126000f, 0.962400f, 0.240600f }, + { 0.939600f, -0.157300f, 0.304100f }, + { -0.939600f, -0.157300f, 0.304100f }, + { 0.927800f, -0.183800f, 0.324600f }, + { -0.927800f, -0.183800f, 0.324600f }, + { 0.219200f, -0.076600f, 0.972700f }, + { -0.219200f, -0.076600f, 0.972700f }, + { 0.121100f, 0.053000f, 0.991200f }, + { 0.149700f, 0.363500f, 0.919500f }, + { 0.909400f, -0.137100f, 0.392700f }, + { -0.370600f, 0.678000f, 0.634900f }, + { 0.920200f, -0.135500f, 0.367200f }, + { -0.920200f, -0.135500f, 0.367200f }, + { 0.917300f, -0.344000f, 0.200700f }, + { -0.945700f, -0.267300f, 0.185000f }, + { 0.900400f, -0.364200f, 0.238000f }, + { -0.933700f, -0.281300f, 0.221500f }, + { 0.894500f, -0.433700f, -0.108400f }, + { -0.950100f, -0.245500f, 0.192200f }, + { 0.159600f, 0.957700f, 0.239400f }, + { -0.183500f, 0.786400f, 0.589800f }, + { 0.369300f, 0.471200f, 0.801000f }, + { -0.372700f, 0.475900f, 0.796600f }, + { 0.298600f, 0.823600f, 0.482100f }, + { -0.326300f, 0.834200f, 0.444600f }, + { 0.299500f, 0.944200f, 0.136800f }, + { -0.299500f, 0.944200f, 0.136800f }, + { 0.328700f, 0.916300f, 0.229100f }, + { -0.328700f, 0.916300f, 0.229100f }, + { 0.830500f, -0.333300f, 0.446300f }, + { -0.864200f, 0.473700f, -0.169600f }, + { 0.916600f, 0.374000f, -0.141400f }, + { -0.916600f, 0.374000f, -0.141400f }, + { 0.295000f, 0.045400f, 0.954400f }, + { -0.418900f, 0.226500f, 0.879300f }, + { 0.127200f, -0.965800f, -0.226000f }, + { -0.111900f, -0.962600f, -0.246800f }, + { 0.132000f, -0.975000f, 0.178800f }, + { -0.132000f, -0.975000f, 0.178800f }, + { 0.387800f, -0.619200f, 0.682800f }, + { -0.387800f, -0.619200f, 0.682800f }, + { 0.495100f, -0.861800f, 0.110000f }, + { -0.495100f, -0.861800f, 0.110000f }, + { 0.256100f, -0.644700f, -0.720200f }, + { -0.256100f, -0.644700f, -0.720200f }, + { 0.596600f, -0.788800f, -0.147900f }, + { -0.596600f, -0.788800f, -0.147900f }, + { 0.712500f, -0.675500f, 0.190000f }, + { -0.712500f, -0.675500f, 0.190000f }, + { 0.710400f, -0.136400f, 0.690400f }, + { -0.630400f, -0.251700f, 0.734300f }, + { 0.682300f, -0.231800f, 0.693300f }, + { -0.682300f, -0.231800f, 0.693300f }, + { 0.657400f, -0.725400f, 0.204000f }, + { -0.657400f, -0.725400f, 0.204000f }, + { 0.728900f, -0.672900f, -0.126200f }, + { -0.728900f, -0.672900f, -0.126200f }, + { 0.779100f, -0.407400f, -0.476400f }, + { -0.779100f, -0.407400f, -0.476400f }, + { 0.366900f, -0.884000f, 0.289800f }, + { -0.323800f, -0.943400f, 0.072000f }, + { 0.285400f, -0.623700f, -0.727700f }, + { -0.154800f, -0.508000f, -0.847300f }, + { -0.170200f, -0.109700f, 0.979300f }, + { 0.178200f, -0.089100f, 0.980000f }, + { 0.292500f, -0.567400f, -0.769700f }, + { -0.292500f, -0.567400f, -0.769700f }, + { -0.161600f, -0.184700f, -0.969400f }, + { 0.161600f, -0.184700f, -0.969400f }, + { 0.868100f, -0.089300f, 0.488300f }, + { -0.934000f, -0.225500f, -0.277300f }, + { 0.927600f, -0.076200f, -0.365700f }, + { -0.927600f, -0.076200f, -0.365700f }, + { 0.975000f, -0.216900f, -0.049000f }, + { -0.975000f, -0.216900f, -0.049000f }, + { 0.981700f, 0.030400f, 0.188200f }, + { -0.995600f, -0.089300f, 0.028800f }, + { 0.746600f, 0.664600f, -0.028500f }, + { -0.637400f, 0.765100f, -0.091500f }, + { 0.372300f, 0.924300f, -0.084700f }, + { -0.372000f, 0.924400f, -0.084500f }, + { 0.398600f, 0.875400f, -0.273400f }, + { -0.398600f, 0.875400f, -0.273400f }, + { 0.632800f, 0.764200f, -0.124700f }, + { -0.632800f, 0.764200f, -0.124700f }, + { 0.732500f, 0.636800f, -0.240700f }, + { -0.732500f, 0.636800f, -0.240700f }, + { 0.263700f, 0.449900f, -0.853300f }, + { -0.263700f, 0.449900f, -0.853300f }, + { 0.588100f, 0.307000f, 0.748300f }, + { -0.523600f, 0.329000f, 0.785900f }, + { 0.469400f, 0.240000f, 0.849800f }, + { -0.539600f, 0.334300f, 0.772700f }, + { 0.446300f, 0.845200f, 0.294100f }, + { -0.214400f, 0.834100f, 0.508200f }, + { 0.697300f, 0.661000f, 0.277100f }, + { -0.736500f, 0.615400f, 0.280800f }, + { 0.497200f, 0.440800f, 0.747300f }, + { -0.497200f, 0.440800f, 0.747300f }, + { 0.369100f, -0.285500f, -0.884400f }, + { -0.324400f, -0.486700f, -0.811100f }, + { 0.446700f, -0.097500f, -0.889400f }, + { -0.446700f, -0.097500f, -0.889400f }, + { 0.318800f, -0.199300f, -0.926600f }, + { -0.181700f, 0.007900f, -0.983300f }, + { 0.207600f, 0.083600f, -0.974600f }, + { -0.292500f, 0.075800f, -0.953300f }, + { 0.339800f, -0.082400f, -0.936900f }, + { -0.584700f, 0.219800f, -0.780900f }, + { 0.595700f, 0.385000f, -0.704900f }, + { -0.595700f, 0.385000f, -0.704900f }, + { 0.484300f, -0.558000f, -0.673800f }, + { -0.484300f, -0.558000f, -0.673800f }, + { -0.267500f, -0.831800f, -0.486400f }, + { 0.267500f, -0.831800f, -0.486400f }, + { -0.857600f, -0.222300f, -0.463700f }, + { 0.788500f, -0.236600f, -0.567700f }, + { -0.525700f, 0.357900f, -0.771700f }, + { 0.524200f, 0.354800f, -0.774200f }, + { 0.466300f, 0.599100f, -0.650900f }, + { -0.439000f, 0.525200f, -0.729000f }, + { 0.710400f, 0.456700f, -0.535600f }, + { -0.710400f, 0.456700f, -0.535600f }, + { 0.750700f, 0.613100f, 0.246100f }, + { -0.630200f, 0.765800f, -0.128200f }, + { -0.178800f, -0.292300f, -0.939500f }, + { 0.217500f, -0.273300f, -0.937000f }, + { 0.904200f, 0.357800f, 0.233200f }, + { -0.904200f, 0.357800f, 0.233200f }, + { 0.040000f, -0.339900f, -0.939600f }, + { -0.040000f, -0.339900f, -0.939600f }, + { 0.273400f, -0.906400f, -0.322100f }, + { -0.273400f, -0.906400f, -0.322100f }, + { 0.448000f, 0.448000f, -0.773700f }, + { -0.717700f, -0.168900f, -0.675500f }, + { 0.553400f, 0.553400f, -0.622500f }, + { -0.900800f, 0.407500f, -0.150100f }, + { 0.572400f, 0.312200f, -0.758200f }, + { -0.581500f, 0.521700f, -0.624300f }, + { 0.559700f, 0.553300f, -0.616900f }, + { -0.613800f, 0.257100f, -0.746500f }, + { 0.955100f, 0.163600f, 0.247000f }, + { -0.171200f, 0.093400f, -0.980800f }, + { 0.922700f, 0.376500f, 0.082500f }, + { -0.871700f, 0.444600f, 0.206300f }, + { 0.997200f, 0.018100f, 0.072500f }, + { -0.997200f, 0.018100f, 0.072500f }, + { 0.689500f, 0.664400f, -0.288300f }, + { -0.689500f, 0.664400f, -0.288300f }, + { 0.781500f, 0.617600f, -0.088200f }, + { -0.793000f, 0.594700f, -0.132200f }, + { 0.702200f, 0.702200f, -0.117000f }, + { -0.702200f, 0.702200f, -0.117000f }, + { 0.124000f, -0.992100f, -0.020700f }, + { -0.240800f, -0.963100f, 0.120400f }, + { 0.943500f, -0.314500f, -0.104800f }, + { -0.925100f, -0.346900f, -0.154200f }, + { 0.621300f, 0.776700f, -0.103600f }, + { -0.621300f, 0.776700f, -0.103600f }, + { -0.000000f, -1.000000f, -0.000000f }, + { 0.619700f, 0.689900f, -0.374200f }, + { -0.619700f, 0.689900f, -0.374200f }, + { 0.275200f, 0.880800f, -0.385300f }, + { -0.275200f, 0.880800f, -0.385300f }, + { -0.792900f, 0.525200f, 0.308900f }, + { 0.792900f, 0.525200f, 0.308900f }, + { -0.809600f, -0.242900f, 0.534300f }, + { 0.853800f, -0.232800f, 0.465700f }, + { -0.562100f, -0.823100f, 0.080300f }, + { 0.543300f, -0.698500f, 0.465700f }, + { -0.007100f, -0.989900f, -0.141400f }, + { 0.109600f, -0.993900f, 0.015700f }, + { 0.104600f, -0.039200f, -0.993700f }, + { -0.173800f, -0.009700f, -0.984700f }, + { 0.246100f, -0.085200f, -0.965500f }, + { -0.413400f, -0.041300f, -0.909600f }, + { 0.300900f, -0.092600f, -0.949100f }, + { -0.300900f, -0.092600f, -0.949100f }, + { 0.210400f, -0.012400f, -0.977500f }, + { -0.122000f, -0.045800f, -0.991500f }, + { -0.009900f, -0.386700f, -0.922100f }, + { 0.009900f, -0.386700f, -0.922100f }, + { 0.378700f, 0.036400f, -0.924800f }, + { -0.424400f, 0.032000f, -0.904900f }, + { 0.253000f, 0.189700f, -0.948700f }, + { -0.257000f, -0.072300f, -0.963700f }, + { -0.487000f, -0.608800f, -0.626200f }, + { 0.298100f, -0.745400f, -0.596300f }, + { 0.669300f, -0.180200f, -0.720800f }, + { -0.669300f, -0.180200f, -0.720800f }, + { 0.438800f, 0.200800f, -0.875900f }, + { -0.472300f, 0.198600f, -0.858800f }, + { 0.578600f, 0.133400f, -0.804600f }, + { -0.297500f, 0.406200f, -0.864000f }, + { 0.500200f, -0.283300f, -0.818200f }, + { -0.500200f, -0.283300f, -0.818200f }, + { 0.298000f, -0.580200f, -0.758000f }, + { -0.298000f, -0.580200f, -0.758000f }, + { 0.092900f, 0.991200f, 0.094400f }, + { -0.092900f, 0.991200f, 0.094400f }, + { 0.468800f, 0.871500f, -0.144200f }, + { -0.468800f, 0.871500f, -0.144200f }, + { 0.930900f, 0.254100f, -0.262400f }, + { -0.926400f, 0.246000f, -0.285100f }, + { 0.846500f, -0.529100f, 0.059500f }, + { -0.826700f, -0.562700f, 0.003500f }, + { -0.251100f, -0.943900f, 0.214500f }, + { 0.214600f, -0.924300f, 0.315700f }, + { -0.484100f, -0.874300f, 0.036100f }, + { 0.419600f, -0.885100f, 0.201200f }, + { -0.525600f, 0.003000f, 0.850700f }, + { 0.547000f, 0.014400f, 0.837000f }, + { -0.146600f, -0.010400f, 0.989100f }, + { 0.146600f, -0.010400f, 0.989100f }, + { 0.404600f, -0.026600f, 0.914100f }, + { -0.404600f, -0.026600f, 0.914100f }, + { -0.807300f, -0.590100f, -0.004100f }, + { 0.733000f, -0.678600f, -0.047200f }, + { 0.420000f, 0.229100f, 0.878100f }, + { -0.420000f, 0.229100f, 0.878100f }, + { -0.068700f, 0.994300f, 0.081800f }, + { 0.068700f, 0.994300f, 0.081800f }, + { 0.671300f, 0.197100f, -0.714500f }, + { -0.671300f, 0.197100f, -0.714500f }, + { 0.832600f, 0.301700f, -0.464600f }, + { -0.832600f, 0.301700f, -0.464600f }, + { 0.425800f, 0.796700f, -0.429000f }, + { -0.425800f, 0.796700f, -0.429000f }, + { 0.326500f, 0.495400f, -0.805000f }, + { -0.326500f, 0.495400f, -0.805000f }, + { -0.064900f, 0.571400f, -0.818100f }, + { 0.064900f, 0.571400f, -0.818100f }, + { -0.273800f, 0.831500f, -0.483400f }, + { 0.273800f, 0.831500f, -0.483400f }, + { -0.760600f, 0.340000f, -0.553100f }, + { 0.782400f, 0.329400f, -0.528500f }, + { -0.464900f, 0.195800f, -0.863400f }, + { 0.476700f, 0.190700f, -0.858100f }, + { -0.498300f, -0.181200f, -0.847800f }, + { 0.498300f, -0.181200f, -0.847800f }, + { -0.768300f, -0.329300f, -0.548800f }, + { 0.765600f, -0.322300f, -0.556800f }, + { -0.248700f, -0.824900f, -0.507600f }, + { 0.256000f, -0.807300f, -0.531700f }, + { -0.101700f, -0.551800f, -0.827700f }, + { 0.082100f, -0.602300f, -0.794000f }, + { 0.386100f, -0.544600f, -0.744500f }, + { -0.332900f, -0.523100f, -0.784600f }, + { 0.405900f, -0.764100f, -0.501400f }, + { -0.424600f, -0.771100f, -0.474500f }, + { 0.829900f, -0.294000f, -0.474200f }, + { -0.825100f, -0.296800f, -0.480800f }, + { 0.661700f, -0.202600f, -0.721900f }, + { -0.688800f, -0.186800f, -0.700500f }, + { 0.781600f, -0.305800f, 0.543700f }, + { -0.840000f, -0.343600f, 0.420000f }, + { 0.203700f, -0.814600f, 0.543100f }, + { -0.207400f, -0.829600f, 0.518500f }, + { -0.438100f, -0.798800f, 0.412300f }, + { 0.405600f, -0.760500f, 0.507000f }, + { -0.786100f, -0.327600f, 0.524100f }, + { 0.864200f, -0.314300f, 0.392800f }, + { -0.851900f, 0.340800f, 0.397600f }, + { 0.851900f, 0.340800f, 0.397600f }, + { -0.405600f, 0.760500f, 0.507000f }, + { 0.405600f, 0.760500f, 0.507000f }, + { 0.207400f, 0.829600f, 0.518500f }, + { -0.207400f, 0.829600f, 0.518500f }, + { 0.829700f, 0.373400f, 0.414900f }, + { -0.829700f, 0.373400f, 0.414900f }, + { 0.105400f, 0.843300f, -0.527000f }, + { -0.136700f, 0.874800f, -0.464800f }, + { 0.191600f, 0.862000f, -0.469300f }, + { -0.230300f, 0.865600f, -0.444700f }, + { 0.595900f, 0.425600f, -0.681000f }, + { -0.595900f, 0.425600f, -0.681000f }, + { 0.756300f, 0.029900f, -0.653500f }, + { -0.756300f, 0.029900f, -0.653500f }, + { 0.806900f, -0.068900f, -0.586600f }, + { -0.806900f, -0.068900f, -0.586600f }, + { 0.233400f, 0.777900f, -0.583400f }, + { -0.233400f, 0.777900f, -0.583400f }, + { 0.417700f, 0.575100f, -0.703400f }, + { -0.355700f, 0.729000f, -0.584800f }, + { 0.687200f, 0.419100f, -0.593400f }, + { -0.687200f, 0.419100f, -0.593400f }, + { 0.553700f, 0.297800f, -0.777700f }, + { -0.702800f, 0.391500f, -0.593900f }, + { 0.822700f, -0.360600f, -0.439500f }, + { -0.312700f, -0.342500f, -0.886000f }, + { 0.504100f, -0.644800f, -0.574500f }, + { -0.509100f, -0.648200f, -0.566300f }, + { 0.615500f, -0.492400f, -0.615500f }, + { -0.615500f, -0.492400f, -0.615500f }, + { -0.037100f, -0.668500f, -0.742800f }, + { 0.048600f, -0.656000f, -0.753200f }, + { -0.738600f, -0.376800f, -0.559000f }, + { 0.710400f, -0.271500f, -0.649400f }, + { -0.577400f, -0.577400f, -0.577400f }, + { 0.601300f, -0.526200f, -0.601300f }, + { 0.536400f, 0.323000f, -0.779700f }, + { -0.507000f, 0.628100f, -0.590300f }, + { 0.218100f, 0.468500f, -0.856100f }, + { -0.218100f, 0.468500f, -0.856100f }, + { -0.107300f, 0.501000f, -0.858800f }, + { 0.034800f, 0.579200f, -0.814400f }, + { -0.077000f, 0.575900f, -0.813900f }, + { 0.089900f, 0.784300f, -0.613800f }, + { 0.027900f, 0.864500f, -0.501900f }, + { -0.054700f, 0.169500f, -0.984000f }, + { 0.168700f, 0.312800f, -0.934700f }, + { -0.426000f, 0.060900f, -0.902700f }, + { 0.435000f, 0.181200f, -0.882000f }, + { -0.335200f, 0.182800f, -0.924300f }, + { 0.322300f, 0.276200f, -0.905400f }, + { -0.357900f, 0.306800f, -0.881900f }, + { 0.428400f, -0.149400f, -0.891100f }, + { -0.428400f, -0.149400f, -0.891100f }, + { -0.031700f, 0.189900f, -0.981300f }, + { 0.031700f, 0.189900f, -0.981300f }, + { 0.185400f, 0.495600f, -0.848500f }, + { -0.681900f, 0.291500f, -0.670900f }, + { 0.262300f, 0.349800f, -0.899400f }, + { -0.262300f, 0.349800f, -0.899400f }, + { 0.058500f, 0.084500f, -0.994700f }, + { 0.006600f, 0.231600f, -0.972800f }, + { -0.013600f, 0.650700f, -0.759200f }, + { 0.013600f, 0.650700f, -0.759200f }, + { 0.240400f, 0.547600f, -0.801400f }, + { -0.240400f, 0.547600f, -0.801400f }, + { 0.314300f, 0.392800f, -0.864200f }, + { -0.312800f, 0.166200f, -0.935200f }, + { 0.282100f, 0.016400f, -0.959200f }, + { -0.282100f, 0.016400f, -0.959200f }, + { 0.327300f, 0.143200f, -0.934000f }, + { -0.327300f, 0.143200f, -0.934000f }, + { 0.023200f, -0.051100f, -0.998400f }, + { 0.004300f, 0.065100f, -0.997900f }, + { 0.782600f, 0.608700f, 0.130400f }, + { -0.782600f, 0.608700f, 0.130400f }, + { 0.963500f, -0.214100f, 0.160600f }, + { -0.925600f, -0.249200f, 0.284800f }, + { 0.101800f, -0.916500f, 0.386900f }, + { -0.069300f, -0.900400f, 0.429400f }, + { -0.690500f, -0.549200f, -0.470800f }, + { 0.431900f, 0.863900f, -0.259200f }, + { -0.407100f, 0.895600f, -0.179100f }, + { -0.666700f, -0.666700f, -0.333300f }, + { 0.666700f, -0.666700f, -0.333300f }, + { 0.134800f, -0.808600f, -0.572700f }, + { -0.134800f, -0.808600f, -0.572700f }, + { 0.763900f, -0.297100f, -0.572900f }, + { -0.753200f, -0.287000f, -0.591800f }, + { 0.411600f, 0.857500f, -0.308700f }, + { -0.411600f, 0.857500f, -0.308700f }, + { 0.037500f, -0.224700f, -0.973700f }, + { -0.050200f, -0.234300f, -0.970900f }, + { 0.130400f, 0.260900f, -0.956500f }, + { -0.130400f, 0.260900f, -0.956500f }, + { -0.063100f, 0.820600f, -0.568100f }, + { 0.063100f, 0.820600f, -0.568100f }, + { 0.732500f, -0.281700f, -0.619800f }, + { -0.732500f, -0.281700f, -0.619800f }, + { 0.331900f, -0.073800f, -0.940400f }, + { -0.546000f, 0.431000f, -0.718400f }, + { 0.281500f, -0.066200f, -0.957300f }, + { -0.323100f, -0.031100f, -0.945900f }, + { 0.875300f, -0.205900f, -0.437600f }, + { -0.735700f, -0.391000f, -0.553100f }, + { 0.897300f, -0.199400f, -0.393800f }, + { -0.848000f, -0.318000f, -0.424000f }, + { 0.958600f, -0.066400f, -0.276700f }, + { -0.958600f, -0.066400f, -0.276700f }, + { 0.252400f, 0.865500f, -0.432700f }, + { -0.178300f, 0.416100f, -0.891700f }, + { -0.175100f, 0.204300f, -0.963100f }, + { 0.175100f, 0.204300f, -0.963100f }, + { -0.121900f, 0.182900f, -0.975500f }, + { 0.121900f, 0.182900f, -0.975500f }, + { -0.156200f, -0.312300f, -0.937000f }, + { 0.156200f, -0.312300f, -0.937000f }, + { -0.723800f, -0.685700f, -0.076200f }, + { 0.723800f, -0.685700f, -0.076200f }, + { 0.047800f, 0.287000f, -0.956700f }, + { -0.047800f, 0.287000f, -0.956700f }, + { -0.548800f, 0.329300f, -0.768300f }, + { 0.548800f, 0.329300f, -0.768300f }, + { -0.494500f, 0.113000f, -0.861800f }, + { 0.494500f, 0.113000f, -0.861800f }, + { -0.259500f, -0.103800f, -0.960100f }, + { 0.171700f, 0.009000f, -0.985100f }, + { -0.668400f, 0.459500f, -0.584900f }, + { 0.433200f, 0.487400f, -0.758100f }, + { -0.115600f, 0.635900f, -0.763100f }, + { 0.115600f, 0.635900f, -0.763100f }, + { 0.424200f, 0.621100f, -0.659000f }, + { -0.424200f, 0.621100f, -0.659000f }, + { 0.476700f, 0.355700f, -0.803900f }, + { -0.476700f, 0.355700f, -0.803900f }, + { 0.587100f, 0.083900f, -0.805200f }, + { -0.587100f, 0.083900f, -0.805200f }, + { 0.577400f, -0.115500f, -0.808300f }, + { -0.565700f, -0.119700f, -0.815900f }, + { 0.521400f, -0.657400f, -0.544100f }, + { -0.408200f, -0.408200f, -0.816500f }, + { 0.335800f, -0.347800f, -0.875400f }, + { -0.335800f, -0.347800f, -0.875400f }, + { 0.145200f, -0.377400f, -0.914600f }, + { -0.145200f, -0.377400f, -0.914600f }, + { 0.030100f, -0.230600f, -0.972600f }, + { -0.030100f, -0.230600f, -0.972600f }, + { 0.447500f, 0.469900f, -0.760800f }, + { -0.447500f, 0.469900f, -0.760800f }, + { 0.262700f, 0.225200f, -0.938200f }, + { -0.262700f, 0.225200f, -0.938200f }, + { -0.063100f, 0.315600f, -0.946800f }, + { 0.376600f, 0.833900f, -0.403500f }, + { -0.201600f, 0.907100f, -0.369600f }, + { -0.082300f, 0.782200f, -0.617500f }, + { -0.335600f, 0.239700f, -0.911000f }, + { 0.335600f, 0.239700f, -0.911000f }, + { -0.456800f, -0.050800f, -0.888100f }, + { 0.269200f, 0.057700f, -0.961400f }, + { -0.024700f, -0.407200f, -0.913000f }, + { 0.024700f, -0.407200f, -0.913000f }, + { -0.048700f, -0.681500f, -0.730200f }, + { 0.021300f, -0.554600f, -0.831900f }, + { 0.337800f, -0.522100f, -0.783100f }, + { -0.377800f, -0.634200f, -0.674600f }, + { 0.789500f, 0.315800f, -0.526300f }, + { -0.789500f, 0.315800f, -0.526300f }, + { 0.807000f, 0.080700f, -0.585100f }, + { -0.807000f, 0.080700f, -0.585100f }, + { 0.786800f, -0.121000f, -0.605200f }, + { -0.786800f, -0.121000f, -0.605200f }, + { -0.635700f, -0.681100f, 0.363300f }, + { 0.635700f, -0.681100f, 0.363300f }, + { -0.850700f, -0.365000f, 0.378300f }, + { 0.850700f, -0.365000f, 0.378300f }, + { -0.219700f, -0.862600f, 0.455700f }, + { 0.266400f, -0.871000f, 0.412700f }, + { 0.591400f, -0.748900f, 0.299100f }, + { -0.593200f, -0.744500f, 0.306300f }, + { 0.365300f, -0.883300f, 0.293800f }, + { -0.371400f, -0.868500f, 0.328400f }, + { 0.276000f, -0.915900f, 0.291500f }, + { -0.276000f, -0.915900f, 0.291500f }, + { 0.796400f, -0.132300f, 0.590100f }, + { -0.887300f, -0.134300f, 0.441200f }, + { 0.544200f, 0.752400f, 0.371200f }, + { -0.544200f, 0.752400f, 0.371200f }, + { 0.402700f, 0.732300f, 0.549200f }, + { -0.402700f, 0.732300f, 0.549200f }, + { 0.164900f, 0.664400f, 0.728900f }, + { -0.361700f, 0.385800f, 0.848700f }, + { 0.301100f, 0.012500f, 0.953500f }, + { -0.195200f, 0.097600f, 0.975900f }, + { 0.256200f, 0.311200f, 0.915200f }, + { 0.010700f, 0.563300f, 0.826200f }, + { 0.077900f, 0.994800f, 0.066300f }, + { -0.077900f, 0.994800f, 0.066300f }, + { 0.109500f, 0.971800f, 0.208900f }, + { -0.109400f, 0.971800f, 0.208900f }, + { 0.815000f, 0.562100f, 0.140500f }, + { -0.815000f, 0.562100f, 0.140500f }, + { 0.935800f, -0.139600f, 0.323600f }, + { -0.935800f, -0.139600f, 0.323600f }, + { 0.113200f, 0.027400f, 0.993200f }, + { -0.113200f, 0.027400f, 0.993200f }, + { -0.149700f, 0.363500f, 0.919500f }, + { -0.121100f, 0.053000f, 0.991200f }, + { 0.370600f, 0.678000f, 0.634900f }, + { -0.909400f, -0.137100f, 0.392700f }, + { 0.919300f, -0.139300f, 0.368200f }, + { -0.919300f, -0.139300f, 0.368200f }, + { 0.945700f, -0.267300f, 0.185000f }, + { -0.917300f, -0.344000f, 0.200700f }, + { 0.933700f, -0.281300f, 0.221500f }, + { -0.900400f, -0.364200f, 0.238000f }, + { 0.950100f, -0.245500f, 0.192200f }, + { -0.894500f, -0.433700f, -0.108400f }, + { 0.183500f, 0.786400f, 0.589800f }, + { -0.159600f, 0.957700f, 0.239400f }, + { 0.372700f, 0.475900f, 0.796600f }, + { -0.369300f, 0.471200f, 0.801000f }, + { 0.326300f, 0.834200f, 0.444600f }, + { -0.298600f, 0.823600f, 0.482100f }, + { 0.262000f, 0.957400f, 0.121700f }, + { -0.262000f, 0.957400f, 0.121700f }, + { 0.299600f, 0.944300f, 0.136200f }, + { -0.299600f, 0.944300f, 0.136200f }, + { 0.864200f, 0.473700f, -0.169600f }, + { -0.830500f, -0.333300f, 0.446300f }, + { 0.686900f, 0.635800f, -0.352100f }, + { -0.686900f, 0.635800f, -0.352100f }, + { 0.418900f, 0.226500f, 0.879300f }, + { -0.295000f, 0.045400f, 0.954400f }, + { 0.111900f, -0.962600f, -0.246800f }, + { -0.127200f, -0.965800f, -0.226000f }, + { 0.120800f, -0.973400f, 0.194700f }, + { -0.120800f, -0.973400f, 0.194700f }, + { 0.314000f, -0.571100f, 0.758500f }, + { -0.314000f, -0.571100f, 0.758500f }, + { 0.323100f, -0.928800f, 0.181700f }, + { -0.323100f, -0.928800f, 0.181700f }, + { 0.045200f, -0.795500f, -0.604300f }, + { -0.045200f, -0.795500f, -0.604300f }, + { 0.614400f, -0.769600f, -0.173800f }, + { -0.614400f, -0.769600f, -0.173800f }, + { 0.693500f, -0.685700f, 0.221200f }, + { -0.693500f, -0.685700f, 0.221200f }, + { 0.630400f, -0.251700f, 0.734300f }, + { -0.710400f, -0.136400f, 0.690400f }, + { 0.317900f, -0.570400f, 0.757400f }, + { -0.317900f, -0.570400f, 0.757400f }, + { 0.628900f, -0.762400f, 0.152500f }, + { -0.628900f, -0.762400f, 0.152500f }, + { 0.708800f, -0.683300f, -0.175200f }, + { -0.708800f, -0.683300f, -0.175200f }, + { 0.688500f, -0.383000f, -0.615800f }, + { -0.688500f, -0.383000f, -0.615800f }, + { 0.323800f, -0.943400f, 0.072000f }, + { -0.366900f, -0.884000f, 0.289800f }, + { 0.154800f, -0.508000f, -0.847300f }, + { -0.285400f, -0.623700f, -0.727700f }, + { -0.178200f, -0.089100f, 0.980000f }, + { 0.170200f, -0.109700f, 0.979300f }, + { -0.263800f, -0.946200f, 0.187100f }, + { 0.263800f, -0.946200f, 0.187100f }, + { 0.934000f, -0.225500f, -0.277300f }, + { -0.868100f, -0.089300f, 0.488300f }, + { 0.975800f, -0.124100f, -0.180000f }, + { -0.975800f, -0.124100f, -0.180000f }, + { 0.961300f, -0.147200f, 0.233000f }, + { -0.961300f, -0.147200f, 0.233000f }, + { 0.995600f, -0.089300f, 0.028800f }, + { -0.981700f, 0.030400f, 0.188200f }, + { 0.637400f, 0.765100f, -0.091500f }, + { -0.746600f, 0.664600f, -0.028500f }, + { 0.372000f, 0.924400f, -0.084500f }, + { -0.372300f, 0.924300f, -0.084700f }, + { 0.528100f, 0.835400f, -0.152200f }, + { -0.528100f, 0.835400f, -0.152200f }, + { 0.307000f, 0.523700f, -0.794600f }, + { -0.307000f, 0.523700f, -0.794600f }, + { 0.523600f, 0.329000f, 0.785900f }, + { -0.588100f, 0.307000f, 0.748300f }, + { 0.539600f, 0.334300f, 0.772700f }, + { -0.469400f, 0.240000f, 0.849800f }, + { 0.214400f, 0.834100f, 0.508200f }, + { -0.446300f, 0.845200f, 0.294100f }, + { 0.736500f, 0.615400f, 0.280800f }, + { -0.697300f, 0.661000f, 0.277100f }, + { 0.324400f, -0.486700f, -0.811100f }, + { -0.369100f, -0.285500f, -0.884400f }, + { 0.464900f, -0.259300f, -0.846500f }, + { -0.464900f, -0.259300f, -0.846500f }, + { 0.181700f, 0.007900f, -0.983300f }, + { -0.318800f, -0.199300f, -0.926600f }, + { 0.292500f, 0.075800f, -0.953300f }, + { -0.207600f, 0.083600f, -0.974600f }, + { 0.584700f, 0.219800f, -0.780900f }, + { -0.339800f, -0.082400f, -0.936900f }, + { 0.650900f, 0.193900f, -0.734000f }, + { -0.650900f, 0.193900f, -0.734000f }, + { 0.407500f, -0.750600f, -0.520100f }, + { -0.407500f, -0.750600f, -0.520100f }, + { -0.265500f, -0.829600f, -0.491100f }, + { 0.265500f, -0.829600f, -0.491100f }, + { -0.788500f, -0.236600f, -0.567700f }, + { 0.857600f, -0.222300f, -0.463700f }, + { -0.524200f, 0.354800f, -0.774200f }, + { 0.525700f, 0.357900f, -0.771700f }, + { 0.439000f, 0.525200f, -0.729000f }, + { -0.466300f, 0.599100f, -0.650900f }, + { 0.688800f, 0.442800f, -0.574000f }, + { -0.688800f, 0.442800f, -0.574000f }, + { 0.630200f, 0.765800f, -0.128200f }, + { -0.750700f, 0.613100f, 0.246100f }, + { -0.217500f, -0.273300f, -0.937000f }, + { 0.178800f, -0.292300f, -0.939500f }, + { 0.904600f, 0.386900f, 0.179200f }, + { -0.904600f, 0.386900f, 0.179200f }, + { 0.178200f, 0.089100f, -0.980000f }, + { -0.178200f, 0.089100f, -0.980000f }, + { -0.233500f, -0.897200f, -0.374900f }, + { 0.233500f, -0.897200f, -0.374900f }, + { 0.717700f, -0.168900f, -0.675500f }, + { -0.448000f, 0.448000f, -0.773700f }, + { 0.531300f, -0.584400f, -0.613400f }, + { -0.531300f, -0.584400f, -0.613400f }, + { 0.900800f, 0.407500f, -0.150100f }, + { -0.553400f, 0.553400f, -0.622500f }, + { 0.581500f, 0.521700f, -0.624300f }, + { -0.572400f, 0.312200f, -0.758200f }, + { 0.613800f, 0.257100f, -0.746500f }, + { -0.559700f, 0.553300f, -0.616900f }, + { 0.171200f, 0.093400f, -0.980800f }, + { -0.955100f, 0.163600f, 0.247000f }, + { 0.871700f, 0.444600f, 0.206300f }, + { -0.922700f, 0.376500f, 0.082500f }, + { 0.766100f, 0.636300f, -0.090900f }, + { -0.766100f, 0.636300f, -0.090900f }, + { 0.793000f, 0.594700f, -0.132200f }, + { -0.781500f, 0.617600f, -0.088200f }, + { 0.240800f, -0.963100f, 0.120400f }, + { -0.124000f, -0.992100f, -0.020700f }, + { 0.925100f, -0.346900f, -0.154200f }, + { -0.943500f, -0.314500f, -0.104800f }, + { 0.707100f, 0.707100f, -0.000000f }, + { -0.707100f, 0.707100f, -0.000000f }, + { -0.015700f, -0.989800f, -0.141400f }, + { 0.015700f, -0.989800f, -0.141400f }, + { 0.626600f, 0.721100f, -0.295600f }, + { -0.626600f, 0.721100f, -0.295600f }, + { 0.271400f, 0.902200f, -0.335300f }, + { -0.271400f, 0.902200f, -0.335300f }, + { -0.865100f, 0.485300f, 0.126600f }, + { 0.865100f, 0.485300f, 0.126600f }, + { -0.853800f, -0.232800f, 0.465700f }, + { 0.809600f, -0.242900f, 0.534300f }, + { -0.543300f, -0.698500f, 0.465700f }, + { 0.562100f, -0.823100f, 0.080300f }, + { -0.109600f, -0.993900f, 0.015700f }, + { 0.007100f, -0.989900f, -0.141400f }, + { 0.173800f, -0.009700f, -0.984700f }, + { -0.104600f, -0.039200f, -0.993700f }, + { 0.413400f, -0.041300f, -0.909600f }, + { -0.246100f, -0.085200f, -0.965500f }, + { 0.322800f, 0.046100f, -0.945300f }, + { -0.322800f, 0.046100f, -0.945300f }, + { 0.122000f, -0.045800f, -0.991500f }, + { -0.210400f, -0.012400f, -0.977500f }, + { 0.567900f, -0.191600f, -0.800500f }, + { -0.567900f, -0.191600f, -0.800500f }, + { 0.424400f, 0.032000f, -0.904900f }, + { -0.378700f, 0.036400f, -0.924800f }, + { 0.257000f, -0.072300f, -0.963700f }, + { -0.253000f, 0.189700f, -0.948700f }, + { 0.135100f, 0.022500f, -0.990600f }, + { -0.135100f, 0.022500f, -0.990600f }, + { -0.298100f, -0.745400f, -0.596300f }, + { 0.487000f, -0.608800f, -0.626200f }, + { 0.557100f, 0.148600f, -0.817100f }, + { -0.557100f, 0.148600f, -0.817100f }, + { 0.472300f, 0.198600f, -0.858800f }, + { -0.438800f, 0.200800f, -0.875900f }, + { 0.297500f, 0.406200f, -0.864000f }, + { -0.578600f, 0.133400f, -0.804600f }, + { 0.577100f, -0.216400f, -0.787500f }, + { -0.577100f, -0.216400f, -0.787500f }, + { 0.093100f, 0.993200f, 0.069200f }, + { -0.093100f, 0.993200f, 0.069200f }, + { 0.516100f, 0.852700f, 0.081200f }, + { -0.516100f, 0.852700f, 0.081200f }, + { 0.926400f, 0.246000f, -0.285100f }, + { -0.930900f, 0.254100f, -0.262400f }, + { 0.826700f, -0.562700f, 0.003500f }, + { -0.846500f, -0.529100f, 0.059500f }, + { -0.214600f, -0.924300f, 0.315700f }, + { 0.251100f, -0.943900f, 0.214500f }, + { -0.419600f, -0.885100f, 0.201200f }, + { 0.484100f, -0.874300f, 0.036100f }, + { -0.547000f, 0.014400f, 0.837000f }, + { 0.525600f, 0.003000f, 0.850700f }, + { -0.255600f, 0.074900f, 0.963900f }, + { 0.255600f, 0.074900f, 0.963900f }, + { -0.733000f, -0.678600f, -0.047200f }, + { 0.807300f, -0.590100f, -0.004100f }, + { 0.684400f, 0.171100f, 0.708800f }, + { -0.684400f, 0.171100f, 0.708800f }, + { -0.360400f, 0.828300f, 0.429000f }, + { 0.360400f, 0.828300f, 0.429000f }, + }; + + constexpr face faces[] = { + {{46, 0}, { 2, 0}, {44, 0}}, + {{ 3, 1}, {47, 1}, {45, 1}}, + {{44, 2}, { 4, 2}, {42, 2}}, + {{ 5, 3}, {45, 3}, {43, 3}}, + {{ 2, 4}, { 6, 4}, { 4, 4}}, + {{ 7, 5}, { 3, 5}, { 5, 5}}, + {{ 0, 6}, { 8, 6}, { 2, 6}}, + {{ 9, 7}, { 1, 7}, { 3, 7}}, + {{10, 8}, {14, 8}, { 8, 8}}, + {{15, 9}, {11, 9}, { 9, 9}}, + {{ 8, 10}, {16, 10}, { 6, 10}}, + {{17, 11}, { 9, 11}, { 7, 11}}, + {{20, 12}, {16, 12}, {14, 12}}, + {{21, 13}, {17, 13}, {19, 13}}, + {{22, 14}, {14, 14}, {12, 14}}, + {{23, 15}, {15, 15}, {21, 15}}, + {{22, 16}, {26, 16}, {20, 16}}, + {{27, 17}, {23, 17}, {21, 17}}, + {{26, 18}, {18, 18}, {20, 18}}, + {{27, 19}, {19, 19}, {29, 19}}, + {{32, 20}, {28, 20}, {26, 20}}, + {{33, 21}, {29, 21}, {31, 21}}, + {{34, 22}, {26, 22}, {24, 22}}, + {{35, 23}, {27, 23}, {33, 23}}, + {{36, 24}, {32, 24}, {34, 24}}, + {{37, 25}, {33, 25}, {39, 25}}, + {{38, 26}, {30, 26}, {32, 26}}, + {{39, 27}, {31, 27}, {41, 27}}, + {{44, 28}, {40, 28}, {38, 28}}, + {{45, 29}, {41, 29}, {43, 29}}, + {{46, 30}, {38, 30}, {36, 30}}, + {{47, 31}, {39, 31}, {45, 31}}, + {{36, 32}, {48, 32}, {46, 32}}, + {{37, 33}, {49, 33}, {51, 33}}, + {{34, 34}, {50, 34}, {36, 34}}, + {{35, 35}, {51, 35}, {53, 35}}, + {{24, 36}, {52, 36}, {34, 36}}, + {{25, 37}, {53, 37}, {55, 37}}, + {{22, 38}, {54, 38}, {24, 38}}, + {{23, 39}, {55, 39}, {57, 39}}, + {{22, 40}, {58, 40}, {56, 40}}, + {{59, 41}, {23, 41}, {57, 41}}, + {{12, 42}, {62, 42}, {58, 42}}, + {{63, 43}, {13, 43}, {59, 43}}, + {{10, 44}, {64, 44}, {62, 44}}, + {{65, 45}, {11, 45}, {63, 45}}, + {{ 0, 46}, {48, 46}, {64, 46}}, + {{49, 47}, { 1, 47}, {65, 47}}, + {{60, 48}, {64, 48}, {48, 48}}, + {{49, 49}, {65, 49}, {61, 49}}, + {{62, 50}, {64, 50}, {60, 50}}, + {{61, 51}, {65, 51}, {63, 51}}, + {{60, 52}, {58, 52}, {62, 52}}, + {{63, 53}, {59, 53}, {61, 53}}, + {{60, 54}, {56, 54}, {58, 54}}, + {{59, 55}, {57, 55}, {61, 55}}, + {{60, 56}, {54, 56}, {56, 56}}, + {{57, 57}, {55, 57}, {61, 57}}, + {{60, 58}, {52, 58}, {54, 58}}, + {{55, 59}, {53, 59}, {61, 59}}, + {{60, 60}, {50, 60}, {52, 60}}, + {{53, 61}, {51, 61}, {61, 61}}, + {{60, 62}, {48, 62}, {50, 62}}, + {{51, 63}, {49, 63}, {61, 63}}, + {{173, 64}, {90, 64}, {88, 64}}, + {{174, 65}, {90, 65}, {175, 65}}, + {{171, 66}, {88, 66}, {86, 66}}, + {{172, 67}, {89, 67}, {174, 67}}, + {{84, 68}, {171, 68}, {86, 68}}, + {{172, 69}, {85, 69}, {87, 69}}, + {{82, 70}, {169, 70}, {84, 70}}, + {{170, 71}, {83, 71}, {85, 71}}, + {{80, 72}, {167, 72}, {82, 72}}, + {{168, 73}, {81, 73}, {83, 73}}, + {{78, 74}, {145, 74}, {163, 74}}, + {{146, 75}, {79, 75}, {164, 75}}, + {{93, 76}, {145, 76}, {91, 76}}, + {{94, 77}, {146, 77}, {148, 77}}, + {{93, 78}, {149, 78}, {147, 78}}, + {{150, 79}, {94, 79}, {148, 79}}, + {{97, 80}, {149, 80}, {95, 80}}, + {{98, 81}, {150, 81}, {152, 81}}, + {{99, 82}, {151, 82}, {97, 82}}, + {{100, 83}, {152, 83}, {154, 83}}, + {{101, 84}, {153, 84}, {99, 84}}, + {{102, 85}, {154, 85}, {156, 85}}, + {{101, 86}, {157, 86}, {155, 86}}, + {{158, 87}, {102, 87}, {156, 87}}, + {{105, 88}, {157, 88}, {103, 88}}, + {{106, 89}, {158, 89}, {160, 89}}, + {{107, 90}, {159, 90}, {105, 90}}, + {{108, 91}, {160, 91}, {162, 91}}, + {{66, 92}, {161, 92}, {107, 92}}, + {{66, 93}, {162, 93}, {67, 93}}, + {{127, 94}, {161, 94}, {109, 94}}, + {{128, 95}, {162, 95}, {160, 95}}, + {{127, 96}, {157, 96}, {159, 96}}, + {{158, 97}, {128, 97}, {160, 97}}, + {{155, 98}, {178, 98}, {125, 98}}, + {{156, 99}, {179, 99}, {158, 99}}, + {{153, 100}, {125, 100}, {123, 100}}, + {{154, 101}, {126, 101}, {156, 101}}, + {{151, 102}, {123, 102}, {121, 102}}, + {{152, 103}, {124, 103}, {154, 103}}, + {{149, 104}, {121, 104}, {119, 104}}, + {{150, 105}, {122, 105}, {152, 105}}, + {{147, 106}, {119, 106}, {117, 106}}, + {{148, 107}, {120, 107}, {150, 107}}, + {{145, 108}, {117, 108}, {115, 108}}, + {{146, 109}, {118, 109}, {148, 109}}, + {{113, 110}, {145, 110}, {115, 110}}, + {{146, 110}, {114, 110}, {116, 110}}, + {{113, 111}, {176, 111}, {163, 111}}, + {{176, 112}, {114, 112}, {164, 112}}, + {{161, 113}, {111, 113}, {109, 113}}, + {{162, 114}, {112, 114}, {67, 114}}, + {{111, 115}, {177, 115}, {182, 115}}, + {{177, 116}, {112, 116}, {183, 116}}, + {{180, 117}, {177, 117}, {176, 117}}, + {{181, 118}, {177, 118}, {183, 118}}, + {{134, 119}, {175, 119}, {173, 119}}, + {{175, 120}, {135, 120}, {174, 120}}, + {{132, 121}, {173, 121}, {171, 121}}, + {{174, 122}, {133, 122}, {172, 122}}, + {{132, 123}, {169, 123}, {130, 123}}, + {{133, 124}, {170, 124}, {172, 124}}, + {{165, 125}, {184, 125}, {167, 125}}, + {{185, 126}, {166, 126}, {168, 126}}, + {{130, 127}, {167, 127}, {184, 127}}, + {{168, 128}, {131, 128}, {185, 128}}, + {{189, 129}, {186, 129}, {143, 129}}, + {{189, 130}, {187, 130}, {188, 130}}, + {{186, 131}, {68, 131}, {184, 131}}, + {{187, 132}, {68, 132}, {188, 132}}, + {{130, 133}, {68, 133}, {129, 133}}, + {{131, 133}, {68, 133}, {185, 133}}, + {{141, 134}, {190, 134}, {143, 134}}, + {{191, 135}, {142, 135}, {144, 135}}, + {{194, 136}, {141, 136}, {139, 136}}, + {{195, 137}, {142, 137}, {193, 137}}, + {{196, 138}, {139, 138}, {138, 138}}, + {{197, 139}, {140, 139}, {195, 139}}, + {{70, 140}, {138, 140}, {137, 140}}, + {{70, 141}, {138, 141}, {197, 141}}, + {{143, 142}, {69, 142}, {189, 142}}, + {{144, 143}, {69, 143}, {191, 143}}, + {{190, 144}, {207, 144}, {69, 144}}, + {{191, 145}, {207, 145}, {206, 145}}, + {{70, 146}, {199, 146}, {196, 146}}, + {{200, 147}, {70, 147}, {197, 147}}, + {{196, 148}, {201, 148}, {194, 148}}, + {{202, 149}, {197, 149}, {195, 149}}, + {{201, 150}, {192, 150}, {194, 150}}, + {{202, 151}, {193, 151}, {204, 151}}, + {{192, 152}, {205, 152}, {190, 152}}, + {{206, 153}, {193, 153}, {191, 153}}, + {{203, 154}, {199, 154}, {198, 154}}, + {{204, 155}, {200, 155}, {202, 155}}, + {{198, 156}, {205, 156}, {203, 156}}, + {{206, 157}, {198, 157}, {204, 157}}, + {{138, 158}, {163, 158}, {176, 158}}, + {{164, 159}, {138, 159}, {176, 159}}, + {{139, 160}, {210, 160}, {163, 160}}, + {{211, 161}, {140, 161}, {164, 161}}, + {{143, 162}, {210, 162}, {141, 162}}, + {{144, 163}, {211, 163}, {213, 163}}, + {{186, 164}, {212, 164}, {143, 164}}, + {{187, 165}, {213, 165}, {166, 165}}, + {{208, 166}, {165, 166}, {80, 166}}, + {{209, 167}, {166, 167}, {213, 167}}, + {{214, 168}, {212, 168}, {208, 168}}, + {{215, 169}, {213, 169}, {211, 169}}, + {{78, 170}, {210, 170}, {214, 170}}, + {{211, 171}, {79, 171}, {215, 171}}, + {{129, 172}, {221, 172}, {130, 172}}, + {{129, 173}, {222, 173}, {71, 173}}, + {{132, 174}, {221, 174}, {219, 174}}, + {{222, 175}, {133, 175}, {220, 175}}, + {{134, 176}, {219, 176}, {217, 176}}, + {{220, 177}, {135, 177}, {218, 177}}, + {{136, 133}, {217, 133}, {216, 133}}, + {{218, 133}, {136, 133}, {216, 133}}, + {{217, 178}, {230, 178}, {216, 178}}, + {{218, 179}, {230, 179}, {229, 179}}, + {{217, 180}, {226, 180}, {228, 180}}, + {{227, 181}, {218, 181}, {229, 181}}, + {{219, 140}, {224, 140}, {226, 140}}, + {{225, 182}, {220, 182}, {227, 182}}, + {{71, 183}, {224, 183}, {221, 183}}, + {{71, 184}, {225, 184}, {223, 184}}, + {{223, 185}, {228, 185}, {224, 185}}, + {{229, 186}, {223, 186}, {225, 186}}, + {{224, 187}, {228, 187}, {226, 187}}, + {{227, 188}, {229, 188}, {225, 188}}, + {{182, 189}, {233, 189}, {231, 189}}, + {{234, 190}, {183, 190}, {232, 190}}, + {{111, 191}, {231, 191}, {253, 191}}, + {{232, 192}, {112, 192}, {254, 192}}, + {{111, 193}, {255, 193}, {109, 193}}, + {{112, 194}, {256, 194}, {254, 194}}, + {{113, 195}, {233, 195}, {180, 195}}, + {{114, 196}, {234, 196}, {252, 196}}, + {{113, 197}, {249, 197}, {251, 197}}, + {{250, 198}, {114, 198}, {252, 198}}, + {{115, 199}, {247, 199}, {249, 199}}, + {{248, 200}, {116, 200}, {250, 200}}, + {{117, 201}, {245, 201}, {247, 201}}, + {{246, 202}, {118, 202}, {248, 202}}, + {{119, 203}, {243, 203}, {245, 203}}, + {{244, 204}, {120, 204}, {246, 204}}, + {{123, 205}, {243, 205}, {121, 205}}, + {{124, 206}, {244, 206}, {242, 206}}, + {{125, 207}, {241, 207}, {123, 207}}, + {{126, 208}, {242, 208}, {240, 208}}, + {{125, 209}, {235, 209}, {239, 209}}, + {{236, 210}, {126, 210}, {240, 210}}, + {{178, 211}, {237, 211}, {235, 211}}, + {{238, 212}, {179, 212}, {236, 212}}, + {{127, 213}, {255, 213}, {237, 213}}, + {{256, 214}, {128, 214}, {238, 214}}, + {{237, 215}, {257, 215}, {275, 215}}, + {{258, 216}, {238, 216}, {276, 216}}, + {{235, 217}, {275, 217}, {277, 217}}, + {{276, 218}, {236, 218}, {278, 218}}, + {{235, 219}, {273, 219}, {239, 219}}, + {{236, 220}, {274, 220}, {278, 220}}, + {{239, 221}, {271, 221}, {241, 221}}, + {{240, 222}, {272, 222}, {274, 222}}, + {{243, 223}, {271, 223}, {269, 223}}, + {{272, 224}, {244, 224}, {270, 224}}, + {{243, 225}, {267, 225}, {245, 225}}, + {{244, 226}, {268, 226}, {270, 226}}, + {{247, 227}, {267, 227}, {265, 227}}, + {{268, 228}, {248, 228}, {266, 228}}, + {{247, 229}, {263, 229}, {249, 229}}, + {{248, 230}, {264, 230}, {266, 230}}, + {{249, 231}, {261, 231}, {251, 231}}, + {{250, 232}, {262, 232}, {264, 232}}, + {{233, 233}, {261, 233}, {279, 233}}, + {{262, 234}, {234, 234}, {280, 234}}, + {{255, 235}, {259, 235}, {257, 235}}, + {{260, 236}, {256, 236}, {258, 236}}, + {{253, 237}, {281, 237}, {259, 237}}, + {{282, 238}, {254, 238}, {260, 238}}, + {{231, 239}, {279, 239}, {281, 239}}, + {{280, 240}, {232, 240}, {282, 240}}, + {{66, 241}, {283, 241}, {72, 241}}, + {{284, 242}, {66, 242}, {72, 242}}, + {{107, 243}, {285, 243}, {283, 243}}, + {{286, 244}, {108, 244}, {284, 244}}, + {{103, 245}, {285, 245}, {105, 245}}, + {{104, 246}, {286, 246}, {288, 246}}, + {{101, 247}, {287, 247}, {103, 247}}, + {{102, 248}, {288, 248}, {290, 248}}, + {{99, 249}, {289, 249}, {101, 249}}, + {{100, 250}, {290, 250}, {292, 250}}, + {{99, 251}, {293, 251}, {291, 251}}, + {{294, 252}, {100, 252}, {292, 252}}, + {{95, 253}, {293, 253}, {97, 253}}, + {{96, 254}, {294, 254}, {296, 254}}, + {{95, 255}, {297, 255}, {295, 255}}, + {{298, 256}, {96, 256}, {296, 256}}, + {{93, 257}, {299, 257}, {297, 257}}, + {{300, 258}, {94, 258}, {298, 258}}, + {{308, 259}, {337, 259}, {307, 259}}, + {{308, 260}, {338, 260}, {328, 260}}, + {{307, 261}, {335, 261}, {306, 261}}, + {{307, 262}, {336, 262}, {338, 262}}, + {{306, 263}, {339, 263}, {305, 263}}, + {{306, 264}, {340, 264}, {336, 264}}, + {{88, 265}, {305, 265}, {339, 265}}, + {{305, 266}, {89, 266}, {340, 266}}, + {{86, 267}, {339, 267}, {333, 267}}, + {{340, 268}, {87, 268}, {334, 268}}, + {{84, 269}, {333, 269}, {329, 269}}, + {{334, 270}, {85, 270}, {330, 270}}, + {{82, 271}, {329, 271}, {331, 271}}, + {{330, 272}, {83, 272}, {332, 272}}, + {{329, 273}, {337, 273}, {331, 273}}, + {{338, 274}, {330, 274}, {332, 274}}, + {{333, 275}, {335, 275}, {329, 275}}, + {{334, 276}, {336, 276}, {340, 276}}, + {{331, 277}, {327, 277}, {325, 277}}, + {{332, 278}, {328, 278}, {338, 278}}, + {{80, 279}, {331, 279}, {325, 279}}, + {{332, 280}, {81, 280}, {326, 280}}, + {{341, 281}, {214, 281}, {208, 281}}, + {{342, 282}, {215, 282}, {344, 282}}, + {{325, 283}, {208, 283}, {80, 283}}, + {{326, 284}, {209, 284}, {342, 284}}, + {{214, 285}, {345, 285}, {78, 285}}, + {{215, 286}, {346, 286}, {344, 286}}, + {{345, 287}, {91, 287}, {78, 287}}, + {{346, 288}, {92, 288}, {300, 288}}, + {{323, 289}, {303, 289}, {76, 289}}, + {{324, 290}, {303, 290}, {352, 290}}, + {{351, 291}, {77, 291}, {303, 291}}, + {{352, 292}, {77, 292}, {350, 292}}, + {{77, 293}, {347, 293}, {304, 293}}, + {{348, 294}, {77, 294}, {304, 294}}, + {{304, 295}, {327, 295}, {308, 295}}, + {{328, 296}, {304, 296}, {308, 296}}, + {{327, 297}, {341, 297}, {325, 297}}, + {{328, 298}, {342, 298}, {348, 298}}, + {{295, 299}, {317, 299}, {309, 299}}, + {{318, 300}, {296, 300}, {310, 300}}, + {{315, 301}, {76, 301}, {75, 301}}, + {{316, 302}, {76, 302}, {324, 302}}, + {{357, 303}, {302, 303}, {301, 303}}, + {{358, 304}, {302, 304}, {356, 304}}, + {{302, 305}, {353, 305}, {74, 305}}, + {{354, 306}, {302, 306}, {74, 306}}, + {{74, 307}, {315, 307}, {75, 307}}, + {{316, 308}, {74, 308}, {75, 308}}, + {{291, 309}, {361, 309}, {363, 309}}, + {{362, 310}, {292, 310}, {364, 310}}, + {{363, 311}, {367, 311}, {365, 311}}, + {{368, 312}, {364, 312}, {366, 312}}, + {{365, 313}, {369, 313}, {371, 313}}, + {{370, 314}, {366, 314}, {372, 314}}, + {{371, 315}, {375, 315}, {373, 315}}, + {{376, 316}, {372, 316}, {374, 316}}, + {{377, 317}, {375, 317}, {313, 317}}, + {{378, 318}, {376, 318}, {374, 318}}, + {{315, 319}, {373, 319}, {377, 319}}, + {{374, 320}, {316, 320}, {378, 320}}, + {{353, 321}, {371, 321}, {373, 321}}, + {{372, 322}, {354, 322}, {374, 322}}, + {{355, 323}, {365, 323}, {371, 323}}, + {{366, 324}, {356, 324}, {372, 324}}, + {{357, 325}, {363, 325}, {365, 325}}, + {{364, 326}, {358, 326}, {366, 326}}, + {{291, 327}, {359, 327}, {289, 327}}, + {{292, 328}, {360, 328}, {364, 328}}, + {{359, 329}, {301, 329}, {73, 329}}, + {{360, 330}, {301, 330}, {358, 330}}, + {{285, 331}, {289, 331}, {283, 331}}, + {{286, 332}, {290, 332}, {288, 332}}, + {{283, 333}, {359, 333}, {73, 333}}, + {{360, 334}, {284, 334}, {73, 334}}, + {{72, 335}, {283, 335}, {73, 335}}, + {{73, 336}, {284, 336}, {72, 336}}, + {{295, 337}, {361, 337}, {293, 337}}, + {{296, 338}, {362, 338}, {310, 338}}, + {{309, 339}, {367, 339}, {361, 339}}, + {{368, 340}, {310, 340}, {362, 340}}, + {{311, 341}, {369, 341}, {367, 341}}, + {{370, 342}, {312, 342}, {368, 342}}, + {{375, 343}, {381, 343}, {313, 343}}, + {{376, 344}, {382, 344}, {370, 344}}, + {{349, 345}, {383, 345}, {347, 345}}, + {{350, 346}, {384, 346}, {386, 346}}, + {{383, 347}, {319, 347}, {317, 347}}, + {{384, 348}, {320, 348}, {386, 348}}, + {{297, 349}, {383, 349}, {317, 349}}, + {{384, 350}, {298, 350}, {318, 350}}, + {{299, 351}, {341, 351}, {383, 351}}, + {{342, 352}, {300, 352}, {384, 352}}, + {{341, 353}, {347, 353}, {383, 353}}, + {{384, 354}, {348, 354}, {342, 354}}, + {{299, 355}, {345, 355}, {343, 355}}, + {{344, 356}, {346, 356}, {300, 356}}, + {{321, 357}, {377, 357}, {313, 357}}, + {{322, 358}, {378, 358}, {380, 358}}, + {{377, 359}, {323, 359}, {315, 359}}, + {{378, 360}, {324, 360}, {380, 360}}, + {{385, 361}, {321, 361}, {319, 361}}, + {{386, 362}, {322, 362}, {380, 362}}, + {{351, 363}, {385, 363}, {349, 363}}, + {{352, 364}, {386, 364}, {380, 364}}, + {{323, 365}, {379, 365}, {351, 365}}, + {{352, 366}, {380, 366}, {324, 366}}, + {{387, 367}, {401, 367}, {399, 367}}, + {{388, 368}, {402, 368}, {414, 368}}, + {{399, 369}, {403, 369}, {397, 369}}, + {{404, 370}, {400, 370}, {398, 370}}, + {{403, 371}, {395, 371}, {397, 371}}, + {{404, 372}, {396, 372}, {406, 372}}, + {{405, 373}, {393, 373}, {395, 373}}, + {{406, 374}, {394, 374}, {408, 374}}, + {{407, 375}, {391, 375}, {393, 375}}, + {{408, 376}, {392, 376}, {410, 376}}, + {{391, 377}, {411, 377}, {389, 377}}, + {{412, 378}, {392, 378}, {390, 378}}, + {{409, 379}, {417, 379}, {411, 379}}, + {{418, 380}, {410, 380}, {412, 380}}, + {{407, 381}, {419, 381}, {409, 381}}, + {{420, 382}, {408, 382}, {410, 382}}, + {{423, 383}, {407, 383}, {405, 383}}, + {{424, 384}, {408, 384}, {422, 384}}, + {{425, 385}, {405, 385}, {403, 385}}, + {{426, 386}, {406, 386}, {424, 386}}, + {{427, 387}, {403, 387}, {401, 387}}, + {{428, 388}, {404, 388}, {426, 388}}, + {{401, 389}, {415, 389}, {427, 389}}, + {{416, 390}, {402, 390}, {428, 390}}, + {{319, 391}, {441, 391}, {317, 391}}, + {{320, 392}, {442, 392}, {444, 392}}, + {{389, 393}, {443, 393}, {319, 393}}, + {{390, 394}, {444, 394}, {412, 394}}, + {{309, 395}, {441, 395}, {311, 395}}, + {{442, 396}, {310, 396}, {312, 396}}, + {{381, 397}, {413, 397}, {387, 397}}, + {{414, 398}, {382, 398}, {388, 398}}, + {{411, 399}, {439, 399}, {443, 399}}, + {{440, 400}, {412, 400}, {444, 400}}, + {{445, 401}, {439, 401}, {437, 401}}, + {{446, 402}, {440, 402}, {444, 402}}, + {{433, 133}, {437, 133}, {435, 133}}, + {{438, 133}, {434, 133}, {436, 133}}, + {{447, 403}, {433, 403}, {431, 403}}, + {{448, 404}, {434, 404}, {446, 404}}, + {{447, 405}, {449, 405}, {429, 405}}, + {{448, 406}, {450, 406}, {432, 406}}, + {{429, 407}, {415, 407}, {413, 407}}, + {{430, 408}, {416, 408}, {450, 408}}, + {{447, 409}, {381, 409}, {311, 409}}, + {{448, 410}, {382, 410}, {430, 410}}, + {{441, 411}, {447, 411}, {311, 411}}, + {{442, 412}, {448, 412}, {446, 412}}, + {{441, 413}, {443, 413}, {445, 413}}, + {{446, 414}, {444, 414}, {442, 414}}, + {{415, 415}, {451, 415}, {475, 415}}, + {{452, 416}, {416, 416}, {476, 416}}, + {{431, 417}, {451, 417}, {449, 417}}, + {{432, 418}, {452, 418}, {462, 418}}, + {{431, 419}, {459, 419}, {461, 419}}, + {{460, 420}, {432, 420}, {462, 420}}, + {{435, 421}, {459, 421}, {433, 421}}, + {{436, 422}, {460, 422}, {458, 422}}, + {{437, 423}, {457, 423}, {435, 423}}, + {{438, 424}, {458, 424}, {456, 424}}, + {{437, 425}, {453, 425}, {455, 425}}, + {{454, 426}, {438, 426}, {456, 426}}, + {{439, 427}, {473, 427}, {453, 427}}, + {{474, 427}, {440, 427}, {454, 427}}, + {{427, 428}, {475, 428}, {463, 428}}, + {{476, 429}, {428, 429}, {464, 429}}, + {{425, 430}, {463, 430}, {465, 430}}, + {{464, 431}, {426, 431}, {466, 431}}, + {{423, 432}, {465, 432}, {467, 432}}, + {{466, 433}, {424, 433}, {468, 433}}, + {{423, 434}, {469, 434}, {421, 434}}, + {{424, 435}, {470, 435}, {468, 435}}, + {{421, 436}, {471, 436}, {419, 436}}, + {{422, 437}, {472, 437}, {470, 437}}, + {{419, 438}, {473, 438}, {417, 438}}, + {{420, 439}, {474, 439}, {472, 439}}, + {{455, 440}, {477, 440}, {457, 440}}, + {{456, 441}, {478, 441}, {480, 441}}, + {{479, 442}, {483, 442}, {477, 442}}, + {{480, 443}, {484, 443}, {482, 443}}, + {{483, 444}, {487, 444}, {485, 444}}, + {{488, 445}, {484, 445}, {486, 445}}, + {{487, 446}, {491, 446}, {485, 446}}, + {{488, 447}, {492, 447}, {490, 447}}, + {{463, 448}, {485, 448}, {491, 448}}, + {{486, 449}, {464, 449}, {492, 449}}, + {{483, 450}, {475, 450}, {451, 450}}, + {{484, 451}, {476, 451}, {486, 451}}, + {{461, 452}, {483, 452}, {451, 452}}, + {{462, 453}, {484, 453}, {478, 453}}, + {{457, 133}, {461, 133}, {459, 133}}, + {{462, 133}, {458, 133}, {460, 133}}, + {{473, 454}, {455, 454}, {453, 454}}, + {{474, 455}, {456, 455}, {480, 455}}, + {{471, 456}, {479, 456}, {473, 456}}, + {{480, 457}, {472, 457}, {474, 457}}, + {{487, 458}, {471, 458}, {469, 458}}, + {{488, 459}, {472, 459}, {482, 459}}, + {{489, 460}, {469, 460}, {467, 460}}, + {{490, 461}, {470, 461}, {488, 461}}, + {{465, 462}, {489, 462}, {467, 462}}, + {{490, 463}, {466, 463}, {468, 463}}, + {{463, 464}, {491, 464}, {465, 464}}, + {{466, 465}, {492, 465}, {464, 465}}, + {{391, 466}, {503, 466}, {501, 466}}, + {{504, 467}, {392, 467}, {502, 467}}, + {{393, 468}, {501, 468}, {499, 468}}, + {{502, 469}, {394, 469}, {500, 469}}, + {{393, 470}, {497, 470}, {395, 470}}, + {{394, 471}, {498, 471}, {500, 471}}, + {{395, 472}, {495, 472}, {397, 472}}, + {{396, 473}, {496, 473}, {498, 473}}, + {{397, 474}, {493, 474}, {399, 474}}, + {{398, 475}, {494, 475}, {496, 475}}, + {{399, 476}, {505, 476}, {387, 476}}, + {{400, 477}, {506, 477}, {494, 477}}, + {{501, 478}, {505, 478}, {493, 478}}, + {{502, 479}, {506, 479}, {504, 479}}, + {{493, 480}, {499, 480}, {501, 480}}, + {{500, 481}, {494, 481}, {502, 481}}, + {{495, 482}, {497, 482}, {499, 482}}, + {{500, 483}, {498, 483}, {496, 483}}, + {{381, 484}, {505, 484}, {313, 484}}, + {{382, 485}, {506, 485}, {388, 485}}, + {{313, 486}, {503, 486}, {321, 486}}, + {{504, 487}, {314, 487}, {322, 487}}, + {{319, 488}, {503, 488}, {389, 488}}, + {{504, 489}, {320, 489}, {390, 489}}, + {{46, 490}, { 0, 490}, { 2, 490}}, + {{ 3, 491}, { 1, 491}, {47, 491}}, + {{44, 492}, { 2, 492}, { 4, 492}}, + {{ 5, 493}, { 3, 493}, {45, 493}}, + {{ 2, 494}, { 8, 494}, { 6, 494}}, + {{ 7, 495}, { 9, 495}, { 3, 495}}, + {{ 0, 496}, {10, 496}, { 8, 496}}, + {{ 9, 497}, {11, 497}, { 1, 497}}, + {{10, 498}, {12, 498}, {14, 498}}, + {{15, 499}, {13, 499}, {11, 499}}, + {{ 8, 500}, {14, 500}, {16, 500}}, + {{17, 501}, {15, 501}, { 9, 501}}, + {{20, 502}, {18, 502}, {16, 502}}, + {{21, 503}, {15, 503}, {17, 503}}, + {{22, 504}, {20, 504}, {14, 504}}, + {{23, 505}, {13, 505}, {15, 505}}, + {{22, 506}, {24, 506}, {26, 506}}, + {{27, 507}, {25, 507}, {23, 507}}, + {{26, 508}, {28, 508}, {18, 508}}, + {{27, 509}, {21, 509}, {19, 509}}, + {{32, 510}, {30, 510}, {28, 510}}, + {{33, 511}, {27, 511}, {29, 511}}, + {{34, 512}, {32, 512}, {26, 512}}, + {{35, 513}, {25, 513}, {27, 513}}, + {{36, 514}, {38, 514}, {32, 514}}, + {{37, 515}, {35, 515}, {33, 515}}, + {{38, 516}, {40, 516}, {30, 516}}, + {{39, 517}, {33, 517}, {31, 517}}, + {{44, 518}, {42, 518}, {40, 518}}, + {{45, 519}, {39, 519}, {41, 519}}, + {{46, 520}, {44, 520}, {38, 520}}, + {{47, 521}, {37, 521}, {39, 521}}, + {{36, 522}, {50, 522}, {48, 522}}, + {{37, 523}, {47, 523}, {49, 523}}, + {{34, 524}, {52, 524}, {50, 524}}, + {{35, 525}, {37, 525}, {51, 525}}, + {{24, 526}, {54, 526}, {52, 526}}, + {{25, 527}, {35, 527}, {53, 527}}, + {{22, 528}, {56, 528}, {54, 528}}, + {{23, 529}, {25, 529}, {55, 529}}, + {{22, 530}, {12, 530}, {58, 530}}, + {{59, 531}, {13, 531}, {23, 531}}, + {{12, 532}, {10, 532}, {62, 532}}, + {{63, 533}, {11, 533}, {13, 533}}, + {{10, 534}, { 0, 534}, {64, 534}}, + {{65, 535}, { 1, 535}, {11, 535}}, + {{ 0, 536}, {46, 536}, {48, 536}}, + {{49, 537}, {47, 537}, { 1, 537}}, + {{173, 538}, {175, 538}, {90, 538}}, + {{174, 539}, {89, 539}, {90, 539}}, + {{171, 540}, {173, 540}, {88, 540}}, + {{172, 541}, {87, 541}, {89, 541}}, + {{84, 542}, {169, 542}, {171, 542}}, + {{172, 543}, {170, 543}, {85, 543}}, + {{82, 544}, {167, 544}, {169, 544}}, + {{170, 545}, {168, 545}, {83, 545}}, + {{80, 546}, {165, 546}, {167, 546}}, + {{168, 547}, {166, 547}, {81, 547}}, + {{78, 548}, {91, 548}, {145, 548}}, + {{146, 549}, {92, 549}, {79, 549}}, + {{93, 550}, {147, 550}, {145, 550}}, + {{94, 551}, {92, 551}, {146, 551}}, + {{93, 552}, {95, 552}, {149, 552}}, + {{150, 553}, {96, 553}, {94, 553}}, + {{97, 554}, {151, 554}, {149, 554}}, + {{98, 555}, {96, 555}, {150, 555}}, + {{99, 556}, {153, 556}, {151, 556}}, + {{100, 557}, {98, 557}, {152, 557}}, + {{101, 558}, {155, 558}, {153, 558}}, + {{102, 559}, {100, 559}, {154, 559}}, + {{101, 560}, {103, 560}, {157, 560}}, + {{158, 561}, {104, 561}, {102, 561}}, + {{105, 562}, {159, 562}, {157, 562}}, + {{106, 563}, {104, 563}, {158, 563}}, + {{107, 564}, {161, 564}, {159, 564}}, + {{108, 565}, {106, 565}, {160, 565}}, + {{66, 566}, {67, 566}, {161, 566}}, + {{66, 567}, {108, 567}, {162, 567}}, + {{127, 568}, {159, 568}, {161, 568}}, + {{128, 569}, {110, 569}, {162, 569}}, + {{127, 570}, {178, 570}, {157, 570}}, + {{158, 571}, {179, 571}, {128, 571}}, + {{155, 572}, {157, 572}, {178, 572}}, + {{156, 573}, {126, 573}, {179, 573}}, + {{153, 574}, {155, 574}, {125, 574}}, + {{154, 575}, {124, 575}, {126, 575}}, + {{151, 576}, {153, 576}, {123, 576}}, + {{152, 577}, {122, 577}, {124, 577}}, + {{149, 578}, {151, 578}, {121, 578}}, + {{150, 579}, {120, 579}, {122, 579}}, + {{147, 580}, {149, 580}, {119, 580}}, + {{148, 581}, {118, 581}, {120, 581}}, + {{145, 582}, {147, 582}, {117, 582}}, + {{146, 583}, {116, 583}, {118, 583}}, + {{113, 584}, {163, 584}, {145, 584}}, + {{146, 585}, {164, 585}, {114, 585}}, + {{113, 586}, {180, 586}, {176, 586}}, + {{176, 587}, {181, 587}, {114, 587}}, + {{161, 588}, {67, 588}, {111, 588}}, + {{162, 589}, {110, 589}, {112, 589}}, + {{111, 590}, {67, 590}, {177, 590}}, + {{177, 591}, {67, 591}, {112, 591}}, + {{180, 592}, {182, 592}, {177, 592}}, + {{181, 593}, {176, 593}, {177, 593}}, + {{134, 594}, {136, 594}, {175, 594}}, + {{175, 595}, {136, 595}, {135, 595}}, + {{132, 596}, {134, 596}, {173, 596}}, + {{174, 597}, {135, 597}, {133, 597}}, + {{132, 598}, {171, 598}, {169, 598}}, + {{133, 599}, {131, 599}, {170, 599}}, + {{165, 600}, {186, 600}, {184, 600}}, + {{185, 601}, {187, 601}, {166, 601}}, + {{130, 602}, {169, 602}, {167, 602}}, + {{168, 603}, {170, 603}, {131, 603}}, + {{189, 130}, {188, 130}, {186, 130}}, + {{189, 604}, {144, 604}, {187, 604}}, + {{186, 132}, {188, 132}, {68, 132}}, + {{187, 605}, {185, 605}, {68, 605}}, + {{130, 133}, {184, 133}, {68, 133}}, + {{131, 133}, {129, 133}, {68, 133}}, + {{141, 606}, {192, 606}, {190, 606}}, + {{191, 607}, {193, 607}, {142, 607}}, + {{194, 608}, {192, 608}, {141, 608}}, + {{195, 609}, {140, 609}, {142, 609}}, + {{196, 610}, {194, 610}, {139, 610}}, + {{197, 611}, {138, 611}, {140, 611}}, + {{70, 612}, {196, 612}, {138, 612}}, + {{143, 613}, {190, 613}, {69, 613}}, + {{144, 614}, {189, 614}, {69, 614}}, + {{190, 144}, {205, 144}, {207, 144}}, + {{191, 145}, {69, 145}, {207, 145}}, + {{70, 615}, {198, 615}, {199, 615}}, + {{200, 616}, {198, 616}, {70, 616}}, + {{196, 617}, {199, 617}, {201, 617}}, + {{202, 618}, {200, 618}, {197, 618}}, + {{201, 619}, {203, 619}, {192, 619}}, + {{202, 620}, {195, 620}, {193, 620}}, + {{192, 621}, {203, 621}, {205, 621}}, + {{206, 622}, {204, 622}, {193, 622}}, + {{203, 623}, {201, 623}, {199, 623}}, + {{204, 624}, {198, 624}, {200, 624}}, + {{198, 625}, {207, 625}, {205, 625}}, + {{206, 626}, {207, 626}, {198, 626}}, + {{138, 627}, {139, 627}, {163, 627}}, + {{164, 628}, {140, 628}, {138, 628}}, + {{139, 629}, {141, 629}, {210, 629}}, + {{211, 630}, {142, 630}, {140, 630}}, + {{143, 631}, {212, 631}, {210, 631}}, + {{144, 632}, {142, 632}, {211, 632}}, + {{186, 633}, {165, 633}, {212, 633}}, + {{187, 634}, {144, 634}, {213, 634}}, + {{208, 635}, {212, 635}, {165, 635}}, + {{209, 636}, {81, 636}, {166, 636}}, + {{214, 637}, {210, 637}, {212, 637}}, + {{215, 638}, {209, 638}, {213, 638}}, + {{78, 639}, {163, 639}, {210, 639}}, + {{211, 640}, {164, 640}, {79, 640}}, + {{129, 641}, {71, 641}, {221, 641}}, + {{129, 642}, {131, 642}, {222, 642}}, + {{132, 643}, {130, 643}, {221, 643}}, + {{222, 644}, {131, 644}, {133, 644}}, + {{134, 645}, {132, 645}, {219, 645}}, + {{220, 646}, {133, 646}, {135, 646}}, + {{136, 647}, {134, 647}, {217, 647}}, + {{218, 648}, {135, 648}, {136, 648}}, + {{217, 178}, {228, 178}, {230, 178}}, + {{218, 179}, {216, 179}, {230, 179}}, + {{217, 649}, {219, 649}, {226, 649}}, + {{227, 650}, {220, 650}, {218, 650}}, + {{219, 140}, {221, 140}, {224, 140}}, + {{225, 182}, {222, 182}, {220, 182}}, + {{71, 183}, {223, 183}, {224, 183}}, + {{71, 184}, {222, 184}, {225, 184}}, + {{223, 651}, {230, 651}, {228, 651}}, + {{229, 652}, {230, 652}, {223, 652}}, + {{182, 653}, {180, 653}, {233, 653}}, + {{234, 654}, {181, 654}, {183, 654}}, + {{111, 655}, {182, 655}, {231, 655}}, + {{232, 656}, {183, 656}, {112, 656}}, + {{111, 657}, {253, 657}, {255, 657}}, + {{112, 658}, {110, 658}, {256, 658}}, + {{113, 659}, {251, 659}, {233, 659}}, + {{114, 660}, {181, 660}, {234, 660}}, + {{113, 661}, {115, 661}, {249, 661}}, + {{250, 662}, {116, 662}, {114, 662}}, + {{115, 663}, {117, 663}, {247, 663}}, + {{248, 664}, {118, 664}, {116, 664}}, + {{117, 665}, {119, 665}, {245, 665}}, + {{246, 666}, {120, 666}, {118, 666}}, + {{119, 667}, {121, 667}, {243, 667}}, + {{244, 668}, {122, 668}, {120, 668}}, + {{123, 669}, {241, 669}, {243, 669}}, + {{124, 670}, {122, 670}, {244, 670}}, + {{125, 671}, {239, 671}, {241, 671}}, + {{126, 672}, {124, 672}, {242, 672}}, + {{125, 673}, {178, 673}, {235, 673}}, + {{236, 674}, {179, 674}, {126, 674}}, + {{178, 675}, {127, 675}, {237, 675}}, + {{238, 676}, {128, 676}, {179, 676}}, + {{127, 677}, {109, 677}, {255, 677}}, + {{256, 678}, {110, 678}, {128, 678}}, + {{237, 679}, {255, 679}, {257, 679}}, + {{258, 680}, {256, 680}, {238, 680}}, + {{235, 681}, {237, 681}, {275, 681}}, + {{276, 682}, {238, 682}, {236, 682}}, + {{235, 683}, {277, 683}, {273, 683}}, + {{236, 684}, {240, 684}, {274, 684}}, + {{239, 685}, {273, 685}, {271, 685}}, + {{240, 686}, {242, 686}, {272, 686}}, + {{243, 687}, {241, 687}, {271, 687}}, + {{272, 688}, {242, 688}, {244, 688}}, + {{243, 689}, {269, 689}, {267, 689}}, + {{244, 690}, {246, 690}, {268, 690}}, + {{247, 691}, {245, 691}, {267, 691}}, + {{268, 692}, {246, 692}, {248, 692}}, + {{247, 693}, {265, 693}, {263, 693}}, + {{248, 694}, {250, 694}, {264, 694}}, + {{249, 695}, {263, 695}, {261, 695}}, + {{250, 696}, {252, 696}, {262, 696}}, + {{233, 233}, {251, 233}, {261, 233}}, + {{262, 234}, {252, 234}, {234, 234}}, + {{255, 697}, {253, 697}, {259, 697}}, + {{260, 698}, {254, 698}, {256, 698}}, + {{253, 699}, {231, 699}, {281, 699}}, + {{282, 700}, {232, 700}, {254, 700}}, + {{231, 701}, {233, 701}, {279, 701}}, + {{280, 702}, {234, 702}, {232, 702}}, + {{66, 703}, {107, 703}, {283, 703}}, + {{284, 704}, {108, 704}, {66, 704}}, + {{107, 705}, {105, 705}, {285, 705}}, + {{286, 706}, {106, 706}, {108, 706}}, + {{103, 707}, {287, 707}, {285, 707}}, + {{104, 708}, {106, 708}, {286, 708}}, + {{101, 709}, {289, 709}, {287, 709}}, + {{102, 710}, {104, 710}, {288, 710}}, + {{99, 711}, {291, 711}, {289, 711}}, + {{100, 712}, {102, 712}, {290, 712}}, + {{99, 713}, {97, 713}, {293, 713}}, + {{294, 714}, {98, 714}, {100, 714}}, + {{95, 715}, {295, 715}, {293, 715}}, + {{96, 716}, {98, 716}, {294, 716}}, + {{95, 717}, {93, 717}, {297, 717}}, + {{298, 718}, {94, 718}, {96, 718}}, + {{93, 719}, {91, 719}, {299, 719}}, + {{300, 720}, {92, 720}, {94, 720}}, + {{308, 721}, {327, 721}, {337, 721}}, + {{308, 722}, {307, 722}, {338, 722}}, + {{307, 723}, {337, 723}, {335, 723}}, + {{307, 724}, {306, 724}, {336, 724}}, + {{306, 725}, {335, 725}, {339, 725}}, + {{306, 726}, {305, 726}, {340, 726}}, + {{88, 727}, {90, 727}, {305, 727}}, + {{305, 728}, {90, 728}, {89, 728}}, + {{86, 729}, {88, 729}, {339, 729}}, + {{340, 730}, {89, 730}, {87, 730}}, + {{84, 731}, {86, 731}, {333, 731}}, + {{334, 732}, {87, 732}, {85, 732}}, + {{82, 733}, {84, 733}, {329, 733}}, + {{330, 734}, {85, 734}, {83, 734}}, + {{329, 735}, {335, 735}, {337, 735}}, + {{338, 736}, {336, 736}, {330, 736}}, + {{333, 737}, {339, 737}, {335, 737}}, + {{334, 738}, {330, 738}, {336, 738}}, + {{331, 739}, {337, 739}, {327, 739}}, + {{332, 740}, {326, 740}, {328, 740}}, + {{80, 741}, {82, 741}, {331, 741}}, + {{332, 742}, {83, 742}, {81, 742}}, + {{341, 743}, {343, 743}, {214, 743}}, + {{342, 744}, {209, 744}, {215, 744}}, + {{325, 745}, {341, 745}, {208, 745}}, + {{326, 746}, {81, 746}, {209, 746}}, + {{214, 747}, {343, 747}, {345, 747}}, + {{215, 748}, {79, 748}, {346, 748}}, + {{345, 749}, {299, 749}, {91, 749}}, + {{346, 750}, {79, 750}, {92, 750}}, + {{323, 751}, {351, 751}, {303, 751}}, + {{324, 752}, {76, 752}, {303, 752}}, + {{351, 753}, {349, 753}, {77, 753}}, + {{352, 754}, {303, 754}, {77, 754}}, + {{77, 755}, {349, 755}, {347, 755}}, + {{348, 756}, {350, 756}, {77, 756}}, + {{304, 757}, {347, 757}, {327, 757}}, + {{328, 758}, {348, 758}, {304, 758}}, + {{327, 759}, {347, 759}, {341, 759}}, + {{328, 760}, {326, 760}, {342, 760}}, + {{295, 761}, {297, 761}, {317, 761}}, + {{318, 762}, {298, 762}, {296, 762}}, + {{315, 763}, {323, 763}, {76, 763}}, + {{316, 764}, {75, 764}, {76, 764}}, + {{357, 765}, {355, 765}, {302, 765}}, + {{358, 766}, {301, 766}, {302, 766}}, + {{302, 767}, {355, 767}, {353, 767}}, + {{354, 768}, {356, 768}, {302, 768}}, + {{74, 769}, {353, 769}, {315, 769}}, + {{316, 770}, {354, 770}, {74, 770}}, + {{291, 771}, {293, 771}, {361, 771}}, + {{362, 772}, {294, 772}, {292, 772}}, + {{363, 773}, {361, 773}, {367, 773}}, + {{368, 774}, {362, 774}, {364, 774}}, + {{365, 775}, {367, 775}, {369, 775}}, + {{370, 776}, {368, 776}, {366, 776}}, + {{371, 777}, {369, 777}, {375, 777}}, + {{376, 778}, {370, 778}, {372, 778}}, + {{377, 779}, {373, 779}, {375, 779}}, + {{378, 780}, {314, 780}, {376, 780}}, + {{315, 781}, {353, 781}, {373, 781}}, + {{374, 782}, {354, 782}, {316, 782}}, + {{353, 783}, {355, 783}, {371, 783}}, + {{372, 784}, {356, 784}, {354, 784}}, + {{355, 785}, {357, 785}, {365, 785}}, + {{366, 786}, {358, 786}, {356, 786}}, + {{357, 787}, {359, 787}, {363, 787}}, + {{364, 788}, {360, 788}, {358, 788}}, + {{291, 789}, {363, 789}, {359, 789}}, + {{292, 790}, {290, 790}, {360, 790}}, + {{359, 791}, {357, 791}, {301, 791}}, + {{360, 792}, {73, 792}, {301, 792}}, + {{285, 793}, {287, 793}, {289, 793}}, + {{286, 794}, {284, 794}, {290, 794}}, + {{283, 795}, {289, 795}, {359, 795}}, + {{360, 796}, {290, 796}, {284, 796}}, + {{295, 797}, {309, 797}, {361, 797}}, + {{296, 798}, {294, 798}, {362, 798}}, + {{309, 799}, {311, 799}, {367, 799}}, + {{368, 800}, {312, 800}, {310, 800}}, + {{311, 801}, {381, 801}, {369, 801}}, + {{370, 802}, {382, 802}, {312, 802}}, + {{375, 803}, {369, 803}, {381, 803}}, + {{376, 804}, {314, 804}, {382, 804}}, + {{349, 805}, {385, 805}, {383, 805}}, + {{350, 806}, {348, 806}, {384, 806}}, + {{383, 807}, {385, 807}, {319, 807}}, + {{384, 808}, {318, 808}, {320, 808}}, + {{297, 809}, {299, 809}, {383, 809}}, + {{384, 810}, {300, 810}, {298, 810}}, + {{299, 811}, {343, 811}, {341, 811}}, + {{342, 812}, {344, 812}, {300, 812}}, + {{321, 813}, {379, 813}, {377, 813}}, + {{322, 814}, {314, 814}, {378, 814}}, + {{377, 815}, {379, 815}, {323, 815}}, + {{378, 816}, {316, 816}, {324, 816}}, + {{385, 817}, {379, 817}, {321, 817}}, + {{386, 818}, {320, 818}, {322, 818}}, + {{351, 819}, {379, 819}, {385, 819}}, + {{352, 820}, {350, 820}, {386, 820}}, + {{387, 821}, {413, 821}, {401, 821}}, + {{388, 822}, {400, 822}, {402, 822}}, + {{399, 823}, {401, 823}, {403, 823}}, + {{404, 824}, {402, 824}, {400, 824}}, + {{403, 825}, {405, 825}, {395, 825}}, + {{404, 826}, {398, 826}, {396, 826}}, + {{405, 827}, {407, 827}, {393, 827}}, + {{406, 828}, {396, 828}, {394, 828}}, + {{407, 829}, {409, 829}, {391, 829}}, + {{408, 830}, {394, 830}, {392, 830}}, + {{391, 831}, {409, 831}, {411, 831}}, + {{412, 832}, {410, 832}, {392, 832}}, + {{409, 833}, {419, 833}, {417, 833}}, + {{418, 834}, {420, 834}, {410, 834}}, + {{407, 835}, {421, 835}, {419, 835}}, + {{420, 836}, {422, 836}, {408, 836}}, + {{423, 837}, {421, 837}, {407, 837}}, + {{424, 838}, {406, 838}, {408, 838}}, + {{425, 839}, {423, 839}, {405, 839}}, + {{426, 840}, {404, 840}, {406, 840}}, + {{427, 841}, {425, 841}, {403, 841}}, + {{428, 842}, {402, 842}, {404, 842}}, + {{401, 843}, {413, 843}, {415, 843}}, + {{416, 844}, {414, 844}, {402, 844}}, + {{319, 845}, {443, 845}, {441, 845}}, + {{320, 846}, {318, 846}, {442, 846}}, + {{389, 847}, {411, 847}, {443, 847}}, + {{390, 848}, {320, 848}, {444, 848}}, + {{309, 849}, {317, 849}, {441, 849}}, + {{442, 850}, {318, 850}, {310, 850}}, + {{381, 851}, {429, 851}, {413, 851}}, + {{414, 852}, {430, 852}, {382, 852}}, + {{411, 853}, {417, 853}, {439, 853}}, + {{440, 854}, {418, 854}, {412, 854}}, + {{445, 855}, {443, 855}, {439, 855}}, + {{446, 856}, {438, 856}, {440, 856}}, + {{433, 857}, {445, 857}, {437, 857}}, + {{438, 858}, {446, 858}, {434, 858}}, + {{447, 859}, {445, 859}, {433, 859}}, + {{448, 860}, {432, 860}, {434, 860}}, + {{447, 861}, {431, 861}, {449, 861}}, + {{448, 862}, {430, 862}, {450, 862}}, + {{429, 863}, {449, 863}, {415, 863}}, + {{430, 864}, {414, 864}, {416, 864}}, + {{447, 865}, {429, 865}, {381, 865}}, + {{448, 866}, {312, 866}, {382, 866}}, + {{441, 867}, {445, 867}, {447, 867}}, + {{442, 868}, {312, 868}, {448, 868}}, + {{415, 869}, {449, 869}, {451, 869}}, + {{452, 870}, {450, 870}, {416, 870}}, + {{431, 871}, {461, 871}, {451, 871}}, + {{432, 872}, {450, 872}, {452, 872}}, + {{431, 419}, {433, 419}, {459, 419}}, + {{460, 420}, {434, 420}, {432, 420}}, + {{435, 873}, {457, 873}, {459, 873}}, + {{436, 874}, {434, 874}, {460, 874}}, + {{437, 875}, {455, 875}, {457, 875}}, + {{438, 876}, {436, 876}, {458, 876}}, + {{437, 877}, {439, 877}, {453, 877}}, + {{454, 878}, {440, 878}, {438, 878}}, + {{439, 879}, {417, 879}, {473, 879}}, + {{474, 880}, {418, 880}, {440, 880}}, + {{427, 881}, {415, 881}, {475, 881}}, + {{476, 882}, {416, 882}, {428, 882}}, + {{425, 883}, {427, 883}, {463, 883}}, + {{464, 884}, {428, 884}, {426, 884}}, + {{423, 885}, {425, 885}, {465, 885}}, + {{466, 886}, {426, 886}, {424, 886}}, + {{423, 887}, {467, 887}, {469, 887}}, + {{424, 888}, {422, 888}, {470, 888}}, + {{421, 889}, {469, 889}, {471, 889}}, + {{422, 890}, {420, 890}, {472, 890}}, + {{419, 891}, {471, 891}, {473, 891}}, + {{420, 892}, {418, 892}, {474, 892}}, + {{455, 893}, {479, 893}, {477, 893}}, + {{456, 894}, {458, 894}, {478, 894}}, + {{479, 895}, {481, 895}, {483, 895}}, + {{480, 896}, {478, 896}, {484, 896}}, + {{483, 897}, {481, 897}, {487, 897}}, + {{488, 898}, {482, 898}, {484, 898}}, + {{487, 899}, {489, 899}, {491, 899}}, + {{488, 900}, {486, 900}, {492, 900}}, + {{463, 901}, {475, 901}, {485, 901}}, + {{486, 902}, {476, 902}, {464, 902}}, + {{483, 903}, {485, 903}, {475, 903}}, + {{484, 904}, {452, 904}, {476, 904}}, + {{461, 905}, {477, 905}, {483, 905}}, + {{462, 906}, {452, 906}, {484, 906}}, + {{457, 907}, {477, 907}, {461, 907}}, + {{462, 908}, {478, 908}, {458, 908}}, + {{473, 909}, {479, 909}, {455, 909}}, + {{474, 910}, {454, 910}, {456, 910}}, + {{471, 911}, {481, 911}, {479, 911}}, + {{480, 912}, {482, 912}, {472, 912}}, + {{487, 913}, {481, 913}, {471, 913}}, + {{488, 914}, {470, 914}, {472, 914}}, + {{489, 915}, {487, 915}, {469, 915}}, + {{490, 916}, {468, 916}, {470, 916}}, + {{465, 917}, {491, 917}, {489, 917}}, + {{490, 918}, {492, 918}, {466, 918}}, + {{391, 919}, {389, 919}, {503, 919}}, + {{504, 920}, {390, 920}, {392, 920}}, + {{393, 921}, {391, 921}, {501, 921}}, + {{502, 922}, {392, 922}, {394, 922}}, + {{393, 923}, {499, 923}, {497, 923}}, + {{394, 924}, {396, 924}, {498, 924}}, + {{395, 925}, {497, 925}, {495, 925}}, + {{396, 926}, {398, 926}, {496, 926}}, + {{397, 927}, {495, 927}, {493, 927}}, + {{398, 928}, {400, 928}, {494, 928}}, + {{399, 929}, {493, 929}, {505, 929}}, + {{400, 930}, {388, 930}, {506, 930}}, + {{501, 931}, {503, 931}, {505, 931}}, + {{502, 932}, {494, 932}, {506, 932}}, + {{493, 933}, {495, 933}, {499, 933}}, + {{500, 934}, {496, 934}, {494, 934}}, + {{381, 935}, {387, 935}, {505, 935}}, + {{382, 936}, {314, 936}, {506, 936}}, + {{313, 937}, {505, 937}, {503, 937}}, + {{504, 938}, {506, 938}, {314, 938}}, + {{319, 939}, {321, 939}, {503, 939}}, + {{504, 940}, {322, 940}, {320, 940}}, + }; + + constexpr uint32_t num_faces = (sizeof (faces)) / (sizeof (face)); + +} diff --git a/geometry/suzanne.obj b/geometry/suzanne.obj new file mode 100644 index 0000000..6197126 --- /dev/null +++ b/geometry/suzanne.obj @@ -0,0 +1,2419 @@ +# Blender 3.3.6 +# www.blender.org +o Suzanne +v 0.437500 -0.164062 -0.765625 +v -0.437500 -0.164062 -0.765625 +v 0.500000 -0.093750 -0.687500 +v -0.500000 -0.093750 -0.687500 +v 0.546875 -0.054688 -0.578125 +v -0.546875 -0.054687 -0.578125 +v 0.351562 0.023438 -0.617188 +v -0.351563 0.023438 -0.617187 +v 0.351562 -0.031250 -0.718750 +v -0.351563 -0.031250 -0.718750 +v 0.351562 -0.132812 -0.781250 +v -0.351563 -0.132812 -0.781250 +v 0.273437 -0.164062 -0.796875 +v -0.273438 -0.164062 -0.796875 +v 0.203125 -0.093750 -0.742188 +v -0.203125 -0.093750 -0.742187 +v 0.156250 -0.054687 -0.648438 +v -0.156250 -0.054687 -0.648438 +v 0.078125 -0.242187 -0.656250 +v -0.078125 -0.242187 -0.656250 +v 0.140625 -0.242187 -0.742188 +v -0.140625 -0.242187 -0.742188 +v 0.242187 -0.242187 -0.796875 +v -0.242188 -0.242187 -0.796875 +v 0.273437 -0.328125 -0.796875 +v -0.273438 -0.328125 -0.796875 +v 0.203125 -0.390625 -0.742188 +v -0.203125 -0.390625 -0.742188 +v 0.156250 -0.437500 -0.648438 +v -0.156250 -0.437500 -0.648438 +v 0.351562 -0.515625 -0.617188 +v -0.351563 -0.515625 -0.617188 +v 0.351562 -0.453125 -0.718750 +v -0.351563 -0.453125 -0.718750 +v 0.351562 -0.359375 -0.781250 +v -0.351563 -0.359375 -0.781250 +v 0.437500 -0.328125 -0.765625 +v -0.437500 -0.328125 -0.765625 +v 0.500000 -0.390625 -0.687500 +v -0.500000 -0.390625 -0.687500 +v 0.546875 -0.437500 -0.578125 +v -0.546875 -0.437500 -0.578125 +v 0.625000 -0.242188 -0.562500 +v -0.625000 -0.242187 -0.562500 +v 0.562500 -0.242188 -0.671875 +v -0.562500 -0.242187 -0.671875 +v 0.468750 -0.242187 -0.757813 +v -0.468750 -0.242187 -0.757812 +v 0.476562 -0.242187 -0.773438 +v -0.476563 -0.242187 -0.773438 +v 0.445312 -0.335937 -0.781250 +v -0.445313 -0.335937 -0.781250 +v 0.351562 -0.375000 -0.804688 +v -0.351563 -0.375000 -0.804688 +v 0.265625 -0.335937 -0.820313 +v -0.265625 -0.335937 -0.820312 +v 0.226562 -0.242187 -0.820313 +v -0.226563 -0.242187 -0.820312 +v 0.265625 -0.156250 -0.820313 +v -0.265625 -0.156250 -0.820312 +v 0.351562 -0.242187 -0.828125 +v -0.351563 -0.242187 -0.828125 +v 0.351562 -0.117187 -0.804688 +v -0.351563 -0.117187 -0.804687 +v 0.445312 -0.156250 -0.781250 +v -0.445313 -0.156250 -0.781250 +v -0.000000 -0.429687 -0.742188 +v -0.000000 -0.351562 -0.820313 +v 0.000000 0.679688 -0.734375 +v -0.000000 0.320313 -0.781250 +v -0.000000 0.187500 -0.796875 +v 0.000000 0.773438 -0.718750 +v -0.000000 -0.406250 -0.601563 +v -0.000000 -0.570312 -0.570313 +v -0.000000 -0.898438 0.546875 +v 0.000000 -0.562500 0.851562 +v 0.000000 -0.070313 0.828125 +v 0.000000 0.382812 0.351563 +v 0.203125 0.187500 -0.562500 +v -0.203125 0.187500 -0.562500 +v 0.312500 0.437500 -0.570312 +v -0.312500 0.437500 -0.570312 +v 0.351563 0.695312 -0.570312 +v -0.351562 0.695313 -0.570312 +v 0.367188 0.890625 -0.531250 +v -0.367187 0.890625 -0.531250 +v 0.328125 0.945312 -0.523437 +v -0.328125 0.945313 -0.523437 +v 0.179688 0.968750 -0.554687 +v -0.179687 0.968750 -0.554687 +v 0.000000 0.984375 -0.578125 +v 0.437500 0.140625 -0.531250 +v -0.437500 0.140625 -0.531250 +v 0.632812 0.039062 -0.539063 +v -0.632813 0.039063 -0.539062 +v 0.828125 -0.148438 -0.445313 +v -0.828125 -0.148437 -0.445312 +v 0.859375 -0.429688 -0.593750 +v -0.859375 -0.429687 -0.593750 +v 0.710937 -0.484375 -0.625000 +v -0.710938 -0.484375 -0.625000 +v 0.492187 -0.601562 -0.687500 +v -0.492188 -0.601562 -0.687500 +v 0.320312 -0.757812 -0.734375 +v -0.320313 -0.757812 -0.734375 +v 0.156250 -0.718750 -0.757813 +v -0.156250 -0.718750 -0.757813 +v 0.062500 -0.492187 -0.750000 +v -0.062500 -0.492187 -0.750000 +v 0.164062 -0.414062 -0.773438 +v -0.164063 -0.414062 -0.773438 +v 0.125000 -0.304687 -0.765625 +v -0.125000 -0.304687 -0.765625 +v 0.203125 -0.093750 -0.742188 +v -0.203125 -0.093750 -0.742187 +v 0.375000 -0.015625 -0.703125 +v -0.375000 -0.015625 -0.703125 +v 0.492187 -0.062500 -0.671875 +v -0.492188 -0.062500 -0.671875 +v 0.625000 -0.187500 -0.648438 +v -0.625000 -0.187500 -0.648437 +v 0.640625 -0.296875 -0.648438 +v -0.640625 -0.296875 -0.648437 +v 0.601562 -0.375000 -0.664063 +v -0.601563 -0.375000 -0.664062 +v 0.429687 -0.437500 -0.718750 +v -0.429688 -0.437500 -0.718750 +v 0.250000 -0.468750 -0.757813 +v -0.250000 -0.468750 -0.757812 +v 0.000000 0.765625 -0.734375 +v 0.109375 0.718750 -0.734375 +v -0.109375 0.718750 -0.734375 +v 0.117188 0.835938 -0.710937 +v -0.117187 0.835938 -0.710937 +v 0.062500 0.882813 -0.695312 +v -0.062500 0.882813 -0.695312 +v 0.000000 0.890625 -0.687500 +v -0.000000 0.195313 -0.750000 +v -0.000000 0.140625 -0.742188 +v 0.101562 0.148438 -0.742188 +v -0.101563 0.148438 -0.742188 +v 0.125000 0.226563 -0.750000 +v -0.125000 0.226563 -0.750000 +v 0.085937 0.289063 -0.742187 +v -0.085938 0.289063 -0.742187 +v 0.398437 0.046875 -0.671875 +v -0.398438 0.046875 -0.671875 +v 0.617187 -0.054688 -0.625000 +v -0.617188 -0.054687 -0.625000 +v 0.726562 -0.203125 -0.601563 +v -0.726563 -0.203125 -0.601562 +v 0.742187 -0.375000 -0.656250 +v -0.742188 -0.375000 -0.656250 +v 0.687500 -0.414062 -0.726563 +v -0.687500 -0.414062 -0.726562 +v 0.437500 -0.546875 -0.796875 +v -0.437500 -0.546875 -0.796875 +v 0.312500 -0.640625 -0.835938 +v -0.312500 -0.640625 -0.835938 +v 0.203125 -0.617187 -0.851563 +v -0.203125 -0.617187 -0.851563 +v 0.101562 -0.429687 -0.843750 +v -0.101563 -0.429687 -0.843750 +v 0.125000 0.101563 -0.812500 +v -0.125000 0.101563 -0.812500 +v 0.210937 0.445313 -0.710938 +v -0.210938 0.445313 -0.710937 +v 0.250000 0.703125 -0.687500 +v -0.250000 0.703125 -0.687500 +v 0.265625 0.820313 -0.664062 +v -0.265625 0.820313 -0.664062 +v 0.234375 0.914063 -0.632812 +v -0.234375 0.914063 -0.632812 +v 0.164063 0.929688 -0.632812 +v -0.164062 0.929688 -0.632812 +v 0.000000 0.945313 -0.640625 +v -0.000000 -0.046875 -0.726562 +v -0.000000 -0.210937 -0.765625 +v 0.328125 -0.476562 -0.742188 +v -0.328125 -0.476562 -0.742188 +v 0.164062 -0.140625 -0.750000 +v -0.164063 -0.140625 -0.750000 +v 0.132812 -0.210937 -0.757813 +v -0.132813 -0.210937 -0.757813 +v 0.117188 0.687500 -0.734375 +v -0.117187 0.687500 -0.734375 +v 0.078125 0.445313 -0.750000 +v -0.078125 0.445313 -0.750000 +v -0.000000 0.445313 -0.750000 +v -0.000000 0.328125 -0.742187 +v 0.093750 0.273438 -0.781250 +v -0.093750 0.273438 -0.781250 +v 0.132812 0.226563 -0.796875 +v -0.132813 0.226563 -0.796875 +v 0.109375 0.132813 -0.781250 +v -0.109375 0.132813 -0.781250 +v 0.039062 0.125000 -0.781250 +v -0.039063 0.125000 -0.781250 +v -0.000000 0.203125 -0.828125 +v 0.046875 0.148438 -0.812500 +v -0.046875 0.148438 -0.812500 +v 0.093750 0.156250 -0.812500 +v -0.093750 0.156250 -0.812500 +v 0.109375 0.226563 -0.828125 +v -0.109375 0.226563 -0.828125 +v 0.078125 0.250000 -0.804687 +v -0.078125 0.250000 -0.804687 +v -0.000000 0.289063 -0.804687 +v 0.257812 0.312500 -0.554688 +v -0.257813 0.312500 -0.554687 +v 0.164062 0.242188 -0.710937 +v -0.164063 0.242188 -0.710937 +v 0.179687 0.312500 -0.710937 +v -0.179688 0.312500 -0.710937 +v 0.234375 0.250000 -0.554688 +v -0.234375 0.250000 -0.554687 +v 0.000000 0.875000 -0.687500 +v 0.046875 0.867188 -0.687500 +v -0.046875 0.867188 -0.687500 +v 0.093750 0.820313 -0.710937 +v -0.093750 0.820313 -0.710937 +v 0.093750 0.742188 -0.726562 +v -0.093750 0.742188 -0.726562 +v 0.000000 0.781250 -0.656250 +v 0.093750 0.750000 -0.664062 +v -0.093750 0.750000 -0.664062 +v 0.093750 0.812500 -0.640625 +v -0.093750 0.812500 -0.640625 +v 0.046875 0.851563 -0.632812 +v -0.046875 0.851563 -0.632812 +v 0.000000 0.859375 -0.632812 +v 0.171875 -0.218750 -0.781250 +v -0.171875 -0.218750 -0.781250 +v 0.187500 -0.156250 -0.773438 +v -0.187500 -0.156250 -0.773438 +v 0.335937 -0.429687 -0.757813 +v -0.335938 -0.429687 -0.757812 +v 0.273437 -0.421875 -0.773438 +v -0.273438 -0.421875 -0.773438 +v 0.421875 -0.398437 -0.773438 +v -0.421875 -0.398437 -0.773438 +v 0.562500 -0.351562 -0.695313 +v -0.562500 -0.351562 -0.695312 +v 0.585937 -0.289062 -0.687500 +v -0.585938 -0.289062 -0.687500 +v 0.578125 -0.195312 -0.679688 +v -0.578125 -0.195312 -0.679687 +v 0.476562 -0.101562 -0.718750 +v -0.476563 -0.101562 -0.718750 +v 0.375000 -0.062500 -0.742188 +v -0.375000 -0.062500 -0.742187 +v 0.226562 -0.109375 -0.781250 +v -0.226563 -0.109375 -0.781250 +v 0.179687 -0.296875 -0.781250 +v -0.179688 -0.296875 -0.781250 +v 0.210937 -0.375000 -0.781250 +v -0.210938 -0.375000 -0.781250 +v 0.234375 -0.359375 -0.757813 +v -0.234375 -0.359375 -0.757812 +v 0.195312 -0.296875 -0.757813 +v -0.195313 -0.296875 -0.757813 +v 0.242187 -0.125000 -0.757813 +v -0.242188 -0.125000 -0.757812 +v 0.375000 -0.085937 -0.726563 +v -0.375000 -0.085937 -0.726562 +v 0.460937 -0.117187 -0.703125 +v -0.460938 -0.117187 -0.703125 +v 0.546875 -0.210938 -0.671875 +v -0.546875 -0.210937 -0.671875 +v 0.554687 -0.281250 -0.671875 +v -0.554688 -0.281250 -0.671875 +v 0.531250 -0.335938 -0.679688 +v -0.531250 -0.335937 -0.679688 +v 0.414062 -0.390625 -0.750000 +v -0.414063 -0.390625 -0.750000 +v 0.281250 -0.398437 -0.765625 +v -0.281250 -0.398437 -0.765625 +v 0.335937 -0.406250 -0.750000 +v -0.335938 -0.406250 -0.750000 +v 0.203125 -0.171875 -0.750000 +v -0.203125 -0.171875 -0.750000 +v 0.195312 -0.226562 -0.750000 +v -0.195313 -0.226562 -0.750000 +v 0.109375 -0.460937 -0.609375 +v -0.109375 -0.460937 -0.609375 +v 0.195312 -0.664062 -0.617188 +v -0.195313 -0.664062 -0.617188 +v 0.335937 -0.687500 -0.593750 +v -0.335938 -0.687500 -0.593750 +v 0.484375 -0.554688 -0.554688 +v -0.484375 -0.554687 -0.554688 +v 0.679687 -0.453125 -0.492188 +v -0.679688 -0.453125 -0.492187 +v 0.796875 -0.406250 -0.460938 +v -0.796875 -0.406250 -0.460937 +v 0.773437 -0.164063 -0.375000 +v -0.773438 -0.164062 -0.375000 +v 0.601562 -0.000000 -0.414063 +v -0.601563 0.000000 -0.414062 +v 0.437500 0.093750 -0.468750 +v -0.437500 0.093750 -0.468750 +v -0.000000 -0.898437 -0.289063 +v -0.000000 -0.984375 0.078125 +v 0.000000 0.195312 0.671875 +v 0.000000 0.460938 -0.187500 +v 0.000000 0.976563 -0.460937 +v 0.000000 0.804688 -0.343750 +v 0.000000 0.570313 -0.320312 +v 0.000000 0.484375 -0.281250 +v 0.851562 -0.234375 -0.054688 +v -0.851563 -0.234375 -0.054687 +v 0.859375 -0.320313 0.046875 +v -0.859375 -0.320312 0.046875 +v 0.773438 -0.265625 0.437500 +v -0.773438 -0.265625 0.437500 +v 0.460938 -0.437500 0.703125 +v -0.460937 -0.437500 0.703125 +v 0.734375 0.046875 -0.070313 +v -0.734375 0.046875 -0.070312 +v 0.593750 0.125000 0.164062 +v -0.593750 0.125000 0.164063 +v 0.640625 0.007812 0.429687 +v -0.640625 0.007813 0.429688 +v 0.335938 -0.054688 0.664062 +v -0.335937 -0.054688 0.664063 +v 0.234375 0.351563 -0.406250 +v -0.234375 0.351563 -0.406250 +v 0.179688 0.414062 -0.257812 +v -0.179687 0.414063 -0.257812 +v 0.289063 0.710938 -0.382812 +v -0.289062 0.710938 -0.382812 +v 0.250000 0.500000 -0.390625 +v -0.250000 0.500000 -0.390625 +v 0.328125 0.914062 -0.398437 +v -0.328125 0.914063 -0.398437 +v 0.140625 0.757813 -0.367187 +v -0.140625 0.757813 -0.367187 +v 0.125000 0.539063 -0.359375 +v -0.125000 0.539063 -0.359375 +v 0.164063 0.945313 -0.437500 +v -0.164062 0.945313 -0.437500 +v 0.218750 0.281250 -0.429688 +v -0.218750 0.281250 -0.429687 +v 0.210937 0.226563 -0.468750 +v -0.210938 0.226563 -0.468750 +v 0.203125 0.171875 -0.500000 +v -0.203125 0.171875 -0.500000 +v 0.210938 0.390625 -0.164062 +v -0.210937 0.390625 -0.164062 +v 0.296875 0.312500 0.265625 +v -0.296875 0.312500 0.265625 +v 0.343750 0.148437 0.539062 +v -0.343750 0.148437 0.539063 +v 0.453125 -0.867188 0.382812 +v -0.453125 -0.867188 0.382812 +v 0.453125 -0.929688 0.070312 +v -0.453125 -0.929687 0.070312 +v 0.453125 -0.851563 -0.234375 +v -0.453125 -0.851562 -0.234375 +v 0.460937 -0.523438 -0.429688 +v -0.460938 -0.523437 -0.429688 +v 0.726562 -0.406250 -0.335938 +v -0.726563 -0.406250 -0.335937 +v 0.632812 -0.453125 -0.281250 +v -0.632813 -0.453125 -0.281250 +v 0.640625 -0.703125 -0.054688 +v -0.640625 -0.703125 -0.054688 +v 0.796875 -0.562500 -0.125000 +v -0.796875 -0.562500 -0.125000 +v 0.796875 -0.617188 0.117187 +v -0.796875 -0.617187 0.117188 +v 0.640625 -0.750000 0.195312 +v -0.640625 -0.750000 0.195312 +v 0.640625 -0.679688 0.445312 +v -0.640625 -0.679687 0.445312 +v 0.796875 -0.539063 0.359375 +v -0.796875 -0.539062 0.359375 +v 0.617188 -0.328125 0.585937 +v -0.617188 -0.328125 0.585938 +v 0.484375 -0.023438 0.546875 +v -0.484375 -0.023437 0.546875 +v 0.820312 -0.328125 0.203125 +v -0.820312 -0.328125 0.203125 +v 0.406250 0.171875 -0.148438 +v -0.406250 0.171875 -0.148437 +v 0.429688 0.195312 0.210937 +v -0.429687 0.195313 0.210938 +v 0.890625 -0.406250 0.234375 +v -0.890625 -0.406250 0.234375 +v 0.773438 0.140625 0.125000 +v -0.773438 0.140625 0.125000 +v 1.039062 0.101562 0.328125 +v -1.039062 0.101563 0.328125 +v 1.281250 -0.054688 0.429687 +v -1.281250 -0.054687 0.429688 +v 1.351563 -0.320313 0.421875 +v -1.351562 -0.320312 0.421875 +v 1.234375 -0.507813 0.421875 +v -1.234375 -0.507812 0.421875 +v 1.023437 -0.476563 0.312500 +v -1.023438 -0.476562 0.312500 +v 1.015625 -0.414063 0.289062 +v -1.015625 -0.414062 0.289063 +v 1.187500 -0.437500 0.390625 +v -1.187500 -0.437500 0.390625 +v 1.265625 -0.289063 0.406250 +v -1.265625 -0.289062 0.406250 +v 1.210938 -0.078125 0.406250 +v -1.210937 -0.078125 0.406250 +v 1.031250 0.039062 0.304687 +v -1.031250 0.039063 0.304688 +v 0.828125 0.070312 0.132812 +v -0.828125 0.070313 0.132813 +v 0.921875 -0.359375 0.218750 +v -0.921875 -0.359375 0.218750 +v 0.945312 -0.304688 0.289062 +v -0.945312 -0.304687 0.289063 +v 0.882813 0.023437 0.210937 +v -0.882812 0.023438 0.210938 +v 1.039062 -0.000000 0.367187 +v -1.039062 0.000000 0.367188 +v 1.187500 -0.093750 0.445312 +v -1.187500 -0.093750 0.445313 +v 1.234375 -0.250000 0.445312 +v -1.234375 -0.250000 0.445313 +v 1.171875 -0.359375 0.437500 +v -1.171875 -0.359375 0.437500 +v 1.023437 -0.343750 0.359375 +v -1.023438 -0.343750 0.359375 +v 0.843750 -0.289063 0.210937 +v -0.843750 -0.289062 0.210938 +v 0.835938 -0.171875 0.273437 +v -0.835938 -0.171875 0.273438 +v 0.757813 -0.093750 0.273437 +v -0.757812 -0.093750 0.273438 +v 0.820313 -0.085938 0.273437 +v -0.820312 -0.085937 0.273438 +v 0.843750 -0.015625 0.273437 +v -0.843750 -0.015625 0.273438 +v 0.812500 0.015625 0.273437 +v -0.812500 0.015625 0.273438 +v 0.726562 -0.000000 0.070312 +v -0.726562 0.000000 0.070313 +v 0.718750 0.023437 0.171875 +v -0.718750 0.023438 0.171875 +v 0.718750 -0.039063 0.187500 +v -0.718750 -0.039062 0.187500 +v 0.796875 -0.203125 0.210937 +v -0.796875 -0.203125 0.210938 +v 0.890625 -0.242188 0.265625 +v -0.890625 -0.242187 0.265625 +v 0.890625 -0.234375 0.320312 +v -0.890625 -0.234375 0.320313 +v 0.812500 0.015625 0.320312 +v -0.812500 0.015625 0.320313 +v 0.851563 -0.015625 0.320312 +v -0.851562 -0.015625 0.320313 +v 0.828125 -0.078125 0.320312 +v -0.828125 -0.078125 0.320313 +v 0.765625 -0.093750 0.320312 +v -0.765625 -0.093750 0.320313 +v 0.843750 -0.171875 0.320312 +v -0.843750 -0.171875 0.320313 +v 1.039063 -0.328125 0.414062 +v -1.039062 -0.328125 0.414063 +v 1.187500 -0.343750 0.484375 +v -1.187500 -0.343750 0.484375 +v 1.257813 -0.242188 0.492187 +v -1.257812 -0.242187 0.492188 +v 1.210938 -0.085938 0.484375 +v -1.210937 -0.085937 0.484375 +v 1.046875 -0.000000 0.421875 +v -1.046875 0.000000 0.421875 +v 0.882813 0.015625 0.265625 +v -0.882812 0.015625 0.265625 +v 0.953125 -0.289063 0.343750 +v -0.953125 -0.289062 0.343750 +v 0.890625 -0.109375 0.328125 +v -0.890625 -0.109375 0.328125 +v 0.937500 -0.062500 0.335937 +v -0.937500 -0.062500 0.335938 +v 1.000000 -0.125000 0.367187 +v -1.000000 -0.125000 0.367188 +v 0.960938 -0.171875 0.351562 +v -0.960938 -0.171875 0.351563 +v 1.015625 -0.234375 0.375000 +v -1.015625 -0.234375 0.375000 +v 1.054688 -0.187500 0.382812 +v -1.054688 -0.187500 0.382813 +v 1.109375 -0.210938 0.390625 +v -1.109375 -0.210937 0.390625 +v 1.085938 -0.273438 0.390625 +v -1.085938 -0.273437 0.390625 +v 1.023438 -0.437500 0.484375 +v -1.023438 -0.437500 0.484375 +v 1.250000 -0.468750 0.546875 +v -1.250000 -0.468750 0.546875 +v 1.367188 -0.296875 0.500000 +v -1.367187 -0.296875 0.500000 +v 1.312500 -0.054688 0.531250 +v -1.312500 -0.054687 0.531250 +v 1.039063 0.085937 0.492187 +v -1.039062 0.085938 0.492188 +v 0.789063 0.125000 0.328125 +v -0.789062 0.125000 0.328125 +v 0.859375 -0.382813 0.382812 +v -0.859375 -0.382812 0.382813 +vn 0.6617 0.2026 -0.7219 +vn -0.6617 0.2026 -0.7219 +vn 0.8268 0.3051 -0.4725 +vn -0.8268 0.3051 -0.4725 +vn 0.4076 0.7905 -0.4570 +vn -0.4076 0.7905 -0.4570 +vn 0.3791 0.5163 -0.7679 +vn -0.3791 0.5163 -0.7679 +vn -0.0859 0.5222 -0.8485 +vn 0.0859 0.5222 -0.8485 +vn -0.2664 0.8487 -0.4570 +vn 0.2664 0.8487 -0.4570 +vn -0.7824 0.3294 -0.5285 +vn 0.7606 0.3400 -0.5531 +vn -0.4767 0.1907 -0.8581 +vn 0.4649 0.1958 -0.8634 +vn -0.4649 -0.1958 -0.8634 +vn 0.4649 -0.1958 -0.8634 +vn -0.7656 -0.3223 -0.5568 +vn 0.7683 -0.3293 -0.5488 +vn -0.2560 -0.8073 -0.5317 +vn 0.2487 -0.8249 -0.5076 +vn -0.0821 -0.6023 -0.7940 +vn 0.1017 -0.5518 -0.8277 +vn 0.3329 -0.5231 -0.7846 +vn -0.3861 -0.5446 -0.7445 +vn 0.4246 -0.7711 -0.4745 +vn -0.4059 -0.7641 -0.5014 +vn 0.8251 -0.2968 -0.4808 +vn -0.8299 -0.2940 -0.4742 +vn 0.6888 -0.1868 -0.7005 +vn -0.6617 -0.2026 -0.7219 +vn 0.8400 -0.3436 0.4200 +vn -0.7816 -0.3058 0.5437 +vn 0.2074 -0.8296 0.5185 +vn -0.2037 -0.8146 0.5431 +vn -0.4056 -0.7605 0.5070 +vn 0.4381 -0.7988 0.4123 +vn -0.8642 -0.3143 0.3928 +vn 0.7861 -0.3276 0.5241 +vn -0.7782 0.3538 0.5188 +vn 0.7783 0.3537 0.5188 +vn -0.4381 0.7988 0.4123 +vn 0.4381 0.7988 0.4123 +vn 0.2037 0.8146 0.5431 +vn -0.2037 0.8146 0.5431 +vn 0.7683 0.3293 0.5488 +vn -0.7683 0.3293 0.5488 +vn 0.4000 0.0623 -0.9144 +vn -0.4000 0.0623 -0.9144 +vn 0.3069 0.1754 -0.9354 +vn -0.3069 0.1754 -0.9354 +vn 0.0945 0.1835 -0.9785 +vn -0.0945 0.1835 -0.9785 +vn -0.0624 0.0283 -0.9977 +vn 0.0624 0.0283 -0.9977 +vn -0.0624 -0.0260 -0.9977 +vn 0.0624 -0.0260 -0.9977 +vn 0.0996 -0.1729 -0.9799 +vn -0.0996 -0.1729 -0.9799 +vn 0.3036 -0.1656 -0.9383 +vn -0.3036 -0.1656 -0.9383 +vn 0.4002 -0.0572 -0.9147 +vn -0.4002 -0.0572 -0.9147 +vn 0.1367 0.8748 -0.4648 +vn -0.1054 0.8433 -0.5270 +vn 0.2303 0.8656 -0.4447 +vn -0.1916 0.8620 -0.4693 +vn 0.5788 0.5049 -0.6404 +vn -0.5788 0.5049 -0.6404 +vn 0.7763 0.0633 -0.6272 +vn -0.7763 0.0633 -0.6272 +vn 0.7471 -0.1132 -0.6550 +vn -0.7471 -0.1132 -0.6550 +vn 0.3747 0.8345 -0.4040 +vn -0.3747 0.8345 -0.4040 +vn 0.3557 0.7290 -0.5848 +vn -0.4177 0.5751 -0.7034 +vn 0.6947 0.4197 -0.5841 +vn -0.6947 0.4197 -0.5841 +vn 0.7028 0.3915 -0.5939 +vn -0.5537 0.2978 -0.7777 +vn 0.3127 -0.3425 -0.8860 +vn -0.8227 -0.3606 -0.4395 +vn 0.5091 -0.6482 -0.5663 +vn -0.5041 -0.6448 -0.5745 +vn 0.5977 -0.5565 -0.5771 +vn -0.5977 -0.5565 -0.5771 +vn -0.0486 -0.6560 -0.7532 +vn 0.0371 -0.6685 -0.7428 +vn -0.7104 -0.2715 -0.6494 +vn 0.7386 -0.3768 -0.5590 +vn -0.6013 -0.5262 -0.6013 +vn 0.5774 -0.5774 -0.5774 +vn 0.5070 0.6281 -0.5903 +vn -0.5364 0.3230 -0.7797 +vn 0.2226 0.4694 -0.8545 +vn -0.2226 0.4694 -0.8545 +vn -0.0348 0.5792 -0.8144 +vn 0.1073 0.5010 -0.8588 +vn -0.0899 0.7843 -0.6138 +vn 0.0770 0.5759 -0.8139 +vn 0.0547 0.1695 -0.9840 +vn -0.0279 0.8645 -0.5019 +vn 0.4260 0.0609 -0.9027 +vn -0.1687 0.3128 -0.9347 +vn 0.3352 0.1828 -0.9243 +vn -0.4350 0.1812 -0.8820 +vn 0.3579 0.3068 -0.8819 +vn -0.3223 0.2762 -0.9054 +vn -0.0000 0.4472 -0.8944 +vn -0.1598 -0.3903 -0.9067 +vn 0.1598 -0.3903 -0.9067 +vn 0.6819 0.2915 -0.6709 +vn -0.1854 0.4956 -0.8485 +vn 0.0585 0.0781 -0.9952 +vn -0.0585 0.0781 -0.9952 +vn -0.0066 0.2316 -0.9728 +vn -0.0585 0.0845 -0.9947 +vn 0.1008 0.7103 -0.6966 +vn -0.1008 0.7103 -0.6966 +vn 0.1322 0.5947 -0.7930 +vn -0.1322 0.5947 -0.7930 +vn 0.3128 0.1662 -0.9352 +vn -0.3143 0.3928 -0.8642 +vn 0.3288 0.0360 -0.9437 +vn -0.3288 0.0360 -0.9437 +vn 0.3233 0.0808 -0.9429 +vn -0.3233 0.0808 -0.9429 +vn -0.0232 -0.0511 -0.9984 +vn -0.0000 -0.0665 -0.9978 +vn -0.0043 0.0651 -0.9979 +vn -0.0000 0.0665 -0.9978 +vn -0.0000 -0.0000 -1.0000 +vn 0.8447 0.5335 -0.0445 +vn -0.8447 0.5335 -0.0445 +vn 0.9256 -0.2492 0.2848 +vn -0.9635 -0.2141 0.1606 +vn 0.0693 -0.9004 0.4294 +vn -0.1018 -0.9165 0.3870 +vn -1.0000 -0.0000 -0.0000 +vn 0.6905 -0.5492 -0.4708 +vn 0.4071 0.8956 -0.1791 +vn -0.4319 0.8639 -0.2592 +vn 0.2873 0.5747 -0.7663 +vn -0.2873 0.5747 -0.7663 +vn -0.6326 -0.5353 -0.5596 +vn 0.6326 -0.5353 -0.5596 +vn 0.0862 -0.7759 -0.6250 +vn -0.0862 -0.7759 -0.6250 +vn 0.7532 -0.2870 -0.5918 +vn -0.7639 -0.2971 -0.5729 +vn 0.3416 0.5409 -0.7686 +vn -0.3416 0.5409 -0.7686 +vn 0.0502 -0.2343 -0.9709 +vn -0.0375 -0.2247 -0.9737 +vn -0.1304 0.6087 -0.7826 +vn 0.1304 0.6087 -0.7826 +vn -0.5059 -0.0716 -0.8596 +vn 0.5059 -0.0716 -0.8596 +vn -0.5774 0.5774 -0.5774 +vn 0.5774 0.5774 -0.5774 +vn 0.5460 0.4310 -0.7184 +vn -0.3319 -0.0738 -0.9404 +vn 0.3231 -0.0311 -0.9459 +vn -0.2815 -0.0662 -0.9573 +vn 0.7357 -0.3910 -0.5531 +vn -0.8753 -0.2059 -0.4376 +vn 0.8480 -0.3180 -0.4240 +vn -0.8973 -0.1994 -0.3938 +vn 0.8505 -0.3798 -0.3638 +vn -0.8505 -0.3798 -0.3638 +vn 0.1783 0.4161 -0.8917 +vn -0.2524 0.8655 -0.4327 +vn -0.1296 0.1945 -0.9723 +vn 0.1296 0.1945 -0.9723 +vn -0.4472 -0.0000 -0.8944 +vn 0.4472 -0.0000 -0.8944 +vn -0.1582 -0.9494 -0.2713 +vn 0.1582 -0.9494 -0.2713 +vn -0.6463 -0.7337 -0.2096 +vn 0.6463 -0.7337 -0.2096 +vn 1.0000 -0.0000 -0.0000 +vn 0.3051 0.9450 -0.1181 +vn -0.3051 0.9450 -0.1181 +vn 0.0217 0.3031 -0.9527 +vn -0.0217 0.3031 -0.9527 +vn 0.1353 0.3479 -0.9277 +vn -0.1353 0.3479 -0.9277 +vn -0.4681 0.2239 -0.8548 +vn 0.4681 0.2239 -0.8548 +vn -0.2710 -0.0271 -0.9622 +vn 0.2710 -0.0271 -0.9622 +vn -0.1717 0.0090 -0.9851 +vn 0.2595 -0.1038 -0.9601 +vn -0.4332 0.4874 -0.7581 +vn 0.6684 0.4595 -0.5849 +vn -0.1599 0.8797 -0.4478 +vn 0.1599 0.8797 -0.4478 +vn 0.3900 0.5895 -0.7074 +vn -0.3900 0.5895 -0.7074 +vn 0.6547 0.4589 -0.6007 +vn -0.6547 0.4589 -0.6007 +vn 0.5378 0.1144 -0.8353 +vn -0.5378 0.1144 -0.8353 +vn 0.5657 -0.1197 -0.8159 +vn -0.5774 -0.1155 -0.8083 +vn 0.4082 -0.4082 -0.8165 +vn -0.5214 -0.6574 -0.5441 +vn 0.1796 -0.7882 -0.5886 +vn -0.1796 -0.7882 -0.5886 +vn 0.1881 -0.3387 -0.9219 +vn -0.1881 -0.3387 -0.9219 +vn -0.0870 -0.2756 -0.9573 +vn 0.0870 -0.2756 -0.9573 +vn 0.0829 0.2902 -0.9534 +vn -0.0829 0.2902 -0.9534 +vn 0.3015 0.3015 -0.9045 +vn -0.3015 0.3015 -0.9045 +vn -0.3766 0.8339 -0.4035 +vn 0.0631 0.3156 -0.9468 +vn 0.0823 0.7822 -0.6175 +vn 0.2016 0.9071 -0.3696 +vn -0.3707 0.2851 -0.8839 +vn 0.3707 0.2851 -0.8839 +vn -0.2692 0.0577 -0.9614 +vn 0.4568 -0.0508 -0.8881 +vn -0.2797 -0.5245 -0.8042 +vn 0.2797 -0.5245 -0.8042 +vn -0.0213 -0.5546 -0.8319 +vn 0.0487 -0.6815 -0.7302 +vn 0.3778 -0.6342 -0.6746 +vn -0.3378 -0.5221 -0.7831 +vn 0.4988 -0.5300 -0.6858 +vn -0.4988 -0.5300 -0.6858 +vn 0.5425 0.3391 -0.7686 +vn -0.5425 0.3391 -0.7686 +vn 0.8305 0.0615 -0.5536 +vn -0.8305 0.0615 -0.5536 +vn 0.7814 -0.1116 -0.6140 +vn -0.7814 -0.1116 -0.6140 +vn -0.4338 -0.8888 0.1481 +vn 0.4338 -0.8888 0.1481 +vn -0.8515 -0.3744 0.3670 +vn 0.8515 -0.3744 0.3670 +vn -0.2664 -0.8710 0.4127 +vn 0.2197 -0.8626 0.4557 +vn 0.5932 -0.7445 0.3063 +vn -0.5914 -0.7489 0.2991 +vn 0.3714 -0.8685 0.3284 +vn -0.3653 -0.8833 0.2938 +vn 0.2901 -0.9141 0.2833 +vn -0.2901 -0.9141 0.2833 +vn 0.8873 -0.1343 0.4412 +vn -0.7964 -0.1323 0.5901 +vn 0.5108 0.6649 0.5450 +vn -0.5108 0.6649 0.5450 +vn 0.3695 0.8566 0.3601 +vn -0.3695 0.8566 0.3601 +vn 0.3617 0.3858 0.8487 +vn -0.1649 0.6644 0.7289 +vn 0.1952 0.0976 0.9759 +vn -0.3011 0.0125 0.9535 +vn -0.0107 0.5633 0.8262 +vn -0.2562 0.3112 0.9152 +vn 0.1533 0.9649 0.2134 +vn -0.1533 0.9649 0.2134 +vn 0.1260 0.9624 0.2406 +vn -0.1260 0.9624 0.2406 +vn 0.9396 -0.1573 0.3041 +vn -0.9396 -0.1573 0.3041 +vn 0.9278 -0.1838 0.3246 +vn -0.9278 -0.1838 0.3246 +vn 0.2192 -0.0766 0.9727 +vn -0.2192 -0.0766 0.9727 +vn 0.1211 0.0530 0.9912 +vn 0.1497 0.3635 0.9195 +vn 0.9094 -0.1371 0.3927 +vn -0.3706 0.6780 0.6349 +vn 0.9202 -0.1355 0.3672 +vn -0.9202 -0.1355 0.3672 +vn 0.9173 -0.3440 0.2007 +vn -0.9457 -0.2673 0.1850 +vn 0.9004 -0.3642 0.2380 +vn -0.9337 -0.2813 0.2215 +vn 0.8945 -0.4337 -0.1084 +vn -0.9501 -0.2455 0.1922 +vn 0.1596 0.9577 0.2394 +vn -0.1835 0.7864 0.5898 +vn 0.3693 0.4712 0.8010 +vn -0.3727 0.4759 0.7966 +vn 0.2986 0.8236 0.4821 +vn -0.3263 0.8342 0.4446 +vn 0.2995 0.9442 0.1368 +vn -0.2995 0.9442 0.1368 +vn 0.3287 0.9163 0.2291 +vn -0.3287 0.9163 0.2291 +vn 0.8305 -0.3333 0.4463 +vn -0.8642 0.4737 -0.1696 +vn 0.9166 0.3740 -0.1414 +vn -0.9166 0.3740 -0.1414 +vn 0.2950 0.0454 0.9544 +vn -0.4189 0.2265 0.8793 +vn 0.1272 -0.9658 -0.2260 +vn -0.1119 -0.9626 -0.2468 +vn 0.1320 -0.9750 0.1788 +vn -0.1320 -0.9750 0.1788 +vn 0.3878 -0.6192 0.6828 +vn -0.3878 -0.6192 0.6828 +vn 0.4951 -0.8618 0.1100 +vn -0.4951 -0.8618 0.1100 +vn 0.2561 -0.6447 -0.7202 +vn -0.2561 -0.6447 -0.7202 +vn 0.5966 -0.7888 -0.1479 +vn -0.5966 -0.7888 -0.1479 +vn 0.7125 -0.6755 0.1900 +vn -0.7125 -0.6755 0.1900 +vn 0.7104 -0.1364 0.6904 +vn -0.6304 -0.2517 0.7343 +vn 0.6823 -0.2318 0.6933 +vn -0.6823 -0.2318 0.6933 +vn 0.6574 -0.7254 0.2040 +vn -0.6574 -0.7254 0.2040 +vn 0.7289 -0.6729 -0.1262 +vn -0.7289 -0.6729 -0.1262 +vn 0.7791 -0.4074 -0.4764 +vn -0.7791 -0.4074 -0.4764 +vn 0.3669 -0.8840 0.2898 +vn -0.3238 -0.9434 0.0720 +vn 0.2854 -0.6237 -0.7277 +vn -0.1548 -0.5080 -0.8473 +vn -0.1702 -0.1097 0.9793 +vn 0.1782 -0.0891 0.9800 +vn 0.2925 -0.5674 -0.7697 +vn -0.2925 -0.5674 -0.7697 +vn -0.1616 -0.1847 -0.9694 +vn 0.1616 -0.1847 -0.9694 +vn 0.8681 -0.0893 0.4883 +vn -0.9340 -0.2255 -0.2773 +vn 0.9276 -0.0762 -0.3657 +vn -0.9276 -0.0762 -0.3657 +vn 0.9750 -0.2169 -0.0490 +vn -0.9750 -0.2169 -0.0490 +vn 0.9817 0.0304 0.1882 +vn -0.9956 -0.0893 0.0288 +vn 0.7466 0.6646 -0.0285 +vn -0.6374 0.7651 -0.0915 +vn 0.3723 0.9243 -0.0847 +vn -0.3720 0.9244 -0.0845 +vn 0.3986 0.8754 -0.2734 +vn -0.3986 0.8754 -0.2734 +vn 0.6328 0.7642 -0.1247 +vn -0.6328 0.7642 -0.1247 +vn 0.7325 0.6368 -0.2407 +vn -0.7325 0.6368 -0.2407 +vn 0.2637 0.4499 -0.8533 +vn -0.2637 0.4499 -0.8533 +vn 0.5881 0.3070 0.7483 +vn -0.5236 0.3290 0.7859 +vn 0.4694 0.2400 0.8498 +vn -0.5396 0.3343 0.7727 +vn 0.4463 0.8452 0.2941 +vn -0.2144 0.8341 0.5082 +vn 0.6973 0.6610 0.2771 +vn -0.7365 0.6154 0.2808 +vn 0.4972 0.4408 0.7473 +vn -0.4972 0.4408 0.7473 +vn 0.3691 -0.2855 -0.8844 +vn -0.3244 -0.4867 -0.8111 +vn 0.4467 -0.0975 -0.8894 +vn -0.4467 -0.0975 -0.8894 +vn 0.3188 -0.1993 -0.9266 +vn -0.1817 0.0079 -0.9833 +vn 0.2076 0.0836 -0.9746 +vn -0.2925 0.0758 -0.9533 +vn 0.3398 -0.0824 -0.9369 +vn -0.5847 0.2198 -0.7809 +vn 0.5957 0.3850 -0.7049 +vn -0.5957 0.3850 -0.7049 +vn 0.4843 -0.5580 -0.6738 +vn -0.4843 -0.5580 -0.6738 +vn -0.2675 -0.8318 -0.4864 +vn 0.2675 -0.8318 -0.4864 +vn -0.8576 -0.2223 -0.4637 +vn 0.7885 -0.2366 -0.5677 +vn -0.5257 0.3579 -0.7717 +vn 0.5242 0.3548 -0.7742 +vn 0.4663 0.5991 -0.6509 +vn -0.4390 0.5252 -0.7290 +vn 0.7104 0.4567 -0.5356 +vn -0.7104 0.4567 -0.5356 +vn 0.7507 0.6131 0.2461 +vn -0.6302 0.7658 -0.1282 +vn -0.1788 -0.2923 -0.9395 +vn 0.2175 -0.2733 -0.9370 +vn 0.9042 0.3578 0.2332 +vn -0.9042 0.3578 0.2332 +vn 0.0400 -0.3399 -0.9396 +vn -0.0400 -0.3399 -0.9396 +vn 0.2734 -0.9064 -0.3221 +vn -0.2734 -0.9064 -0.3221 +vn 0.4480 0.4480 -0.7737 +vn -0.7177 -0.1689 -0.6755 +vn 0.5534 0.5534 -0.6225 +vn -0.9008 0.4075 -0.1501 +vn 0.5724 0.3122 -0.7582 +vn -0.5815 0.5217 -0.6243 +vn 0.5597 0.5533 -0.6169 +vn -0.6138 0.2571 -0.7465 +vn 0.9551 0.1636 0.2470 +vn -0.1712 0.0934 -0.9808 +vn 0.9227 0.3765 0.0825 +vn -0.8717 0.4446 0.2063 +vn 0.9972 0.0181 0.0725 +vn -0.9972 0.0181 0.0725 +vn 0.6895 0.6644 -0.2883 +vn -0.6895 0.6644 -0.2883 +vn 0.7815 0.6176 -0.0882 +vn -0.7930 0.5947 -0.1322 +vn 0.7022 0.7022 -0.1170 +vn -0.7022 0.7022 -0.1170 +vn 0.1240 -0.9921 -0.0207 +vn -0.2408 -0.9631 0.1204 +vn 0.9435 -0.3145 -0.1048 +vn -0.9251 -0.3469 -0.1542 +vn 0.6213 0.7767 -0.1036 +vn -0.6213 0.7767 -0.1036 +vn -0.0000 -1.0000 -0.0000 +vn 0.6197 0.6899 -0.3742 +vn -0.6197 0.6899 -0.3742 +vn 0.2752 0.8808 -0.3853 +vn -0.2752 0.8808 -0.3853 +vn -0.7929 0.5252 0.3089 +vn 0.7929 0.5252 0.3089 +vn -0.8096 -0.2429 0.5343 +vn 0.8538 -0.2328 0.4657 +vn -0.5621 -0.8231 0.0803 +vn 0.5433 -0.6985 0.4657 +vn -0.0071 -0.9899 -0.1414 +vn 0.1096 -0.9939 0.0157 +vn 0.1046 -0.0392 -0.9937 +vn -0.1738 -0.0097 -0.9847 +vn 0.2461 -0.0852 -0.9655 +vn -0.4134 -0.0413 -0.9096 +vn 0.3009 -0.0926 -0.9491 +vn -0.3009 -0.0926 -0.9491 +vn 0.2104 -0.0124 -0.9775 +vn -0.1220 -0.0458 -0.9915 +vn -0.0099 -0.3867 -0.9221 +vn 0.0099 -0.3867 -0.9221 +vn 0.3787 0.0364 -0.9248 +vn -0.4244 0.0320 -0.9049 +vn 0.2530 0.1897 -0.9487 +vn -0.2570 -0.0723 -0.9637 +vn -0.4870 -0.6088 -0.6262 +vn 0.2981 -0.7454 -0.5963 +vn 0.6693 -0.1802 -0.7208 +vn -0.6693 -0.1802 -0.7208 +vn 0.4388 0.2008 -0.8759 +vn -0.4723 0.1986 -0.8588 +vn 0.5786 0.1334 -0.8046 +vn -0.2975 0.4062 -0.8640 +vn 0.5002 -0.2833 -0.8182 +vn -0.5002 -0.2833 -0.8182 +vn 0.2980 -0.5802 -0.7580 +vn -0.2980 -0.5802 -0.7580 +vn 0.0929 0.9912 0.0944 +vn -0.0929 0.9912 0.0944 +vn 0.4688 0.8715 -0.1442 +vn -0.4688 0.8715 -0.1442 +vn 0.9309 0.2541 -0.2624 +vn -0.9264 0.2460 -0.2851 +vn 0.8465 -0.5291 0.0595 +vn -0.8267 -0.5627 0.0035 +vn -0.2511 -0.9439 0.2145 +vn 0.2146 -0.9243 0.3157 +vn -0.4841 -0.8743 0.0361 +vn 0.4196 -0.8851 0.2012 +vn -0.5256 0.0030 0.8507 +vn 0.5470 0.0144 0.8370 +vn -0.1466 -0.0104 0.9891 +vn 0.1466 -0.0104 0.9891 +vn 0.4046 -0.0266 0.9141 +vn -0.4046 -0.0266 0.9141 +vn -0.8073 -0.5901 -0.0041 +vn 0.7330 -0.6786 -0.0472 +vn 0.4200 0.2291 0.8781 +vn -0.4200 0.2291 0.8781 +vn -0.0687 0.9943 0.0818 +vn 0.0687 0.9943 0.0818 +vn 0.6713 0.1971 -0.7145 +vn -0.6713 0.1971 -0.7145 +vn 0.8326 0.3017 -0.4646 +vn -0.8326 0.3017 -0.4646 +vn 0.4258 0.7967 -0.4290 +vn -0.4258 0.7967 -0.4290 +vn 0.3265 0.4954 -0.8050 +vn -0.3265 0.4954 -0.8050 +vn -0.0649 0.5714 -0.8181 +vn 0.0649 0.5714 -0.8181 +vn -0.2738 0.8315 -0.4834 +vn 0.2738 0.8315 -0.4834 +vn -0.7606 0.3400 -0.5531 +vn 0.7824 0.3294 -0.5285 +vn -0.4649 0.1958 -0.8634 +vn 0.4767 0.1907 -0.8581 +vn -0.4983 -0.1812 -0.8478 +vn 0.4983 -0.1812 -0.8478 +vn -0.7683 -0.3293 -0.5488 +vn 0.7656 -0.3223 -0.5568 +vn -0.2487 -0.8249 -0.5076 +vn 0.2560 -0.8073 -0.5317 +vn -0.1017 -0.5518 -0.8277 +vn 0.0821 -0.6023 -0.7940 +vn 0.3861 -0.5446 -0.7445 +vn -0.3329 -0.5231 -0.7846 +vn 0.4059 -0.7641 -0.5014 +vn -0.4246 -0.7711 -0.4745 +vn 0.8299 -0.2940 -0.4742 +vn -0.8251 -0.2968 -0.4808 +vn 0.6617 -0.2026 -0.7219 +vn -0.6888 -0.1868 -0.7005 +vn 0.7816 -0.3058 0.5437 +vn -0.8400 -0.3436 0.4200 +vn 0.2037 -0.8146 0.5431 +vn -0.2074 -0.8296 0.5185 +vn -0.4381 -0.7988 0.4123 +vn 0.4056 -0.7605 0.5070 +vn -0.7861 -0.3276 0.5241 +vn 0.8642 -0.3143 0.3928 +vn -0.8519 0.3408 0.3976 +vn 0.8519 0.3408 0.3976 +vn -0.4056 0.7605 0.5070 +vn 0.4056 0.7605 0.5070 +vn 0.2074 0.8296 0.5185 +vn -0.2074 0.8296 0.5185 +vn 0.8297 0.3734 0.4149 +vn -0.8297 0.3734 0.4149 +vn 0.1054 0.8433 -0.5270 +vn -0.1367 0.8748 -0.4648 +vn 0.1916 0.8620 -0.4693 +vn -0.2303 0.8656 -0.4447 +vn 0.5959 0.4256 -0.6810 +vn -0.5959 0.4256 -0.6810 +vn 0.7563 0.0299 -0.6535 +vn -0.7563 0.0299 -0.6535 +vn 0.8069 -0.0689 -0.5866 +vn -0.8069 -0.0689 -0.5866 +vn 0.2334 0.7779 -0.5834 +vn -0.2334 0.7779 -0.5834 +vn 0.4177 0.5751 -0.7034 +vn -0.3557 0.7290 -0.5848 +vn 0.6872 0.4191 -0.5934 +vn -0.6872 0.4191 -0.5934 +vn 0.5537 0.2978 -0.7777 +vn -0.7028 0.3915 -0.5939 +vn 0.8227 -0.3606 -0.4395 +vn -0.3127 -0.3425 -0.8860 +vn 0.5041 -0.6448 -0.5745 +vn -0.5091 -0.6482 -0.5663 +vn 0.6155 -0.4924 -0.6155 +vn -0.6155 -0.4924 -0.6155 +vn -0.0371 -0.6685 -0.7428 +vn 0.0486 -0.6560 -0.7532 +vn -0.7386 -0.3768 -0.5590 +vn 0.7104 -0.2715 -0.6494 +vn -0.5774 -0.5774 -0.5774 +vn 0.6013 -0.5262 -0.6013 +vn 0.5364 0.3230 -0.7797 +vn -0.5070 0.6281 -0.5903 +vn 0.2181 0.4685 -0.8561 +vn -0.2181 0.4685 -0.8561 +vn -0.1073 0.5010 -0.8588 +vn 0.0348 0.5792 -0.8144 +vn -0.0770 0.5759 -0.8139 +vn 0.0899 0.7843 -0.6138 +vn 0.0279 0.8645 -0.5019 +vn -0.0547 0.1695 -0.9840 +vn 0.1687 0.3128 -0.9347 +vn -0.4260 0.0609 -0.9027 +vn 0.4350 0.1812 -0.8820 +vn -0.3352 0.1828 -0.9243 +vn 0.3223 0.2762 -0.9054 +vn -0.3579 0.3068 -0.8819 +vn 0.4284 -0.1494 -0.8911 +vn -0.4284 -0.1494 -0.8911 +vn -0.0317 0.1899 -0.9813 +vn 0.0317 0.1899 -0.9813 +vn 0.1854 0.4956 -0.8485 +vn -0.6819 0.2915 -0.6709 +vn 0.2623 0.3498 -0.8994 +vn -0.2623 0.3498 -0.8994 +vn 0.0585 0.0845 -0.9947 +vn 0.0066 0.2316 -0.9728 +vn -0.0136 0.6507 -0.7592 +vn 0.0136 0.6507 -0.7592 +vn 0.2404 0.5476 -0.8014 +vn -0.2404 0.5476 -0.8014 +vn 0.3143 0.3928 -0.8642 +vn -0.3128 0.1662 -0.9352 +vn 0.2821 0.0164 -0.9592 +vn -0.2821 0.0164 -0.9592 +vn 0.3273 0.1432 -0.9340 +vn -0.3273 0.1432 -0.9340 +vn 0.0232 -0.0511 -0.9984 +vn 0.0043 0.0651 -0.9979 +vn 0.7826 0.6087 0.1304 +vn -0.7826 0.6087 0.1304 +vn 0.9635 -0.2141 0.1606 +vn -0.9256 -0.2492 0.2848 +vn 0.1018 -0.9165 0.3869 +vn -0.0693 -0.9004 0.4294 +vn -0.6905 -0.5492 -0.4708 +vn 0.4319 0.8639 -0.2592 +vn -0.4071 0.8956 -0.1791 +vn -0.6667 -0.6667 -0.3333 +vn 0.6667 -0.6667 -0.3333 +vn 0.1348 -0.8086 -0.5727 +vn -0.1348 -0.8086 -0.5727 +vn 0.7639 -0.2971 -0.5729 +vn -0.7532 -0.2870 -0.5918 +vn 0.4116 0.8575 -0.3087 +vn -0.4116 0.8575 -0.3087 +vn 0.0375 -0.2247 -0.9737 +vn -0.0502 -0.2343 -0.9709 +vn 0.1304 0.2609 -0.9565 +vn -0.1304 0.2609 -0.9565 +vn -0.0631 0.8206 -0.5681 +vn 0.0631 0.8206 -0.5681 +vn 0.7325 -0.2817 -0.6198 +vn -0.7325 -0.2817 -0.6198 +vn 0.3319 -0.0738 -0.9404 +vn -0.5460 0.4310 -0.7184 +vn 0.2815 -0.0662 -0.9573 +vn -0.3231 -0.0311 -0.9459 +vn 0.8753 -0.2059 -0.4376 +vn -0.7357 -0.3910 -0.5531 +vn 0.8973 -0.1994 -0.3938 +vn -0.8480 -0.3180 -0.4240 +vn 0.9586 -0.0664 -0.2767 +vn -0.9586 -0.0664 -0.2767 +vn 0.2524 0.8655 -0.4327 +vn -0.1783 0.4161 -0.8917 +vn -0.1751 0.2043 -0.9631 +vn 0.1751 0.2043 -0.9631 +vn -0.1219 0.1829 -0.9755 +vn 0.1219 0.1829 -0.9755 +vn -0.1562 -0.3123 -0.9370 +vn 0.1562 -0.3123 -0.9370 +vn -0.7238 -0.6857 -0.0762 +vn 0.7238 -0.6857 -0.0762 +vn 0.0478 0.2870 -0.9567 +vn -0.0478 0.2870 -0.9567 +vn -0.5488 0.3293 -0.7683 +vn 0.5488 0.3293 -0.7683 +vn -0.4945 0.1130 -0.8618 +vn 0.4945 0.1130 -0.8618 +vn -0.2595 -0.1038 -0.9601 +vn 0.1717 0.0090 -0.9851 +vn -0.6684 0.4595 -0.5849 +vn 0.4332 0.4874 -0.7581 +vn -0.1156 0.6359 -0.7631 +vn 0.1156 0.6359 -0.7631 +vn 0.4242 0.6211 -0.6590 +vn -0.4242 0.6211 -0.6590 +vn 0.4767 0.3557 -0.8039 +vn -0.4767 0.3557 -0.8039 +vn 0.5871 0.0839 -0.8052 +vn -0.5871 0.0839 -0.8052 +vn 0.5774 -0.1155 -0.8083 +vn -0.5657 -0.1197 -0.8159 +vn 0.5214 -0.6574 -0.5441 +vn -0.4082 -0.4082 -0.8165 +vn 0.3358 -0.3478 -0.8754 +vn -0.3358 -0.3478 -0.8754 +vn 0.1452 -0.3774 -0.9146 +vn -0.1452 -0.3774 -0.9146 +vn 0.0301 -0.2306 -0.9726 +vn -0.0301 -0.2306 -0.9726 +vn 0.4475 0.4699 -0.7608 +vn -0.4475 0.4699 -0.7608 +vn 0.2627 0.2252 -0.9382 +vn -0.2627 0.2252 -0.9382 +vn -0.0631 0.3156 -0.9468 +vn 0.3766 0.8339 -0.4035 +vn -0.2016 0.9071 -0.3696 +vn -0.0823 0.7822 -0.6175 +vn -0.3356 0.2397 -0.9110 +vn 0.3356 0.2397 -0.9110 +vn -0.4568 -0.0508 -0.8881 +vn 0.2692 0.0577 -0.9614 +vn -0.0247 -0.4072 -0.9130 +vn 0.0247 -0.4072 -0.9130 +vn -0.0487 -0.6815 -0.7302 +vn 0.0213 -0.5546 -0.8319 +vn 0.3378 -0.5221 -0.7831 +vn -0.3778 -0.6342 -0.6746 +vn 0.7895 0.3158 -0.5263 +vn -0.7895 0.3158 -0.5263 +vn 0.8070 0.0807 -0.5851 +vn -0.8070 0.0807 -0.5851 +vn 0.7868 -0.1210 -0.6052 +vn -0.7868 -0.1210 -0.6052 +vn -0.6357 -0.6811 0.3633 +vn 0.6357 -0.6811 0.3633 +vn -0.8507 -0.3650 0.3783 +vn 0.8507 -0.3650 0.3783 +vn -0.2197 -0.8626 0.4557 +vn 0.2664 -0.8710 0.4127 +vn 0.5914 -0.7489 0.2991 +vn -0.5932 -0.7445 0.3063 +vn 0.3653 -0.8833 0.2938 +vn -0.3714 -0.8685 0.3284 +vn 0.2760 -0.9159 0.2915 +vn -0.2760 -0.9159 0.2915 +vn 0.7964 -0.1323 0.5901 +vn -0.8873 -0.1343 0.4412 +vn 0.5442 0.7524 0.3712 +vn -0.5442 0.7524 0.3712 +vn 0.4027 0.7323 0.5492 +vn -0.4027 0.7323 0.5492 +vn 0.1649 0.6644 0.7289 +vn -0.3617 0.3858 0.8487 +vn 0.3011 0.0125 0.9535 +vn -0.1952 0.0976 0.9759 +vn 0.2562 0.3112 0.9152 +vn 0.0107 0.5633 0.8262 +vn 0.0779 0.9948 0.0663 +vn -0.0779 0.9948 0.0663 +vn 0.1095 0.9718 0.2089 +vn -0.1094 0.9718 0.2089 +vn 0.8150 0.5621 0.1405 +vn -0.8150 0.5621 0.1405 +vn 0.9358 -0.1396 0.3236 +vn -0.9358 -0.1396 0.3236 +vn 0.1132 0.0274 0.9932 +vn -0.1132 0.0274 0.9932 +vn -0.1497 0.3635 0.9195 +vn -0.1211 0.0530 0.9912 +vn 0.3706 0.6780 0.6349 +vn -0.9094 -0.1371 0.3927 +vn 0.9193 -0.1393 0.3682 +vn -0.9193 -0.1393 0.3682 +vn 0.9457 -0.2673 0.1850 +vn -0.9173 -0.3440 0.2007 +vn 0.9337 -0.2813 0.2215 +vn -0.9004 -0.3642 0.2380 +vn 0.9501 -0.2455 0.1922 +vn -0.8945 -0.4337 -0.1084 +vn 0.1835 0.7864 0.5898 +vn -0.1596 0.9577 0.2394 +vn 0.3727 0.4759 0.7966 +vn -0.3693 0.4712 0.8010 +vn 0.3263 0.8342 0.4446 +vn -0.2986 0.8236 0.4821 +vn 0.2620 0.9574 0.1217 +vn -0.2620 0.9574 0.1217 +vn 0.2996 0.9443 0.1362 +vn -0.2996 0.9443 0.1362 +vn 0.8642 0.4737 -0.1696 +vn -0.8305 -0.3333 0.4463 +vn 0.6869 0.6358 -0.3521 +vn -0.6869 0.6358 -0.3521 +vn 0.4189 0.2265 0.8793 +vn -0.2950 0.0454 0.9544 +vn 0.1119 -0.9626 -0.2468 +vn -0.1272 -0.9658 -0.2260 +vn 0.1208 -0.9734 0.1947 +vn -0.1208 -0.9734 0.1947 +vn 0.3140 -0.5711 0.7585 +vn -0.3140 -0.5711 0.7585 +vn 0.3231 -0.9288 0.1817 +vn -0.3231 -0.9288 0.1817 +vn 0.0452 -0.7955 -0.6043 +vn -0.0452 -0.7955 -0.6043 +vn 0.6144 -0.7696 -0.1738 +vn -0.6144 -0.7696 -0.1738 +vn 0.6935 -0.6857 0.2212 +vn -0.6935 -0.6857 0.2212 +vn 0.6304 -0.2517 0.7343 +vn -0.7104 -0.1364 0.6904 +vn 0.3179 -0.5704 0.7574 +vn -0.3179 -0.5704 0.7574 +vn 0.6289 -0.7624 0.1525 +vn -0.6289 -0.7624 0.1525 +vn 0.7088 -0.6833 -0.1752 +vn -0.7088 -0.6833 -0.1752 +vn 0.6885 -0.3830 -0.6158 +vn -0.6885 -0.3830 -0.6158 +vn 0.3238 -0.9434 0.0720 +vn -0.3669 -0.8840 0.2898 +vn 0.1548 -0.5080 -0.8473 +vn -0.2854 -0.6237 -0.7277 +vn -0.1782 -0.0891 0.9800 +vn 0.1702 -0.1097 0.9793 +vn -0.2638 -0.9462 0.1871 +vn 0.2638 -0.9462 0.1871 +vn 0.9340 -0.2255 -0.2773 +vn -0.8681 -0.0893 0.4883 +vn 0.9758 -0.1241 -0.1800 +vn -0.9758 -0.1241 -0.1800 +vn 0.9613 -0.1472 0.2330 +vn -0.9613 -0.1472 0.2330 +vn 0.9956 -0.0893 0.0288 +vn -0.9817 0.0304 0.1882 +vn 0.6374 0.7651 -0.0915 +vn -0.7466 0.6646 -0.0285 +vn 0.3720 0.9244 -0.0845 +vn -0.3723 0.9243 -0.0847 +vn 0.5281 0.8354 -0.1522 +vn -0.5281 0.8354 -0.1522 +vn 0.3070 0.5237 -0.7946 +vn -0.3070 0.5237 -0.7946 +vn 0.5236 0.3290 0.7859 +vn -0.5881 0.3070 0.7483 +vn 0.5396 0.3343 0.7727 +vn -0.4694 0.2400 0.8498 +vn 0.2144 0.8341 0.5082 +vn -0.4463 0.8452 0.2941 +vn 0.7365 0.6154 0.2808 +vn -0.6973 0.6610 0.2771 +vn 0.3244 -0.4867 -0.8111 +vn -0.3691 -0.2855 -0.8844 +vn 0.4649 -0.2593 -0.8465 +vn -0.4649 -0.2593 -0.8465 +vn 0.1817 0.0079 -0.9833 +vn -0.3188 -0.1993 -0.9266 +vn 0.2925 0.0758 -0.9533 +vn -0.2076 0.0836 -0.9746 +vn 0.5847 0.2198 -0.7809 +vn -0.3398 -0.0824 -0.9369 +vn 0.6509 0.1939 -0.7340 +vn -0.6509 0.1939 -0.7340 +vn 0.4075 -0.7506 -0.5201 +vn -0.4075 -0.7506 -0.5201 +vn -0.2655 -0.8296 -0.4911 +vn 0.2655 -0.8296 -0.4911 +vn -0.7885 -0.2366 -0.5677 +vn 0.8576 -0.2223 -0.4637 +vn -0.5242 0.3548 -0.7742 +vn 0.5257 0.3579 -0.7717 +vn 0.4390 0.5252 -0.7290 +vn -0.4663 0.5991 -0.6509 +vn 0.6888 0.4428 -0.5740 +vn -0.6888 0.4428 -0.5740 +vn 0.6302 0.7658 -0.1282 +vn -0.7507 0.6131 0.2461 +vn -0.2175 -0.2733 -0.9370 +vn 0.1788 -0.2923 -0.9395 +vn 0.9046 0.3869 0.1792 +vn -0.9046 0.3869 0.1792 +vn 0.1782 0.0891 -0.9800 +vn -0.1782 0.0891 -0.9800 +vn -0.2335 -0.8972 -0.3749 +vn 0.2335 -0.8972 -0.3749 +vn 0.7177 -0.1689 -0.6755 +vn -0.4480 0.4480 -0.7737 +vn 0.5313 -0.5844 -0.6134 +vn -0.5313 -0.5844 -0.6134 +vn 0.9008 0.4075 -0.1501 +vn -0.5534 0.5534 -0.6225 +vn 0.5815 0.5217 -0.6243 +vn -0.5724 0.3122 -0.7582 +vn 0.6138 0.2571 -0.7465 +vn -0.5597 0.5533 -0.6169 +vn 0.1712 0.0934 -0.9808 +vn -0.9551 0.1636 0.2470 +vn 0.8717 0.4446 0.2063 +vn -0.9227 0.3765 0.0825 +vn 0.7661 0.6363 -0.0909 +vn -0.7661 0.6363 -0.0909 +vn 0.7930 0.5947 -0.1322 +vn -0.7815 0.6176 -0.0882 +vn 0.2408 -0.9631 0.1204 +vn -0.1240 -0.9921 -0.0207 +vn 0.9251 -0.3469 -0.1542 +vn -0.9435 -0.3145 -0.1048 +vn 0.7071 0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.0157 -0.9898 -0.1414 +vn 0.0157 -0.9898 -0.1414 +vn 0.6266 0.7211 -0.2956 +vn -0.6266 0.7211 -0.2956 +vn 0.2714 0.9022 -0.3353 +vn -0.2714 0.9022 -0.3353 +vn -0.8651 0.4853 0.1266 +vn 0.8651 0.4853 0.1266 +vn -0.8538 -0.2328 0.4657 +vn 0.8096 -0.2429 0.5343 +vn -0.5433 -0.6985 0.4657 +vn 0.5621 -0.8231 0.0803 +vn -0.1096 -0.9939 0.0157 +vn 0.0071 -0.9899 -0.1414 +vn 0.1738 -0.0097 -0.9847 +vn -0.1046 -0.0392 -0.9937 +vn 0.4134 -0.0413 -0.9096 +vn -0.2461 -0.0852 -0.9655 +vn 0.3228 0.0461 -0.9453 +vn -0.3228 0.0461 -0.9453 +vn 0.1220 -0.0458 -0.9915 +vn -0.2104 -0.0124 -0.9775 +vn 0.5679 -0.1916 -0.8005 +vn -0.5679 -0.1916 -0.8005 +vn 0.4244 0.0320 -0.9049 +vn -0.3787 0.0364 -0.9248 +vn 0.2570 -0.0723 -0.9637 +vn -0.2530 0.1897 -0.9487 +vn 0.1351 0.0225 -0.9906 +vn -0.1351 0.0225 -0.9906 +vn -0.2981 -0.7454 -0.5963 +vn 0.4870 -0.6088 -0.6262 +vn 0.5571 0.1486 -0.8171 +vn -0.5571 0.1486 -0.8171 +vn 0.4723 0.1986 -0.8588 +vn -0.4388 0.2008 -0.8759 +vn 0.2975 0.4062 -0.8640 +vn -0.5786 0.1334 -0.8046 +vn 0.5771 -0.2164 -0.7875 +vn -0.5771 -0.2164 -0.7875 +vn 0.0931 0.9932 0.0692 +vn -0.0931 0.9932 0.0692 +vn 0.5161 0.8527 0.0812 +vn -0.5161 0.8527 0.0812 +vn 0.9264 0.2460 -0.2851 +vn -0.9309 0.2541 -0.2624 +vn 0.8267 -0.5627 0.0035 +vn -0.8465 -0.5291 0.0595 +vn -0.2146 -0.9243 0.3157 +vn 0.2511 -0.9439 0.2145 +vn -0.4196 -0.8851 0.2012 +vn 0.4841 -0.8743 0.0361 +vn -0.5470 0.0144 0.8370 +vn 0.5256 0.0030 0.8507 +vn -0.2556 0.0749 0.9639 +vn 0.2556 0.0749 0.9639 +vn -0.7330 -0.6786 -0.0472 +vn 0.8073 -0.5901 -0.0041 +vn 0.6844 0.1711 0.7088 +vn -0.6844 0.1711 0.7088 +vn -0.3604 0.8283 0.4290 +vn 0.3604 0.8283 0.4290 +s 0 +f 47//1 3//1 45//1 +f 4//2 48//2 46//2 +f 45//3 5//3 43//3 +f 6//4 46//4 44//4 +f 3//5 7//5 5//5 +f 8//6 4//6 6//6 +f 1//7 9//7 3//7 +f 10//8 2//8 4//8 +f 11//9 15//9 9//9 +f 16//10 12//10 10//10 +f 9//11 17//11 7//11 +f 18//12 10//12 8//12 +f 21//13 17//13 15//13 +f 22//14 18//14 20//14 +f 23//15 15//15 13//15 +f 24//16 16//16 22//16 +f 23//17 27//17 21//17 +f 28//18 24//18 22//18 +f 27//19 19//19 21//19 +f 28//20 20//20 30//20 +f 33//21 29//21 27//21 +f 34//22 30//22 32//22 +f 35//23 27//23 25//23 +f 36//24 28//24 34//24 +f 37//25 33//25 35//25 +f 38//26 34//26 40//26 +f 39//27 31//27 33//27 +f 40//28 32//28 42//28 +f 45//29 41//29 39//29 +f 46//30 42//30 44//30 +f 47//31 39//31 37//31 +f 48//32 40//32 46//32 +f 37//33 49//33 47//33 +f 38//34 50//34 52//34 +f 35//35 51//35 37//35 +f 36//36 52//36 54//36 +f 25//37 53//37 35//37 +f 26//38 54//38 56//38 +f 23//39 55//39 25//39 +f 24//40 56//40 58//40 +f 23//41 59//41 57//41 +f 60//42 24//42 58//42 +f 13//43 63//43 59//43 +f 64//44 14//44 60//44 +f 11//45 65//45 63//45 +f 66//46 12//46 64//46 +f 1//47 49//47 65//47 +f 50//48 2//48 66//48 +f 61//49 65//49 49//49 +f 50//50 66//50 62//50 +f 63//51 65//51 61//51 +f 62//52 66//52 64//52 +f 61//53 59//53 63//53 +f 64//54 60//54 62//54 +f 61//55 57//55 59//55 +f 60//56 58//56 62//56 +f 61//57 55//57 57//57 +f 58//58 56//58 62//58 +f 61//59 53//59 55//59 +f 56//60 54//60 62//60 +f 61//61 51//61 53//61 +f 54//62 52//62 62//62 +f 61//63 49//63 51//63 +f 52//64 50//64 62//64 +f 174//65 91//65 89//65 +f 175//66 91//66 176//66 +f 172//67 89//67 87//67 +f 173//68 90//68 175//68 +f 85//69 172//69 87//69 +f 173//70 86//70 88//70 +f 83//71 170//71 85//71 +f 171//72 84//72 86//72 +f 81//73 168//73 83//73 +f 169//74 82//74 84//74 +f 79//75 146//75 164//75 +f 147//76 80//76 165//76 +f 94//77 146//77 92//77 +f 95//78 147//78 149//78 +f 94//79 150//79 148//79 +f 151//80 95//80 149//80 +f 98//81 150//81 96//81 +f 99//82 151//82 153//82 +f 100//83 152//83 98//83 +f 101//84 153//84 155//84 +f 102//85 154//85 100//85 +f 103//86 155//86 157//86 +f 102//87 158//87 156//87 +f 159//88 103//88 157//88 +f 106//89 158//89 104//89 +f 107//90 159//90 161//90 +f 108//91 160//91 106//91 +f 109//92 161//92 163//92 +f 67//93 162//93 108//93 +f 67//94 163//94 68//94 +f 128//95 162//95 110//95 +f 129//96 163//96 161//96 +f 128//97 158//97 160//97 +f 159//98 129//98 161//98 +f 156//99 179//99 126//99 +f 157//100 180//100 159//100 +f 154//101 126//101 124//101 +f 155//102 127//102 157//102 +f 152//103 124//103 122//103 +f 153//104 125//104 155//104 +f 150//105 122//105 120//105 +f 151//106 123//106 153//106 +f 148//107 120//107 118//107 +f 149//108 121//108 151//108 +f 146//109 118//109 116//109 +f 147//110 119//110 149//110 +f 114//111 146//111 116//111 +f 147//111 115//111 117//111 +f 114//112 177//112 164//112 +f 177//113 115//113 165//113 +f 162//114 112//114 110//114 +f 163//115 113//115 68//115 +f 112//116 178//116 183//116 +f 178//117 113//117 184//117 +f 181//118 178//118 177//118 +f 182//119 178//119 184//119 +f 135//120 176//120 174//120 +f 176//121 136//121 175//121 +f 133//122 174//122 172//122 +f 175//123 134//123 173//123 +f 133//124 170//124 131//124 +f 134//125 171//125 173//125 +f 166//126 185//126 168//126 +f 186//127 167//127 169//127 +f 131//128 168//128 185//128 +f 169//129 132//129 186//129 +f 190//130 187//130 144//130 +f 190//131 188//131 189//131 +f 187//132 69//132 185//132 +f 188//133 69//133 189//133 +f 131//134 69//134 130//134 +f 132//134 69//134 186//134 +f 142//135 191//135 144//135 +f 192//136 143//136 145//136 +f 195//137 142//137 140//137 +f 196//138 143//138 194//138 +f 197//139 140//139 139//139 +f 198//140 141//140 196//140 +f 71//141 139//141 138//141 +f 71//142 139//142 198//142 +f 144//143 70//143 190//143 +f 145//144 70//144 192//144 +f 191//145 208//145 70//145 +f 192//146 208//146 207//146 +f 71//147 200//147 197//147 +f 201//148 71//148 198//148 +f 197//149 202//149 195//149 +f 203//150 198//150 196//150 +f 202//151 193//151 195//151 +f 203//152 194//152 205//152 +f 193//153 206//153 191//153 +f 207//154 194//154 192//154 +f 204//155 200//155 199//155 +f 205//156 201//156 203//156 +f 199//157 206//157 204//157 +f 207//158 199//158 205//158 +f 139//159 164//159 177//159 +f 165//160 139//160 177//160 +f 140//161 211//161 164//161 +f 212//162 141//162 165//162 +f 144//163 211//163 142//163 +f 145//164 212//164 214//164 +f 187//165 213//165 144//165 +f 188//166 214//166 167//166 +f 209//167 166//167 81//167 +f 210//168 167//168 214//168 +f 215//169 213//169 209//169 +f 216//170 214//170 212//170 +f 79//171 211//171 215//171 +f 212//172 80//172 216//172 +f 130//173 222//173 131//173 +f 130//174 223//174 72//174 +f 133//175 222//175 220//175 +f 223//176 134//176 221//176 +f 135//177 220//177 218//177 +f 221//178 136//178 219//178 +f 137//134 218//134 217//134 +f 219//134 137//134 217//134 +f 218//179 231//179 217//179 +f 219//180 231//180 230//180 +f 218//181 227//181 229//181 +f 228//182 219//182 230//182 +f 220//141 225//141 227//141 +f 226//183 221//183 228//183 +f 72//184 225//184 222//184 +f 72//185 226//185 224//185 +f 224//186 229//186 225//186 +f 230//187 224//187 226//187 +f 225//188 229//188 227//188 +f 228//189 230//189 226//189 +f 183//190 234//190 232//190 +f 235//191 184//191 233//191 +f 112//192 232//192 254//192 +f 233//193 113//193 255//193 +f 112//194 256//194 110//194 +f 113//195 257//195 255//195 +f 114//196 234//196 181//196 +f 115//197 235//197 253//197 +f 114//198 250//198 252//198 +f 251//199 115//199 253//199 +f 116//200 248//200 250//200 +f 249//201 117//201 251//201 +f 118//202 246//202 248//202 +f 247//203 119//203 249//203 +f 120//204 244//204 246//204 +f 245//205 121//205 247//205 +f 124//206 244//206 122//206 +f 125//207 245//207 243//207 +f 126//208 242//208 124//208 +f 127//209 243//209 241//209 +f 126//210 236//210 240//210 +f 237//211 127//211 241//211 +f 179//212 238//212 236//212 +f 239//213 180//213 237//213 +f 128//214 256//214 238//214 +f 257//215 129//215 239//215 +f 238//216 258//216 276//216 +f 259//217 239//217 277//217 +f 236//218 276//218 278//218 +f 277//219 237//219 279//219 +f 236//220 274//220 240//220 +f 237//221 275//221 279//221 +f 240//222 272//222 242//222 +f 241//223 273//223 275//223 +f 244//224 272//224 270//224 +f 273//225 245//225 271//225 +f 244//226 268//226 246//226 +f 245//227 269//227 271//227 +f 248//228 268//228 266//228 +f 269//229 249//229 267//229 +f 248//230 264//230 250//230 +f 249//231 265//231 267//231 +f 250//232 262//232 252//232 +f 251//233 263//233 265//233 +f 234//234 262//234 280//234 +f 263//235 235//235 281//235 +f 256//236 260//236 258//236 +f 261//237 257//237 259//237 +f 254//238 282//238 260//238 +f 283//239 255//239 261//239 +f 232//240 280//240 282//240 +f 281//241 233//241 283//241 +f 67//242 284//242 73//242 +f 285//243 67//243 73//243 +f 108//244 286//244 284//244 +f 287//245 109//245 285//245 +f 104//246 286//246 106//246 +f 105//247 287//247 289//247 +f 102//248 288//248 104//248 +f 103//249 289//249 291//249 +f 100//250 290//250 102//250 +f 101//251 291//251 293//251 +f 100//252 294//252 292//252 +f 295//253 101//253 293//253 +f 96//254 294//254 98//254 +f 97//255 295//255 297//255 +f 96//256 298//256 296//256 +f 299//257 97//257 297//257 +f 94//258 300//258 298//258 +f 301//259 95//259 299//259 +f 309//260 338//260 308//260 +f 309//261 339//261 329//261 +f 308//262 336//262 307//262 +f 308//263 337//263 339//263 +f 307//264 340//264 306//264 +f 307//265 341//265 337//265 +f 89//266 306//266 340//266 +f 306//267 90//267 341//267 +f 87//268 340//268 334//268 +f 341//269 88//269 335//269 +f 85//270 334//270 330//270 +f 335//271 86//271 331//271 +f 83//272 330//272 332//272 +f 331//273 84//273 333//273 +f 330//274 338//274 332//274 +f 339//275 331//275 333//275 +f 334//276 336//276 330//276 +f 335//277 337//277 341//277 +f 332//278 328//278 326//278 +f 333//279 329//279 339//279 +f 81//280 332//280 326//280 +f 333//281 82//281 327//281 +f 342//282 215//282 209//282 +f 343//283 216//283 345//283 +f 326//284 209//284 81//284 +f 327//285 210//285 343//285 +f 215//286 346//286 79//286 +f 216//287 347//287 345//287 +f 346//288 92//288 79//288 +f 347//289 93//289 301//289 +f 324//290 304//290 77//290 +f 325//291 304//291 353//291 +f 352//292 78//292 304//292 +f 353//293 78//293 351//293 +f 78//294 348//294 305//294 +f 349//295 78//295 305//295 +f 305//296 328//296 309//296 +f 329//297 305//297 309//297 +f 328//298 342//298 326//298 +f 329//299 343//299 349//299 +f 296//300 318//300 310//300 +f 319//301 297//301 311//301 +f 316//302 77//302 76//302 +f 317//303 77//303 325//303 +f 358//304 303//304 302//304 +f 359//305 303//305 357//305 +f 303//306 354//306 75//306 +f 355//307 303//307 75//307 +f 75//308 316//308 76//308 +f 317//309 75//309 76//309 +f 292//310 362//310 364//310 +f 363//311 293//311 365//311 +f 364//312 368//312 366//312 +f 369//313 365//313 367//313 +f 366//314 370//314 372//314 +f 371//315 367//315 373//315 +f 372//316 376//316 374//316 +f 377//317 373//317 375//317 +f 378//318 376//318 314//318 +f 379//319 377//319 375//319 +f 316//320 374//320 378//320 +f 375//321 317//321 379//321 +f 354//322 372//322 374//322 +f 373//323 355//323 375//323 +f 356//324 366//324 372//324 +f 367//325 357//325 373//325 +f 358//326 364//326 366//326 +f 365//327 359//327 367//327 +f 292//328 360//328 290//328 +f 293//329 361//329 365//329 +f 360//330 302//330 74//330 +f 361//331 302//331 359//331 +f 286//332 290//332 284//332 +f 287//333 291//333 289//333 +f 284//334 360//334 74//334 +f 361//335 285//335 74//335 +f 73//336 284//336 74//336 +f 74//337 285//337 73//337 +f 296//338 362//338 294//338 +f 297//339 363//339 311//339 +f 310//340 368//340 362//340 +f 369//341 311//341 363//341 +f 312//342 370//342 368//342 +f 371//343 313//343 369//343 +f 376//344 382//344 314//344 +f 377//345 383//345 371//345 +f 350//346 384//346 348//346 +f 351//347 385//347 387//347 +f 384//348 320//348 318//348 +f 385//349 321//349 387//349 +f 298//350 384//350 318//350 +f 385//351 299//351 319//351 +f 300//352 342//352 384//352 +f 343//353 301//353 385//353 +f 342//354 348//354 384//354 +f 385//355 349//355 343//355 +f 300//356 346//356 344//356 +f 345//357 347//357 301//357 +f 322//358 378//358 314//358 +f 323//359 379//359 381//359 +f 378//360 324//360 316//360 +f 379//361 325//361 381//361 +f 386//362 322//362 320//362 +f 387//363 323//363 381//363 +f 352//364 386//364 350//364 +f 353//365 387//365 381//365 +f 324//366 380//366 352//366 +f 353//367 381//367 325//367 +f 388//368 402//368 400//368 +f 389//369 403//369 415//369 +f 400//370 404//370 398//370 +f 405//371 401//371 399//371 +f 404//372 396//372 398//372 +f 405//373 397//373 407//373 +f 406//374 394//374 396//374 +f 407//375 395//375 409//375 +f 408//376 392//376 394//376 +f 409//377 393//377 411//377 +f 392//378 412//378 390//378 +f 413//379 393//379 391//379 +f 410//380 418//380 412//380 +f 419//381 411//381 413//381 +f 408//382 420//382 410//382 +f 421//383 409//383 411//383 +f 424//384 408//384 406//384 +f 425//385 409//385 423//385 +f 426//386 406//386 404//386 +f 427//387 407//387 425//387 +f 428//388 404//388 402//388 +f 429//389 405//389 427//389 +f 402//390 416//390 428//390 +f 417//391 403//391 429//391 +f 320//392 442//392 318//392 +f 321//393 443//393 445//393 +f 390//394 444//394 320//394 +f 391//395 445//395 413//395 +f 310//396 442//396 312//396 +f 443//397 311//397 313//397 +f 382//398 414//398 388//398 +f 415//399 383//399 389//399 +f 412//400 440//400 444//400 +f 441//401 413//401 445//401 +f 446//402 440//402 438//402 +f 447//403 441//403 445//403 +f 434//134 438//134 436//134 +f 439//134 435//134 437//134 +f 448//404 434//404 432//404 +f 449//405 435//405 447//405 +f 448//406 450//406 430//406 +f 449//407 451//407 433//407 +f 430//408 416//408 414//408 +f 431//409 417//409 451//409 +f 448//410 382//410 312//410 +f 449//411 383//411 431//411 +f 442//412 448//412 312//412 +f 443//413 449//413 447//413 +f 442//414 444//414 446//414 +f 447//415 445//415 443//415 +f 416//416 452//416 476//416 +f 453//417 417//417 477//417 +f 432//418 452//418 450//418 +f 433//419 453//419 463//419 +f 432//420 460//420 462//420 +f 461//421 433//421 463//421 +f 436//422 460//422 434//422 +f 437//423 461//423 459//423 +f 438//424 458//424 436//424 +f 439//425 459//425 457//425 +f 438//426 454//426 456//426 +f 455//427 439//427 457//427 +f 440//428 474//428 454//428 +f 475//428 441//428 455//428 +f 428//429 476//429 464//429 +f 477//430 429//430 465//430 +f 426//431 464//431 466//431 +f 465//432 427//432 467//432 +f 424//433 466//433 468//433 +f 467//434 425//434 469//434 +f 424//435 470//435 422//435 +f 425//436 471//436 469//436 +f 422//437 472//437 420//437 +f 423//438 473//438 471//438 +f 420//439 474//439 418//439 +f 421//440 475//440 473//440 +f 456//441 478//441 458//441 +f 457//442 479//442 481//442 +f 480//443 484//443 478//443 +f 481//444 485//444 483//444 +f 484//445 488//445 486//445 +f 489//446 485//446 487//446 +f 488//447 492//447 486//447 +f 489//448 493//448 491//448 +f 464//449 486//449 492//449 +f 487//450 465//450 493//450 +f 484//451 476//451 452//451 +f 485//452 477//452 487//452 +f 462//453 484//453 452//453 +f 463//454 485//454 479//454 +f 458//134 462//134 460//134 +f 463//134 459//134 461//134 +f 474//455 456//455 454//455 +f 475//456 457//456 481//456 +f 472//457 480//457 474//457 +f 481//458 473//458 475//458 +f 488//459 472//459 470//459 +f 489//460 473//460 483//460 +f 490//461 470//461 468//461 +f 491//462 471//462 489//462 +f 466//463 490//463 468//463 +f 491//464 467//464 469//464 +f 464//465 492//465 466//465 +f 467//466 493//466 465//466 +f 392//467 504//467 502//467 +f 505//468 393//468 503//468 +f 394//469 502//469 500//469 +f 503//470 395//470 501//470 +f 394//471 498//471 396//471 +f 395//472 499//472 501//472 +f 396//473 496//473 398//473 +f 397//474 497//474 499//474 +f 398//475 494//475 400//475 +f 399//476 495//476 497//476 +f 400//477 506//477 388//477 +f 401//478 507//478 495//478 +f 502//479 506//479 494//479 +f 503//480 507//480 505//480 +f 494//481 500//481 502//481 +f 501//482 495//482 503//482 +f 496//483 498//483 500//483 +f 501//484 499//484 497//484 +f 382//485 506//485 314//485 +f 383//486 507//486 389//486 +f 314//487 504//487 322//487 +f 505//488 315//488 323//488 +f 320//489 504//489 390//489 +f 505//490 321//490 391//490 +f 47//491 1//491 3//491 +f 4//492 2//492 48//492 +f 45//493 3//493 5//493 +f 6//494 4//494 46//494 +f 3//495 9//495 7//495 +f 8//496 10//496 4//496 +f 1//497 11//497 9//497 +f 10//498 12//498 2//498 +f 11//499 13//499 15//499 +f 16//500 14//500 12//500 +f 9//501 15//501 17//501 +f 18//502 16//502 10//502 +f 21//503 19//503 17//503 +f 22//504 16//504 18//504 +f 23//505 21//505 15//505 +f 24//506 14//506 16//506 +f 23//507 25//507 27//507 +f 28//508 26//508 24//508 +f 27//509 29//509 19//509 +f 28//510 22//510 20//510 +f 33//511 31//511 29//511 +f 34//512 28//512 30//512 +f 35//513 33//513 27//513 +f 36//514 26//514 28//514 +f 37//515 39//515 33//515 +f 38//516 36//516 34//516 +f 39//517 41//517 31//517 +f 40//518 34//518 32//518 +f 45//519 43//519 41//519 +f 46//520 40//520 42//520 +f 47//521 45//521 39//521 +f 48//522 38//522 40//522 +f 37//523 51//523 49//523 +f 38//524 48//524 50//524 +f 35//525 53//525 51//525 +f 36//526 38//526 52//526 +f 25//527 55//527 53//527 +f 26//528 36//528 54//528 +f 23//529 57//529 55//529 +f 24//530 26//530 56//530 +f 23//531 13//531 59//531 +f 60//532 14//532 24//532 +f 13//533 11//533 63//533 +f 64//534 12//534 14//534 +f 11//535 1//535 65//535 +f 66//536 2//536 12//536 +f 1//537 47//537 49//537 +f 50//538 48//538 2//538 +f 174//539 176//539 91//539 +f 175//540 90//540 91//540 +f 172//541 174//541 89//541 +f 173//542 88//542 90//542 +f 85//543 170//543 172//543 +f 173//544 171//544 86//544 +f 83//545 168//545 170//545 +f 171//546 169//546 84//546 +f 81//547 166//547 168//547 +f 169//548 167//548 82//548 +f 79//549 92//549 146//549 +f 147//550 93//550 80//550 +f 94//551 148//551 146//551 +f 95//552 93//552 147//552 +f 94//553 96//553 150//553 +f 151//554 97//554 95//554 +f 98//555 152//555 150//555 +f 99//556 97//556 151//556 +f 100//557 154//557 152//557 +f 101//558 99//558 153//558 +f 102//559 156//559 154//559 +f 103//560 101//560 155//560 +f 102//561 104//561 158//561 +f 159//562 105//562 103//562 +f 106//563 160//563 158//563 +f 107//564 105//564 159//564 +f 108//565 162//565 160//565 +f 109//566 107//566 161//566 +f 67//567 68//567 162//567 +f 67//568 109//568 163//568 +f 128//569 160//569 162//569 +f 129//570 111//570 163//570 +f 128//571 179//571 158//571 +f 159//572 180//572 129//572 +f 156//573 158//573 179//573 +f 157//574 127//574 180//574 +f 154//575 156//575 126//575 +f 155//576 125//576 127//576 +f 152//577 154//577 124//577 +f 153//578 123//578 125//578 +f 150//579 152//579 122//579 +f 151//580 121//580 123//580 +f 148//581 150//581 120//581 +f 149//582 119//582 121//582 +f 146//583 148//583 118//583 +f 147//584 117//584 119//584 +f 114//585 164//585 146//585 +f 147//586 165//586 115//586 +f 114//587 181//587 177//587 +f 177//588 182//588 115//588 +f 162//589 68//589 112//589 +f 163//590 111//590 113//590 +f 112//591 68//591 178//591 +f 178//592 68//592 113//592 +f 181//593 183//593 178//593 +f 182//594 177//594 178//594 +f 135//595 137//595 176//595 +f 176//596 137//596 136//596 +f 133//597 135//597 174//597 +f 175//598 136//598 134//598 +f 133//599 172//599 170//599 +f 134//600 132//600 171//600 +f 166//601 187//601 185//601 +f 186//602 188//602 167//602 +f 131//603 170//603 168//603 +f 169//604 171//604 132//604 +f 190//131 189//131 187//131 +f 190//605 145//605 188//605 +f 187//133 189//133 69//133 +f 188//606 186//606 69//606 +f 131//134 185//134 69//134 +f 132//134 130//134 69//134 +f 142//607 193//607 191//607 +f 192//608 194//608 143//608 +f 195//609 193//609 142//609 +f 196//610 141//610 143//610 +f 197//611 195//611 140//611 +f 198//612 139//612 141//612 +f 71//613 197//613 139//613 +f 144//614 191//614 70//614 +f 145//615 190//615 70//615 +f 191//145 206//145 208//145 +f 192//146 70//146 208//146 +f 71//616 199//616 200//616 +f 201//617 199//617 71//617 +f 197//618 200//618 202//618 +f 203//619 201//619 198//619 +f 202//620 204//620 193//620 +f 203//621 196//621 194//621 +f 193//622 204//622 206//622 +f 207//623 205//623 194//623 +f 204//624 202//624 200//624 +f 205//625 199//625 201//625 +f 199//626 208//626 206//626 +f 207//627 208//627 199//627 +f 139//628 140//628 164//628 +f 165//629 141//629 139//629 +f 140//630 142//630 211//630 +f 212//631 143//631 141//631 +f 144//632 213//632 211//632 +f 145//633 143//633 212//633 +f 187//634 166//634 213//634 +f 188//635 145//635 214//635 +f 209//636 213//636 166//636 +f 210//637 82//637 167//637 +f 215//638 211//638 213//638 +f 216//639 210//639 214//639 +f 79//640 164//640 211//640 +f 212//641 165//641 80//641 +f 130//642 72//642 222//642 +f 130//643 132//643 223//643 +f 133//644 131//644 222//644 +f 223//645 132//645 134//645 +f 135//646 133//646 220//646 +f 221//647 134//647 136//647 +f 137//648 135//648 218//648 +f 219//649 136//649 137//649 +f 218//179 229//179 231//179 +f 219//180 217//180 231//180 +f 218//650 220//650 227//650 +f 228//651 221//651 219//651 +f 220//141 222//141 225//141 +f 226//183 223//183 221//183 +f 72//184 224//184 225//184 +f 72//185 223//185 226//185 +f 224//652 231//652 229//652 +f 230//653 231//653 224//653 +f 183//654 181//654 234//654 +f 235//655 182//655 184//655 +f 112//656 183//656 232//656 +f 233//657 184//657 113//657 +f 112//658 254//658 256//658 +f 113//659 111//659 257//659 +f 114//660 252//660 234//660 +f 115//661 182//661 235//661 +f 114//662 116//662 250//662 +f 251//663 117//663 115//663 +f 116//664 118//664 248//664 +f 249//665 119//665 117//665 +f 118//666 120//666 246//666 +f 247//667 121//667 119//667 +f 120//668 122//668 244//668 +f 245//669 123//669 121//669 +f 124//670 242//670 244//670 +f 125//671 123//671 245//671 +f 126//672 240//672 242//672 +f 127//673 125//673 243//673 +f 126//674 179//674 236//674 +f 237//675 180//675 127//675 +f 179//676 128//676 238//676 +f 239//677 129//677 180//677 +f 128//678 110//678 256//678 +f 257//679 111//679 129//679 +f 238//680 256//680 258//680 +f 259//681 257//681 239//681 +f 236//682 238//682 276//682 +f 277//683 239//683 237//683 +f 236//684 278//684 274//684 +f 237//685 241//685 275//685 +f 240//686 274//686 272//686 +f 241//687 243//687 273//687 +f 244//688 242//688 272//688 +f 273//689 243//689 245//689 +f 244//690 270//690 268//690 +f 245//691 247//691 269//691 +f 248//692 246//692 268//692 +f 269//693 247//693 249//693 +f 248//694 266//694 264//694 +f 249//695 251//695 265//695 +f 250//696 264//696 262//696 +f 251//697 253//697 263//697 +f 234//234 252//234 262//234 +f 263//235 253//235 235//235 +f 256//698 254//698 260//698 +f 261//699 255//699 257//699 +f 254//700 232//700 282//700 +f 283//701 233//701 255//701 +f 232//702 234//702 280//702 +f 281//703 235//703 233//703 +f 67//704 108//704 284//704 +f 285//705 109//705 67//705 +f 108//706 106//706 286//706 +f 287//707 107//707 109//707 +f 104//708 288//708 286//708 +f 105//709 107//709 287//709 +f 102//710 290//710 288//710 +f 103//711 105//711 289//711 +f 100//712 292//712 290//712 +f 101//713 103//713 291//713 +f 100//714 98//714 294//714 +f 295//715 99//715 101//715 +f 96//716 296//716 294//716 +f 97//717 99//717 295//717 +f 96//718 94//718 298//718 +f 299//719 95//719 97//719 +f 94//720 92//720 300//720 +f 301//721 93//721 95//721 +f 309//722 328//722 338//722 +f 309//723 308//723 339//723 +f 308//724 338//724 336//724 +f 308//725 307//725 337//725 +f 307//726 336//726 340//726 +f 307//727 306//727 341//727 +f 89//728 91//728 306//728 +f 306//729 91//729 90//729 +f 87//730 89//730 340//730 +f 341//731 90//731 88//731 +f 85//732 87//732 334//732 +f 335//733 88//733 86//733 +f 83//734 85//734 330//734 +f 331//735 86//735 84//735 +f 330//736 336//736 338//736 +f 339//737 337//737 331//737 +f 334//738 340//738 336//738 +f 335//739 331//739 337//739 +f 332//740 338//740 328//740 +f 333//741 327//741 329//741 +f 81//742 83//742 332//742 +f 333//743 84//743 82//743 +f 342//744 344//744 215//744 +f 343//745 210//745 216//745 +f 326//746 342//746 209//746 +f 327//747 82//747 210//747 +f 215//748 344//748 346//748 +f 216//749 80//749 347//749 +f 346//750 300//750 92//750 +f 347//751 80//751 93//751 +f 324//752 352//752 304//752 +f 325//753 77//753 304//753 +f 352//754 350//754 78//754 +f 353//755 304//755 78//755 +f 78//756 350//756 348//756 +f 349//757 351//757 78//757 +f 305//758 348//758 328//758 +f 329//759 349//759 305//759 +f 328//760 348//760 342//760 +f 329//761 327//761 343//761 +f 296//762 298//762 318//762 +f 319//763 299//763 297//763 +f 316//764 324//764 77//764 +f 317//765 76//765 77//765 +f 358//766 356//766 303//766 +f 359//767 302//767 303//767 +f 303//768 356//768 354//768 +f 355//769 357//769 303//769 +f 75//770 354//770 316//770 +f 317//771 355//771 75//771 +f 292//772 294//772 362//772 +f 363//773 295//773 293//773 +f 364//774 362//774 368//774 +f 369//775 363//775 365//775 +f 366//776 368//776 370//776 +f 371//777 369//777 367//777 +f 372//778 370//778 376//778 +f 377//779 371//779 373//779 +f 378//780 374//780 376//780 +f 379//781 315//781 377//781 +f 316//782 354//782 374//782 +f 375//783 355//783 317//783 +f 354//784 356//784 372//784 +f 373//785 357//785 355//785 +f 356//786 358//786 366//786 +f 367//787 359//787 357//787 +f 358//788 360//788 364//788 +f 365//789 361//789 359//789 +f 292//790 364//790 360//790 +f 293//791 291//791 361//791 +f 360//792 358//792 302//792 +f 361//793 74//793 302//793 +f 286//794 288//794 290//794 +f 287//795 285//795 291//795 +f 284//796 290//796 360//796 +f 361//797 291//797 285//797 +f 296//798 310//798 362//798 +f 297//799 295//799 363//799 +f 310//800 312//800 368//800 +f 369//801 313//801 311//801 +f 312//802 382//802 370//802 +f 371//803 383//803 313//803 +f 376//804 370//804 382//804 +f 377//805 315//805 383//805 +f 350//806 386//806 384//806 +f 351//807 349//807 385//807 +f 384//808 386//808 320//808 +f 385//809 319//809 321//809 +f 298//810 300//810 384//810 +f 385//811 301//811 299//811 +f 300//812 344//812 342//812 +f 343//813 345//813 301//813 +f 322//814 380//814 378//814 +f 323//815 315//815 379//815 +f 378//816 380//816 324//816 +f 379//817 317//817 325//817 +f 386//818 380//818 322//818 +f 387//819 321//819 323//819 +f 352//820 380//820 386//820 +f 353//821 351//821 387//821 +f 388//822 414//822 402//822 +f 389//823 401//823 403//823 +f 400//824 402//824 404//824 +f 405//825 403//825 401//825 +f 404//826 406//826 396//826 +f 405//827 399//827 397//827 +f 406//828 408//828 394//828 +f 407//829 397//829 395//829 +f 408//830 410//830 392//830 +f 409//831 395//831 393//831 +f 392//832 410//832 412//832 +f 413//833 411//833 393//833 +f 410//834 420//834 418//834 +f 419//835 421//835 411//835 +f 408//836 422//836 420//836 +f 421//837 423//837 409//837 +f 424//838 422//838 408//838 +f 425//839 407//839 409//839 +f 426//840 424//840 406//840 +f 427//841 405//841 407//841 +f 428//842 426//842 404//842 +f 429//843 403//843 405//843 +f 402//844 414//844 416//844 +f 417//845 415//845 403//845 +f 320//846 444//846 442//846 +f 321//847 319//847 443//847 +f 390//848 412//848 444//848 +f 391//849 321//849 445//849 +f 310//850 318//850 442//850 +f 443//851 319//851 311//851 +f 382//852 430//852 414//852 +f 415//853 431//853 383//853 +f 412//854 418//854 440//854 +f 441//855 419//855 413//855 +f 446//856 444//856 440//856 +f 447//857 439//857 441//857 +f 434//858 446//858 438//858 +f 439//859 447//859 435//859 +f 448//860 446//860 434//860 +f 449//861 433//861 435//861 +f 448//862 432//862 450//862 +f 449//863 431//863 451//863 +f 430//864 450//864 416//864 +f 431//865 415//865 417//865 +f 448//866 430//866 382//866 +f 449//867 313//867 383//867 +f 442//868 446//868 448//868 +f 443//869 313//869 449//869 +f 416//870 450//870 452//870 +f 453//871 451//871 417//871 +f 432//872 462//872 452//872 +f 433//873 451//873 453//873 +f 432//420 434//420 460//420 +f 461//421 435//421 433//421 +f 436//874 458//874 460//874 +f 437//875 435//875 461//875 +f 438//876 456//876 458//876 +f 439//877 437//877 459//877 +f 438//878 440//878 454//878 +f 455//879 441//879 439//879 +f 440//880 418//880 474//880 +f 475//881 419//881 441//881 +f 428//882 416//882 476//882 +f 477//883 417//883 429//883 +f 426//884 428//884 464//884 +f 465//885 429//885 427//885 +f 424//886 426//886 466//886 +f 467//887 427//887 425//887 +f 424//888 468//888 470//888 +f 425//889 423//889 471//889 +f 422//890 470//890 472//890 +f 423//891 421//891 473//891 +f 420//892 472//892 474//892 +f 421//893 419//893 475//893 +f 456//894 480//894 478//894 +f 457//895 459//895 479//895 +f 480//896 482//896 484//896 +f 481//897 479//897 485//897 +f 484//898 482//898 488//898 +f 489//899 483//899 485//899 +f 488//900 490//900 492//900 +f 489//901 487//901 493//901 +f 464//902 476//902 486//902 +f 487//903 477//903 465//903 +f 484//904 486//904 476//904 +f 485//905 453//905 477//905 +f 462//906 478//906 484//906 +f 463//907 453//907 485//907 +f 458//908 478//908 462//908 +f 463//909 479//909 459//909 +f 474//910 480//910 456//910 +f 475//911 455//911 457//911 +f 472//912 482//912 480//912 +f 481//913 483//913 473//913 +f 488//914 482//914 472//914 +f 489//915 471//915 473//915 +f 490//916 488//916 470//916 +f 491//917 469//917 471//917 +f 466//918 492//918 490//918 +f 491//919 493//919 467//919 +f 392//920 390//920 504//920 +f 505//921 391//921 393//921 +f 394//922 392//922 502//922 +f 503//923 393//923 395//923 +f 394//924 500//924 498//924 +f 395//925 397//925 499//925 +f 396//926 498//926 496//926 +f 397//927 399//927 497//927 +f 398//928 496//928 494//928 +f 399//929 401//929 495//929 +f 400//930 494//930 506//930 +f 401//931 389//931 507//931 +f 502//932 504//932 506//932 +f 503//933 495//933 507//933 +f 494//934 496//934 500//934 +f 501//935 497//935 495//935 +f 382//936 388//936 506//936 +f 383//937 315//937 507//937 +f 314//938 506//938 504//938 +f 505//939 507//939 315//939 +f 320//940 322//940 504//940 +f 505//941 323//941 321//941 diff --git a/tools/obj_to_cpp.py b/tools/obj_to_cpp.py new file mode 100644 index 0000000..490122d --- /dev/null +++ b/tools/obj_to_cpp.py @@ -0,0 +1,112 @@ +from dataclasses import dataclass +import sys + +from generate import renderer + +with open(sys.argv[1], 'r') as f: + lines = f.read().split("\n") + +@dataclass +class Vertex: + x: float + y: float + z: float + +@dataclass +class VertexNormal: + vertex: int + normal: int + +Face = tuple[VertexNormal, VertexNormal, VertexNormal] + +name = None +vertices = [] +normals = [] +faces = [] + +def parse_object(line): + h, name = line.split() + assert h == 'o' + return name.lower() + +def parse_vertex(line): + h, *xyz = line.split() + assert h == 'v' or h == 'vn' + assert len(xyz) == 3 + return Vertex(*map(float, xyz)) + +def maybe_int(i, offset): + if i.strip() == "": + return None + else: + return int(i) + offset + +def parse_face(line): + h, *tri = line.split() + assert h == 'f' + assert len(tri) == 3 + def parse_ixs(ixs): + ix = ixs.split('/') + assert len(ix) == 3 + vertex_ix, uv_ix, normal_ix = [ + maybe_int(iix, offset=-1) + for iix in ix + ] + return VertexNormal(vertex_ix, normal_ix) + + return tuple(map(parse_ixs, tri)) + +def generate_vertices(vertices): + yield "constexpr vec3 vertices[] = {" + for v in vertices: + yield f"{{ {v.x:9f}f, {v.y:9f}f, {v.z:9f}f }}," + yield "};" + yield "" + +def generate_normals(normals): + yield "constexpr vec3 normals[] = {" + for n in normals: + yield f"{{ {n.x:9f}f, {n.y:9f}f, {n.z:9f}f }}," + yield "};" + yield "" + +def generate_faces(faces): + yield "constexpr face faces[] = {" + for f in faces: + inner = ", ".join(f"{{{vn.vertex:2}, {vn.normal:2}}}" for vn in f) + yield f"{{{inner}}}," + yield "};" + yield "" + yield "constexpr uint32_t num_faces = (sizeof (faces)) / (sizeof (face));" + yield "" + +for line in lines: + if line.startswith('o '): + assert name is None + name = parse_object(line) + elif line.startswith('v '): + vertices.append(parse_vertex(line)) + elif line.startswith('vn '): + normals.append(parse_vertex(line)) + elif line.startswith('f '): + faces.append(parse_face(line)) + else: + pass + +def generate_namespace(): + assert name is not None + yield "#pragma once" + yield "" + yield '#include "geometry.hpp"' + yield "" + yield f"namespace {name} {{" + + yield from generate_vertices(vertices) + yield from generate_normals(normals) + yield from generate_faces(faces) + + yield "}" + +render, out = renderer() +render(generate_namespace()) +sys.stdout.write(out.getvalue())