From 55d13aec5f8d8b444f6a21a0c6dce740a8c0a399 Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 29 Jul 2026 14:19:58 +0100 Subject: [PATCH] Replace the flex metric factorization with a block preconditioner Every step, the flex block of the implicit effective metric M + K was factorized by sparse Cholesky, because K depends on the configuration. On model/flex/bag.xml, added here, that is roughly half the step, against a comparable share for the constraint solve it exists to accelerate. Keep only the metric's per-vertex 3x3 diagonal blocks, prefactored. Neither consumer needs the exact inverse: the CG constraint solver only wants a preconditioner, and qacc_smooth can come from an iterative solve using those blocks. They are O(n) to build and to apply, but weaker, so CG runs about twice the iterations and qacc_smooth becomes an iteration rather than a direct solve. Net, the bag model steps roughly twice as fast. The preconditioner, by metric state. Inactive, meaning no flex elasticity or an explicit integrator: M^-1, unchanged. Bending only (nefmK == 0): M^-1 plus the exact constant bending factor from mj_setConst on the dofs it covers, unchanged; that factor is built at model compile time and costs nothing per step. Per-step stiffness: M^-1 plus the 3x3 blocks, where before it was a per-step sparse Cholesky, or, when M couples across the flex block, an inner PCG of up to 50 iterations run once per outer CG iteration. Only models carrying per-step stretch stiffness change in wall-clock. Both ponchos hold their timing and take slightly fewer CG iterations than before, because the preconditioner is now symmetric: it applies M^-1 and the covered blocks to disjoint sets of dofs, where previously the two overlapped and the operator was not symmetric, which PCG requires. mjd_effSolve is the accurate solve of (M + K)x = b; what used to carry that name only preconditions and is now mjd_effPrec. Its CG guarded the division by pAp with mjMINVAL, an absolute floor on a quantity that scales with the square of the right-hand side, so a small b aborted the solve while the curvature was healthy: four flex models were quietly left short of tolerance. For an SPD metric the guard is positivity, and with that the same solves converge. The qacc_smooth call site in mj_fwdAcceleration is textually unchanged but now reaches the iterative solve, which converges on opt.tolerance rather than a hardcoded threshold, floored in mjUSESINGLE builds where the squared target is unreachable in float. Reaching the iteration cap names the ill-conditioned flex stiffness and then reports it through mjWARN_INERTIA, rather than returning an under-converged result. Covered dofs are located by walking the covered rows of the stiffness matrix, as they need not be 3-aligned from dof 0: any joint declared before a flexcomp shifts them. mjData.efm_L_rownnz, efm_L_rowadr and efm_L_colind described the sparsity of the deleted factorization and are removed: left NULL with nonzero mjxmacro extents they made the Python bindings hand back uninitialized arrays. efm_active loses the value 2 for the same reason, nothing selects a solve path on preconditioner exactness any more. Both are recorded under breaking changes. model/flex/bag.xml is added because no shipped model carried per-step stretch stiffness. The ponchos are bending-only and trampoline.xml uses an explicit integrator, so the metric never activates there. It is excluded from WriteReadCompareTest: stretch stiffness amplifies rest geometry that XML rounds on save. --- doc/changelog.rst | 28 + doc/includes/references.h | 13 +- include/mujoco/mjdata.h | 13 +- include/mujoco/mjxmacro.h | 3 - model/flex/asset/bag.obj | 4551 +++++++++++++++++++++++++ model/flex/bag.xml | 74 + python/mujoco/introspect/structs.py | 34 +- src/engine/engine_derivative.c | 576 +--- src/engine/engine_derivative.h | 8 +- src/engine/engine_forward.c | 2 +- src/engine/engine_solver.c | 2 +- test/engine/engine_derivative_test.cc | 78 +- test/xml/xml_write_read_test.cc | 2 + wasm/codegen/generated/bindings.cc | 3 - wasm/codegen/generated/bindings.h | 9 - wasm/codegen/generators/constants.py | 3 - 16 files changed, 4914 insertions(+), 485 deletions(-) create mode 100644 model/flex/asset/bag.obj create mode 100644 model/flex/bag.xml diff --git a/doc/changelog.rst b/doc/changelog.rst index b24ee60b..1d6a3a6b 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -2,6 +2,34 @@ Changelog ========= +Upcoming version (not yet released) +----------------------------------- + +Engine +^^^^^^ + +- Replaced the per-step sparse Cholesky factorization of the flex block of the implicit effective metric M + K with + its prefactored per-vertex 3x3 diagonal blocks. The blocks precondition the CG constraint solver and drive an + iterative solve for ``qacc_smooth``, which now converges on :ref:`tolerance` rather than a fixed + threshold. Flexes with :ref:`elastic2d` stretch stiffness step roughly twice as fast; + bending-only flexes keep the exact constant factor and are unchanged. + +.. admonition:: Breaking API changes + :class: attention + + - Removed ``mjData.efm_L_rownnz``, ``mjData.efm_L_rowadr`` and ``mjData.efm_L_colind``. They described the sparsity + of the effective-metric Cholesky factor, which no longer exists; ``mjData.efm_L`` now holds dense 3x3 blocks, + 9 numbers per covered vertex. ``mjData.efm_active`` no longer takes the value 2: nothing selects a solve path on + preconditioner exactness, so it is now a plain 0/1 flag. + +Models +^^^^^^ + +- Added `bag `__ example model: a cloth bag, + held open by pinning the ring of vertices around its mouth, catching the standard humanoid dropped in from above. + Unlike the poncho models, which are bending-only, this model exercises the 2D + :ref:`stretch` elasticity of a flex. + Version 3.11.0 (July 27, 2026) ------------------------------ diff --git a/doc/includes/references.h b/doc/includes/references.h index d3902c53..cbef7a82 100644 --- a/doc/includes/references.h +++ b/doc/includes/references.h @@ -112,10 +112,10 @@ typedef struct mjData_ { int nl; // number of limit constraints int nefc; // number of constraints int nJ; // number of non-zeros in constraint Jacobian - int efm_active; // implicit effective metric M+K: 0 inactive, 1 active, 2 active + preconditioner exact + int efm_active; // implicit effective metric M+K is active (see mjd_effBuild) int nefmK; // number of non-zeros in effective-stiffness CSR - int nefmdof; // number of rows in effective-metric factor - int nefmL; // number of non-zeros in the effective-metric factor + int nefmdof; // number of 3x3 blocks in the effective-metric preconditioner + int nefmL; // size of the effective-metric block storage (9*nefmdof) int nY; // number of non-zeros in constraint inverse inertia square root int nA; // number of non-zeros in constraint inverse inertia matrix int nisland; // number of detected constraint islands @@ -382,11 +382,8 @@ typedef struct mjData_ { int* efm_K_rowadr; // effective-stiffness CSR row addresses (nv x 1) int* efm_K_colind; // effective-stiffness CSR column indices (nefmK x 1) mjtNum* efm_K_val; // effective-stiffness CSR values (nefmK x 1) - int* efm_dofid; // factor row -> dof address (nefmdof x 1) - int* efm_L_rownnz; // factor row nonzeros (nefmdof x 1) - int* efm_L_rowadr; // factor row addresses (nefmdof x 1) - int* efm_L_colind; // factor column indices (nefmL x 1) - mjtNum* efm_L; // Cholesky factor of diag(M)+K, covered dofs (nefmL x 1) + int* efm_dofid; // block k -> dof address of its vertex triple (nefmdof x 1) + mjtNum* efm_L; // factored 3x3 diagonal blocks of M+K (nefmL x 1) //-------------------- arena-allocated: POSITION, VELOCITY, CONTROL/ACCELERATION dependent diff --git a/include/mujoco/mjdata.h b/include/mujoco/mjdata.h index c2fddb81..b95c2362 100644 --- a/include/mujoco/mjdata.h +++ b/include/mujoco/mjdata.h @@ -136,10 +136,10 @@ typedef struct mjData_ { int nl; // number of limit constraints int nefc; // number of constraints int nJ; // number of non-zeros in constraint Jacobian - int efm_active; // implicit effective metric M+K: 0 inactive, 1 active, 2 active + preconditioner exact + int efm_active; // implicit effective metric M+K is active (see mjd_effBuild) int nefmK; // number of non-zeros in effective-stiffness CSR - int nefmdof; // number of rows in effective-metric factor - int nefmL; // number of non-zeros in the effective-metric factor + int nefmdof; // number of 3x3 blocks in the effective-metric preconditioner + int nefmL; // size of the effective-metric block storage (9*nefmdof) int nY; // number of non-zeros in constraint inverse inertia square root int nA; // number of non-zeros in constraint inverse inertia matrix int nisland; // number of detected constraint islands @@ -406,11 +406,8 @@ typedef struct mjData_ { int* efm_K_rowadr; // effective-stiffness CSR row addresses (nv x 1) int* efm_K_colind; // effective-stiffness CSR column indices (nefmK x 1) mjtNum* efm_K_val; // effective-stiffness CSR values (nefmK x 1) - int* efm_dofid; // factor row -> dof address (nefmdof x 1) - int* efm_L_rownnz; // factor row nonzeros (nefmdof x 1) - int* efm_L_rowadr; // factor row addresses (nefmdof x 1) - int* efm_L_colind; // factor column indices (nefmL x 1) - mjtNum* efm_L; // Cholesky factor of diag(M)+K, covered dofs (nefmL x 1) + int* efm_dofid; // block k -> dof address of its vertex triple (nefmdof x 1) + mjtNum* efm_L; // factored 3x3 diagonal blocks of M+K (nefmL x 1) //-------------------- arena-allocated: POSITION, VELOCITY, CONTROL/ACCELERATION dependent diff --git a/include/mujoco/mjxmacro.h b/include/mujoco/mjxmacro.h index 34e637d8..31eab570 100644 --- a/include/mujoco/mjxmacro.h +++ b/include/mujoco/mjxmacro.h @@ -1015,9 +1015,6 @@ X ( int, efm_K_colind, MJ_D(nefmK), 1 ) \ X ( mjtNum, efm_K_val, MJ_D(nefmK), 1 ) \ X ( int, efm_dofid, MJ_D(nefmdof), 1 ) \ - X ( int, efm_L_rownnz, MJ_D(nefmdof), 1 ) \ - X ( int, efm_L_rowadr, MJ_D(nefmdof), 1 ) \ - X ( int, efm_L_colind, MJ_D(nefmL), 1 ) \ X ( mjtNum, efm_L, MJ_D(nefmL), 1 ) diff --git a/model/flex/asset/bag.obj b/model/flex/asset/bag.obj new file mode 100644 index 00000000..28829e07 --- /dev/null +++ b/model/flex/asset/bag.obj @@ -0,0 +1,4551 @@ +# Blender 4.3.2 +# www.blender.org +o Bag_latest +v 0.165337 0.088503 -0.165337 +v 0.218163 0.088470 -0.060140 +v -0.218163 0.088470 -0.060140 +v -0.165337 0.088503 -0.165337 +v -0.060140 0.088470 -0.218163 +v -0.218163 0.088470 0.060140 +v -0.165337 0.088503 0.165337 +v -0.060140 0.088470 0.218163 +v -0.059294 -0.220792 0.059294 +v -0.059309 -0.057770 0.209322 +v -0.209322 -0.057770 0.059309 +v -0.057428 -0.169496 0.160654 +v -0.141250 -0.148973 0.141250 +v -0.160733 -0.055768 0.160733 +v -0.160654 -0.169496 0.057428 +v -0.218314 0.241300 0.060155 +v -0.060155 0.241300 0.218314 +v -0.165416 0.241300 0.165416 +v -0.059294 -0.220792 -0.059294 +v -0.209322 -0.057770 -0.059309 +v -0.059309 -0.057770 -0.209322 +v -0.160654 -0.169496 -0.057428 +v -0.141250 -0.148973 -0.141250 +v -0.160733 -0.055768 -0.160733 +v -0.057428 -0.169496 -0.160654 +v -0.060155 0.241300 -0.218314 +v -0.218314 0.241300 -0.060155 +v -0.165416 0.241300 -0.165416 +v 0.059294 -0.220792 0.059294 +v 0.209322 -0.057770 0.059309 +v 0.059309 -0.057770 0.209322 +v 0.160654 -0.169496 0.057428 +v 0.141250 -0.148973 0.141250 +v 0.160733 -0.055768 0.160733 +v 0.057428 -0.169496 0.160654 +v 0.060155 0.241300 0.218314 +v 0.218314 0.241300 0.060155 +v 0.165416 0.241300 0.165416 +v 0.059294 -0.220792 -0.059294 +v 0.059309 -0.057770 -0.209322 +v 0.209322 -0.057770 -0.059309 +v 0.057428 -0.169496 -0.160654 +v 0.141250 -0.148973 -0.141250 +v 0.160733 -0.055768 -0.160733 +v 0.160654 -0.169496 -0.057428 +v 0.218314 0.241300 -0.060155 +v 0.060155 0.241300 -0.218314 +v 0.165416 0.241300 -0.165416 +v 0.060140 0.088470 -0.218163 +v 0.060140 0.088470 0.218163 +v 0.165337 0.088503 0.165337 +v 0.218163 0.088470 0.060140 +v 0.216503 0.013241 0.059975 +v 0.164465 0.013629 0.164465 +v 0.059975 0.013241 -0.216503 +v 0.218314 0.164829 -0.060155 +v -0.216503 0.013241 -0.059975 +v -0.164465 0.013629 -0.164465 +v -0.059975 0.013241 0.216503 +v -0.060155 0.164829 -0.218314 +v -0.165416 0.164829 0.165416 +v -0.218314 0.164829 0.060155 +v 0.060155 0.164829 0.218314 +v 0.164465 0.013629 -0.164465 +v -0.114879 -0.202547 0.058123 +v -0.058123 -0.202547 0.114879 +v -0.108513 -0.160697 0.152318 +v -0.152318 -0.160697 0.108513 +v -0.058123 -0.120270 0.191886 +v -0.114920 -0.056513 0.192006 +v -0.152318 -0.113551 0.152318 +v -0.192006 -0.056513 0.114920 +v -0.191886 -0.120270 0.058123 +v -0.058123 -0.202547 -0.114879 +v -0.114879 -0.202547 -0.058123 +v -0.152318 -0.160697 -0.108513 +v -0.108513 -0.160697 -0.152318 +v -0.191886 -0.120270 -0.058123 +v -0.192006 -0.056513 -0.114920 +v -0.152318 -0.113551 -0.152318 +v -0.114920 -0.056513 -0.192006 +v -0.058123 -0.120270 -0.191886 +v 0.058123 -0.202547 0.114879 +v 0.114879 -0.202547 0.058123 +v 0.152318 -0.160697 0.108513 +v 0.108513 -0.160697 0.152318 +v 0.191886 -0.120270 0.058123 +v 0.192006 -0.056513 0.114920 +v 0.152318 -0.113551 0.152318 +v 0.114920 -0.056513 0.192006 +v 0.058123 -0.120270 0.191886 +v 0.114879 -0.202547 -0.058123 +v 0.058123 -0.202547 -0.114879 +v 0.108513 -0.160697 -0.152318 +v 0.152318 -0.160697 -0.108513 +v 0.058123 -0.120270 -0.191886 +v 0.114920 -0.056513 -0.192006 +v 0.152318 -0.113551 -0.152318 +v 0.192006 -0.056513 -0.114920 +v 0.191886 -0.120270 -0.058123 +v -0.059795 -0.226620 -0.000000 +v -0.163514 -0.172515 -0.000000 +v -0.214855 -0.058308 0.000000 +v -0.060155 0.164829 0.218314 +v -0.117320 0.241300 0.199150 +v -0.164465 0.013629 0.164465 +v -0.199150 0.241300 0.117320 +v -0.216503 0.013241 0.059975 +v -0.117320 0.241300 -0.199150 +v -0.059975 0.013241 -0.216503 +v -0.165416 0.164829 -0.165416 +v -0.199150 0.241300 -0.117320 +v -0.218314 0.164829 -0.060155 +v 0.000000 -0.226620 -0.059795 +v 0.000000 -0.172515 -0.163514 +v -0.000000 -0.058308 -0.214855 +v 0.199150 0.241300 -0.117320 +v 0.216503 0.013241 -0.059975 +v 0.165416 0.164829 -0.165416 +v 0.117320 0.241300 -0.199150 +v 0.060155 0.164829 -0.218314 +v 0.059795 -0.226620 0.000000 +v 0.163514 -0.172515 0.000000 +v 0.214855 -0.058308 -0.000000 +v 0.117320 0.241300 0.199150 +v 0.059975 0.013241 0.216503 +v 0.165416 0.164829 0.165416 +v 0.199150 0.241300 0.117320 +v 0.218314 0.164829 0.060155 +v -0.000000 -0.226620 0.059795 +v -0.000000 -0.172515 0.163514 +v 0.000000 -0.058308 0.214855 +v -0.224514 0.241300 -0.000000 +v -0.000000 0.241300 0.224514 +v 0.224514 0.241300 0.000000 +v 0.000000 0.241300 -0.224514 +v 0.199031 0.088491 0.117278 +v 0.117278 0.088491 0.199031 +v 0.117278 0.088491 -0.199031 +v 0.199031 0.088491 -0.117278 +v -0.199031 0.088491 -0.117278 +v -0.117278 0.088491 -0.199031 +v -0.199031 0.088491 0.117278 +v -0.117278 0.088491 0.199031 +v 0.000000 0.088461 -0.224351 +v -0.224351 0.088461 -0.000000 +v 0.224351 0.088461 0.000000 +v -0.000000 0.088461 0.224351 +v -0.000000 0.164829 0.224514 +v 0.224514 0.164829 0.000000 +v 0.199150 0.164829 0.117320 +v -0.224514 0.164829 -0.000000 +v 0.000000 0.164829 -0.224514 +v -0.111199 -0.187977 0.111199 +v -0.111199 -0.116386 0.178083 +v -0.178083 -0.116386 0.111199 +v -0.111199 -0.187977 -0.111199 +v -0.178083 -0.116386 -0.111199 +v -0.111199 -0.116386 -0.178083 +v 0.111199 -0.187977 0.111199 +v 0.178083 -0.116386 0.111199 +v 0.111199 -0.116386 0.178083 +v 0.111199 -0.187977 -0.111199 +v 0.111199 -0.116386 -0.178083 +v 0.178083 -0.116386 -0.111199 +v -0.116320 -0.207182 -0.000000 +v -0.196278 -0.121792 0.000000 +v -0.117320 0.164829 0.199150 +v -0.199150 0.164829 0.117320 +v -0.116820 0.013490 -0.197714 +v -0.197714 0.013490 -0.116820 +v 0.000000 -0.207182 -0.116320 +v -0.000000 -0.121792 -0.196278 +v 0.197714 0.013490 -0.116820 +v 0.116820 0.013490 -0.197714 +v 0.116320 -0.207182 0.000000 +v 0.196278 -0.121792 -0.000000 +v 0.116820 0.013490 0.197714 +v 0.197714 0.013490 0.116820 +v -0.000000 -0.207182 0.116320 +v 0.000000 -0.121792 0.196278 +v 0.000000 -0.232874 -0.000000 +v 0.117320 0.164829 0.199150 +v 0.117320 0.164829 -0.199150 +v 0.199150 0.164829 -0.117320 +v -0.199150 0.164829 -0.117320 +v -0.117320 0.164829 -0.199150 +v -0.197714 0.013490 0.116820 +v -0.116820 0.013490 0.197714 +v -0.000000 0.013132 -0.222566 +v -0.222566 0.013132 0.000000 +v 0.222566 0.013132 -0.000000 +v 0.000000 0.013132 0.222566 +v -0.219550 0.253338 0.060002 +v -0.060407 0.253345 0.219477 +v -0.166250 0.253345 0.166250 +v -0.060407 0.253345 -0.219477 +v -0.219550 0.253338 -0.060002 +v -0.166250 0.253345 -0.166250 +v 0.060407 0.253345 0.219477 +v 0.219550 0.253338 0.060002 +v 0.166250 0.253345 0.166250 +v 0.219550 0.253338 -0.060002 +v 0.060407 0.253345 -0.219477 +v 0.166250 0.253345 -0.166250 +v -0.117855 0.253345 0.200206 +v -0.200206 0.253345 0.117855 +v -0.117855 0.253345 -0.200206 +v -0.200206 0.253345 -0.117855 +v 0.200206 0.253345 -0.117855 +v 0.117855 0.253345 -0.200206 +v 0.117855 0.253345 0.200206 +v 0.200206 0.253345 0.117855 +v -0.225681 0.253439 -0.000000 +v -0.000000 0.253345 0.225706 +v 0.225681 0.253439 0.000000 +v 0.000000 0.253345 -0.225706 +v -0.061416 0.246161 0.224130 +v -0.119994 0.246161 0.204431 +v -0.169585 0.246161 0.169585 +v -0.204431 0.246161 0.119994 +v -0.224162 0.246169 0.062391 +v -0.169585 0.246161 -0.169585 +v -0.119994 0.246161 -0.204431 +v -0.061416 0.246161 -0.224130 +v -0.224162 0.246169 -0.062391 +v -0.204431 0.246161 -0.119994 +v 0.169585 0.246161 -0.169585 +v 0.204431 0.246161 -0.119994 +v 0.224162 0.246169 -0.062391 +v 0.061416 0.246161 -0.224130 +v 0.119994 0.246161 -0.204431 +v 0.169585 0.246161 0.169585 +v 0.119994 0.246161 0.204431 +v 0.061416 0.246161 0.224130 +v 0.224162 0.246169 0.062391 +v 0.204431 0.246161 0.119994 +v -0.000000 0.246161 0.230475 +v 0.000000 0.246161 -0.230474 +v -0.061416 0.251797 0.224130 +v -0.119994 0.251797 0.204431 +v -0.169585 0.251797 0.169585 +v -0.204431 0.251797 0.119994 +v -0.224162 0.251789 0.062391 +v -0.169585 0.251797 -0.169585 +v -0.119994 0.251797 -0.204431 +v -0.061416 0.251797 -0.224130 +v -0.224162 0.251789 -0.062391 +v -0.204431 0.251797 -0.119994 +v 0.169585 0.251797 -0.169585 +v 0.204431 0.251797 -0.119994 +v 0.224162 0.251789 -0.062391 +v 0.061416 0.251797 -0.224130 +v 0.119994 0.251797 -0.204431 +v 0.169585 0.251797 0.169585 +v 0.119994 0.251797 0.204431 +v 0.061416 0.251797 0.224130 +v 0.224162 0.251789 0.062391 +v 0.204431 0.251797 0.119994 +v -0.000000 0.251797 0.230475 +v 0.000000 0.251797 -0.230475 +v -0.232944 0.246602 0.010347 +v -0.232944 0.246602 -0.010348 +v -0.231593 0.244598 -0.000000 +v 0.232944 0.246602 -0.010347 +v 0.232944 0.246602 0.010347 +v 0.231593 0.244598 0.000000 +v -0.232944 0.251353 -0.010348 +v -0.232944 0.251353 0.010347 +v -0.231597 0.253361 -0.000000 +v 0.232944 0.251353 0.010347 +v 0.232944 0.251353 -0.010347 +v 0.231597 0.253361 0.000000 +v 0.213908 -0.023041 0.059723 +v 0.217729 0.050559 0.060097 +v 0.163107 -0.022088 0.163107 +v 0.165109 0.050685 0.165109 +v 0.059723 -0.023041 -0.213908 +v 0.060097 0.050559 -0.217729 +v 0.218314 0.203064 -0.060155 +v 0.218295 0.126607 -0.060153 +v -0.213908 -0.023041 -0.059723 +v -0.217729 0.050559 -0.060097 +v -0.163107 -0.022088 -0.163107 +v -0.165109 0.050685 -0.165109 +v -0.059723 -0.023041 0.213908 +v -0.060097 0.050559 0.217729 +v -0.060155 0.203064 -0.218314 +v -0.060153 0.126607 -0.218295 +v -0.165416 0.203064 0.165416 +v -0.165406 0.126611 0.165406 +v -0.218314 0.203064 0.060155 +v -0.218295 0.126607 0.060153 +v 0.060155 0.203064 0.218314 +v 0.060153 0.126607 0.218295 +v 0.163107 -0.022088 -0.163107 +v 0.165109 0.050685 -0.165109 +v -0.139378 -0.188026 0.057630 +v -0.087903 -0.213353 0.058733 +v -0.058733 -0.213353 0.087903 +v -0.057630 -0.188026 0.139378 +v -0.084330 -0.165751 0.157106 +v -0.128468 -0.154627 0.146574 +v -0.146574 -0.154627 0.128468 +v -0.157106 -0.165751 0.084330 +v -0.057630 -0.146801 0.178139 +v -0.058734 -0.090389 0.202143 +v -0.087930 -0.057168 0.202261 +v -0.139437 -0.055985 0.178239 +v -0.157115 -0.086613 0.157115 +v -0.146574 -0.135280 0.146574 +v -0.178239 -0.055985 0.139437 +v -0.202261 -0.057168 0.087930 +v -0.202143 -0.090389 0.058735 +v -0.178139 -0.146801 0.057630 +v -0.057630 -0.188026 -0.139378 +v -0.058733 -0.213353 -0.087903 +v -0.087903 -0.213353 -0.058733 +v -0.139378 -0.188026 -0.057630 +v -0.157106 -0.165751 -0.084330 +v -0.146574 -0.154627 -0.128468 +v -0.128468 -0.154627 -0.146574 +v -0.084330 -0.165751 -0.157106 +v -0.178139 -0.146801 -0.057630 +v -0.202143 -0.090389 -0.058734 +v -0.202261 -0.057168 -0.087930 +v -0.178239 -0.055985 -0.139437 +v -0.157115 -0.086613 -0.157115 +v -0.146574 -0.135280 -0.146574 +v -0.139437 -0.055985 -0.178239 +v -0.087930 -0.057168 -0.202261 +v -0.058735 -0.090389 -0.202143 +v -0.057630 -0.146801 -0.178139 +v 0.057630 -0.188026 0.139378 +v 0.058733 -0.213353 0.087903 +v 0.087903 -0.213353 0.058733 +v 0.139378 -0.188026 0.057630 +v 0.157106 -0.165751 0.084330 +v 0.146574 -0.154627 0.128468 +v 0.128468 -0.154627 0.146574 +v 0.084330 -0.165751 0.157106 +v 0.178139 -0.146801 0.057630 +v 0.202143 -0.090389 0.058734 +v 0.202261 -0.057168 0.087930 +v 0.178239 -0.055985 0.139437 +v 0.157115 -0.086613 0.157115 +v 0.146574 -0.135280 0.146574 +v 0.139437 -0.055985 0.178239 +v 0.087930 -0.057168 0.202261 +v 0.058734 -0.090389 0.202143 +v 0.057630 -0.146801 0.178139 +v 0.139378 -0.188026 -0.057630 +v 0.087903 -0.213353 -0.058733 +v 0.058733 -0.213353 -0.087903 +v 0.057630 -0.188026 -0.139378 +v 0.084330 -0.165751 -0.157106 +v 0.128468 -0.154627 -0.146574 +v 0.146574 -0.154627 -0.128468 +v 0.157106 -0.165751 -0.084330 +v 0.057630 -0.146801 -0.178139 +v 0.058734 -0.090389 -0.202143 +v 0.087930 -0.057168 -0.202261 +v 0.139437 -0.055985 -0.178239 +v 0.157115 -0.086613 -0.157115 +v 0.146574 -0.135280 -0.146574 +v 0.178239 -0.055985 -0.139437 +v 0.202261 -0.057168 -0.087930 +v 0.202143 -0.090389 -0.058734 +v 0.178139 -0.146801 -0.057630 +v -0.059665 -0.225175 -0.029838 +v -0.059665 -0.225175 0.029838 +v -0.162799 -0.171761 0.029053 +v -0.162799 -0.171761 -0.029053 +v -0.213483 -0.058169 0.029845 +v -0.213483 -0.058169 -0.029845 +v -0.060153 0.126607 0.218295 +v -0.060155 0.203064 0.218314 +v -0.089448 0.241300 0.210450 +v -0.142913 0.241300 0.184180 +v -0.165109 0.050685 0.165109 +v -0.163107 -0.022088 0.163107 +v -0.184180 0.241300 0.142913 +v -0.210450 0.241300 0.089448 +v -0.217729 0.050559 0.060097 +v -0.213908 -0.023041 0.059723 +v -0.142913 0.241300 -0.184180 +v -0.089448 0.241300 -0.210450 +v -0.060097 0.050559 -0.217729 +v -0.059723 -0.023041 -0.213908 +v -0.165406 0.126611 -0.165406 +v -0.165416 0.203064 -0.165416 +v -0.210450 0.241300 -0.089448 +v -0.184180 0.241300 -0.142913 +v -0.218295 0.126607 -0.060153 +v -0.218314 0.203064 -0.060155 +v 0.029838 -0.225175 -0.059665 +v -0.029838 -0.225175 -0.059665 +v -0.029053 -0.171761 -0.162799 +v 0.029053 -0.171761 -0.162799 +v -0.029845 -0.058169 -0.213483 +v 0.029845 -0.058169 -0.213483 +v 0.184180 0.241300 -0.142913 +v 0.210450 0.241300 -0.089448 +v 0.217729 0.050559 -0.060097 +v 0.213908 -0.023041 -0.059723 +v 0.165406 0.126611 -0.165406 +v 0.165416 0.203064 -0.165416 +v 0.089448 0.241300 -0.210450 +v 0.142913 0.241300 -0.184180 +v 0.060153 0.126607 -0.218295 +v 0.060155 0.203064 -0.218314 +v 0.059665 -0.225175 0.029838 +v 0.059665 -0.225175 -0.029838 +v 0.162799 -0.171761 -0.029053 +v 0.162799 -0.171761 0.029053 +v 0.213483 -0.058169 -0.029845 +v 0.213483 -0.058169 0.029845 +v 0.142913 0.241300 0.184180 +v 0.089448 0.241300 0.210450 +v 0.060097 0.050559 0.217729 +v 0.059723 -0.023041 0.213908 +v 0.165406 0.126611 0.165406 +v 0.165416 0.203064 0.165416 +v 0.210450 0.241300 0.089448 +v 0.184180 0.241300 0.142913 +v 0.218295 0.126607 0.060153 +v 0.218314 0.203064 0.060155 +v -0.029838 -0.225175 0.059665 +v 0.029838 -0.225175 0.059665 +v 0.029053 -0.171761 0.162799 +v -0.029053 -0.171761 0.162799 +v 0.029845 -0.058169 0.213483 +v -0.029845 -0.058169 0.213483 +v -0.222973 0.241300 0.030215 +v -0.222973 0.241300 -0.030215 +v 0.030215 0.241300 0.222973 +v -0.030215 0.241300 0.222973 +v 0.222973 0.241300 0.030215 +v 0.222973 0.241300 -0.030215 +v 0.030215 0.241300 -0.222973 +v -0.030215 0.241300 -0.222973 +v 0.184080 0.088499 0.142853 +v 0.210312 0.088480 0.089421 +v 0.089421 0.088480 0.210312 +v 0.142853 0.088499 0.184080 +v 0.142853 0.088499 -0.184080 +v 0.089421 0.088480 -0.210312 +v 0.210312 0.088480 -0.089421 +v 0.184080 0.088499 -0.142853 +v -0.184080 0.088499 -0.142853 +v -0.210312 0.088480 -0.089421 +v -0.089421 0.088480 -0.210312 +v -0.142853 0.088499 -0.184080 +v -0.184080 0.088499 0.142853 +v -0.210312 0.088480 0.089421 +v -0.089421 0.088480 0.210312 +v -0.142853 0.088499 0.184080 +v -0.030208 0.088464 -0.222813 +v 0.030208 0.088464 -0.222813 +v -0.222813 0.088464 0.030208 +v -0.222813 0.088464 -0.030208 +v 0.222813 0.088464 -0.030208 +v 0.222813 0.088464 0.030208 +v 0.030208 0.088464 0.222813 +v -0.030208 0.088464 0.222813 +v 0.030215 0.164829 0.222973 +v -0.000000 0.203064 0.224514 +v -0.030215 0.164829 0.222973 +v -0.000000 0.126606 0.224494 +v 0.222973 0.164829 -0.030215 +v 0.224514 0.203064 0.000000 +v 0.222973 0.164829 0.030215 +v 0.224494 0.126606 0.000000 +v 0.184180 0.164829 0.142913 +v 0.199135 0.126610 0.117315 +v 0.210450 0.164829 0.089448 +v 0.199150 0.203064 0.117320 +v -0.222973 0.164829 0.030215 +v -0.224514 0.203064 -0.000000 +v -0.222973 0.164829 -0.030215 +v -0.224494 0.126606 -0.000000 +v -0.030215 0.164829 -0.222973 +v 0.000000 0.203064 -0.224514 +v 0.030215 0.164829 -0.222973 +v 0.000000 0.126606 -0.224494 +v -0.085723 -0.196615 0.113194 +v -0.109347 -0.176244 0.133609 +v -0.133609 -0.176244 0.109347 +v -0.113194 -0.196615 0.085723 +v -0.113200 -0.088086 0.186282 +v -0.133609 -0.114432 0.166978 +v -0.109347 -0.140712 0.166978 +v -0.085723 -0.118492 0.186267 +v -0.186267 -0.118492 0.085723 +v -0.166978 -0.140712 0.109347 +v -0.166978 -0.114432 0.133609 +v -0.186282 -0.088086 0.113200 +v -0.113194 -0.196615 -0.085723 +v -0.133609 -0.176244 -0.109347 +v -0.109347 -0.176244 -0.133609 +v -0.085723 -0.196615 -0.113194 +v -0.186282 -0.088086 -0.113200 +v -0.166978 -0.114432 -0.133609 +v -0.166978 -0.140712 -0.109347 +v -0.186267 -0.118492 -0.085723 +v -0.085723 -0.118492 -0.186267 +v -0.109347 -0.140712 -0.166978 +v -0.133609 -0.114432 -0.166978 +v -0.113200 -0.088086 -0.186282 +v 0.113194 -0.196615 0.085723 +v 0.133609 -0.176244 0.109347 +v 0.109347 -0.176244 0.133609 +v 0.085723 -0.196615 0.113194 +v 0.186282 -0.088086 0.113200 +v 0.166978 -0.114432 0.133609 +v 0.166978 -0.140712 0.109347 +v 0.186267 -0.118492 0.085723 +v 0.085723 -0.118492 0.186267 +v 0.109347 -0.140712 0.166978 +v 0.133609 -0.114432 0.166978 +v 0.113200 -0.088086 0.186282 +v 0.085723 -0.196615 -0.113194 +v 0.109347 -0.176244 -0.133609 +v 0.133609 -0.176245 -0.109347 +v 0.113194 -0.196615 -0.085723 +v 0.113200 -0.088086 -0.186282 +v 0.133609 -0.114432 -0.166978 +v 0.109347 -0.140712 -0.166978 +v 0.085723 -0.118492 -0.186267 +v 0.186267 -0.118492 -0.085723 +v 0.166978 -0.140712 -0.109347 +v 0.166978 -0.114432 -0.133609 +v 0.186282 -0.088086 -0.113200 +v -0.088807 -0.218665 -0.000000 +v -0.115952 -0.206034 0.029338 +v -0.141485 -0.191873 -0.000000 +v -0.115952 -0.206034 -0.029338 +v -0.181784 -0.149025 0.000000 +v -0.195190 -0.121404 0.029338 +v -0.207177 -0.091345 0.000000 +v -0.195190 -0.121404 -0.029338 +v -0.089448 0.164829 0.210450 +v -0.117320 0.203064 0.199150 +v -0.142913 0.164829 0.184180 +v -0.117315 0.126610 0.199135 +v -0.184180 0.164829 0.142913 +v -0.199150 0.203064 0.117320 +v -0.210450 0.164829 0.089448 +v -0.199135 0.126610 0.117315 +v -0.089127 0.013362 -0.208803 +v -0.116114 -0.022433 -0.195654 +v -0.142199 0.013590 -0.182982 +v -0.117159 0.050640 -0.198686 +v -0.182982 0.013590 -0.142199 +v -0.195654 -0.022433 -0.116114 +v -0.208803 0.013362 -0.089127 +v -0.198686 0.050640 -0.117159 +v 0.000000 -0.218665 -0.088807 +v -0.029338 -0.206034 -0.115952 +v 0.000000 -0.191873 -0.141485 +v 0.029338 -0.206034 -0.115952 +v -0.000000 -0.149025 -0.181784 +v -0.029338 -0.121404 -0.195190 +v -0.000000 -0.091345 -0.207177 +v 0.029338 -0.121404 -0.195190 +v 0.208803 0.013362 -0.089127 +v 0.195654 -0.022433 -0.116114 +v 0.182982 0.013590 -0.142199 +v 0.198686 0.050640 -0.117159 +v 0.142199 0.013590 -0.182982 +v 0.116114 -0.022433 -0.195654 +v 0.089127 0.013362 -0.208803 +v 0.117159 0.050640 -0.198686 +v 0.088807 -0.218665 0.000000 +v 0.115952 -0.206034 -0.029338 +v 0.141485 -0.191873 0.000000 +v 0.115952 -0.206034 0.029338 +v 0.181784 -0.149025 -0.000000 +v 0.195190 -0.121404 -0.029338 +v 0.207177 -0.091345 -0.000000 +v 0.195190 -0.121404 0.029338 +v 0.089127 0.013362 0.208803 +v 0.116114 -0.022433 0.195654 +v 0.142199 0.013590 0.182982 +v 0.117159 0.050640 0.198686 +v 0.182982 0.013590 0.142199 +v 0.195654 -0.022433 0.116114 +v 0.208803 0.013362 0.089127 +v 0.198686 0.050640 0.117159 +v -0.000000 -0.218665 0.088807 +v 0.029338 -0.206034 0.115952 +v -0.000000 -0.191873 0.141485 +v -0.029338 -0.206034 0.115952 +v 0.000000 -0.149025 0.181784 +v 0.029338 -0.121404 0.195190 +v 0.000000 -0.091345 0.207177 +v -0.029338 -0.121404 0.195190 +v 0.000000 -0.231321 -0.030056 +v 0.030056 -0.231321 0.000000 +v -0.000000 -0.231321 0.030056 +v -0.030056 -0.231321 -0.000000 +v 0.089448 0.164829 0.210450 +v 0.117315 0.126610 0.199135 +v 0.142913 0.164829 0.184180 +v 0.117320 0.203064 0.199150 +v 0.142913 0.164829 -0.184180 +v 0.117315 0.126610 -0.199135 +v 0.089448 0.164829 -0.210450 +v 0.117320 0.203064 -0.199150 +v 0.210450 0.164829 -0.089448 +v 0.199135 0.126610 -0.117315 +v 0.184180 0.164829 -0.142913 +v 0.199150 0.203064 -0.117320 +v -0.184180 0.164829 -0.142913 +v -0.199135 0.126610 -0.117315 +v -0.210450 0.164829 -0.089448 +v -0.199150 0.203064 -0.117320 +v -0.089448 0.164829 -0.210450 +v -0.117315 0.126610 -0.199135 +v -0.142913 0.164829 -0.184180 +v -0.117320 0.203064 -0.199150 +v -0.182982 0.013590 0.142199 +v -0.198686 0.050640 0.117159 +v -0.208803 0.013362 0.089127 +v -0.195654 -0.022433 0.116114 +v -0.089127 0.013362 0.208803 +v -0.117159 0.050640 0.198686 +v -0.142199 0.013590 0.182982 +v -0.116114 -0.022433 0.195654 +v -0.030136 0.013160 -0.221059 +v -0.000000 0.050524 -0.223885 +v 0.030136 0.013160 -0.221059 +v -0.000000 -0.023307 -0.219775 +v -0.221059 0.013160 0.030136 +v -0.223885 0.050524 0.000000 +v -0.221059 0.013160 -0.030136 +v -0.219775 -0.023307 0.000000 +v 0.221059 0.013160 -0.030136 +v 0.223885 0.050524 -0.000000 +v 0.221059 0.013160 0.030136 +v 0.219775 -0.023307 -0.000000 +v 0.030136 0.013160 0.221059 +v 0.000000 0.050524 0.223885 +v -0.030136 0.013160 0.221059 +v 0.000000 -0.023307 0.219775 +v -0.089836 0.253345 0.211572 +v -0.143601 0.253345 0.185139 +v -0.185139 0.253345 0.143601 +v -0.211581 0.253344 0.089786 +v -0.143601 0.253345 -0.185139 +v -0.089836 0.253345 -0.211572 +v -0.211581 0.253344 -0.089786 +v -0.185139 0.253345 -0.143601 +v 0.185139 0.253345 -0.143601 +v 0.211581 0.253344 -0.089786 +v 0.089836 0.253345 -0.211572 +v 0.143601 0.253345 -0.185139 +v 0.143601 0.253345 0.185139 +v 0.089836 0.253345 0.211572 +v 0.211581 0.253344 0.089786 +v 0.185139 0.253345 0.143601 +v -0.224288 0.253354 0.029478 +v -0.224288 0.253354 -0.029478 +v 0.030338 0.253345 0.224158 +v -0.030338 0.253345 0.224158 +v 0.224288 0.253354 0.029478 +v 0.224288 0.253354 -0.029478 +v 0.030338 0.253345 -0.224158 +v -0.030338 0.253345 -0.224158 +v -0.118858 0.243635 -0.202186 +v -0.167813 0.243635 -0.167813 +v 0.167917 0.253916 -0.167917 +v 0.202318 0.253916 -0.118925 +v 0.221960 0.253899 -0.060260 +v 0.221805 0.243651 -0.060279 +v -0.167917 0.253916 -0.167917 +v 0.167813 0.243635 0.167813 +v 0.221960 0.253899 0.060260 +v -0.221960 0.253899 -0.060260 +v -0.202318 0.253916 -0.118925 +v 0.202186 0.243635 0.118858 +v 0.221805 0.243651 0.060279 +v -0.060912 0.253916 0.221804 +v -0.060880 0.243635 0.221658 +v -0.000000 0.243635 0.227941 +v -0.221805 0.243651 0.060279 +v -0.202186 0.243635 0.118858 +v -0.118925 0.253916 -0.202318 +v -0.060911 0.253916 -0.221804 +v 0.060911 0.253916 0.221804 +v -0.000000 0.253916 0.228090 +v -0.091392 0.246161 0.216061 +v -0.146351 0.246161 0.188974 +v -0.188974 0.246162 0.146351 +v -0.216065 0.246162 0.091514 +v -0.146351 0.246161 -0.188974 +v -0.091392 0.246161 -0.216061 +v -0.216065 0.246162 -0.091514 +v -0.188974 0.246161 -0.146351 +v 0.188974 0.246161 -0.146351 +v 0.216065 0.246162 -0.091514 +v 0.091392 0.246161 -0.216061 +v 0.146351 0.246161 -0.188974 +v 0.146351 0.246161 0.188974 +v 0.091392 0.246161 0.216061 +v 0.216065 0.246162 0.091514 +v 0.188974 0.246161 0.146351 +v 0.030834 0.246161 0.228899 +v -0.030834 0.246161 0.228899 +v 0.030834 0.246161 -0.228899 +v -0.030834 0.246161 -0.228899 +v -0.091392 0.251797 0.216061 +v -0.146351 0.251797 0.188974 +v -0.188974 0.251797 0.146351 +v -0.216065 0.251796 0.091514 +v -0.146351 0.251797 -0.188974 +v -0.091392 0.251797 -0.216061 +v -0.216065 0.251796 -0.091514 +v -0.188974 0.251797 -0.146351 +v 0.188974 0.251797 -0.146351 +v 0.216065 0.251796 -0.091514 +v 0.091392 0.251797 -0.216061 +v 0.146351 0.251797 -0.188974 +v 0.146351 0.251797 0.188974 +v 0.091392 0.251797 0.216061 +v 0.216065 0.251796 0.091514 +v 0.188974 0.251797 0.146351 +v 0.030834 0.251797 0.228899 +v -0.030834 0.251797 0.228899 +v 0.030834 0.251797 -0.228899 +v -0.030834 0.251797 -0.228899 +v 0.061605 0.248977 -0.225002 +v 0.000000 0.248977 -0.231369 +v 0.224964 0.248977 -0.063401 +v 0.205223 0.248977 -0.120395 +v 0.120395 0.248977 0.205223 +v 0.170210 0.248977 0.170210 +v -0.061605 0.248977 -0.225002 +v 0.061605 0.248977 0.225002 +v -0.205223 0.248977 0.120395 +v -0.170210 0.248977 0.170210 +v -0.224964 0.248977 0.063401 +v -0.224964 0.248977 -0.063401 +v -0.000000 0.248977 0.231369 +v -0.205223 0.248977 -0.120395 +v -0.061605 0.248977 0.225002 +v -0.120395 0.248977 0.205223 +v -0.170210 0.248977 -0.170210 +v 0.120395 0.248977 -0.205223 +v -0.120395 0.248977 -0.205223 +v 0.224964 0.248977 0.063401 +v 0.170210 0.248977 -0.170210 +v 0.205223 0.248977 0.120395 +v 0.000000 0.243635 -0.227941 +v 0.060880 0.243635 -0.221658 +v 0.060912 0.253916 -0.221804 +v 0.000000 0.253916 -0.228090 +v -0.060880 0.243635 -0.221658 +v 0.118925 0.253916 -0.202318 +v 0.167813 0.243635 -0.167813 +v 0.202186 0.243635 -0.118858 +v 0.118925 0.253916 0.202318 +v 0.167917 0.253916 0.167917 +v 0.118858 0.243635 0.202186 +v -0.118925 0.253916 0.202318 +v -0.118858 0.243635 0.202186 +v 0.202318 0.253916 0.118925 +v -0.221805 0.243651 -0.060279 +v -0.202186 0.243635 -0.118858 +v 0.060880 0.243635 0.221658 +v -0.167917 0.253916 0.167917 +v -0.167813 0.243635 0.167813 +v -0.202318 0.253916 0.118925 +v -0.221960 0.253899 0.060260 +v 0.118858 0.243635 -0.202186 +v -0.000000 0.248573 0.224663 +v 0.060187 0.248573 0.218459 +v 0.117387 0.248573 0.199282 +v 0.165520 0.248573 0.165520 +v 0.199282 0.248573 0.117387 +v 0.218469 0.248573 0.060136 +v 0.224660 0.248585 0.000000 +v 0.218469 0.248573 -0.060136 +v 0.199282 0.248573 -0.117387 +v 0.165520 0.248573 -0.165520 +v 0.117387 0.248573 -0.199282 +v 0.060187 0.248573 -0.218459 +v 0.000000 0.248573 -0.224663 +v -0.060187 0.248573 -0.218459 +v -0.117387 0.248573 -0.199282 +v -0.165520 0.248573 -0.165520 +v -0.199282 0.248573 -0.117387 +v -0.218469 0.248573 -0.060136 +v -0.224660 0.248585 -0.000000 +v -0.218469 0.248573 0.060136 +v -0.199282 0.248573 0.117387 +v -0.165520 0.248573 0.165520 +v -0.117387 0.248573 0.199282 +v -0.060187 0.248573 0.218459 +v -0.232100 0.245093 0.005950 +v -0.232100 0.245093 -0.005950 +v 0.232100 0.245093 -0.005950 +v 0.232100 0.245093 0.005950 +v -0.232102 0.252864 -0.005950 +v -0.232102 0.252864 0.005950 +v 0.232102 0.252864 0.005950 +v 0.232102 0.252864 -0.005950 +v -0.233281 0.248977 -0.011900 +v -0.233281 0.248977 0.011900 +v 0.233281 0.248977 -0.011900 +v 0.233281 0.248977 0.011900 +v -0.228028 0.243197 -0.000000 +v -0.229292 0.246251 0.034630 +v -0.229292 0.251706 0.034630 +v -0.229292 0.246251 -0.034630 +v -0.229292 0.251706 -0.034630 +v 0.228028 0.243197 0.000000 +v 0.229292 0.246251 0.034630 +v 0.229292 0.246251 -0.034630 +v 0.229292 0.251706 -0.034630 +v 0.229292 0.251706 0.034630 +v -0.228175 0.254366 -0.000000 +v 0.228175 0.254366 0.000000 +v 0.030214 0.126606 0.222953 +v 0.030215 0.203064 0.222973 +v -0.030215 0.203064 0.222973 +v -0.030214 0.126606 0.222953 +v 0.222953 0.126606 -0.030214 +v 0.222973 0.203064 -0.030215 +v 0.222973 0.203064 0.030215 +v 0.222953 0.126606 0.030214 +v 0.184180 0.203064 0.142913 +v 0.184168 0.126611 0.142906 +v 0.210432 0.126608 0.089444 +v 0.210450 0.203064 0.089448 +v -0.222953 0.126606 0.030214 +v -0.222973 0.203064 0.030215 +v -0.222973 0.203064 -0.030215 +v -0.222953 0.126606 -0.030214 +v -0.030214 0.126606 -0.222953 +v -0.030215 0.203064 -0.222973 +v 0.030215 0.203064 -0.222973 +v 0.030214 0.126606 -0.222953 +v -0.086874 -0.206552 0.086874 +v -0.084746 -0.183154 0.136835 +v -0.130250 -0.167084 0.130250 +v -0.136835 -0.183154 0.084746 +v -0.086878 -0.089302 0.195698 +v -0.136842 -0.087053 0.173536 +v -0.130250 -0.137165 0.158310 +v -0.084746 -0.144117 0.173524 +v -0.195698 -0.089302 0.086878 +v -0.173524 -0.144117 0.084746 +v -0.158310 -0.137165 0.130250 +v -0.173536 -0.087053 0.136842 +v -0.086874 -0.206552 -0.086874 +v -0.136835 -0.183154 -0.084746 +v -0.130250 -0.167084 -0.130250 +v -0.084746 -0.183154 -0.136835 +v -0.195698 -0.089302 -0.086878 +v -0.173536 -0.087053 -0.136842 +v -0.158310 -0.137165 -0.130250 +v -0.173524 -0.144117 -0.084746 +v -0.086878 -0.089302 -0.195698 +v -0.084746 -0.144117 -0.173524 +v -0.130250 -0.137165 -0.158310 +v -0.136842 -0.087053 -0.173536 +v 0.086874 -0.206552 0.086874 +v 0.136835 -0.183154 0.084746 +v 0.130250 -0.167084 0.130250 +v 0.084746 -0.183154 0.136835 +v 0.195698 -0.089302 0.086878 +v 0.173536 -0.087053 0.136842 +v 0.158310 -0.137165 0.130250 +v 0.173524 -0.144117 0.084746 +v 0.086878 -0.089302 0.195698 +v 0.084746 -0.144117 0.173524 +v 0.130250 -0.137165 0.158310 +v 0.136842 -0.087053 0.173536 +v 0.086874 -0.206552 -0.086874 +v 0.084746 -0.183154 -0.136835 +v 0.130250 -0.167084 -0.130250 +v 0.136835 -0.183154 -0.084746 +v 0.086878 -0.089302 -0.195698 +v 0.136842 -0.087053 -0.173536 +v 0.130250 -0.137165 -0.158310 +v 0.084746 -0.144117 -0.173524 +v 0.195698 -0.089302 -0.086878 +v 0.173524 -0.144117 -0.084746 +v 0.158310 -0.137165 -0.130250 +v 0.173536 -0.087053 -0.136842 +v -0.088574 -0.217349 -0.029597 +v -0.088574 -0.217349 0.029597 +v -0.140954 -0.190917 0.029135 +v -0.140954 -0.190917 -0.029135 +v -0.180879 -0.148465 -0.029135 +v -0.180879 -0.148465 0.029135 +v -0.205930 -0.091098 0.029597 +v -0.205930 -0.091098 -0.029597 +v -0.089444 0.126608 0.210432 +v -0.089448 0.203064 0.210450 +v -0.142913 0.203064 0.184180 +v -0.142906 0.126611 0.184168 +v -0.184168 0.126611 0.142906 +v -0.184180 0.203064 0.142913 +v -0.210450 0.203064 0.089448 +v -0.210432 0.126608 0.089444 +v -0.089344 0.050598 -0.209918 +v -0.088678 -0.022747 -0.206441 +v -0.141184 -0.022187 -0.181266 +v -0.142682 0.050672 -0.183793 +v -0.183793 0.050672 -0.142682 +v -0.181266 -0.022187 -0.141184 +v -0.206441 -0.022747 -0.088677 +v -0.209918 0.050598 -0.089344 +v 0.029597 -0.217349 -0.088574 +v -0.029597 -0.217349 -0.088574 +v -0.029135 -0.190917 -0.140954 +v 0.029135 -0.190917 -0.140954 +v 0.029135 -0.148465 -0.180879 +v -0.029135 -0.148465 -0.180879 +v -0.029597 -0.091098 -0.205930 +v 0.029597 -0.091098 -0.205930 +v 0.209918 0.050598 -0.089344 +v 0.206441 -0.022747 -0.088678 +v 0.181266 -0.022187 -0.141184 +v 0.183793 0.050672 -0.142682 +v 0.142682 0.050672 -0.183793 +v 0.141184 -0.022187 -0.181266 +v 0.088677 -0.022747 -0.206441 +v 0.089344 0.050598 -0.209918 +v 0.088574 -0.217349 0.029597 +v 0.088574 -0.217349 -0.029597 +v 0.140954 -0.190917 -0.029135 +v 0.140954 -0.190917 0.029135 +v 0.180879 -0.148465 0.029135 +v 0.180879 -0.148465 -0.029135 +v 0.205930 -0.091098 -0.029597 +v 0.205930 -0.091098 0.029597 +v 0.089344 0.050598 0.209918 +v 0.088678 -0.022747 0.206441 +v 0.141184 -0.022187 0.181266 +v 0.142682 0.050672 0.183793 +v 0.183793 0.050672 0.142682 +v 0.181266 -0.022187 0.141184 +v 0.206441 -0.022747 0.088677 +v 0.209918 0.050598 0.089344 +v -0.029597 -0.217349 0.088574 +v 0.029597 -0.217349 0.088574 +v 0.029135 -0.190917 0.140954 +v -0.029135 -0.190917 0.140954 +v -0.029135 -0.148465 0.180879 +v 0.029135 -0.148465 0.180879 +v 0.029597 -0.091098 0.205930 +v -0.029597 -0.091098 0.205930 +v -0.030000 -0.229795 -0.030000 +v 0.030000 -0.229795 -0.030000 +v 0.030000 -0.229795 0.030000 +v -0.030000 -0.229795 0.030000 +v 0.089448 0.203064 0.210450 +v 0.089444 0.126608 0.210432 +v 0.142906 0.126611 0.184168 +v 0.142913 0.203064 0.184180 +v 0.142913 0.203064 -0.184180 +v 0.142906 0.126611 -0.184168 +v 0.089444 0.126608 -0.210432 +v 0.089448 0.203064 -0.210450 +v 0.210450 0.203064 -0.089448 +v 0.210432 0.126608 -0.089444 +v 0.184168 0.126611 -0.142906 +v 0.184180 0.203064 -0.142913 +v -0.184180 0.203064 -0.142913 +v -0.184168 0.126611 -0.142906 +v -0.210432 0.126608 -0.089444 +v -0.210450 0.203064 -0.089448 +v -0.089448 0.203064 -0.210450 +v -0.089444 0.126608 -0.210432 +v -0.142906 0.126611 -0.184168 +v -0.142913 0.203064 -0.184180 +v -0.181266 -0.022187 0.141184 +v -0.183793 0.050672 0.142682 +v -0.209918 0.050598 0.089344 +v -0.206441 -0.022747 0.088677 +v -0.088677 -0.022747 0.206441 +v -0.089344 0.050598 0.209918 +v -0.142682 0.050672 0.183793 +v -0.141184 -0.022187 0.181266 +v -0.030025 -0.023238 -0.218319 +v -0.030189 0.050533 -0.222355 +v 0.030189 0.050533 -0.222355 +v 0.030025 -0.023238 -0.218319 +v -0.218319 -0.023238 0.030025 +v -0.222355 0.050533 0.030189 +v -0.222355 0.050533 -0.030189 +v -0.218319 -0.023238 -0.030025 +v 0.218319 -0.023238 -0.030025 +v 0.222355 0.050533 -0.030189 +v 0.222355 0.050533 0.030189 +v 0.218319 -0.023238 0.030025 +v 0.030025 -0.023238 0.218319 +v 0.030189 0.050533 0.222355 +v -0.030189 0.050533 0.222355 +v -0.030025 -0.023238 0.218319 +v 0.144976 0.253916 -0.187057 +v 0.186937 0.243635 -0.144890 +v 0.090614 0.253916 -0.213817 +v -0.030586 0.253916 -0.226529 +v -0.030571 0.243635 -0.226381 +v -0.090566 0.243635 -0.213676 +v 0.213836 0.253914 -0.090533 +v 0.030586 0.253916 -0.226529 +v 0.030571 0.243635 -0.226381 +v -0.144890 0.243635 -0.186937 +v 0.187057 0.253916 -0.144976 +v -0.227517 0.253912 0.026596 +v -0.187057 0.253916 -0.144976 +v 0.186937 0.243635 0.144890 +v 0.227517 0.253912 -0.026596 +v 0.229939 0.248977 -0.036726 +v -0.213836 0.253914 -0.090533 +v 0.213695 0.243637 0.090490 +v -0.030586 0.253916 0.226529 +v -0.030571 0.243635 0.226381 +v -0.213695 0.243637 0.090490 +v -0.090614 0.253916 -0.213817 +v 0.030586 0.253916 0.226529 +v 0.030927 0.248977 -0.229788 +v 0.216898 0.248977 -0.091908 +v 0.146867 0.248977 0.189693 +v -0.030927 0.248977 -0.229788 +v 0.091684 0.248977 0.216903 +v -0.189693 0.248977 0.146867 +v -0.227397 0.243755 -0.026662 +v -0.216898 0.248977 0.091908 +v 0.227397 0.243755 0.026662 +v 0.030927 0.248977 0.229788 +v -0.216898 0.248977 -0.091908 +v -0.030927 0.248977 0.229788 +v -0.091684 0.248977 0.216903 +v -0.189693 0.248977 -0.146867 +v 0.091684 0.248977 -0.216903 +v -0.146867 0.248977 -0.189693 +v 0.227397 0.243755 -0.026662 +v -0.146867 0.248977 0.189693 +v 0.146867 0.248977 -0.189693 +v 0.216898 0.248977 0.091908 +v -0.091684 0.248977 -0.216903 +v 0.229939 0.248977 0.036726 +v 0.189693 0.248977 -0.146867 +v 0.189693 0.248977 0.146867 +v 0.213695 0.243637 -0.090490 +v 0.144976 0.253916 0.187057 +v 0.090614 0.253916 0.213817 +v 0.144890 0.243635 0.186937 +v -0.090614 0.253916 0.213817 +v -0.090566 0.243635 0.213676 +v 0.213836 0.253914 0.090533 +v -0.213695 0.243637 -0.090490 +v 0.090566 0.243635 0.213676 +v -0.144976 0.253916 0.187057 +v -0.144890 0.243635 0.186937 +v 0.187057 0.253916 0.144976 +v -0.186937 0.243635 -0.144890 +v -0.187057 0.253916 0.144976 +v -0.229939 0.248977 0.036726 +v -0.227517 0.253912 -0.026596 +v -0.213836 0.253914 0.090533 +v 0.090566 0.243635 -0.213676 +v -0.229939 0.248977 -0.036726 +v 0.227517 0.253912 0.026596 +v -0.144976 0.253916 -0.187057 +v -0.186937 0.243635 0.144890 +v 0.144890 0.243635 -0.186937 +v 0.030571 0.243635 0.226381 +v 0.030230 0.248573 0.223121 +v 0.089496 0.248573 0.210590 +v 0.142999 0.248573 0.184300 +v 0.184300 0.248573 0.142999 +v 0.210591 0.248573 0.089490 +v 0.223137 0.248575 0.030123 +v 0.223137 0.248575 -0.030123 +v 0.210591 0.248573 -0.089490 +v 0.184300 0.248573 -0.142999 +v 0.142999 0.248573 -0.184300 +v 0.089496 0.248573 -0.210590 +v 0.030230 0.248573 -0.223121 +v -0.030230 0.248573 -0.223121 +v -0.089496 0.248573 -0.210590 +v -0.142999 0.248573 -0.184300 +v -0.184300 0.248573 -0.142999 +v -0.210591 0.248573 -0.089490 +v -0.223137 0.248575 -0.030123 +v -0.223137 0.248575 0.030123 +v -0.210591 0.248573 0.089490 +v -0.184300 0.248573 0.142999 +v -0.142999 0.248573 0.184300 +v -0.089496 0.248573 0.210590 +v -0.030230 0.248573 0.223121 +v -0.227397 0.243755 0.026662 +vn 0.7071 -0.0056 -0.7071 +vn 0.9784 -0.0074 -0.2064 +vn -0.9784 -0.0074 -0.2064 +vn -0.7071 -0.0056 -0.7071 +vn -0.2064 -0.0074 -0.9784 +vn -0.9784 -0.0074 0.2064 +vn -0.7071 -0.0056 0.7071 +vn -0.2064 -0.0074 0.9784 +vn -0.1978 -0.9601 0.1978 +vn -0.1891 -0.1718 0.9668 +vn -0.9668 -0.1718 0.1891 +vn -0.1503 -0.6779 0.7197 +vn -0.5895 -0.5522 0.5895 +vn -0.7008 -0.1329 0.7008 +vn -0.7197 -0.6779 0.1503 +vn -0.5551 -0.8229 0.1211 +vn -0.1185 -0.8197 0.5604 +vn -0.4068 -0.8179 0.4068 +vn -0.1978 -0.9601 -0.1978 +vn -0.9668 -0.1718 -0.1891 +vn -0.1891 -0.1718 -0.9668 +vn -0.7197 -0.6779 -0.1503 +vn -0.5895 -0.5522 -0.5895 +vn -0.7008 -0.1329 -0.7008 +vn -0.1503 -0.6779 -0.7197 +vn -0.1185 -0.8197 -0.5604 +vn -0.5551 -0.8229 -0.1211 +vn -0.4068 -0.8179 -0.4068 +vn 0.1978 -0.9601 0.1978 +vn 0.9668 -0.1718 0.1891 +vn 0.1891 -0.1718 0.9668 +vn 0.7197 -0.6779 0.1503 +vn 0.5895 -0.5522 0.5895 +vn 0.7008 -0.1329 0.7008 +vn 0.1503 -0.6779 0.7197 +vn 0.1185 -0.8197 0.5604 +vn 0.5551 -0.8229 0.1211 +vn 0.4068 -0.8179 0.4068 +vn 0.1978 -0.9601 -0.1978 +vn 0.1891 -0.1718 -0.9668 +vn 0.9668 -0.1718 -0.1891 +vn 0.1503 -0.6779 -0.7197 +vn 0.5895 -0.5522 -0.5895 +vn 0.7008 -0.1329 -0.7008 +vn 0.7197 -0.6779 -0.1503 +vn 0.5551 -0.8229 -0.1211 +vn 0.1185 -0.8197 -0.5604 +vn 0.4068 -0.8179 -0.4068 +vn 0.2064 -0.0074 -0.9784 +vn 0.2064 -0.0074 0.9784 +vn 0.7071 -0.0056 0.7071 +vn 0.9784 -0.0074 0.2064 +vn 0.9779 -0.0518 0.2027 +vn 0.7066 -0.0396 0.7066 +vn 0.2027 -0.0518 -0.9779 +vn 0.9784 -0.0002 -0.2068 +vn -0.9779 -0.0518 -0.2027 +vn -0.7066 -0.0396 -0.7066 +vn -0.2027 -0.0518 0.9779 +vn -0.2068 -0.0002 -0.9784 +vn -0.7071 -0.0002 0.7071 +vn -0.9784 -0.0002 0.2068 +vn 0.2068 -0.0002 0.9784 +vn 0.7066 -0.0396 -0.7066 +vn -0.4372 -0.8832 0.1697 +vn -0.1697 -0.8832 0.4372 +vn -0.3358 -0.6456 0.6859 +vn -0.6859 -0.6456 0.3358 +vn -0.1643 -0.3895 0.9063 +vn -0.4204 -0.1479 0.8952 +vn -0.6742 -0.3016 0.6742 +vn -0.8952 -0.1479 0.4204 +vn -0.9063 -0.3895 0.1643 +vn -0.1697 -0.8832 -0.4372 +vn -0.4372 -0.8832 -0.1697 +vn -0.6859 -0.6456 -0.3358 +vn -0.3358 -0.6456 -0.6859 +vn -0.9063 -0.3895 -0.1643 +vn -0.8952 -0.1479 -0.4204 +vn -0.6742 -0.3016 -0.6742 +vn -0.4204 -0.1479 -0.8952 +vn -0.1643 -0.3895 -0.9063 +vn 0.1697 -0.8832 0.4372 +vn 0.4372 -0.8832 0.1697 +vn 0.6859 -0.6456 0.3358 +vn 0.3358 -0.6456 0.6859 +vn 0.9063 -0.3895 0.1643 +vn 0.8952 -0.1479 0.4204 +vn 0.6742 -0.3016 0.6742 +vn 0.4204 -0.1479 0.8952 +vn 0.1643 -0.3895 0.9063 +vn 0.4372 -0.8832 -0.1697 +vn 0.1697 -0.8832 -0.4372 +vn 0.3358 -0.6456 -0.6859 +vn 0.6859 -0.6456 -0.3358 +vn 0.1643 -0.3895 -0.9063 +vn 0.4204 -0.1479 -0.8952 +vn 0.6742 -0.3016 -0.6742 +vn 0.8952 -0.1479 -0.4204 +vn 0.9063 -0.3895 -0.1643 +vn -0.2092 -0.9779 -0.0000 +vn -0.7279 -0.6857 -0.0000 +vn -0.9833 -0.1818 -0.0000 +vn -0.2068 -0.0002 0.9784 +vn -0.2536 -0.8185 0.5155 +vn -0.7066 -0.0396 0.7066 +vn -0.5159 -0.8182 0.2537 +vn -0.9779 -0.0518 0.2027 +vn -0.2536 -0.8185 -0.5155 +vn -0.2027 -0.0518 -0.9779 +vn -0.7071 -0.0002 -0.7071 +vn -0.5159 -0.8182 -0.2537 +vn -0.9784 -0.0002 -0.2068 +vn -0.0000 -0.9779 -0.2092 +vn -0.0000 -0.6857 -0.7279 +vn -0.0000 -0.1818 -0.9833 +vn 0.5159 -0.8182 -0.2537 +vn 0.9779 -0.0518 -0.2027 +vn 0.7071 -0.0002 -0.7071 +vn 0.2536 -0.8185 -0.5155 +vn 0.2068 -0.0002 -0.9784 +vn 0.2092 -0.9779 -0.0000 +vn 0.7279 -0.6857 -0.0000 +vn 0.9833 -0.1818 -0.0000 +vn 0.2536 -0.8185 0.5155 +vn 0.2027 -0.0518 0.9779 +vn 0.7071 -0.0002 0.7071 +vn 0.5159 -0.8182 0.2537 +vn 0.9784 -0.0002 0.2068 +vn -0.0000 -0.9779 0.2092 +vn -0.0000 -0.6857 0.7279 +vn -0.0000 -0.1818 0.9833 +vn -0.4986 -0.8668 -0.0000 +vn -0.0000 -0.8202 0.5721 +vn 0.4986 -0.8668 -0.0000 +vn -0.0000 -0.8202 -0.5721 +vn 0.8975 -0.0063 0.4410 +vn 0.4410 -0.0063 0.8975 +vn 0.4410 -0.0063 -0.8975 +vn 0.8975 -0.0063 -0.4410 +vn -0.8975 -0.0063 -0.4410 +vn -0.4410 -0.0063 -0.8975 +vn -0.8975 -0.0063 0.4410 +vn -0.4410 -0.0063 0.8975 +vn -0.0000 -0.0079 -1.0000 +vn -1.0000 -0.0079 -0.0000 +vn 1.0000 -0.0079 -0.0000 +vn -0.0000 -0.0079 1.0000 +vn -0.0000 -0.0003 1.0000 +vn 1.0000 -0.0003 -0.0000 +vn 0.8973 -0.0002 0.4414 +vn -1.0000 -0.0003 -0.0000 +vn -0.0000 -0.0003 -1.0000 +vn -0.3877 -0.8363 0.3877 +vn -0.3765 -0.3450 0.8598 +vn -0.8598 -0.3450 0.3765 +vn -0.3877 -0.8363 -0.3877 +vn -0.8598 -0.3450 -0.3765 +vn -0.3765 -0.3450 -0.8598 +vn 0.3877 -0.8363 0.3877 +vn 0.8598 -0.3450 0.3765 +vn 0.3765 -0.3450 0.8598 +vn 0.3877 -0.8363 -0.3877 +vn 0.3765 -0.3450 -0.8598 +vn 0.8598 -0.3450 -0.3765 +vn -0.4522 -0.8919 -0.0000 +vn -0.9151 -0.4032 -0.0000 +vn -0.4414 -0.0002 0.8973 +vn -0.8973 -0.0002 0.4414 +vn -0.4371 -0.0440 -0.8983 +vn -0.8983 -0.0440 -0.4371 +vn -0.0000 -0.8919 -0.4522 +vn -0.0000 -0.4032 -0.9151 +vn 0.8983 -0.0440 -0.4371 +vn 0.4371 -0.0440 -0.8983 +vn 0.4522 -0.8919 -0.0000 +vn 0.9151 -0.4032 -0.0000 +vn 0.4371 -0.0440 0.8983 +vn 0.8983 -0.0440 0.4371 +vn -0.0000 -0.8919 0.4522 +vn -0.0000 -0.4032 0.9151 +vn -0.0000 -1.0000 -0.0000 +vn 0.4414 -0.0002 0.8973 +vn 0.4414 -0.0002 -0.8973 +vn 0.8973 -0.0002 -0.4414 +vn -0.8973 -0.0002 -0.4414 +vn -0.4414 -0.0002 -0.8973 +vn -0.8983 -0.0440 0.4371 +vn -0.4371 -0.0440 0.8983 +vn -0.0000 -0.0554 -0.9985 +vn -0.9985 -0.0554 -0.0000 +vn 0.9985 -0.0554 -0.0000 +vn -0.0000 -0.0554 0.9985 +vn 0.6864 0.7128 -0.1444 +vn 0.1459 0.7090 -0.6899 +vn 0.4950 0.7141 -0.4950 +vn 0.1459 0.7090 0.6899 +vn 0.6864 0.7128 0.1444 +vn 0.4950 0.7141 0.4950 +vn -0.1459 0.7090 -0.6899 +vn -0.6864 0.7128 -0.1444 +vn -0.4950 0.7141 -0.4950 +vn -0.6864 0.7128 0.1444 +vn -0.1459 0.7090 0.6899 +vn -0.4950 0.7141 0.4950 +vn 0.3104 0.7113 -0.6306 +vn 0.6307 0.7113 -0.3104 +vn 0.3104 0.7113 0.6306 +vn 0.6307 0.7112 0.3104 +vn -0.6307 0.7113 0.3104 +vn -0.3104 0.7113 0.6306 +vn -0.3104 0.7113 -0.6306 +vn -0.6307 0.7113 -0.3104 +vn 0.7113 0.7028 -0.0000 +vn -0.0000 0.7088 -0.7055 +vn -0.7113 0.7028 -0.0000 +vn -0.0000 0.7088 0.7054 +vn -0.1776 -0.5159 0.8380 +vn -0.3798 -0.5130 0.7698 +vn -0.6078 -0.5109 0.6078 +vn -0.7681 -0.5155 0.3798 +vn -0.8126 -0.5523 0.1860 +vn -0.6078 -0.5109 -0.6078 +vn -0.3798 -0.5130 -0.7698 +vn -0.1776 -0.5159 -0.8380 +vn -0.8126 -0.5523 -0.1860 +vn -0.7681 -0.5155 -0.3798 +vn 0.6078 -0.5109 -0.6078 +vn 0.7681 -0.5155 -0.3798 +vn 0.8126 -0.5523 -0.1860 +vn 0.1776 -0.5159 -0.8380 +vn 0.3798 -0.5130 -0.7698 +vn 0.6078 -0.5109 0.6078 +vn 0.3798 -0.5130 0.7698 +vn 0.1776 -0.5159 0.8380 +vn 0.8126 -0.5523 0.1860 +vn 0.7681 -0.5155 0.3798 +vn -0.0000 -0.5167 0.8562 +vn -0.0000 -0.5167 -0.8562 +vn -0.1746 0.5396 0.8237 +vn -0.3734 0.5365 0.7568 +vn -0.5977 0.5343 0.5977 +vn -0.7550 0.5390 0.3734 +vn -0.7974 0.5750 0.1831 +vn -0.5977 0.5343 -0.5977 +vn -0.3734 0.5365 -0.7568 +vn -0.1746 0.5396 -0.8237 +vn -0.7974 0.5750 -0.1831 +vn -0.7550 0.5390 -0.3734 +vn 0.5977 0.5343 -0.5977 +vn 0.7550 0.5390 -0.3734 +vn 0.7974 0.5750 -0.1831 +vn 0.1746 0.5396 -0.8237 +vn 0.3734 0.5365 -0.7568 +vn 0.5977 0.5343 0.5977 +vn 0.3734 0.5365 0.7568 +vn 0.1746 0.5396 0.8237 +vn 0.7974 0.5750 0.1831 +vn 0.7550 0.5390 0.3734 +vn -0.0000 0.5404 0.8414 +vn -0.0000 0.5404 -0.8414 +vn -0.7659 -0.6337 0.1090 +vn -0.7659 -0.6337 -0.1090 +vn -0.3842 -0.9232 -0.0000 +vn 0.7659 -0.6337 -0.1090 +vn 0.7659 -0.6337 0.1090 +vn 0.3842 -0.9232 -0.0000 +vn -0.7526 0.6495 -0.1084 +vn -0.7526 0.6495 0.1084 +vn -0.3184 0.9480 -0.0000 +vn 0.7526 0.6495 0.1084 +vn 0.7526 0.6495 -0.1084 +vn 0.3184 0.9480 -0.0000 +vn 0.9751 -0.1005 0.1976 +vn 0.9784 -0.0220 0.2053 +vn 0.7050 -0.0773 0.7050 +vn 0.7070 -0.0168 0.7070 +vn 0.1976 -0.1005 -0.9751 +vn 0.2053 -0.0220 -0.9784 +vn 0.9784 -0.0000 -0.2068 +vn 0.9784 -0.0020 -0.2067 +vn -0.9751 -0.1005 -0.1976 +vn -0.9784 -0.0220 -0.2053 +vn -0.7050 -0.0773 -0.7050 +vn -0.7070 -0.0168 -0.7070 +vn -0.1976 -0.1005 0.9751 +vn -0.2053 -0.0220 0.9784 +vn -0.2068 -0.0000 -0.9784 +vn -0.2067 -0.0020 -0.9784 +vn -0.7071 -0.0000 0.7071 +vn -0.7071 -0.0015 0.7071 +vn -0.9784 -0.0000 0.2068 +vn -0.9784 -0.0020 0.2067 +vn 0.2068 -0.0000 0.9784 +vn 0.2067 -0.0020 0.9784 +vn 0.7050 -0.0773 -0.7050 +vn 0.7070 -0.0168 -0.7070 +vn -0.5791 -0.8001 0.1565 +vn -0.3091 -0.9329 0.1848 +vn -0.1848 -0.9329 0.3091 +vn -0.1565 -0.8001 0.5791 +vn -0.2351 -0.6663 0.7076 +vn -0.4602 -0.6083 0.6467 +vn -0.6467 -0.6083 0.4602 +vn -0.7076 -0.6663 0.2351 +vn -0.1536 -0.5316 0.8329 +vn -0.1774 -0.2679 0.9470 +vn -0.2962 -0.1607 0.9415 +vn -0.5599 -0.1372 0.8172 +vn -0.6918 -0.2066 0.6918 +vn -0.6406 -0.4235 0.6406 +vn -0.8172 -0.1372 0.5599 +vn -0.9415 -0.1607 0.2962 +vn -0.9470 -0.2679 0.1774 +vn -0.8329 -0.5316 0.1536 +vn -0.1565 -0.8001 -0.5791 +vn -0.1848 -0.9329 -0.3091 +vn -0.3091 -0.9329 -0.1848 +vn -0.5791 -0.8001 -0.1565 +vn -0.7076 -0.6663 -0.2351 +vn -0.6467 -0.6083 -0.4602 +vn -0.4602 -0.6083 -0.6467 +vn -0.2351 -0.6663 -0.7076 +vn -0.8329 -0.5316 -0.1536 +vn -0.9470 -0.2679 -0.1774 +vn -0.9415 -0.1607 -0.2962 +vn -0.8172 -0.1372 -0.5599 +vn -0.6918 -0.2066 -0.6918 +vn -0.6406 -0.4235 -0.6406 +vn -0.5599 -0.1372 -0.8172 +vn -0.2962 -0.1607 -0.9415 +vn -0.1774 -0.2679 -0.9470 +vn -0.1536 -0.5316 -0.8329 +vn 0.1565 -0.8001 0.5791 +vn 0.1848 -0.9329 0.3091 +vn 0.3091 -0.9329 0.1848 +vn 0.5791 -0.8001 0.1565 +vn 0.7076 -0.6663 0.2351 +vn 0.6467 -0.6083 0.4602 +vn 0.4602 -0.6083 0.6467 +vn 0.2351 -0.6663 0.7076 +vn 0.8329 -0.5316 0.1536 +vn 0.9470 -0.2679 0.1774 +vn 0.9415 -0.1607 0.2962 +vn 0.8172 -0.1372 0.5599 +vn 0.6918 -0.2066 0.6918 +vn 0.6406 -0.4235 0.6406 +vn 0.5599 -0.1372 0.8172 +vn 0.2962 -0.1607 0.9415 +vn 0.1774 -0.2679 0.9470 +vn 0.1536 -0.5316 0.8329 +vn 0.5791 -0.8001 -0.1565 +vn 0.3091 -0.9329 -0.1848 +vn 0.1848 -0.9329 -0.3091 +vn 0.1565 -0.8001 -0.5791 +vn 0.2351 -0.6663 -0.7076 +vn 0.4602 -0.6083 -0.6467 +vn 0.6467 -0.6083 -0.4602 +vn 0.7076 -0.6663 -0.2351 +vn 0.1536 -0.5316 -0.8329 +vn 0.1774 -0.2679 -0.9470 +vn 0.2962 -0.1607 -0.9415 +vn 0.5599 -0.1372 -0.8172 +vn 0.6918 -0.2066 -0.6918 +vn 0.6406 -0.4235 -0.6406 +vn 0.8172 -0.1372 -0.5599 +vn 0.9415 -0.1607 -0.2962 +vn 0.9470 -0.2679 -0.1774 +vn 0.8329 -0.5316 -0.1536 +vn -0.2063 -0.9737 -0.0970 +vn -0.2063 -0.9737 0.0970 +vn -0.7259 -0.6838 0.0732 +vn -0.7259 -0.6838 -0.0732 +vn -0.9794 -0.1792 0.0927 +vn -0.9794 -0.1792 -0.0927 +vn -0.2067 -0.0020 0.9784 +vn -0.2068 -0.0000 0.9784 +vn -0.1824 -0.8192 0.5437 +vn -0.3305 -0.8180 0.4708 +vn -0.7070 -0.0168 0.7070 +vn -0.7050 -0.0773 0.7050 +vn -0.4708 -0.8180 0.3305 +vn -0.5451 -0.8181 0.1831 +vn -0.9784 -0.0220 0.2053 +vn -0.9751 -0.1005 0.1976 +vn -0.3305 -0.8180 -0.4708 +vn -0.1824 -0.8192 -0.5437 +vn -0.2053 -0.0220 -0.9784 +vn -0.1976 -0.1005 -0.9751 +vn -0.7071 -0.0015 -0.7071 +vn -0.7071 -0.0000 -0.7071 +vn -0.5451 -0.8181 -0.1831 +vn -0.4708 -0.8180 -0.3305 +vn -0.9784 -0.0020 -0.2067 +vn -0.9784 -0.0000 -0.2068 +vn 0.0970 -0.9737 -0.2063 +vn -0.0970 -0.9737 -0.2063 +vn -0.0732 -0.6838 -0.7259 +vn 0.0732 -0.6838 -0.7259 +vn -0.0927 -0.1792 -0.9794 +vn 0.0927 -0.1792 -0.9794 +vn 0.4708 -0.8180 -0.3305 +vn 0.5451 -0.8181 -0.1831 +vn 0.9784 -0.0220 -0.2053 +vn 0.9751 -0.1005 -0.1976 +vn 0.7071 -0.0015 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn 0.1824 -0.8192 -0.5437 +vn 0.3305 -0.8180 -0.4708 +vn 0.2067 -0.0020 -0.9784 +vn 0.2068 -0.0000 -0.9784 +vn 0.2063 -0.9737 0.0970 +vn 0.2063 -0.9737 -0.0970 +vn 0.7259 -0.6838 -0.0732 +vn 0.7259 -0.6838 0.0732 +vn 0.9794 -0.1792 -0.0927 +vn 0.9794 -0.1792 0.0927 +vn 0.3305 -0.8180 0.4708 +vn 0.1824 -0.8192 0.5437 +vn 0.2053 -0.0220 0.9784 +vn 0.1976 -0.1005 0.9751 +vn 0.7071 -0.0015 0.7071 +vn 0.7071 -0.0000 0.7071 +vn 0.5451 -0.8181 0.1831 +vn 0.4708 -0.8180 0.3305 +vn 0.9784 -0.0020 0.2067 +vn 0.9784 -0.0000 0.2068 +vn -0.0970 -0.9737 0.2063 +vn 0.0970 -0.9737 0.2063 +vn 0.0732 -0.6838 0.7259 +vn -0.0732 -0.6838 0.7259 +vn 0.0927 -0.1792 0.9794 +vn -0.0927 -0.1792 0.9794 +vn -0.5381 -0.8400 0.0705 +vn -0.5381 -0.8400 -0.0705 +vn 0.0587 -0.8200 0.5693 +vn -0.0587 -0.8200 0.5693 +vn 0.5381 -0.8400 0.0705 +vn 0.5381 -0.8400 -0.0705 +vn 0.0587 -0.8200 -0.5693 +vn -0.0587 -0.8200 -0.5693 +vn 0.8186 -0.0058 0.5744 +vn 0.9482 -0.0068 0.3176 +vn 0.3176 -0.0068 0.9482 +vn 0.5744 -0.0058 0.8186 +vn 0.5744 -0.0058 -0.8186 +vn 0.3176 -0.0068 -0.9482 +vn 0.9482 -0.0068 -0.3176 +vn 0.8186 -0.0058 -0.5744 +vn -0.8186 -0.0058 -0.5744 +vn -0.9482 -0.0068 -0.3176 +vn -0.3176 -0.0068 -0.9482 +vn -0.5744 -0.0058 -0.8186 +vn -0.8186 -0.0058 0.5744 +vn -0.9482 -0.0068 0.3176 +vn -0.3176 -0.0068 0.9482 +vn -0.5744 -0.0058 0.8186 +vn -0.1022 -0.0078 -0.9947 +vn 0.1022 -0.0078 -0.9947 +vn -0.9947 -0.0078 0.1022 +vn -0.9947 -0.0078 -0.1022 +vn 0.9947 -0.0078 -0.1022 +vn 0.9947 -0.0078 0.1022 +vn 0.1022 -0.0078 0.9947 +vn -0.1022 -0.0078 0.9947 +vn 0.1025 -0.0003 0.9947 +vn -0.0000 -0.0000 1.0000 +vn -0.1025 -0.0003 0.9947 +vn -0.0000 -0.0021 1.0000 +vn 0.9947 -0.0003 -0.1025 +vn 1.0000 -0.0000 -0.0000 +vn 0.9947 -0.0003 0.1025 +vn 1.0000 -0.0021 -0.0000 +vn 0.8184 -0.0002 0.5746 +vn 0.8973 -0.0017 0.4414 +vn 0.9481 -0.0002 0.3181 +vn 0.8973 -0.0000 0.4414 +vn -0.9947 -0.0003 0.1025 +vn -1.0000 -0.0000 -0.0000 +vn -0.9947 -0.0003 -0.1025 +vn -1.0000 -0.0021 -0.0000 +vn -0.1025 -0.0003 -0.9947 +vn -0.0000 -0.0000 -1.0000 +vn 0.1025 -0.0003 -0.9947 +vn -0.0000 -0.0021 -1.0000 +vn -0.2683 -0.8683 0.4172 +vn -0.3541 -0.7685 0.5329 +vn -0.5329 -0.7685 0.3541 +vn -0.4172 -0.8683 0.2683 +vn -0.4026 -0.2328 0.8853 +vn -0.5197 -0.3157 0.7939 +vn -0.3477 -0.4884 0.8004 +vn -0.2600 -0.3714 0.8913 +vn -0.8913 -0.3714 0.2600 +vn -0.8004 -0.4884 0.3477 +vn -0.7939 -0.3157 0.5197 +vn -0.8853 -0.2328 0.4026 +vn -0.4172 -0.8683 -0.2683 +vn -0.5329 -0.7685 -0.3541 +vn -0.3541 -0.7685 -0.5329 +vn -0.2683 -0.8683 -0.4172 +vn -0.8853 -0.2328 -0.4026 +vn -0.7939 -0.3157 -0.5197 +vn -0.8004 -0.4884 -0.3477 +vn -0.8913 -0.3714 -0.2600 +vn -0.2600 -0.3714 -0.8913 +vn -0.3477 -0.4884 -0.8004 +vn -0.5197 -0.3157 -0.7939 +vn -0.4026 -0.2328 -0.8853 +vn 0.4172 -0.8683 0.2683 +vn 0.5329 -0.7685 0.3541 +vn 0.3541 -0.7685 0.5329 +vn 0.2683 -0.8683 0.4172 +vn 0.8853 -0.2328 0.4026 +vn 0.7939 -0.3157 0.5197 +vn 0.8004 -0.4884 0.3477 +vn 0.8913 -0.3714 0.2600 +vn 0.2600 -0.3714 0.8913 +vn 0.3477 -0.4884 0.8004 +vn 0.5197 -0.3157 0.7939 +vn 0.4026 -0.2328 0.8853 +vn 0.2683 -0.8683 -0.4172 +vn 0.3541 -0.7685 -0.5329 +vn 0.5329 -0.7685 -0.3541 +vn 0.4172 -0.8683 -0.2683 +vn 0.4026 -0.2328 -0.8853 +vn 0.5197 -0.3157 -0.7939 +vn 0.3477 -0.4884 -0.8004 +vn 0.2600 -0.3714 -0.8913 +vn 0.8913 -0.3714 -0.2600 +vn 0.8004 -0.4884 -0.3477 +vn 0.7939 -0.3157 -0.5197 +vn 0.8853 -0.2328 -0.4026 +vn -0.3238 -0.9461 -0.0000 +vn -0.4485 -0.8900 0.0825 +vn -0.5913 -0.8065 -0.0000 +vn -0.4485 -0.8900 -0.0825 +vn -0.8396 -0.5432 -0.0000 +vn -0.9131 -0.3998 0.0799 +vn -0.9598 -0.2807 -0.0000 +vn -0.9131 -0.3998 -0.0799 +vn -0.3181 -0.0002 0.9481 +vn -0.4414 -0.0000 0.8973 +vn -0.5746 -0.0002 0.8184 +vn -0.4414 -0.0017 0.8973 +vn -0.8184 -0.0002 0.5746 +vn -0.8973 -0.0000 0.4414 +vn -0.9481 -0.0002 0.3181 +vn -0.8973 -0.0017 0.4414 +vn -0.3132 -0.0480 -0.9485 +vn -0.4312 -0.0858 -0.8982 +vn -0.5720 -0.0408 -0.8193 +vn -0.4399 -0.0186 -0.8979 +vn -0.8193 -0.0408 -0.5719 +vn -0.8982 -0.0858 -0.4312 +vn -0.9485 -0.0480 -0.3132 +vn -0.8979 -0.0186 -0.4399 +vn -0.0000 -0.9461 -0.3238 +vn -0.0825 -0.8900 -0.4485 +vn -0.0000 -0.8065 -0.5913 +vn 0.0825 -0.8900 -0.4485 +vn -0.0000 -0.5432 -0.8396 +vn -0.0799 -0.3998 -0.9131 +vn -0.0000 -0.2807 -0.9598 +vn 0.0799 -0.3998 -0.9131 +vn 0.9485 -0.0480 -0.3132 +vn 0.8982 -0.0858 -0.4312 +vn 0.8193 -0.0408 -0.5720 +vn 0.8979 -0.0186 -0.4399 +vn 0.5720 -0.0408 -0.8193 +vn 0.4312 -0.0858 -0.8982 +vn 0.3132 -0.0480 -0.9485 +vn 0.4399 -0.0186 -0.8979 +vn 0.3238 -0.9461 -0.0000 +vn 0.4485 -0.8900 -0.0825 +vn 0.5913 -0.8065 -0.0000 +vn 0.4485 -0.8900 0.0825 +vn 0.8396 -0.5432 -0.0000 +vn 0.9131 -0.3998 -0.0799 +vn 0.9598 -0.2807 -0.0000 +vn 0.9131 -0.3998 0.0799 +vn 0.3132 -0.0480 0.9485 +vn 0.4312 -0.0858 0.8982 +vn 0.5720 -0.0408 0.8193 +vn 0.4399 -0.0186 0.8979 +vn 0.8193 -0.0408 0.5719 +vn 0.8982 -0.0858 0.4312 +vn 0.9485 -0.0480 0.3132 +vn 0.8979 -0.0186 0.4399 +vn -0.0000 -0.9461 0.3238 +vn 0.0825 -0.8900 0.4485 +vn -0.0000 -0.8065 0.5913 +vn -0.0825 -0.8900 0.4485 +vn -0.0000 -0.5432 0.8396 +vn 0.0799 -0.3998 0.9131 +vn -0.0000 -0.2807 0.9598 +vn -0.0799 -0.3998 0.9131 +vn -0.0000 -0.9947 -0.1032 +vn 0.1032 -0.9947 -0.0000 +vn -0.0000 -0.9947 0.1032 +vn -0.1032 -0.9947 -0.0000 +vn 0.3181 -0.0002 0.9481 +vn 0.4414 -0.0017 0.8973 +vn 0.5746 -0.0002 0.8184 +vn 0.4414 -0.0000 0.8973 +vn 0.5746 -0.0002 -0.8184 +vn 0.4414 -0.0017 -0.8973 +vn 0.3181 -0.0002 -0.9481 +vn 0.4414 -0.0000 -0.8973 +vn 0.9481 -0.0002 -0.3181 +vn 0.8973 -0.0017 -0.4414 +vn 0.8184 -0.0002 -0.5746 +vn 0.8973 -0.0000 -0.4414 +vn -0.8184 -0.0002 -0.5746 +vn -0.8973 -0.0017 -0.4414 +vn -0.9481 -0.0002 -0.3181 +vn -0.8973 -0.0000 -0.4414 +vn -0.3181 -0.0002 -0.9481 +vn -0.4414 -0.0017 -0.8973 +vn -0.5746 -0.0002 -0.8184 +vn -0.4414 -0.0000 -0.8973 +vn -0.8193 -0.0408 0.5720 +vn -0.8979 -0.0186 0.4399 +vn -0.9485 -0.0480 0.3132 +vn -0.8982 -0.0858 0.4312 +vn -0.3132 -0.0480 0.9485 +vn -0.4399 -0.0186 0.8979 +vn -0.5720 -0.0408 0.8193 +vn -0.4312 -0.0858 0.8982 +vn -0.1001 -0.0544 -0.9935 +vn -0.0000 -0.0236 -0.9997 +vn 0.1001 -0.0544 -0.9935 +vn -0.0000 -0.1070 -0.9943 +vn -0.9935 -0.0544 0.1001 +vn -0.9997 -0.0236 -0.0000 +vn -0.9935 -0.0544 -0.1001 +vn -0.9943 -0.1070 -0.0000 +vn 0.9935 -0.0544 -0.1001 +vn 0.9997 -0.0236 -0.0000 +vn 0.9935 -0.0544 0.1001 +vn 0.9943 -0.1070 -0.0000 +vn 0.1001 -0.0544 0.9935 +vn -0.0000 -0.0236 0.9997 +vn -0.1001 -0.0544 0.9935 +vn -0.0000 -0.1070 0.9943 +vn 0.2241 0.7100 -0.6676 +vn 0.4031 0.7129 -0.5739 +vn 0.5739 0.7129 -0.4031 +vn 0.6678 0.7099 -0.2239 +vn 0.4031 0.7129 0.5739 +vn 0.2241 0.7100 0.6676 +vn 0.6678 0.7099 0.2239 +vn 0.5739 0.7129 0.4031 +vn -0.5739 0.7129 0.4031 +vn -0.6678 0.7099 0.2239 +vn -0.2241 0.7100 0.6676 +vn -0.4031 0.7129 0.5739 +vn -0.4031 0.7129 -0.5739 +vn -0.2241 0.7100 -0.6676 +vn -0.6678 0.7099 -0.2239 +vn -0.5739 0.7129 -0.4031 +vn 0.6965 0.7142 -0.0694 +vn 0.6965 0.7142 0.0694 +vn -0.0723 0.7088 -0.7017 +vn 0.0723 0.7088 -0.7017 +vn -0.6965 0.7142 -0.0694 +vn -0.6965 0.7142 0.0694 +vn -0.0723 0.7088 0.7017 +vn 0.0723 0.7088 0.7017 +vn -0.2840 -0.7663 -0.5763 +vn -0.4555 -0.7649 -0.4555 +vn 0.1905 0.9630 -0.1905 +vn 0.2354 0.9649 -0.1162 +vn 0.2281 0.9725 -0.0474 +vn 0.5991 -0.7908 -0.1254 +vn -0.1905 0.9630 -0.1905 +vn 0.4555 -0.7649 0.4555 +vn 0.2281 0.9725 0.0474 +vn -0.2281 0.9725 -0.0474 +vn -0.2354 0.9649 -0.1162 +vn 0.5753 -0.7672 0.2837 +vn 0.5991 -0.7908 0.1254 +vn -0.0535 0.9660 0.2529 +vn -0.1326 -0.7684 0.6261 +vn -0.0000 -0.7690 0.6392 +vn -0.5991 -0.7908 0.1254 +vn -0.5753 -0.7672 0.2837 +vn -0.1167 0.9645 -0.2370 +vn -0.0535 0.9660 -0.2529 +vn 0.0535 0.9660 0.2529 +vn -0.0000 0.9663 0.2574 +vn -0.2735 -0.5147 0.8126 +vn -0.4943 -0.5116 0.7028 +vn -0.7028 -0.5116 0.4943 +vn -0.8022 -0.5303 0.2745 +vn -0.4943 -0.5116 -0.7028 +vn -0.2735 -0.5147 -0.8126 +vn -0.8022 -0.5303 -0.2745 +vn -0.7028 -0.5116 -0.4943 +vn 0.7028 -0.5116 -0.4943 +vn 0.8022 -0.5303 -0.2745 +vn 0.2735 -0.5147 -0.8126 +vn 0.4943 -0.5116 -0.7028 +vn 0.4943 -0.5116 0.7028 +vn 0.2735 -0.5147 0.8126 +vn 0.8022 -0.5303 0.2745 +vn 0.7028 -0.5116 0.4943 +vn 0.0879 -0.5165 0.8517 +vn -0.0879 -0.5165 0.8517 +vn 0.0879 -0.5165 -0.8517 +vn -0.0879 -0.5165 -0.8517 +vn -0.2688 0.5383 0.7988 +vn -0.4860 0.5350 0.6910 +vn -0.6910 0.5350 0.4860 +vn -0.7875 0.5541 0.2697 +vn -0.4860 0.5350 -0.6910 +vn -0.2688 0.5383 -0.7988 +vn -0.7875 0.5541 -0.2697 +vn -0.6910 0.5350 -0.4860 +vn 0.6910 0.5350 -0.4860 +vn 0.7875 0.5541 -0.2697 +vn 0.2688 0.5383 -0.7988 +vn 0.4860 0.5350 -0.6910 +vn 0.4860 0.5350 0.6910 +vn 0.2688 0.5383 0.7988 +vn 0.7875 0.5541 0.2697 +vn 0.6910 0.5350 0.4860 +vn 0.0864 0.5402 0.8371 +vn -0.0864 0.5402 0.8371 +vn 0.0864 0.5402 -0.8371 +vn -0.0864 0.5402 -0.8371 +vn 0.2074 -0.0002 -0.9783 +vn -0.0000 -0.0002 -1.0000 +vn 0.9723 -0.0002 -0.2337 +vn 0.8962 -0.0002 -0.4436 +vn 0.4426 -0.0002 0.8967 +vn -0.2074 -0.0002 -0.9783 +vn 0.2074 -0.0002 0.9783 +vn -0.8962 -0.0002 0.4436 +vn -0.9723 -0.0002 0.2337 +vn -0.9723 -0.0002 -0.2337 +vn -0.0000 -0.0002 1.0000 +vn -0.8962 -0.0002 -0.4436 +vn -0.2074 -0.0002 0.9783 +vn -0.4426 -0.0002 0.8967 +vn 0.4426 -0.0002 -0.8967 +vn -0.4426 -0.0002 -0.8967 +vn 0.9723 -0.0002 0.2337 +vn 0.8962 -0.0002 0.4436 +vn -0.0000 -0.7690 -0.6392 +vn 0.1326 -0.7684 -0.6261 +vn 0.0535 0.9660 -0.2529 +vn -0.0000 0.9663 -0.2574 +vn -0.1326 -0.7684 -0.6261 +vn 0.1167 0.9645 -0.2370 +vn 0.4555 -0.7649 -0.4555 +vn 0.5753 -0.7672 -0.2837 +vn 0.1167 0.9645 0.2370 +vn 0.1905 0.9630 0.1905 +vn 0.2840 -0.7663 0.5763 +vn -0.1167 0.9645 0.2370 +vn -0.2840 -0.7663 0.5763 +vn 0.2354 0.9649 0.1162 +vn -0.5991 -0.7908 -0.1254 +vn -0.5753 -0.7672 -0.2837 +vn 0.1326 -0.7684 0.6261 +vn -0.1905 0.9630 0.1905 +vn -0.4555 -0.7649 0.4555 +vn -0.2354 0.9649 0.1162 +vn -0.2281 0.9725 0.0474 +vn 0.2840 -0.7663 -0.5763 +vn -0.0000 0.1179 -0.9930 +vn -0.2054 0.1177 -0.9716 +vn -0.4384 0.1173 -0.8911 +vn -0.7022 0.1171 -0.7022 +vn -0.8911 0.1170 -0.4384 +vn -0.9715 0.1169 -0.2063 +vn -0.9928 0.1200 -0.0000 +vn -0.9715 0.1169 0.2063 +vn -0.8911 0.1170 0.4384 +vn -0.7022 0.1171 0.7022 +vn -0.4384 0.1173 0.8911 +vn -0.2054 0.1177 0.9716 +vn -0.0000 0.1179 0.9930 +vn 0.2054 0.1177 0.9716 +vn 0.4384 0.1173 0.8911 +vn 0.7022 0.1171 0.7022 +vn 0.8911 0.1170 0.4384 +vn 0.9715 0.1169 0.2063 +vn 0.9928 0.1200 -0.0000 +vn 0.9715 0.1169 -0.2063 +vn 0.8911 0.1170 -0.4384 +vn 0.7022 0.1171 -0.7022 +vn 0.4384 0.1173 -0.8911 +vn 0.2054 0.1177 -0.9716 +vn -0.4337 -0.9001 0.0422 +vn -0.4337 -0.9001 -0.0422 +vn 0.4337 -0.9001 -0.0422 +vn 0.4337 -0.9001 0.0422 +vn -0.3744 0.9264 -0.0401 +vn -0.3744 0.9264 0.0401 +vn 0.3744 0.9264 0.0401 +vn 0.3744 0.9264 -0.0401 +vn -0.9903 -0.0002 -0.1390 +vn -0.9903 -0.0002 0.1390 +vn 0.9903 -0.0002 -0.1390 +vn 0.9903 -0.0002 0.1390 +vn -0.4375 -0.8992 -0.0000 +vn -0.8254 -0.5491 0.1314 +vn -0.8119 0.5693 0.1296 +vn -0.8254 -0.5491 -0.1314 +vn -0.8119 0.5693 -0.1296 +vn 0.4375 -0.8992 -0.0000 +vn 0.8254 -0.5491 0.1314 +vn 0.8254 -0.5491 -0.1314 +vn 0.8119 0.5693 -0.1296 +vn 0.8119 0.5693 0.1296 +vn -0.0396 0.9992 -0.0000 +vn 0.0396 0.9992 -0.0000 +vn 0.1024 -0.0021 0.9947 +vn 0.1025 -0.0000 0.9947 +vn -0.1025 -0.0000 0.9947 +vn -0.1024 -0.0021 0.9947 +vn 0.9947 -0.0021 -0.1024 +vn 0.9947 -0.0000 -0.1025 +vn 0.9947 -0.0000 0.1025 +vn 0.9947 -0.0021 0.1024 +vn 0.8184 -0.0000 0.5746 +vn 0.8184 -0.0015 0.5746 +vn 0.9481 -0.0018 0.3180 +vn 0.9481 -0.0000 0.3181 +vn -0.9947 -0.0021 0.1024 +vn -0.9947 -0.0000 0.1025 +vn -0.9947 -0.0000 -0.1025 +vn -0.9947 -0.0021 -0.1024 +vn -0.1024 -0.0021 -0.9947 +vn -0.1025 -0.0000 -0.9947 +vn 0.1025 -0.0000 -0.9947 +vn 0.1024 -0.0021 -0.9947 +vn -0.2913 -0.9112 0.2913 +vn -0.2462 -0.7899 0.5617 +vn -0.4899 -0.7211 0.4899 +vn -0.5617 -0.7899 0.2462 +vn -0.2801 -0.2524 0.9262 +vn -0.5450 -0.2145 0.8106 +vn -0.4819 -0.4486 0.7527 +vn -0.2416 -0.5153 0.8222 +vn -0.9262 -0.2524 0.2801 +vn -0.8222 -0.5153 0.2416 +vn -0.7527 -0.4486 0.4819 +vn -0.8106 -0.2145 0.5450 +vn -0.2913 -0.9112 -0.2913 +vn -0.5617 -0.7899 -0.2462 +vn -0.4899 -0.7211 -0.4899 +vn -0.2462 -0.7899 -0.5617 +vn -0.9262 -0.2524 -0.2801 +vn -0.8106 -0.2145 -0.5450 +vn -0.7527 -0.4486 -0.4819 +vn -0.8222 -0.5153 -0.2416 +vn -0.2801 -0.2524 -0.9262 +vn -0.2416 -0.5153 -0.8222 +vn -0.4819 -0.4486 -0.7527 +vn -0.5450 -0.2145 -0.8106 +vn 0.2913 -0.9112 0.2913 +vn 0.5617 -0.7899 0.2462 +vn 0.4899 -0.7211 0.4899 +vn 0.2462 -0.7899 0.5617 +vn 0.9262 -0.2524 0.2801 +vn 0.8106 -0.2145 0.5450 +vn 0.7527 -0.4486 0.4819 +vn 0.8222 -0.5153 0.2416 +vn 0.2801 -0.2524 0.9262 +vn 0.2416 -0.5153 0.8222 +vn 0.4819 -0.4486 0.7527 +vn 0.5450 -0.2145 0.8106 +vn 0.2913 -0.9112 -0.2913 +vn 0.2462 -0.7899 -0.5617 +vn 0.4899 -0.7211 -0.4899 +vn 0.5617 -0.7899 -0.2462 +vn 0.2801 -0.2524 -0.9262 +vn 0.5450 -0.2145 -0.8106 +vn 0.4819 -0.4486 -0.7527 +vn 0.2416 -0.5153 -0.8222 +vn 0.9262 -0.2524 -0.2801 +vn 0.8222 -0.5153 -0.2416 +vn 0.7527 -0.4486 -0.4819 +vn 0.8106 -0.2145 -0.5450 +vn -0.3201 -0.9431 -0.0902 +vn -0.3201 -0.9431 0.0902 +vn -0.5883 -0.8050 0.0761 +vn -0.5883 -0.8050 -0.0761 +vn -0.8381 -0.5404 -0.0747 +vn -0.8381 -0.5404 0.0747 +vn -0.9568 -0.2775 0.0865 +vn -0.9568 -0.2775 -0.0865 +vn -0.3180 -0.0018 0.9481 +vn -0.3181 -0.0000 0.9481 +vn -0.5746 -0.0000 0.8184 +vn -0.5746 -0.0015 0.8184 +vn -0.8184 -0.0015 0.5746 +vn -0.8184 -0.0000 0.5746 +vn -0.9481 -0.0000 0.3181 +vn -0.9481 -0.0018 0.3180 +vn -0.3163 -0.0204 -0.9484 +vn -0.3069 -0.0935 -0.9471 +vn -0.5679 -0.0797 -0.8192 +vn -0.5737 -0.0173 -0.8189 +vn -0.8189 -0.0173 -0.5737 +vn -0.8192 -0.0797 -0.5679 +vn -0.9471 -0.0935 -0.3069 +vn -0.9484 -0.0204 -0.3163 +vn 0.0902 -0.9431 -0.3201 +vn -0.0902 -0.9431 -0.3201 +vn -0.0761 -0.8050 -0.5883 +vn 0.0761 -0.8050 -0.5883 +vn 0.0747 -0.5404 -0.8381 +vn -0.0747 -0.5404 -0.8381 +vn -0.0865 -0.2775 -0.9568 +vn 0.0865 -0.2775 -0.9568 +vn 0.9484 -0.0204 -0.3163 +vn 0.9471 -0.0935 -0.3069 +vn 0.8192 -0.0797 -0.5679 +vn 0.8189 -0.0173 -0.5737 +vn 0.5737 -0.0173 -0.8189 +vn 0.5679 -0.0797 -0.8192 +vn 0.3069 -0.0935 -0.9471 +vn 0.3163 -0.0204 -0.9484 +vn 0.3201 -0.9431 0.0902 +vn 0.3201 -0.9431 -0.0902 +vn 0.5883 -0.8050 -0.0761 +vn 0.5883 -0.8050 0.0761 +vn 0.8381 -0.5404 0.0747 +vn 0.8381 -0.5404 -0.0747 +vn 0.9568 -0.2775 -0.0865 +vn 0.9568 -0.2775 0.0865 +vn 0.3163 -0.0204 0.9484 +vn 0.3069 -0.0935 0.9471 +vn 0.5679 -0.0797 0.8192 +vn 0.5737 -0.0173 0.8189 +vn 0.8189 -0.0173 0.5737 +vn 0.8192 -0.0797 0.5679 +vn 0.9471 -0.0935 0.3069 +vn 0.9484 -0.0204 0.3163 +vn -0.0902 -0.9431 0.3201 +vn 0.0902 -0.9431 0.3201 +vn 0.0761 -0.8050 0.5883 +vn -0.0761 -0.8050 0.5883 +vn -0.0747 -0.5404 0.8381 +vn 0.0747 -0.5404 0.8381 +vn 0.0865 -0.2775 0.9568 +vn -0.0865 -0.2775 0.9568 +vn -0.1016 -0.9896 -0.1016 +vn 0.1016 -0.9896 -0.1016 +vn 0.1016 -0.9896 0.1016 +vn -0.1016 -0.9896 0.1016 +vn 0.3181 -0.0000 0.9481 +vn 0.3180 -0.0018 0.9481 +vn 0.5746 -0.0015 0.8184 +vn 0.5746 -0.0000 0.8184 +vn 0.5746 -0.0000 -0.8184 +vn 0.5746 -0.0015 -0.8184 +vn 0.3180 -0.0018 -0.9481 +vn 0.3181 -0.0000 -0.9481 +vn 0.9481 -0.0000 -0.3181 +vn 0.9481 -0.0018 -0.3180 +vn 0.8184 -0.0015 -0.5746 +vn 0.8184 -0.0000 -0.5746 +vn -0.8184 -0.0000 -0.5746 +vn -0.8184 -0.0015 -0.5746 +vn -0.9481 -0.0018 -0.3180 +vn -0.9481 -0.0000 -0.3181 +vn -0.3181 -0.0000 -0.9481 +vn -0.3180 -0.0018 -0.9481 +vn -0.5746 -0.0015 -0.8184 +vn -0.5746 -0.0000 -0.8184 +vn -0.8192 -0.0797 0.5679 +vn -0.8189 -0.0173 0.5737 +vn -0.9484 -0.0204 0.3163 +vn -0.9471 -0.0935 0.3069 +vn -0.3069 -0.0935 0.9471 +vn -0.3163 -0.0204 0.9484 +vn -0.5737 -0.0173 0.8189 +vn -0.5679 -0.0797 0.8192 +vn -0.0973 -0.1053 -0.9897 +vn -0.1016 -0.0232 -0.9946 +vn 0.1016 -0.0232 -0.9946 +vn 0.0973 -0.1053 -0.9897 +vn -0.9897 -0.1053 0.0973 +vn -0.9946 -0.0232 0.1016 +vn -0.9946 -0.0232 -0.1016 +vn -0.9897 -0.1053 -0.0973 +vn 0.9897 -0.1053 -0.0973 +vn 0.9946 -0.0232 -0.1016 +vn 0.9946 -0.0232 0.1016 +vn 0.9897 -0.1053 0.0973 +vn 0.0973 -0.1053 0.9897 +vn 0.1016 -0.0232 0.9946 +vn -0.1016 -0.0232 0.9946 +vn -0.0973 -0.1053 0.9897 +vn 0.1536 0.9636 -0.2188 +vn 0.5266 -0.7653 -0.3702 +vn 0.0831 0.9654 -0.2473 +vn -0.0264 0.9662 -0.2563 +vn -0.0656 -0.7689 -0.6360 +vn -0.2042 -0.7675 -0.6076 +vn 0.2375 0.9681 -0.0800 +vn 0.0264 0.9662 -0.2563 +vn 0.0656 -0.7689 -0.6360 +vn -0.3702 -0.7653 -0.5266 +vn 0.2188 0.9636 -0.1536 +vn -0.2280 0.9724 0.0489 +vn -0.2188 0.9636 -0.1536 +vn 0.5266 -0.7653 0.3702 +vn 0.2280 0.9724 -0.0489 +vn 0.9857 -0.0002 -0.1685 +vn -0.2375 0.9681 -0.0800 +vn 0.6007 -0.7736 0.2019 +vn -0.0264 0.9662 0.2563 +vn -0.0656 -0.7689 0.6360 +vn -0.6007 -0.7736 0.2019 +vn -0.0831 0.9654 -0.2473 +vn 0.0264 0.9662 0.2563 +vn 0.1027 -0.0002 -0.9947 +vn 0.9453 -0.0002 -0.3263 +vn 0.5754 -0.0002 0.8179 +vn -0.1027 -0.0002 -0.9947 +vn 0.3191 -0.0002 0.9477 +vn -0.8179 -0.0002 0.5754 +vn -0.5783 -0.8129 -0.0695 +vn -0.9453 -0.0002 0.3263 +vn 0.5783 -0.8129 0.0695 +vn 0.1027 -0.0002 0.9947 +vn -0.9453 -0.0002 -0.3263 +vn -0.1027 -0.0002 0.9947 +vn -0.3191 -0.0002 0.9477 +vn -0.8179 -0.0002 -0.5754 +vn 0.3191 -0.0002 -0.9477 +vn -0.5754 -0.0002 -0.8179 +vn 0.5783 -0.8129 -0.0695 +vn -0.5754 -0.0002 0.8179 +vn 0.5754 -0.0002 -0.8179 +vn 0.9453 -0.0002 0.3263 +vn -0.3191 -0.0002 -0.9477 +vn 0.9857 -0.0002 0.1685 +vn 0.8179 -0.0002 -0.5754 +vn 0.8179 -0.0002 0.5754 +vn 0.6007 -0.7736 -0.2019 +vn 0.1536 0.9636 0.2188 +vn 0.0831 0.9654 0.2473 +vn 0.3702 -0.7653 0.5266 +vn -0.0831 0.9654 0.2473 +vn -0.2042 -0.7675 0.6076 +vn 0.2375 0.9681 0.0800 +vn -0.6007 -0.7736 -0.2019 +vn 0.2042 -0.7675 0.6076 +vn -0.1536 0.9636 0.2188 +vn -0.3702 -0.7653 0.5266 +vn 0.2188 0.9636 0.1536 +vn -0.5266 -0.7653 -0.3702 +vn -0.2188 0.9636 0.1536 +vn -0.9857 -0.0002 0.1685 +vn -0.2280 0.9724 -0.0489 +vn -0.2375 0.9681 0.0800 +vn 0.2042 -0.7675 -0.6076 +vn -0.9857 -0.0002 -0.1685 +vn 0.2280 0.9724 0.0489 +vn -0.1536 0.9636 -0.2188 +vn -0.5267 -0.7653 0.3702 +vn 0.3702 -0.7653 -0.5266 +vn 0.0656 -0.7689 0.6360 +vn -0.1018 0.1179 -0.9878 +vn -0.3159 0.1175 -0.9415 +vn -0.5707 0.1171 -0.8128 +vn -0.8128 0.1171 -0.5707 +vn -0.9416 0.1164 -0.3159 +vn -0.9875 0.1190 -0.1033 +vn -0.9875 0.1190 0.1033 +vn -0.9416 0.1164 0.3159 +vn -0.8128 0.1171 0.5707 +vn -0.5707 0.1171 0.8128 +vn -0.3159 0.1175 0.9415 +vn -0.1018 0.1179 0.9878 +vn 0.1018 0.1179 0.9878 +vn 0.3159 0.1175 0.9415 +vn 0.5707 0.1171 0.8128 +vn 0.8128 0.1171 0.5707 +vn 0.9416 0.1164 0.3159 +vn 0.9875 0.1190 0.1033 +vn 0.9875 0.1190 -0.1033 +vn 0.9416 0.1164 -0.3159 +vn 0.8128 0.1171 -0.5707 +vn 0.5707 0.1171 -0.8128 +vn 0.3159 0.1175 -0.9415 +vn 0.1018 0.1179 -0.9878 +vn -0.5783 -0.8129 0.0695 +vt 0.139630 0.241612 +vt 0.132254 0.269870 +vt 0.109433 0.264086 +vt 0.117139 0.235271 +vt 0.125400 0.298650 +vt 0.102315 0.293225 +vt 0.079051 0.287677 +vt 0.086276 0.258145 +vt 0.094129 0.228710 +vt 0.118819 0.327855 +vt 0.095534 0.322595 +vt 0.112362 0.357349 +vt 0.088898 0.352111 +vt 0.065502 0.346816 +vt 0.072194 0.317247 +vt 0.082608 0.496178 +vt 0.073939 0.466528 +vt 0.097372 0.459805 +vt 0.105855 0.489266 +vt 0.065502 0.436780 +vt 0.089048 0.430131 +vt 0.112652 0.423553 +vt 0.120764 0.453239 +vt 0.128946 0.482536 +vt 0.101113 0.554903 +vt 0.091563 0.525630 +vt 0.114635 0.518359 +vt 0.123965 0.547035 +vt 0.137390 0.511300 +vt 0.146317 0.539444 +vt 0.387989 0.270130 +vt 0.390446 0.296596 +vt 0.368942 0.298162 +vt 0.367435 0.271719 +vt 0.392875 0.324277 +vt 0.370441 0.325838 +vt 0.348047 0.326620 +vt 0.347486 0.298979 +vt 0.346923 0.272545 +vt 0.395308 0.353250 +vt 0.371921 0.354784 +vt 0.397766 0.383442 +vt 0.373366 0.384929 +vt 0.349089 0.385649 +vt 0.348594 0.355560 +vt 0.325292 0.355611 +vt 0.325668 0.326746 +vt 0.324873 0.385649 +vt 0.300663 0.384950 +vt 0.301971 0.354928 +vt 0.303247 0.326134 +vt 0.326032 0.299067 +vt 0.326408 0.272616 +vt 0.304537 0.298411 +vt 0.305846 0.271930 +vt 0.205698 0.375371 +vt 0.210273 0.345620 +vt 0.232749 0.348861 +vt 0.228886 0.378680 +vt 0.214782 0.316845 +vt 0.236558 0.320046 +vt 0.258543 0.322694 +vt 0.255516 0.351542 +vt 0.252451 0.381433 +vt 0.219440 0.288863 +vt 0.240435 0.292194 +vt 0.224285 0.261972 +vt 0.244447 0.265472 +vt 0.264734 0.268322 +vt 0.261596 0.294925 +vt 0.282997 0.297013 +vt 0.280817 0.324714 +vt 0.285231 0.270489 +vt 0.278633 0.353618 +vt 0.276435 0.383551 +vt 0.312115 0.501013 +vt 0.309673 0.474539 +vt 0.331172 0.472987 +vt 0.332669 0.499429 +vt 0.307266 0.446826 +vt 0.329698 0.445314 +vt 0.352075 0.444560 +vt 0.352620 0.472183 +vt 0.353176 0.498607 +vt 0.304902 0.417885 +vt 0.328264 0.416412 +vt 0.302582 0.387789 +vt 0.326878 0.386353 +vt 0.351079 0.385649 +vt 0.351552 0.415665 +vt 0.374813 0.415626 +vt 0.374430 0.444448 +vt 0.375234 0.385649 +vt 0.399396 0.386340 +vt 0.398098 0.416309 +vt 0.396825 0.445063 +vt 0.374060 0.472102 +vt 0.373682 0.498537 +vt 0.395537 0.472758 +vt 0.394233 0.499220 +vt 0.560340 0.529412 +vt 0.567684 0.501172 +vt 0.590491 0.506931 +vt 0.582819 0.535728 +vt 0.574506 0.472413 +vt 0.597576 0.477812 +vt 0.620823 0.483333 +vt 0.613633 0.512845 +vt 0.605815 0.542261 +vt 0.581055 0.443230 +vt 0.604323 0.448464 +vt 0.587478 0.413760 +vt 0.610924 0.418971 +vt 0.634302 0.424238 +vt 0.627645 0.453784 +vt 0.617250 0.275103 +vt 0.625892 0.304756 +vt 0.602436 0.311441 +vt 0.594007 0.281986 +vt 0.634296 0.334562 +vt 0.610710 0.341182 +vt 0.587055 0.347675 +vt 0.579043 0.317958 +vt 0.570926 0.288676 +vt 0.598825 0.216418 +vt 0.608332 0.245670 +vt 0.585274 0.252909 +vt 0.575987 0.224253 +vt 0.562533 0.259934 +vt 0.553649 0.231810 +vt 0.320096 0.726892 +vt 0.301040 0.723358 +vt 0.304910 0.705405 +vt 0.322390 0.708327 +vt 0.282665 0.718043 +vt 0.288253 0.700952 +vt 0.292740 0.685574 +vt 0.307952 0.688948 +vt 0.324158 0.691125 +vt 0.265239 0.710858 +vt 0.272702 0.694816 +vt 0.248824 0.701653 +vt 0.258318 0.686728 +vt 0.266531 0.674018 +vt 0.278894 0.680767 +vt 0.283602 0.668631 +vt 0.295966 0.671579 +vt 0.273262 0.663800 +vt 0.277792 0.656942 +vt 0.285862 0.657645 +vt 0.297466 0.658415 +vt 0.310031 0.673681 +vt 0.325315 0.675009 +vt 0.310994 0.659104 +vt 0.325796 0.659533 +vt 0.190679 0.639401 +vt 0.208340 0.628734 +vt 0.220031 0.647349 +vt 0.204141 0.659114 +vt 0.225122 0.619544 +vt 0.234981 0.637372 +vt 0.245083 0.652429 +vt 0.232241 0.663199 +vt 0.218400 0.676022 +vt 0.241154 0.611873 +vt 0.249215 0.629233 +vt 0.256760 0.605653 +vt 0.263147 0.622888 +vt 0.269068 0.637486 +vt 0.257149 0.643825 +vt 0.264918 0.655452 +vt 0.255449 0.664635 +vt 0.274204 0.649212 +vt 0.244943 0.676272 +vt 0.233284 0.690133 +vt 0.321430 0.592106 +vt 0.323269 0.610758 +vt 0.307377 0.612466 +vt 0.304703 0.594168 +vt 0.324682 0.627982 +vt 0.309458 0.629142 +vt 0.295017 0.630853 +vt 0.292016 0.614896 +vt 0.288325 0.597035 +vt 0.325557 0.644074 +vt 0.310738 0.644504 +vt 0.297000 0.645150 +vt 0.284774 0.646349 +vt 0.281583 0.633422 +vt 0.277309 0.618262 +vt 0.272379 0.600805 +vt 0.397591 0.724771 +vt 0.394293 0.706380 +vt 0.411564 0.702521 +vt 0.416396 0.720207 +vt 0.391604 0.689318 +vt 0.407648 0.686280 +vt 0.422627 0.682104 +vt 0.427923 0.697184 +vt 0.434417 0.713908 +vt 0.389592 0.673305 +vt 0.404762 0.671171 +vt 0.388297 0.657894 +vt 0.403035 0.656690 +vt 0.416480 0.655294 +vt 0.418669 0.668331 +vt 0.430829 0.664740 +vt 0.436162 0.676576 +vt 0.427998 0.653918 +vt 0.435998 0.652794 +vt 0.440869 0.659383 +vt 0.448112 0.669197 +vt 0.443081 0.690234 +vt 0.451380 0.705804 +vt 0.456966 0.681409 +vt 0.467220 0.695750 +vt 0.389213 0.590428 +vt 0.405986 0.591654 +vt 0.404238 0.610019 +vt 0.388310 0.609119 +vt 0.422439 0.593693 +vt 0.419663 0.611663 +vt 0.417489 0.627709 +vt 0.403012 0.626745 +vt 0.387775 0.626368 +vt 0.438495 0.596645 +vt 0.434475 0.614265 +vt 0.454273 0.600676 +vt 0.448803 0.618142 +vt 0.443666 0.632972 +vt 0.430999 0.629574 +vt 0.428491 0.642612 +vt 0.416253 0.642053 +vt 0.439165 0.644910 +vt 0.402528 0.642123 +vt 0.387730 0.642463 +vt 0.521666 0.630752 +vt 0.509353 0.651046 +vt 0.492940 0.640207 +vt 0.503569 0.621100 +vt 0.496093 0.668613 +vt 0.481647 0.656609 +vt 0.468307 0.646581 +vt 0.477559 0.631080 +vt 0.486424 0.612851 +vt 0.482056 0.683448 +vt 0.469714 0.670288 +vt 0.458641 0.659271 +vt 0.448734 0.650634 +vt 0.455854 0.638657 +vt 0.462985 0.623733 +vt 0.470101 0.606060 +vt 0.302650 0.046307 +vt 0.305928 0.064706 +vt 0.288649 0.068546 +vt 0.283835 0.050851 +vt 0.308599 0.081775 +vt 0.292549 0.084796 +vt 0.277561 0.088958 +vt 0.272279 0.073868 +vt 0.265801 0.057131 +vt 0.310595 0.097792 +vt 0.295420 0.099912 +vt 0.311877 0.113208 +vt 0.297134 0.114398 +vt 0.283684 0.115782 +vt 0.281507 0.102739 +vt 0.269339 0.106319 +vt 0.264016 0.094474 +vt 0.272160 0.117148 +vt 0.264157 0.118264 +vt 0.259290 0.111668 +vt 0.252055 0.101843 +vt 0.257108 0.080804 +vt 0.248823 0.065219 +vt 0.243209 0.089618 +vt 0.232966 0.075260 +vt 0.310906 0.180687 +vt 0.294129 0.179450 +vt 0.295891 0.161081 +vt 0.311823 0.161993 +vt 0.277672 0.177399 +vt 0.280462 0.159424 +vt 0.282650 0.143375 +vt 0.297131 0.144352 +vt 0.312371 0.144741 +vt 0.261611 0.174434 +vt 0.265646 0.156809 +vt 0.245829 0.170389 +vt 0.251316 0.152919 +vt 0.256468 0.138087 +vt 0.269137 0.141497 +vt 0.271657 0.128457 +vt 0.283899 0.129027 +vt 0.260982 0.126148 +vt 0.297627 0.128970 +vt 0.312430 0.128643 +vt 0.178426 0.140236 +vt 0.190766 0.119942 +vt 0.207177 0.130804 +vt 0.196524 0.149911 +vt 0.204051 0.102379 +vt 0.218492 0.114404 +vt 0.231828 0.124450 +vt 0.222558 0.139949 +vt 0.213671 0.158180 +vt 0.218110 0.087552 +vt 0.230444 0.100731 +vt 0.241511 0.111763 +vt 0.251414 0.120413 +vt 0.244279 0.132389 +vt 0.237132 0.147314 +vt 0.229997 0.164989 +vt 0.380156 0.044276 +vt 0.399206 0.047832 +vt 0.395315 0.065780 +vt 0.377840 0.062838 +vt 0.417573 0.053169 +vt 0.411966 0.070251 +vt 0.407462 0.085621 +vt 0.392256 0.082231 +vt 0.376054 0.080038 +vt 0.434987 0.060373 +vt 0.427506 0.076404 +vt 0.451387 0.069595 +vt 0.441878 0.084506 +vt 0.433653 0.097203 +vt 0.421300 0.090442 +vt 0.416581 0.102571 +vt 0.404223 0.099611 +vt 0.426914 0.107411 +vt 0.422378 0.114263 +vt 0.414310 0.113552 +vt 0.402709 0.112771 +vt 0.390161 0.097495 +vt 0.374880 0.096151 +vt 0.389185 0.112069 +vt 0.374383 0.111627 +vt 0.509434 0.131888 +vt 0.491772 0.142529 +vt 0.480107 0.123911 +vt 0.496003 0.112171 +vt 0.474991 0.151697 +vt 0.465154 0.133868 +vt 0.455072 0.118807 +vt 0.467920 0.108055 +vt 0.481770 0.095254 +vt 0.458961 0.159349 +vt 0.450919 0.141990 +vt 0.443357 0.165553 +vt 0.436987 0.148320 +vt 0.431081 0.133722 +vt 0.443002 0.127396 +vt 0.435247 0.115765 +vt 0.444722 0.106595 +vt 0.425957 0.121995 +vt 0.455238 0.094973 +vt 0.466908 0.081130 +vt 0.378697 0.179051 +vt 0.376870 0.160400 +vt 0.392761 0.158704 +vt 0.395423 0.177000 +vt 0.375470 0.143176 +vt 0.390693 0.142029 +vt 0.405134 0.140330 +vt 0.408121 0.156285 +vt 0.411798 0.174145 +vt 0.374609 0.127084 +vt 0.389427 0.126668 +vt 0.403164 0.126034 +vt 0.415387 0.124847 +vt 0.418566 0.137774 +vt 0.422826 0.152932 +vt 0.427741 0.170387 +vt 0.378368 0.727685 +vt 0.376495 0.708874 +vt 0.358942 0.729019 +vt 0.358425 0.710049 +vt 0.357947 0.692313 +vt 0.374935 0.691319 +vt 0.339467 0.728751 +vt 0.340313 0.709854 +vt 0.340925 0.692231 +vt 0.341257 0.675634 +vt 0.357501 0.675576 +vt 0.341280 0.659650 +vt 0.357075 0.659438 +vt 0.373719 0.674773 +vt 0.372854 0.658822 +vt 0.372335 0.642888 +vt 0.356655 0.643333 +vt 0.356226 0.626665 +vt 0.372103 0.626366 +vt 0.340968 0.643701 +vt 0.340349 0.627178 +vt 0.339453 0.609605 +vt 0.355777 0.608965 +vt 0.338317 0.590669 +vt 0.355300 0.589877 +vt 0.372107 0.608783 +vt 0.372297 0.589830 +vt 0.159859 0.504584 +vt 0.168230 0.532278 +vt 0.151887 0.476096 +vt 0.174495 0.470093 +vt 0.181882 0.498378 +vt 0.189580 0.525712 +vt 0.144139 0.446943 +vt 0.136390 0.417151 +vt 0.160064 0.411210 +vt 0.167296 0.441040 +vt 0.190100 0.435606 +vt 0.196705 0.464693 +vt 0.183490 0.405778 +vt 0.206798 0.400781 +vt 0.212715 0.430865 +vt 0.218550 0.459833 +vt 0.203402 0.492790 +vt 0.210342 0.519849 +vt 0.224511 0.487846 +vt 0.230643 0.514710 +vt 0.245521 0.483535 +vt 0.250768 0.510247 +vt 0.240395 0.455626 +vt 0.262442 0.452000 +vt 0.266698 0.479852 +vt 0.271030 0.506457 +vt 0.235345 0.426663 +vt 0.230278 0.396550 +vt 0.254063 0.392942 +vt 0.258264 0.423092 +vt 0.281483 0.420090 +vt 0.284790 0.449100 +vt 0.278219 0.389988 +vt 0.288118 0.476840 +vt 0.291511 0.503365 +vt 0.552252 0.556913 +vt 0.530842 0.550295 +vt 0.538325 0.523461 +vt 0.543222 0.583276 +vt 0.522595 0.575793 +vt 0.502829 0.569166 +vt 0.510146 0.544342 +vt 0.516893 0.518042 +vt 0.533110 0.608056 +vt 0.513481 0.599523 +vt 0.494821 0.592142 +vt 0.477063 0.585908 +vt 0.483746 0.563521 +vt 0.459832 0.580822 +vt 0.465319 0.558769 +vt 0.490144 0.539152 +vt 0.496075 0.513256 +vt 0.470616 0.534801 +vt 0.475738 0.509136 +vt 0.451441 0.531053 +vt 0.455590 0.505650 +vt 0.447109 0.554917 +vt 0.428825 0.551788 +vt 0.432095 0.528088 +vt 0.435317 0.502813 +vt 0.442762 0.576827 +vt 0.425538 0.573767 +vt 0.408057 0.571490 +vt 0.410276 0.549515 +vt 0.390347 0.570023 +vt 0.391591 0.548020 +vt 0.412557 0.525852 +vt 0.414834 0.500655 +vt 0.392905 0.524372 +vt 0.382887 0.024192 +vt 0.403764 0.028222 +vt 0.385989 0.002315 +vt 0.408952 0.006701 +vt 0.431425 0.013364 +vt 0.424072 0.034270 +vt 0.405674 0.766303 +vt 0.401394 0.744655 +vt 0.421992 0.739511 +vt 0.428328 0.760681 +vt 0.441904 0.732390 +vt 0.450359 0.752821 +vt 0.460839 0.723269 +vt 0.471439 0.742747 +vt 0.478716 0.712074 +vt 0.491468 0.730432 +vt 0.443519 0.042378 +vt 0.453077 0.022300 +vt 0.473809 0.033544 +vt 0.462027 0.052626 +vt 0.479716 0.065249 +vt 0.493733 0.047299 +vt 0.512962 0.063882 +vt 0.496737 0.080542 +vt 0.495642 0.698567 +vt 0.510550 0.715670 +vt 0.511755 0.682449 +vt 0.528777 0.698143 +vt 0.526983 0.663502 +vt 0.546018 0.677616 +vt 0.541049 0.641720 +vt 0.561957 0.654031 +vt 0.513030 0.098733 +vt 0.531373 0.083542 +vt 0.548652 0.106359 +vt 0.528317 0.119845 +vt 0.385527 0.244994 +vt 0.405153 0.242607 +vt 0.408585 0.267775 +vt 0.383115 0.221376 +vt 0.401758 0.218997 +vt 0.420245 0.215834 +vt 0.424649 0.239454 +vt 0.429052 0.264682 +vt 0.380824 0.199414 +vt 0.398481 0.197090 +vt 0.415884 0.193958 +vt 0.433003 0.190044 +vt 0.438436 0.211812 +vt 0.449929 0.185190 +vt 0.456530 0.207055 +vt 0.443933 0.235564 +vt 0.449298 0.260897 +vt 0.463020 0.230877 +vt 0.469402 0.256446 +vt 0.482447 0.225551 +vt 0.489682 0.251325 +vt 0.474806 0.201368 +vt 0.493702 0.194735 +vt 0.502315 0.219334 +vt 0.510421 0.245485 +vt 0.466970 0.179219 +vt 0.484485 0.172056 +vt 0.502850 0.163681 +vt 0.513238 0.187061 +vt 0.522128 0.154083 +vt 0.533595 0.178462 +vt 0.522846 0.212292 +vt 0.531753 0.238946 +vt 0.544063 0.204520 +vt 0.321880 0.043415 +vt 0.323732 0.062231 +vt 0.341310 0.042103 +vt 0.341806 0.061075 +vt 0.342265 0.078814 +vt 0.325274 0.079790 +vt 0.360787 0.042394 +vt 0.359919 0.061290 +vt 0.359287 0.078913 +vt 0.358938 0.095510 +vt 0.342694 0.095552 +vt 0.358900 0.111495 +vt 0.343104 0.111693 +vt 0.326473 0.096339 +vt 0.327322 0.112294 +vt 0.327828 0.128230 +vt 0.343510 0.127799 +vt 0.343925 0.144468 +vt 0.328046 0.144755 +vt 0.359197 0.127444 +vt 0.359803 0.143968 +vt 0.360686 0.161541 +vt 0.344361 0.162170 +vt 0.361810 0.180478 +vt 0.344825 0.181260 +vt 0.328029 0.162340 +vt 0.327826 0.181297 +vt 0.147750 0.214097 +vt 0.169170 0.220739 +vt 0.161658 0.247588 +vt 0.156810 0.187723 +vt 0.177445 0.195230 +vt 0.197219 0.201878 +vt 0.189876 0.226713 +vt 0.183103 0.253029 +vt 0.166952 0.162936 +vt 0.186586 0.171492 +vt 0.205251 0.178894 +vt 0.223014 0.185146 +vt 0.216310 0.207542 +vt 0.240252 0.190249 +vt 0.234745 0.212311 +vt 0.209889 0.231923 +vt 0.203935 0.257834 +vt 0.229428 0.236290 +vt 0.248614 0.240053 +vt 0.252963 0.216177 +vt 0.271255 0.219319 +vt 0.267970 0.243031 +vt 0.257328 0.194259 +vt 0.274557 0.197332 +vt 0.292045 0.199620 +vt 0.289813 0.221604 +vt 0.309759 0.201098 +vt 0.308505 0.223108 +vt 0.287519 0.245277 +vt 0.307181 0.246765 +vt 0.317389 0.746980 +vt 0.296506 0.742976 +vt 0.314315 0.768861 +vt 0.291345 0.764505 +vt 0.268861 0.757871 +vt 0.276188 0.736952 +vt 0.294615 0.004755 +vt 0.298869 0.026413 +vt 0.278260 0.031534 +vt 0.271947 0.010350 +vt 0.258333 0.038635 +vt 0.249899 0.018186 +vt 0.239380 0.047736 +vt 0.228798 0.028239 +vt 0.221483 0.058917 +vt 0.208746 0.040536 +vt 0.256727 0.728868 +vt 0.247193 0.748963 +vt 0.226442 0.737743 +vt 0.238202 0.718640 +vt 0.220491 0.706036 +vt 0.206492 0.724011 +vt 0.187234 0.707447 +vt 0.203444 0.690758 +vt 0.204534 0.072411 +vt 0.189638 0.055282 +vt 0.188395 0.088520 +vt 0.171381 0.072798 +vt 0.173138 0.107461 +vt 0.154107 0.093318 +vt 0.159041 0.129242 +vt 0.138133 0.116901 +vt 0.187120 0.672579 +vt 0.168787 0.687802 +vt 0.151468 0.664994 +vt 0.171799 0.651473 +vt 0.380498 0.747887 +vt 0.382843 0.769727 +vt 0.360110 0.771116 +vt 0.359502 0.749327 +vt 0.361827 0.022093 +vt 0.362981 0.000142 +vt 0.340774 0.021792 +vt 0.340194 -0.000000 +vt 0.319773 0.023207 +vt 0.317456 0.001360 +vt 0.338452 0.749052 +vt 0.337326 0.771004 +vt 0.142092 0.332896 +vt 0.135923 0.362422 +vt 0.148292 0.303864 +vt 0.170870 0.308671 +vt 0.165114 0.337623 +vt 0.159368 0.367193 +vt 0.154762 0.275370 +vt 0.176814 0.280425 +vt 0.198341 0.284935 +vt 0.193012 0.312991 +vt 0.187806 0.341907 +vt 0.182605 0.371541 +vt 0.493136 0.370008 +vt 0.487268 0.340122 +vt 0.509776 0.335336 +vt 0.516329 0.365171 +vt 0.481459 0.311256 +vt 0.503283 0.306447 +vt 0.525425 0.301025 +vt 0.532570 0.330038 +vt 0.539700 0.359800 +vt 0.475518 0.283282 +vt 0.496599 0.278359 +vt 0.518083 0.272792 +vt 0.540083 0.266615 +vt 0.548005 0.295071 +vt 0.555692 0.324207 +vt 0.563318 0.353933 +vt 0.418704 0.350957 +vt 0.422099 0.380950 +vt 0.415361 0.322054 +vt 0.437641 0.319022 +vt 0.441898 0.347993 +vt 0.446149 0.377955 +vt 0.411988 0.294286 +vt 0.433385 0.291256 +vt 0.454537 0.287577 +vt 0.459657 0.315432 +vt 0.464724 0.344338 +vt 0.469828 0.374284 +vt 0.494228 0.395841 +vt 0.489681 0.425560 +vt 0.467230 0.422338 +vt 0.471066 0.392554 +vt 0.485198 0.454307 +vt 0.463442 0.451123 +vt 0.441479 0.448489 +vt 0.444489 0.419674 +vt 0.447532 0.389823 +vt 0.480562 0.482265 +vt 0.459583 0.478949 +vt 0.438441 0.476231 +vt 0.417058 0.474151 +vt 0.419229 0.446479 +vt 0.421402 0.417612 +vt 0.423583 0.387724 +vt 0.557801 0.438215 +vt 0.563937 0.408714 +vt 0.551632 0.467224 +vt 0.529071 0.462440 +vt 0.534798 0.433513 +vt 0.540512 0.403969 +vt 0.545192 0.495697 +vt 0.523156 0.490664 +vt 0.501645 0.486174 +vt 0.506947 0.458142 +vt 0.512127 0.429252 +vt 0.517297 0.399647 +vt 0.250170 0.586012 +vt 0.267102 0.581143 +vt 0.243550 0.564137 +vt 0.261654 0.559367 +vt 0.279852 0.555334 +vt 0.284225 0.577217 +vt 0.237042 0.540302 +vt 0.256142 0.535601 +vt 0.275439 0.531702 +vt 0.294943 0.528545 +vt 0.298345 0.552163 +vt 0.314575 0.526155 +vt 0.316992 0.549777 +vt 0.301632 0.574075 +vt 0.319291 0.571742 +vt 0.177952 0.617206 +vt 0.197234 0.607580 +vt 0.166450 0.592820 +vt 0.186814 0.584193 +vt 0.206359 0.576495 +vt 0.215603 0.599182 +vt 0.155944 0.566751 +vt 0.177173 0.558950 +vt 0.197717 0.551882 +vt 0.217600 0.545644 +vt 0.225265 0.569841 +vt 0.233123 0.591998 +vt 0.553645 0.617512 +vt 0.564653 0.591428 +vt 0.587073 0.600082 +vt 0.575484 0.627767 +vt 0.574294 0.564018 +vt 0.597069 0.571447 +vt 0.576808 0.159217 +vt 0.588422 0.187490 +vt 0.565886 0.196200 +vt 0.554721 0.169128 +vt 0.563659 0.132012 +vt 0.542263 0.143491 +vt 0.337036 0.570219 +vt 0.335641 0.548182 +vt 0.354277 0.547356 +vt 0.354802 0.569415 +vt 0.334171 0.524550 +vt 0.353732 0.523720 +vt 0.373297 0.523663 +vt 0.372920 0.547307 +vt 0.372577 0.569361 +vt 0.363080 0.200928 +vt 0.364466 0.222965 +vt 0.345829 0.223786 +vt 0.345313 0.201724 +vt 0.365932 0.246597 +vt 0.346368 0.247425 +vt 0.326797 0.247480 +vt 0.327181 0.223829 +vt 0.327535 0.201769 +vt 0.146412 0.153453 +vt 0.135372 0.179545 +vt 0.112944 0.170862 +vt 0.124569 0.143169 +vt 0.125697 0.206966 +vt 0.102910 0.199509 +vt 0.123223 0.612133 +vt 0.111563 0.583849 +vt 0.134110 0.575104 +vt 0.145317 0.602186 +vt 0.136417 0.639343 +vt 0.157815 0.627829 +vt 0.043375 0.084822 +vt 0.040240 0.105364 +vt 0.038588 0.105132 +vt 0.041725 0.084580 +vt 0.037331 0.125822 +vt 0.035651 0.125587 +vt 0.033470 0.125283 +vt 0.036420 0.104827 +vt 0.039563 0.084261 +vt 0.018795 0.165316 +vt 0.021377 0.144598 +vt 0.024237 0.144944 +vt 0.021646 0.165639 +vt 0.024093 0.123977 +vt 0.026970 0.124378 +vt 0.029425 0.124720 +vt 0.026679 0.145243 +vt 0.024083 0.165918 +vt 0.050125 0.043391 +vt 0.046684 0.064131 +vt 0.045036 0.063876 +vt 0.048480 0.043120 +vt 0.042879 0.063540 +vt 0.046330 0.042766 +vt 0.050136 0.956651 +vt 0.053641 0.977248 +vt 0.052002 0.977532 +vt 0.048492 0.956922 +vt 0.057304 0.997754 +vt 0.055684 0.998128 +vt 0.053538 0.998597 +vt 0.049867 0.977899 +vt 0.046344 0.957276 +vt 0.044249 1.000000 +vt 0.040723 0.979485 +vt 0.043523 0.979000 +vt 0.047079 0.999636 +vt 0.037153 0.958854 +vt 0.039963 0.958365 +vt 0.042370 0.957948 +vt 0.045918 0.978583 +vt 0.049519 0.999304 +vt 0.033672 0.938070 +vt 0.036491 0.937586 +vt 0.030328 0.917321 +vt 0.033157 0.916849 +vt 0.035576 0.916450 +vt 0.038905 0.937174 +vt 0.031925 0.166912 +vt 0.029471 0.187752 +vt 0.027827 0.187573 +vt 0.030272 0.166694 +vt 0.027223 0.208950 +vt 0.025518 0.208949 +vt 0.023330 0.207601 +vt 0.025646 0.187175 +vt 0.028107 0.166411 +vt 0.057295 0.002247 +vt 0.053631 0.022773 +vt 0.051991 0.022489 +vt 0.055674 0.001873 +vt 0.049853 0.022122 +vt 0.053526 0.001403 +vt 0.037129 0.041187 +vt 0.040700 0.020535 +vt 0.043503 0.021021 +vt 0.039942 0.041677 +vt 0.044227 -0.000000 +vt 0.047060 0.000364 +vt 0.049503 0.000696 +vt 0.045900 0.021438 +vt 0.042351 0.042094 +vt 0.027144 0.896705 +vt 0.029988 0.896256 +vt 0.024120 0.876147 +vt 0.026994 0.875746 +vt 0.029447 0.875404 +vt 0.032416 0.895876 +vt 0.034536 0.146296 +vt 0.032883 0.146067 +vt 0.030714 0.145768 +vt 0.019914 0.708722 +vt 0.021712 0.730042 +vt 0.019923 0.732437 +vt 0.018236 0.709021 +vt 0.024167 0.749951 +vt 0.022385 0.750109 +vt 0.019849 0.750337 +vt 0.019046 0.746317 +vt 0.017688 0.743500 +vt 0.017041 0.727337 +vt 0.015846 0.708080 +vt 0.031939 0.833253 +vt 0.034550 0.853849 +vt 0.032899 0.854077 +vt 0.030289 0.833471 +vt 0.037345 0.874303 +vt 0.035666 0.874537 +vt 0.033488 0.874841 +vt 0.030732 0.854377 +vt 0.028126 0.833754 +vt 0.001858 0.374585 +vt 0.002814 0.353816 +vt 0.005689 0.353979 +vt 0.004759 0.374697 +vt 0.003920 0.332975 +vt 0.006782 0.333160 +vt 0.009228 0.333313 +vt 0.008144 0.354114 +vt 0.007235 0.374792 +vt 0.025237 0.230264 +vt 0.023053 0.232306 +vt 0.024146 0.250303 +vt 0.022363 0.250145 +vt 0.019825 0.249922 +vt 0.019743 0.245822 +vt 0.018901 0.242808 +vt 0.021113 0.226777 +vt 0.015866 0.242531 +vt 0.017178 0.226343 +vt 0.019292 0.225224 +vt 0.017493 0.241667 +vt 0.019241 0.207140 +vt 0.021346 0.206826 +vt 0.027238 0.791256 +vt 0.029486 0.812434 +vt 0.027843 0.812613 +vt 0.025535 0.791258 +vt 0.025665 0.813011 +vt 0.023349 0.792604 +vt 0.005145 0.312010 +vt 0.007993 0.312141 +vt 0.006302 0.290941 +vt 0.009204 0.290678 +vt 0.011718 0.291901 +vt 0.010455 0.312428 +vt 0.013059 0.500125 +vt 0.013138 0.520894 +vt 0.011474 0.520904 +vt 0.011413 0.500125 +vt 0.013298 0.541789 +vt 0.011631 0.541812 +vt 0.009454 0.541842 +vt 0.009304 0.520917 +vt 0.009253 0.500125 +vt 0.000122 0.541907 +vt 0.000009 0.520947 +vt 0.002852 0.520941 +vt 0.002976 0.541893 +vt 0.000000 0.500125 +vt 0.002829 0.500125 +vt 0.005251 0.500125 +vt 0.005288 0.520935 +vt 0.005420 0.541880 +vt 0.006326 0.709307 +vt 0.005167 0.688239 +vt 0.008014 0.688108 +vt 0.009227 0.709570 +vt 0.003939 0.667274 +vt 0.006800 0.667089 +vt 0.009247 0.666935 +vt 0.010476 0.687820 +vt 0.011741 0.708347 +vt 0.043388 0.915261 +vt 0.046696 0.935932 +vt 0.045049 0.936186 +vt 0.041740 0.915503 +vt 0.042894 0.936522 +vt 0.039580 0.915822 +vt 0.013293 0.458460 +vt 0.013136 0.479355 +vt 0.011472 0.479346 +vt 0.011627 0.458437 +vt 0.009302 0.479333 +vt 0.009449 0.458407 +vt 0.047875 0.021782 +vt 0.044339 0.042435 +vt 0.051519 0.001015 +vt 0.021613 0.186703 +vt 0.023637 0.186869 +vt 0.026095 0.166157 +vt 0.006037 0.416300 +vt 0.006551 0.395478 +vt 0.008584 0.395529 +vt 0.008064 0.416335 +vt 0.009275 0.374871 +vt 0.011314 0.374949 +vt 0.010617 0.395597 +vt 0.010091 0.416387 +vt 0.047891 0.978239 +vt 0.051533 0.998985 +vt 0.044355 0.957607 +vt 0.005416 0.458370 +vt 0.005663 0.437298 +vt 0.007684 0.437321 +vt 0.007431 0.458384 +vt 0.009707 0.437359 +vt 0.008161 0.646135 +vt 0.010191 0.646029 +vt 0.011269 0.666815 +vt 0.007249 0.625457 +vt 0.009289 0.625379 +vt 0.011328 0.625300 +vt 0.012224 0.645941 +vt 0.013293 0.666712 +vt 0.013766 0.793074 +vt 0.011082 0.772154 +vt 0.013928 0.768980 +vt 0.016575 0.792304 +vt 0.007923 0.751381 +vt 0.010683 0.751136 +vt 0.013515 0.750880 +vt 0.014404 0.754956 +vt 0.015889 0.757708 +vt 0.017202 0.773880 +vt 0.019264 0.793066 +vt 0.012497 0.687627 +vt 0.013757 0.707667 +vt 0.014528 0.687575 +vt 0.007346 0.269864 +vt 0.010708 0.267240 +vt 0.007895 0.248849 +vt 0.010658 0.249094 +vt 0.013492 0.249342 +vt 0.013649 0.253512 +vt 0.014626 0.256484 +vt 0.013068 0.272643 +vt 0.005285 0.479315 +vt 0.007293 0.479321 +vt 0.007251 0.500125 +vt 0.024105 0.834246 +vt 0.021635 0.813483 +vt 0.023657 0.813317 +vt 0.026116 0.834008 +vt 0.021367 0.793379 +vt 0.007295 0.520929 +vt 0.007436 0.541866 +vt 0.006047 0.583950 +vt 0.005670 0.562952 +vt 0.007692 0.562928 +vt 0.008073 0.583915 +vt 0.009714 0.562890 +vt 0.010101 0.583862 +vt 0.026701 0.854901 +vt 0.028717 0.854647 +vt 0.031468 0.875122 +vt 0.035556 0.083633 +vt 0.038885 0.062888 +vt 0.040880 0.063222 +vt 0.037557 0.083956 +vt 0.034424 0.895568 +vt 0.037576 0.916127 +vt 0.036437 0.895277 +vt 0.011054 0.228071 +vt 0.013902 0.231247 +vt 0.013738 0.207132 +vt 0.016549 0.207902 +vt 0.014376 0.245299 +vt 0.006563 0.604771 +vt 0.008595 0.604720 +vt 0.010629 0.604652 +vt 0.032394 0.104228 +vt 0.034405 0.104535 +vt 0.031448 0.125002 +vt 0.012476 0.312621 +vt 0.011250 0.333433 +vt 0.013734 0.292581 +vt 0.015823 0.292167 +vt 0.014507 0.312673 +vt 0.013275 0.333537 +vt 0.040897 0.936841 +vt 0.014952 0.274116 +vt 0.016075 0.257617 +vt 0.017662 0.256740 +vt 0.017017 0.272908 +vt 0.028696 0.145497 +vt 0.010175 0.354219 +vt 0.012207 0.354308 +vt 0.016310 0.186179 +vt 0.019137 0.186552 +vt 0.015208 0.375099 +vt 0.014471 0.395741 +vt 0.012804 0.395679 +vt 0.013514 0.375034 +vt 0.013941 0.416506 +vt 0.012275 0.416453 +vt 0.013556 0.437448 +vt 0.011889 0.437409 +vt 0.000715 0.416232 +vt 0.001213 0.395366 +vt 0.004092 0.395425 +vt 0.003584 0.416267 +vt 0.013563 0.562801 +vt 0.011896 0.562841 +vt 0.013950 0.583743 +vt 0.012284 0.583796 +vt 0.000724 0.584018 +vt 0.000358 0.562991 +vt 0.003221 0.562972 +vt 0.003594 0.583983 +vt 0.019891 0.291525 +vt 0.018372 0.312779 +vt 0.016723 0.312665 +vt 0.018213 0.291226 +vt 0.017119 0.333716 +vt 0.015455 0.333640 +vt 0.018823 0.834849 +vt 0.016338 0.814007 +vt 0.019162 0.813634 +vt 0.021671 0.834526 +vt 0.000117 0.458344 +vt 0.000351 0.437259 +vt 0.003213 0.437279 +vt 0.002971 0.458357 +vt 0.014482 0.604508 +vt 0.012816 0.604570 +vt 0.015222 0.625149 +vt 0.013528 0.625215 +vt 0.001872 0.625665 +vt 0.001225 0.604884 +vt 0.004104 0.604825 +vt 0.004773 0.625553 +vt 0.016061 0.354461 +vt 0.014394 0.354395 +vt 0.021404 0.855546 +vt 0.024262 0.855200 +vt 0.016077 0.645787 +vt 0.014411 0.645853 +vt 0.017138 0.666532 +vt 0.015474 0.666608 +vt 0.014652 0.743762 +vt 0.013093 0.727603 +vt 0.014976 0.726130 +vt 0.016100 0.742625 +vt 0.025253 0.769964 +vt 0.023071 0.767923 +vt 0.021133 0.773446 +vt 0.018921 0.757425 +vt 0.019762 0.754400 +vt 0.018393 0.687469 +vt 0.016744 0.687582 +vt 0.030302 0.082762 +vt 0.033647 0.061992 +vt 0.036469 0.062476 +vt 0.033134 0.083233 +vt 0.019314 0.774998 +vt 0.017514 0.758568 +vt 0.021688 0.270205 +vt 0.019899 0.267810 +vt 0.019023 0.253909 +vt 0.040253 0.894740 +vt 0.038603 0.894972 +vt 0.002830 0.646434 +vt 0.005705 0.646271 +vt 0.027118 0.103398 +vt 0.029964 0.103847 +vt 0.000006 0.479303 +vt 0.002850 0.479309 +vt 0.021382 0.500124 +vt 0.016393 0.500124 +vt 0.016464 0.479369 +vt 0.021455 0.479396 +vt 0.016635 0.458494 +vt 0.021647 0.458549 +vt 0.016911 0.437504 +vt 0.021947 0.437587 +vt 0.017308 0.416583 +vt 0.022369 0.416700 +vt 0.017851 0.395842 +vt 0.022939 0.395996 +vt 0.018574 0.375229 +vt 0.023661 0.375425 +vt 0.019440 0.354621 +vt 0.024526 0.354859 +vt 0.020494 0.333894 +vt 0.025556 0.334165 +vt 0.021716 0.313013 +vt 0.026739 0.313335 +vt 0.023206 0.292024 +vt 0.028204 0.292445 +vt 0.024983 0.271070 +vt 0.029964 0.271650 +vt 0.027451 0.250597 +vt 0.032404 0.251037 +vt 0.028635 0.229994 +vt 0.033643 0.230301 +vt 0.030576 0.209043 +vt 0.035573 0.209508 +vt 0.032806 0.188110 +vt 0.037809 0.188677 +vt 0.035280 0.167331 +vt 0.040312 0.167956 +vt 0.037892 0.146733 +vt 0.042942 0.147394 +vt 0.040669 0.126286 +vt 0.045712 0.126989 +vt 0.043587 0.105860 +vt 0.048624 0.106604 +vt 0.046704 0.085339 +vt 0.051709 0.086115 +vt 0.049998 0.064667 +vt 0.054971 0.065472 +vt 0.053423 0.043947 +vt 0.058369 0.044777 +vt 0.056935 0.023351 +vt 0.061867 0.024211 +vt 0.060583 0.002869 +vt 0.065502 0.003749 +vt 0.065502 0.996253 +vt 0.060588 0.997132 +vt 0.056941 0.976671 +vt 0.061869 0.975811 +vt 0.053430 0.956095 +vt 0.058372 0.955265 +vt 0.050006 0.935396 +vt 0.054975 0.934591 +vt 0.046714 0.914745 +vt 0.051714 0.913968 +vt 0.043597 0.894244 +vt 0.048630 0.893500 +vt 0.040680 0.873838 +vt 0.045718 0.873135 +vt 0.037903 0.853411 +vt 0.042948 0.852750 +vt 0.035291 0.832834 +vt 0.040319 0.832209 +vt 0.032817 0.812075 +vt 0.037815 0.811508 +vt 0.030587 0.791164 +vt 0.035579 0.790698 +vt 0.028647 0.770235 +vt 0.033650 0.769929 +vt 0.027471 0.749658 +vt 0.032421 0.749219 +vt 0.025008 0.729178 +vt 0.029990 0.728599 +vt 0.023229 0.708223 +vt 0.028228 0.707801 +vt 0.021737 0.687234 +vt 0.026760 0.686912 +vt 0.020513 0.666354 +vt 0.025574 0.666082 +vt 0.019456 0.645627 +vt 0.024542 0.645388 +vt 0.018588 0.625019 +vt 0.023675 0.624822 +vt 0.017863 0.604406 +vt 0.022951 0.604252 +vt 0.017317 0.583665 +vt 0.022379 0.583548 +vt 0.016918 0.562745 +vt 0.021953 0.562662 +vt 0.016639 0.541754 +vt 0.021651 0.541699 +vt 0.016467 0.520880 +vt 0.021458 0.520852 +vt 0.007372 0.730382 +vt 0.010733 0.733005 +vt 0.013673 0.746748 +s 1 +f 50/1/50 295/2/295 824/3/820 464/4/464 +f 295/2/295 63/5/63 466/6/466 824/3/820 +f 824/3/820 466/6/466 149/7/149 469/8/469 +f 464/4/464 824/3/820 469/8/469 148/9/148 +f 63/5/63 294/10/294 825/11/821 466/6/466 +f 294/10/294 36/12/36 436/13/436 825/11/821 +f 825/11/821 436/13/436 134/14/134 467/15/467 +f 466/6/466 825/11/821 467/15/467 149/7/149 +f 149/16/149 467/17/467 826/18/822 468/19/468 +f 467/17/467 134/20/134 437/21/437 826/18/822 +f 826/18/822 437/21/437 17/22/17 377/23/377 +f 468/19/468 826/18/822 377/23/377 104/24/104 +f 148/25/148 469/26/469 827/27/823 465/28/465 +f 469/26/469 149/16/149 468/19/468 827/27/823 +f 827/27/823 468/19/468 104/24/104 376/29/376 +f 465/28/465 827/27/823 376/29/376 8/30/8 +f 2/31/2 281/32/281 828/33/824 462/34/462 +f 281/32/281 56/35/56 470/36/470 828/33/824 +f 828/33/824 470/36/470 150/37/150 473/38/473 +f 462/34/462 828/33/824 473/38/473 147/39/147 +f 56/35/56 280/40/280 829/41/825 470/36/470 +f 280/40/280 46/42/46 439/43/439 829/41/825 +f 829/41/825 439/43/439 135/44/135 471/45/471 +f 470/36/470 829/41/825 471/45/471 150/37/150 +f 150/37/150 471/45/471 830/46/826 472/47/472 +f 471/45/471 135/44/135 438/48/438 830/46/826 +f 830/46/826 438/48/438 37/49/37 427/50/427 +f 472/47/472 830/46/826 427/50/427 129/51/129 +f 147/39/147 473/38/473 831/52/827 463/53/463 +f 473/38/473 150/37/150 472/47/472 831/52/827 +f 831/52/827 472/47/472 129/51/129 426/54/426 +f 463/53/463 831/52/827 426/54/426 52/55/52 +f 38/56/38 423/57/423 832/58/828 425/59/425 +f 423/57/423 127/60/127 474/61/474 832/58/828 +f 832/58/828 474/61/474 151/62/151 477/63/477 +f 425/59/425 832/58/828 477/63/477 128/64/128 +f 127/60/127 422/65/422 833/66/829 474/61/474 +f 422/65/422 51/67/51 442/68/442 833/66/829 +f 833/66/829 442/68/442 137/69/137 475/70/475 +f 474/61/474 833/66/829 475/70/475 151/62/151 +f 151/62/151 475/70/475 834/71/830 476/72/476 +f 475/70/475 137/69/137 443/73/443 834/71/830 +f 834/71/830 443/73/443 52/55/52 426/54/426 +f 476/72/476 834/71/830 426/54/426 129/51/129 +f 128/64/128 477/63/477 835/74/831 424/75/424 +f 477/63/477 151/62/151 476/72/476 835/74/831 +f 835/74/831 476/72/476 129/51/129 427/50/427 +f 424/75/424 835/74/831 427/50/427 37/49/37 +f 6/76/6 293/77/293 836/78/832 460/79/460 +f 293/77/293 62/80/62 478/81/478 836/78/832 +f 836/78/832 478/81/478 152/82/152 481/83/481 +f 460/79/460 836/78/832 481/83/481 146/84/146 +f 62/80/62 292/85/292 837/86/833 478/81/478 +f 292/85/292 16/87/16 434/88/434 837/86/833 +f 837/86/833 434/88/434 133/89/133 479/90/479 +f 478/81/478 837/86/833 479/90/479 152/82/152 +f 152/82/152 479/90/479 838/91/834 480/92/480 +f 479/90/479 133/89/133 435/93/435 838/91/834 +f 838/91/834 435/93/435 27/94/27 395/95/395 +f 480/92/480 838/91/834 395/95/395 113/96/113 +f 146/84/146 481/83/481 839/97/835 461/98/461 +f 481/83/481 152/82/152 480/92/480 839/97/835 +f 839/97/835 480/92/480 113/96/113 394/99/394 +f 461/98/461 839/97/835 394/99/394 3/100/3 +f 5/101/5 289/102/289 840/103/836 458/104/458 +f 289/102/289 60/105/60 482/106/482 840/103/836 +f 840/103/836 482/106/482 153/107/153 485/108/485 +f 458/104/458 840/103/836 485/108/485 145/109/145 +f 60/105/60 288/110/288 841/111/837 482/106/482 +f 288/110/288 26/112/26 441/113/441 841/111/837 +f 841/111/837 441/113/441 136/114/136 483/115/483 +f 482/106/482 841/111/837 483/115/483 153/107/153 +f 153/116/153 483/117/483 842/118/838 484/119/484 +f 483/117/483 136/120/136 440/121/440 842/118/838 +f 842/118/838 440/121/440 47/122/47 411/123/411 +f 484/119/484 842/118/838 411/123/411 121/124/121 +f 145/125/145 485/126/485 843/127/839 459/128/459 +f 485/126/485 153/116/153 484/119/484 843/127/839 +f 843/127/839 484/119/484 121/124/121 410/129/410 +f 459/128/459 843/127/839 410/129/410 49/130/49 +f 9/131/9 300/132/300 844/133/840 299/134/299 +f 300/132/300 66/135/66 486/136/486 844/133/840 +f 844/133/840 486/136/486 154/137/154 489/138/489 +f 299/134/299 844/133/840 489/138/489 65/139/65 +f 66/135/66 301/140/301 845/141/841 486/136/486 +f 301/140/301 12/142/12 302/143/302 845/141/841 +f 845/141/841 302/143/302 67/144/67 487/145/487 +f 486/136/486 845/141/841 487/145/487 154/137/154 +f 154/137/154 487/145/487 846/146/842 488/147/488 +f 487/145/487 67/144/67 303/148/303 846/146/842 +f 846/146/842 303/148/303 13/149/13 304/150/304 +f 488/147/488 846/146/842 304/150/304 68/151/68 +f 65/139/65 489/138/489 847/152/843 298/153/298 +f 489/138/489 154/137/154 488/147/488 847/152/843 +f 847/152/843 488/147/488 68/151/68 305/154/305 +f 298/153/298 847/152/843 305/154/305 15/155/15 +f 10/156/10 308/157/308 848/158/844 307/159/307 +f 308/157/308 70/160/70 490/161/490 848/158/844 +f 848/158/844 490/161/490 155/162/155 493/163/493 +f 307/159/307 848/158/844 493/163/493 69/164/69 +f 70/160/70 309/165/309 849/166/845 490/161/490 +f 309/165/309 14/167/14 310/168/310 849/166/845 +f 849/166/845 310/168/310 71/169/71 491/170/491 +f 490/161/490 849/166/845 491/170/491 155/162/155 +f 155/162/155 491/170/491 850/171/846 492/172/492 +f 491/170/491 71/169/71 311/173/311 850/171/846 +f 850/171/846 311/173/311 13/149/13 303/148/303 +f 492/172/492 850/171/846 303/148/303 67/144/67 +f 69/164/69 493/163/493 851/174/847 306/175/306 +f 493/163/493 155/162/155 492/172/492 851/174/847 +f 851/174/847 492/172/492 67/144/67 302/143/302 +f 306/175/306 851/174/847 302/143/302 12/142/12 +f 11/176/11 314/177/314 852/178/848 313/179/313 +f 314/177/314 73/180/73 494/181/494 852/178/848 +f 852/178/848 494/181/494 156/182/156 497/183/497 +f 313/179/313 852/178/848 497/183/497 72/184/72 +f 73/180/73 315/185/315 853/186/849 494/181/494 +f 315/185/315 15/155/15 305/154/305 853/186/849 +f 853/186/849 305/154/305 68/151/68 495/187/495 +f 494/181/494 853/186/849 495/187/495 156/182/156 +f 156/182/156 495/187/495 854/188/850 496/189/496 +f 495/187/495 68/151/68 304/150/304 854/188/850 +f 854/188/850 304/150/304 13/149/13 311/173/311 +f 496/189/496 854/188/850 311/173/311 71/169/71 +f 72/184/72 497/183/497 855/190/851 312/191/312 +f 497/183/497 156/182/156 496/189/496 855/190/851 +f 855/190/851 496/189/496 71/169/71 310/168/310 +f 312/191/312 855/190/851 310/168/310 14/167/14 +f 19/192/19 318/193/318 856/194/852 317/195/317 +f 318/193/318 75/196/75 498/197/498 856/194/852 +f 856/194/852 498/197/498 157/198/157 501/199/501 +f 317/195/317 856/194/852 501/199/501 74/200/74 +f 75/196/75 319/201/319 857/202/853 498/197/498 +f 319/201/319 22/203/22 320/204/320 857/202/853 +f 857/202/853 320/204/320 76/205/76 499/206/499 +f 498/197/498 857/202/853 499/206/499 157/198/157 +f 157/198/157 499/206/499 858/207/854 500/208/500 +f 499/206/499 76/205/76 321/209/321 858/207/854 +f 858/207/854 321/209/321 23/210/23 322/211/322 +f 500/208/500 858/207/854 322/211/322 77/212/77 +f 74/200/74 501/199/501 859/213/855 316/214/316 +f 501/199/501 157/198/157 500/208/500 859/213/855 +f 859/213/855 500/208/500 77/212/77 323/215/323 +f 316/214/316 859/213/855 323/215/323 25/216/25 +f 20/217/20 326/218/326 860/219/856 325/220/325 +f 326/218/326 79/221/79 502/222/502 860/219/856 +f 860/219/856 502/222/502 158/223/158 505/224/505 +f 325/220/325 860/219/856 505/224/505 78/225/78 +f 79/221/79 327/226/327 861/227/857 502/222/502 +f 327/226/327 24/228/24 328/229/328 861/227/857 +f 861/227/857 328/229/328 80/230/80 503/231/503 +f 502/222/502 861/227/857 503/231/503 158/223/158 +f 158/223/158 503/231/503 862/232/858 504/233/504 +f 503/231/503 80/230/80 329/234/329 862/232/858 +f 862/232/858 329/234/329 23/210/23 321/209/321 +f 504/233/504 862/232/858 321/209/321 76/205/76 +f 78/225/78 505/224/505 863/235/859 324/236/324 +f 505/224/505 158/223/158 504/233/504 863/235/859 +f 863/235/859 504/233/504 76/205/76 320/204/320 +f 324/236/324 863/235/859 320/204/320 22/203/22 +f 21/237/21 332/238/332 864/239/860 331/240/331 +f 332/238/332 82/241/82 506/242/506 864/239/860 +f 864/239/860 506/242/506 159/243/159 509/244/509 +f 331/240/331 864/239/860 509/244/509 81/245/81 +f 82/241/82 333/246/333 865/247/861 506/242/506 +f 333/246/333 25/216/25 323/215/323 865/247/861 +f 865/247/861 323/215/323 77/212/77 507/248/507 +f 506/242/506 865/247/861 507/248/507 159/243/159 +f 159/243/159 507/248/507 866/249/862 508/250/508 +f 507/248/507 77/212/77 322/211/322 866/249/862 +f 866/249/862 322/211/322 23/210/23 329/234/329 +f 508/250/508 866/249/862 329/234/329 80/230/80 +f 81/245/81 509/244/509 867/251/863 330/252/330 +f 509/244/509 159/243/159 508/250/508 867/251/863 +f 867/251/863 508/250/508 80/230/80 328/229/328 +f 330/252/330 867/251/863 328/229/328 24/228/24 +f 29/253/29 336/254/336 868/255/864 335/256/335 +f 336/254/336 84/257/84 510/258/510 868/255/864 +f 868/255/864 510/258/510 160/259/160 513/260/513 +f 335/256/335 868/255/864 513/260/513 83/261/83 +f 84/257/84 337/262/337 869/263/865 510/258/510 +f 337/262/337 32/264/32 338/265/338 869/263/865 +f 869/263/865 338/265/338 85/266/85 511/267/511 +f 510/258/510 869/263/865 511/267/511 160/259/160 +f 160/259/160 511/267/511 870/268/866 512/269/512 +f 511/267/511 85/266/85 339/270/339 870/268/866 +f 870/268/866 339/270/339 33/271/33 340/272/340 +f 512/269/512 870/268/866 340/272/340 86/273/86 +f 83/261/83 513/260/513 871/274/867 334/275/334 +f 513/260/513 160/259/160 512/269/512 871/274/867 +f 871/274/867 512/269/512 86/273/86 341/276/341 +f 334/275/334 871/274/867 341/276/341 35/277/35 +f 30/278/30 344/279/344 872/280/868 343/281/343 +f 344/279/344 88/282/88 514/283/514 872/280/868 +f 872/280/868 514/283/514 161/284/161 517/285/517 +f 343/281/343 872/280/868 517/285/517 87/286/87 +f 88/282/88 345/287/345 873/288/869 514/283/514 +f 345/287/345 34/289/34 346/290/346 873/288/869 +f 873/288/869 346/290/346 89/291/89 515/292/515 +f 514/283/514 873/288/869 515/292/515 161/284/161 +f 161/284/161 515/292/515 874/293/870 516/294/516 +f 515/292/515 89/291/89 347/295/347 874/293/870 +f 874/293/870 347/295/347 33/271/33 339/270/339 +f 516/294/516 874/293/870 339/270/339 85/266/85 +f 87/286/87 517/285/517 875/296/871 342/297/342 +f 517/285/517 161/284/161 516/294/516 875/296/871 +f 875/296/871 516/294/516 85/266/85 338/265/338 +f 342/297/342 875/296/871 338/265/338 32/264/32 +f 31/298/31 350/299/350 876/300/872 349/301/349 +f 350/299/350 91/302/91 518/303/518 876/300/872 +f 876/300/872 518/303/518 162/304/162 521/305/521 +f 349/301/349 876/300/872 521/305/521 90/306/90 +f 91/302/91 351/307/351 877/308/873 518/303/518 +f 351/307/351 35/277/35 341/276/341 877/308/873 +f 877/308/873 341/276/341 86/273/86 519/309/519 +f 518/303/518 877/308/873 519/309/519 162/304/162 +f 162/304/162 519/309/519 878/310/874 520/311/520 +f 519/309/519 86/273/86 340/272/340 878/310/874 +f 878/310/874 340/272/340 33/271/33 347/295/347 +f 520/311/520 878/310/874 347/295/347 89/291/89 +f 90/306/90 521/305/521 879/312/875 348/313/348 +f 521/305/521 162/304/162 520/311/520 879/312/875 +f 879/312/875 520/311/520 89/291/89 346/290/346 +f 348/313/348 879/312/875 346/290/346 34/289/34 +f 39/314/39 354/315/354 880/316/876 353/317/353 +f 354/315/354 93/318/93 522/319/522 880/316/876 +f 880/316/876 522/319/522 163/320/163 525/321/525 +f 353/317/353 880/316/876 525/321/525 92/322/92 +f 93/318/93 355/323/355 881/324/877 522/319/522 +f 355/323/355 42/325/42 356/326/356 881/324/877 +f 881/324/877 356/326/356 94/327/94 523/328/523 +f 522/319/522 881/324/877 523/328/523 163/320/163 +f 163/320/163 523/328/523 882/329/878 524/330/524 +f 523/328/523 94/327/94 357/331/357 882/329/878 +f 882/329/878 357/331/357 43/332/43 358/333/358 +f 524/330/524 882/329/878 358/333/358 95/334/95 +f 92/322/92 525/321/525 883/335/879 352/336/352 +f 525/321/525 163/320/163 524/330/524 883/335/879 +f 883/335/879 524/330/524 95/334/95 359/337/359 +f 352/336/352 883/335/879 359/337/359 45/338/45 +f 40/339/40 362/340/362 884/341/880 361/342/361 +f 362/340/362 97/343/97 526/344/526 884/341/880 +f 884/341/880 526/344/526 164/345/164 529/346/529 +f 361/342/361 884/341/880 529/346/529 96/347/96 +f 97/343/97 363/348/363 885/349/881 526/344/526 +f 363/348/363 44/350/44 364/351/364 885/349/881 +f 885/349/881 364/351/364 98/352/98 527/353/527 +f 526/344/526 885/349/881 527/353/527 164/345/164 +f 164/345/164 527/353/527 886/354/882 528/355/528 +f 527/353/527 98/352/98 365/356/365 886/354/882 +f 886/354/882 365/356/365 43/332/43 357/331/357 +f 528/355/528 886/354/882 357/331/357 94/327/94 +f 96/347/96 529/346/529 887/357/883 360/358/360 +f 529/346/529 164/345/164 528/355/528 887/357/883 +f 887/357/883 528/355/528 94/327/94 356/326/356 +f 360/358/360 887/357/883 356/326/356 42/325/42 +f 41/359/41 368/360/368 888/361/884 367/362/367 +f 368/360/368 100/363/100 530/364/530 888/361/884 +f 888/361/884 530/364/530 165/365/165 533/366/533 +f 367/362/367 888/361/884 533/366/533 99/367/99 +f 100/363/100 369/368/369 889/369/885 530/364/530 +f 369/368/369 45/338/45 359/337/359 889/369/885 +f 889/369/885 359/337/359 95/334/95 531/370/531 +f 530/364/530 889/369/885 531/370/531 165/365/165 +f 165/365/165 531/370/531 890/371/886 532/372/532 +f 531/370/531 95/334/95 358/333/358 890/371/886 +f 890/371/886 358/333/358 43/332/43 365/356/365 +f 532/372/532 890/371/886 365/356/365 98/352/98 +f 99/367/99 533/366/533 891/373/887 366/374/366 +f 533/366/533 165/365/165 532/372/532 891/373/887 +f 891/373/887 532/372/532 98/352/98 364/351/364 +f 366/374/366 891/373/887 364/351/364 44/350/44 +f 19/192/19 370/375/370 892/376/888 318/193/318 +f 370/375/370 101/377/101 534/378/534 892/376/888 +f 892/376/888 534/378/534 166/379/166 537/380/537 +f 318/193/318 892/376/888 537/380/537 75/196/75 +f 101/377/101 371/381/371 893/382/889 534/378/534 +f 371/381/371 9/131/9 299/134/299 893/382/889 +f 893/382/889 299/134/299 65/139/65 535/383/535 +f 534/378/534 893/382/889 535/383/535 166/379/166 +f 166/379/166 535/383/535 894/384/890 536/385/536 +f 535/383/535 65/139/65 298/153/298 894/384/890 +f 894/384/890 298/153/298 15/155/15 372/386/372 +f 536/385/536 894/384/890 372/386/372 102/387/102 +f 75/196/75 537/380/537 895/388/891 319/201/319 +f 537/380/537 166/379/166 536/385/536 895/388/891 +f 895/388/891 536/385/536 102/387/102 373/389/373 +f 319/201/319 895/388/891 373/389/373 22/203/22 +f 22/203/22 373/389/373 896/390/892 324/236/324 +f 373/389/373 102/387/102 538/391/538 896/390/892 +f 896/390/892 538/391/538 167/392/167 541/393/541 +f 324/236/324 896/390/892 541/393/541 78/225/78 +f 102/387/102 372/386/372 897/394/893 538/391/538 +f 372/386/372 15/155/15 315/185/315 897/394/893 +f 897/394/893 315/185/315 73/180/73 539/395/539 +f 538/391/538 897/394/893 539/395/539 167/392/167 +f 167/392/167 539/395/539 898/396/894 540/397/540 +f 539/395/539 73/180/73 314/177/314 898/396/894 +f 898/396/894 314/177/314 11/176/11 374/398/374 +f 540/397/540 898/396/894 374/398/374 103/399/103 +f 78/225/78 541/393/541 899/400/895 325/220/325 +f 541/393/541 167/392/167 540/397/540 899/400/895 +f 899/400/895 540/397/540 103/399/103 375/401/375 +f 325/220/325 899/400/895 375/401/375 20/217/20 +f 8/30/8 376/29/376 900/402/896 456/403/456 +f 376/29/376 104/24/104 542/404/542 900/402/896 +f 900/402/896 542/404/542 168/405/168 545/406/545 +f 456/403/456 900/402/896 545/406/545 144/407/144 +f 104/24/104 377/23/377 901/408/897 542/404/542 +f 377/23/377 17/22/17 378/409/378 901/408/897 +f 901/408/897 378/409/378 105/410/105 543/411/543 +f 542/404/542 901/408/897 543/411/543 168/405/168 +f 168/405/168 543/411/543 902/412/898 544/413/544 +f 543/411/543 105/410/105 379/414/379 902/412/898 +f 902/412/898 379/414/379 18/415/18 290/416/290 +f 544/413/544 902/412/898 290/416/290 61/417/61 +f 144/407/144 545/406/545 903/418/899 457/419/457 +f 545/406/545 168/405/168 544/413/544 903/418/899 +f 903/418/899 544/413/544 61/417/61 291/420/291 +f 457/419/457 903/418/899 291/420/291 7/421/7 +f 7/421/7 291/420/291 904/422/900 454/423/454 +f 291/420/291 61/417/61 546/424/546 904/422/900 +f 904/422/900 546/424/546 169/425/169 549/426/549 +f 454/423/454 904/422/900 549/426/549 143/427/143 +f 61/417/61 290/416/290 905/428/901 546/424/546 +f 290/416/290 18/415/18 382/429/382 905/428/901 +f 905/428/901 382/429/382 107/430/107 547/431/547 +f 546/424/546 905/428/901 547/431/547 169/425/169 +f 169/425/169 547/431/547 906/432/902 548/433/548 +f 547/431/547 107/430/107 383/434/383 906/432/902 +f 906/432/902 383/434/383 16/87/16 292/85/292 +f 548/433/548 906/432/902 292/85/292 62/80/62 +f 143/427/143 549/426/549 907/435/903 455/436/455 +f 549/426/549 169/425/169 548/433/548 907/435/903 +f 907/435/903 548/433/548 62/80/62 293/77/293 +f 455/436/455 907/435/903 293/77/293 6/76/6 +f 5/101/5 388/437/388 908/438/904 452/439/452 +f 388/437/388 110/440/110 550/441/550 908/438/904 +f 908/438/904 550/441/550 170/442/170 553/443/553 +f 452/439/452 908/438/904 553/443/553 142/444/142 +f 110/440/110 389/445/389 909/446/905 550/441/550 +f 389/445/389 21/237/21 331/240/331 909/446/905 +f 909/446/905 331/240/331 81/245/81 551/447/551 +f 550/441/550 909/446/905 551/447/551 170/442/170 +f 170/442/170 551/447/551 910/448/906 552/449/552 +f 551/447/551 81/245/81 330/252/330 910/448/906 +f 910/448/906 330/252/330 24/228/24 284/450/284 +f 552/449/552 910/448/906 284/450/284 58/451/58 +f 142/444/142 553/443/553 911/452/907 453/453/453 +f 553/443/553 170/442/170 552/449/552 911/452/907 +f 911/452/907 552/449/552 58/451/58 285/454/285 +f 453/453/453 911/452/907 285/454/285 4/455/4 +f 4/455/4 285/454/285 912/456/908 450/457/450 +f 285/454/285 58/451/58 554/458/554 912/456/908 +f 912/456/908 554/458/554 171/459/171 557/460/557 +f 450/457/450 912/456/908 557/460/557 141/461/141 +f 58/451/58 284/450/284 913/462/909 554/458/554 +f 284/450/284 24/228/24 327/226/327 913/462/909 +f 913/462/909 327/226/327 79/221/79 555/463/555 +f 554/458/554 913/462/909 555/463/555 171/459/171 +f 171/459/171 555/463/555 914/464/910 556/465/556 +f 555/463/555 79/221/79 326/218/326 914/464/910 +f 914/464/910 326/218/326 20/217/20 282/466/282 +f 556/465/556 914/464/910 282/466/282 57/467/57 +f 141/461/141 557/460/557 915/468/911 451/469/451 +f 557/460/557 171/459/171 556/465/556 915/468/911 +f 915/468/911 556/465/556 57/467/57 283/470/283 +f 451/469/451 915/468/911 283/470/283 3/100/3 +f 39/314/39 396/471/396 916/472/912 354/315/354 +f 396/471/396 114/473/114 558/474/558 916/472/912 +f 916/472/912 558/474/558 172/475/172 561/476/561 +f 354/315/354 916/472/912 561/476/561 93/318/93 +f 114/477/114 397/478/397 917/479/913 558/480/558 +f 397/478/397 19/192/19 317/195/317 917/479/913 +f 917/479/913 317/195/317 74/200/74 559/481/559 +f 558/480/558 917/479/913 559/481/559 172/482/172 +f 172/482/172 559/481/559 918/483/914 560/484/560 +f 559/481/559 74/200/74 316/214/316 918/483/914 +f 918/483/914 316/214/316 25/216/25 398/485/398 +f 560/484/560 918/483/914 398/485/398 115/486/115 +f 93/318/93 561/476/561 919/487/915 355/323/355 +f 561/476/561 172/475/172 560/488/560 919/487/915 +f 919/487/915 560/488/560 115/489/115 399/490/399 +f 355/323/355 919/487/915 399/490/399 42/325/42 +f 42/325/42 399/490/399 920/491/916 360/358/360 +f 399/490/399 115/489/115 562/492/562 920/491/916 +f 920/491/916 562/492/562 173/493/173 565/494/565 +f 360/358/360 920/491/916 565/494/565 96/347/96 +f 115/486/115 398/485/398 921/495/917 562/496/562 +f 398/485/398 25/216/25 333/246/333 921/495/917 +f 921/495/917 333/246/333 82/241/82 563/497/563 +f 562/496/562 921/495/917 563/497/563 173/498/173 +f 173/498/173 563/497/563 922/499/918 564/500/564 +f 563/497/563 82/241/82 332/238/332 922/499/918 +f 922/499/918 332/238/332 21/237/21 400/501/400 +f 564/500/564 922/499/918 400/501/400 116/502/116 +f 96/347/96 565/494/565 923/503/919 361/342/361 +f 565/494/565 173/493/173 564/504/564 923/503/919 +f 923/503/919 564/504/564 116/505/116 401/506/401 +f 361/342/361 923/503/919 401/506/401 40/339/40 +f 2/31/2 404/507/404 924/508/920 448/509/448 +f 404/507/404 118/510/118 566/511/566 924/508/920 +f 924/508/920 566/511/566 174/512/174 569/513/569 +f 448/509/448 924/508/920 569/513/569 140/514/140 +f 118/510/118 405/515/405 925/516/921 566/511/566 +f 405/515/405 41/359/41 367/362/367 925/516/921 +f 925/516/921 367/362/367 99/367/99 567/517/567 +f 566/511/566 925/516/921 567/517/567 174/512/174 +f 174/512/174 567/517/567 926/518/922 568/519/568 +f 567/517/567 99/367/99 366/374/366 926/518/922 +f 926/518/922 366/374/366 44/350/44 296/520/296 +f 568/519/568 926/518/922 296/520/296 64/521/64 +f 140/514/140 569/513/569 927/522/923 449/523/449 +f 569/513/569 174/512/174 568/519/568 927/522/923 +f 927/522/923 568/519/568 64/521/64 297/524/297 +f 449/523/449 927/522/923 297/524/297 1/525/1 +f 1/525/1 297/524/297 928/526/924 446/527/446 +f 297/524/297 64/521/64 570/528/570 928/526/924 +f 928/526/924 570/528/570 175/529/175 573/530/573 +f 446/527/446 928/526/924 573/530/573 139/531/139 +f 64/521/64 296/520/296 929/532/925 570/528/570 +f 296/520/296 44/350/44 363/348/363 929/532/925 +f 929/532/925 363/348/363 97/343/97 571/533/571 +f 570/528/570 929/532/925 571/533/571 175/529/175 +f 175/529/175 571/533/571 930/534/926 572/535/572 +f 571/533/571 97/343/97 362/340/362 930/534/926 +f 930/534/926 362/340/362 40/339/40 278/536/278 +f 572/535/572 930/534/926 278/536/278 55/537/55 +f 139/531/139 573/530/573 931/538/927 447/539/447 +f 573/530/573 175/529/175 572/535/572 931/538/927 +f 931/538/927 572/535/572 55/537/55 279/540/279 +f 447/539/447 931/538/927 279/540/279 49/130/49 +f 29/253/29 412/541/412 932/542/928 336/254/336 +f 412/541/412 122/543/122 574/544/574 932/542/928 +f 932/542/928 574/544/574 176/545/176 577/546/577 +f 336/254/336 932/542/928 577/546/577 84/257/84 +f 122/543/122 413/547/413 933/548/929 574/544/574 +f 413/547/413 39/314/39 353/317/353 933/548/929 +f 933/548/929 353/317/353 92/322/92 575/549/575 +f 574/544/574 933/548/929 575/549/575 176/545/176 +f 176/545/176 575/549/575 934/550/930 576/551/576 +f 575/549/575 92/322/92 352/336/352 934/550/930 +f 934/550/930 352/336/352 45/338/45 414/552/414 +f 576/551/576 934/550/930 414/552/414 123/553/123 +f 84/257/84 577/546/577 935/554/931 337/262/337 +f 577/546/577 176/545/176 576/551/576 935/554/931 +f 935/554/931 576/551/576 123/553/123 415/555/415 +f 337/262/337 935/554/931 415/555/415 32/264/32 +f 32/264/32 415/555/415 936/556/932 342/297/342 +f 415/555/415 123/553/123 578/557/578 936/556/932 +f 936/556/932 578/557/578 177/558/177 581/559/581 +f 342/297/342 936/556/932 581/559/581 87/286/87 +f 123/553/123 414/552/414 937/560/933 578/557/578 +f 414/552/414 45/338/45 369/368/369 937/560/933 +f 937/560/933 369/368/369 100/363/100 579/561/579 +f 578/557/578 937/560/933 579/561/579 177/558/177 +f 177/558/177 579/561/579 938/562/934 580/563/580 +f 579/561/579 100/363/100 368/360/368 938/562/934 +f 938/562/934 368/360/368 41/359/41 416/564/416 +f 580/563/580 938/562/934 416/564/416 124/565/124 +f 87/286/87 581/559/581 939/566/935 343/281/343 +f 581/559/581 177/558/177 580/563/580 939/566/935 +f 939/566/935 580/563/580 124/565/124 417/567/417 +f 343/281/343 939/566/935 417/567/417 30/278/30 +f 50/1/50 420/568/420 940/569/936 444/570/444 +f 420/568/420 126/571/126 582/572/582 940/569/936 +f 940/569/936 582/572/582 178/573/178 585/574/585 +f 444/570/444 940/569/936 585/574/585 138/575/138 +f 126/571/126 421/576/421 941/577/937 582/572/582 +f 421/576/421 31/298/31 349/301/349 941/577/937 +f 941/577/937 349/301/349 90/306/90 583/578/583 +f 582/572/582 941/577/937 583/578/583 178/573/178 +f 178/573/178 583/578/583 942/579/938 584/580/584 +f 583/578/583 90/306/90 348/313/348 942/579/938 +f 942/579/938 348/313/348 34/289/34 276/581/276 +f 584/580/584 942/579/938 276/581/276 54/582/54 +f 138/575/138 585/574/585 943/583/939 445/584/445 +f 585/574/585 178/573/178 584/580/584 943/583/939 +f 943/583/939 584/580/584 54/582/54 277/585/277 +f 445/584/445 943/583/939 277/585/277 51/67/51 +f 51/67/51 277/585/277 944/586/940 442/68/442 +f 277/585/277 54/582/54 586/587/586 944/586/940 +f 944/586/940 586/587/586 179/588/179 589/589/589 +f 442/68/442 944/586/940 589/589/589 137/69/137 +f 54/582/54 276/581/276 945/590/941 586/587/586 +f 276/581/276 34/289/34 345/287/345 945/590/941 +f 945/590/941 345/287/345 88/282/88 587/591/587 +f 586/587/586 945/590/941 587/591/587 179/588/179 +f 179/588/179 587/591/587 946/592/942 588/593/588 +f 587/591/587 88/282/88 344/279/344 946/592/942 +f 946/592/942 344/279/344 30/278/30 274/594/274 +f 588/593/588 946/592/942 274/594/274 53/595/53 +f 137/69/137 589/589/589 947/596/943 443/73/443 +f 589/589/589 179/588/179 588/593/588 947/596/943 +f 947/596/943 588/593/588 53/595/53 275/597/275 +f 443/73/443 947/596/943 275/597/275 52/55/52 +f 9/131/9 428/598/428 948/599/944 300/132/300 +f 428/598/428 130/600/130 590/601/590 948/599/944 +f 948/599/944 590/601/590 180/602/180 593/603/593 +f 300/132/300 948/599/944 593/603/593 66/135/66 +f 130/604/130 429/605/429 949/606/945 590/607/590 +f 429/605/429 29/253/29 335/256/335 949/606/945 +f 949/606/945 335/256/335 83/261/83 591/608/591 +f 590/607/590 949/606/945 591/608/591 180/609/180 +f 180/609/180 591/608/591 950/610/946 592/611/592 +f 591/608/591 83/261/83 334/275/334 950/610/946 +f 950/610/946 334/275/334 35/277/35 430/612/430 +f 592/611/592 950/610/946 430/612/430 131/613/131 +f 66/135/66 593/603/593 951/614/947 301/140/301 +f 593/603/593 180/602/180 592/615/592 951/614/947 +f 951/614/947 592/615/592 131/616/131 431/617/431 +f 301/140/301 951/614/947 431/617/431 12/142/12 +f 12/142/12 431/617/431 952/618/948 306/175/306 +f 431/617/431 131/616/131 594/619/594 952/618/948 +f 952/618/948 594/619/594 181/620/181 597/621/597 +f 306/175/306 952/618/948 597/621/597 69/164/69 +f 131/613/131 430/612/430 953/622/949 594/623/594 +f 430/612/430 35/277/35 351/307/351 953/622/949 +f 953/622/949 351/307/351 91/302/91 595/624/595 +f 594/623/594 953/622/949 595/624/595 181/625/181 +f 181/625/181 595/624/595 954/626/950 596/627/596 +f 595/624/595 91/302/91 350/299/350 954/626/950 +f 954/626/950 350/299/350 31/298/31 432/628/432 +f 596/627/596 954/626/950 432/628/432 132/629/132 +f 69/164/69 597/621/597 955/630/951 307/159/307 +f 597/621/597 181/620/181 596/631/596 955/630/951 +f 955/630/951 596/631/596 132/632/132 433/633/433 +f 307/159/307 955/630/951 433/633/433 10/156/10 +f 19/192/19 397/478/397 956/634/952 370/375/370 +f 397/478/397 114/477/114 598/635/598 956/634/952 +f 956/634/952 598/635/598 182/636/182 601/637/601 +f 370/375/370 956/634/952 601/637/601 101/377/101 +f 114/473/114 396/471/396 957/638/953 598/639/598 +f 396/471/396 39/314/39 413/547/413 957/638/953 +f 957/638/953 413/547/413 122/543/122 599/640/599 +f 598/639/598 957/638/953 599/640/599 182/641/182 +f 182/641/182 599/640/599 958/642/954 600/643/600 +f 599/640/599 122/543/122 412/541/412 958/642/954 +f 958/642/954 412/541/412 29/253/29 429/605/429 +f 600/643/600 958/642/954 429/605/429 130/604/130 +f 101/377/101 601/637/601 959/644/955 371/381/371 +f 601/637/601 182/636/182 600/645/600 959/644/955 +f 959/644/955 600/645/600 130/600/130 428/598/428 +f 371/381/371 959/644/955 428/598/428 9/131/9 +f 36/12/36 294/10/294 960/646/956 419/647/419 +f 294/10/294 63/5/63 602/648/602 960/646/956 +f 960/646/956 602/648/602 183/649/183 605/650/605 +f 419/647/419 960/646/956 605/650/605 125/651/125 +f 63/5/63 295/2/295 961/652/957 602/648/602 +f 295/2/295 50/1/50 444/570/444 961/652/957 +f 961/652/957 444/570/444 138/575/138 603/653/603 +f 602/648/602 961/652/957 603/653/603 183/649/183 +f 183/649/183 603/653/603 962/654/958 604/655/604 +f 603/653/603 138/575/138 445/584/445 962/654/958 +f 962/654/958 445/584/445 51/67/51 422/65/422 +f 604/655/604 962/654/958 422/65/422 127/60/127 +f 125/651/125 605/650/605 963/656/959 418/657/418 +f 605/650/605 183/649/183 604/655/604 963/656/959 +f 963/656/959 604/655/604 127/60/127 423/57/423 +f 418/657/418 963/656/959 423/57/423 38/56/38 +f 48/658/48 407/659/407 964/660/960 409/661/409 +f 407/659/407 119/662/119 606/663/606 964/660/960 +f 964/660/960 606/663/606 184/664/184 609/665/609 +f 409/661/409 964/660/960 609/665/609 120/666/120 +f 119/662/119 406/667/406 965/668/961 606/663/606 +f 406/667/406 1/525/1 446/527/446 965/668/961 +f 965/668/961 446/527/446 139/531/139 607/669/607 +f 606/663/606 965/668/961 607/669/607 184/664/184 +f 184/664/184 607/669/607 966/670/962 608/671/608 +f 607/669/607 139/531/139 447/539/447 966/670/962 +f 966/670/962 447/539/447 49/130/49 410/129/410 +f 608/671/608 966/670/962 410/129/410 121/124/121 +f 120/666/120 609/665/609 967/672/963 408/673/408 +f 609/665/609 184/664/184 608/671/608 967/672/963 +f 967/672/963 608/671/608 121/124/121 411/123/411 +f 408/673/408 967/672/963 411/123/411 47/122/47 +f 46/42/46 280/40/280 968/674/964 403/675/403 +f 280/40/280 56/35/56 610/676/610 968/674/964 +f 968/674/964 610/676/610 185/677/185 613/678/613 +f 403/675/403 968/674/964 613/678/613 117/679/117 +f 56/35/56 281/32/281 969/680/965 610/676/610 +f 281/32/281 2/31/2 448/509/448 969/680/965 +f 969/680/965 448/509/448 140/514/140 611/681/611 +f 610/676/610 969/680/965 611/681/611 185/677/185 +f 185/677/185 611/681/611 970/682/966 612/683/612 +f 611/681/611 140/514/140 449/523/449 970/682/966 +f 970/682/966 449/523/449 1/525/1 406/667/406 +f 612/683/612 970/682/966 406/667/406 119/662/119 +f 117/679/117 613/678/613 971/684/967 402/685/402 +f 613/678/613 185/677/185 612/683/612 971/684/967 +f 971/684/967 612/683/612 119/662/119 407/659/407 +f 402/685/402 971/684/967 407/659/407 48/658/48 +f 28/686/28 391/687/391 972/688/968 393/689/393 +f 391/687/391 111/690/111 614/691/614 972/688/968 +f 972/688/968 614/691/614 186/692/186 617/693/617 +f 393/689/393 972/688/968 617/693/617 112/694/112 +f 111/690/111 390/695/390 973/696/969 614/691/614 +f 390/695/390 4/455/4 450/457/450 973/696/969 +f 973/696/969 450/457/450 141/461/141 615/697/615 +f 614/691/614 973/696/969 615/697/615 186/692/186 +f 186/692/186 615/697/615 974/698/970 616/699/616 +f 615/697/615 141/461/141 451/469/451 974/698/970 +f 974/698/970 451/469/451 3/100/3 394/99/394 +f 616/699/616 974/698/970 394/99/394 113/96/113 +f 112/694/112 617/693/617 975/700/971 392/701/392 +f 617/693/617 186/692/186 616/699/616 975/700/971 +f 975/700/971 616/699/616 113/96/113 395/95/395 +f 392/701/392 975/700/971 395/95/395 27/94/27 +f 26/112/26 288/110/288 976/702/972 387/703/387 +f 288/110/288 60/105/60 618/704/618 976/702/972 +f 976/702/972 618/704/618 187/705/187 621/706/621 +f 387/703/387 976/702/972 621/706/621 109/707/109 +f 60/105/60 289/102/289 977/708/973 618/704/618 +f 289/102/289 5/101/5 452/439/452 977/708/973 +f 977/708/973 452/439/452 142/444/142 619/709/619 +f 618/704/618 977/708/973 619/709/619 187/705/187 +f 187/705/187 619/709/619 978/710/974 620/711/620 +f 619/709/619 142/444/142 453/453/453 978/710/974 +f 978/710/974 453/453/453 4/455/4 390/695/390 +f 620/711/620 978/710/974 390/695/390 111/690/111 +f 109/707/109 621/706/621 979/712/975 386/713/386 +f 621/706/621 187/705/187 620/711/620 979/712/975 +f 979/712/975 620/711/620 111/690/111 391/687/391 +f 386/713/386 979/712/975 391/687/391 28/686/28 +f 14/167/14 381/714/381 980/715/976 312/191/312 +f 381/714/381 106/716/106 622/717/622 980/715/976 +f 980/715/976 622/717/622 188/718/188 625/719/625 +f 312/191/312 980/715/976 625/719/625 72/184/72 +f 106/716/106 380/720/380 981/721/977 622/717/622 +f 380/720/380 7/421/7 454/423/454 981/721/977 +f 981/721/977 454/423/454 143/427/143 623/722/623 +f 622/717/622 981/721/977 623/722/623 188/718/188 +f 188/718/188 623/722/623 982/723/978 624/724/624 +f 623/722/623 143/427/143 455/436/455 982/723/978 +f 982/723/978 455/436/455 6/76/6 384/725/384 +f 624/724/624 982/723/978 384/725/384 108/726/108 +f 72/184/72 625/719/625 983/727/979 313/179/313 +f 625/719/625 188/718/188 624/724/624 983/727/979 +f 983/727/979 624/724/624 108/726/108 385/728/385 +f 313/179/313 983/727/979 385/728/385 11/176/11 +f 10/156/10 286/729/286 984/730/980 308/157/308 +f 286/729/286 59/731/59 626/732/626 984/730/980 +f 984/730/980 626/732/626 189/733/189 629/734/629 +f 308/157/308 984/730/980 629/734/629 70/160/70 +f 59/731/59 287/735/287 985/736/981 626/732/626 +f 287/735/287 8/30/8 456/403/456 985/736/981 +f 985/736/981 456/403/456 144/407/144 627/737/627 +f 626/732/626 985/736/981 627/737/627 189/733/189 +f 189/733/189 627/737/627 986/738/982 628/739/628 +f 627/737/627 144/407/144 457/419/457 986/738/982 +f 986/738/982 457/419/457 7/421/7 380/720/380 +f 628/739/628 986/738/982 380/720/380 106/716/106 +f 70/160/70 629/734/629 987/740/983 309/165/309 +f 629/734/629 189/733/189 628/739/628 987/740/983 +f 987/740/983 628/739/628 106/716/106 381/714/381 +f 309/165/309 987/740/983 381/714/381 14/167/14 +f 21/237/21 389/445/389 988/741/984 400/501/400 +f 389/445/389 110/440/110 630/742/630 988/741/984 +f 988/741/984 630/742/630 190/743/190 633/744/633 +f 400/501/400 988/741/984 633/744/633 116/502/116 +f 110/440/110 388/437/388 989/745/985 630/742/630 +f 388/437/388 5/101/5 458/104/458 989/745/985 +f 989/745/985 458/104/458 145/109/145 631/746/631 +f 630/742/630 989/745/985 631/746/631 190/743/190 +f 190/747/190 631/748/631 990/749/986 632/750/632 +f 631/748/631 145/125/145 459/128/459 990/749/986 +f 990/749/986 459/128/459 49/130/49 279/540/279 +f 632/750/632 990/749/986 279/540/279 55/537/55 +f 116/505/116 633/751/633 991/752/987 401/506/401 +f 633/751/633 190/747/190 632/750/632 991/752/987 +f 991/752/987 632/750/632 55/537/55 278/536/278 +f 401/506/401 991/752/987 278/536/278 40/339/40 +f 11/176/11 385/728/385 992/753/988 374/398/374 +f 385/728/385 108/726/108 634/754/634 992/753/988 +f 992/753/988 634/754/634 191/755/191 637/756/637 +f 374/398/374 992/753/988 637/756/637 103/399/103 +f 108/726/108 384/725/384 993/757/989 634/754/634 +f 384/725/384 6/76/6 460/79/460 993/757/989 +f 993/757/989 460/79/460 146/84/146 635/758/635 +f 634/754/634 993/757/989 635/758/635 191/755/191 +f 191/755/191 635/758/635 994/759/990 636/760/636 +f 635/758/635 146/84/146 461/98/461 994/759/990 +f 994/759/990 461/98/461 3/100/3 283/470/283 +f 636/760/636 994/759/990 283/470/283 57/467/57 +f 103/399/103 637/756/637 995/761/991 375/401/375 +f 637/756/637 191/755/191 636/760/636 995/761/991 +f 995/761/991 636/760/636 57/467/57 282/466/282 +f 375/401/375 995/761/991 282/466/282 20/217/20 +f 41/359/41 405/515/405 996/762/992 416/564/416 +f 405/515/405 118/510/118 638/763/638 996/762/992 +f 996/762/992 638/763/638 192/764/192 641/765/641 +f 416/564/416 996/762/992 641/765/641 124/565/124 +f 118/510/118 404/507/404 997/766/993 638/763/638 +f 404/507/404 2/31/2 462/34/462 997/766/993 +f 997/766/993 462/34/462 147/39/147 639/767/639 +f 638/763/638 997/766/993 639/767/639 192/764/192 +f 192/764/192 639/767/639 998/768/994 640/769/640 +f 639/767/639 147/39/147 463/53/463 998/768/994 +f 998/768/994 463/53/463 52/55/52 275/597/275 +f 640/769/640 998/768/994 275/597/275 53/595/53 +f 124/565/124 641/765/641 999/770/995 417/567/417 +f 641/765/641 192/764/192 640/769/640 999/770/995 +f 999/770/995 640/769/640 53/595/53 274/594/274 +f 417/567/417 999/770/995 274/594/274 30/278/30 +f 31/298/31 421/576/421 1000/771/996 432/628/432 +f 421/576/421 126/571/126 642/772/642 1000/771/996 +f 1000/771/996 642/772/642 193/773/193 645/774/645 +f 432/628/432 1000/771/996 645/774/645 132/629/132 +f 126/571/126 420/568/420 1001/775/997 642/772/642 +f 420/568/420 50/1/50 464/4/464 1001/775/997 +f 1001/775/997 464/4/464 148/9/148 643/776/643 +f 642/772/642 1001/775/997 643/776/643 193/773/193 +f 193/777/193 643/778/643 1002/779/998 644/780/644 +f 643/778/643 148/25/148 465/28/465 1002/779/998 +f 1002/779/998 465/28/465 8/30/8 287/735/287 +f 644/780/644 1002/779/998 287/735/287 59/731/59 +f 132/632/132 645/781/645 1003/782/999 433/633/433 +f 645/781/645 193/777/193 644/780/644 1003/782/999 +f 1003/782/999 644/780/644 59/731/59 286/729/286 +f 433/633/433 1003/782/999 286/729/286 10/156/10 +f 211/783/211 657/784/657 1004/785/1000 759/786/755 +f 657/784/657 205/787/205 672/788/672 1004/785/1000 +f 1004/785/1000 672/788/672 250/789/250 723/790/723 +f 759/786/755 1004/785/1000 723/790/723 254/791/254 +f 117/792/117 402/793/402 1005/794/1001 761/795/757 +f 402/793/402 48/796/48 760/797/756 1005/794/1001 +f 1005/794/1001 760/797/756 228/798/228 700/799/700 +f 761/795/757 1005/794/1001 700/799/700 229/800/229 +f 204/801/204 656/802/656 1006/803/1002 756/804/752 +f 656/802/656 211/783/211 759/786/755 1006/803/1002 +f 1006/803/1002 759/786/755 254/791/254 722/805/722 +f 756/804/752 1006/803/1002 722/805/722 253/806/253 +f 197/807/197 669/808/669 1007/809/1003 689/810/689 +f 669/808/669 217/811/217 757/812/753 1007/809/1003 +f 1007/809/1003 757/812/753 261/813/261 731/814/731 +f 689/810/689 1007/809/1003 731/814/731 247/815/247 +f 136/816/136 441/817/441 1008/818/1004 754/819/750 +f 441/817/441 26/820/26 758/821/754 1008/818/1004 +f 1008/818/1004 758/821/754 225/822/225 711/823/711 +f 754/819/750 1008/818/1004 711/823/711 239/824/239 +f 26/820/26 387/825/387 1009/826/1005 758/821/754 +f 387/825/387 109/827/109 670/828/670 1009/826/1005 +f 1009/826/1005 670/828/670 224/829/224 697/830/697 +f 758/821/754 1009/826/1005 697/830/697 225/822/225 +f 210/831/210 655/832/655 1010/833/1006 673/834/673 +f 655/832/655 203/835/203 674/836/674 1010/833/1006 +f 1010/833/1006 674/836/674 252/837/252 721/838/721 +f 673/834/673 1010/833/1006 721/838/721 251/839/251 +f 217/840/217 668/841/668 1011/842/1007 757/843/753 +f 668/841/668 204/801/204 756/804/752 1011/842/1007 +f 1011/842/1007 756/804/752 253/806/253 730/844/730 +f 757/843/753 1011/842/1007 730/844/730 261/845/261 +f 47/846/47 440/847/440 1012/848/1008 755/849/751 +f 440/847/440 136/850/136 754/851/750 1012/848/1008 +f 1012/848/1008 754/851/750 239/852/239 710/853/710 +f 755/849/751 1012/848/1008 710/853/710 231/854/231 +f 109/827/109 386/855/386 1013/856/1009 670/828/670 +f 386/855/386 28/857/28 671/858/671 1013/856/1009 +f 1013/856/1009 671/858/671 223/859/223 696/860/696 +f 670/828/670 1013/856/1009 696/860/696 224/829/224 +f 205/787/205 654/861/654 1014/862/1010 672/788/672 +f 654/861/654 210/831/210 673/834/673 1014/862/1010 +f 1014/862/1010 673/834/673 251/839/251 720/863/720 +f 672/788/672 1014/862/1010 720/863/720 250/789/250 +f 194/864/194 662/865/662 1015/866/1011 774/867/770 +f 214/868/214 822/869/818 1015/866/1011 662/865/662 +f 270/870/270 805/871/801 1015/866/1011 822/869/818 +f 269/872/269 814/873/810 1015/866/1011 805/871/801 +f 244/874/244 774/867/770 1015/866/1011 814/873/810 +f 209/875/209 653/876/653 1016/877/1012 680/878/680 +f 653/876/653 199/879/199 676/880/676 1016/877/1012 +f 1016/877/1012 676/880/676 245/881/245 719/882/719 +f 680/878/680 1016/877/1012 719/882/719 249/883/249 +f 38/884/38 425/885/425 1017/886/1013 677/887/677 +f 425/885/425 128/888/128 681/889/681 1017/886/1013 +f 1017/886/1013 681/889/681 237/890/237 707/891/707 +f 677/887/677 1017/886/1013 707/891/707 233/892/233 +f 203/835/203 667/893/667 1018/894/1014 674/836/674 +f 216/895/216 823/896/819 1018/894/1014 667/893/667 +f 273/897/273 807/898/803 1018/894/1014 823/896/819 +f 272/899/272 820/900/816 1018/894/1014 807/898/803 +f 252/837/252 674/836/674 1018/894/1014 820/900/816 +f 265/901/265 819/902/815 1019/903/1015 810/904/806 +f 819/902/815 230/905/230 734/906/734 1019/903/1015 +f 1019/903/1015 734/906/734 252/837/252 820/900/816 +f 810/904/806 1019/903/1015 820/900/816 272/899/272 +f 198/907/198 652/908/652 1020/909/1016 679/910/679 +f 652/908/652 209/875/209 680/878/680 1020/909/1016 +f 1020/909/1016 680/878/680 249/883/249 718/911/718 +f 679/910/679 1020/909/1016 718/911/718 248/912/248 +f 128/888/128 424/913/424 1021/914/1017 681/889/681 +f 424/913/424 37/915/37 682/916/682 1021/914/1017 +f 1021/914/1017 682/916/682 236/917/236 706/918/706 +f 681/889/681 1021/914/1017 706/918/706 237/890/237 +f 215/919/215 665/920/665 1022/921/1018 691/922/691 +f 665/920/665 195/923/195 683/924/683 1022/921/1018 +f 1022/921/1018 683/924/683 240/925/240 729/926/729 +f 691/922/691 1022/921/1018 729/926/729 260/927/260 +f 17/928/17 437/929/437 1023/930/1019 684/931/684 +f 437/929/437 134/932/134 685/933/685 1023/930/1019 +f 1023/930/1019 685/933/685 238/934/238 709/935/709 +f 684/931/684 1023/930/1019 709/935/709 218/936/218 +f 16/937/16 383/938/383 1024/939/1020 686/940/686 +f 383/938/383 107/941/107 687/942/687 1024/939/1020 +f 1024/939/1020 687/942/687 221/943/221 695/944/695 +f 686/940/686 1024/939/1020 695/944/695 222/945/222 +f 208/946/208 651/947/651 1025/948/1021 688/949/688 +f 651/947/651 197/807/197 689/810/689 1025/948/1021 +f 1025/948/1021 689/810/689 247/815/247 717/950/717 +f 688/949/688 1025/948/1021 717/950/717 246/951/246 +f 200/952/200 664/953/664 1026/954/1022 690/955/690 +f 664/953/664 215/919/215 691/922/691 1026/954/1022 +f 1026/954/1022 691/922/691 260/927/260 728/956/728 +f 690/955/690 1026/954/1022 728/956/728 257/957/257 +f 231/854/231 710/853/710 1027/958/1023 732/959/732 +f 710/853/710 239/852/239 733/960/733 1027/958/1023 +f 1027/958/1023 733/960/733 261/845/261 730/844/730 +f 732/959/732 1027/958/1023 730/844/730 253/806/253 +f 230/905/230 701/961/701 1028/962/1024 734/906/734 +f 701/961/701 229/800/229 735/963/735 1028/962/1024 +f 1028/962/1024 735/963/735 251/839/251 721/838/721 +f 734/906/734 1028/962/1024 721/838/721 252/837/252 +f 234/964/234 704/965/704 1029/966/1025 736/967/736 +f 704/965/704 233/892/233 737/968/127 1029/966/1025 +f 1029/966/1025 737/968/127 255/969/255 724/970/724 +f 736/967/736 1029/966/1025 724/970/724 256/971/256 +f 239/824/239 711/823/711 1030/972/1026 733/973/733 +f 711/823/711 225/822/225 738/974/737 1030/972/1026 +f 1030/972/1026 738/974/737 247/815/247 731/814/731 +f 733/973/733 1030/972/1026 731/814/731 261/813/261 +f 235/975/235 705/976/705 1031/977/1027 739/978/738 +f 705/976/705 234/964/234 736/967/736 1031/977/1027 +f 1031/977/1027 736/967/736 256/971/256 725/979/725 +f 739/978/738 1031/977/1027 725/979/725 257/957/257 +f 221/943/221 694/980/694 1032/981/1028 740/982/739 +f 694/980/694 220/983/220 741/984/61 1032/981/1028 +f 1032/981/1028 741/984/61 242/985/242 714/986/714 +f 740/982/739 1032/981/1028 714/986/714 243/987/243 +f 27/988/27 435/989/435 1033/990/1029 768/991/764 +f 133/992/133 812/993/808 1033/990/1029 435/989/435 +f 264/994/264 801/995/797 1033/990/1029 812/993/808 +f 263/996/263 815/997/811 1033/990/1029 801/995/797 +f 226/998/226 768/991/764 1033/990/1029 815/997/811 +f 222/945/222 695/944/695 1034/999/1030 742/1000/740 +f 695/944/695 221/943/221 740/982/739 1034/999/1030 +f 1034/999/1030 740/982/739 243/987/243 715/1001/715 +f 742/1000/740 1034/999/1030 715/1001/715 244/874/244 +f 37/915/37 438/1002/438 1035/1003/1031 682/916/682 +f 135/1004/135 817/1005/813 1035/1003/1031 438/1002/438 +f 267/1006/267 803/1007/799 1035/1003/1031 817/1005/813 +f 266/1008/266 818/1009/814 1035/1003/1031 803/1007/799 +f 236/917/236 682/916/682 1035/1003/1031 818/1009/814 +f 238/934/238 708/1010/708 1036/1011/1032 744/1012/742 +f 708/1010/708 235/975/235 739/978/738 1036/1011/1032 +f 1036/1011/1032 739/978/738 257/957/257 728/956/728 +f 744/1012/742 1036/1011/1032 728/956/728 260/927/260 +f 227/1013/227 698/1014/698 1037/1015/1033 745/1016/743 +f 698/1014/698 226/998/226 743/1017/741 1037/1015/1033 +f 1037/1015/1033 743/1017/741 248/912/248 718/911/718 +f 745/1016/743 1037/1015/1033 718/911/718 249/883/249 +f 218/936/218 709/935/709 1038/1018/1034 746/1019/744 +f 709/935/709 238/934/238 744/1012/742 1038/1018/1034 +f 1038/1018/1034 744/1012/742 260/927/260 729/926/729 +f 746/1019/744 1038/1018/1034 729/926/729 240/925/240 +f 219/1020/219 692/1021/692 1039/1022/1035 747/1023/745 +f 692/1021/692 218/936/218 746/1019/744 1039/1022/1035 +f 1039/1022/1035 746/1019/744 240/925/240 712/1024/712 +f 747/1023/745 1039/1022/1035 712/1024/712 241/1025/241 +f 223/859/223 699/1026/699 1040/1027/1036 748/1028/111 +f 699/1026/699 227/1013/227 745/1016/743 1040/1027/1036 +f 1040/1027/1036 745/1016/743 249/883/249 719/882/719 +f 748/1028/111 1040/1027/1036 719/882/719 245/881/245 +f 232/1029/232 702/1030/702 1041/1031/1037 749/1032/746 +f 702/1030/702 231/854/231 732/959/732 1041/1031/1037 +f 1041/1031/1037 732/959/732 253/806/253 722/805/722 +f 749/1032/746 1041/1031/1037 722/805/722 254/791/254 +f 224/829/224 696/860/696 1042/1033/1038 750/1034/747 +f 696/860/696 223/859/223 748/1028/111 1042/1033/1038 +f 1042/1033/1038 748/1028/111 245/881/245 716/1035/716 +f 750/1034/747 1042/1033/1038 716/1035/716 246/951/246 +f 135/1004/135 439/1036/439 1043/1037/1039 817/1005/813 +f 46/1038/46 675/1039/675 1043/1037/1039 439/1036/439 +f 230/905/230 819/902/815 1043/1037/1039 675/1039/675 +f 265/901/265 802/1040/798 1043/1037/1039 819/902/815 +f 267/1006/267 817/1005/813 1043/1037/1039 802/1040/798 +f 220/983/220 693/1041/693 1044/1042/1040 741/984/61 +f 693/1041/693 219/1020/219 747/1023/745 1044/1042/1040 +f 1044/1042/1040 747/1023/745 241/1025/241 713/1043/713 +f 741/984/61 1044/1042/1040 713/1043/713 242/985/242 +f 228/798/228 703/1044/703 1045/1045/1041 752/1046/119 +f 703/1044/703 232/1029/232 749/1032/746 1045/1045/1041 +f 1045/1045/1041 749/1032/746 254/791/254 723/790/723 +f 752/1046/119 1045/1045/1041 723/790/723 250/789/250 +f 237/890/237 706/918/706 1046/1047/1042 753/1048/749 +f 706/918/706 236/917/236 751/1049/748 1046/1047/1042 +f 1046/1047/1042 751/1049/748 258/1050/258 726/1051/726 +f 753/1048/749 1046/1047/1042 726/1051/726 259/1052/259 +f 225/822/225 697/830/697 1047/1053/1043 738/974/737 +f 697/830/697 224/829/224 750/1034/747 1047/1053/1043 +f 1047/1053/1043 750/1034/747 246/951/246 717/950/717 +f 738/974/737 1047/1053/1043 717/950/717 247/815/247 +f 236/917/236 818/1009/814 1048/1054/1044 751/1049/748 +f 818/1009/814 266/1008/266 811/1055/807 1048/1054/1044 +f 1048/1054/1044 811/1055/807 271/1056/271 821/1057/817 +f 751/1049/748 1048/1054/1044 821/1057/817 258/1050/258 +f 229/800/229 700/799/700 1049/1058/1045 735/963/735 +f 700/799/700 228/798/228 752/1046/119 1049/1058/1045 +f 1049/1058/1045 752/1046/119 250/789/250 720/863/720 +f 735/963/735 1049/1058/1045 720/863/720 251/839/251 +f 233/892/233 707/891/707 1050/1059/1046 737/968/127 +f 707/891/707 237/890/237 753/1048/749 1050/1059/1046 +f 1050/1059/1046 753/1048/749 259/1052/259 727/1060/727 +f 737/968/127 1050/1059/1046 727/1060/727 255/969/255 +f 46/1038/46 403/1061/403 1051/1062/1047 675/1039/675 +f 403/1061/403 117/792/117 761/795/757 1051/1062/1047 +f 1051/1062/1047 761/795/757 229/800/229 701/961/701 +f 675/1039/675 1051/1062/1047 701/961/701 230/905/230 +f 202/1063/202 658/1064/658 1052/1065/1048 763/1066/759 +f 658/1064/658 212/1067/212 762/1068/758 1052/1065/1048 +f 1052/1065/1048 762/1068/758 256/971/256 724/970/724 +f 763/1066/759 1052/1065/1048 724/970/724 255/969/255 +f 212/1067/212 659/1069/659 1053/1070/1049 762/1068/758 +f 659/1069/659 200/952/200 690/955/690 1053/1070/1049 +f 1053/1070/1049 690/955/690 257/957/257 725/979/725 +f 762/1068/758 1053/1070/1049 725/979/725 256/971/256 +f 125/1071/125 418/1072/418 1054/1073/1050 764/1074/760 +f 418/1072/418 38/884/38 677/887/677 1054/1073/1050 +f 1054/1073/1050 677/887/677 233/892/233 704/965/704 +f 764/1074/760 1054/1073/1050 704/965/704 234/964/234 +f 195/923/195 646/1075/646 1055/1076/1051 683/924/683 +f 646/1075/646 206/1077/206 765/1078/761 1055/1076/1051 +f 1055/1076/1051 765/1078/761 241/1025/241 712/1024/712 +f 683/924/683 1055/1076/1051 712/1024/712 240/925/240 +f 105/1079/105 378/1080/378 1056/1081/1052 766/1082/762 +f 378/1080/378 17/928/17 684/931/684 1056/1081/1052 +f 1056/1081/1052 684/931/684 218/936/218 692/1021/692 +f 766/1082/762 1056/1081/1052 692/1021/692 219/1020/219 +f 201/1083/201 660/1084/660 1057/1085/1053 678/1086/678 +f 660/1084/660 213/1087/213 767/1088/763 1057/1085/1053 +f 1057/1085/1053 767/1088/763 259/1052/259 726/1051/726 +f 678/1086/678 1057/1085/1053 726/1051/726 258/1050/258 +f 112/1089/112 392/1090/392 1058/1091/1054 769/1092/765 +f 392/1090/392 27/988/27 768/991/764 1058/1091/1054 +f 1058/1091/1054 768/991/764 226/998/226 698/1014/698 +f 769/1092/765 1058/1091/1054 698/1014/698 227/1013/227 +f 36/1093/36 419/1094/419 1059/1095/1055 770/1096/766 +f 419/1094/419 125/1071/125 764/1074/760 1059/1095/1055 +f 1059/1095/1055 764/1074/760 234/964/234 705/976/705 +f 770/1096/766 1059/1095/1055 705/976/705 235/975/235 +f 206/1077/206 647/1097/647 1060/1098/1056 765/1078/761 +f 647/1097/647 196/1099/196 771/1100/767 1060/1098/1056 +f 1060/1098/1056 771/1100/767 242/985/242 713/1043/713 +f 765/1078/761 1060/1098/1056 713/1043/713 241/1025/241 +f 18/1101/18 379/1102/379 1061/1103/1057 772/1104/768 +f 379/1102/379 105/1079/105 766/1082/762 1061/1103/1057 +f 1061/1103/1057 766/1082/762 219/1020/219 693/1041/693 +f 772/1104/768 1061/1103/1057 693/1041/693 220/983/220 +f 213/1087/213 661/1105/661 1062/1106/1058 767/1088/763 +f 661/1105/661 202/1063/202 763/1066/759 1062/1106/1058 +f 1062/1106/1058 763/1066/759 255/969/255 727/1060/727 +f 767/1088/763 1062/1106/1058 727/1060/727 259/1052/259 +f 28/857/28 393/1107/393 1063/1108/1059 671/858/671 +f 393/1107/393 112/1089/112 769/1092/765 1063/1108/1059 +f 1063/1108/1059 769/1092/765 227/1013/227 699/1026/699 +f 671/858/671 1063/1108/1059 699/1026/699 223/859/223 +f 196/1099/196 648/1109/648 1064/1110/1060 771/1100/767 +f 648/1109/648 207/1111/207 773/1112/769 1064/1110/1060 +f 1064/1110/1060 773/1112/769 243/987/243 714/986/714 +f 771/1100/767 1064/1110/1060 714/986/714 242/985/242 +f 262/1113/262 813/1114/809 1065/1115/1061 809/1116/805 +f 813/1114/809 222/945/222 742/1000/740 1065/1115/1061 +f 1065/1115/1061 742/1000/740 244/874/244 814/873/810 +f 809/1116/805 1065/1115/1061 814/873/810 269/872/269 +f 214/868/214 663/1117/663 1066/1118/1062 822/869/818 +f 198/907/198 679/910/679 1066/1118/1062 663/1117/663 +f 248/912/248 816/1119/812 1066/1118/1062 679/910/679 +f 268/1120/268 804/1121/800 1066/1118/1062 816/1119/812 +f 270/870/270 822/869/818 1066/1118/1062 804/1121/800 +f 207/1111/207 649/1122/649 1067/1123/1063 773/1112/769 +f 649/1122/649 194/864/194 774/867/770 1067/1123/1063 +f 1067/1123/1063 774/867/770 244/874/244 715/1001/715 +f 773/1112/769 1067/1123/1063 715/1001/715 243/987/243 +f 120/1124/120 408/1125/408 1068/1126/1064 775/1127/771 +f 408/1125/408 47/846/47 755/849/751 1068/1126/1064 +f 1068/1126/1064 755/849/751 231/854/231 702/1030/702 +f 775/1127/771 1068/1126/1064 702/1030/702 232/1029/232 +f 226/998/226 815/997/811 1069/1128/1065 743/1017/741 +f 815/997/811 263/996/263 808/1129/804 1069/1128/1065 +f 1069/1128/1065 808/1129/804 268/1120/268 816/1119/812 +f 743/1017/741 1069/1128/1065 816/1119/812 248/912/248 +f 216/895/216 666/1130/666 1070/1131/1066 823/896/819 +f 201/1083/201 678/1086/678 1070/1131/1066 666/1130/666 +f 258/1050/258 821/1057/817 1070/1131/1066 678/1086/678 +f 271/1056/271 806/1132/802 1070/1131/1066 821/1057/817 +f 273/897/273 823/896/819 1070/1131/1066 806/1132/802 +f 199/879/199 650/1133/650 1071/1134/1067 676/880/676 +f 650/1133/650 208/946/208 688/949/688 1071/1134/1067 +f 1071/1134/1067 688/949/688 246/951/246 716/1035/716 +f 676/880/676 1071/1134/1067 716/1035/716 245/881/245 +f 107/941/107 382/1135/382 1072/1136/1068 687/942/687 +f 382/1135/382 18/1101/18 772/1104/768 1072/1136/1068 +f 1072/1136/1068 772/1104/768 220/983/220 694/980/694 +f 687/942/687 1072/1136/1068 694/980/694 221/943/221 +f 48/796/48 409/1137/409 1073/1138/1069 760/797/756 +f 409/1137/409 120/1124/120 775/1127/771 1073/1138/1069 +f 1073/1138/1069 775/1127/771 232/1029/232 703/1044/703 +f 760/797/756 1073/1138/1069 703/1044/703 228/798/228 +f 134/932/134 436/1139/436 1074/1140/1070 685/933/685 +f 436/1139/436 36/1093/36 770/1096/766 1074/1140/1070 +f 1074/1140/1070 770/1096/766 235/975/235 708/1010/708 +f 685/933/685 1074/1140/1070 708/1010/708 238/934/238 +f 134/1141/134 776/1142/772 1075/1143/1071 436/1144/436 +f 776/1142/772 215/919/215 664/953/664 1075/1143/1071 +f 1075/1143/1071 664/953/664 200/952/200 777/1145/773 +f 436/1144/436 1075/1143/1071 777/1145/773 36/1146/36 +f 36/1146/36 777/1145/773 1076/1147/1072 419/1148/419 +f 777/1145/773 200/952/200 659/1069/659 1076/1147/1072 +f 1076/1147/1072 659/1069/659 212/1067/212 778/1149/774 +f 419/1148/419 1076/1147/1072 778/1149/774 125/1150/125 +f 125/1150/125 778/1149/774 1077/1151/1073 418/1152/418 +f 778/1149/774 212/1067/212 658/1064/658 1077/1151/1073 +f 1077/1151/1073 658/1064/658 202/1063/202 779/1153/775 +f 418/1152/418 1077/1151/1073 779/1153/775 38/1154/38 +f 38/1154/38 779/1153/775 1078/1155/1074 425/1156/425 +f 779/1153/775 202/1063/202 661/1105/661 1078/1155/1074 +f 1078/1155/1074 661/1105/661 213/1087/213 780/1157/776 +f 425/1156/425 1078/1155/1074 780/1157/776 128/1158/128 +f 128/1158/128 780/1157/776 1079/1159/1075 424/1160/424 +f 780/1157/776 213/1087/213 660/1084/660 1079/1159/1075 +f 1079/1159/1075 660/1084/660 201/1083/201 781/1161/777 +f 424/1160/424 1079/1159/1075 781/1161/777 37/1162/37 +f 37/1162/37 781/1161/777 1080/1163/1076 438/1164/438 +f 781/1161/777 201/1083/201 666/1130/666 1080/1163/1076 +f 1080/1163/1076 666/1130/666 216/895/216 782/1165/778 +f 438/1164/438 1080/1163/1076 782/1165/778 135/1166/135 +f 135/1166/135 782/1165/778 1081/1167/1077 439/1168/439 +f 782/1165/778 216/895/216 667/893/667 1081/1167/1077 +f 1081/1167/1077 667/893/667 203/835/203 783/1169/779 +f 439/1168/439 1081/1167/1077 783/1169/779 46/1170/46 +f 46/1170/46 783/1169/779 1082/1171/1078 403/1172/403 +f 783/1169/779 203/835/203 655/832/655 1082/1171/1078 +f 1082/1171/1078 655/832/655 210/831/210 784/1173/780 +f 403/1172/403 1082/1171/1078 784/1173/780 117/1174/117 +f 117/1174/117 784/1173/780 1083/1175/1079 402/1176/402 +f 784/1173/780 210/831/210 654/861/654 1083/1175/1079 +f 1083/1175/1079 654/861/654 205/787/205 785/1177/781 +f 402/1176/402 1083/1175/1079 785/1177/781 48/1178/48 +f 48/1178/48 785/1177/781 1084/1179/1080 409/1180/409 +f 785/1177/781 205/787/205 657/784/657 1084/1179/1080 +f 1084/1179/1080 657/784/657 211/783/211 786/1181/782 +f 409/1180/409 1084/1179/1080 786/1181/782 120/1182/120 +f 120/1182/120 786/1181/782 1085/1183/1081 408/1184/408 +f 786/1181/782 211/783/211 656/802/656 1085/1183/1081 +f 1085/1183/1081 656/802/656 204/801/204 787/1185/783 +f 408/1184/408 1085/1183/1081 787/1185/783 47/1186/47 +f 47/1186/47 787/1185/783 1086/1187/1082 440/1188/440 +f 787/1185/783 204/801/204 668/841/668 1086/1187/1082 +f 1086/1187/1082 668/841/668 217/840/217 788/1189/784 +f 440/1188/440 1086/1187/1082 788/1189/784 136/1190/136 +f 136/1191/136 788/1192/784 1087/1193/1083 441/1194/441 +f 788/1192/784 217/811/217 669/808/669 1087/1193/1083 +f 1087/1193/1083 669/808/669 197/807/197 789/1195/785 +f 441/1194/441 1087/1193/1083 789/1195/785 26/1196/26 +f 26/1196/26 789/1195/785 1088/1197/1084 387/1198/387 +f 789/1195/785 197/807/197 651/947/651 1088/1197/1084 +f 1088/1197/1084 651/947/651 208/946/208 790/1199/786 +f 387/1198/387 1088/1197/1084 790/1199/786 109/1200/109 +f 109/1200/109 790/1199/786 1089/1201/1085 386/1202/386 +f 790/1199/786 208/946/208 650/1133/650 1089/1201/1085 +f 1089/1201/1085 650/1133/650 199/879/199 791/1203/787 +f 386/1202/386 1089/1201/1085 791/1203/787 28/1204/28 +f 28/1204/28 791/1203/787 1090/1205/1086 393/1206/393 +f 791/1203/787 199/879/199 653/876/653 1090/1205/1086 +f 1090/1205/1086 653/876/653 209/875/209 792/1207/788 +f 393/1206/393 1090/1205/1086 792/1207/788 112/1208/112 +f 112/1208/112 792/1207/788 1091/1209/1087 392/1210/392 +f 792/1207/788 209/875/209 652/908/652 1091/1209/1087 +f 1091/1209/1087 652/908/652 198/907/198 793/1211/789 +f 392/1210/392 1091/1209/1087 793/1211/789 27/1212/27 +f 27/1212/27 793/1211/789 1092/1213/1088 435/1214/435 +f 793/1211/789 198/907/198 663/1117/663 1092/1213/1088 +f 1092/1213/1088 663/1117/663 214/868/214 794/1215/790 +f 435/1214/435 1092/1213/1088 794/1215/790 133/1216/133 +f 133/1216/133 794/1215/790 1093/1217/1089 434/1218/434 +f 794/1215/790 214/868/214 662/865/662 1093/1217/1089 +f 1093/1217/1089 662/865/662 194/864/194 795/1219/791 +f 434/1218/434 1093/1217/1089 795/1219/791 16/1220/16 +f 16/1220/16 795/1219/791 1094/1221/1090 383/1222/383 +f 795/1219/791 194/864/194 649/1122/649 1094/1221/1090 +f 1094/1221/1090 649/1122/649 207/1111/207 796/1223/792 +f 383/1222/383 1094/1221/1090 796/1223/792 107/1224/107 +f 107/1224/107 796/1223/792 1095/1225/1091 382/1226/382 +f 796/1223/792 207/1111/207 648/1109/648 1095/1225/1091 +f 1095/1225/1091 648/1109/648 196/1099/196 797/1227/793 +f 382/1226/382 1095/1225/1091 797/1227/793 18/1228/18 +f 18/1228/18 797/1227/793 1096/1229/1092 379/1230/379 +f 797/1227/793 196/1099/196 647/1097/647 1096/1229/1092 +f 1096/1229/1092 647/1097/647 206/1077/206 798/1231/794 +f 379/1230/379 1096/1229/1092 798/1231/794 105/1232/105 +f 105/1232/105 798/1231/794 1097/1233/1093 378/1234/378 +f 798/1231/794 206/1077/206 646/1075/646 1097/1233/1093 +f 1097/1233/1093 646/1075/646 195/923/195 799/1235/795 +f 378/1234/378 1097/1233/1093 799/1235/795 17/1236/17 +f 17/1236/17 799/1235/795 1098/1237/1094 437/1238/437 +f 799/1235/795 195/923/195 665/920/665 1098/1237/1094 +f 1098/1237/1094 665/920/665 215/919/215 776/1142/772 +f 437/1238/437 1098/1237/1094 776/1142/772 134/1141/134 +f 133/992/133 434/1239/434 1099/1240/1095 812/993/808 +f 16/937/16 686/940/686 1099/1240/1095 434/1239/434 +f 222/945/222 813/1114/809 1099/1240/1095 686/940/686 +f 262/1113/262 800/1241/796 1099/1240/1095 813/1114/809 +f 264/994/264 812/993/808 1099/1240/1095 800/1241/796 diff --git a/model/flex/bag.xml b/model/flex/bag.xml new file mode 100644 index 00000000..49d54a64 --- /dev/null +++ b/model/flex/bag.xml @@ -0,0 +1,74 @@ + + + + + diff --git a/python/mujoco/introspect/structs.py b/python/mujoco/introspect/structs.py index 60f5f222..5057571c 100644 --- a/python/mujoco/introspect/structs.py +++ b/python/mujoco/introspect/structs.py @@ -5737,7 +5737,7 @@ STRUCTS: Mapping[str, StructDecl] = dict([ StructFieldDecl( name='efm_active', type=ValueType(name='int'), - doc='implicit effective metric M+K: 0 inactive, 1 active, 2 active + preconditioner exact', # pylint: disable=line-too-long + doc='implicit effective metric M+K is active (see mjd_effBuild)', # pylint: disable=line-too-long ), StructFieldDecl( name='nefmK', @@ -5747,12 +5747,12 @@ STRUCTS: Mapping[str, StructDecl] = dict([ StructFieldDecl( name='nefmdof', type=ValueType(name='int'), - doc='number of rows in effective-metric factor', + doc='number of 3x3 blocks in the effective-metric preconditioner', # pylint: disable=line-too-long ), StructFieldDecl( name='nefmL', type=ValueType(name='int'), - doc='number of non-zeros in the effective-metric factor', + doc='size of the effective-metric block storage (9*nefmdof)', ), StructFieldDecl( name='nY', @@ -7038,39 +7038,15 @@ STRUCTS: Mapping[str, StructDecl] = dict([ type=PointerType( inner_type=ValueType(name='int'), ), - doc='factor row -> dof address', + doc='block k -> dof address of its vertex triple', array_extent=('nefmdof',), ), - StructFieldDecl( - name='efm_L_rownnz', - type=PointerType( - inner_type=ValueType(name='int'), - ), - doc='factor row nonzeros', - array_extent=('nefmdof',), - ), - StructFieldDecl( - name='efm_L_rowadr', - type=PointerType( - inner_type=ValueType(name='int'), - ), - doc='factor row addresses', - array_extent=('nefmdof',), - ), - StructFieldDecl( - name='efm_L_colind', - type=PointerType( - inner_type=ValueType(name='int'), - ), - doc='factor column indices', - array_extent=('nefmL',), - ), StructFieldDecl( name='efm_L', type=PointerType( inner_type=ValueType(name='mjtNum'), ), - doc='Cholesky factor of diag(M)+K, covered dofs', + doc='factored 3x3 diagonal blocks of M+K', array_extent=('nefmL',), ), StructFieldDecl( diff --git a/src/engine/engine_derivative.c b/src/engine/engine_derivative.c index 17313120..76f3cb61 100644 --- a/src/engine/engine_derivative.c +++ b/src/engine/engine_derivative.c @@ -33,7 +33,6 @@ #include "engine/engine_util_sparse.h" - //------------------------- derivatives of spatial algebra ----------------------------------------- @@ -1336,7 +1335,6 @@ static void mjd_flexInterp_kernel(const mjModel* m, mjData* d, } - // compute res += (s1 + s2*damping) * J'*K*J * vec, for all interpolated flexes // K_rot_cache: if non-NULL, use pre-cached K_rot (same layout as m->flex_stiffness) void mjd_flexInterp_mul(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec, @@ -1352,7 +1350,6 @@ void mjd_flexInterp_cacheKrot(const mjModel* m, mjData* d, mjtNum* K_rot_out) { } - // compute res += scale * K_bend * vec for standard (non-interp) flex bending // scale = s1 + s2 * flex_damping[f] per flex // for stiffness+damping: s1=h^2, s2=h => scale = h^2 + h*damping @@ -2043,7 +2040,6 @@ int mjd_flexStiff_assemble(const mjModel* m, mjData* d, int* rownnz, int* rowadr - // add (d qfrc_actuator / d qvel) to qDeriv void mjd_actuator_vel(const mjModel* m, mjData* d) { int nactuator = m->nactuator; @@ -2901,403 +2897,191 @@ void mjd_effMulAdd(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec) } -// z = P \ r with P = M everywhere except the flex block: per-step factor where present, else -// block-Jacobi, plus the constant mj_setConst bending factor on its covered dofs -static void effPrecond(const mjModel* m, mjData* d, mjtNum* z, const mjtNum* r, - mjtNum* psr, mjtNum* psz, mjtNum* bfr, mjtNum* bfz) { +// Build and factor the per-vertex 3x3 diagonal blocks of the flex part of (M + K), stored in +// d->efm_L, 9 numbers per covered vertex: O(n) to build and apply, approximate where the sparse +// factorization it replaces was exact. Both consumers use the blocks as a preconditioner: the CG +// constraint solver (Mgrad = Mtilde \ grad) and the qacc_smooth PCG in mjd_effSolve, which +// supplies the accuracy. +static void effBlocks(const mjModel* m, mjData* d) { int nv = m->nv; - mju_copy(z, r, nv); - mj_solveLD(z, d->qLD, d->qLDiagInv, nv, 1, m->M_rownnz, m->M_rowadr, m->M_colind, NULL); - // precomputed bending factor (mj_setConst): exact (M + K_bend)^-1 on covered dofs. - // Skipped when the per-step factor exists: it covers these rows and is applied last, - // so this solve would be overwritten + // covered dofs come in contiguous triples (the 3 slide dofs of one flex point), but the first + // one need not be at a multiple of 3: any joint declared before the flex shifts them. Walk the + // covered rows rather than striding the dof index, which would straddle point boundaries. + int nb = 0; + for (int i = 0; i < nv; ) { + if (d->efm_K_rownnz[i]) { nb++; i += 3; } else { i++; } + } + d->nefmdof = 0; + mjtNum* B = (mjtNum*) effAlloc(d, sizeof(mjtNum)*9*(nb > 0 ? nb : 1), _Alignof(mjtNum)); + int* adr = (int*) effAlloc(d, sizeof(int)*(nb > 0 ? nb : 1), _Alignof(int)); + int k = 0; + for (int i = 0; i < nv; ) { + if (!d->efm_K_rownnz[i]) { + i++; + continue; + } + mjtNum* Bk = B + 9*k; + mju_zero(Bk, 9); + for (int r = 0; r < 3; r++) { + int row = i + r; + for (int a = m->M_rowadr[row]; a < m->M_rowadr[row] + m->M_rownnz[row]; a++) { + int c = m->M_colind[a]; + if (c >= i && c < i+3) Bk[3*r + (c-i)] += d->M[a]; + } + for (int a = d->efm_K_rowadr[row]; a < d->efm_K_rowadr[row] + d->efm_K_rownnz[row]; a++) { + int c = d->efm_K_colind[a]; + if (c >= i && c < i+3) Bk[3*r + (c-i)] += d->efm_K_val[a]; + } + } + mju_cholFactor(Bk, 3, mjMINVAL); + adr[k++] = i; + i += 3; + } + d->efm_L = B; + d->efm_dofid = adr; + d->nefmdof = nb; + d->nefmL = 9*nb; +} + +// Apply the metric preconditioner: the per-step 3x3 blocks when they exist, else the constant +// bending factor from mj_setConst, on the dofs they cover; M^-1 on all other dofs. PCG requires +// symmetry, so covered and uncovered dofs must not see each other: zeroing the covered entries +// of the right-hand side before the qLD sweep keeps the uncovered rows from reading them. +static void effBlockApply(const mjModel* m, mjData* d, mjtNum* x, const mjtNum* b) { + int nv = m->nv; int nbd = m->nefm0dof; - if (nbd && !d->nefmdof) { - for (int i=0; i < nbd; i++) { - bfr[i] = r[m->efm0_dofid[i]]; + int flg_bend = nbd && !d->nefmdof; + mj_markStack(d); + mjtNum* rhs = mjSTACKALLOC(d, nv, mjtNum); + mju_copy(rhs, b, nv); // b may alias x, which the sweep below overwrites + + // dofs no factor covers + mju_copy(x, rhs, nv); + for (int k = 0; k < d->nefmdof; k++) { + mju_zero(x + d->efm_dofid[k], 3); + } + if (flg_bend) { + for (int i = 0; i < nbd; i++) { + x[m->efm0_dofid[i]] = 0; + } + } + mj_solveLD(x, d->qLD, d->qLDiagInv, nv, 1, m->M_rownnz, m->M_rowadr, m->M_colind, NULL); + + // per-step stiffness: 3x3 blocks + for (int k = 0; k < d->nefmdof; k++) { + int i = d->efm_dofid[k]; + mju_cholSolve(x + i, d->efm_L + 9*k, rhs + i, 3); + } + + // bending-only: exact (M + K_bend)^-1 on the dofs the constant factor covers + if (flg_bend) { + mjtNum* bfr = mjSTACKALLOC(d, nbd, mjtNum); + mjtNum* bfz = mjSTACKALLOC(d, nbd, mjtNum); + for (int i = 0; i < nbd; i++) { + bfr[i] = rhs[m->efm0_dofid[i]]; } mju_cholSolveSparse(bfz, m->efm0_L, bfr, nbd, m->efm0_L_rownnz, m->efm0_L_rowadr, m->efm0_L_colind); - for (int i=0; i < nbd; i++) { - z[m->efm0_dofid[i]] = bfz[i]; - } - } - - // per-step factor: exact (diag(M) + K)^-1 on its covered dofs, applied last - if (d->nefmdof) { - int n = d->nefmdof; - for (int i=0; i < n; i++) { - psr[i] = r[d->efm_dofid[i]]; - } - mju_cholSolveSparse(psz, d->efm_L, psr, n, - d->efm_L_rownnz, d->efm_L_rowadr, d->efm_L_colind); - for (int i=0; i < n; i++) { - z[d->efm_dofid[i]] = psz[i]; + for (int i = 0; i < nbd; i++) { + x[m->efm0_dofid[i]] = bfz[i]; } } + mj_freeStack(d); } -// solve x = Mtilde \ b, where Mtilde is this step's effective metric: -// efm_active == 0: Mtilde = M one sparse LD solve, no elasticity anywhere -// efm_active == 2: Mtilde = M + K exact direct solve, blockdiag(qLD, flex factor); -// exactness conditions in mjd_effBuild -// efm_active == 1: Mtilde = M + K iterative: x0 = M \ b ignores the elasticity, then -// matrix-free PCG on the residual, preconditioned by -// effPrecond (tolerance/cap match the old post-hoc) +// iteration cap for the metric solve +#define mjEFF_MAXITER 100 + +// accurate solve of (M + K) x = b by PCG with the 3x3 block preconditioner, converging the +// relative residual to opt.tolerance; used for qacc_smooth. Reaching mjEFF_MAXITER means the +// metric is too ill-conditioned for the blocks: warn (mjWARN_INERTIA, worst-residual dof) and +// return x under-converged. void mjd_effSolve(const mjModel* m, mjData* d, mjtNum* x, const mjtNum* b) { + if (!d->efm_active) { + mjd_effPrec(m, d, x, b); + return; + } + int nv = m->nv; + mj_markStack(d); + mjtNum* r = mjSTACKALLOC(d, nv, mjtNum); + mjtNum* z = mjSTACKALLOC(d, nv, mjtNum); + mjtNum* p = mjSTACKALLOC(d, nv, mjtNum); + mjtNum* Ap = mjSTACKALLOC(d, nv, mjtNum); + mju_copy(r, b, nv); // before zeroing x: b may alias x + mju_zero(x, nv); + mjtNum bn = mju_dot(r, r, nv); + if (bn > mjMINVAL) { + // converge the relative residual to opt.tolerance; both sides are squared norms +#ifdef mjUSESINGLE + // float cannot reach a 1e-8 relative residual (eps ~1.2e-7): without a floor every step of + // every covered model would run to mjEFF_MAXITER and then warn. + mjtNum tolerance = mju_max(m->opt.tolerance, 1e-6); +#else + mjtNum tolerance = m->opt.tolerance; +#endif + mjtNum tol = tolerance*tolerance*bn; + int capped = 1; // cleared by either exit below; still set means the cap was reached + effBlockApply(m, d, z, r); + mju_copy(p, z, nv); + mjtNum rz = mju_dot(r, z, nv); + for (int it = 0; it < mjEFF_MAXITER; it++) { + mju_mulSymVecSparse(Ap, d->M, p, nv, m->M_rownnz, m->M_rowadr, m->M_colind); + mjd_effMulAdd(m, d, Ap, p); + mjtNum pAp = mju_dot(p, Ap, nv); + // curvature breakdown: the metric has no curvature along p, so no further progress is + // possible and x is the best available. Not a budget failure, so it does not warn. + if (pAp <= 0) { capped = 0; break; } + mjtNum alpha = rz/pAp; + mju_addToScl(x, p, alpha, nv); + mju_addToScl(r, Ap, -alpha, nv); + if (mju_dot(r, r, nv) < tol) { capped = 0; break; } + effBlockApply(m, d, z, r); + mjtNum rznew = mju_dot(r, z, nv); + mju_addScl(p, z, p, rznew/rz, nv); + rz = rznew; + } + + // Ran out of iterations with the residual still above tolerance: the metric is too + // ill-conditioned for the blocks to solve within the budget. Blame the dof carrying the + // largest residual. + // mjWARN_INERTIA is the closest existing warning (reusing it avoids an ABI addition), but on + // its own it points the user at their inertia when the cause is the flex stiffness, so say so + // first. Gate on the same first-time condition mj_warning uses, or a model that fails every + // step would print this thousands of times a second. + if (capped && mju_dot(r, r, nv) >= tol) { + int worst = 0; + for (int i = 1; i < nv; i++) { + if (mju_abs(r[i]) > mju_abs(r[worst])) worst = i; + } + if (!d->warning[mjWARN_INERTIA].number) { + mju_warning("Flex stiffness is too ill-conditioned for the effective-metric block " + "preconditioner: the M+K solve ran out of iterations at a relative residual " + "of %.2e and qacc_smooth is under-converged. Reported as a singular inertia " + "below, because M+K is the effective inertia.", + mju_sqrt(mju_dot(r, r, nv)/bn)); + } + mj_warning(d, mjWARN_INERTIA, worst); + } + } + mj_freeStack(d); +} + +void mjd_effPrec(const mjModel* m, mjData* d, mjtNum* x, const mjtNum* b) { int nv = m->nv; - // inactive metric: x = M \ b - if (!d->efm_active) { - if (x != b) { - mju_copy(x, b, nv); - } - mj_solveLD(x, d->qLD, d->qLDiagInv, nv, 1, m->M_rownnz, m->M_rowadr, m->M_colind, NULL); + // active metric: the prefactored 3x3 blocks are the preconditioner + if (d->efm_active) { + effBlockApply(m, d, x, b); return; } - // exact preconditioner: blockdiag(qLD, flex factor) is (M+K)^-1, solve directly - if (d->efm_active == 2) { - mj_markStack(d); - mjtNum* psr = mjSTACKALLOC(d, d->nefmdof > 0 ? d->nefmdof : 1, mjtNum); - mjtNum* psz = mjSTACKALLOC(d, d->nefmdof > 0 ? d->nefmdof : 1, mjtNum); - int nbd0 = m->nefm0dof; - mjtNum* bfr = mjSTACKALLOC(d, nbd0 > 0 ? nbd0 : 1, mjtNum); - mjtNum* bfz = mjSTACKALLOC(d, nbd0 > 0 ? nbd0 : 1, mjtNum); - effPrecond(m, d, x, b, psr, psz, bfr, bfz); - mj_freeStack(d); - return; - } - - // general path: warm start from M \ b, refine below + // inactive metric: x = M \ b, which is exact if (x != b) { mju_copy(x, b, nv); } mj_solveLD(x, d->qLD, d->qLDiagInv, nv, 1, m->M_rownnz, m->M_rowadr, m->M_colind, NULL); - - mj_markStack(d); - mjtNum* r = mjSTACKALLOC(d, nv, mjtNum); - mjtNum* z = mjSTACKALLOC(d, nv, mjtNum); - mjtNum* p = mjSTACKALLOC(d, nv, mjtNum); - mjtNum* Ap = mjSTACKALLOC(d, nv, mjtNum); - mjtNum* psr = mjSTACKALLOC(d, d->nefmdof > 0 ? d->nefmdof : 1, mjtNum); - mjtNum* psz = mjSTACKALLOC(d, d->nefmdof > 0 ? d->nefmdof : 1, mjtNum); - int nbd = m->nefm0dof; - mjtNum* bfr = mjSTACKALLOC(d, nbd > 0 ? nbd : 1, mjtNum); - mjtNum* bfz = mjSTACKALLOC(d, nbd > 0 ? nbd : 1, mjtNum); - - // r = b - (M+K)*x - mju_mulSymVecSparse(Ap, d->M, x, nv, m->M_rownnz, m->M_rowadr, m->M_colind); - mjd_effMulAdd(m, d, Ap, x); - mju_sub(r, b, Ap, nv); - - // relative tolerance on the residual - mjtNum tol = 1e-10 * mju_dot(b, b, nv); - if (mju_dot(r, r, nv) < tol) { - mj_freeStack(d); - return; - } - - effPrecond(m, d, z, r, psr, psz, bfr, bfz); - mju_copy(p, z, nv); - mjtNum rz = mju_dot(r, z, nv); - - for (int k=0; k < 50; k++) { - mju_mulSymVecSparse(Ap, d->M, p, nv, m->M_rownnz, m->M_rowadr, m->M_colind); - mjd_effMulAdd(m, d, Ap, p); - mjtNum pAp = mju_dot(p, Ap, nv); - if (pAp < mjMINVAL) { - break; - } - mjtNum alpha = rz/pAp; - mju_addToScl(x, p, alpha, nv); - mju_addToScl(r, Ap, -alpha, nv); - if (mju_dot(r, r, nv) < tol) { - break; - } - effPrecond(m, d, z, r, psr, psz, bfr, bfz); - mjtNum rznew = mju_dot(r, z, nv); - mju_addScl(p, z, p, rznew/rz, nv); - rz = rznew; - } - mj_freeStack(d); -} - - -// geometric nested-dissection ordering for the per-step factor: recursive coordinate bisection -// with adjacency-detected separators, emitted ancestors-first (the reverse-Cholesky convention) -typedef struct { - const mjtNum* pos; // block positions (3 x nblk) - const int* B_rownnz; // dof-level B pattern, for block adjacency - const int* B_rowadr; - const int* B_colind; - const int* dofid; // block -> first dof address (3 dofs per block) - const int* dof2c; // dof -> compact index (pre-permutation) - int* work; // block id work array (nblk x 1) - int* stamp; // current-range stamp per block (nblk x 1) - int* side; // bisection side per block (valid when stamped)(nblk x 1) - int stampctr; // running range id - int* scratch; // side-1 gather scratch (nblk x 1) - int* perm; // output: block emission order (nblk x 1) - int nperm; // emitted count -} mjEffND; - -static void effNDOrder(mjEffND* nd, int lo, int hi) { - int nblk = hi - lo; - if (nblk <= 16) { - for (int i=lo; i < hi; i++) { - nd->perm[nd->nperm++] = nd->work[i]; - } - return; - } - - // widest axis of the range's bounding box, split at the mean coordinate - mjtNum bmin[3] = {mjMAXVAL, mjMAXVAL, mjMAXVAL}, bmax[3] = {-mjMAXVAL, -mjMAXVAL, -mjMAXVAL}; - mjtNum mean[3] = {0, 0, 0}; - for (int i=lo; i < hi; i++) { - const mjtNum* p = nd->pos + 3*nd->work[i]; - for (int x=0; x < 3; x++) { - bmin[x] = p[x] < bmin[x] ? p[x] : bmin[x]; - bmax[x] = p[x] > bmax[x] ? p[x] : bmax[x]; - mean[x] += p[x]; - } - } - int axis = 0; - for (int x=1; x < 3; x++) { - if (bmax[x] - bmin[x] > bmax[axis] - bmin[axis]) { - axis = x; - } - } - mjtNum split = mean[axis] / nblk; - - // stamp the range, assign sides - int id = ++nd->stampctr, n0 = 0; - for (int i=lo; i < hi; i++) { - int b = nd->work[i]; - nd->stamp[b] = id; - nd->side[b] = nd->pos[3*b + axis] > split; - n0 += !nd->side[b]; - } - - // degenerate split (coincident positions): fall back to an arbitrary halving - if (n0 == 0 || n0 == nblk) { - for (int i=lo; i < hi; i++) { - nd->side[nd->work[i]] = (i - lo) >= nblk/2; - } - } - - // emit the separator (side-0 blocks adjacent to side 1) first; compact A in place and - // side-1 blocks via the scratch list (in-place would clobber unread entries) - int na = 0, nb = 0; - for (int i=lo; i < hi; i++) { - int b = nd->work[i]; - if (nd->side[b]) { - nd->scratch[nb++] = b; - continue; - } - - // side 0: separator iff adjacent to side 1 (block adjacency via the first dof's B row) - int dof = nd->dofid[3*b]; - int adr = nd->B_rowadr[dof], nnz = nd->B_rownnz[dof], sep = 0; - for (int k=0; k < nnz; k++) { - int cc = nd->dof2c[nd->B_colind[adr + k]]; - if (cc >= 0) { - int nbr = cc/3; - if (nd->stamp[nbr] == id && nd->side[nbr]) { - sep = 1; - break; - } - } - } - if (sep) { - nd->perm[nd->nperm++] = b; - } else { - nd->work[lo + na++] = b; - } - } - for (int i=0; i < nb; i++) { - nd->work[lo + na + i] = nd->scratch[i]; - } - effNDOrder(nd, lo, lo + na); - effNDOrder(nd, lo + na, lo + na + nb); -} - - -// per-step sparse factor of the flex block of (M + K): reverse-Cholesky over the covered dofs, -// nested-dissection ordered. M enters as its diagonal there -- exact for free vertices; -// parent-coupled vertices make this a preconditioner, refined to tolerance by mjd_effSolve. -// Exact zeros are dropped from the off-diagonal pattern (bending couples same-coordinate dofs -// only). The matrix is SPD by construction, so rank deficiency can only mean a degenerate -// model (near-zero mass and stiffness on a covered dof) and is a hard error. -static void effFactor(const mjModel* m, mjData* d) { - int nv = m->nv; - const int* B_rownnz = d->efm_K_rownnz; - const int* B_rowadr = d->efm_K_rowadr; - const int* B_colind = d->efm_K_colind; - const mjtNum* B_val = d->efm_K_val; - - mj_markStack(d); - - // compact dof map over covered rows (ascending, so compact indices stay sorted) - int* dof2c = mjSTACKALLOC(d, nv, int); - int n = 0; - for (int i=0; i < nv; i++) { - dof2c[i] = B_rownnz[i] ? n++ : -1; - } - int* dofid = mjSTACKALLOC(d, n, int); - for (int i=0; i < nv; i++) { - if (dof2c[i] >= 0) { - dofid[dof2c[i]] = i; - } - } - - // nested-dissection reordering of the covered blocks (one block = 3 dofs of one point) - int nblk = n/3; - int* nd_perm = mjSTACKALLOC(d, nblk, int); - { - int* nd_work = mjSTACKALLOC(d, nblk, int); - int* nd_stamp = mjSTACKALLOC(d, nblk, int); - int* nd_side = mjSTACKALLOC(d, nblk, int); - int* nd_scr = mjSTACKALLOC(d, nblk, int); - mjtNum* bpos = mjSTACKALLOC(d, 3*nblk, mjtNum); - for (int b=0; b < nblk; b++) { - nd_work[b] = b; - nd_stamp[b] = 0; - mju_copy3(bpos + 3*b, d->xpos + 3*m->dof_bodyid[dofid[3*b]]); - } - mjEffND nd; - nd.pos = bpos; - nd.B_rownnz = B_rownnz; - nd.B_rowadr = B_rowadr; - nd.B_colind = B_colind; - nd.dofid = dofid; - nd.dof2c = dof2c; - nd.work = nd_work; - nd.stamp = nd_stamp; - nd.side = nd_side; - nd.stampctr = 0; - nd.scratch = nd_scr; - nd.perm = nd_perm; - nd.nperm = 0; - effNDOrder(&nd, 0, nblk); - } - - // apply the permutation to the compact indexing; the permuted dofid persists on the arena - int* psdofid = EFMALLOC(int, n); - for (int r=0; r < nblk; r++) { - psdofid[3*r] = dofid[3*nd_perm[r]]; - psdofid[3*r+1] = dofid[3*nd_perm[r] + 1]; - psdofid[3*r+2] = dofid[3*nd_perm[r] + 2]; - } - for (int i=0; i < n; i++) { - dof2c[psdofid[i]] = i; - } - - // H = diag(M) + K in compact indices: lower CSR (values, diagonal last) + upper CSR (pattern) - int nHl = 0, nHu = 0; - for (int c=0; c < n; c++) { - int adr = B_rowadr[psdofid[c]], nnzB = B_rownnz[psdofid[c]]; - for (int k=0; k < nnzB; k++) { - int cc = dof2c[B_colind[adr + k]]; - if (B_val[adr + k] == 0 && cc != c) { - continue; - } - if (cc <= c) { - nHl++; - } else { - nHu++; - } - } - } - int* Hl_rownnz = mjSTACKALLOC(d, n, int); - int* Hl_rowadr = mjSTACKALLOC(d, n, int); - int* Hl_colind = mjSTACKALLOC(d, nHl, int); - mjtNum* Hl_val = mjSTACKALLOC(d, nHl, mjtNum); - int* Hu_rownnz = mjSTACKALLOC(d, n, int); - int* Hu_rowadr = mjSTACKALLOC(d, n, int); - int* Hu_colind = mjSTACKALLOC(d, nHu > 0 ? nHu : 1, int); - int maxrow = 0; - for (int c=0; c < n; c++) { - maxrow = B_rownnz[psdofid[c]] > maxrow ? B_rownnz[psdofid[c]] : maxrow; - } - int* rind = mjSTACKALLOC(d, maxrow, int); - mjtNum* rval = mjSTACKALLOC(d, maxrow, mjtNum); - int ladr = 0, uadr = 0; - for (int c=0; c < n; c++) { - int i = psdofid[c]; - Hl_rowadr[c] = ladr; - Hu_rowadr[c] = uadr; - - // gather the row in permuted compact indices, then sort (columns are no longer monotone) - int adr = B_rowadr[i], nnzB = B_rownnz[i], nr = 0; - for (int k=0; k < nnzB; k++) { - int cc = dof2c[B_colind[adr + k]]; - if (B_val[adr + k] == 0 && cc != c) { - continue; - } - rind[nr] = cc; - rval[nr++] = B_val[adr + k]; - } - for (int k=1; k < nr; k++) { - int ci = rind[k]; - mjtNum vi = rval[k]; - int j = k - 1; - while (j >= 0 && rind[j] > ci) { - rind[j+1] = rind[j]; - rval[j+1] = rval[j]; - j--; - } - rind[j+1] = ci; - rval[j+1] = vi; - } - for (int k=0; k < nr; k++) { - if (rind[k] < c) { - Hl_colind[ladr] = rind[k]; - Hl_val[ladr++] = rval[k]; - } else if (rind[k] == c) { - Hl_colind[ladr] = c; - Hl_val[ladr++] = rval[k] + d->M[m->M_rowadr[i] + m->M_rownnz[i] - 1]; - } else { - Hu_colind[uadr++] = rind[k]; - } - } - Hl_rownnz[c] = ladr - Hl_rowadr[c]; - Hu_rownnz[c] = uadr - Hu_rowadr[c]; - } - - // symbolic factorization: counting phase, then filling phase - int* L_rownnz = EFMALLOC(int, n); - int* L_rowadr = EFMALLOC(int, n); - int* LT_rownnz = mjSTACKALLOC(d, n, int); - int* LT_rowadr = mjSTACKALLOC(d, n, int); - int nnz = mju_cholFactorSymbolic(NULL, L_rownnz, L_rowadr, NULL, LT_rownnz, LT_rowadr, NULL, - Hu_rownnz, Hu_rowadr, Hu_colind, n, d); - int* L_colind = EFMALLOC(int, nnz); - int* LT_colind = mjSTACKALLOC(d, nnz, int); - int* LT_map = mjSTACKALLOC(d, nnz, int); - mju_cholFactorSymbolic(L_colind, L_rownnz, L_rowadr, LT_colind, LT_rownnz, LT_rowadr, LT_map, - Hu_rownnz, Hu_rowadr, Hu_colind, n, d); - - // numeric factorization - mjtNum* L = EFMALLOC(mjtNum, nnz); - int rank = mju_cholFactorNumeric(L, n, mjMINVAL, L_rownnz, L_rowadr, L_colind, - LT_rownnz, LT_rowadr, LT_colind, LT_map, - Hl_val, Hl_rownnz, Hl_rowadr, Hl_colind, d); - mj_freeStack(d); - if (rank != n) { - mjERROR("effective metric factorization is rank-deficient (%d of %d): " - "degenerate mass or stiffness in the flex block", rank, n); - } - - d->nefmdof = n; - d->nefmL = nnz; - d->efm_dofid = psdofid; - d->efm_L_rownnz = L_rownnz; - d->efm_L_rowadr = L_rowadr; - d->efm_L_colind = L_colind; - d->efm_L = L; } @@ -3358,7 +3142,7 @@ void mjd_effBuild(const mjModel* m, mjData* d, int active, int flg_factor) { // solve (the stiff flex block stops being iterated on). Consumers that only multiply // (inverse dynamics) skip it. if (flg_factor) { - effFactor(m, d); + effBlocks(m, d); } } else { @@ -3367,36 +3151,6 @@ void mjd_effBuild(const mjModel* m, mjData* d, int active, int flg_factor) { } d->efm_active = 1; - // preconditioner exactness (efm_active == 2): when every dof the stiffness touches sits on - // a simple slider body (diagonal M row, no kinematic children), M has no coupling across - // the covered block, so blockdiag(qLD, flex factor) is exactly (M+K)^-1 and mjd_effSolve - // skips the refinement. Interp flexes outside the assembled CSR act only through the - // matrix-free operator (no factor rows), which breaks exactness. - int exact = d->nefmK ? (d->nefmdof > 0) : 1; - for (int f=0; exact && f < m->nflex; f++) { - if (!krot && flexInterp_processed(m, f)) { - exact = 0; - } - } - if (exact && d->nefmK) { - for (int i=0; i < nv; i++) { - if (d->efm_K_rownnz[i] && m->body_simple[m->dof_bodyid[i]] != 2) { - exact = 0; - break; - } - } - } else if (exact) { - for (int i=0; i < m->nefm0dof; i++) { - if (m->body_simple[m->dof_bodyid[m->efm0_dofid[i]]] != 2) { - exact = 0; - break; - } - } - } - if (exact) { - d->efm_active = 2; - } - // fill the shift with the current velocity (refreshed again in the velocity stage) mjd_effShift(m, d); } diff --git a/src/engine/engine_derivative.h b/src/engine/engine_derivative.h index 72eece60..b9011fd0 100644 --- a/src/engine/engine_derivative.h +++ b/src/engine/engine_derivative.h @@ -97,9 +97,15 @@ MJAPI void mjd_effShift(const mjModel* m, mjData* d); // res += B*vec (the stiffness part of the metric; caller supplies the M part) MJAPI void mjd_effMulAdd(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec); -// x = (M + B)^-1 b to 1e-10 relative; x = M^-1 b when the metric is inactive +// solve (M + B) x = b by PCG preconditioned with mjd_effPrec, to opt.tolerance on the relative +// residual; x = M^-1 b when the metric is inactive. Warns (mjWARN_INERTIA) if the iteration cap +// is reached before convergence, in which case x is returned under-converged. MJAPI void mjd_effSolve(const mjModel* m, mjData* d, mjtNum* x, const mjtNum* b); +// apply the metric preconditioner: x ~= (M + B)^-1 b, a cheap fixed linear operator, NOT a solve. +// Exact only when the metric is inactive (x = M^-1 b); otherwise approximate by construction. +MJAPI void mjd_effPrec(const mjModel* m, mjData* d, mjtNum* x, const mjtNum* b); + #ifdef __cplusplus } diff --git a/src/engine/engine_forward.c b/src/engine/engine_forward.c index 3b04f93d..15d87ef6 100644 --- a/src/engine/engine_forward.c +++ b/src/engine/engine_forward.c @@ -1082,7 +1082,7 @@ void mj_fwdConstraint(const mjModel* m, mjData* d) { // check if islands are supported // TODO: support islands with the implicit effective metric and remove the mj_flexCG // condition. It is here because the metric machinery is monolithic: the efm_c shift and - // the Ma/Mv/Mgrad operators (mjd_effMulAdd, mjd_effSolve) act on global dof vectors with + // the Ma/Mv/Mgrad operators (mjd_effMulAdd, mjd_effPrec) act on global dof vectors with // no island-local form. Discovery is already handled: findEdges unions the trees of every // stiffness-active flex, so a flex always lands in one island together with everything it // touches. Removal therefore needs only the solver side: apply the efm_c shift to that diff --git a/src/engine/engine_solver.c b/src/engine/engine_solver.c index d68d4e03..1aa1ea3b 100644 --- a/src/engine/engine_solver.c +++ b/src/engine/engine_solver.c @@ -1428,7 +1428,7 @@ static void PrimalUpdateMgrad(mjPrimalContext* ctx, int flg_Newton) { // CG: Mgrad = Mtilde \ grad else if (ctx->flg_flex) { - mjd_effSolve(ctx->fm, ctx->fd, ctx->Mgrad, ctx->grad); + mjd_effPrec(ctx->fm, ctx->fd, ctx->Mgrad, ctx->grad); } // CG: Mgrad = M \ grad diff --git a/test/engine/engine_derivative_test.cc b/test/engine/engine_derivative_test.cc index 54d5ac13..15e154ac 100644 --- a/test/engine/engine_derivative_test.cc +++ b/test/engine/engine_derivative_test.cc @@ -2104,9 +2104,11 @@ TEST_F(DerivativeTest, FlexStiffAssembleInterp) { } } -// mjd_effSolve: exact-preconditioner fast path solves (M+K)x = b directly; the general -// refinement path stays within its tolerance when exactness does not hold -TEST_F(DerivativeTest, EffSolveExact) { +// mjd_effSolve drives (M+K)x = b to opt.tolerance on the relative residual, +// for every metric coverage case. It is a PCG whose preconditioner +// (mjd_effPrec) is only approximate, so the accuracy comes from the iteration +// and not from the preconditioner being exact. +TEST_F(DerivativeTest, EffSolve) { // relative residual of (M+K)x - b after mjd_effSolve auto solve_residual = [](const mjModel* m, mjData* d) { int nv = m->nv; @@ -2142,8 +2144,7 @@ TEST_F(DerivativeTest, EffSolveExact) { ASSERT_GE(data->efm_active, 1); EXPECT_GT(data->nefmK, 0); EXPECT_GT(data->nefmdof, 0); - EXPECT_EQ(data->efm_active, 2); - EXPECT_LT(solve_residual(model.get(), data.get()), MjTol(1e-10, 1e-6)); + EXPECT_LT(solve_residual(model.get(), data.get()), MjTol(1e-8, 1e-4)); // bending-only cloth: no CSR or per-step factor, constant factor covers, exact static const char* const kXmlBend = R"( @@ -2166,8 +2167,7 @@ TEST_F(DerivativeTest, EffSolveExact) { EXPECT_EQ(data->nefmK, 0); EXPECT_EQ(data->nefmdof, 0); EXPECT_GT(model->nefm0dof, 0); - EXPECT_EQ(data->efm_active, 2); - EXPECT_LT(solve_residual(model.get(), data.get()), MjTol(1e-10, 1e-6)); + EXPECT_LT(solve_residual(model.get(), data.get()), MjTol(1e-8, 1e-4)); // cloth under a jointed parent: M couples across the covered block, not exact, // the refinement path must still meet its tolerance @@ -2192,9 +2192,71 @@ TEST_F(DerivativeTest, EffSolveExact) { data = MakeData(model); mj_forward(model.get(), data.get()); ASSERT_GE(data->efm_active, 1); - EXPECT_EQ(data->efm_active, 1); EXPECT_LT(solve_residual(model.get(), data.get()), 1e-4); } +// A cloth with per-step stretch stiffness, used by the two tests below. +static const char* const kStretchCloth = R"( + + +)"; + +// An unreachable tolerance drives mjd_effSolve to its iteration cap; it must +// report that rather than return an under-converged qacc_smooth silently. +TEST_F(DerivativeTest, EffSolveCapWarns) { + char error[1024]; + MjModelPtr model = LoadModelFromString(kStretchCloth, error, sizeof(error)); + ASSERT_THAT(model.get(), NotNull()) << error; + model->opt.tolerance = 0; // unreachable: the PCG can never meet it + MjDataPtr data = MakeData(model); + + MockWarningHandler warning_handler; + // both: the specific cause, then the mjWARN_INERTIA it is reported through + warning_handler.ExpectWarnings("Flex stiffness is too ill-conditioned"); + warning_handler.ExpectWarnings("Inertia matrix is too close to singular"); + mj_forward(model.get(), data.get()); + testing::Mock::VerifyAndClearExpectations(&warning_handler); +} + +// PCG requires a symmetric preconditioner. mjd_effPrec must satisfy +// u.P(v) == v.P(u); it did not when the covered and uncovered dofs shared a +// kinematic tree, which is what the flex-under-a-slider model here exercises. +TEST_F(DerivativeTest, EffPrecIsSymmetric) { + char error[1024]; + MjModelPtr model = LoadModelFromString(kStretchCloth, error, sizeof(error)); + ASSERT_THAT(model.get(), NotNull()) << error; + MjDataPtr data = MakeData(model); + mj_forward(model.get(), data.get()); + ASSERT_GE(data->efm_active, 1); + + int nv = model->nv; + std::vector u(nv), v(nv), Pu(nv), Pv(nv); + for (int trial = 0; trial < 5; trial++) { + for (int i = 0; i < nv; i++) { + u[i] = mju_Halton(i + trial*nv, 2) - 0.5; + v[i] = mju_Halton(i + trial*nv, 5) - 0.5; + } + mjd_effPrec(model.get(), data.get(), Pu.data(), u.data()); + mjd_effPrec(model.get(), data.get(), Pv.data(), v.data()); + mjtNum a = mju_dot(v.data(), Pu.data(), nv); + mjtNum b = mju_dot(u.data(), Pv.data(), nv); + EXPECT_THAT(a, MjNear(b, 1e-10, 1e-4)) + << "preconditioner is not symmetric, trial " << trial; + } +} + } // namespace } // namespace mujoco diff --git a/test/xml/xml_write_read_test.cc b/test/xml/xml_write_read_test.cc index cbf278bb..e9776ed9 100644 --- a/test/xml/xml_write_read_test.cc +++ b/test/xml/xml_write_read_test.cc @@ -65,6 +65,8 @@ std::vector GetWriteReadTestModels() { absl::StrContains(xml, "fromto_convex") || absl::StrContains(xml, "cube_skin") || absl::StrContains(xml, "cube_3x3x3") || + // flex_stiffness: stretch amplifies geometry XML rounds on save + absl::StrContains(xml, "flex/bag") || // exclude files that fail since we do not save pinned flex nodes absl::StrContains(xml, "gripper_trilinear") || absl::StrContains(xml, "strain") || diff --git a/wasm/codegen/generated/bindings.cc b/wasm/codegen/generated/bindings.cc index 861be173..4d15ae52 100644 --- a/wasm/codegen/generated/bindings.cc +++ b/wasm/codegen/generated/bindings.cc @@ -4609,9 +4609,6 @@ EMSCRIPTEN_BINDINGS(mujoco_bindings) { .property("efm_K_rownnz", &MjData::efm_K_rownnz) .property("efm_K_val", &MjData::efm_K_val) .property("efm_L", &MjData::efm_L) - .property("efm_L_colind", &MjData::efm_L_colind) - .property("efm_L_rowadr", &MjData::efm_L_rowadr) - .property("efm_L_rownnz", &MjData::efm_L_rownnz) .property("efm_active", &MjData::efm_active, &MjData::set_efm_active, reference()) .property("efm_c", &MjData::efm_c) .property("efm_dofid", &MjData::efm_dofid) diff --git a/wasm/codegen/generated/bindings.h b/wasm/codegen/generated/bindings.h index 48697ecc..4c1ad6a0 100644 --- a/wasm/codegen/generated/bindings.h +++ b/wasm/codegen/generated/bindings.h @@ -7314,15 +7314,6 @@ struct MjData { emscripten::val efm_dofid() const { return emscripten::val(emscripten::typed_memory_view(ptr_->nefmdof, ptr_->efm_dofid)); } - emscripten::val efm_L_rownnz() const { - return emscripten::val(emscripten::typed_memory_view(ptr_->nefmdof, ptr_->efm_L_rownnz)); - } - emscripten::val efm_L_rowadr() const { - return emscripten::val(emscripten::typed_memory_view(ptr_->nefmdof, ptr_->efm_L_rowadr)); - } - emscripten::val efm_L_colind() const { - return emscripten::val(emscripten::typed_memory_view(ptr_->nefmL, ptr_->efm_L_colind)); - } emscripten::val efm_L() const { return emscripten::val(emscripten::typed_memory_view(ptr_->nefmL, ptr_->efm_L)); } diff --git a/wasm/codegen/generators/constants.py b/wasm/codegen/generators/constants.py index 785f8817..2ca3a120 100644 --- a/wasm/codegen/generators/constants.py +++ b/wasm/codegen/generators/constants.py @@ -343,9 +343,6 @@ MJDATA_SIZES: tuple[str, ...] = ( "efm_K_val", "efm_dofid", "efm_L", - "efm_L_colind", - "efm_L_rowadr", - "efm_L_rownnz", "iLDiagInv", "iM_rowadr", "iM_rownnz",