From b911f89e86caebe848684fb7bcddf47df8025713 Mon Sep 17 00:00:00 2001 From: teridax Date: Mon, 17 Apr 2023 20:02:22 +0200 Subject: [PATCH] finished diffuse pathtracing --- Cargo.lock | 1 + Cargo.toml | 2 + res/example-scene.mtl | 8 +- res/monkey_disk.mtl | 42 + res/monkey_disk.obj | 7363 +++++++++++++++++ src/shader/composite/denoise.glsl | 60 + src/shader/composite/final.frag | 20 +- src/shader/composite/final.vert | 7 +- src/shader/pathtracing/camera.rs | 2 +- src/shader/pathtracing/mod.rs | 204 +- src/shader/pathtracing/pathtracer.comp | 93 +- .../pathtracing/rand/one-at-a-time.glsl | 22 + src/shader/pathtracing/rand/random.glsl | 38 +- src/shader/pathtracing/rand/xoshiro.glsl | 36 + src/shader/pathtracing/raytracing/bsdf.glsl | 52 + .../pathtracing/raytracing/raytracing.glsl | 64 +- src/vulkan/mod.rs | 27 +- 17 files changed, 7883 insertions(+), 158 deletions(-) create mode 100644 res/monkey_disk.mtl create mode 100644 res/monkey_disk.obj create mode 100644 src/shader/composite/denoise.glsl create mode 100644 src/shader/pathtracing/rand/one-at-a-time.glsl create mode 100644 src/shader/pathtracing/rand/xoshiro.glsl create mode 100644 src/shader/pathtracing/raytracing/bsdf.glsl diff --git a/Cargo.lock b/Cargo.lock index c76c494..0158cc5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -310,6 +310,7 @@ name = "eruption" version = "0.1.0" dependencies = [ "cgmath", + "lazy_static", "tobj", "vulkano", "vulkano-shaders", diff --git a/Cargo.toml b/Cargo.toml index 6609d77..1c33c87 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,4 +14,6 @@ winit = "0.28.3" tobj = "3.2.5" +lazy_static = "1.4.0" + cgmath = "0.18.0" \ No newline at end of file diff --git a/res/example-scene.mtl b/res/example-scene.mtl index fdbbdd4..6d380c0 100644 --- a/res/example-scene.mtl +++ b/res/example-scene.mtl @@ -3,7 +3,7 @@ newmtl glass Ns 1000.000000 -Ka 1.000000 1.000000 1.000000 +Ka 0.000000 0.000000 0.000000 Kd 0.800000 0.800000 0.800000 Ks 0.500000 0.500000 0.500000 Ke 0.000000 0.000000 0.000000 @@ -13,7 +13,7 @@ illum 2 newmtl green Ns 250.000000 -Ka 1.000000 1.000000 1.000000 +Ka 0.000000 0.000000 0.000000 Kd 0.006232 0.800000 0.014503 Ks 0.500000 0.500000 0.500000 Ke 0.000000 0.000000 0.000000 @@ -33,7 +33,7 @@ illum 2 newmtl red Ns 250.000000 -Ka 1.000000 1.000000 1.000000 +Ka 0.000000 0.000000 0.000000 Kd 0.800000 0.006232 0.009300 Ks 0.500000 0.500000 0.500000 Ke 0.000000 0.000000 0.000000 @@ -43,7 +43,7 @@ illum 2 newmtl white Ns 250.000000 -Ka 1.000000 1.000000 1.000000 +Ka 0.000000 0.000000 0.000000 Kd 0.800000 0.800000 0.800000 Ks 0.500000 0.500000 0.500000 Ke 0.000000 0.000000 0.000000 diff --git a/res/monkey_disk.mtl b/res/monkey_disk.mtl new file mode 100644 index 0000000..a8f1171 --- /dev/null +++ b/res/monkey_disk.mtl @@ -0,0 +1,42 @@ +# Blender 3.5.0 MTL File: 'None' +# www.blender.org + +newmtl light_blue +Ns 250.000000 +Ka 1.000000 1.000000 1.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.450000 +d 1.000000 +illum 2 + +newmtl light_green +Ns 250.000000 +Ka 1.000000 1.000000 1.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.450000 +d 1.000000 +illum 2 + +newmtl light_red +Ns 250.000000 +Ka 1.000000 1.000000 1.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.450000 +d 1.000000 +illum 2 + +newmtl white +Ns 250.000000 +Ka 1.000000 1.000000 1.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.450000 +d 1.000000 +illum 2 diff --git a/res/monkey_disk.obj b/res/monkey_disk.obj new file mode 100644 index 0000000..a063c8c --- /dev/null +++ b/res/monkey_disk.obj @@ -0,0 +1,7363 @@ +# Blender 3.5.0 +# www.blender.org +mtllib monkey_disk.mtl +o Suzanne +v 0.709135 1.922039 0.387686 +v 0.727000 1.806435 0.344924 +v -0.197073 2.070961 0.620812 +v 0.726527 1.707008 0.268765 +v -0.284178 1.996334 0.570517 +v 0.555445 1.713908 0.397061 +v -0.094294 1.899903 0.591044 +v 0.597354 1.809888 0.445405 +v -0.052385 1.995883 0.639389 +v 0.634688 1.925022 0.444891 +v 0.567673 1.980076 0.462375 +v 0.473238 1.912391 0.469436 +v 0.097833 2.019855 0.581515 +v 0.392010 1.845599 0.431315 +v 0.103237 1.928264 0.517530 +v 0.335458 2.024634 0.353410 +v 0.191071 2.065966 0.396517 +v 0.425539 2.051197 0.403122 +v 0.165643 2.125595 0.480715 +v 0.540631 2.055741 0.426637 +v 0.578132 2.122495 0.368335 +v 0.493349 2.156938 0.302322 +v 0.117944 2.264401 0.414402 +v 0.417943 2.160936 0.215826 +v 0.129170 2.243601 0.302041 +v 0.591964 2.157954 0.093617 +v -0.057775 2.343949 0.287601 +v 0.625934 2.157402 0.207927 +v -0.023805 2.343397 0.401911 +v 0.650242 2.118939 0.313122 +v 0.720784 2.067885 0.291283 +v -0.091882 2.301342 0.533899 +v 0.752460 2.022345 0.053276 +v -0.258245 2.311671 0.355028 +v 0.814790 1.832699 0.130372 +v -0.355691 2.167674 0.479832 +v -0.130644 2.224005 0.589026 +v 0.738325 1.974554 0.330189 +v -0.006967 2.306224 0.509466 +v 0.075793 2.266695 0.518433 +v 0.098292 2.181897 0.559283 +v 0.060479 2.125267 0.613801 +v 0.652787 2.038494 0.411882 +v 0.003048 2.224490 0.605866 +v -0.022786 2.113231 0.641184 +v -0.106106 2.155411 0.631082 +v 0.353353 2.211382 0.446395 +v 0.287054 1.761871 0.726402 +v 0.253807 2.153020 0.240003 +v -0.144851 1.982534 -0.931817 +v -0.282221 1.553015 -0.980101 +v -0.158178 1.025066 -0.058418 +v 0.000921 1.693301 0.598366 +v 0.473666 1.359656 0.604396 +v -0.103880 1.524985 0.776826 +v -0.196104 1.164328 1.017489 +v 0.474400 0.924495 0.830905 +v -0.165038 1.086548 1.035325 +v 0.735024 1.563666 0.306357 +v -0.334055 1.866997 0.629200 +v 0.942814 1.643233 0.034922 +v -0.587682 2.081355 0.491862 +v 1.046582 1.941081 -0.016368 +v 0.924874 2.041066 0.018147 +v -0.538259 2.384260 0.456521 +v 0.754182 2.226805 0.061226 +v -0.155452 2.487199 0.332804 +v 0.623575 2.424487 0.057211 +v 0.031590 2.593949 0.233952 +v 0.478139 2.447462 0.142723 +v 0.189366 2.530126 0.228938 +v 0.321611 2.239978 0.334662 +v 0.257711 2.314781 0.324521 +v 0.201670 2.161391 0.468061 +v 0.451827 1.940359 0.467793 +v -0.108671 1.979542 0.644596 +v 0.628215 1.731617 0.430336 +v 0.854093 1.731319 0.226769 +v -0.295780 2.309797 0.483134 +v 0.812843 2.011354 0.172474 +v -0.025025 2.366435 0.410041 +v 0.592626 2.217580 0.221688 +v 0.139354 2.319325 0.402475 +v 0.222119 1.249906 1.003402 +v 0.133133 1.307025 1.011494 +v 0.123519 1.214406 1.049122 +v 0.268892 1.731929 0.694279 +v 0.269658 1.773059 0.657408 +v 0.380059 1.772834 0.651056 +v 0.152035 1.709958 0.754053 +v -0.313585 1.982394 0.645266 +v -0.413574 2.351031 0.504963 +v 0.940120 2.017758 0.124459 +v -0.160895 2.448542 0.468487 +v 0.642819 2.379358 0.209136 +v 0.069075 2.546282 0.376891 +v 0.549840 2.398415 0.260003 +v 0.174435 2.505879 0.372083 +v 0.252646 2.320644 0.443522 +v 0.414262 1.807431 0.655714 +v 0.183244 1.873563 0.724686 +v 0.409099 1.594153 0.669020 +v 0.444868 1.128782 0.896968 +v -0.047643 1.273330 1.041095 +v 0.387360 1.014398 0.944328 +v -0.034340 1.142447 1.073133 +v 0.171765 0.997787 1.010217 +v 0.284061 1.952105 0.528297 +v 0.110240 2.022619 0.575465 +v 0.366559 1.644363 0.693380 +v 0.231279 1.629286 0.779050 +v 0.169659 1.772321 0.796413 +v 0.187998 1.828091 0.708011 +v 0.249470 1.821845 0.705366 +v 0.297750 1.764672 0.759545 +v 0.339165 1.796702 0.679125 +v 0.411058 1.703974 0.724270 +v 0.277526 1.661741 0.791135 +v 0.396136 1.581682 0.482266 +v 0.097894 1.689520 0.758604 +v 0.170604 1.145706 1.042155 +v 0.280813 1.138657 1.008702 +v 0.319661 1.252715 0.957249 +v 0.272021 1.193756 0.923653 +v 0.112357 1.256715 0.965427 +v 0.258738 1.128875 0.941023 +v 0.119654 1.148620 0.990123 +v 0.128195 2.075547 0.572971 +v 0.019136 2.343032 0.437405 +v 0.615260 2.170945 0.259983 +v -0.072220 2.323377 0.481535 +v -0.248041 2.299431 0.504863 +v 0.781169 1.838350 0.301696 +v -0.269869 2.172549 0.575648 +v -0.151374 2.092511 0.610986 +v -0.066307 2.050825 0.621502 +v 0.475208 1.975815 0.469677 +v 0.491062 2.163473 0.349426 +v 0.141638 2.248554 0.465752 +v 0.525987 2.130765 0.323465 +v 0.092828 2.254762 0.452788 +v 0.485656 2.089614 0.369424 +v 0.124690 2.192945 0.477193 +v 0.517329 1.935635 0.453242 +v 0.069731 2.063765 0.586875 +v 0.625244 1.854295 0.415533 +v 0.698369 1.843910 0.354681 +v 0.772377 1.882731 0.253852 +v -0.238328 2.172057 0.555605 +v 0.784360 1.938583 0.212117 +v -0.240784 2.232043 0.518180 +v 0.769346 1.993749 0.193886 +v -0.212482 2.274809 0.487017 +v 0.689666 2.106745 0.252494 +v 0.574888 2.154460 0.294631 +v 0.620075 2.138594 0.262972 +v 0.053605 2.304898 0.451759 +v 0.477586 1.980977 0.430067 +v 0.108213 2.086714 0.540346 +v 0.361521 2.173053 0.185131 +v 0.149295 2.251651 0.234705 +v 0.457633 2.321560 0.053167 +v 0.096667 2.424891 0.160936 +v 0.580352 2.291914 -0.017083 +v -0.040510 2.469643 0.168279 +v 0.693828 2.123656 -0.013708 +v -0.201368 2.379916 0.253559 +v -0.523581 2.220817 0.260807 +v 0.844260 1.834660 -0.149277 +v 0.866889 1.635309 -0.013567 +v -0.562537 2.044499 0.413197 +v -0.301076 1.824550 0.526166 +v 0.653904 1.564024 0.231924 +v 0.169598 2.401741 -0.280527 +v 0.037298 2.288393 -0.614983 +v -0.265966 1.018887 -0.413524 +v 0.076791 1.035445 0.720207 +v 0.071085 1.260596 0.477072 +v 0.823355 1.511932 -0.324260 +v -0.750457 1.962454 0.145612 +v 0.798192 1.529724 -0.453919 +v -0.790059 1.984379 0.020263 +v 0.568136 1.311518 -0.703767 +v -0.861290 1.720707 -0.277003 +v -0.685231 1.644087 -0.638198 +v 0.701890 1.319091 -0.121437 +v -0.655829 1.703004 0.269712 +v 0.478486 1.174401 -0.221268 +v -0.618851 1.488526 0.106349 +v 0.429822 1.125327 -0.507118 +v -0.754147 1.464252 -0.153637 +v -0.326013 1.141915 -0.651043 +v 0.345580 1.368838 0.449752 +v -0.095039 1.362762 0.494944 +v -0.210465 1.047722 0.912589 +v 0.344085 1.234595 0.516824 +v -0.103175 1.440441 0.590322 +v 0.386840 0.878860 0.735852 +v 0.216733 1.039405 0.673864 +v 0.078465 1.219812 0.573110 +v -0.016843 1.285944 0.617924 +v 0.156013 0.924475 0.873109 +v 0.344721 1.442643 0.432743 +v -0.059561 1.558374 0.553444 +v 0.364493 1.574073 0.432383 +v -0.006879 1.681280 0.544408 +v 0.231689 1.260181 0.389573 +v 0.153246 1.047550 -0.112947 +v -0.395423 1.204612 0.050862 +v 0.104819 1.033171 -0.431271 +v -0.530482 1.215033 -0.241598 +v 0.333467 1.919203 -0.911415 +v -0.503974 2.158930 -0.661391 +v 0.455252 2.127399 -0.703124 +v -0.382189 2.367126 -0.453100 +v 0.564572 2.215839 -0.421760 +v -0.272869 2.455567 -0.171736 +v 0.623033 2.041430 -0.087040 +v -0.228847 2.285290 0.167294 +v 0.721258 1.863606 -0.210528 +v -0.448273 2.198398 0.138643 +v 0.660188 1.953857 -0.529929 +v -0.523781 2.292782 -0.176447 +v 0.821497 1.831947 -0.439096 +v -0.651245 2.253537 0.000601 +v 0.713203 1.746868 -0.684991 +v -0.747096 2.160672 -0.245191 +v 0.470519 1.683811 -0.906293 +v -0.713450 2.022736 -0.552811 +v 0.637705 1.569737 -0.803286 +v -0.835037 1.991326 -0.363589 +v 0.185744 1.377833 -0.911034 +v 0.211844 1.128708 -0.591210 +v -0.651725 1.389894 -0.305638 +v 0.703849 1.468136 -0.569277 +v -0.812209 1.902125 -0.116648 +v 0.419598 1.342100 0.100320 +v -0.331211 1.557027 0.324479 +v 0.304484 1.136374 -0.172947 +v -0.489641 1.363701 0.064145 +v -0.912709 1.993603 -0.185442 +v 0.658166 1.133587 -0.231612 +v -0.771260 1.542776 0.195152 +v 0.829861 0.993636 -0.485141 +v -1.090479 1.543355 0.088189 +v 1.026041 1.007348 -0.719041 +v -1.341897 1.685198 -0.012078 +v 1.111948 1.211472 -0.881876 +v -1.385938 1.926520 -0.136116 +v 1.016360 1.396922 -0.955091 +v -1.264946 2.049972 -0.273992 +v 0.789617 1.509142 -0.704275 +v -0.923593 1.953410 -0.131164 +v 0.980036 1.367074 -0.878232 +v -1.214638 1.995324 -0.222997 +v 1.036296 1.216299 -0.828402 +v -1.302765 1.885881 -0.130060 +v 0.971471 1.057008 -0.694575 +v -1.266519 1.697658 -0.026409 +v 0.835692 1.058940 -0.499907 +v -1.070209 1.604526 0.069112 +v 0.710526 1.173122 -0.292366 +v -0.839548 1.625766 0.146670 +v 0.804278 1.464047 -0.653100 +v -0.958983 1.877867 -0.132197 +v 0.725851 1.139031 -0.444867 +v -1.116374 1.594995 -0.035080 +v -1.267866 1.677841 -0.084599 +v -1.294575 1.817845 -0.156253 +v -1.231480 1.879869 -0.230878 +v -1.076721 1.856154 -0.208201 +v 0.695629 1.396462 -0.525089 +v -0.818791 1.655422 -0.067589 +v 0.611083 1.239971 -0.507615 +v 0.651852 1.206356 -0.520719 +v 0.677888 1.169258 -0.454615 +v 0.660099 1.138383 -0.473605 +v -0.888174 1.588654 0.019920 +v -0.728606 1.615005 0.048656 +v 0.591127 1.232328 -0.318434 +v -0.820763 1.834624 -0.076396 +v 0.764574 1.364655 -0.624382 +v 0.784590 1.335547 -0.723236 +v -0.902377 1.598968 -0.009055 +v -0.877844 1.646473 -0.066261 +v 0.932121 1.260502 -0.875913 +v 0.984912 1.166363 -0.834874 +v 0.934933 1.048510 -0.743138 +v 0.804653 1.046241 -0.601815 +v -0.957752 1.812106 -0.152413 +v 0.776508 1.175079 -0.612890 +v -1.060519 1.727427 -0.094391 +v 0.887759 1.223628 -0.738643 +v -1.158116 1.812940 -0.139121 +v 0.793165 1.363459 -0.906011 +v -1.098298 1.904912 -0.341302 +v 0.981132 1.297926 -1.034802 +v -1.329051 1.959243 -0.345082 +v 1.095411 1.148854 -0.933861 +v -1.431352 1.872169 -0.179480 +v 1.016714 0.948150 -0.806791 +v -1.408978 1.642533 -0.082585 +v 0.769205 0.924233 -0.621760 +v -1.151135 1.473952 -0.048430 +v 0.597255 1.040461 -0.402976 +v -0.861048 1.457917 0.032410 +v 0.676058 1.412741 -0.750835 +v -0.912193 1.867396 -0.276652 +s 0 +usemtl white +f 38 2 35 +f 3 37 36 +f 2 6 4 +f 7 3 5 +f 1 8 2 +f 9 46 3 +f 10 12 8 +f 13 45 9 +f 8 14 6 +f 15 9 7 +f 18 14 12 +f 19 15 17 +f 11 18 12 +f 19 42 13 +f 20 22 18 +f 23 41 19 +f 22 16 18 +f 23 17 25 +f 28 24 22 +f 29 25 27 +f 30 22 21 +f 39 23 29 +f 31 28 30 +f 31 26 28 +f 32 27 34 +f 35 33 31 +f 37 32 36 +f 43 1 38 +f 37 46 44 +f 10 1 43 +f 44 46 45 +f 43 11 10 +f 45 42 44 +f 43 20 11 +f 42 41 44 +f 43 21 20 +f 41 40 44 +f 43 30 21 +f 40 39 44 +f 43 31 30 +f 39 32 44 +f 43 38 31 +f 32 37 44 +f 105 107 57 +f 106 56 58 +f 54 103 57 +f 104 55 56 +f 119 77 100 +f 91 53 101 +f 63 78 61 +f 65 91 92 +f 64 93 63 +f 65 92 94 +f 66 93 64 +f 96 67 94 +f 70 95 68 +f 71 96 98 +f 72 97 70 +f 73 98 99 +f 72 99 47 +f 82 47 138 +f 83 99 98 +f 82 95 97 +f 96 83 98 +f 94 81 96 +f 93 82 80 +f 92 79 94 +f 91 79 92 +f 100 77 75 +f 101 76 91 +f 75 108 100 +f 108 109 101 +f 99 74 47 +f 138 108 75 +f 109 108 74 +f 122 107 105 +f 107 121 106 +f 122 103 123 +f 86 104 106 +f 102 123 103 +f 85 120 104 +f 110 85 123 +f 123 85 84 +f 89 117 110 +f 112 113 90 +f 116 89 88 +f 48 88 87 +f 48 88 114 +f 110 118 111 +f 90 118 112 +f 117 116 115 +f 112 114 113 +f 115 118 117 +f 118 115 112 +f 88 100 108 +f 101 88 108 +f 89 102 100 +f 120 113 101 +f 119 102 54 +f 122 127 121 +f 122 124 126 +f 125 86 127 +f 84 124 123 +f 84 125 124 +f 127 124 125 +f 128 74 139 +f 75 146 137 +f 136 109 128 +f 77 133 146 +f 135 76 136 +f 134 76 135 +f 78 80 133 +f 81 132 131 +f 82 130 154 +f 129 81 131 +f 82 138 130 +f 139 83 129 +f 138 155 130 +f 139 157 141 +f 130 155 156 +f 129 131 157 +f 154 152 80 +f 80 152 150 +f 153 132 151 +f 80 148 133 +f 132 149 151 +f 133 148 147 +f 146 144 137 +f 137 144 158 +f 145 128 159 +f 138 142 140 +f 143 139 141 +f 138 158 142 +f 159 139 143 +f 72 160 49 +f 161 72 49 +f 72 162 160 +f 163 73 161 +f 68 162 70 +f 69 163 165 +f 66 164 68 +f 67 165 167 +f 64 166 66 +f 65 167 168 +f 61 169 63 +f 62 168 171 +f 61 173 170 +f 172 62 171 +f 178 201 194 +f 200 199 177 +f 200 177 201 +f 57 202 198 +f 202 58 195 +f 57 198 196 +f 195 56 197 +f 198 200 196 +f 201 195 197 +f 195 177 202 +f 196 207 193 +f 197 194 201 +f 54 196 193 +f 204 53 206 +f 193 119 54 +f 197 53 204 +f 205 59 119 +f 206 60 172 +f 233 176 192 +f 192 176 211 +f 210 52 176 +f 211 52 209 +f 52 207 178 +f 194 52 178 +f 207 203 193 +f 170 186 179 +f 187 171 180 +f 232 192 51 +f 216 175 174 +f 217 175 215 +f 175 212 50 +f 213 175 50 +f 50 232 51 +f 185 50 51 +f 220 224 222 +f 225 221 223 +f 226 230 228 +f 231 227 229 +f 232 230 183 +f 185 231 229 +f 212 226 228 +f 227 213 229 +f 214 222 226 +f 223 215 227 +f 216 220 222 +f 221 217 223 +f 169 218 166 +f 168 219 221 +f 218 174 161 +f 219 174 217 +f 160 164 166 +f 165 161 167 +f 160 218 161 +f 49 160 161 +f 171 168 180 +f 179 224 169 +f 225 180 168 +f 181 226 224 +f 227 182 225 +f 230 235 183 +f 231 236 227 +f 208 237 207 +f 209 238 240 +f 237 188 186 +f 238 189 240 +f 173 237 186 +f 238 172 187 +f 173 203 237 +f 204 172 238 +f 203 207 237 +f 238 194 204 +f 190 232 183 +f 191 185 234 +f 185 192 234 +f 239 190 188 +f 240 191 234 +f 210 239 208 +f 211 240 234 +f 211 234 192 +f 252 254 250 +f 255 241 251 +f 254 248 250 +f 255 249 257 +f 256 246 248 +f 257 247 259 +f 258 244 246 +f 259 245 261 +f 244 262 242 +f 263 245 243 +f 260 266 262 +f 258 289 260 +f 267 259 261 +f 287 258 256 +f 269 259 268 +f 286 256 254 +f 270 257 269 +f 283 254 264 +f 271 255 270 +f 264 282 283 +f 265 253 271 +f 188 280 186 +f 189 187 279 +f 242 280 188 +f 243 279 263 +f 179 280 181 +f 187 180 182 +f 235 264 252 +f 253 236 241 +f 262 277 280 +f 278 263 279 +f 280 277 276 +f 274 276 275 +f 284 273 285 +f 281 273 279 +f 281 265 273 +f 272 282 264 +f 181 272 235 +f 281 182 236 +f 280 272 181 +f 187 281 279 +f 274 283 282 +f 277 291 275 +f 284 290 292 +f 291 293 283 +f 292 271 294 +f 274 291 283 +f 290 285 273 +f 278 284 292 +f 289 291 266 +f 292 267 278 +f 291 289 288 +f 294 267 292 +f 293 288 287 +f 286 293 287 +f 294 270 269 +f 283 293 286 +f 270 294 271 +f 244 305 303 +f 306 245 304 +f 246 303 301 +f 304 247 302 +f 246 299 248 +f 247 300 302 +f 248 297 250 +f 249 298 300 +f 250 295 252 +f 251 296 298 +f 241 308 296 +f 303 307 295 +f 304 308 306 +f 295 301 303 +f 302 296 304 +f 297 299 301 +f 302 300 298 +f 235 307 183 +f 236 308 241 +f 183 305 190 +f 306 184 191 +f 188 305 242 +f 306 189 243 +f 38 1 2 +f 3 46 37 +f 35 2 4 +f 5 3 36 +f 2 8 6 +f 7 9 3 +f 1 10 8 +f 9 45 46 +f 10 11 12 +f 13 42 45 +f 8 12 14 +f 15 13 9 +f 18 16 14 +f 19 13 15 +f 11 20 18 +f 19 41 42 +f 20 21 22 +f 23 40 41 +f 22 24 16 +f 23 19 17 +f 28 26 24 +f 29 23 25 +f 30 28 22 +f 39 40 23 +f 32 39 29 +f 31 33 26 +f 32 29 27 +f 36 32 34 +f 38 35 31 +f 106 58 107 +f 57 103 105 +f 106 104 56 +f 54 102 103 +f 104 120 55 +f 119 59 77 +f 91 60 53 +f 59 78 77 +f 59 61 78 +f 91 62 60 +f 63 93 78 +f 65 62 91 +f 66 95 93 +f 67 65 94 +f 66 68 95 +f 96 69 67 +f 70 97 95 +f 71 69 96 +f 72 47 97 +f 73 71 98 +f 72 73 99 +f 82 97 47 +f 96 81 83 +f 93 95 82 +f 94 79 81 +f 78 93 80 +f 91 134 79 +f 91 76 134 +f 101 109 76 +f 99 83 74 +f 138 47 108 +f 108 47 74 +f 122 121 107 +f 106 121 86 +f 122 105 103 +f 86 85 104 +f 102 110 123 +f 85 111 120 +f 110 111 85 +f 114 88 113 +f 48 116 88 +f 110 117 118 +f 90 111 118 +f 48 115 116 +f 114 115 48 +f 117 89 116 +f 112 115 114 +f 88 89 100 +f 101 113 88 +f 89 110 102 +f 120 90 113 +f 111 90 120 +f 53 55 120 +f 119 100 102 +f 120 101 53 +f 122 126 127 +f 127 86 121 +f 122 123 124 +f 125 85 86 +f 84 85 125 +f 124 127 126 +f 128 109 74 +f 138 75 137 +f 74 83 139 +f 75 77 146 +f 136 76 109 +f 77 78 133 +f 132 79 134 +f 82 154 80 +f 81 79 132 +f 129 83 81 +f 138 140 155 +f 139 129 157 +f 130 156 154 +f 131 132 153 +f 80 150 148 +f 132 134 149 +f 149 134 135 +f 133 147 146 +f 136 128 145 +f 138 137 158 +f 159 128 139 +f 161 73 72 +f 72 70 162 +f 163 71 73 +f 68 164 162 +f 69 71 163 +f 66 166 164 +f 67 69 165 +f 64 169 166 +f 65 67 167 +f 64 63 169 +f 61 170 169 +f 62 65 168 +f 61 59 173 +f 172 60 62 +f 178 207 200 +f 178 200 201 +f 177 199 202 +f 202 107 58 +f 57 107 202 +f 195 58 56 +f 198 199 200 +f 201 177 195 +f 198 202 199 +f 196 200 207 +f 54 57 196 +f 197 56 55 +f 203 205 119 +f 193 203 119 +f 197 55 53 +f 205 173 59 +f 206 53 60 +f 233 210 176 +f 210 208 52 +f 211 176 52 +f 52 208 207 +f 194 209 52 +f 194 197 204 +f 170 173 186 +f 187 172 171 +f 232 233 192 +f 185 51 192 +f 216 214 175 +f 217 174 175 +f 175 214 212 +f 213 215 175 +f 50 212 232 +f 185 213 50 +f 220 169 224 +f 225 168 221 +f 222 224 226 +f 227 225 223 +f 232 228 230 +f 185 184 231 +f 232 212 228 +f 229 213 185 +f 212 214 226 +f 227 215 213 +f 214 216 222 +f 223 217 215 +f 216 218 220 +f 221 219 217 +f 169 220 218 +f 168 167 219 +f 218 216 174 +f 219 161 174 +f 160 162 164 +f 165 163 161 +f 160 166 218 +f 219 167 161 +f 170 179 169 +f 179 181 224 +f 225 182 180 +f 181 235 226 +f 227 236 182 +f 230 226 235 +f 231 184 236 +f 208 239 237 +f 209 194 238 +f 237 239 188 +f 238 187 189 +f 173 205 203 +f 204 206 172 +f 190 233 232 +f 191 184 185 +f 239 233 190 +f 240 189 191 +f 210 233 239 +f 211 209 240 +f 252 264 254 +f 255 253 241 +f 254 256 248 +f 255 251 249 +f 256 258 246 +f 257 249 247 +f 258 260 244 +f 259 247 245 +f 244 260 262 +f 263 261 245 +f 260 289 266 +f 263 267 261 +f 258 288 289 +f 267 268 259 +f 287 288 258 +f 269 257 259 +f 286 287 256 +f 270 255 257 +f 283 286 254 +f 271 253 255 +f 242 262 280 +f 243 189 279 +f 179 186 280 +f 235 272 264 +f 253 281 236 +f 262 266 277 +f 279 284 278 +f 274 280 276 +f 284 279 273 +f 272 280 274 +f 272 274 282 +f 281 253 265 +f 187 182 281 +f 273 265 290 +f 276 277 275 +f 290 265 271 +f 267 263 278 +f 284 285 290 +f 292 290 271 +f 275 291 274 +f 266 291 277 +f 294 268 267 +f 293 291 288 +f 294 269 268 +f 244 242 305 +f 306 243 245 +f 246 244 303 +f 304 245 247 +f 246 301 299 +f 247 249 300 +f 248 299 297 +f 249 251 298 +f 250 297 295 +f 251 241 296 +f 252 295 307 +f 303 305 307 +f 304 296 308 +f 295 297 301 +f 302 298 296 +f 235 252 307 +f 236 184 308 +f 183 307 305 +f 306 308 184 +f 188 190 305 +f 306 191 189 +o Sphere +v -1.878116 0.778581 -0.320737 +v -1.779690 0.604699 -0.458253 +v -1.785486 0.729136 -0.393203 +v -1.732964 0.675797 -0.412285 +v -1.772613 0.464069 -0.445097 +v -1.690065 0.518419 -0.421342 +v -1.766695 0.368260 -0.372278 +v -1.705503 0.750205 -0.312754 +v -1.666939 0.656577 -0.381156 +v -1.673905 0.434986 -0.371179 +v -1.804601 0.803446 -0.195331 +v -1.619484 0.582304 -0.351289 +v -1.781242 0.796534 -0.266238 +v -1.618085 0.672868 -0.280478 +v -1.594930 0.508018 -0.298888 +v -1.640420 0.396955 -0.270395 +v -1.755247 0.320773 -0.273375 +v -1.661579 0.744083 -0.215494 +v -1.610283 0.671004 -0.171297 +v -1.579171 0.586841 -0.181467 +v -1.591797 0.482312 -0.173133 +v -1.715545 0.332726 -0.215386 +v -1.726444 0.776760 -0.161285 +v -1.680004 0.713271 -0.093111 +v -1.641147 0.627776 -0.067900 +v -1.638953 0.530955 -0.055411 +v -1.647491 0.409985 -0.113871 +v -1.733042 0.454047 -0.005453 +v -1.742804 0.673751 -0.012173 +v -1.736254 0.580147 0.016580 +v -1.735515 0.356443 -0.090842 +v -1.788873 0.316780 -0.155533 +v -1.828153 0.547621 0.035779 +v -1.782693 0.770377 -0.091698 +v -1.873596 0.631441 0.018547 +v -1.894425 0.703074 -0.021296 +v -1.873596 0.479373 0.018547 +v -1.886472 0.405322 -0.021462 +v -1.976868 0.574432 -0.015247 +v -1.893562 0.341840 -0.098021 +v -1.877182 0.777106 -0.110223 +v -1.993062 0.486360 -0.040081 +v -2.000553 0.691410 -0.092368 +v -2.048921 0.579860 -0.102688 +v -2.006477 0.407039 -0.117854 +v -1.965225 0.754453 -0.152615 +v -2.046739 0.672868 -0.193772 +v -1.938059 0.329169 -0.223151 +v -2.076607 0.587611 -0.211768 +v -2.060202 0.462295 -0.175813 +v -2.032624 0.673751 -0.299811 +v -2.059458 0.555126 -0.317041 +v -2.008233 0.463728 -0.368825 +v -2.012494 0.391872 -0.262788 +v -1.983294 0.745089 -0.272574 +v -1.982364 0.579860 -0.410443 +v -1.897031 0.795291 -0.220760 +v -1.968083 0.672868 -0.385414 +v -1.879805 0.573016 -0.460788 +v -1.860483 0.307719 -0.221323 +v -1.901622 0.700826 -0.408377 +v -1.899378 0.481226 -0.443299 +v -1.883951 0.402709 -0.406740 +v -1.894420 0.341836 -0.333156 +s 0 +usemtl light_red +f 372 325 368 +f 311 312 310 +f 310 314 313 +f 312 317 310 +f 321 316 311 +f 311 317 312 +f 314 317 320 +f 314 318 313 +f 320 323 314 +f 318 324 315 +f 317 316 322 +f 321 326 316 +f 325 324 330 +f 320 322 328 +f 321 319 331 +f 324 329 335 +f 330 335 339 +f 325 330 340 +f 368 325 340 +f 331 332 326 +f 339 340 330 +f 328 333 334 +f 328 334 329 +f 319 342 331 +f 334 336 335 +f 331 342 332 +f 332 342 337 +f 332 337 333 +f 333 337 338 +f 338 341 336 +f 341 345 336 +f 336 345 346 +f 336 346 339 +f 339 346 348 +f 339 348 340 +f 338 343 341 +f 341 343 347 +f 342 319 349 +f 348 368 340 +f 343 344 347 +f 347 350 345 +f 345 350 346 +f 346 350 353 +f 349 351 344 +f 347 351 352 +f 352 358 350 +f 350 358 353 +f 348 353 356 +f 352 355 357 +f 351 354 355 +f 354 365 363 +f 358 362 353 +f 357 360 358 +f 355 363 359 +f 357 359 360 +f 360 361 358 +f 365 309 363 +f 356 362 372 +f 361 372 362 +f 359 363 366 +f 360 366 364 +f 309 369 363 +f 364 369 367 +f 365 319 321 +f 364 370 361 +f 369 311 310 +f 367 313 370 +f 369 309 311 +f 371 313 315 +f 372 315 325 +f 367 310 313 +f 309 321 311 +f 310 317 314 +f 315 313 318 +f 311 316 317 +f 314 323 318 +f 315 324 325 +f 320 317 322 +f 324 318 323 +f 322 316 326 +f 323 320 328 +f 322 326 327 +f 328 322 327 +f 323 328 329 +f 321 331 326 +f 324 323 329 +f 330 324 335 +f 329 334 335 +f 327 326 332 +f 327 332 333 +f 328 327 333 +f 335 336 339 +f 334 333 338 +f 334 338 336 +f 342 349 344 +f 337 342 344 +f 337 344 343 +f 338 337 343 +f 341 347 345 +f 319 365 349 +f 349 354 351 +f 346 353 348 +f 347 344 351 +f 348 356 368 +f 347 352 350 +f 349 365 354 +f 352 351 355 +f 352 357 358 +f 355 354 363 +f 356 353 362 +f 357 355 359 +f 362 358 361 +f 360 359 366 +f 360 364 361 +f 356 372 368 +f 361 371 372 +f 366 363 369 +f 364 366 369 +f 364 367 370 +f 309 365 321 +f 371 361 370 +f 372 371 315 +f 367 369 310 +f 370 313 371 +o Sphere.001 +v 2.033448 2.227698 -1.515605 +v 2.131874 2.053816 -1.653122 +v 2.126078 2.178253 -1.588071 +v 2.178600 2.124914 -1.607153 +v 2.138952 1.913186 -1.639966 +v 2.221500 1.967536 -1.616210 +v 2.144869 1.817377 -1.567146 +v 2.206061 2.199322 -1.507622 +v 2.244626 2.105694 -1.576024 +v 2.237659 1.884103 -1.566047 +v 2.106963 2.252563 -1.390199 +v 2.292080 2.031421 -1.546157 +v 2.130322 2.245651 -1.461106 +v 2.293479 2.121985 -1.475346 +v 2.316634 1.957135 -1.493756 +v 2.271144 1.846072 -1.465263 +v 2.156317 1.769890 -1.468243 +v 2.249985 2.193199 -1.410363 +v 2.301281 2.120121 -1.366165 +v 2.332393 2.035958 -1.376335 +v 2.319767 1.931429 -1.368001 +v 2.196019 1.781843 -1.410254 +v 2.185120 2.225877 -1.356153 +v 2.231560 2.162388 -1.287979 +v 2.270417 2.076893 -1.262769 +v 2.272611 1.980072 -1.250279 +v 2.264073 1.859102 -1.308739 +v 2.178522 1.903163 -1.200322 +v 2.168760 2.122868 -1.207041 +v 2.175310 2.029264 -1.178288 +v 2.176049 1.805560 -1.285710 +v 2.122691 1.765897 -1.350401 +v 2.083411 1.996738 -1.159089 +v 2.128871 2.219494 -1.286566 +v 2.037968 2.080558 -1.176321 +v 2.017139 2.152191 -1.216164 +v 2.037968 1.928490 -1.176321 +v 2.025092 1.854439 -1.216330 +v 1.934696 2.023548 -1.210115 +v 2.018002 1.790957 -1.292889 +v 2.034382 2.226223 -1.305092 +v 1.918502 1.935477 -1.234949 +v 1.911011 2.140527 -1.287236 +v 1.862643 2.028977 -1.297556 +v 1.905087 1.856156 -1.312722 +v 1.946340 2.203569 -1.347483 +v 1.864825 2.121985 -1.388640 +v 1.973505 1.778286 -1.418020 +v 1.834957 2.036728 -1.406636 +v 1.851362 1.911412 -1.370681 +v 1.878940 2.122868 -1.494679 +v 1.852105 2.004242 -1.511909 +v 1.903331 1.912844 -1.563693 +v 1.899070 1.840989 -1.457656 +v 1.928270 2.194206 -1.467442 +v 1.929200 2.028977 -1.605311 +v 2.014533 2.244408 -1.415628 +v 1.943481 2.121985 -1.580282 +v 2.031759 2.022132 -1.655656 +v 2.051081 1.756836 -1.416191 +v 2.009942 2.149943 -1.603245 +v 2.012187 1.930342 -1.638167 +v 2.027613 1.851826 -1.601608 +v 2.017144 1.790953 -1.528024 +s 0 +usemtl light_blue +f 436 389 432 +f 375 376 374 +f 374 378 377 +f 376 381 374 +f 385 380 375 +f 375 381 376 +f 378 381 384 +f 378 382 377 +f 384 387 378 +f 382 388 379 +f 381 380 386 +f 385 390 380 +f 389 388 394 +f 384 386 392 +f 385 383 395 +f 388 393 399 +f 394 399 403 +f 389 394 404 +f 432 389 404 +f 395 396 390 +f 403 404 394 +f 392 397 398 +f 392 398 393 +f 383 406 395 +f 398 400 399 +f 395 406 396 +f 396 406 401 +f 396 401 397 +f 397 401 402 +f 402 405 400 +f 405 409 400 +f 400 409 410 +f 400 410 403 +f 403 410 412 +f 403 412 404 +f 402 407 405 +f 405 407 411 +f 406 383 413 +f 412 432 404 +f 407 408 411 +f 411 414 409 +f 409 414 410 +f 410 414 417 +f 413 415 408 +f 411 415 416 +f 416 422 414 +f 414 422 417 +f 412 417 420 +f 416 419 421 +f 415 418 419 +f 418 429 427 +f 422 426 417 +f 421 424 422 +f 419 427 423 +f 421 423 424 +f 424 425 422 +f 429 373 427 +f 420 426 436 +f 425 436 426 +f 423 427 430 +f 424 430 428 +f 373 433 427 +f 428 433 431 +f 429 383 385 +f 428 434 425 +f 433 375 374 +f 431 377 434 +f 433 373 375 +f 435 377 379 +f 436 379 389 +f 431 374 377 +f 373 385 375 +f 374 381 378 +f 379 377 382 +f 375 380 381 +f 378 387 382 +f 379 388 389 +f 384 381 386 +f 388 382 387 +f 386 380 390 +f 387 384 392 +f 386 390 391 +f 392 386 391 +f 387 392 393 +f 385 395 390 +f 388 387 393 +f 394 388 399 +f 393 398 399 +f 391 390 396 +f 391 396 397 +f 392 391 397 +f 399 400 403 +f 398 397 402 +f 398 402 400 +f 406 413 408 +f 401 406 408 +f 401 408 407 +f 402 401 407 +f 405 411 409 +f 383 429 413 +f 413 418 415 +f 410 417 412 +f 411 408 415 +f 412 420 432 +f 411 416 414 +f 413 429 418 +f 416 415 419 +f 416 421 422 +f 419 418 427 +f 420 417 426 +f 421 419 423 +f 426 422 425 +f 424 423 430 +f 424 428 425 +f 420 436 432 +f 425 435 436 +f 430 427 433 +f 428 430 433 +f 428 431 434 +f 373 429 385 +f 435 425 434 +f 436 435 379 +f 431 433 374 +f 434 377 435 +o Cube +v -1.895519 0.072344 1.895519 +v -1.895519 -0.072344 1.895519 +v -1.895519 0.072344 -1.895519 +v -1.895519 -0.072344 -1.895519 +v 1.895519 0.072344 1.895519 +v 1.895519 -0.072344 1.895519 +v 1.895519 0.072344 -1.895519 +v 1.895519 -0.072344 -1.895519 +v -1.880825 0.072344 -1.880825 +v -1.880825 0.072344 1.880825 +v 1.880825 0.072344 -1.880825 +v 1.880825 0.072344 1.880825 +v -1.880825 -0.072344 1.880825 +v -1.880825 -0.072344 -1.880825 +v 1.880825 -0.072344 -1.880825 +v 1.880825 -0.072344 1.880825 +v -2.189398 0.072344 -1.487762 +v -2.409807 0.072344 -1.028576 +v -2.542053 0.072344 -0.525309 +v -2.586135 0.072344 0.000000 +v -2.542053 0.072344 0.525309 +v -2.409807 0.072344 1.028576 +v -2.189398 0.072344 1.487762 +v -1.880825 0.054258 1.880825 +v -1.880825 0.036172 1.880825 +v -1.880825 0.018086 1.880825 +v -1.880825 0.000000 1.880825 +v -1.880825 -0.018086 1.880825 +v -1.880825 -0.036172 1.880825 +v -1.880825 -0.054258 1.880825 +v -2.189398 -0.072344 1.487762 +v -2.409807 -0.072344 1.028576 +v -2.542053 -0.072344 0.525309 +v -2.586135 -0.072344 0.000000 +v -2.542053 -0.072344 -0.525309 +v -2.409807 -0.072344 -1.028576 +v -2.189398 -0.072344 -1.487762 +v -1.880825 -0.054258 -1.880825 +v -1.880825 -0.036172 -1.880825 +v -1.880825 -0.018086 -1.880825 +v -1.880825 0.000000 -1.880825 +v -1.880825 0.018086 -1.880825 +v -1.880825 0.036172 -1.880825 +v -1.880825 0.054258 -1.880825 +v 1.487762 0.072344 -2.189398 +v 1.028576 0.072344 -2.409807 +v 0.525309 0.072344 -2.542053 +v 0.000000 0.072344 -2.586135 +v -0.525309 0.072344 -2.542053 +v -1.028576 0.072344 -2.409807 +v -1.487762 0.072344 -2.189398 +v -1.487762 -0.072344 -2.189398 +v -1.028576 -0.072344 -2.409807 +v -0.525309 -0.072344 -2.542053 +v 0.000000 -0.072344 -2.586135 +v 0.525309 -0.072344 -2.542053 +v 1.028576 -0.072344 -2.409807 +v 1.487762 -0.072344 -2.189398 +v 1.880825 -0.054258 -1.880825 +v 1.880825 -0.036172 -1.880825 +v 1.880825 -0.018086 -1.880825 +v 1.880825 0.000000 -1.880825 +v 1.880825 0.018086 -1.880825 +v 1.880825 0.036172 -1.880825 +v 1.880825 0.054258 -1.880825 +v 2.189398 0.072344 1.487762 +v 2.409807 0.072344 1.028576 +v 2.542053 0.072344 0.525309 +v 2.586135 0.072344 0.000000 +v 2.542053 0.072344 -0.525309 +v 2.409807 0.072344 -1.028576 +v 2.189398 0.072344 -1.487762 +v 2.189398 -0.072344 -1.487762 +v 2.409807 -0.072344 -1.028576 +v 2.542053 -0.072344 -0.525309 +v 2.586135 -0.072344 0.000000 +v 2.542053 -0.072344 0.525309 +v 2.409807 -0.072344 1.028576 +v 2.189398 -0.072344 1.487762 +v 1.880825 -0.054258 1.880825 +v 1.880825 -0.036172 1.880825 +v 1.880825 -0.018086 1.880825 +v 1.880825 0.000000 1.880825 +v 1.880825 0.018086 1.880825 +v 1.880825 0.036172 1.880825 +v 1.880825 0.054258 1.880825 +v -1.487762 0.072344 2.189398 +v -1.028576 0.072344 2.409807 +v -0.525309 0.072344 2.542053 +v 0.000000 0.072344 2.586135 +v 0.525309 0.072344 2.542053 +v 1.028576 0.072344 2.409807 +v 1.487762 0.072344 2.189398 +v 1.487762 -0.072344 2.189398 +v 1.028576 -0.072344 2.409807 +v 0.525309 -0.072344 2.542053 +v 0.000000 -0.072344 2.586135 +v -0.525309 -0.072344 2.542053 +v -1.028576 -0.072344 2.409807 +v -1.487762 -0.072344 2.189398 +v -2.189398 0.072344 -1.487762 +v -2.409807 0.072344 -1.028576 +v -2.542053 0.072344 -0.525309 +v -2.586135 0.072344 0.000000 +v -2.542053 0.072344 0.525309 +v -2.409807 0.072344 1.028576 +v -2.189398 0.072344 1.487762 +v 1.487762 0.072344 -2.189398 +v 1.028576 0.072344 -2.409807 +v 0.525309 0.072344 -2.542053 +v 0.000000 0.072344 -2.586135 +v -0.525309 0.072344 -2.542053 +v -1.028576 0.072344 -2.409807 +v -1.487762 0.072344 -2.189398 +v -1.487762 0.072344 2.189398 +v -1.028576 0.072344 2.409807 +v -0.525309 0.072344 2.542053 +v 0.000000 0.072344 2.586135 +v 0.525309 0.072344 2.542053 +v 1.028576 0.072344 2.409807 +v 1.487762 0.072344 2.189398 +v 2.189398 0.072344 1.487762 +v 2.409807 0.072344 1.028576 +v 2.542053 0.072344 0.525309 +v 2.586135 0.072344 0.000000 +v 2.542053 0.072344 -0.525309 +v 2.409807 0.072344 -1.028576 +v 2.189398 0.072344 -1.487762 +v -2.189398 -0.072344 1.487762 +v -2.409807 -0.072344 1.028576 +v -2.542053 -0.072344 0.525309 +v -2.586135 -0.072344 0.000000 +v -2.542053 -0.072344 -0.525309 +v -2.409807 -0.072344 -1.028576 +v -2.189398 -0.072344 -1.487762 +v 1.487762 -0.072344 2.189398 +v 1.028576 -0.072344 2.409807 +v 0.525309 -0.072344 2.542053 +v 0.000000 -0.072344 2.586135 +v -0.525309 -0.072344 2.542053 +v -1.028576 -0.072344 2.409807 +v -1.487762 -0.072344 2.189398 +v -1.487762 -0.072344 -2.189398 +v -1.028576 -0.072344 -2.409807 +v -0.525309 -0.072344 -2.542053 +v 0.000000 -0.072344 -2.586135 +v 0.525309 -0.072344 -2.542053 +v 1.028576 -0.072344 -2.409807 +v 1.487762 -0.072344 -2.189398 +v 2.189398 -0.072344 -1.487762 +v 2.409807 -0.072344 -1.028576 +v 2.542053 -0.072344 -0.525309 +v 2.586135 -0.072344 0.000000 +v 2.542053 -0.072344 0.525309 +v 2.409807 -0.072344 1.028576 +v 2.189398 -0.072344 1.487762 +v -2.189398 0.054258 1.487762 +v -2.189399 0.036172 1.487762 +v -2.189398 0.018086 1.487762 +v -2.189398 0.000000 1.487762 +v -2.189398 -0.018086 1.487762 +v -2.189399 -0.036172 1.487762 +v -2.189398 -0.054258 1.487762 +v -2.409808 0.054258 1.028576 +v -2.409807 0.036172 1.028576 +v -2.409807 0.018086 1.028576 +v -2.409808 0.000000 1.028576 +v -2.409808 -0.018086 1.028576 +v -2.409807 -0.036172 1.028576 +v -2.409808 -0.054258 1.028576 +v -2.542053 0.054258 0.525309 +v -2.542053 0.036172 0.525309 +v -2.542053 0.018086 0.525309 +v -2.542053 0.000000 0.525309 +v -2.542053 -0.018086 0.525309 +v -2.542053 -0.036172 0.525309 +v -2.542053 -0.054258 0.525309 +v -2.586135 0.054258 0.000000 +v -2.586135 0.036172 0.000000 +v -2.586134 0.018086 0.000000 +v -2.586135 0.000000 0.000000 +v -2.586134 -0.018086 0.000000 +v -2.586135 -0.036172 0.000000 +v -2.586135 -0.054258 0.000000 +v -2.542053 0.054258 -0.525309 +v -2.542053 0.036172 -0.525309 +v -2.542053 0.018086 -0.525309 +v -2.542053 0.000000 -0.525309 +v -2.542053 -0.018086 -0.525309 +v -2.542053 -0.036172 -0.525309 +v -2.542053 -0.054258 -0.525309 +v -2.409807 0.054258 -1.028576 +v -2.409807 0.036172 -1.028576 +v -2.409808 0.018086 -1.028576 +v -2.409807 0.000000 -1.028576 +v -2.409808 -0.018086 -1.028576 +v -2.409807 -0.036172 -1.028576 +v -2.409807 -0.054258 -1.028576 +v -2.189398 0.054258 -1.487762 +v -2.189398 0.036172 -1.487762 +v -2.189398 0.018086 -1.487762 +v -2.189398 0.000000 -1.487762 +v -2.189398 -0.018086 -1.487762 +v -2.189398 -0.036172 -1.487762 +v -2.189398 -0.054258 -1.487762 +v -1.487762 0.054258 -2.189398 +v -1.487762 0.036172 -2.189398 +v -1.487762 0.018086 -2.189398 +v -1.487762 0.000000 -2.189398 +v -1.487762 -0.018086 -2.189398 +v -1.487762 -0.036172 -2.189398 +v -1.487762 -0.054258 -2.189398 +v -1.028576 0.054258 -2.409808 +v -1.028576 0.036172 -2.409808 +v -1.028576 0.018086 -2.409807 +v -1.028576 0.000000 -2.409808 +v -1.028576 -0.018086 -2.409807 +v -1.028576 -0.036172 -2.409808 +v -1.028576 -0.054258 -2.409807 +v -0.525309 0.054258 -2.542053 +v -0.525309 0.036172 -2.542053 +v -0.525309 0.018086 -2.542053 +v -0.525309 0.000000 -2.542053 +v -0.525309 -0.018086 -2.542053 +v -0.525309 -0.036172 -2.542053 +v -0.525309 -0.054258 -2.542053 +v -0.000000 0.054258 -2.586135 +v 0.000000 0.036172 -2.586135 +v -0.000000 0.018086 -2.586134 +v 0.000000 0.000000 -2.586135 +v -0.000000 -0.018086 -2.586134 +v 0.000000 -0.036172 -2.586135 +v -0.000000 -0.054258 -2.586135 +v 0.525309 0.054258 -2.542053 +v 0.525309 0.036172 -2.542053 +v 0.525309 0.018086 -2.542053 +v 0.525309 0.000000 -2.542053 +v 0.525309 -0.018086 -2.542053 +v 0.525309 -0.036172 -2.542053 +v 0.525309 -0.054258 -2.542053 +v 1.028576 0.054258 -2.409807 +v 1.028576 0.036172 -2.409807 +v 1.028576 0.018086 -2.409808 +v 1.028576 0.000000 -2.409807 +v 1.028576 -0.018086 -2.409808 +v 1.028576 -0.036172 -2.409807 +v 1.028576 -0.054258 -2.409807 +v 1.487762 0.054258 -2.189398 +v 1.487762 0.036172 -2.189398 +v 1.487762 0.018086 -2.189398 +v 1.487762 0.000000 -2.189398 +v 1.487762 -0.018086 -2.189398 +v 1.487762 -0.036172 -2.189398 +v 1.487762 -0.054258 -2.189398 +v 2.189398 0.054258 -1.487762 +v 2.189398 0.036172 -1.487762 +v 2.189398 0.018086 -1.487762 +v 2.189398 0.000000 -1.487762 +v 2.189398 -0.018086 -1.487762 +v 2.189398 -0.036172 -1.487762 +v 2.189398 -0.054258 -1.487762 +v 2.409808 0.054258 -1.028576 +v 2.409808 0.036172 -1.028576 +v 2.409807 0.018086 -1.028576 +v 2.409808 0.000000 -1.028576 +v 2.409807 -0.018086 -1.028576 +v 2.409808 -0.036172 -1.028576 +v 2.409807 -0.054258 -1.028576 +v 2.542053 0.054258 -0.525309 +v 2.542053 0.036172 -0.525309 +v 2.542053 0.018086 -0.525309 +v 2.542053 0.000000 -0.525309 +v 2.542053 -0.018086 -0.525309 +v 2.542053 -0.036172 -0.525309 +v 2.542053 -0.054258 -0.525309 +v 2.586135 0.054258 -0.000000 +v 2.586135 0.036172 0.000000 +v 2.586134 0.018086 -0.000000 +v 2.586135 0.000000 0.000000 +v 2.586134 -0.018086 -0.000000 +v 2.586135 -0.036172 0.000000 +v 2.586135 -0.054258 -0.000000 +v 2.542053 0.054258 0.525309 +v 2.542053 0.036172 0.525309 +v 2.542053 0.018086 0.525309 +v 2.542053 0.000000 0.525309 +v 2.542053 -0.018086 0.525309 +v 2.542053 -0.036172 0.525309 +v 2.542053 -0.054258 0.525309 +v 2.409807 0.054258 1.028576 +v 2.409807 0.036172 1.028576 +v 2.409808 0.018086 1.028576 +v 2.409807 0.000000 1.028576 +v 2.409808 -0.018086 1.028576 +v 2.409807 -0.036172 1.028576 +v 2.409807 -0.054258 1.028576 +v 2.189398 0.054258 1.487762 +v 2.189398 0.036172 1.487762 +v 2.189398 0.018086 1.487762 +v 2.189398 0.000000 1.487762 +v 2.189398 -0.018086 1.487762 +v 2.189398 -0.036172 1.487762 +v 2.189398 -0.054258 1.487762 +v 1.487762 0.054258 2.189398 +v 1.487762 0.036172 2.189398 +v 1.487762 0.018086 2.189398 +v 1.487762 0.000000 2.189398 +v 1.487762 -0.018086 2.189398 +v 1.487762 -0.036172 2.189398 +v 1.487762 -0.054258 2.189398 +v 1.028576 0.054258 2.409808 +v 1.028576 0.036172 2.409808 +v 1.028576 0.018086 2.409807 +v 1.028576 0.000000 2.409808 +v 1.028576 -0.018086 2.409807 +v 1.028576 -0.036172 2.409808 +v 1.028576 -0.054258 2.409807 +v 0.525309 0.054258 2.542053 +v 0.525309 0.036172 2.542053 +v 0.525309 0.018086 2.542053 +v 0.525309 0.000000 2.542053 +v 0.525309 -0.018086 2.542053 +v 0.525309 -0.036172 2.542053 +v 0.525309 -0.054258 2.542053 +v 0.000000 0.054258 2.586135 +v 0.000000 0.036172 2.586135 +v 0.000000 0.018086 2.586135 +v 0.000000 0.000000 2.586135 +v 0.000000 -0.018086 2.586135 +v 0.000000 -0.036172 2.586135 +v 0.000000 -0.054258 2.586135 +v -0.525309 0.054258 2.542053 +v -0.525309 0.036172 2.542053 +v -0.525309 0.018086 2.542053 +v -0.525309 0.000000 2.542053 +v -0.525309 -0.018086 2.542053 +v -0.525309 -0.036172 2.542053 +v -0.525309 -0.054258 2.542053 +v -1.028576 0.054258 2.409807 +v -1.028576 0.036172 2.409807 +v -1.028576 0.018086 2.409807 +v -1.028576 0.000000 2.409807 +v -1.028576 -0.018086 2.409807 +v -1.028576 -0.036172 2.409807 +v -1.028576 -0.054258 2.409807 +v -1.487762 0.054258 2.189398 +v -1.487762 0.036172 2.189398 +v -1.487762 0.018086 2.189398 +v -1.487762 0.000000 2.189398 +v -1.487762 -0.018086 2.189398 +v -1.487762 -0.036172 2.189398 +v -1.487762 -0.054258 2.189398 +v -1.667380 0.072344 -1.667380 +v -1.128985 0.072344 -1.814090 +v -0.570232 0.072344 -1.907382 +v 0.000000 0.072344 -1.939601 +v 0.570232 0.072344 -1.907382 +v 1.128985 0.072344 -1.814090 +v 1.667380 0.072344 -1.667380 +v -1.814090 0.072344 -1.128985 +v -1.214700 0.072344 -1.214700 +v -0.609187 0.072344 -1.272251 +v 0.000000 0.072344 -1.293067 +v 0.609187 0.072344 -1.272251 +v 1.214700 0.072344 -1.214700 +v 1.814091 0.072344 -1.128985 +v -1.907382 0.072344 -0.570232 +v -1.272251 0.072344 -0.609187 +v -0.636355 0.072344 -0.636355 +v 0.000000 0.072344 -0.646534 +v 0.636355 0.072344 -0.636355 +v 1.272251 0.072344 -0.609187 +v 1.907381 0.072344 -0.570232 +v -1.939601 0.072344 0.000000 +v -1.293067 0.072344 -0.000000 +v -0.646534 0.072344 0.000000 +v 0.000000 0.072344 0.000000 +v 0.646534 0.072344 0.000000 +v 1.293067 0.072344 0.000000 +v 1.939601 0.072344 -0.000000 +v -1.907382 0.072344 0.570232 +v -1.272251 0.072344 0.609187 +v -0.636355 0.072344 0.636355 +v 0.000000 0.072344 0.646534 +v 0.636355 0.072344 0.636355 +v 1.272251 0.072344 0.609187 +v 1.907382 0.072344 0.570232 +v -1.814090 0.072344 1.128985 +v -1.214700 0.072344 1.214700 +v -0.609187 0.072344 1.272251 +v 0.000000 0.072344 1.293067 +v 0.609187 0.072344 1.272251 +v 1.214700 0.072344 1.214700 +v 1.814090 0.072344 1.128985 +v -1.667380 0.072344 1.667380 +v -1.128985 0.072344 1.814091 +v -0.570232 0.072344 1.907382 +v 0.000000 0.072344 1.939601 +v 0.570232 0.072344 1.907382 +v 1.128985 0.072344 1.814090 +v 1.667380 0.072344 1.667380 +v 1.667380 -0.072344 -1.667380 +v 1.128985 -0.072344 -1.814090 +v 0.570232 -0.072344 -1.907382 +v 0.000000 -0.072344 -1.939601 +v -0.570232 -0.072344 -1.907382 +v -1.128985 -0.072344 -1.814090 +v -1.667380 -0.072344 -1.667380 +v 1.814090 -0.072344 -1.128985 +v 1.214700 -0.072344 -1.214700 +v 0.609187 -0.072344 -1.272251 +v 0.000000 -0.072344 -1.293067 +v -0.609187 -0.072344 -1.272251 +v -1.214700 -0.072344 -1.214700 +v -1.814091 -0.072344 -1.128985 +v 1.907382 -0.072344 -0.570232 +v 1.272251 -0.072344 -0.609187 +v 0.636355 -0.072344 -0.636355 +v 0.000000 -0.072344 -0.646534 +v -0.636355 -0.072344 -0.636355 +v -1.272251 -0.072344 -0.609187 +v -1.907381 -0.072344 -0.570232 +v 1.939601 -0.072344 0.000000 +v 1.293067 -0.072344 -0.000000 +v 0.646534 -0.072344 0.000000 +v 0.000000 -0.072344 0.000000 +v -0.646534 -0.072344 0.000000 +v -1.293067 -0.072344 0.000000 +v -1.939601 -0.072344 -0.000000 +v 1.907382 -0.072344 0.570232 +v 1.272251 -0.072344 0.609187 +v 0.636355 -0.072344 0.636355 +v 0.000000 -0.072344 0.646534 +v -0.636355 -0.072344 0.636355 +v -1.272251 -0.072344 0.609187 +v -1.907382 -0.072344 0.570232 +v 1.814090 -0.072344 1.128985 +v 1.214700 -0.072344 1.214700 +v 0.609187 -0.072344 1.272251 +v 0.000000 -0.072344 1.293067 +v -0.609187 -0.072344 1.272251 +v -1.214700 -0.072344 1.214700 +v -1.814090 -0.072344 1.128985 +v 1.667380 -0.072344 1.667380 +v 1.128985 -0.072344 1.814091 +v 0.570232 -0.072344 1.907382 +v 0.000000 -0.072344 1.939601 +v -0.570232 -0.072344 1.907382 +v -1.128985 -0.072344 1.814090 +v -1.667380 -0.072344 1.667380 +s 0 +usemtl white +f 594 593 600 +f 595 594 601 +f 596 595 602 +f 597 596 603 +f 598 597 604 +f 598 605 606 +f 601 600 607 +f 601 608 609 +f 603 602 609 +f 604 603 610 +f 605 604 611 +f 606 605 612 +f 607 614 615 +f 608 615 616 +f 610 609 616 +f 610 617 618 +f 611 618 619 +f 613 612 619 +f 615 614 621 +f 616 615 622 +f 616 623 624 +f 618 617 624 +f 619 618 625 +f 620 619 626 +f 621 628 629 +f 623 622 629 +f 624 623 630 +f 624 631 632 +f 626 625 632 +f 627 626 633 +f 629 628 635 +f 630 629 636 +f 631 630 637 +f 632 631 638 +f 633 632 639 +f 634 633 640 +f 460 446 459 +f 461 460 593 +f 462 461 594 +f 462 595 596 +f 464 463 596 +f 465 464 597 +f 465 598 599 +f 466 599 467 +f 467 599 606 +f 606 613 469 +f 469 613 620 +f 470 620 627 +f 471 627 634 +f 472 634 641 +f 473 641 474 +f 641 640 475 +f 640 639 476 +f 639 638 477 +f 638 637 478 +f 637 636 479 +f 635 480 479 +f 635 453 445 +f 628 454 453 +f 455 454 628 +f 614 456 455 +f 457 456 614 +f 600 458 457 +f 459 458 600 +f 643 642 649 +f 644 643 650 +f 644 651 652 +f 646 645 652 +f 646 653 654 +f 647 654 655 +f 650 649 656 +f 651 650 657 +f 652 651 658 +f 653 652 659 +f 654 653 660 +f 655 654 661 +f 656 663 664 +f 658 657 664 +f 658 665 666 +f 660 659 666 +f 660 667 668 +f 662 661 668 +f 664 663 670 +f 665 664 671 +f 665 672 673 +f 667 666 673 +f 668 667 674 +f 669 668 675 +f 670 677 678 +f 672 671 678 +f 673 672 679 +f 673 680 681 +f 675 674 681 +f 676 675 682 +f 678 677 684 +f 679 678 685 +f 680 679 686 +f 681 680 687 +f 682 681 688 +f 683 682 689 +f 480 445 487 +f 480 642 643 +f 478 479 643 +f 477 478 644 +f 476 477 645 +f 475 476 646 +f 474 475 647 +f 450 474 648 +f 488 648 655 +f 655 662 490 +f 490 662 669 +f 491 669 676 +f 492 676 683 +f 493 683 690 +f 494 690 495 +f 690 689 496 +f 689 688 497 +f 688 687 498 +f 687 686 499 +f 686 685 500 +f 684 501 500 +f 684 481 447 +f 677 482 481 +f 483 482 677 +f 663 484 483 +f 656 485 484 +f 649 486 485 +f 642 487 486 +f 692 691 698 +f 693 692 699 +f 693 700 701 +f 695 694 701 +f 695 702 703 +f 696 703 704 +f 699 698 705 +f 700 699 706 +f 701 700 707 +f 702 701 708 +f 703 702 709 +f 704 703 710 +f 705 712 713 +f 707 706 713 +f 707 714 715 +f 709 708 715 +f 709 716 717 +f 711 710 717 +f 713 712 719 +f 714 713 720 +f 714 721 722 +f 716 715 722 +f 717 716 723 +f 718 717 724 +f 719 726 727 +f 721 720 727 +f 722 721 728 +f 722 729 730 +f 724 723 730 +f 725 724 731 +f 727 726 733 +f 728 727 734 +f 729 728 735 +f 730 729 736 +f 731 730 737 +f 732 731 738 +f 501 447 508 +f 501 691 692 +f 499 500 692 +f 498 499 693 +f 497 498 694 +f 496 497 695 +f 495 496 696 +f 451 495 697 +f 509 697 704 +f 704 711 511 +f 511 711 718 +f 512 718 725 +f 513 725 732 +f 514 732 739 +f 515 739 516 +f 739 738 517 +f 738 737 518 +f 737 736 519 +f 736 735 520 +f 735 734 521 +f 733 522 521 +f 733 502 448 +f 726 503 502 +f 504 503 726 +f 712 505 504 +f 705 506 505 +f 698 507 506 +f 691 508 507 +f 741 740 747 +f 742 741 748 +f 742 749 750 +f 744 743 750 +f 744 751 752 +f 745 752 753 +f 748 747 754 +f 749 748 755 +f 750 749 756 +f 751 750 757 +f 752 751 758 +f 753 752 759 +f 755 754 761 +f 756 755 762 +f 756 763 764 +f 758 757 764 +f 758 765 766 +f 760 759 766 +f 762 761 768 +f 763 762 769 +f 764 763 770 +f 765 764 771 +f 766 765 772 +f 766 773 774 +f 769 768 775 +f 770 769 776 +f 770 777 778 +f 772 771 778 +f 772 779 780 +f 773 780 781 +f 776 775 782 +f 776 783 784 +f 778 777 784 +f 779 778 785 +f 780 779 786 +f 780 787 788 +f 522 448 529 +f 522 740 741 +f 520 521 741 +f 519 520 742 +f 518 519 743 +f 517 518 744 +f 516 517 745 +f 452 516 746 +f 530 746 753 +f 753 760 532 +f 760 767 533 +f 767 774 534 +f 534 774 781 +f 781 788 536 +f 536 788 466 +f 787 465 466 +f 787 786 464 +f 785 463 464 +f 785 784 462 +f 784 783 461 +f 782 460 461 +f 782 523 446 +f 775 524 523 +f 525 524 775 +f 761 526 525 +f 754 527 526 +f 747 528 527 +f 740 529 528 +f 789 796 797 +f 790 797 798 +f 791 798 799 +f 793 792 799 +f 794 793 800 +f 795 794 801 +f 796 803 804 +f 797 804 805 +f 798 805 806 +f 800 799 806 +f 801 800 807 +f 802 801 808 +f 803 810 811 +f 804 811 812 +f 805 812 813 +f 807 806 813 +f 808 807 814 +f 809 808 815 +f 811 810 817 +f 812 811 818 +f 813 812 819 +f 813 820 821 +f 814 821 822 +f 815 822 823 +f 818 817 824 +f 819 818 825 +f 820 819 826 +f 820 827 828 +f 821 828 829 +f 822 829 830 +f 825 824 831 +f 826 825 832 +f 827 826 833 +f 827 834 835 +f 828 835 836 +f 829 836 837 +f 439 537 789 +f 550 789 790 +f 549 790 791 +f 548 791 792 +f 546 547 792 +f 545 546 793 +f 544 545 794 +f 443 544 795 +f 564 795 802 +f 563 802 809 +f 562 809 816 +f 816 823 560 +f 823 830 559 +f 830 837 558 +f 837 557 441 +f 836 556 557 +f 835 555 556 +f 834 554 555 +f 834 833 553 +f 833 832 552 +f 832 831 551 +f 831 543 437 +f 824 542 543 +f 817 541 542 +f 810 540 541 +f 539 540 810 +f 538 539 803 +f 537 538 796 +f 838 845 846 +f 839 846 847 +f 840 847 848 +f 842 841 848 +f 843 842 849 +f 844 843 850 +f 845 852 853 +f 846 853 854 +f 847 854 855 +f 849 848 855 +f 850 849 856 +f 851 850 857 +f 852 859 860 +f 853 860 861 +f 854 861 862 +f 856 855 862 +f 857 856 863 +f 858 857 864 +f 860 859 866 +f 861 860 867 +f 862 861 868 +f 862 869 870 +f 863 870 871 +f 864 871 872 +f 867 866 873 +f 868 867 874 +f 869 868 875 +f 869 876 877 +f 870 877 878 +f 871 878 879 +f 874 873 880 +f 875 874 881 +f 876 875 882 +f 876 883 884 +f 877 884 885 +f 878 885 886 +f 444 586 838 +f 585 838 839 +f 584 839 840 +f 583 840 841 +f 581 582 841 +f 580 581 842 +f 579 580 843 +f 440 579 844 +f 571 844 851 +f 570 851 858 +f 569 858 865 +f 865 872 567 +f 872 879 566 +f 879 886 565 +f 886 578 438 +f 885 577 578 +f 884 576 577 +f 883 575 576 +f 883 882 574 +f 882 881 573 +f 881 880 572 +f 880 592 442 +f 873 591 592 +f 866 590 591 +f 859 589 590 +f 588 589 859 +f 587 588 852 +f 586 587 845 +f 594 600 601 +f 595 601 602 +f 596 602 603 +f 597 603 604 +f 598 604 605 +f 598 606 599 +f 601 607 608 +f 601 609 602 +f 603 609 610 +f 604 610 611 +f 605 611 612 +f 606 612 613 +f 607 615 608 +f 608 616 609 +f 610 616 617 +f 610 618 611 +f 611 619 612 +f 613 619 620 +f 615 621 622 +f 616 622 623 +f 616 624 617 +f 618 624 625 +f 619 625 626 +f 620 626 627 +f 621 629 622 +f 623 629 630 +f 624 630 631 +f 624 632 625 +f 626 632 633 +f 627 633 634 +f 629 635 636 +f 630 636 637 +f 631 637 638 +f 632 638 639 +f 633 639 640 +f 634 640 641 +f 460 459 593 +f 461 593 594 +f 462 594 595 +f 462 596 463 +f 464 596 597 +f 465 597 598 +f 465 599 466 +f 466 467 449 +f 467 606 468 +f 606 469 468 +f 469 620 470 +f 470 627 471 +f 471 634 472 +f 472 641 473 +f 473 474 450 +f 641 475 474 +f 640 476 475 +f 639 477 476 +f 638 478 477 +f 637 479 478 +f 635 479 636 +f 635 445 480 +f 628 453 635 +f 455 628 621 +f 614 455 621 +f 457 614 607 +f 600 457 607 +f 459 600 593 +f 643 649 650 +f 644 650 651 +f 644 652 645 +f 646 652 653 +f 646 654 647 +f 647 655 648 +f 650 656 657 +f 651 657 658 +f 652 658 659 +f 653 659 660 +f 654 660 661 +f 655 661 662 +f 656 664 657 +f 658 664 665 +f 658 666 659 +f 660 666 667 +f 660 668 661 +f 662 668 669 +f 664 670 671 +f 665 671 672 +f 665 673 666 +f 667 673 674 +f 668 674 675 +f 669 675 676 +f 670 678 671 +f 672 678 679 +f 673 679 680 +f 673 681 674 +f 675 681 682 +f 676 682 683 +f 678 684 685 +f 679 685 686 +f 680 686 687 +f 681 687 688 +f 682 688 689 +f 683 689 690 +f 480 487 642 +f 480 643 479 +f 478 643 644 +f 477 644 645 +f 476 645 646 +f 475 646 647 +f 474 647 648 +f 450 648 488 +f 488 655 489 +f 655 490 489 +f 490 669 491 +f 491 676 492 +f 492 683 493 +f 493 690 494 +f 494 495 451 +f 690 496 495 +f 689 497 496 +f 688 498 497 +f 687 499 498 +f 686 500 499 +f 684 500 685 +f 684 447 501 +f 677 481 684 +f 483 677 670 +f 663 483 670 +f 656 484 663 +f 649 485 656 +f 642 486 649 +f 692 698 699 +f 693 699 700 +f 693 701 694 +f 695 701 702 +f 695 703 696 +f 696 704 697 +f 699 705 706 +f 700 706 707 +f 701 707 708 +f 702 708 709 +f 703 709 710 +f 704 710 711 +f 705 713 706 +f 707 713 714 +f 707 715 708 +f 709 715 716 +f 709 717 710 +f 711 717 718 +f 713 719 720 +f 714 720 721 +f 714 722 715 +f 716 722 723 +f 717 723 724 +f 718 724 725 +f 719 727 720 +f 721 727 728 +f 722 728 729 +f 722 730 723 +f 724 730 731 +f 725 731 732 +f 727 733 734 +f 728 734 735 +f 729 735 736 +f 730 736 737 +f 731 737 738 +f 732 738 739 +f 501 508 691 +f 501 692 500 +f 499 692 693 +f 498 693 694 +f 497 694 695 +f 496 695 696 +f 495 696 697 +f 451 697 509 +f 509 704 510 +f 704 511 510 +f 511 718 512 +f 512 725 513 +f 513 732 514 +f 514 739 515 +f 515 516 452 +f 739 517 516 +f 738 518 517 +f 737 519 518 +f 736 520 519 +f 735 521 520 +f 733 521 734 +f 733 448 522 +f 726 502 733 +f 504 726 719 +f 712 504 719 +f 705 505 712 +f 698 506 705 +f 691 507 698 +f 741 747 748 +f 742 748 749 +f 742 750 743 +f 744 750 751 +f 744 752 745 +f 745 753 746 +f 748 754 755 +f 749 755 756 +f 750 756 757 +f 751 757 758 +f 752 758 759 +f 753 759 760 +f 755 761 762 +f 756 762 763 +f 756 764 757 +f 758 764 765 +f 758 766 759 +f 760 766 767 +f 762 768 769 +f 763 769 770 +f 764 770 771 +f 765 771 772 +f 766 772 773 +f 766 774 767 +f 769 775 776 +f 770 776 777 +f 770 778 771 +f 772 778 779 +f 772 780 773 +f 773 781 774 +f 776 782 783 +f 776 784 777 +f 778 784 785 +f 779 785 786 +f 780 786 787 +f 780 788 781 +f 522 529 740 +f 522 741 521 +f 520 741 742 +f 519 742 743 +f 518 743 744 +f 517 744 745 +f 516 745 746 +f 452 746 530 +f 530 753 531 +f 753 532 531 +f 760 533 532 +f 767 534 533 +f 534 781 535 +f 781 536 535 +f 536 466 449 +f 787 466 788 +f 787 464 465 +f 785 464 786 +f 785 462 463 +f 784 461 462 +f 782 461 783 +f 782 446 460 +f 775 523 782 +f 525 775 768 +f 761 525 768 +f 754 526 761 +f 747 527 754 +f 740 528 747 +f 789 797 790 +f 790 798 791 +f 791 799 792 +f 793 799 800 +f 794 800 801 +f 795 801 802 +f 796 804 797 +f 797 805 798 +f 798 806 799 +f 800 806 807 +f 801 807 808 +f 802 808 809 +f 803 811 804 +f 804 812 805 +f 805 813 806 +f 807 813 814 +f 808 814 815 +f 809 815 816 +f 811 817 818 +f 812 818 819 +f 813 819 820 +f 813 821 814 +f 814 822 815 +f 815 823 816 +f 818 824 825 +f 819 825 826 +f 820 826 827 +f 820 828 821 +f 821 829 822 +f 822 830 823 +f 825 831 832 +f 826 832 833 +f 827 833 834 +f 827 835 828 +f 828 836 829 +f 829 837 830 +f 439 789 550 +f 550 790 549 +f 549 791 548 +f 548 792 547 +f 546 792 793 +f 545 793 794 +f 544 794 795 +f 443 795 564 +f 564 802 563 +f 563 809 562 +f 562 816 561 +f 816 560 561 +f 823 559 560 +f 830 558 559 +f 837 441 558 +f 836 557 837 +f 835 556 836 +f 834 555 835 +f 834 553 554 +f 833 552 553 +f 832 551 552 +f 831 437 551 +f 824 543 831 +f 817 542 824 +f 810 541 817 +f 539 810 803 +f 538 803 796 +f 537 796 789 +f 838 846 839 +f 839 847 840 +f 840 848 841 +f 842 848 849 +f 843 849 850 +f 844 850 851 +f 845 853 846 +f 846 854 847 +f 847 855 848 +f 849 855 856 +f 850 856 857 +f 851 857 858 +f 852 860 853 +f 853 861 854 +f 854 862 855 +f 856 862 863 +f 857 863 864 +f 858 864 865 +f 860 866 867 +f 861 867 868 +f 862 868 869 +f 862 870 863 +f 863 871 864 +f 864 872 865 +f 867 873 874 +f 868 874 875 +f 869 875 876 +f 869 877 870 +f 870 878 871 +f 871 879 872 +f 874 880 881 +f 875 881 882 +f 876 882 883 +f 876 884 877 +f 877 885 878 +f 878 886 879 +f 444 838 585 +f 585 839 584 +f 584 840 583 +f 583 841 582 +f 581 841 842 +f 580 842 843 +f 579 843 844 +f 440 844 571 +f 571 851 570 +f 570 858 569 +f 569 865 568 +f 865 567 568 +f 872 566 567 +f 879 565 566 +f 886 438 565 +f 885 578 886 +f 884 577 885 +f 883 576 884 +f 883 574 575 +f 882 573 574 +f 881 572 573 +f 880 442 572 +f 873 592 880 +f 866 591 873 +f 859 590 866 +f 588 859 852 +f 587 852 845 +f 586 845 838 +o Sphere.002 +v 0.036194 3.736270 1.107309 +v 0.134620 3.562388 0.969793 +v 0.128824 3.686825 1.034844 +v 0.181346 3.633487 1.015762 +v 0.141697 3.421758 0.982949 +v 0.224245 3.476108 1.006705 +v 0.147614 3.325949 1.055769 +v 0.208807 3.707894 1.115293 +v 0.247371 3.614266 1.046891 +v 0.240405 3.392675 1.056868 +v 0.109709 3.761135 1.232716 +v 0.294825 3.539994 1.076758 +v 0.133068 3.754224 1.161808 +v 0.296225 3.630557 1.147568 +v 0.319380 3.465708 1.129159 +v 0.273889 3.354645 1.157652 +v 0.159063 3.278463 1.154672 +v 0.252731 3.701772 1.212552 +v 0.304026 3.628693 1.256749 +v 0.335139 3.544530 1.246580 +v 0.322512 3.440001 1.254914 +v 0.198765 3.290415 1.212661 +v 0.187866 3.734449 1.266761 +v 0.234306 3.670960 1.334935 +v 0.273162 3.585465 1.360146 +v 0.275357 3.488644 1.372635 +v 0.266819 3.367674 1.314175 +v 0.181268 3.411736 1.422593 +v 0.171505 3.631440 1.415874 +v 0.178056 3.537837 1.444626 +v 0.178795 3.314132 1.337205 +v 0.125436 3.274470 1.272514 +v 0.086157 3.505310 1.463826 +v 0.131617 3.728067 1.336349 +v 0.040714 3.589131 1.446594 +v 0.019885 3.660764 1.406751 +v 0.040714 3.437063 1.446594 +v 0.027838 3.363011 1.406585 +v -0.062558 3.532121 1.412799 +v 0.020748 3.299530 1.330025 +v 0.037128 3.734795 1.317823 +v -0.078752 3.444049 1.387965 +v -0.086243 3.649099 1.335678 +v -0.134611 3.537550 1.325359 +v -0.092167 3.364728 1.310193 +v -0.050915 3.712142 1.275432 +v -0.132429 3.630557 1.234275 +v -0.023749 3.286859 1.204895 +v -0.162297 3.545300 1.216279 +v -0.145892 3.419985 1.252234 +v -0.118314 3.631440 1.128235 +v -0.145149 3.512815 1.111005 +v -0.093923 3.421417 1.059222 +v -0.098184 3.349561 1.165258 +v -0.068984 3.702778 1.155473 +v -0.068054 3.537550 1.017604 +v 0.017279 3.752980 1.207287 +v -0.053773 3.630557 1.042633 +v 0.034505 3.530705 0.967258 +v 0.053827 3.265408 1.206724 +v 0.012687 3.658515 1.019670 +v 0.014932 3.438915 0.984748 +v 0.030359 3.360398 1.021307 +v 0.019890 3.299525 1.094891 +s 0 +usemtl light_green +f 950 903 946 +f 889 890 888 +f 888 892 891 +f 890 895 888 +f 899 894 889 +f 889 895 890 +f 892 895 898 +f 892 896 891 +f 898 901 892 +f 896 902 893 +f 895 894 900 +f 899 904 894 +f 903 902 908 +f 898 900 906 +f 899 897 909 +f 902 907 913 +f 908 913 917 +f 903 908 918 +f 946 903 918 +f 909 910 904 +f 917 918 908 +f 906 911 912 +f 906 912 907 +f 897 920 909 +f 912 914 913 +f 909 920 910 +f 910 920 915 +f 910 915 911 +f 911 915 916 +f 916 919 914 +f 919 923 914 +f 914 923 924 +f 914 924 917 +f 917 924 926 +f 917 926 918 +f 916 921 919 +f 919 921 925 +f 920 897 927 +f 926 946 918 +f 921 922 925 +f 925 928 923 +f 923 928 924 +f 924 928 931 +f 927 929 922 +f 925 929 930 +f 930 936 928 +f 928 936 931 +f 926 931 934 +f 930 933 935 +f 929 932 933 +f 932 943 941 +f 936 940 931 +f 935 938 936 +f 933 941 937 +f 935 937 938 +f 938 939 936 +f 943 887 941 +f 934 940 950 +f 939 950 940 +f 937 941 944 +f 938 944 942 +f 887 947 941 +f 942 947 945 +f 943 897 899 +f 942 948 939 +f 947 889 888 +f 945 891 948 +f 947 887 889 +f 949 891 893 +f 950 893 903 +f 945 888 891 +f 887 899 889 +f 888 895 892 +f 893 891 896 +f 889 894 895 +f 892 901 896 +f 893 902 903 +f 898 895 900 +f 902 896 901 +f 900 894 904 +f 901 898 906 +f 900 904 905 +f 906 900 905 +f 901 906 907 +f 899 909 904 +f 902 901 907 +f 908 902 913 +f 907 912 913 +f 905 904 910 +f 905 910 911 +f 906 905 911 +f 913 914 917 +f 912 911 916 +f 912 916 914 +f 920 927 922 +f 915 920 922 +f 915 922 921 +f 916 915 921 +f 919 925 923 +f 897 943 927 +f 927 932 929 +f 924 931 926 +f 925 922 929 +f 926 934 946 +f 925 930 928 +f 927 943 932 +f 930 929 933 +f 930 935 936 +f 933 932 941 +f 934 931 940 +f 935 933 937 +f 940 936 939 +f 938 937 944 +f 938 942 939 +f 934 950 946 +f 939 949 950 +f 944 941 947 +f 942 944 947 +f 942 945 948 +f 887 943 899 +f 949 939 948 +f 950 949 893 +f 945 947 888 +f 948 891 949 +o Cube.001 +v -5.107490 -0.258334 5.107490 +v -5.107490 -0.403023 5.107490 +v -5.107490 -0.258334 -5.107490 +v -5.107490 -0.403023 -5.107490 +v 5.107490 -0.258334 5.107490 +v 5.107490 -0.403023 5.107490 +v 5.107490 -0.258334 -5.107490 +v 5.107490 -0.403023 -5.107490 +v -5.067897 -0.258334 -5.067897 +v -5.067897 -0.258334 5.067897 +v 5.067897 -0.258334 -5.067897 +v 5.067897 -0.258334 5.067897 +v -5.067897 -0.403023 5.067897 +v -5.067897 -0.403023 -5.067897 +v 5.067897 -0.403023 -5.067897 +v 5.067897 -0.403023 5.067897 +v -5.899349 -0.258334 -4.008786 +v -6.493243 -0.258334 -2.771507 +v -6.849580 -0.258334 -1.415448 +v -6.968359 -0.258334 0.000000 +v -6.849579 -0.258334 1.415448 +v -6.493243 -0.258334 2.771506 +v -5.899349 -0.258334 4.008786 +v -5.067897 -0.276420 5.067897 +v -5.067897 -0.294506 5.067897 +v -5.067897 -0.312593 5.067897 +v -5.067897 -0.330679 5.067897 +v -5.067897 -0.348765 5.067897 +v -5.067897 -0.366851 5.067897 +v -5.067897 -0.384937 5.067897 +v -5.899349 -0.403023 4.008786 +v -6.493243 -0.403023 2.771506 +v -6.849579 -0.403023 1.415448 +v -6.968359 -0.403023 0.000000 +v -6.849580 -0.403023 -1.415448 +v -6.493243 -0.403023 -2.771507 +v -5.899349 -0.403023 -4.008786 +v -5.067897 -0.384937 -5.067897 +v -5.067897 -0.366851 -5.067897 +v -5.067897 -0.348765 -5.067896 +v -5.067897 -0.330679 -5.067897 +v -5.067897 -0.312593 -5.067896 +v -5.067897 -0.294506 -5.067897 +v -5.067897 -0.276420 -5.067897 +v 4.008786 -0.258334 -5.899349 +v 2.771507 -0.258334 -6.493243 +v 1.415448 -0.258334 -6.849580 +v 0.000000 -0.258334 -6.968359 +v -1.415448 -0.258334 -6.849580 +v -2.771506 -0.258334 -6.493243 +v -4.008786 -0.258334 -5.899349 +v -4.008786 -0.403023 -5.899349 +v -2.771506 -0.403023 -6.493243 +v -1.415448 -0.403023 -6.849580 +v 0.000000 -0.403023 -6.968359 +v 1.415448 -0.403023 -6.849580 +v 2.771507 -0.403023 -6.493243 +v 4.008786 -0.403023 -5.899349 +v 5.067897 -0.384937 -5.067897 +v 5.067897 -0.366851 -5.067897 +v 5.067896 -0.348765 -5.067897 +v 5.067897 -0.330679 -5.067897 +v 5.067896 -0.312593 -5.067897 +v 5.067897 -0.294506 -5.067897 +v 5.067897 -0.276420 -5.067897 +v 5.899349 -0.258334 4.008786 +v 6.493243 -0.258334 2.771507 +v 6.849580 -0.258334 1.415448 +v 6.968359 -0.258334 0.000000 +v 6.849580 -0.258334 -1.415448 +v 6.493243 -0.258334 -2.771506 +v 5.899349 -0.258334 -4.008786 +v 5.899349 -0.403023 -4.008786 +v 6.493243 -0.403023 -2.771506 +v 6.849580 -0.403023 -1.415448 +v 6.968359 -0.403023 0.000000 +v 6.849580 -0.403023 1.415448 +v 6.493243 -0.403023 2.771507 +v 5.899349 -0.403023 4.008786 +v 5.067897 -0.384937 5.067897 +v 5.067897 -0.366851 5.067897 +v 5.067897 -0.348765 5.067896 +v 5.067897 -0.330679 5.067897 +v 5.067897 -0.312593 5.067896 +v 5.067897 -0.294506 5.067897 +v 5.067897 -0.276420 5.067897 +v -4.008786 -0.258334 5.899349 +v -2.771506 -0.258334 6.493243 +v -1.415448 -0.258334 6.849579 +v 0.000000 -0.258334 6.968359 +v 1.415448 -0.258334 6.849580 +v 2.771506 -0.258334 6.493243 +v 4.008786 -0.258334 5.899349 +v 4.008786 -0.403023 5.899349 +v 2.771506 -0.403023 6.493243 +v 1.415448 -0.403023 6.849580 +v 0.000000 -0.403023 6.968359 +v -1.415448 -0.403023 6.849579 +v -2.771506 -0.403023 6.493243 +v -4.008786 -0.403023 5.899349 +v -5.899349 -0.258334 -4.008786 +v -6.493243 -0.258334 -2.771506 +v -6.849580 -0.258334 -1.415448 +v -6.968359 -0.258334 0.000000 +v -6.849580 -0.258334 1.415448 +v -6.493243 -0.258334 2.771507 +v -5.899349 -0.258334 4.008786 +v 4.008786 -0.258334 -5.899349 +v 2.771507 -0.258334 -6.493243 +v 1.415448 -0.258334 -6.849580 +v 0.000000 -0.258334 -6.968359 +v -1.415448 -0.258334 -6.849580 +v -2.771506 -0.258334 -6.493243 +v -4.008786 -0.258334 -5.899349 +v -4.008786 -0.258334 5.899349 +v -2.771506 -0.258334 6.493243 +v -1.415448 -0.258334 6.849580 +v 0.000000 -0.258334 6.968359 +v 1.415448 -0.258334 6.849580 +v 2.771507 -0.258334 6.493243 +v 4.008786 -0.258334 5.899349 +v 5.899349 -0.258334 4.008786 +v 6.493243 -0.258334 2.771507 +v 6.849580 -0.258334 1.415448 +v 6.968359 -0.258334 0.000000 +v 6.849580 -0.258334 -1.415448 +v 6.493243 -0.258334 -2.771506 +v 5.899349 -0.258334 -4.008786 +v -5.899349 -0.403023 4.008786 +v -6.493243 -0.403023 2.771507 +v -6.849580 -0.403023 1.415448 +v -6.968359 -0.403023 0.000000 +v -6.849580 -0.403023 -1.415448 +v -6.493243 -0.403023 -2.771506 +v -5.899349 -0.403023 -4.008786 +v 4.008786 -0.403023 5.899349 +v 2.771506 -0.403023 6.493243 +v 1.415448 -0.403023 6.849580 +v 0.000000 -0.403023 6.968359 +v -1.415448 -0.403023 6.849580 +v -2.771507 -0.403023 6.493243 +v -4.008786 -0.403023 5.899349 +v -4.008786 -0.403023 -5.899349 +v -2.771507 -0.403023 -6.493243 +v -1.415448 -0.403023 -6.849580 +v 0.000000 -0.403023 -6.968359 +v 1.415448 -0.403023 -6.849580 +v 2.771506 -0.403023 -6.493243 +v 4.008786 -0.403023 -5.899349 +v 5.899349 -0.403023 -4.008786 +v 6.493243 -0.403023 -2.771506 +v 6.849580 -0.403023 -1.415448 +v 6.968359 -0.403023 0.000000 +v 6.849580 -0.403023 1.415448 +v 6.493243 -0.403023 2.771507 +v 5.899349 -0.403023 4.008786 +v -5.899349 -0.276420 4.008786 +v -5.899350 -0.294506 4.008786 +v -5.899349 -0.312593 4.008786 +v -5.899349 -0.330679 4.008786 +v -5.899349 -0.348765 4.008786 +v -5.899350 -0.366851 4.008785 +v -5.899349 -0.384937 4.008786 +v -6.493244 -0.276420 2.771507 +v -6.493243 -0.294506 2.771506 +v -6.493243 -0.312593 2.771506 +v -6.493244 -0.330679 2.771507 +v -6.493244 -0.348765 2.771506 +v -6.493243 -0.366851 2.771506 +v -6.493244 -0.384937 2.771507 +v -6.849580 -0.276420 1.415448 +v -6.849580 -0.294506 1.415448 +v -6.849580 -0.312593 1.415448 +v -6.849580 -0.330679 1.415448 +v -6.849579 -0.348765 1.415448 +v -6.849580 -0.366851 1.415448 +v -6.849580 -0.384937 1.415448 +v -6.968359 -0.276420 0.000000 +v -6.968359 -0.294506 0.000000 +v -6.968358 -0.312593 0.000000 +v -6.968359 -0.330679 0.000000 +v -6.968358 -0.348765 0.000000 +v -6.968359 -0.366851 0.000000 +v -6.968359 -0.384937 0.000000 +v -6.849580 -0.276420 -1.415448 +v -6.849579 -0.294506 -1.415448 +v -6.849580 -0.312593 -1.415448 +v -6.849579 -0.330679 -1.415448 +v -6.849580 -0.348765 -1.415448 +v -6.849579 -0.366851 -1.415448 +v -6.849580 -0.384937 -1.415448 +v -6.493243 -0.276420 -2.771506 +v -6.493243 -0.294506 -2.771506 +v -6.493244 -0.312593 -2.771507 +v -6.493243 -0.330679 -2.771506 +v -6.493244 -0.348765 -2.771507 +v -6.493243 -0.366851 -2.771506 +v -6.493243 -0.384937 -2.771506 +v -5.899349 -0.276420 -4.008786 +v -5.899349 -0.294506 -4.008786 +v -5.899349 -0.312593 -4.008787 +v -5.899349 -0.330679 -4.008786 +v -5.899349 -0.348765 -4.008787 +v -5.899349 -0.366851 -4.008786 +v -5.899349 -0.384937 -4.008786 +v -4.008786 -0.276420 -5.899349 +v -4.008786 -0.294506 -5.899349 +v -4.008786 -0.312593 -5.899349 +v -4.008786 -0.330679 -5.899349 +v -4.008786 -0.348765 -5.899349 +v -4.008786 -0.366851 -5.899349 +v -4.008786 -0.384937 -5.899349 +v -2.771506 -0.276420 -6.493244 +v -2.771506 -0.294506 -6.493244 +v -2.771506 -0.312593 -6.493243 +v -2.771506 -0.330679 -6.493244 +v -2.771506 -0.348765 -6.493243 +v -2.771506 -0.366851 -6.493244 +v -2.771506 -0.384937 -6.493243 +v -1.415448 -0.276420 -6.849580 +v -1.415448 -0.294506 -6.849580 +v -1.415448 -0.312593 -6.849581 +v -1.415448 -0.330679 -6.849580 +v -1.415448 -0.348765 -6.849581 +v -1.415448 -0.366851 -6.849580 +v -1.415448 -0.384937 -6.849580 +v -0.000000 -0.276420 -6.968359 +v 0.000000 -0.294506 -6.968359 +v -0.000000 -0.312593 -6.968358 +v 0.000000 -0.330679 -6.968359 +v -0.000000 -0.348765 -6.968358 +v 0.000000 -0.366851 -6.968359 +v -0.000000 -0.384937 -6.968359 +v 1.415448 -0.276420 -6.849580 +v 1.415448 -0.294506 -6.849579 +v 1.415448 -0.312593 -6.849580 +v 1.415448 -0.330679 -6.849579 +v 1.415448 -0.348765 -6.849580 +v 1.415448 -0.366851 -6.849579 +v 1.415448 -0.384937 -6.849580 +v 2.771506 -0.276420 -6.493243 +v 2.771506 -0.294506 -6.493243 +v 2.771507 -0.312593 -6.493244 +v 2.771506 -0.330679 -6.493243 +v 2.771507 -0.348765 -6.493244 +v 2.771506 -0.366851 -6.493243 +v 2.771506 -0.384937 -6.493243 +v 4.008786 -0.276420 -5.899349 +v 4.008786 -0.294506 -5.899349 +v 4.008787 -0.312593 -5.899349 +v 4.008786 -0.330679 -5.899349 +v 4.008787 -0.348765 -5.899349 +v 4.008786 -0.366851 -5.899349 +v 4.008786 -0.384937 -5.899349 +v 5.899349 -0.276420 -4.008786 +v 5.899349 -0.294506 -4.008786 +v 5.899349 -0.312593 -4.008786 +v 5.899349 -0.330679 -4.008786 +v 5.899349 -0.348765 -4.008786 +v 5.899349 -0.366851 -4.008786 +v 5.899349 -0.384937 -4.008786 +v 6.493244 -0.276420 -2.771506 +v 6.493244 -0.294506 -2.771506 +v 6.493243 -0.312593 -2.771506 +v 6.493244 -0.330679 -2.771506 +v 6.493243 -0.348765 -2.771506 +v 6.493244 -0.366851 -2.771506 +v 6.493243 -0.384937 -2.771506 +v 6.849580 -0.276420 -1.415448 +v 6.849580 -0.294506 -1.415448 +v 6.849581 -0.312593 -1.415448 +v 6.849580 -0.330679 -1.415448 +v 6.849581 -0.348765 -1.415448 +v 6.849580 -0.366851 -1.415448 +v 6.849580 -0.384937 -1.415448 +v 6.968359 -0.276420 -0.000000 +v 6.968359 -0.294506 0.000000 +v 6.968358 -0.312593 -0.000000 +v 6.968359 -0.330679 0.000000 +v 6.968358 -0.348765 -0.000000 +v 6.968359 -0.366851 0.000000 +v 6.968359 -0.384937 -0.000000 +v 6.849580 -0.276420 1.415448 +v 6.849579 -0.294506 1.415448 +v 6.849580 -0.312593 1.415448 +v 6.849579 -0.330679 1.415448 +v 6.849580 -0.348765 1.415448 +v 6.849579 -0.366851 1.415448 +v 6.849580 -0.384937 1.415448 +v 6.493243 -0.276420 2.771506 +v 6.493243 -0.294506 2.771506 +v 6.493244 -0.312593 2.771507 +v 6.493243 -0.330679 2.771506 +v 6.493244 -0.348765 2.771507 +v 6.493243 -0.366851 2.771506 +v 6.493243 -0.384937 2.771506 +v 5.899349 -0.276420 4.008786 +v 5.899349 -0.294506 4.008786 +v 5.899349 -0.312593 4.008787 +v 5.899349 -0.330679 4.008786 +v 5.899349 -0.348765 4.008787 +v 5.899349 -0.366851 4.008786 +v 5.899349 -0.384937 4.008786 +v 4.008786 -0.276420 5.899349 +v 4.008786 -0.294506 5.899349 +v 4.008786 -0.312593 5.899349 +v 4.008786 -0.330679 5.899349 +v 4.008786 -0.348765 5.899349 +v 4.008786 -0.366851 5.899349 +v 4.008786 -0.384937 5.899349 +v 2.771506 -0.276420 6.493244 +v 2.771506 -0.294506 6.493244 +v 2.771506 -0.312593 6.493243 +v 2.771506 -0.330679 6.493244 +v 2.771506 -0.348765 6.493243 +v 2.771506 -0.366851 6.493244 +v 2.771506 -0.384937 6.493243 +v 1.415448 -0.276420 6.849580 +v 1.415448 -0.294506 6.849580 +v 1.415448 -0.312593 6.849581 +v 1.415448 -0.330679 6.849580 +v 1.415448 -0.348765 6.849581 +v 1.415448 -0.366851 6.849580 +v 1.415448 -0.384937 6.849580 +v 0.000000 -0.276420 6.968359 +v 0.000000 -0.294506 6.968359 +v 0.000000 -0.312593 6.968359 +v 0.000000 -0.330679 6.968359 +v 0.000000 -0.348765 6.968359 +v 0.000000 -0.366851 6.968359 +v 0.000000 -0.384937 6.968359 +v -1.415448 -0.276420 6.849580 +v -1.415448 -0.294506 6.849580 +v -1.415448 -0.312593 6.849580 +v -1.415448 -0.330679 6.849579 +v -1.415448 -0.348765 6.849580 +v -1.415448 -0.366851 6.849580 +v -1.415448 -0.384937 6.849580 +v -2.771506 -0.276420 6.493243 +v -2.771506 -0.294506 6.493243 +v -2.771507 -0.312593 6.493243 +v -2.771506 -0.330679 6.493243 +v -2.771507 -0.348765 6.493243 +v -2.771506 -0.366851 6.493243 +v -2.771506 -0.384937 6.493243 +v -4.008786 -0.276420 5.899349 +v -4.008786 -0.294506 5.899349 +v -4.008786 -0.312593 5.899349 +v -4.008786 -0.330679 5.899349 +v -4.008786 -0.348765 5.899349 +v -4.008786 -0.366851 5.899349 +v -4.008786 -0.384937 5.899349 +v -4.492768 -0.258334 -4.492768 +v -3.042058 -0.258334 -4.888080 +v -1.536495 -0.258334 -5.139453 +v 0.000000 -0.258334 -5.226269 +v 1.536495 -0.258334 -5.139453 +v 3.042058 -0.258334 -4.888080 +v 4.492768 -0.258334 -4.492768 +v -4.888080 -0.258334 -3.042058 +v -3.273017 -0.258334 -3.273017 +v -1.641458 -0.258334 -3.428089 +v 0.000000 -0.258334 -3.484179 +v 1.641458 -0.258334 -3.428090 +v 3.273017 -0.258334 -3.273017 +v 4.888080 -0.258334 -3.042058 +v -5.139453 -0.258334 -1.536495 +v -3.428089 -0.258334 -1.641458 +v -1.714663 -0.258334 -1.714663 +v 0.000000 -0.258334 -1.742090 +v 1.714663 -0.258334 -1.714663 +v 3.428090 -0.258334 -1.641458 +v 5.139453 -0.258334 -1.536495 +v -5.226269 -0.258334 0.000000 +v -3.484179 -0.258334 -0.000000 +v -1.742090 -0.258334 0.000000 +v 0.000000 -0.258334 0.000000 +v 1.742090 -0.258334 0.000000 +v 3.484179 -0.258334 0.000000 +v 5.226269 -0.258334 -0.000000 +v -5.139453 -0.258334 1.536495 +v -3.428090 -0.258334 1.641458 +v -1.714663 -0.258334 1.714663 +v 0.000000 -0.258334 1.742090 +v 1.714663 -0.258334 1.714663 +v 3.428089 -0.258334 1.641458 +v 5.139453 -0.258334 1.536495 +v -4.888079 -0.258334 3.042058 +v -3.273017 -0.258334 3.273017 +v -1.641458 -0.258334 3.428090 +v 0.000000 -0.258334 3.484179 +v 1.641458 -0.258334 3.428090 +v 3.273017 -0.258334 3.273017 +v 4.888079 -0.258334 3.042058 +v -4.492768 -0.258334 4.492768 +v -3.042058 -0.258334 4.888080 +v -1.536495 -0.258334 5.139453 +v 0.000000 -0.258334 5.226269 +v 1.536495 -0.258334 5.139453 +v 3.042058 -0.258334 4.888079 +v 4.492768 -0.258334 4.492768 +v 4.492768 -0.403023 -4.492768 +v 3.042058 -0.403023 -4.888080 +v 1.536495 -0.403023 -5.139453 +v 0.000000 -0.403023 -5.226269 +v -1.536495 -0.403023 -5.139453 +v -3.042058 -0.403023 -4.888080 +v -4.492768 -0.403023 -4.492768 +v 4.888080 -0.403023 -3.042058 +v 3.273017 -0.403023 -3.273017 +v 1.641458 -0.403023 -3.428089 +v 0.000000 -0.403023 -3.484179 +v -1.641458 -0.403023 -3.428090 +v -3.273017 -0.403023 -3.273017 +v -4.888080 -0.403023 -3.042058 +v 5.139453 -0.403023 -1.536495 +v 3.428089 -0.403023 -1.641458 +v 1.714663 -0.403023 -1.714663 +v 0.000000 -0.403023 -1.742090 +v -1.714663 -0.403023 -1.714663 +v -3.428090 -0.403023 -1.641458 +v -5.139453 -0.403023 -1.536495 +v 5.226269 -0.403023 0.000000 +v 3.484179 -0.403023 -0.000000 +v 1.742090 -0.403023 0.000000 +v 0.000000 -0.403023 0.000000 +v -1.742090 -0.403023 0.000000 +v -3.484179 -0.403023 0.000000 +v -5.226269 -0.403023 -0.000000 +v 5.139453 -0.403023 1.536495 +v 3.428090 -0.403023 1.641458 +v 1.714663 -0.403023 1.714663 +v 0.000000 -0.403023 1.742090 +v -1.714663 -0.403023 1.714663 +v -3.428089 -0.403023 1.641458 +v -5.139453 -0.403023 1.536495 +v 4.888079 -0.403023 3.042058 +v 3.273017 -0.403023 3.273017 +v 1.641458 -0.403023 3.428090 +v 0.000000 -0.403023 3.484179 +v -1.641458 -0.403023 3.428090 +v -3.273017 -0.403023 3.273017 +v -4.888079 -0.403023 3.042058 +v 4.492768 -0.403023 4.492768 +v 3.042058 -0.403023 4.888080 +v 1.536495 -0.403023 5.139453 +v 0.000000 -0.403023 5.226269 +v -1.536495 -0.403023 5.139453 +v -3.042058 -0.403023 4.888079 +v -4.492768 -0.403023 4.492768 +s 0 +usemtl white +f 1108 1107 1114 +f 1109 1108 1115 +f 1110 1109 1116 +f 1111 1110 1117 +f 1112 1111 1118 +f 1112 1119 1120 +f 1115 1114 1121 +f 1115 1122 1123 +f 1117 1116 1123 +f 1118 1117 1124 +f 1119 1118 1125 +f 1120 1119 1126 +f 1121 1128 1129 +f 1122 1129 1130 +f 1124 1123 1130 +f 1124 1131 1132 +f 1125 1132 1133 +f 1127 1126 1133 +f 1129 1128 1135 +f 1130 1129 1136 +f 1130 1137 1138 +f 1132 1131 1138 +f 1133 1132 1139 +f 1134 1133 1140 +f 1135 1142 1143 +f 1137 1136 1143 +f 1138 1137 1144 +f 1138 1145 1146 +f 1140 1139 1146 +f 1141 1140 1147 +f 1143 1142 1149 +f 1144 1143 1150 +f 1145 1144 1151 +f 1146 1145 1152 +f 1147 1146 1153 +f 1148 1147 1154 +f 974 960 973 +f 975 974 1107 +f 976 975 1108 +f 976 1109 1110 +f 978 977 1110 +f 979 978 1111 +f 979 1112 1113 +f 980 1113 981 +f 981 1113 1120 +f 1120 1127 983 +f 983 1127 1134 +f 984 1134 1141 +f 985 1141 1148 +f 986 1148 1155 +f 987 1155 988 +f 1155 1154 989 +f 1154 1153 990 +f 1153 1152 991 +f 1152 1151 992 +f 1151 1150 993 +f 1149 994 993 +f 1149 967 959 +f 1142 968 967 +f 969 968 1142 +f 1128 970 969 +f 971 970 1128 +f 1114 972 971 +f 973 972 1114 +f 1157 1156 1163 +f 1158 1157 1164 +f 1158 1165 1166 +f 1160 1159 1166 +f 1160 1167 1168 +f 1161 1168 1169 +f 1164 1163 1170 +f 1165 1164 1171 +f 1166 1165 1172 +f 1167 1166 1173 +f 1168 1167 1174 +f 1169 1168 1175 +f 1170 1177 1178 +f 1172 1171 1178 +f 1172 1179 1180 +f 1174 1173 1180 +f 1174 1181 1182 +f 1176 1175 1182 +f 1178 1177 1184 +f 1179 1178 1185 +f 1179 1186 1187 +f 1181 1180 1187 +f 1182 1181 1188 +f 1183 1182 1189 +f 1184 1191 1192 +f 1186 1185 1192 +f 1187 1186 1193 +f 1187 1194 1195 +f 1189 1188 1195 +f 1190 1189 1196 +f 1192 1191 1198 +f 1193 1192 1199 +f 1194 1193 1200 +f 1195 1194 1201 +f 1196 1195 1202 +f 1197 1196 1203 +f 994 959 1001 +f 994 1156 1157 +f 992 993 1157 +f 991 992 1158 +f 990 991 1159 +f 989 990 1160 +f 988 989 1161 +f 964 988 1162 +f 1002 1162 1169 +f 1169 1176 1004 +f 1004 1176 1183 +f 1005 1183 1190 +f 1006 1190 1197 +f 1007 1197 1204 +f 1008 1204 1009 +f 1204 1203 1010 +f 1203 1202 1011 +f 1202 1201 1012 +f 1201 1200 1013 +f 1200 1199 1014 +f 1198 1015 1014 +f 1198 995 961 +f 1191 996 995 +f 997 996 1191 +f 1177 998 997 +f 1170 999 998 +f 1163 1000 999 +f 1156 1001 1000 +f 1206 1205 1212 +f 1207 1206 1213 +f 1207 1214 1215 +f 1209 1208 1215 +f 1209 1216 1217 +f 1210 1217 1218 +f 1213 1212 1219 +f 1214 1213 1220 +f 1215 1214 1221 +f 1216 1215 1222 +f 1217 1216 1223 +f 1218 1217 1224 +f 1219 1226 1227 +f 1221 1220 1227 +f 1221 1228 1229 +f 1223 1222 1229 +f 1223 1230 1231 +f 1225 1224 1231 +f 1227 1226 1233 +f 1228 1227 1234 +f 1228 1235 1236 +f 1230 1229 1236 +f 1231 1230 1237 +f 1232 1231 1238 +f 1233 1240 1241 +f 1235 1234 1241 +f 1236 1235 1242 +f 1236 1243 1244 +f 1238 1237 1244 +f 1239 1238 1245 +f 1241 1240 1247 +f 1242 1241 1248 +f 1243 1242 1249 +f 1244 1243 1250 +f 1245 1244 1251 +f 1246 1245 1252 +f 1015 961 1022 +f 1015 1205 1206 +f 1013 1014 1206 +f 1012 1013 1207 +f 1011 1012 1208 +f 1010 1011 1209 +f 1009 1010 1210 +f 965 1009 1211 +f 1023 1211 1218 +f 1218 1225 1025 +f 1025 1225 1232 +f 1026 1232 1239 +f 1027 1239 1246 +f 1028 1246 1253 +f 1029 1253 1030 +f 1253 1252 1031 +f 1252 1251 1032 +f 1251 1250 1033 +f 1250 1249 1034 +f 1249 1248 1035 +f 1247 1036 1035 +f 1247 1016 962 +f 1240 1017 1016 +f 1018 1017 1240 +f 1226 1019 1018 +f 1219 1020 1019 +f 1212 1021 1020 +f 1205 1022 1021 +f 1255 1254 1261 +f 1256 1255 1262 +f 1256 1263 1264 +f 1258 1257 1264 +f 1258 1265 1266 +f 1259 1266 1267 +f 1262 1261 1268 +f 1263 1262 1269 +f 1264 1263 1270 +f 1265 1264 1271 +f 1266 1265 1272 +f 1267 1266 1273 +f 1269 1268 1275 +f 1270 1269 1276 +f 1270 1277 1278 +f 1272 1271 1278 +f 1272 1279 1280 +f 1274 1273 1280 +f 1276 1275 1282 +f 1277 1276 1283 +f 1278 1277 1284 +f 1279 1278 1285 +f 1280 1279 1286 +f 1280 1287 1288 +f 1283 1282 1289 +f 1284 1283 1290 +f 1284 1291 1292 +f 1286 1285 1292 +f 1286 1293 1294 +f 1287 1294 1295 +f 1290 1289 1296 +f 1290 1297 1298 +f 1292 1291 1298 +f 1293 1292 1299 +f 1294 1293 1300 +f 1294 1301 1302 +f 1036 962 1043 +f 1036 1254 1255 +f 1034 1035 1255 +f 1033 1034 1256 +f 1032 1033 1257 +f 1031 1032 1258 +f 1030 1031 1259 +f 966 1030 1260 +f 1044 1260 1267 +f 1267 1274 1046 +f 1274 1281 1047 +f 1281 1288 1048 +f 1048 1288 1295 +f 1295 1302 1050 +f 1050 1302 980 +f 1301 979 980 +f 1301 1300 978 +f 1299 977 978 +f 1299 1298 976 +f 1298 1297 975 +f 1296 974 975 +f 1296 1037 960 +f 1289 1038 1037 +f 1039 1038 1289 +f 1275 1040 1039 +f 1268 1041 1040 +f 1261 1042 1041 +f 1254 1043 1042 +f 1303 1310 1311 +f 1304 1311 1312 +f 1305 1312 1313 +f 1307 1306 1313 +f 1308 1307 1314 +f 1309 1308 1315 +f 1310 1317 1318 +f 1311 1318 1319 +f 1312 1319 1320 +f 1314 1313 1320 +f 1315 1314 1321 +f 1316 1315 1322 +f 1317 1324 1325 +f 1318 1325 1326 +f 1319 1326 1327 +f 1321 1320 1327 +f 1322 1321 1328 +f 1323 1322 1329 +f 1325 1324 1331 +f 1326 1325 1332 +f 1327 1326 1333 +f 1327 1334 1335 +f 1328 1335 1336 +f 1329 1336 1337 +f 1332 1331 1338 +f 1333 1332 1339 +f 1334 1333 1340 +f 1334 1341 1342 +f 1335 1342 1343 +f 1336 1343 1344 +f 1339 1338 1345 +f 1340 1339 1346 +f 1341 1340 1347 +f 1341 1348 1349 +f 1342 1349 1350 +f 1343 1350 1351 +f 953 1051 1303 +f 1064 1303 1304 +f 1063 1304 1305 +f 1062 1305 1306 +f 1060 1061 1306 +f 1059 1060 1307 +f 1058 1059 1308 +f 957 1058 1309 +f 1078 1309 1316 +f 1077 1316 1323 +f 1076 1323 1330 +f 1330 1337 1074 +f 1337 1344 1073 +f 1344 1351 1072 +f 1351 1071 955 +f 1350 1070 1071 +f 1349 1069 1070 +f 1348 1068 1069 +f 1348 1347 1067 +f 1347 1346 1066 +f 1346 1345 1065 +f 1345 1057 951 +f 1338 1056 1057 +f 1331 1055 1056 +f 1324 1054 1055 +f 1053 1054 1324 +f 1052 1053 1317 +f 1051 1052 1310 +f 1352 1359 1360 +f 1353 1360 1361 +f 1354 1361 1362 +f 1356 1355 1362 +f 1357 1356 1363 +f 1358 1357 1364 +f 1359 1366 1367 +f 1360 1367 1368 +f 1361 1368 1369 +f 1363 1362 1369 +f 1364 1363 1370 +f 1365 1364 1371 +f 1366 1373 1374 +f 1367 1374 1375 +f 1368 1375 1376 +f 1370 1369 1376 +f 1371 1370 1377 +f 1372 1371 1378 +f 1374 1373 1380 +f 1375 1374 1381 +f 1376 1375 1382 +f 1376 1383 1384 +f 1377 1384 1385 +f 1378 1385 1386 +f 1381 1380 1387 +f 1382 1381 1388 +f 1383 1382 1389 +f 1383 1390 1391 +f 1384 1391 1392 +f 1385 1392 1393 +f 1388 1387 1394 +f 1389 1388 1395 +f 1390 1389 1396 +f 1390 1397 1398 +f 1391 1398 1399 +f 1392 1399 1400 +f 958 1100 1352 +f 1099 1352 1353 +f 1098 1353 1354 +f 1097 1354 1355 +f 1095 1096 1355 +f 1094 1095 1356 +f 1093 1094 1357 +f 954 1093 1358 +f 1085 1358 1365 +f 1084 1365 1372 +f 1083 1372 1379 +f 1379 1386 1081 +f 1386 1393 1080 +f 1393 1400 1079 +f 1400 1092 952 +f 1399 1091 1092 +f 1398 1090 1091 +f 1397 1089 1090 +f 1397 1396 1088 +f 1396 1395 1087 +f 1395 1394 1086 +f 1394 1106 956 +f 1387 1105 1106 +f 1380 1104 1105 +f 1373 1103 1104 +f 1102 1103 1373 +f 1101 1102 1366 +f 1100 1101 1359 +f 1108 1114 1115 +f 1109 1115 1116 +f 1110 1116 1117 +f 1111 1117 1118 +f 1112 1118 1119 +f 1112 1120 1113 +f 1115 1121 1122 +f 1115 1123 1116 +f 1117 1123 1124 +f 1118 1124 1125 +f 1119 1125 1126 +f 1120 1126 1127 +f 1121 1129 1122 +f 1122 1130 1123 +f 1124 1130 1131 +f 1124 1132 1125 +f 1125 1133 1126 +f 1127 1133 1134 +f 1129 1135 1136 +f 1130 1136 1137 +f 1130 1138 1131 +f 1132 1138 1139 +f 1133 1139 1140 +f 1134 1140 1141 +f 1135 1143 1136 +f 1137 1143 1144 +f 1138 1144 1145 +f 1138 1146 1139 +f 1140 1146 1147 +f 1141 1147 1148 +f 1143 1149 1150 +f 1144 1150 1151 +f 1145 1151 1152 +f 1146 1152 1153 +f 1147 1153 1154 +f 1148 1154 1155 +f 974 973 1107 +f 975 1107 1108 +f 976 1108 1109 +f 976 1110 977 +f 978 1110 1111 +f 979 1111 1112 +f 979 1113 980 +f 980 981 963 +f 981 1120 982 +f 1120 983 982 +f 983 1134 984 +f 984 1141 985 +f 985 1148 986 +f 986 1155 987 +f 987 988 964 +f 1155 989 988 +f 1154 990 989 +f 1153 991 990 +f 1152 992 991 +f 1151 993 992 +f 1149 993 1150 +f 1149 959 994 +f 1142 967 1149 +f 969 1142 1135 +f 1128 969 1135 +f 971 1128 1121 +f 1114 971 1121 +f 973 1114 1107 +f 1157 1163 1164 +f 1158 1164 1165 +f 1158 1166 1159 +f 1160 1166 1167 +f 1160 1168 1161 +f 1161 1169 1162 +f 1164 1170 1171 +f 1165 1171 1172 +f 1166 1172 1173 +f 1167 1173 1174 +f 1168 1174 1175 +f 1169 1175 1176 +f 1170 1178 1171 +f 1172 1178 1179 +f 1172 1180 1173 +f 1174 1180 1181 +f 1174 1182 1175 +f 1176 1182 1183 +f 1178 1184 1185 +f 1179 1185 1186 +f 1179 1187 1180 +f 1181 1187 1188 +f 1182 1188 1189 +f 1183 1189 1190 +f 1184 1192 1185 +f 1186 1192 1193 +f 1187 1193 1194 +f 1187 1195 1188 +f 1189 1195 1196 +f 1190 1196 1197 +f 1192 1198 1199 +f 1193 1199 1200 +f 1194 1200 1201 +f 1195 1201 1202 +f 1196 1202 1203 +f 1197 1203 1204 +f 994 1001 1156 +f 994 1157 993 +f 992 1157 1158 +f 991 1158 1159 +f 990 1159 1160 +f 989 1160 1161 +f 988 1161 1162 +f 964 1162 1002 +f 1002 1169 1003 +f 1169 1004 1003 +f 1004 1183 1005 +f 1005 1190 1006 +f 1006 1197 1007 +f 1007 1204 1008 +f 1008 1009 965 +f 1204 1010 1009 +f 1203 1011 1010 +f 1202 1012 1011 +f 1201 1013 1012 +f 1200 1014 1013 +f 1198 1014 1199 +f 1198 961 1015 +f 1191 995 1198 +f 997 1191 1184 +f 1177 997 1184 +f 1170 998 1177 +f 1163 999 1170 +f 1156 1000 1163 +f 1206 1212 1213 +f 1207 1213 1214 +f 1207 1215 1208 +f 1209 1215 1216 +f 1209 1217 1210 +f 1210 1218 1211 +f 1213 1219 1220 +f 1214 1220 1221 +f 1215 1221 1222 +f 1216 1222 1223 +f 1217 1223 1224 +f 1218 1224 1225 +f 1219 1227 1220 +f 1221 1227 1228 +f 1221 1229 1222 +f 1223 1229 1230 +f 1223 1231 1224 +f 1225 1231 1232 +f 1227 1233 1234 +f 1228 1234 1235 +f 1228 1236 1229 +f 1230 1236 1237 +f 1231 1237 1238 +f 1232 1238 1239 +f 1233 1241 1234 +f 1235 1241 1242 +f 1236 1242 1243 +f 1236 1244 1237 +f 1238 1244 1245 +f 1239 1245 1246 +f 1241 1247 1248 +f 1242 1248 1249 +f 1243 1249 1250 +f 1244 1250 1251 +f 1245 1251 1252 +f 1246 1252 1253 +f 1015 1022 1205 +f 1015 1206 1014 +f 1013 1206 1207 +f 1012 1207 1208 +f 1011 1208 1209 +f 1010 1209 1210 +f 1009 1210 1211 +f 965 1211 1023 +f 1023 1218 1024 +f 1218 1025 1024 +f 1025 1232 1026 +f 1026 1239 1027 +f 1027 1246 1028 +f 1028 1253 1029 +f 1029 1030 966 +f 1253 1031 1030 +f 1252 1032 1031 +f 1251 1033 1032 +f 1250 1034 1033 +f 1249 1035 1034 +f 1247 1035 1248 +f 1247 962 1036 +f 1240 1016 1247 +f 1018 1240 1233 +f 1226 1018 1233 +f 1219 1019 1226 +f 1212 1020 1219 +f 1205 1021 1212 +f 1255 1261 1262 +f 1256 1262 1263 +f 1256 1264 1257 +f 1258 1264 1265 +f 1258 1266 1259 +f 1259 1267 1260 +f 1262 1268 1269 +f 1263 1269 1270 +f 1264 1270 1271 +f 1265 1271 1272 +f 1266 1272 1273 +f 1267 1273 1274 +f 1269 1275 1276 +f 1270 1276 1277 +f 1270 1278 1271 +f 1272 1278 1279 +f 1272 1280 1273 +f 1274 1280 1281 +f 1276 1282 1283 +f 1277 1283 1284 +f 1278 1284 1285 +f 1279 1285 1286 +f 1280 1286 1287 +f 1280 1288 1281 +f 1283 1289 1290 +f 1284 1290 1291 +f 1284 1292 1285 +f 1286 1292 1293 +f 1286 1294 1287 +f 1287 1295 1288 +f 1290 1296 1297 +f 1290 1298 1291 +f 1292 1298 1299 +f 1293 1299 1300 +f 1294 1300 1301 +f 1294 1302 1295 +f 1036 1043 1254 +f 1036 1255 1035 +f 1034 1255 1256 +f 1033 1256 1257 +f 1032 1257 1258 +f 1031 1258 1259 +f 1030 1259 1260 +f 966 1260 1044 +f 1044 1267 1045 +f 1267 1046 1045 +f 1274 1047 1046 +f 1281 1048 1047 +f 1048 1295 1049 +f 1295 1050 1049 +f 1050 980 963 +f 1301 980 1302 +f 1301 978 979 +f 1299 978 1300 +f 1299 976 977 +f 1298 975 976 +f 1296 975 1297 +f 1296 960 974 +f 1289 1037 1296 +f 1039 1289 1282 +f 1275 1039 1282 +f 1268 1040 1275 +f 1261 1041 1268 +f 1254 1042 1261 +f 1303 1311 1304 +f 1304 1312 1305 +f 1305 1313 1306 +f 1307 1313 1314 +f 1308 1314 1315 +f 1309 1315 1316 +f 1310 1318 1311 +f 1311 1319 1312 +f 1312 1320 1313 +f 1314 1320 1321 +f 1315 1321 1322 +f 1316 1322 1323 +f 1317 1325 1318 +f 1318 1326 1319 +f 1319 1327 1320 +f 1321 1327 1328 +f 1322 1328 1329 +f 1323 1329 1330 +f 1325 1331 1332 +f 1326 1332 1333 +f 1327 1333 1334 +f 1327 1335 1328 +f 1328 1336 1329 +f 1329 1337 1330 +f 1332 1338 1339 +f 1333 1339 1340 +f 1334 1340 1341 +f 1334 1342 1335 +f 1335 1343 1336 +f 1336 1344 1337 +f 1339 1345 1346 +f 1340 1346 1347 +f 1341 1347 1348 +f 1341 1349 1342 +f 1342 1350 1343 +f 1343 1351 1344 +f 953 1303 1064 +f 1064 1304 1063 +f 1063 1305 1062 +f 1062 1306 1061 +f 1060 1306 1307 +f 1059 1307 1308 +f 1058 1308 1309 +f 957 1309 1078 +f 1078 1316 1077 +f 1077 1323 1076 +f 1076 1330 1075 +f 1330 1074 1075 +f 1337 1073 1074 +f 1344 1072 1073 +f 1351 955 1072 +f 1350 1071 1351 +f 1349 1070 1350 +f 1348 1069 1349 +f 1348 1067 1068 +f 1347 1066 1067 +f 1346 1065 1066 +f 1345 951 1065 +f 1338 1057 1345 +f 1331 1056 1338 +f 1324 1055 1331 +f 1053 1324 1317 +f 1052 1317 1310 +f 1051 1310 1303 +f 1352 1360 1353 +f 1353 1361 1354 +f 1354 1362 1355 +f 1356 1362 1363 +f 1357 1363 1364 +f 1358 1364 1365 +f 1359 1367 1360 +f 1360 1368 1361 +f 1361 1369 1362 +f 1363 1369 1370 +f 1364 1370 1371 +f 1365 1371 1372 +f 1366 1374 1367 +f 1367 1375 1368 +f 1368 1376 1369 +f 1370 1376 1377 +f 1371 1377 1378 +f 1372 1378 1379 +f 1374 1380 1381 +f 1375 1381 1382 +f 1376 1382 1383 +f 1376 1384 1377 +f 1377 1385 1378 +f 1378 1386 1379 +f 1381 1387 1388 +f 1382 1388 1389 +f 1383 1389 1390 +f 1383 1391 1384 +f 1384 1392 1385 +f 1385 1393 1386 +f 1388 1394 1395 +f 1389 1395 1396 +f 1390 1396 1397 +f 1390 1398 1391 +f 1391 1399 1392 +f 1392 1400 1393 +f 958 1352 1099 +f 1099 1353 1098 +f 1098 1354 1097 +f 1097 1355 1096 +f 1095 1355 1356 +f 1094 1356 1357 +f 1093 1357 1358 +f 954 1358 1085 +f 1085 1365 1084 +f 1084 1372 1083 +f 1083 1379 1082 +f 1379 1081 1082 +f 1386 1080 1081 +f 1393 1079 1080 +f 1400 952 1079 +f 1399 1092 1400 +f 1398 1091 1399 +f 1397 1090 1398 +f 1397 1088 1089 +f 1396 1087 1088 +f 1395 1086 1087 +f 1394 956 1086 +f 1387 1106 1394 +f 1380 1105 1387 +f 1373 1104 1380 +f 1102 1373 1366 +f 1101 1366 1359 +f 1100 1359 1352 +o Torus +v -4.060497 -0.994807 0.002771 +v -3.935309 -0.962023 0.002640 +v -3.843286 -0.871037 0.002395 +v -3.809084 -0.746230 0.002103 +v -3.841868 -0.621042 0.001841 +v -3.932854 -0.529018 0.001680 +v -4.057662 -0.494817 0.001662 +v -4.182850 -0.527601 0.001793 +v -4.274874 -0.618587 0.002038 +v -4.309076 -0.743394 0.002330 +v -4.276291 -0.868582 0.002592 +v -4.185305 -0.960606 0.002753 +v -4.060513 -0.984475 -0.160410 +v -3.935324 -0.951967 -0.156169 +v -3.843299 -0.861738 -0.144468 +v -3.809096 -0.737964 -0.128442 +v -3.841879 -0.613809 -0.112385 +v -3.932864 -0.522542 -0.100601 +v -4.057672 -0.488617 -0.096246 +v -4.182860 -0.521124 -0.100488 +v -4.274885 -0.611354 -0.112189 +v -4.309088 -0.735128 -0.128215 +v -4.276305 -0.859283 -0.144271 +v -4.185320 -0.950550 -0.156055 +v -4.060407 -0.952932 -0.320847 +v -3.935221 -0.921269 -0.312306 +v -3.843204 -0.833349 -0.288860 +v -3.809011 -0.712729 -0.256791 +v -3.841805 -0.591729 -0.224691 +v -3.932797 -0.502771 -0.201162 +v -4.057608 -0.469691 -0.192508 +v -4.182793 -0.501353 -0.201048 +v -4.274810 -0.589274 -0.224494 +v -4.309003 -0.709894 -0.256564 +v -4.276210 -0.830894 -0.288664 +v -4.185217 -0.919852 -0.312193 +v -4.060181 -0.900717 -0.475793 +v -3.935001 -0.870455 -0.463101 +v -3.843001 -0.786356 -0.428312 +v -3.808830 -0.670958 -0.380748 +v -3.841647 -0.555179 -0.333153 +v -3.932656 -0.470043 -0.298282 +v -4.057472 -0.438363 -0.285476 +v -4.182652 -0.468626 -0.298168 +v -4.274652 -0.552724 -0.332957 +v -4.308823 -0.668122 -0.380521 +v -4.276007 -0.783901 -0.428116 +v -4.184997 -0.869037 -0.462988 +v -4.059839 -0.828726 -0.622599 +v -3.934669 -0.800392 -0.605973 +v -3.842693 -0.721564 -0.560437 +v -3.808557 -0.613364 -0.498193 +v -3.841408 -0.504785 -0.435918 +v -3.932442 -0.424919 -0.390299 +v -4.057268 -0.395168 -0.373559 +v -4.182438 -0.423502 -0.390185 +v -4.274413 -0.502329 -0.435721 +v -4.308549 -0.610529 -0.497966 +v -4.275699 -0.719109 -0.560241 +v -4.184665 -0.798974 -0.605860 +v -4.059387 -0.738189 -0.758752 +v -3.934229 -0.712280 -0.738478 +v -3.842287 -0.640081 -0.682975 +v -3.808196 -0.540935 -0.607115 +v -3.841091 -0.441409 -0.531224 +v -3.932159 -0.368171 -0.475638 +v -4.056996 -0.340845 -0.455251 +v -4.182155 -0.366754 -0.475525 +v -4.274097 -0.438953 -0.531028 +v -4.308188 -0.538099 -0.606888 +v -4.275292 -0.637625 -0.682778 +v -4.184225 -0.710863 -0.738364 +v -4.058834 -0.630654 -0.881922 +v -3.933690 -0.607628 -0.858348 +v -3.841788 -0.543300 -0.793828 +v -3.807753 -0.454907 -0.705651 +v -3.840703 -0.366135 -0.617444 +v -3.931811 -0.300769 -0.552841 +v -4.056664 -0.276325 -0.529153 +v -4.181808 -0.299352 -0.552728 +v -4.273709 -0.363679 -0.617247 +v -4.307745 -0.452072 -0.705424 +v -4.274794 -0.540844 -0.793632 +v -4.183686 -0.606210 -0.858234 +v -4.058187 -0.507964 -0.990002 +v -3.933061 -0.488225 -0.963532 +v -3.841206 -0.432878 -0.891100 +v -3.807235 -0.356755 -0.792115 +v -3.840251 -0.280252 -0.693100 +v -3.931406 -0.223867 -0.620585 +v -4.056276 -0.202710 -0.594001 +v -4.181402 -0.222450 -0.620472 +v -4.273257 -0.277796 -0.692903 +v -4.307227 -0.353919 -0.791888 +v -4.274212 -0.430423 -0.890904 +v -4.183057 -0.486807 -0.963419 +v -4.057458 -0.372215 -1.081144 +v -3.932352 -0.356114 -1.052231 +v -3.840551 -0.310705 -0.973128 +v -3.806653 -0.248156 -0.865028 +v -3.839741 -0.185228 -0.756899 +v -3.930949 -0.138781 -0.677712 +v -4.055839 -0.121261 -0.648686 +v -4.180945 -0.137363 -0.677599 +v -4.272747 -0.182772 -0.756702 +v -4.306644 -0.245321 -0.864802 +v -4.273556 -0.308249 -0.972931 +v -4.182348 -0.354696 -1.052118 +v -4.056661 -0.225733 -1.153786 +v -3.931576 -0.213556 -1.122927 +v -3.839833 -0.178870 -1.038506 +v -3.806015 -0.130970 -0.923142 +v -3.839183 -0.082690 -0.807748 +v -3.930449 -0.046967 -0.723244 +v -4.055360 -0.033372 -0.692272 +v -4.180445 -0.045549 -0.723131 +v -4.272188 -0.080234 -0.807552 +v -4.306006 -0.128135 -0.922915 +v -4.272838 -0.176415 -1.038309 +v -4.181571 -0.212138 -1.122814 +v -4.055807 -0.071021 -1.206687 +v -3.930745 -0.062990 -1.174411 +v -3.839065 -0.039630 -1.086117 +v -3.805332 -0.007201 -0.965463 +v -3.838585 0.025608 -0.844779 +v -3.929914 0.050006 -0.756402 +v -4.054848 0.059455 -0.724012 +v -4.179911 0.051424 -0.756289 +v -4.271591 0.028064 -0.844583 +v -4.305324 -0.004366 -0.965236 +v -4.272070 -0.037175 -1.085920 +v -4.180741 -0.061572 -1.174297 +v -4.054913 0.089271 -1.238941 +v -3.929875 0.093008 -1.205801 +v -3.838260 0.104633 -1.115145 +v -3.804616 0.121033 -0.991266 +v -3.837959 0.137813 -0.867357 +v -3.929354 0.150477 -0.776619 +v -4.054312 0.155631 -0.743365 +v -4.179350 0.151894 -0.776505 +v -4.270965 0.140269 -0.867161 +v -4.304608 0.123869 -0.991040 +v -4.271266 0.107089 -1.114949 +v -4.179871 0.094425 -1.205687 +v -4.053993 0.252402 -1.249997 +v -3.928979 0.251767 -1.216560 +v -3.837432 0.251451 -1.125095 +v -3.803880 0.251538 -1.000111 +v -3.837315 0.252005 -0.875096 +v -3.928777 0.252726 -0.783548 +v -4.053760 0.253509 -0.749998 +v -4.178773 0.254144 -0.783435 +v -4.270321 0.254460 -0.874900 +v -4.303872 0.254373 -0.999884 +v -4.270437 0.253907 -1.124899 +v -4.178975 0.253185 -1.216447 +v -4.053063 0.415581 -1.239664 +v -3.928074 0.410574 -1.206504 +v -3.836595 0.398312 -1.115796 +v -3.803136 0.382081 -0.991845 +v -3.836664 0.366230 -0.867863 +v -3.928194 0.355006 -0.777072 +v -4.053202 0.351416 -0.743799 +v -4.178190 0.356423 -0.776959 +v -4.269670 0.368685 -0.867667 +v -4.303128 0.384916 -0.991618 +v -4.269600 0.400767 -1.115600 +v -4.178070 0.411991 -1.206391 +v -4.052139 0.576014 -1.208121 +v -3.927175 0.566708 -1.175807 +v -3.835763 0.542702 -1.087407 +v -3.802397 0.510427 -0.966610 +v -3.836017 0.478533 -0.845783 +v -3.927615 0.455564 -0.757301 +v -4.052647 0.447676 -0.724873 +v -4.177611 0.456982 -0.757188 +v -4.269023 0.480988 -0.845587 +v -4.302389 0.513263 -0.966384 +v -4.268769 0.545157 -1.087211 +v -4.177171 0.568126 -1.175693 +v -4.051236 0.730958 -1.155907 +v -3.926296 0.717501 -1.124991 +v -3.834951 0.682152 -1.040414 +v -3.801675 0.634383 -0.924839 +v -3.835386 0.586994 -0.809233 +v -3.927050 0.552683 -0.724573 +v -4.052106 0.540643 -0.693544 +v -4.177045 0.554100 -0.724460 +v -4.268391 0.589449 -0.809036 +v -4.301667 0.637218 -0.924612 +v -4.267957 0.684607 -1.040218 +v -4.176292 0.718918 -1.124878 +v -4.050371 0.877761 -1.083915 +v -3.925455 0.860370 -1.054928 +v -3.834172 0.814274 -0.975621 +v -3.800983 0.751825 -0.867245 +v -3.834780 0.689756 -0.758838 +v -3.926507 0.644698 -0.679449 +v -4.051587 0.628724 -0.650349 +v -4.176503 0.646116 -0.679335 +v -4.267786 0.692211 -0.758642 +v -4.300975 0.754660 -0.867018 +v -4.267178 0.816730 -0.975425 +v -4.175450 0.861788 -1.054814 +v -4.049558 1.013912 -0.993376 +v -3.924663 0.992872 -0.966815 +v -3.833440 0.936810 -0.894136 +v -3.800333 0.860746 -0.794814 +v -3.834211 0.785061 -0.695461 +v -3.925998 0.730036 -0.622700 +v -4.051099 0.710415 -0.596025 +v -4.175993 0.731454 -0.622586 +v -4.267217 0.787517 -0.695265 +v -4.300324 0.863581 -0.794587 +v -4.266446 0.939265 -0.893940 +v -4.174659 0.994290 -0.966702 +v -4.048811 1.137080 -0.885840 +v -3.923936 1.112741 -0.862161 +v -3.832768 1.047661 -0.797354 +v -3.799735 0.959280 -0.708786 +v -3.833688 0.871279 -0.620186 +v -3.925529 0.807238 -0.555297 +v -4.050651 0.784316 -0.531504 +v -4.175525 0.808655 -0.555183 +v -4.266694 0.873735 -0.619990 +v -4.299726 0.962116 -0.708559 +v -4.265773 1.050117 -0.797158 +v -4.173932 1.114158 -0.862047 +v -4.048142 1.245158 -0.763148 +v -3.923285 1.217923 -0.742756 +v -3.832166 1.144931 -0.686931 +v -3.799200 1.045743 -0.610632 +v -3.833220 0.946934 -0.534302 +v -3.925110 0.874981 -0.478394 +v -4.050249 0.849163 -0.457889 +v -4.175106 0.876398 -0.478281 +v -4.266225 0.949389 -0.534105 +v -4.299192 1.048578 -0.610405 +v -4.265172 1.147387 -0.686735 +v -4.173281 1.219340 -0.742643 +v -4.047564 1.336297 -0.627398 +v -3.922722 1.306620 -0.610644 +v -3.831645 1.226957 -0.564757 +v -3.798737 1.118654 -0.502032 +v -3.832815 1.010731 -0.439277 +v -3.924748 0.932106 -0.393307 +v -4.049902 0.903846 -0.376439 +v -4.174744 0.933524 -0.393193 +v -4.265821 1.013187 -0.439080 +v -4.298729 1.121490 -0.501805 +v -4.264651 1.229412 -0.564560 +v -4.172719 1.308037 -0.610530 +v -4.047085 1.408938 -0.480913 +v -3.922257 1.377314 -0.468084 +v -3.831215 1.292334 -0.432920 +v -3.798354 1.176767 -0.384844 +v -3.832480 1.061580 -0.336737 +v -3.924448 0.977637 -0.301490 +v -4.049615 0.947431 -0.288548 +v -4.174444 0.979055 -0.301377 +v -4.265486 1.064036 -0.336541 +v -4.298347 1.179602 -0.384617 +v -4.264221 1.294789 -0.432723 +v -4.172253 1.378732 -0.467970 +v -4.046715 1.461838 -0.326199 +v -3.921897 1.428797 -0.317515 +v -3.830882 1.339944 -0.293677 +v -3.798058 1.219087 -0.261073 +v -3.832221 1.098610 -0.228438 +v -3.924216 1.010795 -0.204517 +v -4.049393 0.979171 -0.195719 +v -4.174212 1.012212 -0.204403 +v -4.265226 1.101065 -0.228241 +v -4.298050 1.221922 -0.260846 +v -4.263887 1.342399 -0.293481 +v -4.171893 1.430215 -0.317402 +v -4.046460 1.494091 -0.165904 +v -3.921648 1.460186 -0.161516 +v -3.830652 1.368971 -0.149412 +v -3.797854 1.244889 -0.132837 +v -3.832042 1.121187 -0.116231 +v -3.924056 1.031011 -0.104045 +v -4.049240 0.998523 -0.099543 +v -4.174052 1.032428 -0.103931 +v -4.265048 1.123643 -0.116035 +v -4.297846 1.247725 -0.132610 +v -4.263658 1.371427 -0.149216 +v -4.171644 1.461603 -0.161402 +v -4.046323 1.505146 -0.002771 +v -3.921515 1.470945 -0.002753 +v -3.830529 1.378921 -0.002592 +v -3.797744 1.253733 -0.002330 +v -3.831946 1.128926 -0.002038 +v -3.923970 1.037940 -0.001793 +v -4.049158 1.005156 -0.001662 +v -4.173966 1.039357 -0.001680 +v -4.264952 1.131381 -0.001841 +v -4.297736 1.256569 -0.002103 +v -4.263535 1.381376 -0.002395 +v -4.171511 1.472362 -0.002640 +v -4.046308 1.494814 0.160411 +v -3.921500 1.460889 0.156056 +v -3.830515 1.369622 0.144271 +v -3.797732 1.245467 0.128215 +v -3.831935 1.121693 0.112189 +v -3.923960 1.031463 0.100488 +v -4.049149 0.998956 0.096246 +v -4.173956 1.032881 0.100601 +v -4.264941 1.124148 0.112386 +v -4.297724 1.248303 0.128442 +v -4.263521 1.372077 0.144468 +v -4.171496 1.462306 0.156169 +v -4.046413 1.463271 0.320847 +v -3.921603 1.430191 0.312193 +v -3.830611 1.341233 0.288664 +v -3.797817 1.220233 0.256564 +v -3.832010 1.099613 0.224494 +v -3.924027 1.011692 0.201048 +v -4.049212 0.980030 0.192508 +v -4.174023 1.013110 0.201162 +v -4.265016 1.102068 0.224691 +v -4.297809 1.223068 0.256791 +v -4.263616 1.343688 0.288860 +v -4.171599 1.431609 0.312306 +v -4.046639 1.411057 0.475793 +v -3.921823 1.379376 0.462987 +v -3.830814 1.294240 0.428115 +v -3.797997 1.178462 0.380521 +v -3.832168 1.063063 0.332957 +v -3.924168 0.978965 0.298168 +v -4.049348 0.948702 0.285476 +v -4.174164 0.980383 0.298281 +v -4.265173 1.065518 0.333153 +v -4.297989 1.181297 0.380748 +v -4.263819 1.296696 0.428312 +v -4.171819 1.380794 0.463101 +v -4.046981 1.339065 0.622599 +v -3.922155 1.309313 0.605860 +v -3.831121 1.229448 0.560241 +v -3.798271 1.120868 0.497966 +v -3.832407 1.012669 0.435721 +v -3.924382 0.933841 0.390185 +v -4.049552 0.905507 0.373559 +v -4.174378 0.935259 0.390298 +v -4.265413 1.015124 0.435917 +v -4.298263 1.123704 0.498192 +v -4.264127 1.231903 0.560437 +v -4.172152 1.310731 0.605973 +v -4.047433 1.248528 0.758752 +v -3.922595 1.221202 0.738364 +v -3.831528 1.147964 0.682778 +v -3.798632 1.048438 0.606888 +v -3.832723 0.949292 0.531028 +v -3.924665 0.877092 0.475525 +v -4.049824 0.851184 0.455251 +v -4.174662 0.878510 0.475638 +v -4.265729 0.951748 0.531224 +v -4.298624 1.051274 0.607115 +v -4.264534 1.150419 0.682975 +v -4.172591 1.222619 0.738478 +v -4.047987 1.140994 0.881922 +v -3.923134 1.116549 0.858234 +v -3.832026 1.051183 0.793631 +v -3.799075 0.962411 0.705424 +v -3.833111 0.874019 0.617247 +v -3.925013 0.809691 0.552727 +v -4.050156 0.786664 0.529153 +v -4.175009 0.811108 0.552841 +v -4.266117 0.876474 0.617444 +v -4.299067 0.965246 0.705651 +v -4.265032 1.053639 0.793828 +v -4.173130 1.117967 0.858348 +v -4.048634 1.018303 0.990002 +v -3.923764 0.997146 0.963418 +v -3.832608 0.940762 0.890904 +v -3.799593 0.864259 0.791888 +v -3.833564 0.788135 0.692903 +v -3.925418 0.732789 0.620472 +v -4.050544 0.713050 0.594001 +v -4.175414 0.734207 0.620585 +v -4.266569 0.790591 0.693100 +v -4.299585 0.867094 0.792115 +v -4.265614 0.943218 0.891100 +v -4.173759 0.998564 0.963532 +v -4.049362 0.882554 1.081144 +v -3.924472 0.865035 1.052118 +v -3.833264 0.818588 0.972931 +v -3.800176 0.755660 0.864802 +v -3.834074 0.693111 0.756702 +v -3.925875 0.647702 0.677599 +v -4.050981 0.631600 0.648686 +v -4.175871 0.649120 0.677712 +v -4.267079 0.695567 0.756899 +v -4.300168 0.758495 0.865029 +v -4.266270 0.821044 0.973128 +v -4.174469 0.866452 1.052231 +v -4.050159 0.736072 1.153786 +v -3.925249 0.722477 1.122814 +v -3.833982 0.686754 1.038309 +v -3.800814 0.638474 0.922915 +v -3.834632 0.590573 0.807552 +v -3.926375 0.555888 0.723131 +v -4.051460 0.543711 0.692272 +v -4.176371 0.557305 0.723244 +v -4.267638 0.593029 0.807748 +v -4.300806 0.641309 0.923142 +v -4.266987 0.689209 1.038506 +v -4.175245 0.723895 1.122927 +v -4.051013 0.581361 1.206687 +v -3.926079 0.571912 1.174297 +v -3.834750 0.547514 1.085920 +v -3.801497 0.514705 0.965236 +v -3.835229 0.482276 0.844583 +v -3.926909 0.458916 0.756289 +v -4.051972 0.450884 0.724012 +v -4.176906 0.460333 0.756402 +v -4.268235 0.484731 0.844779 +v -4.301488 0.517540 0.965463 +v -4.267756 0.549969 1.086117 +v -4.176075 0.573329 1.174411 +v -4.051907 0.421069 1.238941 +v -3.926950 0.415915 1.205687 +v -3.835555 0.403251 1.114949 +v -3.802212 0.386471 0.991039 +v -3.835855 0.370071 0.867161 +v -3.927470 0.358445 0.776505 +v -4.052508 0.354709 0.743365 +v -4.177466 0.359863 0.776619 +v -4.268861 0.372527 0.867357 +v -4.302204 0.389307 0.991266 +v -4.268560 0.405706 1.115145 +v -4.176946 0.417332 1.205801 +v -4.052827 0.257937 1.249997 +v -3.927845 0.257154 1.216447 +v -3.836383 0.256432 1.124899 +v -3.802948 0.255966 0.999884 +v -3.836499 0.255879 0.874900 +v -3.928047 0.256195 0.783435 +v -4.053061 0.256830 0.749998 +v -4.178043 0.257613 0.783548 +v -4.269505 0.258334 0.875096 +v -4.302940 0.258801 1.000111 +v -4.269389 0.258888 1.125095 +v -4.177841 0.258571 1.216560 +v -4.053757 0.094759 1.239665 +v -3.928750 0.098348 1.206391 +v -3.837220 0.109572 1.115600 +v -3.803692 0.125423 0.991618 +v -3.837150 0.141654 0.867667 +v -3.928630 0.153916 0.776959 +v -4.053618 0.158923 0.743799 +v -4.178626 0.155334 0.777072 +v -4.270156 0.144110 0.867863 +v -4.303684 0.128259 0.991845 +v -4.270226 0.112028 1.115796 +v -4.178746 0.099766 1.206505 +v -4.054681 -0.065675 1.208121 +v -3.929649 -0.057787 1.175693 +v -3.838052 -0.034818 1.087211 +v -3.804431 -0.002923 0.966384 +v -3.837797 0.029351 0.845587 +v -3.929209 0.053357 0.757188 +v -4.054173 0.062663 0.724873 +v -4.179205 0.054775 0.757301 +v -4.270803 0.031806 0.845783 +v -4.304423 -0.000088 0.966611 +v -4.271057 -0.032363 1.087408 +v -4.179646 -0.056369 1.175807 +v -4.055584 -0.220619 1.155907 +v -3.930528 -0.208580 1.124877 +v -3.838864 -0.174268 1.040218 +v -3.805153 -0.126879 0.924612 +v -3.838429 -0.079111 0.809036 +v -3.929775 -0.043761 0.724460 +v -4.054714 -0.030304 0.693544 +v -4.179770 -0.042344 0.724573 +v -4.271435 -0.076655 0.809233 +v -4.305145 -0.124044 0.924839 +v -4.271869 -0.171813 1.040414 +v -4.180523 -0.207162 1.124991 +v -4.056449 -0.367422 1.083914 +v -3.931370 -0.351449 1.054814 +v -3.839642 -0.306391 0.975425 +v -3.805845 -0.244322 0.867018 +v -3.839035 -0.181872 0.758642 +v -3.930317 -0.135777 0.679335 +v -4.055233 -0.118386 0.650349 +v -4.180313 -0.134359 0.679449 +v -4.272040 -0.179417 0.758838 +v -4.305837 -0.241486 0.867245 +v -4.272648 -0.303935 0.975621 +v -4.181365 -0.350031 1.054928 +v -4.057262 -0.503572 0.993376 +v -3.932161 -0.483951 0.966702 +v -3.840374 -0.428926 0.893940 +v -3.806496 -0.353242 0.794587 +v -3.839604 -0.277178 0.695265 +v -3.930826 -0.221115 0.622586 +v -4.055721 -0.200076 0.596026 +v -4.180822 -0.219697 0.622700 +v -4.272609 -0.274722 0.695461 +v -4.306488 -0.350406 0.794814 +v -4.273380 -0.426470 0.894137 +v -4.182157 -0.482533 0.966815 +v -4.058009 -0.626740 0.885841 +v -3.932888 -0.603818 0.862048 +v -3.841047 -0.539777 0.797159 +v -3.807094 -0.451776 0.708559 +v -3.840127 -0.363395 0.619990 +v -3.931295 -0.298316 0.555184 +v -4.056170 -0.273976 0.531505 +v -4.181291 -0.296898 0.555297 +v -4.273132 -0.360940 0.620187 +v -4.307086 -0.448941 0.708786 +v -4.274052 -0.537322 0.797355 +v -4.182884 -0.602401 0.862162 +v -4.058678 -0.734819 0.763148 +v -3.933539 -0.709001 0.742643 +v -3.841648 -0.637048 0.686735 +v -3.807628 -0.538239 0.610405 +v -3.840595 -0.439050 0.534105 +v -3.931714 -0.366059 0.478280 +v -4.056571 -0.338824 0.457889 +v -4.181710 -0.364642 0.478394 +v -4.273601 -0.436595 0.534302 +v -4.307621 -0.535404 0.610632 +v -4.274654 -0.634593 0.686931 +v -4.183535 -0.707584 0.742756 +v -4.059257 -0.825958 0.627398 +v -3.934102 -0.797698 0.610530 +v -3.842169 -0.719073 0.564560 +v -3.808091 -0.611151 0.501805 +v -3.841000 -0.502848 0.439080 +v -3.932076 -0.423185 0.393193 +v -4.056918 -0.393507 0.376439 +v -4.182073 -0.421767 0.393307 +v -4.274005 -0.500392 0.439277 +v -4.308083 -0.608315 0.502032 +v -4.275175 -0.716618 0.564756 +v -4.184098 -0.796281 0.610644 +v -4.059735 -0.898599 0.480913 +v -3.934567 -0.868393 0.467971 +v -3.842599 -0.784450 0.432724 +v -3.808474 -0.669263 0.384617 +v -3.841334 -0.553696 0.336541 +v -3.932376 -0.468716 0.301377 +v -4.057205 -0.437092 0.288548 +v -4.182372 -0.467298 0.301491 +v -4.274340 -0.551241 0.336737 +v -4.308466 -0.666428 0.384844 +v -4.275605 -0.781995 0.432920 +v -4.184563 -0.866975 0.468084 +v -4.060105 -0.951499 0.326199 +v -3.934927 -0.919876 0.317402 +v -3.842932 -0.832060 0.293481 +v -3.808770 -0.711583 0.260846 +v -3.841594 -0.590726 0.228241 +v -3.932608 -0.501873 0.204403 +v -4.057427 -0.468832 0.195719 +v -4.182604 -0.500455 0.204516 +v -4.274599 -0.588271 0.228437 +v -4.308762 -0.708748 0.261072 +v -4.275938 -0.829605 0.293677 +v -4.184924 -0.918458 0.317515 +v -4.060360 -0.983752 0.165904 +v -3.935176 -0.951264 0.161402 +v -3.843163 -0.861088 0.149216 +v -3.808975 -0.737386 0.132610 +v -3.841773 -0.613304 0.116035 +v -3.932769 -0.522089 0.103931 +v -4.057580 -0.488184 0.099543 +v -4.182765 -0.520672 0.104045 +v -4.274778 -0.610848 0.116231 +v -4.308966 -0.734550 0.132837 +v -4.276168 -0.858633 0.149412 +v -4.185172 -0.949847 0.161516 +s 0 +usemtl white +f 1413 1402 1401 +f 1402 1415 1403 +f 1415 1404 1403 +f 1416 1405 1404 +f 1417 1406 1405 +f 1406 1419 1407 +f 1419 1408 1407 +f 1420 1409 1408 +f 1421 1410 1409 +f 1422 1411 1410 +f 1423 1412 1411 +f 1424 1401 1412 +f 1425 1414 1413 +f 1426 1415 1414 +f 1427 1416 1415 +f 1428 1417 1416 +f 1417 1430 1418 +f 1430 1419 1418 +f 1431 1420 1419 +f 1432 1421 1420 +f 1421 1434 1422 +f 1422 1435 1423 +f 1423 1436 1424 +f 1436 1413 1424 +f 1425 1438 1426 +f 1438 1427 1426 +f 1439 1428 1427 +f 1428 1441 1429 +f 1429 1442 1430 +f 1430 1443 1431 +f 1443 1432 1431 +f 1444 1433 1432 +f 1433 1446 1434 +f 1434 1447 1435 +f 1435 1448 1436 +f 1448 1425 1436 +f 1437 1450 1438 +f 1438 1451 1439 +f 1439 1452 1440 +f 1452 1441 1440 +f 1441 1454 1442 +f 1454 1443 1442 +f 1455 1444 1443 +f 1456 1445 1444 +f 1445 1458 1446 +f 1458 1447 1446 +f 1459 1448 1447 +f 1460 1437 1448 +f 1461 1450 1449 +f 1450 1463 1451 +f 1463 1452 1451 +f 1464 1453 1452 +f 1453 1466 1454 +f 1466 1455 1454 +f 1467 1456 1455 +f 1468 1457 1456 +f 1469 1458 1457 +f 1470 1459 1458 +f 1471 1460 1459 +f 1460 1461 1449 +f 1473 1462 1461 +f 1474 1463 1462 +f 1475 1464 1463 +f 1476 1465 1464 +f 1477 1466 1465 +f 1478 1467 1466 +f 1467 1480 1468 +f 1480 1469 1468 +f 1481 1470 1469 +f 1482 1471 1470 +f 1471 1484 1472 +f 1484 1461 1472 +f 1485 1474 1473 +f 1474 1487 1475 +f 1487 1476 1475 +f 1488 1477 1476 +f 1477 1490 1478 +f 1490 1479 1478 +f 1491 1480 1479 +f 1492 1481 1480 +f 1481 1494 1482 +f 1482 1495 1483 +f 1495 1484 1483 +f 1496 1473 1484 +f 1497 1486 1485 +f 1486 1499 1487 +f 1487 1500 1488 +f 1500 1489 1488 +f 1489 1502 1490 +f 1502 1491 1490 +f 1503 1492 1491 +f 1504 1493 1492 +f 1505 1494 1493 +f 1506 1495 1494 +f 1507 1496 1495 +f 1508 1485 1496 +f 1497 1510 1498 +f 1510 1499 1498 +f 1511 1500 1499 +f 1512 1501 1500 +f 1513 1502 1501 +f 1514 1503 1502 +f 1515 1504 1503 +f 1516 1505 1504 +f 1505 1518 1506 +f 1506 1519 1507 +f 1519 1508 1507 +f 1520 1497 1508 +f 1521 1510 1509 +f 1522 1511 1510 +f 1523 1512 1511 +f 1524 1513 1512 +f 1513 1526 1514 +f 1526 1515 1514 +f 1527 1516 1515 +f 1528 1517 1516 +f 1529 1518 1517 +f 1530 1519 1518 +f 1531 1520 1519 +f 1532 1509 1520 +f 1533 1522 1521 +f 1534 1523 1522 +f 1523 1536 1524 +f 1536 1525 1524 +f 1537 1526 1525 +f 1538 1527 1526 +f 1527 1540 1528 +f 1540 1529 1528 +f 1529 1542 1530 +f 1542 1531 1530 +f 1543 1532 1531 +f 1544 1521 1532 +f 1545 1534 1533 +f 1546 1535 1534 +f 1547 1536 1535 +f 1536 1549 1537 +f 1537 1550 1538 +f 1550 1539 1538 +f 1551 1540 1539 +f 1552 1541 1540 +f 1553 1542 1541 +f 1554 1543 1542 +f 1555 1544 1543 +f 1544 1545 1533 +f 1557 1546 1545 +f 1558 1547 1546 +f 1559 1548 1547 +f 1560 1549 1548 +f 1561 1550 1549 +f 1562 1551 1550 +f 1551 1564 1552 +f 1564 1553 1552 +f 1553 1566 1554 +f 1554 1567 1555 +f 1555 1568 1556 +f 1556 1557 1545 +f 1569 1558 1557 +f 1558 1571 1559 +f 1559 1572 1560 +f 1572 1561 1560 +f 1573 1562 1561 +f 1574 1563 1562 +f 1575 1564 1563 +f 1576 1565 1564 +f 1577 1566 1565 +f 1578 1567 1566 +f 1579 1568 1567 +f 1580 1557 1568 +f 1581 1570 1569 +f 1582 1571 1570 +f 1583 1572 1571 +f 1572 1585 1573 +f 1585 1574 1573 +f 1586 1575 1574 +f 1587 1576 1575 +f 1588 1577 1576 +f 1577 1590 1578 +f 1590 1579 1578 +f 1579 1592 1580 +f 1592 1569 1580 +f 1593 1582 1581 +f 1582 1595 1583 +f 1595 1584 1583 +f 1596 1585 1584 +f 1597 1586 1585 +f 1598 1587 1586 +f 1599 1588 1587 +f 1600 1589 1588 +f 1601 1590 1589 +f 1602 1591 1590 +f 1603 1592 1591 +f 1604 1581 1592 +f 1605 1594 1593 +f 1606 1595 1594 +f 1607 1596 1595 +f 1608 1597 1596 +f 1609 1598 1597 +f 1598 1611 1599 +f 1611 1600 1599 +f 1600 1613 1601 +f 1601 1614 1602 +f 1602 1615 1603 +f 1603 1616 1604 +f 1616 1593 1604 +f 1617 1606 1605 +f 1618 1607 1606 +f 1607 1620 1608 +f 1620 1609 1608 +f 1621 1610 1609 +f 1622 1611 1610 +f 1623 1612 1611 +f 1612 1625 1613 +f 1625 1614 1613 +f 1626 1615 1614 +f 1627 1616 1615 +f 1628 1605 1616 +f 1629 1618 1617 +f 1630 1619 1618 +f 1631 1620 1619 +f 1620 1633 1621 +f 1633 1622 1621 +f 1634 1623 1622 +f 1635 1624 1623 +f 1624 1637 1625 +f 1637 1626 1625 +f 1638 1627 1626 +f 1627 1640 1628 +f 1640 1617 1628 +f 1629 1642 1630 +f 1642 1631 1630 +f 1631 1644 1632 +f 1644 1633 1632 +f 1645 1634 1633 +f 1646 1635 1634 +f 1647 1636 1635 +f 1648 1637 1636 +f 1637 1650 1638 +f 1650 1639 1638 +f 1651 1640 1639 +f 1652 1629 1640 +f 1653 1642 1641 +f 1654 1643 1642 +f 1655 1644 1643 +f 1644 1657 1645 +f 1657 1646 1645 +f 1658 1647 1646 +f 1647 1660 1648 +f 1660 1649 1648 +f 1661 1650 1649 +f 1662 1651 1650 +f 1651 1664 1652 +f 1664 1641 1652 +f 1653 1666 1654 +f 1666 1655 1654 +f 1667 1656 1655 +f 1656 1669 1657 +f 1669 1658 1657 +f 1670 1659 1658 +f 1671 1660 1659 +f 1672 1661 1660 +f 1673 1662 1661 +f 1662 1675 1663 +f 1675 1664 1663 +f 1676 1653 1664 +f 1677 1666 1665 +f 1678 1667 1666 +f 1679 1668 1667 +f 1680 1669 1668 +f 1681 1670 1669 +f 1682 1671 1670 +f 1683 1672 1671 +f 1672 1685 1673 +f 1673 1686 1674 +f 1674 1687 1675 +f 1675 1688 1676 +f 1676 1677 1665 +f 1677 1690 1678 +f 1690 1679 1678 +f 1691 1680 1679 +f 1692 1681 1680 +f 1693 1682 1681 +f 1694 1683 1682 +f 1695 1684 1683 +f 1684 1697 1685 +f 1697 1686 1685 +f 1698 1687 1686 +f 1699 1688 1687 +f 1700 1677 1688 +f 1701 1690 1689 +f 1702 1691 1690 +f 1703 1692 1691 +f 1704 1693 1692 +f 1705 1694 1693 +f 1706 1695 1694 +f 1695 1708 1696 +f 1708 1697 1696 +f 1697 1710 1698 +f 1698 1711 1699 +f 1699 1712 1700 +f 1700 1701 1689 +f 1701 1714 1702 +f 1702 1715 1703 +f 1703 1716 1704 +f 1704 1717 1705 +f 1705 1718 1706 +f 1718 1707 1706 +f 1719 1708 1707 +f 1720 1709 1708 +f 1721 1710 1709 +f 1722 1711 1710 +f 1723 1712 1711 +f 1712 1713 1701 +f 1725 1714 1713 +f 1726 1715 1714 +f 1715 1728 1716 +f 1728 1717 1716 +f 1729 1718 1717 +f 1730 1719 1718 +f 1731 1720 1719 +f 1720 1733 1721 +f 1733 1722 1721 +f 1734 1723 1722 +f 1723 1736 1724 +f 1724 1725 1713 +f 1737 1726 1725 +f 1738 1727 1726 +f 1739 1728 1727 +f 1740 1729 1728 +f 1741 1730 1729 +f 1730 1743 1731 +f 1743 1732 1731 +f 1744 1733 1732 +f 1745 1734 1733 +f 1734 1747 1735 +f 1735 1748 1736 +f 1748 1725 1736 +f 1749 1738 1737 +f 1750 1739 1738 +f 1751 1740 1739 +f 1740 1753 1741 +f 1753 1742 1741 +f 1754 1743 1742 +f 1755 1744 1743 +f 1744 1757 1745 +f 1757 1746 1745 +f 1758 1747 1746 +f 1747 1760 1748 +f 1760 1737 1748 +f 1761 1750 1749 +f 1750 1763 1751 +f 1763 1752 1751 +f 1764 1753 1752 +f 1765 1754 1753 +f 1766 1755 1754 +f 1767 1756 1755 +f 1768 1757 1756 +f 1757 1770 1758 +f 1770 1759 1758 +f 1771 1760 1759 +f 1772 1749 1760 +f 1761 1774 1762 +f 1762 1775 1763 +f 1775 1764 1763 +f 1764 1777 1765 +f 1777 1766 1765 +f 1778 1767 1766 +f 1779 1768 1767 +f 1780 1769 1768 +f 1781 1770 1769 +f 1782 1771 1770 +f 1783 1772 1771 +f 1784 1761 1772 +f 1773 1786 1774 +f 1786 1775 1774 +f 1787 1776 1775 +f 1788 1777 1776 +f 1777 1790 1778 +f 1790 1779 1778 +f 1791 1780 1779 +f 1792 1781 1780 +f 1793 1782 1781 +f 1782 1795 1783 +f 1783 1796 1784 +f 1796 1773 1784 +f 1797 1786 1785 +f 1798 1787 1786 +f 1799 1788 1787 +f 1800 1789 1788 +f 1801 1790 1789 +f 1802 1791 1790 +f 1803 1792 1791 +f 1804 1793 1792 +f 1793 1806 1794 +f 1806 1795 1794 +f 1795 1808 1796 +f 1808 1785 1796 +f 1809 1798 1797 +f 1810 1799 1798 +f 1811 1800 1799 +f 1812 1801 1800 +f 1801 1814 1802 +f 1814 1803 1802 +f 1815 1804 1803 +f 1816 1805 1804 +f 1817 1806 1805 +f 1818 1807 1806 +f 1807 1820 1808 +f 1820 1797 1808 +f 1821 1810 1809 +f 1810 1823 1811 +f 1823 1812 1811 +f 1824 1813 1812 +f 1813 1826 1814 +f 1826 1815 1814 +f 1827 1816 1815 +f 1828 1817 1816 +f 1817 1830 1818 +f 1830 1819 1818 +f 1831 1820 1819 +f 1832 1809 1820 +f 1833 1822 1821 +f 1834 1823 1822 +f 1823 1836 1824 +f 1824 1837 1825 +f 1837 1826 1825 +f 1826 1839 1827 +f 1839 1828 1827 +f 1840 1829 1828 +f 1841 1830 1829 +f 1842 1831 1830 +f 1843 1832 1831 +f 1844 1821 1832 +f 1833 1846 1834 +f 1846 1835 1834 +f 1847 1836 1835 +f 1848 1837 1836 +f 1849 1838 1837 +f 1850 1839 1838 +f 1851 1840 1839 +f 1840 1853 1841 +f 1841 1854 1842 +f 1854 1843 1842 +f 1855 1844 1843 +f 1856 1833 1844 +f 1857 1846 1845 +f 1858 1847 1846 +f 1859 1848 1847 +f 1860 1849 1848 +f 1861 1850 1849 +f 1850 1863 1851 +f 1863 1852 1851 +f 1864 1853 1852 +f 1853 1866 1854 +f 1854 1867 1855 +f 1867 1856 1855 +f 1868 1845 1856 +f 1869 1858 1857 +f 1870 1859 1858 +f 1871 1860 1859 +f 1872 1861 1860 +f 1873 1862 1861 +f 1874 1863 1862 +f 1875 1864 1863 +f 1876 1865 1864 +f 1877 1866 1865 +f 1866 1879 1867 +f 1867 1880 1868 +f 1880 1857 1868 +f 1881 1870 1869 +f 1882 1871 1870 +f 1871 1884 1872 +f 1872 1885 1873 +f 1885 1874 1873 +f 1886 1875 1874 +f 1887 1876 1875 +f 1888 1877 1876 +f 1889 1878 1877 +f 1890 1879 1878 +f 1891 1880 1879 +f 1880 1881 1869 +f 1881 1894 1882 +f 1894 1883 1882 +f 1895 1884 1883 +f 1896 1885 1884 +f 1897 1886 1885 +f 1898 1887 1886 +f 1899 1888 1887 +f 1900 1889 1888 +f 1901 1890 1889 +f 1902 1891 1890 +f 1891 1904 1892 +f 1904 1881 1892 +f 1893 1906 1894 +f 1906 1895 1894 +f 1895 1908 1896 +f 1896 1909 1897 +f 1897 1910 1898 +f 1910 1899 1898 +f 1911 1900 1899 +f 1912 1901 1900 +f 1913 1902 1901 +f 1914 1903 1902 +f 1903 1916 1904 +f 1916 1893 1904 +f 1905 1918 1906 +f 1918 1907 1906 +f 1907 1920 1908 +f 1920 1909 1908 +f 1921 1910 1909 +f 1922 1911 1910 +f 1923 1912 1911 +f 1912 1925 1913 +f 1913 1926 1914 +f 1926 1915 1914 +f 1927 1916 1915 +f 1928 1905 1916 +f 1929 1918 1917 +f 1930 1919 1918 +f 1931 1920 1919 +f 1932 1921 1920 +f 1933 1922 1921 +f 1934 1923 1922 +f 1935 1924 1923 +f 1924 1937 1925 +f 1937 1926 1925 +f 1938 1927 1926 +f 1927 1940 1928 +f 1940 1917 1928 +f 1941 1930 1929 +f 1942 1931 1930 +f 1931 1944 1932 +f 1944 1933 1932 +f 1945 1934 1933 +f 1946 1935 1934 +f 1947 1936 1935 +f 1948 1937 1936 +f 1949 1938 1937 +f 1950 1939 1938 +f 1951 1940 1939 +f 1952 1929 1940 +f 1953 1942 1941 +f 1954 1943 1942 +f 1955 1944 1943 +f 1956 1945 1944 +f 1957 1946 1945 +f 1958 1947 1946 +f 1959 1948 1947 +f 1948 1961 1949 +f 1961 1950 1949 +f 1962 1951 1950 +f 1963 1952 1951 +f 1964 1941 1952 +f 1953 1966 1954 +f 1954 1967 1955 +f 1955 1968 1956 +f 1968 1957 1956 +f 1969 1958 1957 +f 1958 1971 1959 +f 1971 1960 1959 +f 1972 1961 1960 +f 1961 1974 1962 +f 1974 1963 1962 +f 1975 1964 1963 +f 1976 1953 1964 +f 1401 1966 1965 +f 1402 1967 1966 +f 1403 1968 1967 +f 1404 1969 1968 +f 1405 1970 1969 +f 1406 1971 1970 +f 1971 1408 1972 +f 1408 1973 1972 +f 1409 1974 1973 +f 1410 1975 1974 +f 1975 1412 1976 +f 1976 1401 1965 +f 1413 1414 1402 +f 1402 1414 1415 +f 1415 1416 1404 +f 1416 1417 1405 +f 1417 1418 1406 +f 1406 1418 1419 +f 1419 1420 1408 +f 1420 1421 1409 +f 1421 1422 1410 +f 1422 1423 1411 +f 1423 1424 1412 +f 1424 1413 1401 +f 1425 1426 1414 +f 1426 1427 1415 +f 1427 1428 1416 +f 1428 1429 1417 +f 1417 1429 1430 +f 1430 1431 1419 +f 1431 1432 1420 +f 1432 1433 1421 +f 1421 1433 1434 +f 1422 1434 1435 +f 1423 1435 1436 +f 1436 1425 1413 +f 1425 1437 1438 +f 1438 1439 1427 +f 1439 1440 1428 +f 1428 1440 1441 +f 1429 1441 1442 +f 1430 1442 1443 +f 1443 1444 1432 +f 1444 1445 1433 +f 1433 1445 1446 +f 1434 1446 1447 +f 1435 1447 1448 +f 1448 1437 1425 +f 1437 1449 1450 +f 1438 1450 1451 +f 1439 1451 1452 +f 1452 1453 1441 +f 1441 1453 1454 +f 1454 1455 1443 +f 1455 1456 1444 +f 1456 1457 1445 +f 1445 1457 1458 +f 1458 1459 1447 +f 1459 1460 1448 +f 1460 1449 1437 +f 1461 1462 1450 +f 1450 1462 1463 +f 1463 1464 1452 +f 1464 1465 1453 +f 1453 1465 1466 +f 1466 1467 1455 +f 1467 1468 1456 +f 1468 1469 1457 +f 1469 1470 1458 +f 1470 1471 1459 +f 1471 1472 1460 +f 1460 1472 1461 +f 1473 1474 1462 +f 1474 1475 1463 +f 1475 1476 1464 +f 1476 1477 1465 +f 1477 1478 1466 +f 1478 1479 1467 +f 1467 1479 1480 +f 1480 1481 1469 +f 1481 1482 1470 +f 1482 1483 1471 +f 1471 1483 1484 +f 1484 1473 1461 +f 1485 1486 1474 +f 1474 1486 1487 +f 1487 1488 1476 +f 1488 1489 1477 +f 1477 1489 1490 +f 1490 1491 1479 +f 1491 1492 1480 +f 1492 1493 1481 +f 1481 1493 1494 +f 1482 1494 1495 +f 1495 1496 1484 +f 1496 1485 1473 +f 1497 1498 1486 +f 1486 1498 1499 +f 1487 1499 1500 +f 1500 1501 1489 +f 1489 1501 1502 +f 1502 1503 1491 +f 1503 1504 1492 +f 1504 1505 1493 +f 1505 1506 1494 +f 1506 1507 1495 +f 1507 1508 1496 +f 1508 1497 1485 +f 1497 1509 1510 +f 1510 1511 1499 +f 1511 1512 1500 +f 1512 1513 1501 +f 1513 1514 1502 +f 1514 1515 1503 +f 1515 1516 1504 +f 1516 1517 1505 +f 1505 1517 1518 +f 1506 1518 1519 +f 1519 1520 1508 +f 1520 1509 1497 +f 1521 1522 1510 +f 1522 1523 1511 +f 1523 1524 1512 +f 1524 1525 1513 +f 1513 1525 1526 +f 1526 1527 1515 +f 1527 1528 1516 +f 1528 1529 1517 +f 1529 1530 1518 +f 1530 1531 1519 +f 1531 1532 1520 +f 1532 1521 1509 +f 1533 1534 1522 +f 1534 1535 1523 +f 1523 1535 1536 +f 1536 1537 1525 +f 1537 1538 1526 +f 1538 1539 1527 +f 1527 1539 1540 +f 1540 1541 1529 +f 1529 1541 1542 +f 1542 1543 1531 +f 1543 1544 1532 +f 1544 1533 1521 +f 1545 1546 1534 +f 1546 1547 1535 +f 1547 1548 1536 +f 1536 1548 1549 +f 1537 1549 1550 +f 1550 1551 1539 +f 1551 1552 1540 +f 1552 1553 1541 +f 1553 1554 1542 +f 1554 1555 1543 +f 1555 1556 1544 +f 1544 1556 1545 +f 1557 1558 1546 +f 1558 1559 1547 +f 1559 1560 1548 +f 1560 1561 1549 +f 1561 1562 1550 +f 1562 1563 1551 +f 1551 1563 1564 +f 1564 1565 1553 +f 1553 1565 1566 +f 1554 1566 1567 +f 1555 1567 1568 +f 1556 1568 1557 +f 1569 1570 1558 +f 1558 1570 1571 +f 1559 1571 1572 +f 1572 1573 1561 +f 1573 1574 1562 +f 1574 1575 1563 +f 1575 1576 1564 +f 1576 1577 1565 +f 1577 1578 1566 +f 1578 1579 1567 +f 1579 1580 1568 +f 1580 1569 1557 +f 1581 1582 1570 +f 1582 1583 1571 +f 1583 1584 1572 +f 1572 1584 1585 +f 1585 1586 1574 +f 1586 1587 1575 +f 1587 1588 1576 +f 1588 1589 1577 +f 1577 1589 1590 +f 1590 1591 1579 +f 1579 1591 1592 +f 1592 1581 1569 +f 1593 1594 1582 +f 1582 1594 1595 +f 1595 1596 1584 +f 1596 1597 1585 +f 1597 1598 1586 +f 1598 1599 1587 +f 1599 1600 1588 +f 1600 1601 1589 +f 1601 1602 1590 +f 1602 1603 1591 +f 1603 1604 1592 +f 1604 1593 1581 +f 1605 1606 1594 +f 1606 1607 1595 +f 1607 1608 1596 +f 1608 1609 1597 +f 1609 1610 1598 +f 1598 1610 1611 +f 1611 1612 1600 +f 1600 1612 1613 +f 1601 1613 1614 +f 1602 1614 1615 +f 1603 1615 1616 +f 1616 1605 1593 +f 1617 1618 1606 +f 1618 1619 1607 +f 1607 1619 1620 +f 1620 1621 1609 +f 1621 1622 1610 +f 1622 1623 1611 +f 1623 1624 1612 +f 1612 1624 1625 +f 1625 1626 1614 +f 1626 1627 1615 +f 1627 1628 1616 +f 1628 1617 1605 +f 1629 1630 1618 +f 1630 1631 1619 +f 1631 1632 1620 +f 1620 1632 1633 +f 1633 1634 1622 +f 1634 1635 1623 +f 1635 1636 1624 +f 1624 1636 1637 +f 1637 1638 1626 +f 1638 1639 1627 +f 1627 1639 1640 +f 1640 1629 1617 +f 1629 1641 1642 +f 1642 1643 1631 +f 1631 1643 1644 +f 1644 1645 1633 +f 1645 1646 1634 +f 1646 1647 1635 +f 1647 1648 1636 +f 1648 1649 1637 +f 1637 1649 1650 +f 1650 1651 1639 +f 1651 1652 1640 +f 1652 1641 1629 +f 1653 1654 1642 +f 1654 1655 1643 +f 1655 1656 1644 +f 1644 1656 1657 +f 1657 1658 1646 +f 1658 1659 1647 +f 1647 1659 1660 +f 1660 1661 1649 +f 1661 1662 1650 +f 1662 1663 1651 +f 1651 1663 1664 +f 1664 1653 1641 +f 1653 1665 1666 +f 1666 1667 1655 +f 1667 1668 1656 +f 1656 1668 1669 +f 1669 1670 1658 +f 1670 1671 1659 +f 1671 1672 1660 +f 1672 1673 1661 +f 1673 1674 1662 +f 1662 1674 1675 +f 1675 1676 1664 +f 1676 1665 1653 +f 1677 1678 1666 +f 1678 1679 1667 +f 1679 1680 1668 +f 1680 1681 1669 +f 1681 1682 1670 +f 1682 1683 1671 +f 1683 1684 1672 +f 1672 1684 1685 +f 1673 1685 1686 +f 1674 1686 1687 +f 1675 1687 1688 +f 1676 1688 1677 +f 1677 1689 1690 +f 1690 1691 1679 +f 1691 1692 1680 +f 1692 1693 1681 +f 1693 1694 1682 +f 1694 1695 1683 +f 1695 1696 1684 +f 1684 1696 1697 +f 1697 1698 1686 +f 1698 1699 1687 +f 1699 1700 1688 +f 1700 1689 1677 +f 1701 1702 1690 +f 1702 1703 1691 +f 1703 1704 1692 +f 1704 1705 1693 +f 1705 1706 1694 +f 1706 1707 1695 +f 1695 1707 1708 +f 1708 1709 1697 +f 1697 1709 1710 +f 1698 1710 1711 +f 1699 1711 1712 +f 1700 1712 1701 +f 1701 1713 1714 +f 1702 1714 1715 +f 1703 1715 1716 +f 1704 1716 1717 +f 1705 1717 1718 +f 1718 1719 1707 +f 1719 1720 1708 +f 1720 1721 1709 +f 1721 1722 1710 +f 1722 1723 1711 +f 1723 1724 1712 +f 1712 1724 1713 +f 1725 1726 1714 +f 1726 1727 1715 +f 1715 1727 1728 +f 1728 1729 1717 +f 1729 1730 1718 +f 1730 1731 1719 +f 1731 1732 1720 +f 1720 1732 1733 +f 1733 1734 1722 +f 1734 1735 1723 +f 1723 1735 1736 +f 1724 1736 1725 +f 1737 1738 1726 +f 1738 1739 1727 +f 1739 1740 1728 +f 1740 1741 1729 +f 1741 1742 1730 +f 1730 1742 1743 +f 1743 1744 1732 +f 1744 1745 1733 +f 1745 1746 1734 +f 1734 1746 1747 +f 1735 1747 1748 +f 1748 1737 1725 +f 1749 1750 1738 +f 1750 1751 1739 +f 1751 1752 1740 +f 1740 1752 1753 +f 1753 1754 1742 +f 1754 1755 1743 +f 1755 1756 1744 +f 1744 1756 1757 +f 1757 1758 1746 +f 1758 1759 1747 +f 1747 1759 1760 +f 1760 1749 1737 +f 1761 1762 1750 +f 1750 1762 1763 +f 1763 1764 1752 +f 1764 1765 1753 +f 1765 1766 1754 +f 1766 1767 1755 +f 1767 1768 1756 +f 1768 1769 1757 +f 1757 1769 1770 +f 1770 1771 1759 +f 1771 1772 1760 +f 1772 1761 1749 +f 1761 1773 1774 +f 1762 1774 1775 +f 1775 1776 1764 +f 1764 1776 1777 +f 1777 1778 1766 +f 1778 1779 1767 +f 1779 1780 1768 +f 1780 1781 1769 +f 1781 1782 1770 +f 1782 1783 1771 +f 1783 1784 1772 +f 1784 1773 1761 +f 1773 1785 1786 +f 1786 1787 1775 +f 1787 1788 1776 +f 1788 1789 1777 +f 1777 1789 1790 +f 1790 1791 1779 +f 1791 1792 1780 +f 1792 1793 1781 +f 1793 1794 1782 +f 1782 1794 1795 +f 1783 1795 1796 +f 1796 1785 1773 +f 1797 1798 1786 +f 1798 1799 1787 +f 1799 1800 1788 +f 1800 1801 1789 +f 1801 1802 1790 +f 1802 1803 1791 +f 1803 1804 1792 +f 1804 1805 1793 +f 1793 1805 1806 +f 1806 1807 1795 +f 1795 1807 1808 +f 1808 1797 1785 +f 1809 1810 1798 +f 1810 1811 1799 +f 1811 1812 1800 +f 1812 1813 1801 +f 1801 1813 1814 +f 1814 1815 1803 +f 1815 1816 1804 +f 1816 1817 1805 +f 1817 1818 1806 +f 1818 1819 1807 +f 1807 1819 1820 +f 1820 1809 1797 +f 1821 1822 1810 +f 1810 1822 1823 +f 1823 1824 1812 +f 1824 1825 1813 +f 1813 1825 1826 +f 1826 1827 1815 +f 1827 1828 1816 +f 1828 1829 1817 +f 1817 1829 1830 +f 1830 1831 1819 +f 1831 1832 1820 +f 1832 1821 1809 +f 1833 1834 1822 +f 1834 1835 1823 +f 1823 1835 1836 +f 1824 1836 1837 +f 1837 1838 1826 +f 1826 1838 1839 +f 1839 1840 1828 +f 1840 1841 1829 +f 1841 1842 1830 +f 1842 1843 1831 +f 1843 1844 1832 +f 1844 1833 1821 +f 1833 1845 1846 +f 1846 1847 1835 +f 1847 1848 1836 +f 1848 1849 1837 +f 1849 1850 1838 +f 1850 1851 1839 +f 1851 1852 1840 +f 1840 1852 1853 +f 1841 1853 1854 +f 1854 1855 1843 +f 1855 1856 1844 +f 1856 1845 1833 +f 1857 1858 1846 +f 1858 1859 1847 +f 1859 1860 1848 +f 1860 1861 1849 +f 1861 1862 1850 +f 1850 1862 1863 +f 1863 1864 1852 +f 1864 1865 1853 +f 1853 1865 1866 +f 1854 1866 1867 +f 1867 1868 1856 +f 1868 1857 1845 +f 1869 1870 1858 +f 1870 1871 1859 +f 1871 1872 1860 +f 1872 1873 1861 +f 1873 1874 1862 +f 1874 1875 1863 +f 1875 1876 1864 +f 1876 1877 1865 +f 1877 1878 1866 +f 1866 1878 1879 +f 1867 1879 1880 +f 1880 1869 1857 +f 1881 1882 1870 +f 1882 1883 1871 +f 1871 1883 1884 +f 1872 1884 1885 +f 1885 1886 1874 +f 1886 1887 1875 +f 1887 1888 1876 +f 1888 1889 1877 +f 1889 1890 1878 +f 1890 1891 1879 +f 1891 1892 1880 +f 1880 1892 1881 +f 1881 1893 1894 +f 1894 1895 1883 +f 1895 1896 1884 +f 1896 1897 1885 +f 1897 1898 1886 +f 1898 1899 1887 +f 1899 1900 1888 +f 1900 1901 1889 +f 1901 1902 1890 +f 1902 1903 1891 +f 1891 1903 1904 +f 1904 1893 1881 +f 1893 1905 1906 +f 1906 1907 1895 +f 1895 1907 1908 +f 1896 1908 1909 +f 1897 1909 1910 +f 1910 1911 1899 +f 1911 1912 1900 +f 1912 1913 1901 +f 1913 1914 1902 +f 1914 1915 1903 +f 1903 1915 1916 +f 1916 1905 1893 +f 1905 1917 1918 +f 1918 1919 1907 +f 1907 1919 1920 +f 1920 1921 1909 +f 1921 1922 1910 +f 1922 1923 1911 +f 1923 1924 1912 +f 1912 1924 1925 +f 1913 1925 1926 +f 1926 1927 1915 +f 1927 1928 1916 +f 1928 1917 1905 +f 1929 1930 1918 +f 1930 1931 1919 +f 1931 1932 1920 +f 1932 1933 1921 +f 1933 1934 1922 +f 1934 1935 1923 +f 1935 1936 1924 +f 1924 1936 1937 +f 1937 1938 1926 +f 1938 1939 1927 +f 1927 1939 1940 +f 1940 1929 1917 +f 1941 1942 1930 +f 1942 1943 1931 +f 1931 1943 1944 +f 1944 1945 1933 +f 1945 1946 1934 +f 1946 1947 1935 +f 1947 1948 1936 +f 1948 1949 1937 +f 1949 1950 1938 +f 1950 1951 1939 +f 1951 1952 1940 +f 1952 1941 1929 +f 1953 1954 1942 +f 1954 1955 1943 +f 1955 1956 1944 +f 1956 1957 1945 +f 1957 1958 1946 +f 1958 1959 1947 +f 1959 1960 1948 +f 1948 1960 1961 +f 1961 1962 1950 +f 1962 1963 1951 +f 1963 1964 1952 +f 1964 1953 1941 +f 1953 1965 1966 +f 1954 1966 1967 +f 1955 1967 1968 +f 1968 1969 1957 +f 1969 1970 1958 +f 1958 1970 1971 +f 1971 1972 1960 +f 1972 1973 1961 +f 1961 1973 1974 +f 1974 1975 1963 +f 1975 1976 1964 +f 1976 1965 1953 +f 1401 1402 1966 +f 1402 1403 1967 +f 1403 1404 1968 +f 1404 1405 1969 +f 1405 1406 1970 +f 1406 1407 1971 +f 1971 1407 1408 +f 1408 1409 1973 +f 1409 1410 1974 +f 1410 1411 1975 +f 1975 1411 1412 +f 1976 1412 1401 +o Torus.001 +v -3.939566 0.202877 0.374938 +v -4.001935 0.196409 0.261734 +v -4.053694 0.255285 0.158771 +v -4.080974 0.363730 0.093636 +v -4.076463 0.492685 0.083783 +v -4.041372 0.607597 0.131852 +v -3.985104 0.677676 0.224963 +v -3.922734 0.684144 0.338166 +v -3.870975 0.625268 0.441129 +v -3.843696 0.516824 0.506264 +v -3.848206 0.387869 0.516117 +v -3.883297 0.272956 0.468048 +v -4.083385 0.223994 0.449805 +v -4.141901 0.216960 0.334595 +v -4.183131 0.274290 0.226151 +v -4.196029 0.380623 0.153530 +v -4.177136 0.507466 0.136190 +v -4.131517 0.620833 0.178778 +v -4.071395 0.690346 0.269883 +v -4.012878 0.697380 0.385092 +v -3.971648 0.640050 0.493536 +v -3.958751 0.533717 0.566157 +v -3.977643 0.406873 0.583497 +v -4.023262 0.293507 0.540909 +v -4.226690 0.265059 0.516975 +v -4.281367 0.256924 0.399966 +v -4.312107 0.311248 0.286605 +v -4.310673 0.413475 0.207266 +v -4.277451 0.536211 0.183210 +v -4.221341 0.646572 0.220881 +v -4.157378 0.714985 0.310185 +v -4.102702 0.723119 0.427194 +v -4.071962 0.668795 0.540556 +v -4.073396 0.566569 0.619894 +v -4.106618 0.443832 0.643951 +v -4.162728 0.333471 0.606280 +v -4.367032 0.325369 0.575300 +v -4.417947 0.315619 0.456728 +v -4.438414 0.365528 0.339097 +v -4.422946 0.461723 0.253927 +v -4.375690 0.578429 0.224037 +v -4.309306 0.684374 0.257439 +v -4.241583 0.751171 0.345180 +v -4.190667 0.760921 0.463752 +v -4.170201 0.711012 0.581383 +v -4.185668 0.614817 0.666554 +v -4.232925 0.498111 0.696443 +v -4.299309 0.392166 0.663042 +v -4.502007 0.403894 0.623782 +v -4.549306 0.392040 0.503911 +v -4.559891 0.436200 0.382731 +v -4.530926 0.524543 0.292712 +v -4.470172 0.633396 0.257974 +v -4.393908 0.733593 0.287827 +v -4.322568 0.798286 0.374269 +v -4.275269 0.810140 0.494140 +v -4.264683 0.765980 0.615320 +v -4.293649 0.677637 0.705339 +v -4.354403 0.568784 0.740077 +v -4.430667 0.468587 0.710225 +v -4.629306 0.499289 0.661591 +v -4.673194 0.484879 0.540706 +v -4.674460 0.522056 0.416758 +v -4.632765 0.600859 0.322959 +v -4.559281 0.700173 0.284440 +v -4.473698 0.793386 0.311525 +v -4.398947 0.855523 0.396954 +v -4.355059 0.869933 0.517838 +v -4.353793 0.832756 0.641786 +v -4.395488 0.753953 0.735586 +v -4.468972 0.654639 0.774104 +v -4.554555 0.561426 0.747020 +v -4.746751 0.609922 0.688079 +v -4.787493 0.592548 0.566485 +v -4.780161 0.621626 0.440598 +v -4.726722 0.689366 0.344149 +v -4.641493 0.777616 0.302982 +v -4.547312 0.862731 0.328128 +v -4.469415 0.921903 0.412847 +v -4.428673 0.939278 0.534441 +v -4.436005 0.910200 0.660328 +v -4.489444 0.842460 0.756777 +v -4.574673 0.754209 0.797944 +v -4.668854 0.669095 0.772799 +v -4.852333 0.733900 0.702794 +v -4.890245 0.713204 0.580806 +v -4.875185 0.733206 0.453842 +v -4.811188 0.788548 0.355922 +v -4.715401 0.864401 0.313283 +v -4.613491 0.940440 0.337351 +v -4.532764 0.996290 0.421677 +v -4.494852 1.016987 0.543665 +v -4.509912 0.996984 0.670629 +v -4.573910 0.941642 0.768549 +v -4.669697 0.865789 0.811188 +v -4.771607 0.789751 0.787120 +v -4.944246 0.869103 0.705485 +v -4.979695 0.844783 0.583424 +v -4.957907 0.854888 0.456263 +v -4.884718 0.896710 0.358074 +v -4.779739 0.959043 0.315166 +v -4.671101 1.025184 0.339037 +v -4.587912 1.077411 0.423291 +v -4.552462 1.101731 0.545351 +v -4.574251 1.091626 0.672512 +v -4.647440 1.049804 0.770702 +v -4.752418 0.987472 0.813609 +v -4.861057 0.921331 0.789738 +v -5.020916 1.013216 0.696104 +v -5.054311 0.985034 0.574295 +v -5.026909 0.984590 0.447821 +v -4.946054 1.012000 0.350569 +v -4.833408 1.059921 0.308600 +v -4.719157 1.115513 0.333158 +v -4.633914 1.163879 0.417662 +v -4.600518 1.192060 0.539471 +v -4.627920 1.192505 0.665946 +v -4.708776 1.165094 0.763197 +v -4.821421 1.117173 0.805167 +v -4.935672 1.061582 0.780609 +v -5.081032 1.163773 0.674813 +v -5.112816 1.131558 0.553574 +v -5.081014 1.120092 0.428658 +v -4.994146 1.132446 0.333536 +v -4.875489 1.165312 0.293696 +v -4.756837 1.209882 0.319812 +v -4.669983 1.254214 0.404888 +v -4.638199 1.286429 0.526126 +v -4.670001 1.297895 0.651042 +v -4.756868 1.285541 0.746164 +v -4.875525 1.252675 0.786004 +v -4.994177 1.208105 0.759888 +v -5.123565 1.318200 0.641975 +v -5.154209 1.281847 0.521617 +v -5.119293 1.259076 0.399105 +v -5.028172 1.255988 0.307266 +v -4.905262 1.273410 0.270710 +v -4.783497 1.306676 0.299230 +v -4.695503 1.346870 0.385185 +v -4.664858 1.383223 0.505544 +v -4.699774 1.405994 0.628056 +v -4.790895 1.409082 0.719894 +v -4.913805 1.391659 0.756451 +v -5.035571 1.358394 0.727930 +v -5.147787 1.473852 0.598153 +v -5.177783 1.433328 0.478969 +v -5.141093 1.399163 0.359665 +v -5.047550 1.380509 0.272209 +v -4.922218 1.382367 0.240034 +v -4.798679 1.404238 0.271763 +v -4.710036 1.440261 0.358892 +v -4.680040 1.480785 0.478076 +v -4.716730 1.514951 0.597380 +v -4.810273 1.533604 0.684836 +v -4.935605 1.531746 0.717011 +v -5.059144 1.509876 0.685283 +v -5.153284 1.628068 0.544097 +v -5.183132 1.583412 0.426361 +v -5.146041 1.537957 0.311014 +v -5.051948 1.503882 0.228964 +v -4.926066 1.490318 0.202195 +v -4.802125 1.500899 0.237880 +v -4.713334 1.532791 0.326458 +v -4.683486 1.577446 0.444194 +v -4.720578 1.622902 0.559541 +v -4.814671 1.656976 0.641591 +v -4.940552 1.670540 0.668360 +v -5.064493 1.659959 0.632675 +v -5.139962 1.778208 0.480731 +v -5.170167 1.729529 0.364693 +v -5.134051 1.673083 0.253985 +v -5.041290 1.623994 0.178271 +v -4.916740 1.595416 0.157838 +v -4.793775 1.595006 0.198163 +v -4.705341 1.622874 0.288438 +v -4.675136 1.671553 0.404476 +v -4.711252 1.728000 0.515185 +v -4.804013 1.777088 0.590898 +v -4.928563 1.805666 0.611331 +v -5.051528 1.806076 0.571007 +v -5.108048 1.921704 0.409139 +v -5.139109 1.869180 0.295019 +v -5.105329 1.802229 0.189552 +v -5.015759 1.738791 0.120997 +v -4.894401 1.695863 0.107724 +v -4.773771 1.684949 0.153289 +v -4.686193 1.708972 0.245483 +v -4.655133 1.761496 0.359603 +v -4.688913 1.828447 0.465070 +v -4.778482 1.891885 0.533625 +v -4.899840 1.934813 0.546898 +v -5.020470 1.945727 0.501333 +v -5.058090 2.056099 0.330547 +v -5.090489 1.999974 0.218533 +v -5.060367 1.923185 0.118819 +v -4.975793 1.846307 0.058124 +v -4.859430 1.789940 0.052710 +v -4.742458 1.769187 0.104028 +v -4.656218 1.789609 0.198328 +v -4.623819 1.845734 0.310342 +v -4.653942 1.922524 0.410056 +v -4.738515 1.999402 0.470752 +v -4.854878 2.055769 0.476165 +v -4.971850 2.076522 0.424847 +v -4.990942 2.179096 0.246299 +v -5.025140 2.119676 0.136543 +v -4.999932 2.033882 0.042996 +v -4.922074 1.944705 -0.009274 +v -4.812426 1.876038 -0.006263 +v -4.700369 1.846281 0.051222 +v -4.615929 1.863407 0.147780 +v -4.581731 1.922828 0.257536 +v -4.606938 2.008621 0.351083 +v -4.684796 2.097799 0.403353 +v -4.794444 2.166466 0.400342 +v -4.906501 2.196223 0.342857 +v -4.907751 2.288589 0.157837 +v -4.944179 2.226235 0.050451 +v -4.925061 2.132426 -0.036620 +v -4.855522 2.032299 -0.080044 +v -4.754193 1.952683 -0.068187 +v -4.648226 1.914911 -0.004225 +v -4.566015 1.929103 0.094702 +v -4.529587 1.991458 0.202088 +v -4.548705 2.085266 0.289159 +v -4.618244 2.185393 0.332583 +v -4.719573 2.265009 0.320726 +v -4.825540 2.302782 0.256765 +v -4.809943 2.382705 0.066675 +v -4.848991 2.317828 -0.038269 +v -4.837034 2.217130 -0.118666 +v -4.777275 2.107592 -0.152974 +v -4.685728 2.018564 -0.132001 +v -4.586921 1.973902 -0.061366 +v -4.507330 1.985572 0.040005 +v -4.468282 2.050449 0.144948 +v -4.480239 2.151147 0.225345 +v -4.539998 2.260686 0.259654 +v -4.631546 2.349713 0.238680 +v -4.730352 2.394375 0.168045 +v -4.699191 2.459833 -0.025629 +v -4.741206 2.392889 -0.128099 +v -4.737357 2.286545 -0.201739 +v -4.688673 2.169294 -0.226817 +v -4.608201 2.072553 -0.196613 +v -4.517501 2.022245 -0.119221 +v -4.440878 2.031849 -0.015377 +v -4.398863 2.098792 0.087093 +v -4.402712 2.205137 0.160733 +v -4.451396 2.322388 0.185811 +v -4.531868 2.419128 0.155607 +v -4.622568 2.469437 0.078215 +v -4.577388 2.518653 -0.117494 +v -4.622668 2.450134 -0.217502 +v -4.627735 2.339484 -0.284417 +v -4.591231 2.216350 -0.300309 +v -4.522939 2.113728 -0.260919 +v -4.441156 2.059114 -0.176801 +v -4.367797 2.067142 -0.070496 +v -4.322517 2.135661 0.029512 +v -4.317451 2.246311 0.096427 +v -4.353954 2.369445 0.112319 +v -4.422246 2.472067 0.072929 +v -4.504029 2.526681 -0.011189 +v -4.446620 2.558160 -0.207349 +v -4.495404 2.488583 -0.304950 +v -4.510044 2.375040 -0.365287 +v -4.486617 2.247956 -0.372193 +v -4.431402 2.141383 -0.323817 +v -4.359192 2.083876 -0.233122 +v -4.289336 2.090846 -0.124409 +v -4.240553 2.160424 -0.026808 +v -4.225913 2.273966 0.033529 +v -4.249340 2.401050 0.040435 +v -4.304555 2.507623 -0.007941 +v -4.376765 2.565130 -0.098636 +v -4.309125 2.577677 -0.293655 +v -4.361593 2.507577 -0.388944 +v -4.386298 2.392605 -0.442963 +v -4.376621 2.263570 -0.441238 +v -4.335155 2.155045 -0.384232 +v -4.273010 2.096110 -0.287218 +v -4.206839 2.102556 -0.176193 +v -4.154372 2.172657 -0.080905 +v -4.129666 2.287628 -0.026886 +v -4.139343 2.416664 -0.028610 +v -4.180809 2.525189 -0.085617 +v -4.242954 2.584124 -0.182630 +v -4.167254 2.576871 -0.374938 +v -4.223523 2.506792 -0.468048 +v -4.258614 2.391880 -0.516117 +v -4.263124 2.262925 -0.506264 +v -4.235845 2.154480 -0.441129 +v -4.184086 2.095604 -0.338166 +v -4.121716 2.102072 -0.224963 +v -4.065448 2.172151 -0.131852 +v -4.030357 2.287064 -0.083783 +v -4.025846 2.416019 -0.093636 +v -4.053126 2.524463 -0.158771 +v -4.104885 2.583339 -0.261734 +v -4.023435 2.555755 -0.449805 +v -4.083558 2.486241 -0.540909 +v -4.129177 2.372875 -0.583497 +v -4.148069 2.246032 -0.566158 +v -4.135172 2.139699 -0.493536 +v -4.093941 2.082369 -0.385092 +v -4.035425 2.089403 -0.269883 +v -3.975303 2.158916 -0.178778 +v -3.929683 2.272282 -0.136190 +v -3.910791 2.399126 -0.153530 +v -3.923689 2.505458 -0.226151 +v -3.964919 2.562788 -0.334595 +v -3.880130 2.514690 -0.516975 +v -3.944092 2.446277 -0.606280 +v -4.000202 2.335917 -0.643951 +v -4.033424 2.213180 -0.619894 +v -4.034858 2.110954 -0.540556 +v -4.004118 2.056629 -0.427194 +v -3.949442 2.064764 -0.310185 +v -3.885479 2.133177 -0.220881 +v -3.829370 2.243537 -0.183210 +v -3.796147 2.366274 -0.207266 +v -3.794713 2.468500 -0.286605 +v -3.825453 2.522824 -0.399966 +v -3.739789 2.454380 -0.575300 +v -3.807512 2.387583 -0.663042 +v -3.873895 2.281637 -0.696443 +v -3.921152 2.164931 -0.666554 +v -3.936620 2.068736 -0.581383 +v -3.916153 2.018827 -0.463752 +v -3.865237 2.028577 -0.345180 +v -3.797514 2.095374 -0.257438 +v -3.731131 2.201320 -0.224037 +v -3.683874 2.318026 -0.253926 +v -3.668407 2.414221 -0.339097 +v -3.688873 2.464130 -0.456728 +v -3.604814 2.375855 -0.623782 +v -3.676153 2.311162 -0.710225 +v -3.752418 2.210965 -0.740077 +v -3.813172 2.102112 -0.705339 +v -3.842137 2.013769 -0.615320 +v -3.831552 1.969608 -0.494140 +v -3.784252 1.981462 -0.374269 +v -3.712913 2.046155 -0.287826 +v -3.636648 2.146352 -0.257974 +v -3.575894 2.255206 -0.292712 +v -3.546929 2.343548 -0.382731 +v -3.557515 2.387709 -0.503911 +v -3.477514 2.280459 -0.661591 +v -3.552265 2.218323 -0.747020 +v -3.637848 2.125109 -0.774104 +v -3.711332 2.025795 -0.735586 +v -3.753027 1.946992 -0.641786 +v -3.751761 1.909815 -0.517839 +v -3.707873 1.924225 -0.396954 +v -3.633122 1.986362 -0.311525 +v -3.547539 2.079576 -0.284440 +v -3.474055 2.178890 -0.322959 +v -3.432360 2.257693 -0.416759 +v -3.433626 2.294870 -0.540706 +v -3.360069 2.169827 -0.688079 +v -3.437966 2.110654 -0.772799 +v -3.532147 2.025540 -0.797944 +v -3.617376 1.937289 -0.756777 +v -3.670815 1.869549 -0.660328 +v -3.678147 1.840471 -0.534441 +v -3.637405 1.857846 -0.412847 +v -3.559508 1.917018 -0.328128 +v -3.465327 2.002132 -0.302982 +v -3.380098 2.090383 -0.344149 +v -3.326659 2.158123 -0.440598 +v -3.319328 2.187201 -0.566485 +v -3.254487 2.045848 -0.702794 +v -3.335213 1.989998 -0.787120 +v -3.437124 1.913959 -0.811188 +v -3.532910 1.838106 -0.768549 +v -3.596908 1.782764 -0.670629 +v -3.611969 1.762762 -0.543665 +v -3.574056 1.783459 -0.421677 +v -3.493330 1.839309 -0.337351 +v -3.391420 1.915348 -0.313283 +v -3.295633 1.991201 -0.355922 +v -3.231635 2.046543 -0.453842 +v -3.216575 2.066545 -0.580806 +v -3.162574 1.910645 -0.705485 +v -3.245763 1.858418 -0.789738 +v -3.354402 1.792277 -0.813609 +v -3.459380 1.729944 -0.770702 +v -3.532569 1.688122 -0.672512 +v -3.554358 1.678017 -0.545351 +v -3.518909 1.702337 -0.423291 +v -3.435719 1.754564 -0.339037 +v -3.327080 1.820706 -0.315166 +v -3.222102 1.883038 -0.358074 +v -3.148913 1.924860 -0.456263 +v -3.127124 1.934965 -0.583424 +v -3.085904 1.766533 -0.696104 +v -3.171148 1.718167 -0.780609 +v -3.285399 1.662575 -0.805166 +v -3.398044 1.614654 -0.763197 +v -3.478900 1.587243 -0.665946 +v -3.506302 1.587688 -0.539471 +v -3.472907 1.615869 -0.417662 +v -3.387663 1.664235 -0.333157 +v -3.273412 1.719827 -0.308600 +v -3.160767 1.767748 -0.350569 +v -3.079911 1.795159 -0.447821 +v -3.052509 1.794714 -0.574295 +v -3.025788 1.615975 -0.674813 +v -3.112643 1.571644 -0.759888 +v -3.231295 1.527074 -0.786004 +v -3.349952 1.494208 -0.746164 +v -3.436819 1.481853 -0.651042 +v -3.468621 1.493320 -0.526126 +v -3.436837 1.525535 -0.404888 +v -3.349983 1.569867 -0.319812 +v -3.231331 1.614437 -0.293696 +v -3.112674 1.647302 -0.333536 +v -3.025806 1.659657 -0.428658 +v -2.994004 1.648191 -0.553574 +v -2.983256 1.461550 -0.641975 +v -3.071250 1.421355 -0.727931 +v -3.193015 1.388090 -0.756451 +v -3.315925 1.370667 -0.719894 +v -3.407046 1.373755 -0.628056 +v -3.441962 1.396526 -0.505544 +v -3.411317 1.432879 -0.385185 +v -3.323323 1.473073 -0.299230 +v -3.201558 1.506339 -0.270710 +v -3.078648 1.523762 -0.307266 +v -2.987527 1.520674 -0.399105 +v -2.952611 1.497903 -0.521617 +v -2.959033 1.305896 -0.598153 +v -3.047677 1.269873 -0.685283 +v -3.171215 1.248002 -0.717011 +v -3.296547 1.246145 -0.684836 +v -3.390090 1.264798 -0.597380 +v -3.426780 1.298964 -0.478076 +v -3.396784 1.339487 -0.358892 +v -3.308141 1.375511 -0.271762 +v -3.184602 1.397381 -0.240034 +v -3.059270 1.399239 -0.272209 +v -2.965727 1.380586 -0.359665 +v -2.929038 1.346420 -0.478969 +v -2.953536 1.151681 -0.544097 +v -3.042326 1.119789 -0.632675 +v -3.166268 1.109208 -0.668360 +v -3.292150 1.122772 -0.641591 +v -3.386243 1.156847 -0.559541 +v -3.423334 1.202302 -0.444194 +v -3.393486 1.246958 -0.326458 +v -3.304695 1.278849 -0.237880 +v -3.180754 1.289430 -0.202195 +v -3.054872 1.275867 -0.228964 +v -2.960779 1.241792 -0.311014 +v -2.923688 1.196337 -0.426361 +v -2.966858 1.001541 -0.480731 +v -3.055292 0.973673 -0.571007 +v -3.178257 0.974082 -0.611331 +v -3.302807 1.002660 -0.590899 +v -3.395568 1.051749 -0.515185 +v -3.431684 1.108195 -0.404477 +v -3.401479 1.156874 -0.288439 +v -3.313046 1.184742 -0.198163 +v -3.190080 1.184333 -0.157839 +v -3.065530 1.155755 -0.178271 +v -2.972769 1.106666 -0.253985 +v -2.936653 1.050220 -0.364693 +v -2.998772 0.858044 -0.409139 +v -3.086350 0.834021 -0.501333 +v -3.206980 0.844936 -0.546898 +v -3.328338 0.887863 -0.533625 +v -3.417907 0.951302 -0.465070 +v -3.451687 1.018252 -0.359603 +v -3.420627 1.070776 -0.245483 +v -3.333049 1.094800 -0.153289 +v -3.212419 1.083885 -0.107724 +v -3.091060 1.040957 -0.120997 +v -3.001491 0.977519 -0.189552 +v -2.967711 0.910568 -0.295019 +v -3.048730 0.723649 -0.330547 +v -3.134970 0.703227 -0.424847 +v -3.251942 0.723980 -0.476165 +v -3.368305 0.780347 -0.470752 +v -3.452878 0.857225 -0.410056 +v -3.483001 0.934014 -0.310342 +v -3.450602 0.990139 -0.198328 +v -3.364362 1.010561 -0.104028 +v -3.247390 0.989808 -0.052710 +v -3.131027 0.933441 -0.058124 +v -3.046454 0.856563 -0.118819 +v -3.016331 0.779774 -0.218533 +v -3.115879 0.600652 -0.246299 +v -3.200319 0.583526 -0.342857 +v -3.312376 0.613283 -0.400343 +v -3.422024 0.681950 -0.403353 +v -3.499882 0.771127 -0.351083 +v -3.525090 0.856920 -0.257536 +v -3.490891 0.916341 -0.147780 +v -3.406451 0.933468 -0.051222 +v -3.294394 0.903711 0.006263 +v -3.184746 0.835044 0.009274 +v -3.106887 0.745866 -0.042997 +v -3.081680 0.660073 -0.136543 +v -3.199069 0.491160 -0.157838 +v -3.281280 0.476967 -0.256765 +v -3.387247 0.514739 -0.320727 +v -3.488575 0.594356 -0.332584 +v -3.558115 0.694482 -0.289159 +v -3.577233 0.788291 -0.202089 +v -3.540805 0.850646 -0.094703 +v -3.458594 0.864838 0.004225 +v -3.352627 0.827066 0.068187 +v -3.251298 0.747450 0.080044 +v -3.181758 0.647323 0.036619 +v -3.162641 0.553514 -0.050452 +v -3.296877 0.397044 -0.066675 +v -3.376468 0.385373 -0.168045 +v -3.475275 0.430035 -0.238680 +v -3.566823 0.519063 -0.259653 +v -3.626581 0.628601 -0.225345 +v -3.638538 0.729300 -0.144948 +v -3.599490 0.794176 -0.040005 +v -3.519900 0.805847 0.061366 +v -3.421093 0.761185 0.132001 +v -3.329545 0.672157 0.152974 +v -3.269786 0.562618 0.118666 +v -3.257829 0.461920 0.038269 +v -3.407629 0.319916 0.025629 +v -3.484253 0.310312 -0.078215 +v -3.574952 0.360620 -0.155607 +v -3.655424 0.457361 -0.185811 +v -3.704108 0.574612 -0.160733 +v -3.707958 0.680956 -0.087093 +v -3.665942 0.747899 0.015377 +v -3.589319 0.757503 0.119221 +v -3.498620 0.707195 0.196613 +v -3.418147 0.610455 0.226817 +v -3.369463 0.493203 0.201739 +v -3.365614 0.386859 0.128099 +v -3.529431 0.261095 0.117494 +v -3.602791 0.253067 0.011188 +v -3.684574 0.307682 -0.072929 +v -3.752866 0.410304 -0.112319 +v -3.789369 0.533437 -0.096428 +v -3.784302 0.644088 -0.029513 +v -3.739023 0.712607 0.070496 +v -3.665663 0.720635 0.176801 +v -3.583881 0.666021 0.260918 +v -3.515588 0.563398 0.300309 +v -3.479085 0.440265 0.284417 +v -3.484152 0.329615 0.217502 +v -3.660200 0.221588 0.207349 +v -3.730055 0.214619 0.098636 +v -3.802265 0.272125 0.007941 +v -3.857481 0.378698 -0.040435 +v -3.880907 0.505782 -0.033529 +v -3.866267 0.619325 0.026808 +v -3.817484 0.688903 0.124409 +v -3.747628 0.695872 0.233122 +v -3.675419 0.638366 0.323817 +v -3.620203 0.531793 0.372193 +v -3.596776 0.404709 0.365287 +v -3.611416 0.291166 0.304950 +v -3.797695 0.202071 0.293655 +v -3.863866 0.195625 0.182630 +v -3.926011 0.254560 0.085617 +v -3.967477 0.363085 0.028610 +v -3.977154 0.492120 0.026886 +v -3.952449 0.607092 0.080905 +v -3.899981 0.677192 0.176193 +v -3.833810 0.683639 0.287219 +v -3.771665 0.624704 0.384232 +v -3.730199 0.516179 0.441238 +v -3.720522 0.387143 0.442963 +v -3.745227 0.272172 0.388944 +s 0 +usemtl white +f 1989 1978 1977 +f 1978 1991 1979 +f 1991 1980 1979 +f 1992 1981 1980 +f 1993 1982 1981 +f 1982 1995 1983 +f 1995 1984 1983 +f 1996 1985 1984 +f 1997 1986 1985 +f 1998 1987 1986 +f 1999 1988 1987 +f 2000 1977 1988 +f 2001 1990 1989 +f 2002 1991 1990 +f 2003 1992 1991 +f 2004 1993 1992 +f 1993 2006 1994 +f 2006 1995 1994 +f 2007 1996 1995 +f 2008 1997 1996 +f 1997 2010 1998 +f 1998 2011 1999 +f 1999 2012 2000 +f 2012 1989 2000 +f 2001 2014 2002 +f 2014 2003 2002 +f 2015 2004 2003 +f 2004 2017 2005 +f 2005 2018 2006 +f 2006 2019 2007 +f 2019 2008 2007 +f 2020 2009 2008 +f 2009 2022 2010 +f 2010 2023 2011 +f 2011 2024 2012 +f 2024 2001 2012 +f 2013 2026 2014 +f 2014 2027 2015 +f 2015 2028 2016 +f 2028 2017 2016 +f 2017 2030 2018 +f 2030 2019 2018 +f 2031 2020 2019 +f 2032 2021 2020 +f 2021 2034 2022 +f 2034 2023 2022 +f 2035 2024 2023 +f 2036 2013 2024 +f 2037 2026 2025 +f 2026 2039 2027 +f 2039 2028 2027 +f 2040 2029 2028 +f 2029 2042 2030 +f 2042 2031 2030 +f 2043 2032 2031 +f 2044 2033 2032 +f 2045 2034 2033 +f 2046 2035 2034 +f 2047 2036 2035 +f 2036 2037 2025 +f 2049 2038 2037 +f 2050 2039 2038 +f 2051 2040 2039 +f 2052 2041 2040 +f 2053 2042 2041 +f 2054 2043 2042 +f 2043 2056 2044 +f 2056 2045 2044 +f 2057 2046 2045 +f 2058 2047 2046 +f 2047 2060 2048 +f 2060 2037 2048 +f 2061 2050 2049 +f 2050 2063 2051 +f 2063 2052 2051 +f 2064 2053 2052 +f 2053 2066 2054 +f 2066 2055 2054 +f 2067 2056 2055 +f 2068 2057 2056 +f 2057 2070 2058 +f 2058 2071 2059 +f 2071 2060 2059 +f 2072 2049 2060 +f 2073 2062 2061 +f 2062 2075 2063 +f 2063 2076 2064 +f 2076 2065 2064 +f 2065 2078 2066 +f 2078 2067 2066 +f 2079 2068 2067 +f 2080 2069 2068 +f 2081 2070 2069 +f 2082 2071 2070 +f 2083 2072 2071 +f 2084 2061 2072 +f 2073 2086 2074 +f 2086 2075 2074 +f 2087 2076 2075 +f 2088 2077 2076 +f 2089 2078 2077 +f 2090 2079 2078 +f 2091 2080 2079 +f 2092 2081 2080 +f 2081 2094 2082 +f 2082 2095 2083 +f 2095 2084 2083 +f 2096 2073 2084 +f 2097 2086 2085 +f 2098 2087 2086 +f 2099 2088 2087 +f 2100 2089 2088 +f 2089 2102 2090 +f 2102 2091 2090 +f 2103 2092 2091 +f 2104 2093 2092 +f 2105 2094 2093 +f 2106 2095 2094 +f 2107 2096 2095 +f 2108 2085 2096 +f 2109 2098 2097 +f 2110 2099 2098 +f 2099 2112 2100 +f 2112 2101 2100 +f 2113 2102 2101 +f 2114 2103 2102 +f 2103 2116 2104 +f 2116 2105 2104 +f 2105 2118 2106 +f 2118 2107 2106 +f 2119 2108 2107 +f 2120 2097 2108 +f 2121 2110 2109 +f 2122 2111 2110 +f 2123 2112 2111 +f 2112 2125 2113 +f 2113 2126 2114 +f 2126 2115 2114 +f 2127 2116 2115 +f 2128 2117 2116 +f 2129 2118 2117 +f 2130 2119 2118 +f 2131 2120 2119 +f 2120 2121 2109 +f 2133 2122 2121 +f 2134 2123 2122 +f 2135 2124 2123 +f 2136 2125 2124 +f 2137 2126 2125 +f 2138 2127 2126 +f 2127 2140 2128 +f 2140 2129 2128 +f 2129 2142 2130 +f 2130 2143 2131 +f 2131 2144 2132 +f 2132 2133 2121 +f 2145 2134 2133 +f 2134 2147 2135 +f 2135 2148 2136 +f 2148 2137 2136 +f 2149 2138 2137 +f 2150 2139 2138 +f 2151 2140 2139 +f 2152 2141 2140 +f 2153 2142 2141 +f 2154 2143 2142 +f 2155 2144 2143 +f 2156 2133 2144 +f 2157 2146 2145 +f 2158 2147 2146 +f 2159 2148 2147 +f 2148 2161 2149 +f 2161 2150 2149 +f 2162 2151 2150 +f 2163 2152 2151 +f 2164 2153 2152 +f 2153 2166 2154 +f 2166 2155 2154 +f 2155 2168 2156 +f 2168 2145 2156 +f 2169 2158 2157 +f 2158 2171 2159 +f 2171 2160 2159 +f 2172 2161 2160 +f 2173 2162 2161 +f 2174 2163 2162 +f 2175 2164 2163 +f 2176 2165 2164 +f 2177 2166 2165 +f 2178 2167 2166 +f 2179 2168 2167 +f 2180 2157 2168 +f 2181 2170 2169 +f 2182 2171 2170 +f 2183 2172 2171 +f 2184 2173 2172 +f 2185 2174 2173 +f 2174 2187 2175 +f 2187 2176 2175 +f 2176 2189 2177 +f 2177 2190 2178 +f 2178 2191 2179 +f 2179 2192 2180 +f 2192 2169 2180 +f 2193 2182 2181 +f 2194 2183 2182 +f 2183 2196 2184 +f 2196 2185 2184 +f 2197 2186 2185 +f 2198 2187 2186 +f 2199 2188 2187 +f 2188 2201 2189 +f 2201 2190 2189 +f 2202 2191 2190 +f 2203 2192 2191 +f 2204 2181 2192 +f 2205 2194 2193 +f 2206 2195 2194 +f 2207 2196 2195 +f 2196 2209 2197 +f 2209 2198 2197 +f 2210 2199 2198 +f 2211 2200 2199 +f 2200 2213 2201 +f 2213 2202 2201 +f 2214 2203 2202 +f 2203 2216 2204 +f 2216 2193 2204 +f 2205 2218 2206 +f 2218 2207 2206 +f 2207 2220 2208 +f 2220 2209 2208 +f 2221 2210 2209 +f 2222 2211 2210 +f 2223 2212 2211 +f 2224 2213 2212 +f 2213 2226 2214 +f 2226 2215 2214 +f 2227 2216 2215 +f 2228 2205 2216 +f 2229 2218 2217 +f 2230 2219 2218 +f 2231 2220 2219 +f 2220 2233 2221 +f 2233 2222 2221 +f 2234 2223 2222 +f 2223 2236 2224 +f 2236 2225 2224 +f 2237 2226 2225 +f 2238 2227 2226 +f 2227 2240 2228 +f 2240 2217 2228 +f 2229 2242 2230 +f 2242 2231 2230 +f 2243 2232 2231 +f 2232 2245 2233 +f 2245 2234 2233 +f 2246 2235 2234 +f 2247 2236 2235 +f 2248 2237 2236 +f 2249 2238 2237 +f 2238 2251 2239 +f 2251 2240 2239 +f 2252 2229 2240 +f 2253 2242 2241 +f 2254 2243 2242 +f 2255 2244 2243 +f 2256 2245 2244 +f 2257 2246 2245 +f 2258 2247 2246 +f 2259 2248 2247 +f 2248 2261 2249 +f 2249 2262 2250 +f 2250 2263 2251 +f 2251 2264 2252 +f 2252 2253 2241 +f 2253 2266 2254 +f 2266 2255 2254 +f 2267 2256 2255 +f 2268 2257 2256 +f 2269 2258 2257 +f 2270 2259 2258 +f 2271 2260 2259 +f 2260 2273 2261 +f 2273 2262 2261 +f 2274 2263 2262 +f 2275 2264 2263 +f 2276 2253 2264 +f 2277 2266 2265 +f 2278 2267 2266 +f 2279 2268 2267 +f 2280 2269 2268 +f 2281 2270 2269 +f 2282 2271 2270 +f 2271 2284 2272 +f 2284 2273 2272 +f 2273 2286 2274 +f 2274 2287 2275 +f 2275 2288 2276 +f 2276 2277 2265 +f 2277 2290 2278 +f 2278 2291 2279 +f 2279 2292 2280 +f 2280 2293 2281 +f 2281 2294 2282 +f 2294 2283 2282 +f 2295 2284 2283 +f 2296 2285 2284 +f 2297 2286 2285 +f 2298 2287 2286 +f 2299 2288 2287 +f 2288 2289 2277 +f 2301 2290 2289 +f 2302 2291 2290 +f 2291 2304 2292 +f 2304 2293 2292 +f 2305 2294 2293 +f 2306 2295 2294 +f 2307 2296 2295 +f 2296 2309 2297 +f 2309 2298 2297 +f 2310 2299 2298 +f 2299 2312 2300 +f 2300 2301 2289 +f 2313 2302 2301 +f 2314 2303 2302 +f 2315 2304 2303 +f 2316 2305 2304 +f 2317 2306 2305 +f 2306 2319 2307 +f 2319 2308 2307 +f 2320 2309 2308 +f 2321 2310 2309 +f 2310 2323 2311 +f 2311 2324 2312 +f 2324 2301 2312 +f 2325 2314 2313 +f 2326 2315 2314 +f 2327 2316 2315 +f 2316 2329 2317 +f 2329 2318 2317 +f 2330 2319 2318 +f 2331 2320 2319 +f 2320 2333 2321 +f 2333 2322 2321 +f 2334 2323 2322 +f 2323 2336 2324 +f 2336 2313 2324 +f 2337 2326 2325 +f 2326 2339 2327 +f 2339 2328 2327 +f 2340 2329 2328 +f 2341 2330 2329 +f 2342 2331 2330 +f 2343 2332 2331 +f 2344 2333 2332 +f 2333 2346 2334 +f 2346 2335 2334 +f 2347 2336 2335 +f 2348 2325 2336 +f 2337 2350 2338 +f 2338 2351 2339 +f 2351 2340 2339 +f 2340 2353 2341 +f 2353 2342 2341 +f 2354 2343 2342 +f 2355 2344 2343 +f 2356 2345 2344 +f 2357 2346 2345 +f 2358 2347 2346 +f 2359 2348 2347 +f 2360 2337 2348 +f 2349 2362 2350 +f 2362 2351 2350 +f 2363 2352 2351 +f 2364 2353 2352 +f 2353 2366 2354 +f 2366 2355 2354 +f 2367 2356 2355 +f 2368 2357 2356 +f 2369 2358 2357 +f 2358 2371 2359 +f 2359 2372 2360 +f 2372 2349 2360 +f 2373 2362 2361 +f 2374 2363 2362 +f 2375 2364 2363 +f 2376 2365 2364 +f 2377 2366 2365 +f 2378 2367 2366 +f 2379 2368 2367 +f 2380 2369 2368 +f 2369 2382 2370 +f 2382 2371 2370 +f 2371 2384 2372 +f 2384 2361 2372 +f 2385 2374 2373 +f 2386 2375 2374 +f 2387 2376 2375 +f 2388 2377 2376 +f 2377 2390 2378 +f 2390 2379 2378 +f 2391 2380 2379 +f 2392 2381 2380 +f 2393 2382 2381 +f 2394 2383 2382 +f 2383 2396 2384 +f 2396 2373 2384 +f 2397 2386 2385 +f 2386 2399 2387 +f 2399 2388 2387 +f 2400 2389 2388 +f 2389 2402 2390 +f 2402 2391 2390 +f 2403 2392 2391 +f 2404 2393 2392 +f 2393 2406 2394 +f 2406 2395 2394 +f 2407 2396 2395 +f 2408 2385 2396 +f 2409 2398 2397 +f 2410 2399 2398 +f 2399 2412 2400 +f 2400 2413 2401 +f 2413 2402 2401 +f 2402 2415 2403 +f 2415 2404 2403 +f 2416 2405 2404 +f 2417 2406 2405 +f 2418 2407 2406 +f 2419 2408 2407 +f 2420 2397 2408 +f 2409 2422 2410 +f 2422 2411 2410 +f 2423 2412 2411 +f 2424 2413 2412 +f 2425 2414 2413 +f 2426 2415 2414 +f 2427 2416 2415 +f 2416 2429 2417 +f 2417 2430 2418 +f 2430 2419 2418 +f 2431 2420 2419 +f 2432 2409 2420 +f 2433 2422 2421 +f 2434 2423 2422 +f 2435 2424 2423 +f 2436 2425 2424 +f 2437 2426 2425 +f 2426 2439 2427 +f 2439 2428 2427 +f 2440 2429 2428 +f 2429 2442 2430 +f 2430 2443 2431 +f 2443 2432 2431 +f 2444 2421 2432 +f 2445 2434 2433 +f 2446 2435 2434 +f 2447 2436 2435 +f 2448 2437 2436 +f 2449 2438 2437 +f 2450 2439 2438 +f 2451 2440 2439 +f 2452 2441 2440 +f 2453 2442 2441 +f 2442 2455 2443 +f 2443 2456 2444 +f 2456 2433 2444 +f 2457 2446 2445 +f 2458 2447 2446 +f 2447 2460 2448 +f 2448 2461 2449 +f 2461 2450 2449 +f 2462 2451 2450 +f 2463 2452 2451 +f 2464 2453 2452 +f 2465 2454 2453 +f 2466 2455 2454 +f 2467 2456 2455 +f 2456 2457 2445 +f 2457 2470 2458 +f 2470 2459 2458 +f 2471 2460 2459 +f 2472 2461 2460 +f 2473 2462 2461 +f 2474 2463 2462 +f 2475 2464 2463 +f 2476 2465 2464 +f 2477 2466 2465 +f 2478 2467 2466 +f 2467 2480 2468 +f 2480 2457 2468 +f 2469 2482 2470 +f 2482 2471 2470 +f 2471 2484 2472 +f 2472 2485 2473 +f 2473 2486 2474 +f 2486 2475 2474 +f 2487 2476 2475 +f 2488 2477 2476 +f 2489 2478 2477 +f 2490 2479 2478 +f 2479 2492 2480 +f 2492 2469 2480 +f 2481 2494 2482 +f 2494 2483 2482 +f 2483 2496 2484 +f 2496 2485 2484 +f 2497 2486 2485 +f 2498 2487 2486 +f 2499 2488 2487 +f 2488 2501 2489 +f 2489 2502 2490 +f 2502 2491 2490 +f 2503 2492 2491 +f 2504 2481 2492 +f 2505 2494 2493 +f 2506 2495 2494 +f 2507 2496 2495 +f 2508 2497 2496 +f 2509 2498 2497 +f 2510 2499 2498 +f 2511 2500 2499 +f 2500 2513 2501 +f 2513 2502 2501 +f 2514 2503 2502 +f 2503 2516 2504 +f 2516 2493 2504 +f 2517 2506 2505 +f 2518 2507 2506 +f 2507 2520 2508 +f 2520 2509 2508 +f 2521 2510 2509 +f 2522 2511 2510 +f 2523 2512 2511 +f 2524 2513 2512 +f 2525 2514 2513 +f 2526 2515 2514 +f 2527 2516 2515 +f 2528 2505 2516 +f 2529 2518 2517 +f 2530 2519 2518 +f 2531 2520 2519 +f 2532 2521 2520 +f 2533 2522 2521 +f 2534 2523 2522 +f 2535 2524 2523 +f 2524 2537 2525 +f 2537 2526 2525 +f 2538 2527 2526 +f 2539 2528 2527 +f 2540 2517 2528 +f 2529 2542 2530 +f 2530 2543 2531 +f 2531 2544 2532 +f 2544 2533 2532 +f 2545 2534 2533 +f 2534 2547 2535 +f 2547 2536 2535 +f 2548 2537 2536 +f 2537 2550 2538 +f 2550 2539 2538 +f 2551 2540 2539 +f 2552 2529 2540 +f 1977 2542 2541 +f 1978 2543 2542 +f 1979 2544 2543 +f 1980 2545 2544 +f 1981 2546 2545 +f 1982 2547 2546 +f 2547 1984 2548 +f 1984 2549 2548 +f 1985 2550 2549 +f 1986 2551 2550 +f 2551 1988 2552 +f 2552 1977 2541 +f 1989 1990 1978 +f 1978 1990 1991 +f 1991 1992 1980 +f 1992 1993 1981 +f 1993 1994 1982 +f 1982 1994 1995 +f 1995 1996 1984 +f 1996 1997 1985 +f 1997 1998 1986 +f 1998 1999 1987 +f 1999 2000 1988 +f 2000 1989 1977 +f 2001 2002 1990 +f 2002 2003 1991 +f 2003 2004 1992 +f 2004 2005 1993 +f 1993 2005 2006 +f 2006 2007 1995 +f 2007 2008 1996 +f 2008 2009 1997 +f 1997 2009 2010 +f 1998 2010 2011 +f 1999 2011 2012 +f 2012 2001 1989 +f 2001 2013 2014 +f 2014 2015 2003 +f 2015 2016 2004 +f 2004 2016 2017 +f 2005 2017 2018 +f 2006 2018 2019 +f 2019 2020 2008 +f 2020 2021 2009 +f 2009 2021 2022 +f 2010 2022 2023 +f 2011 2023 2024 +f 2024 2013 2001 +f 2013 2025 2026 +f 2014 2026 2027 +f 2015 2027 2028 +f 2028 2029 2017 +f 2017 2029 2030 +f 2030 2031 2019 +f 2031 2032 2020 +f 2032 2033 2021 +f 2021 2033 2034 +f 2034 2035 2023 +f 2035 2036 2024 +f 2036 2025 2013 +f 2037 2038 2026 +f 2026 2038 2039 +f 2039 2040 2028 +f 2040 2041 2029 +f 2029 2041 2042 +f 2042 2043 2031 +f 2043 2044 2032 +f 2044 2045 2033 +f 2045 2046 2034 +f 2046 2047 2035 +f 2047 2048 2036 +f 2036 2048 2037 +f 2049 2050 2038 +f 2050 2051 2039 +f 2051 2052 2040 +f 2052 2053 2041 +f 2053 2054 2042 +f 2054 2055 2043 +f 2043 2055 2056 +f 2056 2057 2045 +f 2057 2058 2046 +f 2058 2059 2047 +f 2047 2059 2060 +f 2060 2049 2037 +f 2061 2062 2050 +f 2050 2062 2063 +f 2063 2064 2052 +f 2064 2065 2053 +f 2053 2065 2066 +f 2066 2067 2055 +f 2067 2068 2056 +f 2068 2069 2057 +f 2057 2069 2070 +f 2058 2070 2071 +f 2071 2072 2060 +f 2072 2061 2049 +f 2073 2074 2062 +f 2062 2074 2075 +f 2063 2075 2076 +f 2076 2077 2065 +f 2065 2077 2078 +f 2078 2079 2067 +f 2079 2080 2068 +f 2080 2081 2069 +f 2081 2082 2070 +f 2082 2083 2071 +f 2083 2084 2072 +f 2084 2073 2061 +f 2073 2085 2086 +f 2086 2087 2075 +f 2087 2088 2076 +f 2088 2089 2077 +f 2089 2090 2078 +f 2090 2091 2079 +f 2091 2092 2080 +f 2092 2093 2081 +f 2081 2093 2094 +f 2082 2094 2095 +f 2095 2096 2084 +f 2096 2085 2073 +f 2097 2098 2086 +f 2098 2099 2087 +f 2099 2100 2088 +f 2100 2101 2089 +f 2089 2101 2102 +f 2102 2103 2091 +f 2103 2104 2092 +f 2104 2105 2093 +f 2105 2106 2094 +f 2106 2107 2095 +f 2107 2108 2096 +f 2108 2097 2085 +f 2109 2110 2098 +f 2110 2111 2099 +f 2099 2111 2112 +f 2112 2113 2101 +f 2113 2114 2102 +f 2114 2115 2103 +f 2103 2115 2116 +f 2116 2117 2105 +f 2105 2117 2118 +f 2118 2119 2107 +f 2119 2120 2108 +f 2120 2109 2097 +f 2121 2122 2110 +f 2122 2123 2111 +f 2123 2124 2112 +f 2112 2124 2125 +f 2113 2125 2126 +f 2126 2127 2115 +f 2127 2128 2116 +f 2128 2129 2117 +f 2129 2130 2118 +f 2130 2131 2119 +f 2131 2132 2120 +f 2120 2132 2121 +f 2133 2134 2122 +f 2134 2135 2123 +f 2135 2136 2124 +f 2136 2137 2125 +f 2137 2138 2126 +f 2138 2139 2127 +f 2127 2139 2140 +f 2140 2141 2129 +f 2129 2141 2142 +f 2130 2142 2143 +f 2131 2143 2144 +f 2132 2144 2133 +f 2145 2146 2134 +f 2134 2146 2147 +f 2135 2147 2148 +f 2148 2149 2137 +f 2149 2150 2138 +f 2150 2151 2139 +f 2151 2152 2140 +f 2152 2153 2141 +f 2153 2154 2142 +f 2154 2155 2143 +f 2155 2156 2144 +f 2156 2145 2133 +f 2157 2158 2146 +f 2158 2159 2147 +f 2159 2160 2148 +f 2148 2160 2161 +f 2161 2162 2150 +f 2162 2163 2151 +f 2163 2164 2152 +f 2164 2165 2153 +f 2153 2165 2166 +f 2166 2167 2155 +f 2155 2167 2168 +f 2168 2157 2145 +f 2169 2170 2158 +f 2158 2170 2171 +f 2171 2172 2160 +f 2172 2173 2161 +f 2173 2174 2162 +f 2174 2175 2163 +f 2175 2176 2164 +f 2176 2177 2165 +f 2177 2178 2166 +f 2178 2179 2167 +f 2179 2180 2168 +f 2180 2169 2157 +f 2181 2182 2170 +f 2182 2183 2171 +f 2183 2184 2172 +f 2184 2185 2173 +f 2185 2186 2174 +f 2174 2186 2187 +f 2187 2188 2176 +f 2176 2188 2189 +f 2177 2189 2190 +f 2178 2190 2191 +f 2179 2191 2192 +f 2192 2181 2169 +f 2193 2194 2182 +f 2194 2195 2183 +f 2183 2195 2196 +f 2196 2197 2185 +f 2197 2198 2186 +f 2198 2199 2187 +f 2199 2200 2188 +f 2188 2200 2201 +f 2201 2202 2190 +f 2202 2203 2191 +f 2203 2204 2192 +f 2204 2193 2181 +f 2205 2206 2194 +f 2206 2207 2195 +f 2207 2208 2196 +f 2196 2208 2209 +f 2209 2210 2198 +f 2210 2211 2199 +f 2211 2212 2200 +f 2200 2212 2213 +f 2213 2214 2202 +f 2214 2215 2203 +f 2203 2215 2216 +f 2216 2205 2193 +f 2205 2217 2218 +f 2218 2219 2207 +f 2207 2219 2220 +f 2220 2221 2209 +f 2221 2222 2210 +f 2222 2223 2211 +f 2223 2224 2212 +f 2224 2225 2213 +f 2213 2225 2226 +f 2226 2227 2215 +f 2227 2228 2216 +f 2228 2217 2205 +f 2229 2230 2218 +f 2230 2231 2219 +f 2231 2232 2220 +f 2220 2232 2233 +f 2233 2234 2222 +f 2234 2235 2223 +f 2223 2235 2236 +f 2236 2237 2225 +f 2237 2238 2226 +f 2238 2239 2227 +f 2227 2239 2240 +f 2240 2229 2217 +f 2229 2241 2242 +f 2242 2243 2231 +f 2243 2244 2232 +f 2232 2244 2245 +f 2245 2246 2234 +f 2246 2247 2235 +f 2247 2248 2236 +f 2248 2249 2237 +f 2249 2250 2238 +f 2238 2250 2251 +f 2251 2252 2240 +f 2252 2241 2229 +f 2253 2254 2242 +f 2254 2255 2243 +f 2255 2256 2244 +f 2256 2257 2245 +f 2257 2258 2246 +f 2258 2259 2247 +f 2259 2260 2248 +f 2248 2260 2261 +f 2249 2261 2262 +f 2250 2262 2263 +f 2251 2263 2264 +f 2252 2264 2253 +f 2253 2265 2266 +f 2266 2267 2255 +f 2267 2268 2256 +f 2268 2269 2257 +f 2269 2270 2258 +f 2270 2271 2259 +f 2271 2272 2260 +f 2260 2272 2273 +f 2273 2274 2262 +f 2274 2275 2263 +f 2275 2276 2264 +f 2276 2265 2253 +f 2277 2278 2266 +f 2278 2279 2267 +f 2279 2280 2268 +f 2280 2281 2269 +f 2281 2282 2270 +f 2282 2283 2271 +f 2271 2283 2284 +f 2284 2285 2273 +f 2273 2285 2286 +f 2274 2286 2287 +f 2275 2287 2288 +f 2276 2288 2277 +f 2277 2289 2290 +f 2278 2290 2291 +f 2279 2291 2292 +f 2280 2292 2293 +f 2281 2293 2294 +f 2294 2295 2283 +f 2295 2296 2284 +f 2296 2297 2285 +f 2297 2298 2286 +f 2298 2299 2287 +f 2299 2300 2288 +f 2288 2300 2289 +f 2301 2302 2290 +f 2302 2303 2291 +f 2291 2303 2304 +f 2304 2305 2293 +f 2305 2306 2294 +f 2306 2307 2295 +f 2307 2308 2296 +f 2296 2308 2309 +f 2309 2310 2298 +f 2310 2311 2299 +f 2299 2311 2312 +f 2300 2312 2301 +f 2313 2314 2302 +f 2314 2315 2303 +f 2315 2316 2304 +f 2316 2317 2305 +f 2317 2318 2306 +f 2306 2318 2319 +f 2319 2320 2308 +f 2320 2321 2309 +f 2321 2322 2310 +f 2310 2322 2323 +f 2311 2323 2324 +f 2324 2313 2301 +f 2325 2326 2314 +f 2326 2327 2315 +f 2327 2328 2316 +f 2316 2328 2329 +f 2329 2330 2318 +f 2330 2331 2319 +f 2331 2332 2320 +f 2320 2332 2333 +f 2333 2334 2322 +f 2334 2335 2323 +f 2323 2335 2336 +f 2336 2325 2313 +f 2337 2338 2326 +f 2326 2338 2339 +f 2339 2340 2328 +f 2340 2341 2329 +f 2341 2342 2330 +f 2342 2343 2331 +f 2343 2344 2332 +f 2344 2345 2333 +f 2333 2345 2346 +f 2346 2347 2335 +f 2347 2348 2336 +f 2348 2337 2325 +f 2337 2349 2350 +f 2338 2350 2351 +f 2351 2352 2340 +f 2340 2352 2353 +f 2353 2354 2342 +f 2354 2355 2343 +f 2355 2356 2344 +f 2356 2357 2345 +f 2357 2358 2346 +f 2358 2359 2347 +f 2359 2360 2348 +f 2360 2349 2337 +f 2349 2361 2362 +f 2362 2363 2351 +f 2363 2364 2352 +f 2364 2365 2353 +f 2353 2365 2366 +f 2366 2367 2355 +f 2367 2368 2356 +f 2368 2369 2357 +f 2369 2370 2358 +f 2358 2370 2371 +f 2359 2371 2372 +f 2372 2361 2349 +f 2373 2374 2362 +f 2374 2375 2363 +f 2375 2376 2364 +f 2376 2377 2365 +f 2377 2378 2366 +f 2378 2379 2367 +f 2379 2380 2368 +f 2380 2381 2369 +f 2369 2381 2382 +f 2382 2383 2371 +f 2371 2383 2384 +f 2384 2373 2361 +f 2385 2386 2374 +f 2386 2387 2375 +f 2387 2388 2376 +f 2388 2389 2377 +f 2377 2389 2390 +f 2390 2391 2379 +f 2391 2392 2380 +f 2392 2393 2381 +f 2393 2394 2382 +f 2394 2395 2383 +f 2383 2395 2396 +f 2396 2385 2373 +f 2397 2398 2386 +f 2386 2398 2399 +f 2399 2400 2388 +f 2400 2401 2389 +f 2389 2401 2402 +f 2402 2403 2391 +f 2403 2404 2392 +f 2404 2405 2393 +f 2393 2405 2406 +f 2406 2407 2395 +f 2407 2408 2396 +f 2408 2397 2385 +f 2409 2410 2398 +f 2410 2411 2399 +f 2399 2411 2412 +f 2400 2412 2413 +f 2413 2414 2402 +f 2402 2414 2415 +f 2415 2416 2404 +f 2416 2417 2405 +f 2417 2418 2406 +f 2418 2419 2407 +f 2419 2420 2408 +f 2420 2409 2397 +f 2409 2421 2422 +f 2422 2423 2411 +f 2423 2424 2412 +f 2424 2425 2413 +f 2425 2426 2414 +f 2426 2427 2415 +f 2427 2428 2416 +f 2416 2428 2429 +f 2417 2429 2430 +f 2430 2431 2419 +f 2431 2432 2420 +f 2432 2421 2409 +f 2433 2434 2422 +f 2434 2435 2423 +f 2435 2436 2424 +f 2436 2437 2425 +f 2437 2438 2426 +f 2426 2438 2439 +f 2439 2440 2428 +f 2440 2441 2429 +f 2429 2441 2442 +f 2430 2442 2443 +f 2443 2444 2432 +f 2444 2433 2421 +f 2445 2446 2434 +f 2446 2447 2435 +f 2447 2448 2436 +f 2448 2449 2437 +f 2449 2450 2438 +f 2450 2451 2439 +f 2451 2452 2440 +f 2452 2453 2441 +f 2453 2454 2442 +f 2442 2454 2455 +f 2443 2455 2456 +f 2456 2445 2433 +f 2457 2458 2446 +f 2458 2459 2447 +f 2447 2459 2460 +f 2448 2460 2461 +f 2461 2462 2450 +f 2462 2463 2451 +f 2463 2464 2452 +f 2464 2465 2453 +f 2465 2466 2454 +f 2466 2467 2455 +f 2467 2468 2456 +f 2456 2468 2457 +f 2457 2469 2470 +f 2470 2471 2459 +f 2471 2472 2460 +f 2472 2473 2461 +f 2473 2474 2462 +f 2474 2475 2463 +f 2475 2476 2464 +f 2476 2477 2465 +f 2477 2478 2466 +f 2478 2479 2467 +f 2467 2479 2480 +f 2480 2469 2457 +f 2469 2481 2482 +f 2482 2483 2471 +f 2471 2483 2484 +f 2472 2484 2485 +f 2473 2485 2486 +f 2486 2487 2475 +f 2487 2488 2476 +f 2488 2489 2477 +f 2489 2490 2478 +f 2490 2491 2479 +f 2479 2491 2492 +f 2492 2481 2469 +f 2481 2493 2494 +f 2494 2495 2483 +f 2483 2495 2496 +f 2496 2497 2485 +f 2497 2498 2486 +f 2498 2499 2487 +f 2499 2500 2488 +f 2488 2500 2501 +f 2489 2501 2502 +f 2502 2503 2491 +f 2503 2504 2492 +f 2504 2493 2481 +f 2505 2506 2494 +f 2506 2507 2495 +f 2507 2508 2496 +f 2508 2509 2497 +f 2509 2510 2498 +f 2510 2511 2499 +f 2511 2512 2500 +f 2500 2512 2513 +f 2513 2514 2502 +f 2514 2515 2503 +f 2503 2515 2516 +f 2516 2505 2493 +f 2517 2518 2506 +f 2518 2519 2507 +f 2507 2519 2520 +f 2520 2521 2509 +f 2521 2522 2510 +f 2522 2523 2511 +f 2523 2524 2512 +f 2524 2525 2513 +f 2525 2526 2514 +f 2526 2527 2515 +f 2527 2528 2516 +f 2528 2517 2505 +f 2529 2530 2518 +f 2530 2531 2519 +f 2531 2532 2520 +f 2532 2533 2521 +f 2533 2534 2522 +f 2534 2535 2523 +f 2535 2536 2524 +f 2524 2536 2537 +f 2537 2538 2526 +f 2538 2539 2527 +f 2539 2540 2528 +f 2540 2529 2517 +f 2529 2541 2542 +f 2530 2542 2543 +f 2531 2543 2544 +f 2544 2545 2533 +f 2545 2546 2534 +f 2534 2546 2547 +f 2547 2548 2536 +f 2548 2549 2537 +f 2537 2549 2550 +f 2550 2551 2539 +f 2551 2552 2540 +f 2552 2541 2529 +f 1977 1978 2542 +f 1978 1979 2543 +f 1979 1980 2544 +f 1980 1981 2545 +f 1981 1982 2546 +f 1982 1983 2547 +f 2547 1983 1984 +f 1984 1985 2549 +f 1985 1986 2550 +f 1986 1987 2551 +f 2551 1987 1988 +f 2552 1988 1977 diff --git a/src/shader/composite/denoise.glsl b/src/shader/composite/denoise.glsl new file mode 100644 index 0000000..c5d738a --- /dev/null +++ b/src/shader/composite/denoise.glsl @@ -0,0 +1,60 @@ + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Copyright (c) 2018-2019 Michele Morrone +// All rights reserved. +// +// https://michelemorrone.eu - https://BrutPitt.com +// +// me@michelemorrone.eu - brutpitt@gmail.com +// twitter: @BrutPitt - github: BrutPitt +// +// https://github.com/BrutPitt/glslSmartDeNoise/ +// +// This software is distributed under the terms of the BSD 2-Clause license +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#define INV_SQRT_OF_2PI 0.39894228040143267793994605993439 // 1.0/SQRT_OF_2PI +#define INV_PI 0.31830988618379067153776752674503 + +// smartDeNoise - parameters +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// sampler2D tex - sampler image / texture +// vec2 uv - actual fragment coord +// float sigma > 0 - sigma Standard Deviation +// float kSigma >= 0 - sigma coefficient +// kSigma * sigma --> radius of the circular kernel +// float threshold - edge sharpening threshold +vec4 smart_de_noise(in sampler2D tex, vec2 uv, float sigma, float kSigma, float threshold) +{ + float radius = round(kSigma*sigma); + float radQ = radius * radius; + + float invSigmaQx2 = .5 / (sigma * sigma); // 1.0 / (sigma^2 * 2.0) + float invSigmaQx2PI = INV_PI * invSigmaQx2; // 1/(2 * PI * sigma^2) + + float invThresholdSqx2 = .5 / (threshold * threshold); // 1.0 / (sigma^2 * 2.0) + float invThresholdSqrt2PI = INV_SQRT_OF_2PI / threshold; // 1.0 / (sqrt(2*PI) * sigma^2) + + vec4 centrPx = texture(tex,uv); + + float zBuff = 0.0; + vec4 aBuff = vec4(0.0); + vec2 size = vec2(textureSize(tex, 0)); + + vec2 d; + for (d.x=-radius; d.x <= radius; d.x++) { + float pt = sqrt(radQ-d.x*d.x); // pt = yRadius: have circular trend + for (d.y=-pt; d.y <= pt; d.y++) { + float blurFactor = exp( -dot(d , d) * invSigmaQx2 ) * invSigmaQx2PI; + + vec4 walkPx = texture(tex,uv+d/size); + vec4 dC = walkPx-centrPx; + float deltaFactor = exp( -dot(dC, dC) * invThresholdSqx2) * invThresholdSqrt2PI * blurFactor; + + zBuff += deltaFactor; + aBuff += deltaFactor*walkPx; + } + } + return aBuff/zBuff; +} \ No newline at end of file diff --git a/src/shader/composite/final.frag b/src/shader/composite/final.frag index 2910610..1cbb1ff 100644 --- a/src/shader/composite/final.frag +++ b/src/shader/composite/final.frag @@ -1,20 +1,32 @@ #version 450 -layout(location = 0) in vec2 texture_coordinate; +#include "denoise.glsl" + +layout(location = 0) noperspective in vec2 texture_coordinate; layout(set = 0, binding = 0) uniform sampler2D image; layout(location = 0) out vec4 frag_color; +float luminance(in vec3 color) { + return dot(color, vec3(0.2126f, 0.7152f, 0.0722f)); +} + +vec3 reinhard_jodie(in vec3 v) { + float l = luminance(v); + vec3 tv = v / (1.0f + v); + return mix(v / (1.0f + l), tv, tv); +} + void main() { vec2 uv = texture_coordinate; vec3 color = texture(image, uv).rgb; - // TODO: tonemapping - // TODO: denoising - // TODO: bloom + color = smart_de_noise(image, uv, 5.0, 1.0, 0.400).rgb; + + color = reinhard_jodie(color); frag_color = vec4(color, 1.0); } \ No newline at end of file diff --git a/src/shader/composite/final.vert b/src/shader/composite/final.vert index 2325a61..bf791e3 100644 --- a/src/shader/composite/final.vert +++ b/src/shader/composite/final.vert @@ -1,11 +1,16 @@ #version 450 +// vertex position layout(location = 0) in vec2 position; +// vertex texture coordinate layout(location = 1) in vec2 texture; -layout(location = 0) out vec2 texture_coordinate; +// no perspective required for filling the screen with a quad +layout(location = 0) noperspective out vec2 texture_coordinate; void main() { + // pass texture coordinates straight to fragment shader texture_coordinate = texture; + // no perspective transform required gl_Position = vec4(position, 0.0, 1.0); } \ No newline at end of file diff --git a/src/shader/pathtracing/camera.rs b/src/shader/pathtracing/camera.rs index 2ecff83..85ad7b4 100644 --- a/src/shader/pathtracing/camera.rs +++ b/src/shader/pathtracing/camera.rs @@ -17,7 +17,7 @@ impl Camera { front: Vector3::new(0.0, 0.0, -1.0), left: Vector3::new(1.0, 0.0, 0.0), up: Vector3::new(0.0, -1.0, 0.0), - pos: Vector3::new(0.0, 0.0, 9.0), + pos: Vector3::new(0.0, 1.0, 9.0), fov: 90.0f32 } } diff --git a/src/shader/pathtracing/mod.rs b/src/shader/pathtracing/mod.rs index 9ffea86..38c13a8 100644 --- a/src/shader/pathtracing/mod.rs +++ b/src/shader/pathtracing/mod.rs @@ -1,7 +1,9 @@ mod camera; -use std::sync::Arc; +use std::collections::HashMap; +use std::sync::{Arc, Mutex}; use std::time::Instant; +use lazy_static::lazy_static; use vulkano::buffer::{Buffer, BufferCreateInfo, BufferUsage, Subbuffer}; use vulkano::buffer::allocator::{SubbufferAllocator, SubbufferAllocatorCreateInfo}; use vulkano::command_buffer::allocator::StandardCommandBufferAllocator; @@ -27,6 +29,112 @@ pub(crate) mod cs { } } +lazy_static! { + static ref MATERIAL_COLLECTIO: Mutex> = Mutex::new(HashMap::new()); + static ref DEFAULT_MATERIAL: cs::Material = cs::Material { + albedo: Padded::from([0.0, 0.0, 0.0]), + emission: Padded::from([0.0, 0.0, 0.0]), + specular_color: [0.0, 0.0, 0.0], + roughness: 1.0, + transmission: 0.0, + ior: 1.0, + metallic: false as u32, + __padding: 0 + }; +} + +fn add_default_materials() { + let mut material_collection = MATERIAL_COLLECTIO.lock().unwrap(); + + material_collection.insert(String::from("white"), cs::Material { + albedo: Padded::from([1.0, 1.0, 1.0]), + emission: Padded::from([0.0, 0.0, 0.0]), + specular_color: [0.0, 0.0, 0.0], + roughness: 1.0, + transmission: 0.0, + ior: 1.0, + metallic: false as u32, + __padding: 0 + }); + + material_collection.insert(String::from("red"), cs::Material { + albedo: Padded::from([1.0, 0.0, 0.0]), + emission: Padded::from([0.0, 0.0, 0.0]), + specular_color: [0.0, 0.0, 0.0], + roughness: 1.0, + transmission: 0.0, + ior: 1.0, + metallic: false as u32, + __padding: 0 + }); + + material_collection.insert(String::from("green"), cs::Material { + albedo: Padded::from([0.0, 1.0, 0.0]), + emission: Padded::from([0.0, 0.0, 0.0]), + specular_color: [0.0, 0.0, 0.0], + roughness: 1.0, + transmission: 0.0, + ior: 1.0, + metallic: false as u32, + __padding: 0 + }); + + material_collection.insert(String::from("glass"), cs::Material { + albedo: Padded::from([1.0, 1.0, 1.0]), + emission: Padded::from([0.0, 0.0, 0.0]), + specular_color: [0.0, 0.0, 0.0], + roughness: 1.5, + transmission: 1.0, + ior: 1.0, + metallic: false as u32, + __padding: 0 + }); + + material_collection.insert(String::from("light"), cs::Material { + albedo: Padded::from([1.0, 1.0, 1.0]), + emission: Padded::from([1.0, 1.0, 1.0]), + specular_color: [0.0, 0.0, 0.0], + roughness: 1.5, + transmission: 0.0, + ior: 0.0, + metallic: false as u32, + __padding: 0 + }); + + material_collection.insert(String::from("light_blue"), cs::Material { + albedo: Padded::from([0.3, 0.3, 1.0]), + emission: Padded::from([0.3, 0.3, 1.0]), + specular_color: [0.0, 0.0, 0.0], + roughness: 1.5, + transmission: 0.0, + ior: 0.0, + metallic: false as u32, + __padding: 0 + }); + + material_collection.insert(String::from("light_red"), cs::Material { + albedo: Padded::from([1.0, 0.3, 0.3]), + emission: Padded::from([1.0, 0.3, 0.3]), + specular_color: [0.0, 0.0, 0.0], + roughness: 1.5, + transmission: 0.0, + ior: 0.0, + metallic: false as u32, + __padding: 0 + }); + + material_collection.insert(String::from("light_green"), cs::Material { + albedo: Padded::from([0.3, 1.0, 0.3]), + emission: Padded::from([0.3, 1.0, 0.3]), + specular_color: [0.0, 0.0, 0.0], + roughness: 1.5, + transmission: 0.0, + ior: 0.0, + metallic: false as u32, + __padding: 0 + }); +} + pub struct PathtracerPipeline { compute_queue: Arc, compute_pipeline: Arc, @@ -34,16 +142,19 @@ pub struct PathtracerPipeline { descriptor_set_allocator: Arc, memory_allocator: Arc, image: Arc>, - raw_image: Subbuffer<[[f32; 4]]>, seconds: Instant, uniform_buffer: Arc, vertex_buffer: Subbuffer<[[f32; 4]]>, index_buffer: Subbuffer<[u32]>, - camera: Camera + material_buffer: Subbuffer<[cs::Material]>, + camera: Camera, + frames: f32 } impl PathtracerPipeline { pub fn new(renderer: &Renderer, compute_queue: &Arc, size: [u32; 2]) -> Self { + add_default_materials(); + let compute_pipeline = { let shader = cs::load(compute_queue.device().clone()).unwrap(); @@ -56,7 +167,7 @@ impl PathtracerPipeline { ).unwrap() }; - let (raw_image_buffer, image) = create_image(&renderer.memory_allocator, compute_queue, size); + let image = create_image(&renderer.memory_allocator, compute_queue, size); let uniform_buffer = SubbufferAllocator::new( renderer.memory_allocator.clone(), @@ -66,9 +177,9 @@ impl PathtracerPipeline { }, ); - let (vertices, indices) = load_example_scene(); + let (vertices, indices, materials) = load_example_scene(); - let (vertex_buffer, index_buffer) = create_gpu_buffer(&vertices, &indices, &renderer.memory_allocator); + let (vertex_buffer, index_buffer, materials) = create_gpu_buffer(&vertices, &indices, &materials, &renderer.memory_allocator); return PathtracerPipeline { compute_queue: compute_queue.clone(), @@ -77,12 +188,13 @@ impl PathtracerPipeline { descriptor_set_allocator: renderer.descriptor_set_allocator.clone(), memory_allocator: renderer.memory_allocator.clone(), image, - raw_image: raw_image_buffer, uniform_buffer: Arc::new(uniform_buffer), vertex_buffer, index_buffer, + material_buffer: materials, seconds: Instant::now(), - camera: Camera::new() + camera: Camera::new(), + frames: 0.0 }; } @@ -109,17 +221,18 @@ impl PathtracerPipeline { } pub fn resize_image(&mut self, size: [u32; 2]) { - let (raw_image_buffer, image) = create_image(&self.memory_allocator, &self.compute_queue, size); + let image = create_image(&self.memory_allocator, &self.compute_queue, size); self.image = image; - self.raw_image = raw_image_buffer; } /// Builds the command for a dispatch. fn dispatch( - &self, + &mut self, builder: &mut AutoCommandBufferBuilder> ) { + self.frames += 1.0; + let camera = cs::Camera { front: Padded::from(Into::<[f32; 3]>::into(self.camera.front)), left: Padded::from(Into::<[f32; 3]>::into(self.camera.left)), @@ -140,17 +253,18 @@ impl PathtracerPipeline { &self.descriptor_set_allocator, desc_layout.clone(), [ - WriteDescriptorSet::buffer(0, self.raw_image.clone()), WriteDescriptorSet::image_view(1, self.image.clone()), WriteDescriptorSet::buffer(2, subbuffer), WriteDescriptorSet::buffer(3, self.vertex_buffer.clone()), - WriteDescriptorSet::buffer(4, self.index_buffer.clone()) + WriteDescriptorSet::buffer(4, self.index_buffer.clone()), + WriteDescriptorSet::buffer(5, self.material_buffer.clone()) ], ).unwrap(); let push_constants = cs::PushConstants { resolution: [size[0] as f32, size[1] as f32], - seconds: (Instant::now() - self.seconds).as_secs_f32() + seconds: (Instant::now() - self.seconds).as_secs_f32(), + frames: self.frames }; builder @@ -166,58 +280,55 @@ impl PathtracerPipeline { } } -fn create_image(memory_allocator: &StandardMemoryAllocator, queue: &Arc, size: [u32; 2]) -> (Subbuffer<[[f32; 4]]>, Arc>) { - let raw_image = Buffer::from_iter( - memory_allocator, - BufferCreateInfo { - usage: BufferUsage::STORAGE_BUFFER, - ..Default::default() - }, - AllocationCreateInfo { - usage: MemoryUsage::Upload, - ..Default::default() - }, - vec![[0f32; 4]; (size[0] * size[1]) as usize], - ).unwrap(); - - let image = StorageImage::general_purpose_image_view( +fn create_image(memory_allocator: &StandardMemoryAllocator, queue: &Arc, size: [u32; 2]) -> Arc> { + StorageImage::general_purpose_image_view( memory_allocator, queue.clone(), size, - Format::R8G8B8A8_UNORM, + Format::R32G32B32A32_SFLOAT, ImageUsage::SAMPLED | ImageUsage::STORAGE | ImageUsage::TRANSFER_DST, - ).unwrap(); - - (raw_image, image) + ).unwrap() } -fn load_example_scene() -> (Vec<[f32; 4]>, Vec) { +fn load_example_scene() -> (Vec<[f32; 4]>, Vec, Vec) { let (mut models, materials) = tobj::load_obj("res/example-scene.obj", &tobj::GPU_LOAD_OPTIONS).expect("unable to load scene from obj"); + // allocate some host memory let mut vertices:Vec<[f32; 4]> = vec![]; let mut indices:Vec = vec![]; + let mut shader_materials:Vec = vec![]; for model in models.iter_mut() { let offset = vertices.len() as u32; + let material = model.mesh.material_id.unwrap_or(0); + + // fill the vertex buffer for vertex_index in (0..model.mesh.positions.len()).step_by(3) { vertices.push([ model.mesh.positions[vertex_index], model.mesh.positions[vertex_index + 1], model.mesh.positions[vertex_index + 2], - 0.0 + // padding will store material index to be used for this triangle + material as f32 ]); } + // fill the index buffer for index in model.mesh.indices.iter() { indices.push(*index + offset); } } - (vertices, indices) + let material_collection = &MATERIAL_COLLECTIO.lock().unwrap(); + for material in materials.unwrap().iter() { + shader_materials.push(*material_collection.get(&material.name).unwrap_or(&DEFAULT_MATERIAL)); + } + + (vertices, indices, shader_materials) } -fn create_gpu_buffer(vertices: &Vec<[f32; 4]>, indices: &Vec, memory_allocator: &StandardMemoryAllocator) -> (Subbuffer<[[f32; 4]]>, Subbuffer<[u32]>) { +fn create_gpu_buffer(vertices: &Vec<[f32; 4]>, indices: &Vec, materials: &Vec, memory_allocator: &StandardMemoryAllocator) -> (Subbuffer<[[f32; 4]]>, Subbuffer<[u32]>, Subbuffer<[cs::Material]>) { let vertex_buffer = Buffer::from_iter( memory_allocator, BufferCreateInfo { @@ -225,7 +336,7 @@ fn create_gpu_buffer(vertices: &Vec<[f32; 4]>, indices: &Vec, memory_alloca ..Default::default() }, AllocationCreateInfo { - usage: MemoryUsage::Upload, + usage: MemoryUsage::DeviceOnly, ..Default::default() }, vertices.clone(), @@ -238,11 +349,24 @@ fn create_gpu_buffer(vertices: &Vec<[f32; 4]>, indices: &Vec, memory_alloca ..Default::default() }, AllocationCreateInfo { - usage: MemoryUsage::Upload, + usage: MemoryUsage::DeviceOnly, ..Default::default() }, indices.clone(), ).unwrap(); - (vertex_buffer, index_buffer) + let material_buffer = Buffer::from_iter( + memory_allocator, + BufferCreateInfo { + usage: BufferUsage::STORAGE_BUFFER, + ..Default::default() + }, + AllocationCreateInfo { + usage: MemoryUsage::DeviceOnly, + ..Default::default() + }, + materials.clone(), + ).unwrap(); + + (vertex_buffer, index_buffer, material_buffer) } \ No newline at end of file diff --git a/src/shader/pathtracing/pathtracer.comp b/src/shader/pathtracing/pathtracer.comp index 523f212..c1e2b30 100644 --- a/src/shader/pathtracing/pathtracer.comp +++ b/src/shader/pathtracing/pathtracer.comp @@ -3,17 +3,18 @@ #include "rand/random.glsl" #include "raytracing/raytracing.glsl" #include "raytracing/camera.glsl" -#include "bsdf.glsl" +#include "raytracing/bsdf.glsl" + +#define MAX_DEPTH 4 layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; -layout(set = 0, binding = 0) buffer LinearImage { vec4 pixels[]; }; - -layout(set = 0, binding = 1, rgba8) uniform writeonly image2D image; +layout(set = 0, binding = 1, rgba32f) uniform image2D image; layout(push_constant) uniform PushConstants { vec2 resolution; float seconds; + float frames; } program_metadata; vec2 get_viewport_coordinate() { @@ -26,82 +27,44 @@ uint get_pixel_index() { return gl_GlobalInvocationID.y * uint(program_metadata.resolution.x) + gl_GlobalInvocationID.x; } -vec3 project(in vec3 a, in vec3 b) { - return a * (dot(a, b) / dot(a, a)); -} - -void construct_orthonormal_basis(in vec3 up, out vec3 u, out vec3 v, out vec3 w) { - u = normalize(up); - - vec3 n2 = normalize(cross(up, vec3(0, 1.0, 1.0))); - vec3 n3 = cross(u, n2); - - vec3 w2 = normalize(n2 - (project(u, n2))); - vec3 w3 = normalize(n3 - project(u, n3) - project(w2, n3)); - - v = w2; - w = w3; -} - -vec3 cosine_weighted_hemisphere() { - float u1 = random(); - float u2 = random(); - - float r = sqrt(u1); - float theta = 2 * 3.1415926535 * u2; - - float x = r * cos(theta); - float y = r * sin(theta); - - return vec3(x, y, sqrt(1.0 - u1)); -} - -vec3 generate_diffuse_ray_direction(in vec3 nor) { - vec3 hemisphere = cosine_weighted_hemisphere(); - - vec3 u, v, w; - construct_orthonormal_basis(nor, u, v, w); - - return normalize(u * hemisphere.x + v * hemisphere.y + w * hemisphere.z); -} - -vec3 trace_direct(in Ray direct_ray) { - Hit hit = intersect_scene(direct_ray); - - if (hit.depth < direct_ray.far) { - - Ray ray; - ray.origin = direct_ray.origin + direct_ray.direction * hit.depth; - ray.direction = generate_diffuse_ray_direction(hit.nor); - ray.near = 1e-3; - ray.far = 1.0; +vec3 trace_direct(in Ray ray) { + vec3 color = vec3(0); + vec3 throughput = vec3(1); + for (uint depth = 0; depth < MAX_DEPTH; depth++) { Hit hit = intersect_scene(ray); - if (hit.depth == 1.0) { - return vec3(1); + + if (!hit.intersected) { + break; } - return vec3(0); + float pdf = abs(dot(ray.direction, hit.normal) / PI); + + Material material = materials[hit.material_index]; + + color += material.emission * 64.0 * throughput * pdf; + + throughput *= material.albedo; + + ray.origin = ray.origin + ray.direction * hit.depth; + ray.direction = generate_brdf_ray_direction(hit.normal, ray.direction, 1.0); } - return vec3(0); + return color; } void main() { - init_random_state(floatBitsToInt(program_metadata.seconds)); + init_random_state(program_metadata.seconds); vec2 uv = get_viewport_coordinate(); Ray camera_ray = construct_camera_ray_pinhole(uv); - vec3 color = trace_direct(camera_ray); + vec4 color = vec4(trace_direct(camera_ray), 1); - // index of the current pixel as array index - uint pixel_index = get_pixel_index(); + vec4 previous = imageLoad(image, ivec2(gl_GlobalInvocationID.xy)); - vec4 buffer_data = pixels[pixel_index] + vec4(color, 1); - // contribute to the raw pixel buffer - pixels[pixel_index] = buffer_data; + vec4 merged = mix(previous, color, 1.0 / program_metadata.frames); - imageStore(image, ivec2(gl_GlobalInvocationID.xy), vec4(buffer_data.rgb / buffer_data.a, 1)); + imageStore(image, ivec2(gl_GlobalInvocationID.xy), merged); } \ No newline at end of file diff --git a/src/shader/pathtracing/rand/one-at-a-time.glsl b/src/shader/pathtracing/rand/one-at-a-time.glsl new file mode 100644 index 0000000..7ff4ace --- /dev/null +++ b/src/shader/pathtracing/rand/one-at-a-time.glsl @@ -0,0 +1,22 @@ +#ifdef _ONE_AT_A_TIME_ + +uint x; + +void init_random_state_one_at_a_time(in float seed) { + x = ((gl_GlobalInvocationID.y << 16) | (gl_GlobalInvocationID.x)) + floatBitsToInt(seed); +} + +// A single iteration of Bob Jenkins' One-At-A-Time hashing algorithm. +uint one_at_a_time_hash() { + x += (x << 10u); + x ^= (x >> 6u); + x += (x << 3u); + x ^= (x >> 11u); + x += (x << 15u); + return x; +} + +#define HASH_FUNCTION one_at_a_time_hash +#define INIT_STATE_FUNCTION init_random_state_one_at_a_time + +#endif diff --git a/src/shader/pathtracing/rand/random.glsl b/src/shader/pathtracing/rand/random.glsl index 5a8c8fa..a468b58 100644 --- a/src/shader/pathtracing/rand/random.glsl +++ b/src/shader/pathtracing/rand/random.glsl @@ -1,36 +1,30 @@ +#ifndef __RANDOM_GLSL__ +#define __RANDOM_GLSL__ -uint state; +#define _ONE_AT_A_TIME_ +//#define _XOSHIRO_ -void init_random_state(uint seed) { - state = (gl_GlobalInvocationID.x << 16) | gl_GlobalInvocationID.y; - state += seed; -} - -// A single iteration of Bob Jenkins' One-At-A-Time hashing algorithm. -uint hash(in uint x) { - x += ( x << 10u ); - x ^= ( x >> 6u ); - x += ( x << 3u ); - x ^= ( x >> 11u ); - x += ( x << 15u ); - return x; -} +#include "one-at-a-time.glsl" +#include "xoshiro.glsl" // Construct a float with half-open range [0:1] using low 23 bits. // All zeroes yields 0.0, all ones yields the next smallest representable value below 1.0. -float floatConstruct( uint m ) { +float floatConstruct(in uint m) { const uint ieeeMantissa = 0x007FFFFFu; // binary32 mantissa bitmask - const uint ieeeOne = 0x3F800000u; // 1.0 in IEEE binary32 + const uint ieeeOne = 0x3F800000u; // 1.0 in IEEE binary32 m &= ieeeMantissa; // Keep only mantissa bits (fractional part) m |= ieeeOne; // Add fractional part to 1.0 - float f = uintBitsToFloat(m); // Range [1:2] - return f - 1.0; // Range [0:1] + return uintBitsToFloat(m) - 1.0; +} + +void init_random_state(in float seed) { + INIT_STATE_FUNCTION(seed); } float random() { - state = hash(state); + return floatConstruct(HASH_FUNCTION()); +} - return floatConstruct(state); -} \ No newline at end of file +#endif diff --git a/src/shader/pathtracing/rand/xoshiro.glsl b/src/shader/pathtracing/rand/xoshiro.glsl new file mode 100644 index 0000000..0eaf35b --- /dev/null +++ b/src/shader/pathtracing/rand/xoshiro.glsl @@ -0,0 +1,36 @@ + +#ifdef _XOSHIRO_ + +uint rol(in uint x, in uint k) { + return (x << k) | (x >> (32 - k)); +} + +uint XoshiroState[4]; + +void init_random_state_xhoshiro(in float seed) { + uint utime = floatBitsToUint(seed); + XoshiroState[0] = ((gl_GlobalInvocationID.x << 16) | gl_GlobalInvocationID.y) + utime; + XoshiroState[1] = XoshiroState[0] ^ utime; + XoshiroState[2] = 0x92abc32; + XoshiroState[3] = rol(utime, 16); +} + +uint xoshiro_hash() { + uint result = rol(XoshiroState[1] * 5, 7) * 9; + uint t = XoshiroState[1] << 8; + + XoshiroState[2] ^= XoshiroState[0]; + XoshiroState[3] ^= XoshiroState[1]; + XoshiroState[1] ^= XoshiroState[2]; + XoshiroState[0] ^= XoshiroState[3]; + + XoshiroState[2] ^= t; + XoshiroState[3] = rol(XoshiroState[3], 22); + + return result; +} + +#define HASH_FUNCTION xoshiro_hash +#define INIT_STATE_FUNCTION init_random_state_xhoshiro + +#endif diff --git a/src/shader/pathtracing/raytracing/bsdf.glsl b/src/shader/pathtracing/raytracing/bsdf.glsl new file mode 100644 index 0000000..a760765 --- /dev/null +++ b/src/shader/pathtracing/raytracing/bsdf.glsl @@ -0,0 +1,52 @@ +#include "rand/random.glsl" + +const float PI = 3.1415926535; + +// project vector b onto vector a +vec3 project(in vec3 a, in vec3 b) { + return a * (dot(a, b) / dot(a, a)); +} + +// construct a 3D coordinate system with the input up being the "upwards" facing vector +// which will be directly stored in w. +// Mathematically this function will create two non linear vectors of up and generate an orthonormal +// basis using gram-schmidt. +// This function assumes "up" being already normalized +void construct_orthonormal_basis(in vec3 up, out vec3 u, out vec3 v, out vec3 w) { + w = up; + + vec3 n2 = normalize(cross(w, vec3(0, 1.0, 1.0))); // build perpendicular vector from w + vec3 n3 = cross(w, n2); // create 2nd vector perpendicular to w and n2 + + // gram schmidt + u = n2 - (project(w, n2)); + v = n3 - project(w, n3) - project(u, n3); +} + +// generate a normalized vector within the bounds of the hemisphere with radius of 1. +// Z-Coordinate will be "upwards". +// radius determines the maximum radius the output vector will have. +// NOTE: shrinkin radius will still result in the output to be normalized +vec3 cosine_weighted_hemisphere(in float radius) { + float u1 = random() * radius; + float u2 = random(); + + float r = sqrt(u1); + float theta = 2 * PI * u2; + + float x = r * cos(theta); + float y = r * sin(theta); + + return vec3(x, y, sqrt(1.0 - u1)); +} + +vec3 generate_brdf_ray_direction(in vec3 normal, in vec3 incident, in float roughness) { + vec3 merged_normal = mix(normal, reflect(incident, normal), 1.0 - roughness); + + vec3 hemisphere = cosine_weighted_hemisphere(roughness); + + vec3 u, v, w; + construct_orthonormal_basis(merged_normal, u, v, w); + + return u * hemisphere.x + v * hemisphere.y + w * hemisphere.z; +} \ No newline at end of file diff --git a/src/shader/pathtracing/raytracing/raytracing.glsl b/src/shader/pathtracing/raytracing/raytracing.glsl index 79fd175..60b5e20 100644 --- a/src/shader/pathtracing/raytracing/raytracing.glsl +++ b/src/shader/pathtracing/raytracing/raytracing.glsl @@ -8,9 +8,38 @@ struct Ray { }; struct Hit { - vec3 nor; - vec2 uv; + // normal of the hit triangle + vec3 normal; + // barycentric coordinates of the hit point relative to the hit triangle vertices + vec2 barycentric; + // distance between the ray origin and the intersection float depth; + // index of the material of the intersection relative to the material buffer + uint material_index; + // whether we hit something + bool intersected; +}; + +// Describes the properties of an objects surface and volume +struct Material { + // how much diffuse light is reflected by the surface + vec3 albedo; + // emitted light + vec3 emission; + // color of the specular reflection + vec3 specular_color; + // roughtness of the microfacets + float roughness; + // index of refraction (exclusive to metalic) + float ior; + // how transmissive the surface is (exclusive to metalic) + float transmission; + // whether the surface is metalic or not (exclusive to ior and transmission) + bool metallic; + // extra padding required for vulkano not properly padding the structs in the buffer + // the size of the useble data is 60 bytes, GLSL will add 4 additional bytes, to round up to 64. + // for compatibility I added the padding manually + bool __padding; }; layout(set = 0, binding = 3) buffer VertexBuffer { @@ -21,19 +50,31 @@ layout(set = 0, binding = 4) buffer IndexBuffer { uint indices[]; }; +layout(set = 0, binding = 5) buffer MaterialBuffer { + Material materials[]; +}; + +// from: https://iquilezles.org/articles/intersectors/ with a view modifications vec3 intersect_triangle(in Ray ray, in vec3 v0, in vec3 v1, in vec3 v2, out vec3 n) { + // triangle edges vec3 v1v0 = v1 - v0; vec3 v2v0 = v2 - v0; + vec3 rov0 = ray.origin - v0; + // normal n = cross(v1v0, v2v0); vec3 q = cross(rov0, ray.direction); float d = 1.0 / dot(ray.direction, n); - float u = d * dot( -q, v2v0); - float v = d * dot( q, v1v0); - float t = d * dot( -n, rov0); + // barycentric coordinates + float u = d * dot(-q, v2v0); + float v = d * dot(q, v1v0); + // intersection distance + float t = d * dot(-n, rov0); - if(u < 0.0 || v < 0.0 || (u+v) > 1.0 || d > 0.0) + // test if the intersection lies outside of the triangle by checking the bounds of the barycentric coordinates + // also perform backface culling + if(u < 0.0 || v < 0.0 || (u + v) > 1.0 || d > 0.0) t = -1.0; return vec3(t, u, v); @@ -42,19 +83,22 @@ vec3 intersect_triangle(in Ray ray, in vec3 v0, in vec3 v1, in vec3 v2, out vec3 Hit intersect_scene(in Ray ray) { Hit hit; hit.depth = ray.far; + hit.intersected = false; for (int i = 0; i < indices.length(); i += 3) { vec3 v0 = vertices[indices[i]].xyz; vec3 v1 = vertices[indices[i + 1]].xyz; vec3 v2 = vertices[indices[i + 2]].xyz; - vec3 n; - vec3 result = intersect_triangle(ray, v0, v1, v2, n); + vec3 normal; + vec3 result = intersect_triangle(ray, v0, v1, v2, normal); if (result.x > ray.near && result.x < hit.depth) { - hit.uv = result.yz; + hit.barycentric = result.yz; hit.depth = result.x; - hit.nor = normalize(n); + hit.normal = normalize(normal); + hit.material_index = uint(vertices[indices[i]].a); + hit.intersected = true; } } diff --git a/src/vulkan/mod.rs b/src/vulkan/mod.rs index d5fce03..783bfb5 100644 --- a/src/vulkan/mod.rs +++ b/src/vulkan/mod.rs @@ -85,13 +85,6 @@ pub fn init() { depth_range: 0.0..1.0, }; - // The render pass we created above only describes the layout of our framebuffers. Before we - // can draw we also need to create the actual framebuffers. - // - // Since we need to draw to multiple images, we are going to create a different framebuffer for - // each image. - let mut framebuffers = window_size_dependent_setup(&images, render_pass.clone(), &mut viewport); - // Before we can start creating and recording command buffers, we need a way of allocating // them. Vulkano provides a command buffer allocator, which manages raw Vulkan command pools // underneath and provides a safe interface for them. @@ -108,6 +101,15 @@ pub fn init() { descriptor_set_allocator }; + let mut pathtracer = PathtracerPipeline::new(&renderer, &queue, [512, 512]); + + // The render pass we created above only describes the layout of our framebuffers. Before we + // can draw we also need to create the actual framebuffers. + // + // Since we need to draw to multiple images, we are going to create a different framebuffer for + // each image. + let mut framebuffers = window_size_dependent_setup(&images, render_pass.clone(), &mut viewport, &mut pathtracer); + // Initialization is finally finished! // In some situations, the swapchain will become invalid by itself. This includes for example @@ -130,7 +132,6 @@ pub fn init() { let mut previous_frame_end = Some(sync::now(device.clone()).boxed()); let texture_drawer = TextureDrawPipeline::new(&renderer, &queue, &render_pass); - let mut pathtracer = PathtracerPipeline::new(&renderer, &queue, [512, 512]); let mut now_keys = [false; 255]; @@ -218,6 +219,7 @@ pub fn init() { &new_images, render_pass.clone(), &mut viewport, + &mut pathtracer ); recreate_swapchain = false; @@ -248,7 +250,7 @@ pub fn init() { recreate_swapchain = true; } - pathtracer.compute(); + let future = pathtracer.compute(); let command_buffer = texture_drawer.draw(framebuffers[image_index as usize].clone(), &viewport, &pathtracer); @@ -256,6 +258,7 @@ pub fn init() { .take() .unwrap() .join(acquire_future) + .join(future) .then_execute(queue.clone(), command_buffer) .unwrap() // The color output is now expected to contain our triangle. But in order to @@ -298,10 +301,13 @@ fn window_size_dependent_setup( images: &[Arc], render_pass: Arc, viewport: &mut Viewport, + pathtracer: &mut PathtracerPipeline, ) -> Vec> { let dimensions = images[0].dimensions().width_height(); viewport.dimensions = [dimensions[0] as f32, dimensions[1] as f32]; + pathtracer.resize_image(dimensions); + images .iter() .map(|image| { @@ -312,8 +318,7 @@ fn window_size_dependent_setup( attachments: vec![view], ..Default::default() }, - ) - .unwrap() + ).unwrap() }).collect::>() }